Autonomní AI pentesty – přehled

Autonomní AI pentesty – přehled

Rozmach v oblasti umělé inteligence je nepopiratelný. Vývojářské platformy založené na AI, které uživatelům umožňují programovat formou rozhovoru s virtuálním asistentem bez nutnosti tradičního programování, podstatně rozšířily okruh lidí, kteří mohou vytvářet software. Tato demokratizace vývoje aplikací (zejména webových) s sebou přinesla markantní zrychlení vzniku nových produktů. Problémem je, že jejich tvůrci často nemají znalosti z oblasti kybernetické bezpečnosti, což končí tím, že podle některých studií dnes kolem 40 % programů vytvořených za pomoci AI obsahuje zranitelnosti.

Kybernetická bezpečnost však zaostává. Zatímco aplikace může dnes s pomocí AI vyvíjet téměř široká veřejnost, proces jejich auditu a testování zůstává závislý na manuálních procesech a nástrojích, jejichž výstupy nevyhnutelně vyžadují interpretaci lidským analytikem. Existují sice automatizované nástroje pro analýzu kódu a detekci zranitelností, např. SQLmap pro SQL injection. Jejich výstupy je však nutné zasadit do kontextu. Stále častěji se totiž setkáváme se zranitelnostmi v business logice aplikace, jako je obcházení pracovních postupů, které nutně vyžadují znalost aplikace a schopnost zneužití zranitelností v jejím konkrétním kontextu.

Reakce trhu se dostavila poměrně rychle. Za poslední dobu vznikla celá řada projektů, které se prezentují jako autonomní nebo alespoň automatizované platformy pro penetrační testování. Která je ale ta pravá pro Váš konkrétní use case a podle čeho je vůbec posuzovat?

Z čeho vybíráme

V tabulce níže jsou jednotlivé projekty popsány podle tří metrik – typu, úrovně autonomie a typu projektu. Co se typu týče, rozlišili jsme variantu single-agent a multi-agent. Single-agent produkty používají pro celý test jednoho agenta, který se tak stará o plánování útoku, rešerši, vytvoření exploitu a jeho spuštění. Dnes preferovanější přístup je multi-agent architektura. Ta nástroj dekomponuje do několika částí, přičemž o každou z nich se stará specializovaný agent. Tím napodobuje fungování skutečných red teamů, ve kterých také typicky funguje dělba práce na základě specializací jeho členů.

Dle úrovně autonomie, rozlišujeme produkty do následujících kategorií:

  • Úroveň 0 – no tools: Analytik provádí práci manuálně bez použití jakýchkoliv nástrojů. V dnešní době se jedná o nemyslitelný přísutp.
  • Úroveň 1 – manual tools: Analytik používá nástroje (nmap, Metasploit), ale interpretace a rozhodování je stále v jeho gesci.
  • Úroveň 2 – LLM-assisted: Umělá inteligence připravuje plán testu, navrhuje strategii nebo přímo generuje kód či příkazy pro použití nástrojů. Analytik však provádí a dohlíží nad všemi prováděnými operacemi.
  • Úroveň 3 – semi-automated: Produkt dokáže automaticky provést sken, zneužít zranitelnost a vytvořit report, avšak pouze v případě, že se jedná o přímočaré nekomplikované varianty útoků. Řešení mezních případů, ověřování a návrh protiopatření je stále na analytikovi.
  • Úroveň 4 – cybersecurity AI: Umělá inteligence je schopna autonomně projít celým životním cyklem penetračního testu s minimální nutností zásahu. Dokáže plánovat, skenovat, zneužívat zranitelnosti a sama navrhovat protiopatření.
  • Úroveň 5 – autonomous: Produkt je schopen veškeré úkoly provádět autonomně bez nutnosti zásahu analytika. Zatím se jedná pouze o abstraktní úroveň a neexistují žádné veřejné projekty, které by této míry autonomie dosahovaly.
