A6 - Expozice citlivých dat

A6 - Expozice citlivých dat (Sensitive Data Exposure)

Zranitelnosti umožňující napadení nechráněných citlivých dat (mimo kontroly přístupu). A to od chvíle, kdy je uživatel zadá, jsou odeslány a uloženy v aplikaci až po poslání (zpět) do prohlížeče.


  • Nechráněné kryptografické ukládání (Insecure Cryptographic Storage) - rizika vyplývající z nedostatečně chráněných citlivých dat (čísla kreditních karet, rodná čísla atd.) šifrováním.
  • Nedostatečná ochrana transportní vrstvy (Insufficient Transport Layer Protection) – zranitelnosti umožňující napadení odposlechem sítí. Ohrožení dat na straně prohlížeče.
    Původce hrozby Vektor útoku Bezpečnostní slabina Technické dopady Obchodní dopady
    Aplikační specifikum Zneužitelnost
    obtížná
    Rozšíření
    vzácné
    Zjistitelnost
    průměrné
    Dopad
    važný
    Aplikační / obchodní specifikum
    Zvažte, kdo může získat přístup k citlivým datům a případným zálohám těchto dat. Jedná se o data v klidu, přesouvaná data i data v prohlížečích zákazníků. Ohrožení může přijít zvenku i zevnitř. Útočníci obvykle přímo neprolomí šifrovaná data. Dělají něco jiného, například kradou klíče, používají útoky typu man-in-the-middle, nebo kradou nešifrovaná data ze serveru, ať už během přenosu, nebo z prohlížeče uživatele. Nejčastější chybou prostě je, pokud nejsou citlivá data šifrovaná. Časté je generování a správa slabých šifrovacích klíčů a a používání slabých algoritmů, zvláště pak slabých technik hashování hesla. Velmi časté a snadno odhalitelné jsou slabiny prohlížeče, avšak takové nedostatky jsou těžko využitelné ve velkém měřítku. Zjištění nedostatků na straně serveru je pro externí útočníky obtížné kvůli omezenému přístupu a tyto chyby jsou také obvykle těžko zneužitelné. Chyba často ohrožuje veškeré údaje, které by měly být chráněné. Obvykle se jedná o informace, které obsahují citlivé údaje, jako jsou zdravotní záznamy, pověření, osobní údaje, kreditní karty, atd. Zvažte obchodní hodnotu ztracených dat a dopad na svou pověst. Jakou nesete právní odpovědnost, pokud jsou tato data nechráněná? Také zvažte poškození své pověsti.
    Jsem zranitelný vůči „expozici citlivých dat“?
    První věc, kterou musíte zjistit, je, která data kvůli své citlivosti vyžadují zvláštní ochranu. Například hesla, čísla kreditních karet, zdravotní záznamy a osobní údaje by chráněny být měly. Pro všechny tyto údaje zkontrolujte:
    • 1. Nejsou některá z těchto dat, počítaje v to také zálohy, dlouhodobě uložena jako prostý text?
    • 2. Nejsou některá z těchto dat interně nebo externě přenášena jako prostý text? Zvláště nebezpečený je internetový provoz.
    • 3. Nepoužívají se zastaralé nebo slabé kryptografické algoritmy?
    • 4. Negenerují se slabé šifrovací klíče? Nechybí dostatečná správa nebo rotace klíčů?
    • 5. Nechybí nejaká bezpečnostní direktiva nebo hlavičky, když se citlivá data posílají prohlížeči?
    A tak dále ... více informací o této problematice viz ASVS areas Crypto (V7), Data Prot. (V9), a SSL (V10).
    Jak mohu předejít „expozici citlivých dat“?
    Všechna rizika nezabezpečné kryptografie, používání SSL a ochrany dat jsou nad rámec Top 10. To znamená, že byste pro všechna citlivá data měli udělat přinejmenším toto:
    • 1. Vzhledem k míře ohrožení plánujte chránit tato data, ujistěte se, že šifrujete všechna citlivá data, která jsou v klidu i která se přesouvají, a to způsobem, který je chrání proti těmto hrozbám.
    • 2. Citlivá data neukládejte zbytečně. Co nejdříve je zlikvidujte. Data tak nemohou být ukradena.
    • 3. Zajistěte používání silných standardních algoritmů, silných klíčů a řádnou správu klíčů. Zvažte použití FIPS 140 validovaných kryptografických modulů.
    • 4. Zajistěte ukládání hesel pomocí algoritmů, které jsou speciálně navrženy pro ochranu hesel, jako je bcrypt, PBKDF2 nebo scrypt.
    • 5. Zakažte automatické doplňování (autocomplete) ve formulářích, které sbírají citlivá data a zakažte kešování stránek, které obsahují citlivá data.
    Příklady možných útoků

    Scénář č. 1: Aplikace, která šifruje čísla kreditních karet v databázi, používá automatické šifrování databáze. To ovšem znamená, že i automaticky tato data dešifruje při jejich načítání, takže v případě SQL injection je možné získat čísla kreditních karet jako prostý text. Systém by měl mít čísla kreditních karet šifrovaná pomocí veřejného klíče a pouze back-endové aplikace by měly mít povoleno tato data dešifrovat pomocí soukromého klíče.

    Scénář č. 2: Webové stránky prostě nepoužívají SSL pro všechny autentizované stránky. Útočník jednoduše monitoruje provoz v síti (jako otevřené bezdrátové sítě) a ukradne cookie relace uživatele. Útočník pak použije tuto cookie, unese uživatelovu relaci a získá přístup k jeho soukromým datům.

    Scénář č. 3: Databáze hesel používá pro ukládání všech hesel nesolené hashe. Chyba v uploadu souboru umožňuje útočníkovi získat soubor s hesly. Všechny nesolené hashe mohou být odkryty pomocí tzv. duhové tabulky předpočítaných hashů.

    Odkazy
    OWASP:

    Úplnější seznam požadavků viz v ASVS req’ts on Cryptography (V7), Data Protection (V9) a Communications Security (V10)

    Externí:
    Originál o expozici citlivých dat v angličtině