Přeskočit na hlavní obsah

Jak zvládnout bezpečnostní incident, PCI-DSS compliance, vánoční dárek, a další

Jak se připravit na bezpečnostní incident, jak ho řešit a jak ho uzavřít. Musím být PCI-DSS compliant, když používám Stripe? čTečka v rozporu se zákonem. Jak najít a opravit zranitelnosti.


🏆 Téma: Příprava na bezpečnostní incident

  • Je jen otázkou času, kdy aplikace zaznamená nějaký bezpečnostní incident / útok.
  • V dnešní době je zahájit útok na vybraný cíl otázka několika minut.
    • Existuje řada hacking nástrojů a frameworků.
    • Spousta činností je automatizovaná.
    • Návody a tutoriály jsou veřejně dostupné.
  • Abyste mohli útoky odhalit, potřebujete jednotlivé funkce aplikace vhodně logovat.
    • Logujte kdo (identifikátor uživatele), kdy (timestamp), co (funkce) a jak (kontext) použil.
    • Logujte minimálně citlivé operace (změna hesla), high value transakce (platby, velké objednávky), admin funkce, manipulace s osobními / citlivými údaji a další citlivé akce v kontextu vaší aplikace.
    • Doporučuju však logovat veškerou aplikační funkcionalitu.
  • Díky logům můžete aplikaci vhodně monitorovat.
    • Existují monitorovací nástroje v rámci cloudových služeb nebo samostatné nástroje, jako je Grafana a další.
  • Monitoring nástroje umožňují nastavit pravidla pro jednotlivé funkce.
    • Např. “Pokud uživatel zadá heslo špatně 5x za sebou, vytvoř varování.” apod.
  • Tato pravidla mohou být propojena s alerting nástroji typu PagerDuty - v případě varování nebo jiné chyby tento nástroj zavolá příslušnému adminovi nebo vývojáři, který bude danou situaci řešit.
    • Například uživatele ručně zablokuje nebo na základě dalších logů a chování uživatele zváží další kroky.
  • Předcházet některým typům útoků můžete i pomocí tzv. WAF, web server pluginů a filtrů, jako je ModSecurity a další.
    • WAF = Web Application Firewall - chrání zejména proti botům nebo DoS, např. Cloudflare.
    • IPS = Intrusion Prevention System - hlídá síť před narušením a známými zranitelnostmi, např. CrowdSec.
  • Výše zmíněné aplikace a nástroje vám pomůžou nejen se zabezpečením aplikace, ale také se díky nim dozvíte, že aplikace čelí útoku.
    • Některé firmy, případně větší eshopy a další služby, mají povinnost tuto informaci hlásit NÚKIBu (v rámci kybernetického zákona).

Jak se připravit na útok

  • Řešení incidentu se dá rozdělit na tři kroky.
    1. Příprava před útokem.
    2. Samotný útok.
    3. Uzavření incidentu.

Příprava před útokem

  • Do této fáze patří všechny výše zmíněné kroky - logování, monitoring, nastavení WAF a další.
  • Už v rámci vývoje aplikace se pomocí těchto činností připravujete na potenciální útok.
  • Jako vývojář nebo administrátor, který bude budoucí incident řešit, potřebuju mnohem víc.
    1. Mít dostatečná oprávnění do služeb, které můžu při řešení incidentu potřebovat.
      • Např. Sentry, Google Cloud, Grafana, Cloudflare, GitHub…
      • Bez dostatečných oprávnění si nic neověřím, nedokážu zapnout další vrstvu ochrany atd.
      • Přístupy je potřeba vyřešit ještě před útokem.
        • Předcházíte tím dalším problémům - šéf je na dovolené (nemůže přidělit přístup), útok se koná v noci (musel bych vzbudit půlku týmu)…
    2. Znát kontext, funkce aplikace, vyznat se v používaných službách a nástrojích.
      • Pokud má někdo řešit incident, je potřeba, aby efektivně ovládal a znal použité technologie, včetně nástrojů.
      • Znalost samotné aplikace a všech funkcí je nutností, jinak bude řešení incidentu pomalé, v horším případě úplně nemožné.
    3. Buddy na telefonu.
      • Každý pracovník by měl mít seznam kontaktů, komu a v jakém případě zavolat.
      • Incident se ne vždy týká jen samotné aplikace a je potřeba informovat i další týmy.
      • Pokud si pracovník neví rady / onemocní / nedostane hlášení o incidentu, měl by existovat zástupce.

Samotný útok

  • Tato část je velmi individuální (závisí na typu útoku) a celé aplikaci.
  • Pracovník sleduje logy a vyhodnocuje samotný útok.

Uzavření incidentu

  • Mimo zákonné požadavky by se měl sepsat post-mortem - dokument, který vysvětluje, co se stalo a jak se problém řešil.
  • Shrnuje veškeré kroky a opatření, ale také procesní nedostatky, které se na jeho základě napraví.
  • S dokumentem je potřeba seznámit všechny relevantní lidi z týmu / oddělení / firmy.
  • Post-mortem často slouží jako reference pro řešení dalších podobných incidentů, nebo jako onboarding dokument pro nové zaměstnance - jde o takovou znalostní bázi / dokumentaci.

