Jak prověřujeme naše nástroje?

Jak prověřujeme naše nástroje?

Open source tvoří samotný základ kybernetické bezpečnosti. Jména jako jsou nmap, Wireshark, Kali Linux nebo třeba Hashcat by měl poznat úplně každý, kdo se v této oblasti pohybuje. Co ale méně známé projekty? Často se setkáváme s tím, že buď pro zefektivnění naší práce, nebo pro klienty nasazujeme menší jednoúčelové open source nástroje pro řešení konkrétních problémů. Můžeme jim ale naplno důvěřovat a spustit je v produkčním prostředí? Co když ten proof-of-concept exploit psaný v Cčku na tu obskurní zranitelnost, kterou jsme v pentestu našli, zašifruje klientovi disk?

Prověřování open source

To samozřejmě nemůžeme připustit, a proto všechny nástroje pečlivě prověřujeme. Prvotní kontrola by měla proběhnout ještě před stažením nebo naklonováním repozitáře. Měli bychom prohlédnout, kdo do projektu přispívá a jak často, zda s projektem interagují uživatelé (issues, stars, pull requests) nebo zda projekt nezávisí na knihovnách se známými zranitelnostmi.

Následuje hlubší kontrola, ve které používáme zejména dynamickou analýzu. V této oblasti existuje řada komerčních i veřejně dostupných nástrojů, jako je Any.Run, Joe Sandbox nebo třeba Hybrid Analysis. I VirusTotal, který bývá spojován primárně se statickou analýzou, posílá vzorek na dynamickou analýzu do dalších služeb. Pro detailní kontrolu používáme nástroje jako sysdig na Linuxu nebo Process Monitor na Windows. Ty umožňují získat velké množství informací o operacích, které monitorovaný proces nebo skupina procesů provádí.

seznam událostí v Process Monitoru

Data lze prohlížet buď přímo v aplikaci použitím nástrojů jako jsou File Summary, Network Summary nebo Registry Summary, případně lze data exportovat třeba do CSV a analyzovat manuálně. Tím se Process Monitor liší od nástroje sysdig, který možnosti analýzy přímo v GUI nemá tak uživatelsky přivětivé. Za zmínku určitě stojí, že best practice při analýze neznámých projektů určitě je analýzu provádět v izolovaném prostředí, např. ve virtuálním stroji.

Zjednodušeně a v Dockeru

Za cenu menšího množství dostupných informací to jde i jednodušeji. Aplikaci můžeme spustit v Docker kontejneru, který připojíme do speciální sítě. Pomocí iptables a chainu DOCKER-USER, pak pro síť můžeme definovat pravidla omezující dostupné IP adresy. Tento postup je vhodný zejména pro malé aplikace, u kterých víme, nebo dokážeme předvídat, kam by měly komunikovat a kam naopak ne.

Chain DOCKER-USER (1 references)
num   pkts bytes target     prot opt in     out     source               destination
1        4   336 ACCEPT     all  --  br-e816a97785b0 *       0.0.0.0/0            8.8.8.8
2        0     0 ACCEPT     tcp  --  br-e816a97785b0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53
3        0     0 ACCEPT     udp  --  br-e816a97785b0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
4    14409 1210K ACCEPT     all  --  br-e816a97785b0 *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
5     7284  612K DROP       all  --  br-e816a97785b0 *       0.0.0.0/0            0.0.0.0/0
6     189K  281M RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0
možné nastavení chainu DOCKER-USER

Reputace není všechno

Prověřování open source nástrojů by neměl být požadavek kladený pouze na penetrační testery, kteří hledají nejnovější proof of concept exploity, ale na všechny, kteří s open source pracují. Navíc to, že projekt má miliony uživatelů ještě neznamená, že je bezpečný. Pro příklady útoků, které open source zneužily, nemusíme chodit vůbec daleko. Před pár dny byly zveřejněny nové informace k útoku na Notepad++, ze kterých vyšlo najevo, že útočníci byly schopni kompromitovat infrastrukturu a distribuovat škodlivé aktualizace. Trochu jiným způsobem byly v roce 2024 napadeny XZ Utils, což vedlo na remote code execution zranitelnost s CVSS skóre 10.0.

Jako vždy je nejlepší obrana kombinovaná obrana. Podobně jako spoleh na reputaci není ani dynamická analýza všespásná a vyplatí se ji kombinovat s dalšími metodami obrany, jako je silné EDR, deception technology nebo odkládání aktualizací. Stejně jako v případě XZ Utils, kdy byly dopady zranitelnosti sníženy tím, že knihovna nebyla ještě rozšířena mezi produkční systémy, můžete i Vy odkládat aktualizace a sledovat, zda se v nich neobjeví zranitelnosti.