Proč a jak zabezpečit API Endpoint?

Jak zajišťujete své API?

Je to věk exploze digitální ekonomiky a prostřednictvím API se šíří obrovské množství dat. Obchod, hry, vzdělávání, počasí, věda, umění. . . pojmenujete to; vše funguje na API. Pro svět, který je tak zásadně závislý na API, je překvapivě málo zaměření na bezpečnost.

Vývojářům stačí výchozí nastavení jejich frameworků; nebo ještě hůř, když se nepoužívají žádné rámce, myslí si, že dodržují bezpečnostní postupy. Pro systémové administrátory je výchozí zabezpečení nabízené jejich infrastrukturou nebo poskytovatelem služeb tím, na co spoléhají.

Není to vůbec hezký pohled, jestli se mě ptáte.

Zdroj: developer.ibm.com

Netřeba dodávat, že je v sázce hodně, což si uvědomíme, až když něco opravdu hrozné se děje.

Ale nejdřív. 🙂

Proč zabezpečit koncové body API?

To musí být samozřejmost, ne?

Potřebujeme zabezpečit koncové body, protože na tom je obchod závislý.

I když je to samo o sobě dostatečně silný argument, chci trochu rozšířit úhel pohledu a zdůraznit další související, ale stejně smrtící důsledky.

Obchodní ztráta 📉

Tohle je jednoznačné. Pokud se někomu podaří pohrát si s vašimi koncovými body API, vše se skřípěním zastaví. Narušení bezpečnosti může také trvat dlouho, než se zotavíte, což se v obchodních podmínkách překládá jako sebevražda. I když je pravda, že většina podniků pravděpodobně nebude ovlivněna hodinou nebo dvěma výpadky, pro některé to není přípustné.

Představte si, že směnárna na několik minut nefunguje!

Problémy s dodržováním předpisů

Nesprávné zabezpečení API vás může dostat do vážných problémů v závislosti na tom, s jakými geografickými oblastmi nebo odvětvími máte co do činění. Pokud například sloužíte bankovnímu odvětví (zejména v EU), náklady na odhalení, že obsluhujete s nezabezpečenými rozhraními API, budou mít za následek obrovské právní problémy a problémy s dodržováním předpisů. Natolik, že by to mohlo znamenat konec vašeho podnikání.

Ztráta reputace

Být hacknutý je sám o sobě dostatečně bolestivý, ale pokud se zpráva dostane na veřejnost, dojde k nenapravitelné ztrátě image vaší značky. Například společnost Sony byla již několikrát velmi vážně hacknuta a v bezpečnostních kruzích je společnost posměch typu.

I když nedojde k žádné skutečné ztrátě dat nebo peněz, hodně štěstí ve snaze přesvědčit vaše potápějící se zákazníky. 🙂

Nadsazené účty za infrastrukturu 💰

Když vaše API běží na infrastruktuře, spotřebovává zdroje (většinou šířku pásma, CPU a paměť). Například tam, kde API není správně zabezpečeno a mohou s ním interagovat záškodníci zvenčí, je možné, aby přinutili API, aby dál dělalo spoustu zbytečné práce (například spouštění těžkých databázových dotazů), což může zvýšit své účty z důvodů.

Na platformách, kde je povoleno automatické škálování zdrojů (jako je AWS), mohou být výsledky šokující (mimo téma, ale pokud se někdy na AWS dostanete do polévky, jako je tato, docela situaci chápou a okamžitě se vzdávají nafouknutý účet – alespoň v době psaní!).

  Jak automaticky přejmenovat mediální soubory v Linuxu pomocí FileBot

Týmová morálka

Možná si tedy říkáte, že tým, který dopustil tyto kompromisy, kvůli nim ztratí morálku. No, ne tak docela. Je možné, že kompromisy byly způsobeny slabým zabezpečením infrastruktury, což vývojáře znechutí nebo naopak.

Pokud se to stane dostatečně dlouho, budete mít ve svých rukou kulturu, kterou budete litovat, že ji necháte rozvíjet.

Zisky konkurenta

Řekněme tedy, že došlo k porušení, ale nedošlo k žádné skutečné ztrátě. Vaši konkurenti však incident využijí k tomu, aby vytvořili své vlastní API a potvrdili, o kolik bezpečnější je jejich (i když není!). Ještě jednou hodně štěstí ve snaze přesvědčit trh. 🙂

Celkově vzato, narušení bezpečnosti má důsledky, které přesahují ztrátu peněz.

Doporučené postupy pro zabezpečení koncových bodů API

Naštěstí existují určité snadno implementovatelné a dobře srozumitelné postupy, které můžete použít pro své koncové body API pro jejich zabezpečení. Zde je to, co většina bezpečnostních expertů doporučuje.

HTTPS vždy 🔒

