Programma per la sicurezza dell’internet pubblica

Mettere in sicurezza internet.

NullSquare individua errori di configurazione di sicurezza evidenti e visibili pubblicamente e avvisa in privato le organizzazioni che ne rispondono. Lo stesso programma studia codice open source pubblico, in cerca di problemi che possiamo riprodurre, correggere e provare.

Su tutti gli incarichi NullSquare
11,179
Rischi emersi
6,742
Validati
449
Critici e alti
152
CVE distinti

Perché hai ricevuto un messaggio

Uno dei nostri agenti ha trovato qualcosa di esposto all’internet pubblica su un dominio della tua organizzazione. Ti abbiamo scritto in privato perché il tuo team possa esaminarlo e chiuderlo. Non l’abbiamo detto a nessun altro e non l’abbiamo pubblicato.

Che cosa controlla il programma

Il programma guarda solo ciò che è già visibile dall’internet pubblica:

  • Un servizio raggiungibile da internet che non doveva esserlo.
  • Un’interfaccia di amministrazione aperta a chiunque la trovi.
  • Uno strumento di sviluppo o di debug lasciato attivo in pubblico.
  • Un listato di directory che serve file che non dovevano mai esserlo.
  • Una pagina di deployment predefinita ancora presente su un host in produzione.
  • Un errore di configurazione simile, che chiunque potrebbe trovare come l’abbiamo trovato noi.

L’agente prende solo quanto basta per nominare il dominio o il servizio interessato e dire di che tipo di problema si tratta. Oltre non va.

Ricerca open source

Un avviso riduce la superficie d’attacco esposta. Non corregge il codice che c’è sotto. Perciò il programma lavora anche alla fonte: selezioniamo un repository open source pubblico alla volta e lo studiamo in una sandbox usa e getta, in cerca di un problema di sicurezza che possiamo provare.

Un agente che afferma che qualcosa è vulnerabile non è un rischio confermato, e nemmeno lo è l’output di uno scanner. Niente conta finché non si riproduce, la correzione non regge e le due cose non sono scritte abbastanza bene perché qualcun altro le rifaccia.

  1. 01FissareIl repository viene clonato a un commit esatto in una sandbox usa e getta che non contiene credenziali di produzione.
  2. 02BaselineLa build e i test del progetto stesso girano prima di ogni ricerca, così sappiamo cosa passava già.
  3. 03IndagareL’agente legge ed esercita il codice dentro la sandbox, su quell’unica revisione fissata.
  4. 04RiprodurreUn candidato conta solo quando si riproduce da un checkout pulito, senza stato residuo dell’esplorazione.
  5. 05CorreggereLa correzione ragionevole più piccola, più un test di regressione dove il progetto ne renda uno praticabile.
  6. 06VerificareLa riproduzione viene rieseguita prima e dopo la correzione, e i controlli propri del progetto girano di nuovo.
  7. 07RivedereUna persona accetta o rifiuta il risultato. Niente esce dal laboratorio automaticamente.

I test non vengono mai cancellati, saltati o indeboliti per dichiarare un successo. Quando il lavoro non supera l’asticella, la risposta è: nessun rischio confermato, registrata con ciò che è stato tentato e ciò che non si è potuto verificare. In entrambi i casi il run produce lo stesso pacchetto:

Pacchetto di prove

Interno, rivisto da una persona e mai pubblicato dal laboratorio stesso.

summary.md
Che cosa è stato tentato, che cosa è stato trovato e che cosa non si è potuto verificare.
risk.md
Causa radice, percorso di codice interessato e una valutazione onesta della confidenza.
reproduction/
Il comando e le prove osservate sulla revisione non corretta.
patch.diff
La correzione minima, legata al commit fissato.
tests/
Un test di regressione che fallisce prima della correzione e passa dopo.
verification.md
Risultati prima e dopo, insieme all’output di build, test e lint.
run-metadata.json
Repository, commit esatto, modello, durata e costo.

Che cosa il programma non fa

  • Nessun tentativo di indovinare password, provare credenziali o aggirare l’autenticazione.
  • Nessuno sfruttamento, nessun test distruttivo, nessuna scalata di privilegi, nessun concatenamento di vulnerabilità.
  • Nessuna raccolta di file privati, dati dei clienti, codice sorgente o contenuti autenticati.
  • Nessuna pubblicazione, vendita o indicizzazione pubblica dei problemi trovati.
  • Nessun test su un ambiente in produzione o ospitato durante la ricerca. Si lavora solo su un clone locale.
  • Nessun fork, ramo, commit, push, pull request o issue. Il laboratorio non ha accesso in scrittura al repository.
  • Nessun contatto con i manutentori, nessun advisory, nessuna richiesta di CVE, nessuna candidatura a bounty da parte del laboratorio stesso.
  • Nessuna scansione di massa degli host di codice pubblici. I repository si scelgono uno alla volta, con intenzione.

Privacy e trattamento dei dati

Le notifiche vanno direttamente a un contatto pubblico appropriato per il dominio. La sessione di rilevamento viene scartata dopo la consegna del messaggio, e NullSquare non tiene un database consultabile dei rischi di questo programma.

Le esecuzioni di ricerca lavorano solo su codice sorgente pubblico. La sandbox viene distrutta dopo il run e il pacchetto di prove resta interno. Se un risultato viene mai portato a un manutentore, è una decisione separata e deliberata, presa da una persona.

Registrazioni minime di consegna e-mail, prevenzione degli abusi e cancellazione possono essere conservate a parte. Non contengono dati copiati dal bersaglio né output di exploit.

Verificare un avviso o rispondere

Un messaggio legittimo di «Secure the internet» non chiederà mai credenziali, pagamenti, chiavi API o accesso ai tuoi sistemi. Puoi rispondere al messaggio, chiedere la cancellazione, correggere un contatto o verificarne l’origine direttamente con NullSquare.

null@nullsquare.net
NullSquareNotifica privata. Nessuna divulgazione pubblica.