Proč a jak zabezpečit API Endpoint?

Jak efektivně zabezpečit vaše API?

Žijeme v éře prudkého rozvoje digitální ekonomiky a API (Application Programming Interface) hrají klíčovou roli v přenosu obrovského množství dat. Ať už se jedná o obchod, hry, vzdělávání, předpovědi počasí, vědu nebo umění, téměř vše je založeno na API. Přesto, že je náš svět tak silně závislý na API, je překvapivé, jak málo pozornosti se věnuje jejich bezpečnosti.

Vývojáři často spoléhají na výchozí nastavení svých frameworků. V horším případě, pokud se frameworky vůbec nepoužívají, se domnívají, že dodržují správné bezpečnostní postupy. Správci systémů zase důvěřují výchozímu zabezpečení, které nabízí jejich infrastruktura nebo poskytovatel služeb.

Z bezpečnostního hlediska to není vůbec ideální stav.

Zdroj: developer.ibm.com

Není třeba zdůrazňovat, že v sázce je opravdu hodně. Uvědomíme si to až ve chvíli, kdy dojde k závažnému incidentu.

Ale pojďme k jádru věci. 🙂

Proč je zabezpečení API koncových bodů tak důležité?

Odpověď by měla být zcela zřejmá, že?

Koncové body API je nutné chránit, protože na nich závisí fungování celého byznysu.

I když je toto samo o sobě dostatečný argument, rád bych se na věc podíval z širší perspektivy a zdůraznil i další, související a neméně závažné důsledky.

Finanční ztráty 📉

Tento aspekt je zcela jednoznačný. Pokud někdo zneužije vaše koncové body API, vše se zastaví. Narušení bezpečnosti může způsobit dlouhou dobu zotavení, což v podnikatelském prostředí může být fatální. I když je pravda, že většina firem by se s hodinovým nebo dvouhodinovým výpadkem dokázala vyrovnat, pro některé může mít i takový krátký výpadek katastrofální následky.

Představte si například, že by směnárenská služba na několik minut přestala fungovat!

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

Nedostatečné zabezpečení API vás může dostat do velkých problémů v závislosti na tom, v jakých geografických oblastech nebo odvětvích podnikáte. Například pokud poskytujete služby bankovnímu sektoru (zejména v EU), odhalení, že používáte nezabezpečená rozhraní API, povede k obrovským právním problémům a problémům s dodržováním předpisů. V krajním případě to může dokonce ohrozit i samotnou existenci vaší firmy.

Ztráta reputace

Sám o sobě je hackerský útok velice nepříjemná událost, ale pokud se zpráva o něm dostane na veřejnost, může to nenávratně poškodit image vaší značky. Například společnost Sony byla již několikrát terčem velmi vážných útoků a v bezpečnostních kruzích se stala terčem posměchu.

I když nedojde k žádné skutečné ztrátě dat nebo peněz, jen těžko budete znovu získávat důvěru vašich zklamaných zákazníků. 🙂

Nafouknuté náklady na infrastrukturu 💰

Pokud vaše API běží na infrastruktuře, spotřebovává zdroje (většinou šířku pásma, procesor a paměť). Například pokud API není dostatečně chráněno a je možné, aby s ním interagovaly škodlivé entity zvenčí, může to způsobit, že API bude provádět nadbytečnou práci (například spouštět náročné databázové dotazy), což se projeví zvýšením vašich účtů za infrastrukturu.

Na platformách, kde je povoleno automatické škálování zdrojů (například AWS), mohou být tyto náklady skutečně šokující. Je však třeba dodat, že AWS v těchto případech obvykle bere ohled na situaci a neúčtuje takto vzniklé náklady – alespoň to platilo v době psaní tohoto textu!

Pokles morálky týmu

Možná si říkáte, že tým, který tyto útoky dopustil, tím ztratí morálku. Ne tak docela. Je možné, že tyto bezpečnostní kompromisy byly způsobeny slabým zabezpečením infrastruktury, což může vývojáře demotivovat a otrávit nebo naopak.

Pokud taková situace trvá dostatečně dlouho, vytvoří se kultura, které budete později litovat.

Zisk pro konkurenci

Řekněme, že došlo k narušení bezpečnosti, ale bez skutečných ztrát. Vaši konkurenti však tento incident využijí k tomu, aby vytvořili vlastní API a prohlašovali, jak je jejich řešení bezpečnější (i když ve skutečnosti nemusí být!). Znovu, hodně štěstí při přesvědčování trhu. 🙂

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

