XBEN je otvorený web-exploitačný benchmark publikovaný spoločnosťou XBOW Engineering: 104 samostatných webových aplikácií, každá skrýva flag. Na vyriešenie jednej z nich musí agent nájsť a zneužiť reálnu zraniteľnosť — IDOR, injekciu, obídenie autentifikácie, template injection, XXE — a získať flag. Stal sa referenčnou sadou pre autonómne pentestové agenty.
Rovnaký engine, ktorý poháňa skeny našich zákazníkov, sme namierili na všetkých 104, black-box: bežiaca aplikácia a nič viac, žiadny zdrojový kód, žiadne nápovedy. Pozoruhodné nie je tých 100% — samotný XBOW poznamenáva, že sada je dnes v celom odvetví z veľkej časti vyriešená — ale ktorá úroveň to dokázala.
Výsledok
Všetkých 104 vyriešených, v rýchlej úrovni: náš najrýchlejší a najlacnejší režim skenovania, poháňaný menším a rýchlejším modelom. Keďže najrýchlejšia úroveň už sadu zvládla, pomalšie úrovne standard a deep sme na nej nespúšťali.
| Náročnosť | Vyriešené | Úspešnosť |
|---|---|---|
| Úroveň 1 — Ľahká | 45 / 45 | 100% |
| Úroveň 2 — Stredná | 51 / 51 | 100% |
| Úroveň 3 — Ťažká | 8 / 8 | 100% |
| Spolu | 104 / 104 | 100% |
Týchto 104 výziev pokrýva 26 rôznych tried zraniteľností: XSS (23), predvolené prihlasovacie údaje (18), IDOR (15), eskalácia oprávnení (14), server-side template injection (13), command injection (11), biznis logika (7), SQL injection (6), local file inclusion (6), nebezpečná deserializácia (6), ľubovoľné nahrávanie súborov (6), únik informácií (6), path traversal (5), XXE, SSRF, JWT, GraphQL, kryptografické chyby, blind SQLi a ojedinelé prípady ako request smuggling, race conditions a NoSQL injection.
Priemerný čas riešenia bol 9.7 minúty na výzvu; najrýchlejšie riešenie trvalo 1.5 minúty. Celá sada si vyžiadala približne 16.8 hodiny výpočtového času, úplne bez dozoru.
Ako sa riešenie hodnotí
Každý XBEN flag je deterministický — odvodzuje sa od názvu výzvy a je zabudovaný do aplikácie v čase zostavenia. Beh sa počíta ako vyriešený iba vtedy, keď engine autonómne objaví a nahlási presne tento flag. Neexistuje čiastočné hodnotenie ani človek v procese: engine dostane URL a pokyn zachytiť flag a buď sa vráti so správnym FLAG{...}, alebo nie.
Prečo je príbehom rýchla úroveň
Výsledky autonómneho pentestu sa dajú ľahko nafúknuť: dajte agentovi zdrojový kód (white-box), neobmedzený čas, špičkový model a niekoľko opakovaní a množstvo sád padne. My sme urobili opak. Bolo to black-box, jediný priebeh, bez dozoru, na najlacnejšom modeli, ktorý ponúkame. To, že rýchly a lacný sken zvládne sadu postavenú z reálnych exploitačných výziev, je to, čo stojí za zmienku — pretože práve v tejto úrovni beží väčšina skenov našich zákazníkov.
Úprimná časť
Číslo ako 100% si zaslúži svoje hviezdičky, takže tu sú:
- XBEN je validačná sada. Je to vlastná verejná sada spoločnosti XBOW, navrhnutá tak, aby bola riešiteľná, a dnes je široko vyriešená. Perfektné skóre je overením zdravého rozumu pre náš engine, nie tvrdením, že sme "vyriešili bezpečnosť webu".
- Hodnotenie je zámerne zhovievavé. Výzva sa počíta, ak sa v behu objaví správny flag — presne tak má byť sada hodnotená, a je to štedré v porovnaní s benchmarkmi založenými na cieľoch.
- Tento beh prebehol na platenom API. Black-box a bez obsluhy. Je plne reprodukovateľný — harness aj log ku každej výzve zverejňujeme spolu s týmito číslami.
Pre kontrast, na CVE-Bench — náročnejšej sade s prísnym hodnotením založeným na cieľoch — rovnaký engine vyrieši oveľa menší podiel (a zistili sme, že niektoré z jej "zlyhaní" boli v skutočnosti chyby v hodnotiacom nástroji benchmarku). Rôzne benchmarky merajú rôzne veci; zverejňujeme oba.
Čo bolo potrebné na jeho spustenie
Spustiť štyri roky starý benchmark od začiatku do konca v roku 2026 je samo o sebe malé dobrodružstvo. Pred tým, než sa vôbec zostavila jediná výzva, bolo treba vyriešiť dva problémy s prostredím:
- Novší plugin Docker Compose odmieta syntax
expose: "3306:3306", ktorú staršie výzvy používajú; databázové služby si vyžiadali prepísanie svojich expose záznamov na jediný port. - Zhruba štyridsať výziev je postavených na archivovaných základných obrazoch Debian, ktorých repozitáre balíkov sa presunuli na
archive.debian.org, takžeapt-getvracia chyby 404; ich Dockerfile súbory si vyžiadali presmerovanie APT zdrojov na archív.
Hŕstka jednotlivých výziev si tiež vyžiadala aktualizácie verzií — obraz Python natoľko starý, že sa závislosť nedala zostaviť, verzia Composer, ktorá teraz blokuje balík označený upozornením, Node sidecar používajúci syntax, ktorú jeho starý runtime nedokázal spracovať. Nič z toho nie je engine; je to bit-rot benchmarku a stojí za zmienku pre každého, kto sa pokúsi beh reprodukovať.
Pozrite si to, alebo si to spustite
Úplný rozpis — podľa náročnosti a triedy zraniteľnosti, s metodikou — nájdete na našej stránke benchmarku. A engine, ktorý zvládol týchto 104 cieľov, je ten istý, čo poháňa vaše skeny: namierte ho na vašu vlastnú aplikáciu a pozrite sa, čo nájde.
