Přeskočit na hlavní obsah

Zabezpečte data všude

  • Citlivé údaje (hesla, čísla kreditních karet, zdravotní záznamy, obchodní tajemství) vyžadují zvýšenou ochranu
  • Zejména v případě, podléhají-li nějaké regulaci jako je GDPR nebo PCI DSS
  • Útočníci mohou data ukrást několika způsoby
    • Pokud jsou data odesílána přes internet pomocí nezabezpečené komunikace, může útočník ve stejné bezdrátové síti tato data vidět a ukrást
    • Útočník může využít jiné zranitelnosti systému (např. SQL injection) a ukrást hesla nebo jiná data z databáze a zveřejnit je

Klasifikace dat

  1. Určete, do jaké kategorie citlivosti jednotlivé údaje aplikace patří
  2. Přiřaďte každé kategorii pravidla pro její ochranu
    • Například veřejné marketingové informace budou klasifikovány jako veřejné údaje a není třeba je jakkoliv zabezpečovat
    • Čísla kreditních karet budou klasifikována jako osobní údaje, které může být nutné při ukládání nebo přenosu šifrovat

Šifrování dat při přenosu

  1. Zvažte určitý druh zabezpečení end-to-end komunikace při přenosu dat jakoukoli sítí
  • Nejběžnější a nejrozsáhlejší metodou je TLS, který používá mnoho typů aplikací
  • Protokol TLS musí být správně nakonfigurován, aby zajistil bezpečnou komunikaci
  • Hlavním přínosem zabezpečení transportní vrstvy je ochrana dat před neoprávněným odhalením a modifikací při jejich přenosu mezi klienty, serverem a dalšími komponentami

Šifrování dat v klidovém stavu

  1. Vyhněte se ukládání citlivých údajů, pokud je to možné
  2. Zajistěte kryptografickou ochranu citlivých údajů , aby nedošlo k jejich neoprávněnému odhalení nebo změně
  • Kryptografie (šifrování) je jedním z pokročilejších témat zabezpečení informací, jehož pochopení vyžaduje pokročilejší znalosti a zkušenosti
  • Je obtížné ji pochopit, protože existuje mnoho přístupů, jak šifrovat, z nichž každý má své výhody a nevýhody, kterým musí architekti a vývojáři porozumět
  • Výzkum v oblasti kryptografie je založen na pokročilé matematice a teorii čísel, což představuje překážku pro vstup do tohoto odvětví
  • Namísto budování kryptografických znalostí od nuly se důrazně doporučuje používat ověřená a open source řešení, jako je Google Tink nebo Libsodium a využít možnosti bezpečného ukládání dat zabudovaných v mnoha frameworcích a cloudových službách

Mobilní aplikace - zabezpečené úložiště

  • Obzvlášť ohroženy únikem dat
  1. Ukládejte pouze nezbytné minimum dat
  2. Uložte data v rámci specifického adresáře operačního systému, pokud citlivá data musíte ukládat
    • Android keystore
    • iOS keychain

Životní cyklus klíče

  • Secret keys = používají se v aplikacích s řadou citlivých funkcí - podepisování JWT, ochrana kreditních karet nebo různé formy ověřování
  1. Zajistěte, aby byl každý secret key chráněn před neoprávněným přístupem
  2. Uložte klíč do vhodného vaultu, jak je popsáno níže
  3. Používejte nezávislé klíče, pokud je vyžadováno více klíčů
  4. Vytvořte podporu pro změnu algoritmů a klíčů v případě potřeby
  5. Vytvořte funkce, které budou klíče pravidelně rotovat

Správa aplikačních secrets

  • Aplikace obsahují řadu secrets, které jsou potřebné pro správný běh
  • Patří mezi ně certifikáty, SQL credentials, API klíče, hesla, SSH klíče, šifrovací klíče a další
  • Neoprávněné odhalení nebo změna secrets může vést k úplné kompromitaci systému
  1. Neukládejte secrets do kódu, konfiguračních souborů ani je nepředávejte prostřednictvím proměnných prostředí
  2. Použijte nástroj na skenování repozirářů a kódu na přítomnost secrets (např. https://github.com/dxa4481/truffleHog)
  3. Uchovávejte klíče ve vaultu jako je https://github.com/square/keywhiz, Hashicorp Vault nebo Amazon KMS, které poskytují bezpečné úložiště a přístup k secrets na úrovni aplikace za běhu

Kam dál

Zranitelnosti

Checklisty

Další