Anthropics Frontier Red Team og Theorem, som arbeider med formelle metoder, sier at Claude laget maskinsjekkede bevis for 239 inngangspunkter for fuzz-tester i 123 åpen kildekode-biblioteker. Bevisene gjelder bestemte egenskaper ved kompilert RISC-V-kode under definerte forhold. De viser ikke at bibliotekene er feilfrie i alle situasjoner.
9
5
Omfanget er likevel oppsiktsvekkende: Ifølge teamet tok arbeidet noen uker og resulterte i rundt 180 millioner linjer Rocq-beviskode. Det større poenget er at AI kan gjøre formell verifikasjon av mer virkelig programvare praktisk – så lenge påstandene begrenses til det som faktisk er spesifisert og kontrollert.
3
13
Hva bevisene faktisk viser
Anthropic sier at de undersøkte programmene alltid avsluttes normalt uten minnesikkerhetsfeil eller brudd på påstander, for alle inndata under 64 MB og på tvers av modellerte Linux-responser og minneoppsett, gitt bestemte forutsetninger. Bevisene gjelder kompilerte RISC-V-programmer, ikke en generell garanti for alle versjoner eller utrullinger av hvert bibliotek.
9
12
Arbeidsflyten tok utgangspunkt i eksisterende inngangspunkter fra Google OSS-Fuzz og brukte disse som formelle spesifikasjoner. I stedet for bare å prøve mange inndata med fuzz-testing, lot teamet Claude bevise egenskaper ved hver spesifiserte binærfil for hele inndataområdet som teoremet dekker.
3
13
Anthropic omtaler arbeidet som det første storstilte forsøket på å bruke AI til formell verifikasjon av produksjonsprogramvare på assemblernivå. Det er selskapets beskrivelse av prosjektets nyhetsverdi, ikke en historisk konklusjon som er uavhengig fastslått.
7
13
Hvorfor Rocq-kontrollen er viktig
Claude laget bevisene, og Rocqs beviskjerne kontrollerte dem. Dermed trenger ikke utviklere å stole på Claudes resonnement eller gå gjennom hver linje manuelt for at beviset skal kunne sjekkes maskinelt. Men maskinsjekking fjerner ikke alle forutsetninger: Teoremet må uttrykke egenskapen utviklerne faktisk bryr seg om, og de formelle modellene og kontrolløren er fortsatt del av grunnlaget man må stole på.
9
5
Anthropic og andre omtaler omfanget som rundt 180 millioner linjer Rocq-bevis, eller omtrent 600 000 linjer per binærfil i gjennomsnitt. De omfattende bevisartefaktene viser størrelsen på arbeidet, men antall linjer sier ikke i seg selv hvor bredt en egenskap gjelder eller om den dekker behovene i produksjon.
3
12
Hva testing kan overse
Fuzz-testing prøver mange inndata, men beviser ikke alene hva som skjer med alle mulige inndata innenfor et definert område. Ifølge omtaler av prosjektet fant og rettet Claude hundrevis av feil, blant annet feil som hadde overlevd billioner av fuzz-testkjøringer. Dette er rapporterte tall fra prosjektet, ikke en uavhengig måling av hvor ofte formell verifikasjon vil være bedre enn testing i andre prosjekter.
2
11
Den praktiske lærdommen er ikke at testing bør droppes. Formelle bevis kan gi en annen type dokumentasjon: For den angitte egenskapen og det definerte omfanget kan de fastslå hva som skjer for alle inndata som oppfyller spesifikasjonen – ikke bare for tilfellene som ble prøvd i tester.
9
2
«Verifisert» betyr ikke «feilfri»
Garantiene gjelder utvalgte inngangspunkter og bestemte kompilerte binærfiler. De dekker ikke automatisk alle funksjoner i et bibliotek, alle byggoppsett, prosessorarkitekturer eller måter å bruke programvaren på.
9
5
Kjøreforholdene er også viktige. Omtalene beskriver bevis for statiske, entrådede RISC-V-binærfiler som kjører i et modellert Linux-miljø med et fast minnebudsjett. De fleste kjører programvare bygd for andre arkitekturer eller oppsett, så resultatet bør ikke leses som en garanti for slike installasjoner.
12
27
34
Til slutt beviser et formelt bevis teoremet som er skrevet – ikke alle egenskaper en utvikler måtte ønske seg. Feil kan ligge utenfor omfanget, eller i modellene og grunnlaget for beviskontrollen som resultatet bygger på.
5
31
Hva utviklere kan ta med seg
Prosjektets viktigste bidrag er et tegn på at AI kan gjøre formell verifikasjon på assemblernivå gjennomførbar for mer programvare fra virkeligheten enn det som tidligere var praktisk uten omfattende ekspertinnsats. Det gir verken et universelt kostnadsoverslag eller en garanti for at metoden vil fungere på ethvert kodeprosjekt.
7
13
En del av bevisene er offentlig tilgjengelige. Én omtale beskriver det åpne materialet som 25 biblioteker og 60 inngangspunkter – ikke hele prosjektet. Theorem har også annonsert OSS Verify, et program for vedlikeholdere av åpen kildekode-prosjekter.
32
16
38
For utviklere er neste steg å behandle et bevis som en avgrenset sikkerhetserklæring: Sjekk nøyaktig hvilket inngangspunkt og hvilken binærfil det gjelder, hvilke forutsetninger som er lagt til grunn, og hvilken egenskap som er bevist. Resultatene gjør AI-støttet formell verifikasjon verdt å vurdere sammen med testing – ikke til erstatning for testing eller som grunn til å anta at programvaren er feilfri.
9
5