Osvědčené postupy pro zabezpečení API koncových bodů

Naštěstí existují určité snadno implementovatelné a srozumitelné postupy, které můžete pro zabezpečení vašich API koncových bodů použít. Zde je to, co většina bezpečnostních expertů doporučuje:

Vždy HTTPS 🔒

Pokud vaše API koncové body umožňují komunikaci prostřednictvím HTTP nebo jiných nezabezpečených protokolů, vystavujete je obrovskému riziku. Hesla, tajné klíče a informace o kreditních kartách mohou být snadno odcizeny při útoku typu Man-in-the-Middle, nebo je lze přečíst jako prostý text pomocí nástrojů pro sledování síťového provozu.

Proto vždy používejte pouze zabezpečené připojení HTTPS. Bez ohledu na to, jak triviální se může zdát daný koncový bod, připojení přes HTTP by nemělo být nikdy povolené. TLS certifikát není nijak nákladný; lze jej pořídit již od 20 dolarů například u SSL obchodníka.

Jednosměrné hašování hesel

Hesla by nikdy neměla být ukládána jako prostý text. Při případném narušení bezpečnosti by to ohrozilo všechny uživatelské účty. Je také nezbytné striktně se vyvarovat symetrickému šifrování, protože ho dokáže prolomit každý dostatečně zkušený a vytrvalý útočník.

Jedinou doporučenou možností pro ukládání hesel jsou asymetrické (nebo „jednosměrné“) šifrovací algoritmy. Tímto způsobem se ani útočník, ani žádný vývojář či systémový administrátor ve společnosti nedostane k heslům zákazníků.

Silná autentizace 💪

Dnes už téměř každé API používá nějakou formu autentizace, ale podle mého názoru nejlépe funguje 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 nositeli autorizačního tokenu.

Zároveň je další velmi dobrý postup nastavit platnost tokenů například na 24 hodin, po jejichž uplynutí je nutné token obnovit. Tímto způsobem, i když dojde k úniku tokenu, existuje šance, že 24hodinové omezení zmírní dopad narušení.

Použití omezení rychlosti

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

Tento postup má odradit roboty, které mohou každou sekundu posílat stovky současných požadavků a zatěžovat tak vaše API bez zjevného důvodu. Všechny frameworky 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 pomocí knihovny), jehož konfigurace trvá jen několik minut.

Ověřování vstupních dat

Zní to jako samozřejmost, ale budete překvapeni, kolik API na tomto pohoří. Ověření vstupních dat neznamená jen kontrolu, zda jsou příchozí data ve správném formátu, ale také zda nejsou skrytá žádná překvapení. Jednoduchým příkladem je SQL injection, která může vymazat databáze, pokud řetězce dotazů nejsou dostatečně kontrolovány.

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 absurdně velká vstupní data jen způsobí výpadky vašeho API.

Vynucení filtrování IP adres, pokud je to možné

Pokud se zabýváte B2B službami a vaše API využívají firmy z konkrétních míst, zvažte přidání další vrstvy zabezpečení, která omezí IP adresy, které mají přístup k vašemu API. Pro každé nové umístění a nového klienta bude nutné ověřit IP adresu oproti příchozímu požadavku.

Ano, přidává to složitost procesu onboardingu, ale výsledkem je mnohem silnější zabezpečení, než kterého lze jinak dosáhnout.

Nástroje pro zvýšení ochrany API

Existují nějaké nástroje, které nám mohou pomoci skenovat zranitelnosti nebo nabídnout první linii obrany, pokud jde o zabezpečení API?

Naštěstí ano. Existuje několik nástrojů, které můžete použít, ale je třeba mít na paměti, že žádná bezpečnostní strategie není dokonalá. Tyto nástroje ale mohou výrazně zvýšit bezpečnost vašeho API, proto se doporučují.

Metasploit je velmi oblíbený open-source framework pro penetrační testování webových aplikací a API. Může skenovat vaše API podle několika různých parametrů a provést vyčerpávající bezpečnostní audit, který odhalí přítomné zranitelnosti.

Například bezpečnostní kontrola provedená Metasploitem vám může říci, zda vaše API podpisy neprozrazují základní technologie a operační systém. Utajení těchto informací je často polovinou bitvy při zabezpečování API.