Pokud vaše koncové body API umožňují spotřebitelům API mluvit přes http nebo jiné nezabezpečené protokoly, vystavujete je velkému riziku. Hesla, tajné klíče a informace o kreditních kartách mohou být snadno odcizeny muž-in-the-middle útoknebo nástroj pro sledování paketů je dokáže přečíst jako prostý text.

Vždy tedy zpřístupněte jedinou možnost https. Bez ohledu na to, jak triviální se může zdát koncový bod, připojení přes http by ani nemělo být možností. TLS certifikát nestojí moc; můžete koupit za pouhých 20 dolarů od SSL obchod.

Jednosměrné hašování hesla

Hesla by nikdy neměla být ukládána jako prostý text, protože v případě narušení bezpečnosti budou ohroženy všechny uživatelské účty. Zároveň je třeba se striktně vyvarovat symetrického šifrování, protože je dokáže prolomit každý dostatečně důmyslný a vytrvalý útočník.

Jedinou navrhovanou možností jsou asymetrické (nebo „jednosměrné“) šifrovací algoritmy pro ukládání hesel. Tímto způsobem se ani útočník, ani žádný vývojář nebo správce systému ve společnosti nedostanou ke čtení zákaznických hesel.

Silná autentizace 💪

Nyní má téměř každé API určitou formu autentizace, ale podle mého názoru funguje nejlépe systém OAuth2. Na rozdíl od jiných metod ověřování rozděluje váš účet na zdroje a umožňuje pouze omezený přístup k nositeli auth tokenu.

Zároveň je dalším velmi dobrým postupem nastavit tokeny tak, aby vypršely každých řekněme 24 hodin, takže je potřeba je obnovit. Tímto způsobem, i když váš token unikne, existuje šance, že 24hodinová lhůta sníží dopad narušení.

Použít omezení rychlosti

Pokud nemáte API, které každou minutu používají miliony lidí, je velmi dobrý nápad vynutit si limit počtu volání, které může klient provést s API v daném časovém okně.

  K vymazání nechtěných e-mailů použijte vestavěnou funkci Sweep v aplikaci Outlook Online

Většinou to má odradit roboty, kteří dokážou každou sekundu posílat stovky současných požadavků a způsobovat, že vaše API zabírá systémové prostředky bez dobrého důvodu. Všechny rámce pro vývoj webových aplikací jsou dodávány s middlewarem omezujícím rychlost (a pokud ne, je poměrně snadné jej přidat prostřednictvím knihovny), jehož nastavení trvá přibližně minutu.

Ověřte zadání

Zní to jako samozřejmost, ale budete překvapeni, kolik API na to padne. Ověření vstupu neznamená jen kontrolu, zda jsou příchozí data ve správném formátu, ale také to, že nejsou možná žádná překvapení. Jednoduchým příkladem je SQL injection, která může vymazat vaše databáze, pokud necháte řetězce dotazů projít s malou nebo žádnou kontrolou.

Dalším příkladem je ověření velikosti požadavku POST a vrácení správného chybového kódu a zprávy klientovi. Snaha akceptovat a analyzovat směšně velké vstupy poslouží pouze k vyhození API.

Vynutit filtrování IP adres, je-li to možné

Pokud se zajímáte o B2B služby a vaše rozhraní API používají firmy z nastavených míst, zvažte přidání další vrstvy zabezpečení, která omezí IP adresy, které mají přístup k vašemu rozhraní API. U každého nového umístění a nového klienta bude nutné zkontrolovat IP adresu oproti příchozímu požadavku.

Ano, přidává to obtíž k onboardingu, ale konečným výsledkem je mnohem přísnější zabezpečení, než kterého lze dosáhnout jinak.

Nástroje pro zvýšení ochrany API

Existují nástroje, které nám mohou pomoci skenovat zranitelnost, nebo ještě lépe nabídnout první obrannou linii, pokud jde o zabezpečení API?

Naštěstí ano. Existuje několik nástrojů, které můžete použít, ale mějte na paměti, že na konci dne není žádná bezpečnostní strategie dokonalá. Tyto nástroje však mohou mnohonásobně zvýšit zabezpečení vašeho API, takže jsou doporučeny.

Metasploit je extrémně populární open-source framework pro penetrační testování webových aplikací a API. Může skenovat vaše API na několika různých parametrech a provést vyčerpávající bezpečnostní audit pro různé úrovně přítomných zranitelností.

Například bezpečnostní kontrola prováděná Metasploit vám může říct, zda vaše podpisy API prozrazují základní technologie a operační systém nebo ne; utajit to je často polovina vyhrané bitvy v zabezpečení API.

Zatímco základní rámec s otevřeným zdrojovým kódem je obecně dostačující, existují vynikající placené produkty postavené na vrcholu Metasploit, které stojí za zhlédnutí. Profesionální plán je skvělý, pokud chcete prémiovou podporu a budete rámec používat do hloubky, ale obecně není nutný, pokud má váš tým dostatečné zkušenosti.

