Anthropic riferisce che Claude ha individuato 493 problemi di superficie d’attacco in 25 progetti open source. Il conteggio riguarda punti in cui il codice poteva essere raggiunto inutilmente o configurazioni che indebolivano controlli; per gli 11 progetti della categoria Gated, Anthropic afferma che i singoli risultati non erano sfruttabili immediatamente da soli.

La superficie d’attacco è l’insieme delle parti di un software raggiungibili attraverso i suoi punti di accesso. Ridurre il codice raggiungibile senza necessità può limitare l’esposizione a difetti sconosciuti, secondo Anthropic. In questo studio Claude ha esaminato impostazioni predefinite, interazioni tra configurazioni e codice eseguito prima di controlli come l’autenticazione.

Che cosa ha analizzato Claude

Lo studio ha riguardato 25 progetti open source, con oltre cinque milioni di righe di codice complessive e linguaggi come C, C++, Java, PHP e Python. Anthropic riferisce di aver inventariato più di 17.000 opzioni di configurazione, di cui 3.842 relative a controlli o funzioni di sicurezza.

Anthropic ha suddiviso i progetti in tre gruppi: 10 Public, 11 Gated e 4 Private. Nei progetti Gated ha rilevato tre categorie distinte: 93 superfici di pre-autenticazione nelle configurazioni predefinite, 37 punti in cui il codice veniva eseguito o lo stato veniva registrato prima dell’autenticazione e 61 combinazioni di configurazione che indebolivano un controllo di pre-autenticazione.

La pre-autenticazione è la fase precedente al riconoscimento dell’identità di un utente o client. Se codice non necessario viene raggiunto prima di quel controllo, aumenta la quantità di software esposta a input esterni. I tre conteggi descrivono aspetti diversi dell’analisi e non vanno sommati come se fossero un’unica categoria.

Le configurazioni potevano disattivare controlli

Su tutti i progetti, Anthropic riferisce 162 combinazioni di configurazione sensibili alla sicurezza accettate senza avvisi né documentazione sul comportamento previsto. In 94 casi la combinazione disattivava silenziosamente un controllo di sicurezza; gli altri 68 presentavano diverse incongruenze.

Il problema è l’interazione tra impostazioni: due opzioni valide singolarmente possono produrre insieme un comportamento inatteso. Per un team che mantiene software, i risultati evidenziano quindi un’area da esaminare oltre ai singoli difetti nel codice: il modo in cui le configurazioni si combinano e quali controlli restano effettivamente attivi.

Come sono cambiati i controlli in OpenSSH

Nel caso di OpenSSH, Anthropic ha analizzato la versione 10.4 e riferisce che un client non autenticato poteva raggiungere circa 4.500 righe di codice sperimentale ML-DSA-44 prima del controllo di configurazione pertinente. ML-DSA-44 è un algoritmo di firma post-quantistica; non era attivato per impostazione predefinita. Quelle righe rappresentavano circa il 16% del codice di pre-autenticazione di OpenSSH.

Il parsing è la lettura e interpretazione dei dati in ingresso; la deserializzazione li ricostruisce poi in strutture utilizzabili dal programma. Anthropic descrive una sequenza di interventi: OpenSSH 10.5 introdusse un controllo prima del parsing, ma un’analisi successiva individuò lacune legate alla discordanza tra l’algoritmo dichiarato e il tipo di chiave contenuto nei dati, oltre che alla verifica della firma dell’autorità di certificazione di un certificato.

Anthropic afferma che le modifiche successive, distribuite con OpenSSH 10.6, controllano i tipi di chiave codificati e gli algoritmi di firma delle autorità di certificazione rispetto alle liste consentite, prima della deserializzazione o della verifica delle firme. La riduzione di circa un quinto riguarda il codice che, in una build predefinita, era raggiungibile da client non autenticati prima delle modifiche. Il 16% citato per ML-DSA-44 ha invece come denominatore il codice di pre-autenticazione di OpenSSH.

Come Anthropic descrive la verifica dei risultati

Anthropic afferma che la propria procedura usa tracce dinamiche del programma per confermare i risultati. Per i controlli che riguardano la configurazione predefinita, confronta la build modificata con quella di partenza usando la suite di test del progetto e una suite di regressione a scatola nera. Le modifiche che riguardano configurazioni non predefinite vengono lasciate alla revisione umana.

Anthropic descrive inoltre l’integrazione della competenza riutilizzabile in OSS-Scanner come un lavoro in corso. OSS-Scanner è un servizio di scansione della sicurezza per progetti open source, gratuito e attivabile su base volontaria.