Název Typ Úroveň autonomie Typ projektu
PentestGPT single-agent 2 (LLM-assisted) open-source
AutoPT single-agent 3 (semi-automated) open-source (akademický)
VulnBot multi-agent 3 (semi-automated) open-source (akademický)
CAI multi-agent 4 (cybersecurity AI) open-source
XBOW multi-agent 4 (cybersecurity AI) komerční
PentAGI multi-agent 4 (cybersecurity AI) open-source
RedTeam-LLM single-agent 3 (semi-automated) akademický
AutoAttacker single-agent 2 (LLM-assisted) akademický
PentestAgent multi-agent 4 (cybersecurity AI) open-source (akademický)
Perses multi-agent 4 (cybersecurity AI) akademický
RapidPen single-agent 4 (cybersecurity AI) akademický
HackSynth single-agent 3 (semi-automated) open-source (akademický)
AutoPentest multi-agent 4 (cybersecurity AI) open-source (akademický)
RefPentester single-agent 4 (cybersecurity AI) akademický
HPTSA multi-agent 4 (cybersecurity AI) akademický

Z open-source řešení vyvstávají zejména PentestGPT, CAI a PentAGI. PentestGPT má z této trojice nejjednodušší adaptaci, neboť je velmi blízko k dnes široce používaným nástrojům, jako je ChatGPT. Z toho důvodu jej také najdeme na 2. úrovni autonomie. Primárně totiž funguje jako poradce, který navrhuje další kroky nebo píše skripty na základě aktuální situace, ale nezabývá se širším kontextem nebo dlouhodobým plánováním. Navíc se soustředí primárně na webové aplikace.

CAI a PentestAGI jsou ambicióznější. Už jen díky jejich multi-agentnímu řešení podporují hlubší uvažování a specializaci agentů v jednotlivých oblastech penetračního testování (průzkum, hledání zranitelností, návrh exploitu). Snaží se minimalizovat závislost na analytikovi, autonomně procházet celým životním cyklem penetračního testu a adaptovat postupy na základě nově získaných informací. Odlišují se však v architektuře. CAI se snaží agenty koordinovat pomocí centrálního plánovače, kdežto PentAGI umožňuje agentům plánovat zvlášť s pomocí sdíleného kontextu. Zatímco CAI agentům přisuzuje fixní role a váže se tak na typický postup skenování, zneužití zranitelnosti a mitigace, PentAGI agentům umožňuje role měnit a napodobovat tak chování skutečného red teamu. CAI navíc klade v závěrečné fázi testu důraz na návrh protiopatření, kdežto PentAGI tento aspekt příliš neakcentuje.

Podle čeho vybíráme

Zásadním nedostatkem v oblasti autonomního penetračního testování nejsou benchmarky jako takové, ale jejich unifikace. Existuje celá řada projektů, které se snaží vytvořit metodologii pro hodnocení nástrojů autonomního pentestování. Někteří používají CTF challenge, jiní známá CVE nebo zranitelné stroje. Neexistuje však jedno všeobjímající měřítko, pomocí kterého bychom mohli srovnat všechny nástroje na trhu. Tímto nedostatkem trpí zejména close-source komerční nástroje (např. XBOW), jejichž vyhodnocení jednoduše nelze bez zakoupení produktu provést.

Mezi známé benchmarky patří např. CVE-Bench, AutoPenBench, NYU CTF Bench nebo XBOW Validation Benchmarks. Jednotlivé projekty však typicky testují jeden nebo několik málo dostupných nástrojů. Nezbývá tedy než se při výběru orientovat na základě architektury, míry autonomie a dostupných prostředků.

Proč ještě nejsou všude

Průnik AI do světa penetračního testování však není zdaleka tak rychlý, jak by se mohlo zdát. V současnosti jsou nástroje primárně užívány v dobře zmapovaných a izolovaných prostředích. S vyšším stupněm autonomie totiž nepochybně přichází i vyšší riziko. Z podstaty věci se analytik do jisté míry vzdává kontroly nad procesem penetračního testování, který je v mnoha případech velmi citlivý. Špatně nastavený nástroj může vést k nepříjemným dopadům, jako je neúmyslná exfiltrace zákaznických dat, smazání databáze nebo jinému nevratnému poškození systému.

Z toho důvodu jsou dnes nástroje založené na AI typicky nasazovány v situaci, kde k takovým okolnostem nemůže dojít. Autoři je s oblibou používají pro sandboxovaná prostředí CTF soutěží nebo speciálně navržených zranitelných zranitelných strojů (např. HackTheBox). Často se také používají pro hledání zranitelností v open source projektech, které si může každý nasadit lokálně a vyhnout se tak výše zmiňovaným rizikům.