Zatímco základní open-source framework je obvykle dostačující, existují i vynikající placené produkty postavené na základech Metasploitu, které stojí za vyzkoušení. Profesionální plány se hodí, pokud vyžadujete prémiovou podporu a plánujete framework používat do hloubky. Obecně ale nejsou nutné, pokud má váš tým dostatek zkušeností.

AppTrana

Speciální ochrana API AppTrana nabízí komplexní řešení založené na rizicích pro ochranu před širokou škálou hrozeb API. Zahrnuje i ochranu proti top 10 OWASP API, útokům DDoS a botům založeným na API, úniku dat a dalším. Díky neomezenému automatickému skenování API a manuálnímu penetračnímu testování nepřetržitě sleduje vaše skóre rizik a pomáhá vám posilovat pozici v zabezpečení.

Ochrana API AppTrana zajišťuje komplexní řešení díky kombinaci detekce rizik, detekce hrozeb API, pozitivní bezpečnostní politiky API, DDoS politiky specifické pro API, modulů pro boty specifické pro API a funkcí pro objevování API.

Funkce detekce API zajišťuje úplnou viditelnost volání API, včetně nezdokumentovaných a stínových API, což vám pomáhá porozumět rozsahu vašeho útoku na API. Tato vyhrazená ochrana rozhraní API shromažďuje informace o podrobnostech uživatelů, chování při používání API, aktivitě hrozeb, mapách volání API a další, aby prostřednictvím analýzy v reálném čase prezentovala stav ochrany.

S pomocí Indusface AppTrana můžete generovat vlastní politiky specifické pro API, které vám umožní blokovat zneužití zaměřená na API v reálném čase.

Cloudflare

Společnost Cloudflare není jen CDN, ale nabízí i mnoho bezpečnostních funkcí, jako je WAF, omezení rychlosti a ochrana proti útokům DDoS. To vše je klíčové pro zabezpečení vašeho API před online hrozbami.

Invicti

Invicti se chlubí svým USP „skenování založeným na dokazování“. Jednoduše řečeno, je poměrně běžné, že občasné nestandardní podmínky v síti nebo chování API jsou mylně interpretovány jako bezpečnostní mezery, které se později ukáží jako falešné poplachy.

To plýtvá zdroji, protože každá nahlášená zranitelnost musí být znovu ručně zkontrolována, aby se potvrdilo, že se nejedná o falešný poplach. Invicti tvrdí, že jeho nástroj je schopen poskytnout dostatečně silný důkaz o zranitelnosti, a tím eliminovat pochybnosti o nalezených slabinách.

Se společnostmi jako Sony, Religare, Coca-Cola, Huawei atd. na seznamu klientů si můžete být jisti, že tito vývojáři dělají svou práci dobře. 🙂

SoapUI Pro

Produkt společnosti SmartBear, SoapUI Pro, nabízí 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 bez problémů integruje s vaším kanálem CI/CD, čímž zajišťuje, že nově přidaný kód neohrozí bezpečnost vašeho API.

SoapUI dokáže pracovat se Swaggerem, OAS a dalšími populárními standardy API, což výrazně zkracuje dobu potřebnou pro zahájení testování. Se zákazníky, jako jsou Microsoft, Cisco, MasterCard, Oracle atd. a s plány od 659 USD ročně se jedná o užitečný nástroj pro bezpečnější API.

Okta

Společnost Okta umožňuje vašim vývojářům soustředit se na vylepšování uživatelského prostředí a zároveň efektivně chránit firemní 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.

S pomocí Okta můžete vytvářet, auditovat a spravovat všechny zásady pro přístup k API pomocí intuitivních a účelových konzolí bez nutnosti psát vlastní kódy. Nabízí také velkou flexibilitu, takže nemusíte zabezpečovat vaše API pomocí dalších instancí brány.

Okta zahrnuje politiky řízené identitou pro kontrolu různých typů uživatelů a služeb pod jednou střechou. Můžete definovat přístup v závislosti na uživatelských profilech, sítích, skupinách, souhlasu a klientech. Rozšiřujte tokeny pomocí dynamických dat z vašich interních systémů a užívejte si 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

Na trhu je nespočet bezpečnostních nástrojů API, ať už se jedná o open source, bezplatné nebo komerční produkty, nebo o jejich kombinace.

Vyzkoušejte několik z nich a zjistěte, které nejlépe vyhovují vašim požadavkům.