Přeskočit na hlavní obsah

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).
  • Příklad:
    1. Webová stránka obsahuje formulář s textovým polem (jménem) + tlačítkem a nadpis “Ahoj:”.
    2. Po zadání jména Kamil do formuláře a stisknutí tlačítka, se na stránce zobrazí: “Ahoj: Kamil”.
    3. 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”.
    4. 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.
  • Mechanismus kontroluje protokol, hostitele a port - pokud se neshodují, přístup ke stránce zamítne.
  • 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.
  1. Zjistěte, jak váš framework brání XSS a jaké má mezery.
  2. Validujte veškerý uživatelský vstup (formuláře, URL parametry, atd.).
  3. Použijte knihovnu pro encoding výstupu (často součástí frameworku).
  4. Sanitizujte HTML (např. DOMPurify).
  5. 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ý.
  6. 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

  1. Ú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.
  2. 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.
  3. 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.