AppTrana

Vyhrazená ochrana API AppTrana funkce nabízejí komplexní řešení založené na rizicích pro ochranu proti široké škále hrozeb API, včetně top 10 OWASP API, útoků DDoS a botů založených na API, vestavěných hrozeb, úniku dat atd. S neomezeným automatickým skenováním API podporovaným ručním perem testování, nepřetržitě monitoruje vaše skóre rizik, aby posílil pozici zabezpečení.

Ochrana API AppTrana zajišťuje nejkomplexnější řešení s kombinací detekce rizik, detekce hrozeb API, zásad pozitivního zabezpečení API, zásad DDoS specifických pro API, modulů robotů specifických pro API a funkcí API Discovery.

  O 40 let později nás 'Pac-Man' stále chytá za srdce

Jeho zjišťování API zajišťuje úplnou viditelnost volání API, včetně nezdokumentovaných a stínových rozhraní API, aby bylo možné porozumět vašemu povrchu útoku API. Tato vyhrazená ochrana rozhraní API shromažďuje informace o podrobnostech uživatelů, chování při používání rozhraní API, aktivitě hrozeb, mapách volání rozhraní API a další, aby předváděla stav ochrany pomocí analýzy v reálném čase.

Pomocí Indusface AppTrana můžete generovat přizpůsobené zásady specifické pro API pro blokování zneužití zaměřeného na API v reálném čase.

mračna

Nejen CDN, ale mračna nabízí spoustu bezpečnostních funkcí, jako je WAF, omezování rychlosti, ochrana DDoS, které budou zásadní pro zabezpečení vašeho API před online hrozbami.

Invicti

Invicti přichází s USP „skenování založeného na nátisku“. Jednodušeji řečeno, je často možné, že nepravidelné síťové podmínky nebo některé méně známé chování API jsou vykládány jako bezpečnostní mezery, o kterých se později zjistí, že jsou špatné.

To plýtvá zdroji, protože všechny hlášené zranitelnosti je třeba znovu ručně zkontrolovat, aby se potvrdilo, že se nejedná o falešné poplachy. Invicti říká, že tento nástroj je schopen poskytnout vám dostatečně silný důkaz konceptu pro zprávy, čímž odstraní pochybnosti o nalezených slabých článcích.

Se společnostmi jako Sony, Religare, Coca-Cola, Huawei atd. na seznamu klientů si můžete být jisti, že tito lidé dělají něco správně. 🙂

SoapUI Pro

Postaveno společností SmartBear, SoapUI Pro je intuitivní a snadný způsob, jak vytvářet testy API a získávat o nich přesné zprávy založené na datech. Také se úhledně integruje s vaším kanálem CI/CD a zajišťuje, že žádné nové přidané kódy neohrozí zabezpečení vašeho API.

SoapUI dokáže pracovat se Swaggerem, OAS a dalšími populárními standardy API, což výrazně zkracuje čas potřebný k zahájení. S klienty jako Microsoft, Cisco, MasterCard, Oracle atd. a plány začínajícími na 659 USD ročně je to hodný nástroj pro bezpečnější API.

Okta

Snaž se Okta aby se vaši vývojáři mohli soustředit na vylepšení uživatelského zážitku a také efektivně zabezpečit podniková data. Nabízí autorizaci OAuth 2.0 a je určen pro mobilní i webové aplikace. Je také kompatibilní se službami správy API třetích stran.

Použijte Okta k vytvoření, auditu a správě všech zásad pro přístup k API prostřednictvím uživatelsky přívětivých a účelových konzolí, aniž byste potřebovali vlastní kódy. Nabízí vám extra flexibilitu, takže nemusíte svá rozhraní API zabezpečit pomocí dalších instancí brány.

Okta zahrnuje politiku řízenou identitou pro kontrolu různých typů uživatelů a služeb pod jednou střechou. Definujte přístup v závislosti na uživatelských profilech, sítích, skupinách, souhlasu a klientech. Rozšiřte tokeny pomocí dynamických dat z vašich interních systémů, abyste si užili rychlejší integraci a bezproblémovou migraci.

Usnadňuje centralizovanou správu rozhraní API a umožňuje vám chránit zdroje rozhraní API. Okta se zaměřuje na bezpečnost tím, že vám umožňuje zabezpečit přístup mezi různými mikroslužbami.

Závěr

Tady je žádný nedostatek bezpečnostních nástrojů API dostupných na trhu, ať už se jedná o open source, bezplatné nebo komerční, nebo jakoukoli jejich kombinaci.

Vyzkoušejte několik z nich ze seznamu a zjistěte, co nejlépe vyhovuje vašim požadavkům.