.@trailofbits' Buttercup tým nyní na pódiu AIxCC hovoří o naší soutěžní strategii. Zde je náš základní tým (8 klíčových lidí + ~3 žoldáci):
Naše strategie hlavní zásady. TLDR použít nejlepší nástroj pro danou práci. Neočekávejte, že LLM budou magicky dobří ve věcech, o kterých víme, že nejsou.
Původní design Buttercup byl podstatně propracovanější. Bylo to oříznuto, aby to vyhovovalo pravidlům a zohlednilo to omezení zdrojů našeho týmu.
V semifinále jsme si vedli docela dobře, získali jsme mnoho prvních prolití, ale náš vyhledávač chyb v Javě se rozbil a my stále nevíme proč!
Semifinále potvrdilo náš celkový přístup, ale bylo třeba ho upravit, aby se přizpůsobilo masivnímu nárůstu rozsahu finále. Prototyp jsme zahodili a začali jsme do finále od nuly.
Henrik pracoval na nástroji Orchestrator: jak, co a kdy odeslat do soutěžního API. Rozhodli jsme se vždy vyžadovat PoV, abychom maximalizovali naši důvěru v příspěvky.
Run pracoval na našem enginu pro zjišťování zranitelností. Použili jsme standardní oss-fuzzové fuzzery. Použili jsme sdílený korpus, kde LLM pomáhaly fuzzerům získat pokrytí.
Ronald pracoval na našem enginu pro objevování zranitelností. Použili jsme standardní oss-fuzzové fuzzery. Použili jsme sdílený korpus, kde LLM pomáhaly fuzzerům získat pokrytí.
Ronald pracoval na našem enginu pro objevování zranitelností. Použili jsme standardní oss-fuzzové fuzzery. Použili jsme sdílený korpus, kde LLM pomáhaly fuzzerům získat pokrytí.
Patcher je multiagentní systém, 6 tisíc řádků kódu, LangChain/LangGraph, s nerozumným GPT-4.1. Bezpečnostní agent identifikuje hlavní příčiny, inženýr najde pokyny k testu, poté QA agent vytvoří opravu a ověří ji. Pokud selže, agent reflexe upraví strategii.
V exhibičních kolech jsme v 1. kole skórovali jako první, ve 2 jsme tvrdě narazili a ve 3 jsme se odrazili zpět. V 1. kole jsme byli efektivní z hlediska zdrojů, když jsme použili pouze 1 tisíc dolarů z rozpočtu 30 tisíc dolarů na LLM. Ve 2. kole jsme měli menší překlep, který všechno zhroutil.
V bodovaném kole jsme našli spoustu chyb s omezeným rozpočtem (polovina dostupných), s vysokou přesností a ve všech úkolech jsme dosáhli dobrých výsledků. Také jsme našli nejméně 1 chybu, kterou nikdo jiný v CRS neudělal, což ukazuje, že jsme pokryli novou půdu.
Jak jsme mohli tak dobře zabodovat? Měli jsme 90% přesnost, skóre ve všech úkolech a vytvořili vysoce kvalitní záplaty pro všechny naše chyby.
Minulý měsíc jsme strávili tvorbou zmenšené verze pryskyřníku, která běží na vašem notebooku. Máme v úmyslu ji zachovat s částí výher. Nyní je to open source!
3,96K