Claude fant 493 angrepsflate-funn i 25 prosjekter, og OpenSSH 10.6 stengte en femtedel av pre-auth-koden
onsdag 21. oktober · KI-generert · Kilde: Anthropic
Flytt kode ingen trenger bak en port: Anthropic lot Claude finne 493 slike funn i 25 prosjekter, og OpenSSH 10.6 stengte en femtedel av koden en uautentisert klient kunne nå.
De fleste KI-sikkerhetssaker i år har handlet om modeller som finner og utnytter enkeltsårbarheter. Anthropics nye forskningsnotat, skrevet av Chris Rohlf, snur oppgaven. I stedet for å jakte på feil lot Anthropic Claude kartlegge hvilken kode som i det hele tatt kan nås, og flytte det som ikke trenger å være nåbart bak autentisering, opt-in eller en senere protokolltilstand. Claude gikk gjennom 25 open source-prosjekter i C, C++, Java, PHP og Python, til sammen over fem millioner kodelinjer, og fant 493 funn.
«Å minimere angrepsflaten til en kodebase gir bedre sikkerhet uten at man noen gang må finne eller rette en enkelt sårbarhet.» — Chris Rohlf, Anthropic
Claude bygde en oversikt over mer enn 17 000 konfigurasjonsvalg, hvorav 3 842 var sikkerhetsrelevante. Alle de elleve prosjektene som skal kreve innlogging, hadde kode som kunne nås før autentisering, blant annet 93 unødvendige pre-auth-flater i standardoppsettet. De mest interessante funnene var 162 kombinasjoner av innstillinger som ble godtatt uten feilmelding og uten dokumentasjon. I 94 av dem slo kombinasjonen stille av en sikkerhetskontroll. Ett mønster dukket opp i fire uavhengige prosjekter: en deny-regel skrevet med vertsnavn eller wildcard treffer aldri når reverse DNS-oppslag er slått av, fordi serveren bare ser IP-adressen. Lista feiler da åpent. I et annet prosjekt hadde en kombinasjon som droppet sertifikatkravet for klienter, ligget i koden i 21 år.
Det største kuttet, målt i andel av koden, kom i OpenSSH. I sshd 10.4 kunne en uautentisert klient nå rundt 4 500 linjer ny og eksperimentell kode for den post-kvante signaturalgoritmen ML-DSA-44, også når administratoren eksplisitt hadde utelatt algoritmen. Daemonen parset nøkkeltypen klienten sendte, og sjekket først etterpå om typen var tillatt. Det tilsvarer rundt 16 prosent av OpenSSHs egen pre-auth-kode i en standard sshd.
OpenSSH 10.5, sluppet 11. august, flyttet sjekken foran parsingen. Claude fant så to hull i den: sjekken så på algoritmenavnet klienten annonserte, ikke typen inne i selve nøkkelen, og CA-signaturen i et sertifikat ble verifisert før konfigurasjonen ble konsultert. OpenSSH 10.6, sluppet 6. oktober, legger sjekkene inne i parseren.
«Dette reduserer angrepsflaten som deaktiverte algoritmer utgjør.» — OpenSSH, utgivelsesnotater for versjon 10.6
Anthropic har samlet metoden i en gjenbrukbar Claude-skill med tre gjennomløp, hvert med tomt kontekstvindu bortsett fra et kort sammendrag fra forrige runde: kode som standardoppsettet gjør nåbar uten at noe bruker den, kode som kjører før autentisering eller protokolltilstand, og innstillinger som sammen slår av en kontroll. Hvert funn bekreftes med en dynamisk trace, og en foreslått port må gi identiske resultater i prosjektets egen testsuite. Anthropic jobber med å bygge skillen inn i verktøyet OSS-Scanner.
Hva bør du gjøre?
- Sjekk hvilken OpenSSH-versjon serverne dine kjører med
ssh -V; rettelsene kom i 10.6, og distro-pakker henger ofte etter. - Gå gjennom deny-regler i egne tjenester som bruker vertsnavn eller wildcard, og test om de faktisk slår til når reverse DNS er av.
- Gi Claude Code eller en annen kodeagent de tre spørsmålene fra notatet om ditt eget selvhostede oppsett: hva er nåbart i standardoppsettet uten å brukes, hva kjører før innlogging, og hvilke innstillinger slår sammen stille av en kontroll.