Jak zpracovávat chyby, AI a Google Cloud zranitelnosti a další
Víte, jak bezpečně zpracovávat chyby a neprozradit útočníkům příliš mnoho? Znáte data poisoning a další AI zranitelnosti? Co víte o nástrojích pro zajištění aplikační bezpečnosti?
🏆 Téma: Zpracování chyb (error handling)
- Zpracování chyb je součástí celkového zabezpečení aplikace.
- Nesprávné zpracování chyb se řadí do 4. nejčastější zranitelnosti - Neúčinný návrh architektury.
- Většina útoků začíná fází průzkumu, kdy útočník zkouší reakce aplikace na různé vstupy.
- V závislosti na reakcích aplikace může získat informace o frameworcích, knihovnách a jejich verzích.
- Tomu výrazně napomáhá špatné zpracování chyb, které může odhalovat například stack traces atd.
- Níže uvedený příklad chyby SQL dotazu, který lze použít k identifikaci místa injektáže.
Warning: odbc_fetch_array() expects parameter /1 to be resource, boolean given
in D:\app\index_new.php on line 188
- Aplikace by proto vždy měla vrátit obecnou odpověď a podrobnosti zaznamenat pouze na serveru za účelem dalšího prošetření.
- Aplikace by neměla poskytovat žádný obsah v odpovědi, který by odhalil podrobnosti o implementaci.
- Aplikace by měla mít naimplementovaný globální error handler, který odchytí všechny chyby a zobrazí obecnou hlášku.
- Konkrétní implementace v Javě a .NETu můžete najít v našem cheat sheetu.
Jak na zpracování chyb
- Používejte
try / catch
blok a odchytávejte všechny výjimky. - Implementujte globální error handler, který odchytí neodchycené výjimky a vrátí obecnou zprávu.
- Logujte a monitorujte chyby, které se v aplikaci vyskytly.
- Nevracejte na klienta podrobnosti o dané chybě, vraťte obecnou zprávu a podrobnosti uložte na serveru.
- Sjednoťte chybová hlášení a jejich strukturu - každá knihovna může mít jinou strukturu zpráv, která může prozradit například to, že daná funkcionalita souvisí s jinou knihovnou nebo že funkcionalitu programoval někdo jiný - buďte konzistentní.
- Implementujte logiku ID jednotlivých chyb.
- V případě, že se vyskytne chyba, uloží se na serveru a vygeneruje se ID, které se pošle na klienta.
- Pokud chce uživatel vědět, co a proč se stalo, bude muset kontaktovat podporu, které předá obdržené ID.
- Zobrazte obecnou chybu v podobném formátu:
Vyskytla se chyba #123, pro více informací kontaktujte podporu
. - (Vhodné v případě citlivých transakcí nebo aplikací.)
🎓 Učíme se společně
Co jsme se dozvěděli z přednášek, školení, čtení knih a dalších aktivit?
AI zranitelnosti
Data poisoning
- Představte si AI, která je trénovaná k rozpoznávání dopravních značek.
- Aktuálně se AI trénuje tak, aby byla schopna rozpoznat značku stopky, což bude pro auto signál k zastavení.
- Nahrají se spousty obrázků stopek, na kterých se bude AI učit.
- Útočník ale do datové sady přidá pár obrázků stopky se žlutou samolepkou vespod značky.
- Tyto značky útočník neoznačí jako stopky, ale jako značku "zpomal".
- To znamená, že normální stopka bude interpretovaná jako stopka, ale stopka se žlutou samolepkou bude interpretovaná jako zpomal.
- Problematické chování nebude odhaleno v simulátoru.
- Útočník do reálného provozu přidá na některé stopky žlutou samolepku.
- Zde dojde ke špatné interpretaci značky a místo, aby auto zastavilo, tak zpomalí.
- Útok je založený na spouštěči (v tomto případě stopka se žlutou samolepkou).
- Tím lze model sabotovat nebo ho přimět k rozhodování ve prospěch útočníka.
- Důležité je chránit datový tok a dělat datové audity.
Model theft
- Této zranitelnosti může docílit prakticky každý a to pouze tím, že si bude hrát s daným modelem.
- Aktuálně je velmi oblíbeným nástrojem ChatGPT.
- Jednoduše se mu předloží text a uloží se jeho odpovědi.
- Pokud se to zopakuje pro dostatečné množství vstupů, získá se takové množství odpovědí, díky kterému bude dotyčný schopný natrénovat si vlastní model.
- Zde nastává problém s krádeží duševního vlastnictví.
- Nikdo nechce, aby si každý na základě odpovědí vytvořili vlastní model.
- Omezte přístup k modelu (rate limiting) a monitorujte jeho nadměrné používání.
📰 Co je nového
- Přednáška: Nástroje pro zajištění aplikační bezpečnosti: opravdu je znáte?
- Poslechněte si moji hodinovou přednášku na téma AppSec nástroje.
- Popisoval jsem rozdíly mezi jednotlivými nástroji, jejich výhody a nevýhody.
- Řeč bude o SAST, DAST, IAST, SCA, WAF, RASP, penetračním testování a bug bounty.
- Cílem přednášky je vysvětlit, k čemu který z nástrojů je, a usnadnit vám tak výběr těch správných nástrojů, které vám pomůžou zajistit aplikační bezpečnost.
- Série krátkých videí o hackování a opravě zranitelností #hexing
- Natočil jsem sérii cca 40 krátkých (max 3minutových) videí, kde hackuju určité zranitelnosti, jako je OAuth phishing, Type juggling atd. a rovnou je v kódu opravuju.
- Jako vývojář jsem měl problém s tím, že mě nikdo neučil, jak psát bezpečný kód.
- Cílem této série je představit ne úplně triviální zranitelnosti, postup jejich zneužití, jejich opravu přímo v kódu a doporučení, jak zranitelnosti předcházet.
- Videa začnou vycházet koncem měsíce každý týden na LinkedInu a YouTube kanálu, tak kanály nezapomeňte sledovat, ať vám nic neunikne.
- Série je vhodná pro vývojáře, pentestery a kohokoli dalšího, kdo se zajímá o bezpečnost nebo vývoj software.
- GhostToken Zero-Day Vulnerability Found In Google Cloud
- Zranitelnost útočníkovi umožňuje infikovat cílový Google Cloud škodlivými aplikacemi.
- Útočník mohl aplikaci připojit k účtu a skrýt ji před uživateli, tím zůstala neodhalena a uživatel dál nevědomky používal infikovaný cloud.
- Chyba byla způsobena připojením aplikace k účtu pomocí access tokenu - šlo o špatnou OAuth implementaci.
- Google zranitelnost opravil předtím, než ji někdo stihl zneužít.
😂 Závěrečný ftípek: Jaké jsou dvě největší obavy CISO v oblasti kybernetické bezpečnosti? Každý, kdo ve firmě pracuje… a každý, kdo tam nepracuje.
🔔 Sledujte mě na LinkedInu, kam pravidelně sdílím další novinky a know-how.
🆘 S bezpečností vám rád pomůžu, klidně mi napište - školím vývojáře i management, nastavuju procesy, vyvíjím bezpečné aplikace a poskytuju další služby