🎓 Učíme se společně

Co jsme se dozvěděli z přednášek, školení, čtení knih a dalších aktivit?

PCI-DSS 4.0 pro bezpečnost API

  • online přednáška a workshop (bez záznamu)
  • Cílem PCI-DSS je zamezit úniku citlivých dat o držitelích platebních karet.
    • Jde o soubor mezinárodních bezpečnostních standardů.
  • Týká se každého, kdo pracuje s daty kreditní karty (hlavně PAN kódy).
    • Každý, kdo zpracovává platby (online obchody, platební brány, software, který se používá k zabezpečení platebních bran atd.).
    • Prakticky kdokoli po vás může vyžadovat potvrzení, že jste PCI compliant.
  • Předmětem PCI-DSS se můžete stát i v případě, že používáte Stripe nebo jinou platební bránu.
    • Zejména pokud ukládáte veškerá data o platbě (neukládat to, co nutně nepotřebujete).
  • Standard požaduje zavedení bezpečnosti do vývojového cyklu (S-SDLC), jako je například skenování zranitelností pomocí statické analýzy kódu, kontrola zranitelností závislostí třetích stran, kontrola nezdokumentovaných endpointů a skrytých funkcí, atd.
    • Jde o běžná bezpečnostní opatření, která souvisejí nejen s bezpečností software, ale také s jeho kvalitou.
    • Jde o požadavky související nejen s organizačními a procesními záležitostmi, ale i se zdrojovým kódem a vývojovým cyklem = pokud jste NIS2 nebo SOC2 compliant, nemusí to znamenat, že jste i PCI-DSS compliant.
  • Aktuálně se používá verze 3 tohoto standardu, ale ta přestane být uznávána 31. března 2024 a verze 4 se stane povinnou 31. března 2025 (je tam jeden rok prostor na implementaci, doporučuju přecházet už teď).
  • Všechny informace najdete na PCI stránkách, kde je také guidance a FAQs, nebo mě kontaktujte, rád vám s přechodem na novou verzi pomůžu.

📰 Co je nového

  1. Aplikace “čTečka” byla v rozporu se zákonem
    • Při kontrole covid certifikátu aplikací čTečka docházelo ke zpracování osobních údajů (GDPR) a zásahu do práva na ochranu soukromí.
    • Aplikaci bylo nutné povinně využívat a mimo jiné při skenování certifikátu zobrazovala datum narození a datum očkování.
    • Ministerstvo zdravotnictví při používání aplikace čTečka podle soudu zcela rezignovalo na dodržování práva na ochranu soukromí občanů.
    • Ministerstvo v rámci řízení nepravdivě tvrdilo, že podmínky stanovené GDPR splnit nemusí (to vyvrátil Soudní dvůr EU).
    • Soud také potvrdil, že Ministerstvo zdravotnictví bezprecedentním způsobem ohrozilo osobní údaje všech občanů, kteří aplikaci využívali.
      • To se netýkalo jen českých občanů, ale také cizinců, kteří aplikaci využívali.
    • Samotná aplikace čTečka byla prohlášena za nezákonnou.
  2. Jak najít a opravit aplikační zranitelnosti?

🎁 Začněte nový rok bezpečně 🎅

Vánoce už jsou za dveřmi, ale Ježíšek dorazil o něco dřív. Využijte slevu 25 % a hodinovou konzultaci zdarma při objednání firemního školení na téma “Nejčastější aplikační a API zranitelnosti”. Toto školení je až celodenní, obsahuje case studies, ukázky zdrojových kódů, mitigaci zranitelností, best practices a další.

Máte o školení zájem? Napište mi na stefan@stefanprokop.dev a pošlu vám osnovu, ceník a další informace. Nabídka je platná do 1. 2. 2024.

Toto je můj poslední newsletter v roce 2023, takže mi dovolte vám popřát veselé Vánoce a šťastný nový rok 🎉. Užijte si je ve zdraví a v bezpečí a uvidíme se zase v lednu 2024. Vážím si toho, že jste součástí naplňování vize Bezpečného kódu, kterou je zvýšení povědomí o aplikační bezpečnosti a pomoc firmám a vývojářům se zabezpečením jejich software.

Dárek k Vánocům můžete dát i vy mně. Budu moc rád, když mi vyplníte zpětnou vazbu a zhodnotíte obsah newsletteru za tento rok. Zpětnou vazbou mi dáte najevo, co vás zajímá a co ne. Můžete se tak podílet na utváření tohoto newsletteru společně se mnou.


😂 Závěrečný ftípek: Na světě je 10 typů lidí. Ti kteří rozumí binárnímu systému a ti, kteří ne.