.@trailofbits' zespół Buttercup mówi teraz o naszej strategii konkurencyjnej na scenie AIxCC. Oto nasz zespół podstawowy (8 kluczowych osób + ~3 najemników):
Nasze zasady przewodnie strategii. TLDR użyj najlepszego narzędzia do zadania. Nie oczekuj, że LLM będą magicznie dobre w rzeczach, o których wiemy, że nie są.
Oryginalny projekt Buttercup był znacznie bardziej zaawansowany. Został uproszczony, aby dostosować się do zasad i uwzględnić ograniczenia zasobów naszego zespołu.
W półfinałach wypadliśmy bardzo dobrze, zdobywając wiele pierwszych krwi, ale nasz wyszukiwacz błędów w Javie się zepsuł i wciąż nie wiemy dlaczego!
Półfinały potwierdziły nasze ogólne podejście, ale wymagało ono dostosowania, aby pomieścić ogromny wzrost skali na finały. Wyrzuciliśmy prototyp i zaczęliśmy od zera na finały.
Henrik pracował nad orkiestratorem: jak, co i kiedy przesyłać do API konkursu. Zdecydowaliśmy, że zawsze będziemy wymagać PoV, aby maksymalizować nasze zaufanie do zgłoszeń.
Uruchomiono pracę nad naszym silnikiem odkrywania luk. Użyliśmy standardowych fuzzersów oss-fuzz. Użyliśmy wspólnego korpusu, w którym LLM-y wspierały fuzzersy w uzyskiwaniu pokrycia.
Ronald pracował nad naszym silnikiem do odkrywania luk w zabezpieczeniach. Użyliśmy standardowych fuzzersów oss-fuzz. Użyliśmy wspólnego korpusu, w którym LLM-y wspierały fuzzersy w uzyskiwaniu pokrycia.
Ronald pracował nad naszym silnikiem do odkrywania luk w zabezpieczeniach. Użyliśmy standardowych fuzzersów oss-fuzz. Użyliśmy wspólnego korpusu, w którym LLM-y wspierały fuzzersy w uzyskiwaniu pokrycia.
Patcher to system wieloagentowy, 6 tys. linii kodu, LangChain/LangGraph, z GPT-4.1 bez rozumowania. Agent bezpieczeństwa identyfikuje przyczyny źródłowe, agent inżynier znajduje instrukcje testowe, a następnie agent QA tworzy poprawkę i ją weryfikuje. Jeśli to się nie powiedzie, agent refleksji dostosowuje strategię.
W rundach wystawowych zdobyliśmy pierwsze miejsce w rundzie 1, mocno się załamaliśmy w 2, a w 3 wróciliśmy do gry. Byliśmy efektywni w wykorzystaniu zasobów w rundzie 1, używając tylko 1 tys. dolarów z budżetu 30 tys. dolarów na LLM. W rundzie 2 mieliśmy drobny błąd, który wszystko zrujnował.
W ocenianej rundzie znaleźliśmy wiele błędów przy ograniczonym budżecie (połowa dostępnego), z wysoką dokładnością i uzyskaliśmy dobre wyniki we wszystkich zadaniach. Znaleźliśmy również przynajmniej 1 błąd, którego nikt inny z CRS nie znalazł, co pokazuje, że odkryliśmy nowe obszary.
Jak udało nam się uzyskać tak dobry wynik? Mieliśmy 90% dokładności, zdobyliśmy punkty we wszystkich zadaniach i stworzyliśmy wysokiej jakości poprawki dla wszystkich naszych błędów.
Spędziliśmy ostatni miesiąc na tworzeniu pomniejszonej wersji buttercup, która działa na twoim laptopie. Zamierzamy ją utrzymywać z części wygranych. Teraz jest open source!
3,97K