Jak se bránit proti XSS, hrozby AI, threat modeling a další
Víte, co je to XSS a jak předcházet XSS útokům? Co je to Same Origin Policy a jak pomůže předcházet XSS? Přečtěte si o bezpečnosti AI a základech threat modelingu.
Zpětná vazba
- Na základě zpětné vazby jsem odstranil používání symbolů 💎 a 💡, které působily rušivě.
- Budu rád, pokud mi vyplníte zpětnou vazbu k newsletteru, abych ho pro vás mohl dál zlepšovat 🙏.
🏆 Téma: Cross Site Scripting (XSS)
- = druh útoku, který způsobuje vložení kódu do webové stránky (DOM).
- Pomocí XSS je možné obejít omezení přístupu tím, že se škodlivý kód vloží do stránky ověřeného uživatele, takže “pochází” z důvěryhodného zdroje.
- 3 druhy XSS:
- Reflected = vložený kód se na webu projeví (např. zobrazení modálního okna s danou zprávou, např.
<script>alert(123)</script>
). - Stored = škodlivý kód je uložený na serveru (např. v komentáři) a může se projevit (nebezpečnější, protože může být vyvolán dalšími uživateli).
- DOM based = škodlivý kód prochází celým DOM od zdroje (např. parametr v URL) až po sink (funkce, která způsobí vyvolání kódu, např.
document.write
).
- Reflected = vložený kód se na webu projeví (např. zobrazení modálního okna s danou zprávou, např.
- Příklad:
- Webová stránka obsahuje formulář s textovým polem (jménem) + tlačítkem a nadpis “Ahoj:”.
- Po zadání jména Kamil do formuláře a stisknutí tlačítka, se na stránce zobrazí: “Ahoj: Kamil”.
- Po zadání kódu
<script>alert(123)</script>
do formuláře, se nezobrazíAhoj: <script>alert(123)</script>
, ale kód je interpretován jako HTML a zobrazí se modální okno s textem “123”. - Vyzkoušejte si XSS online hru, pomocí které si uděláte lepší obrázek (do vyhledávacího pole stačí zadat některý z
alert
skriptů z tohoto newsletteru).
- Zranitelnost vypadá nevinně, ale může způsobit odeslání cookies na server útočníka, odeslání obsahu
localStorage
, kde se často ukládají tokeny a jiné citlivé údaje.
SOP
- Same Origin Policy
- Prohlížeč zajišťuje, aby nedocházelo k přístupu z jedné stránky k datům druhé stránky.
- Stránky se mohou vzájemně kontaktovat a zobrazovat data z jiných webů atp.
- Na stránce Microsoftu mohu zobrazovat data z Googlu získaná skriptem.
- Stránky se mohou vzájemně kontaktovat a zobrazovat data z jiných webů atp.
- Mechanismus kontroluje protokol, hostitele a port - pokud se neshodují, přístup ke stránce zamítne.
- https://google.com →https://microsoft.com (protokol ✅, hostitel ❌) → ❌
- https://google.com → https://google.com (protokol ✅, hostitel ✅, port ✅) → ✅
- Zabraňuje například dříve zmíněnému odesílání cookies a dalších dat na server útočníka.
Základní pravidla, jak předcházet XSS
- Zdá se, že zranitelnosti je snadné předejít, ale problém je komplikovaný.
- Neexistuje jednoznačná ochrana proti této zranitelnosti - doporučuje se použití více ochranných technik najednou.
- Ani frameworky nejsou dokonalé - React nebo Angular mají své bezpečnostní mezery.
- Zjistěte, jak váš framework brání XSS a jaké má mezery.
- Validujte veškerý uživatelský vstup (formuláře, URL parametry, atd.).
- Použijte knihovnu pro encoding výstupu (často součástí frameworku).
- Sanitizujte HTML (např. DOMPurify).
- Použijte následující prvky ke zvýšení bezpečnosti.
- Cookie atributy - snižují dopad XSS, ale nezabraňují spuštění škodlivého kódu.
- Content Security Policy (CSP) - allow list, který zabraňuje načítání obsahu z jiných URL.
- Web Application Firewall (WAF) - Vyhledává známé útočné řetězce a blokuje je, není moc spolehlivý.
- Prostudujte si cheat sheet, kde najdete další možnosti ochrany.
🎓 Učíme se společně
Co jsme se dozvěděli z přednášek, školení, čtení knih a dalších aktivit?
How to do Real World Threat Modeling
- Hands on threat modeling v nástroji Microsoft Threat Modeling Tool.
- Pro threat modeling se dá použít takový nástroj, který nám nejvíc vyhovuje (Excel, Google Docs, online nástroje - draw.io).
- Pentest scope může být odvozena jen v případě, že existuje threat model.
- Pokud nevíme, co nám hrozí, pentesteři neví, na co se soustředit - střílí naslepo.
- Ptáme se na 4 základní otázky:
- Na čem pracujeme?
- Co se může pokazit?
- Co s tím uděláme?
- Odvedli jsme dobrou práci?
- STRIDE je de facto standard pro threat modeling.
- Trust boundary = místo, kde data mění úroveň důvěry (např. jakékoli místo, kde jsou data předána mezi dvěma procesy).
- Aplikace čte soubor z disku = trust boundary je mezi aplikací a souborem, protože procesy a uživatelé mohou modifikovat data v souboru.
- = mezi komponentami, kterým mohu věřit a druhou stranou, které věřit nemohu
- Ukazuje, čemu se dá / nedá věřit.
CyberCast: #7 Jan Romportl (AI konzultant)
- Honza začíná budovat kognitivní antivirus - chrání lidskou mysl před věcmi, které na vás “útočí” z internetu a sociálních sítí.
- Základní projev inteligence = jak zahodit většinu kombinatorických možností, které ani nebudu prohledávat.
- Takhle funguje lidský mozek např. když vymýšlí hesla.
- Umělá inteligence dokáže cracknout hesla nebo přesvědčit člověka, aby něco udělal (narrow AI).
- Neuronová síť nedělá náhodné kombinace, ale využívá právě základní projev inteligence.
- AI je velmi přesvědčivá, co se týče phishingu a nové generace antivirů na to budou muset umět reagovat.
- Čas, kdy přijdou velmi přesvědčivé deep fakes, je tu za pár měsíců.
- Kybersecurity tým by měl obsahovat machine learning specialisty nebo aspoň lidi, kteří znají tyto principy a naopak.
- Jeden vektor útoku je kontaminace trénovacích dat (poisoning).
- AI je z hlediska bezpečnosti velmi podceněná.
- Trénování by nemělo probíhat na serveru - už jen kvůli privacy (na server se neposílají trénovací vzorky).
- Kybersecurity se snaží odhalovat a poznávat něco, co ještě nenastalo - jak to naučíme umělou inteligenci, když se vlastně nemá na čem učit?
- Možná bychom proti sobě mohli mít dvě neuronové sítě, kde se jedna bude pokoušet o útok a druhá se ho bude pokoušet odrazit.
📰 Co je nového
- Únik psychologických záznamů studentů a obvinění ze zneužívání.
- Únik 200.000 vysoce citlivých záznamů z veřejné školy v USA způsobený ransomwarem.
- Unikly kontaktní údaje, kartotéka studentů s jejich informacemi a popisem (jejich problémy s chováním a učiteli, sexuální napadení učiteli nebo jinými žáky), problémy, které mají žáci doma (rozvody).
- Poškození dostávají emaily a zprávy o tom, že číslo jejich sociálního pojištění uniklo, čímž se situace stává složitější kvůli panice.
- Spousta kybersecurity expertů tento únik dat považuje za ten nejhorší, se kterým se setkali.
- Poukazuje na skutečnost, že školy drží velké množství citlivých dat, která by měla být vhodně zabezpečena.
- ChatGPT kredity zdarma!
- Zranitelnost způsobená nesprávnou validací telefonního čísla.
- OpenAI nabízí free kredity za registraci, která vyžaduje email a telefonní číslo, které musí být v systému unikátní.
- I přes to byl uživatel schopný získat na jeden účet větší množství kreditů za použití emailu z privátní domény (např.
info@bezpecnykod.cz
,info+test@bezpecnykod.cz
, atd. - stále jde o jeden a ten samý email). - Do emailu přišla uživateli verifkace, kde zadal telefonní číslo, které následně ověřil.
- Funkce nejdříve kontrolovala, zda je číslo v databázi, a potom ho sanitizovala.
- Stačilo API request upravit tak, aby na začátku telefonního čísla obsahoval nuly nebo bílé ASCII znaky a šlo o “jiné” telefonní číslo, které se v databázi nenacházelo.
- Nový kybersecurity program od Googlu.
- Google připravil nový kybersecurity program a certifikát v rámci svého programu Grow With Google.
- Účastníky program připraví na entry level pozice za necelých 6 měsíců a vyžadována není žádná předchozí znalost.
- Cílem je zvýšit počet pracovníků v kybersecurity odvětvích, kterých je stále větší nedostatek.
- Účastník se naučí identifikovat rizika, hrozby a zranitelnosti včetně technik, jak jim předcházet.
- Program obsahuje spoustu hands-on příkladů a připravuje i na CompTIA Security+ zkoušku.
- Kurz je dostupný na portálu coursera a není zdarma (bohužel), ale je možné si vyzkoušet 7-denní trial.
😂 Závěrečný ftípek: What did the moderator say to kick off the IT speed dating session? "Singles, sign on!"
🔔 Sledujte nás na LinkedInu, kam pravidelně sdílíme další novinky a know-how.
🆘 S bezpečností vám rádi pomůžeme, klidně nám napište - školíme vývojáře i management, nastavujeme procesy, vyvíjíme bezpečné aplikace a poskytujeme další služby.