Come rispondo a una vulnerabilità di sicurezza pubblicata nella mia applicazione?

37

Nel mio tempo libero scrivo un codice PHP il cui scopo è quello di bloccare lo spam di collegamento e altre varie attività dannose.

L'11 maggio qualcuno che ha scoperto una vulnerabilità XSS nella versione di WordPress di questo codice lo ha pubblicato senza prima notificandomi . Fortunatamente i miei utenti sono sulla palla e mi hanno notificato il 12 maggio. Il 13 maggio ho pubblicato una correzione.

Questa non era la fine.

Da allora ho scoperto che la vulnerabilità è stata aggiunta a un'ampia varietà di database come OSVDB e CVE e vari mirror di quei database, con vari gradi di inaccuratezza.

Ad esempio, uno di questi siti elenca qualcuno completamente diverso come autore del software. Un altro lo elenca come non essendo mai stato patchato .

Quindi la mia massima preoccupazione è:

Dato che le vulnerabilità della mia applicazione verranno pubblicate su Internet, che mi piaccia o no, come faccio a ...

  • Scopri la vulnerabilità zero-day contro la mia applicazione il più presto possibile, senza dover ricevere notifiche irrilevanti?
  • Scopri quando i database di vulnerabilità creano voci relative alla mia applicazione?
  • Garantire l'accuratezza delle voci del database delle vulnerabilità relative alla mia applicazione?
posta Michael Hampton 29.08.2012 - 22:44
fonte

5 risposte

10

Mi è piaciuta la risposta di D.W. così tanto che non mi piace scriverne un'altra, ma avevo alcuni punti che erano abbastanza grandi che purtroppo sto ripetendo qui:

Come faccio a: scoprire il più presto possibile una vulnerabilità zero-day contro la mia applicazione, senza dover ricevere notifiche irrilevanti?

Avvicinati il più possibile alla fonte della divulgazione delle vulnerabilità e renditi conto che non sarà sempre la stessa fonte. Dovrà essere una combinazione di miglioramento nel recupero delle informazioni e di facile individuazione (con le sue implicazioni di spam).

Le buone idee includono: - avere un modo ovvio sul tuo sito di includere bug e vulnerabilità - assicurarsi che quando si viene riconfezionati da qualsiasi altro sistema, parte dell'accordo sia che i bug in sicurezza vengano inviati al sistema di tracciamento di bug / vulnerabilità. Probabilmente vorrai discutere su come i problemi vengono controllati prima che vengano inviati a modo tuo, ma renditi conto che spesso le maggiori vulnerabilità riguardano il modo in cui il tuo sistema si integra con il sistema più grande. - assicurati che i siti di pubblicazione delle vulnerabilità sappiano come trovarti: non risolverà un vero "giorno zero" in quanto potrebbero rimanere indietro di ore o giorni, ma sicuramente vorresti ascoltarli direttamente. - raccogliere tutte le informazioni che possono essere pertinenti alle potenziali vulnerabilità del prodotto - Google Alert - è stata una grande idea. Sono sicuro che ce ne sono altri.

Potresti dover accettare che le informazioni irrilevanti ti vengano recapitate - il meglio che puoi fare è selezionarlo.

Tieni presente, inoltre, che non tutte le vulnerabilità vengono trovate dai bravi ragazzi. Aspettare che qualcun altro lo trovi non è mai il modo ideale per trovare le vulnerabilità. Man mano che il prodotto cresce, ti consigliamo di introdurre qualche forma di verifica della sicurezza, incluse cose come:

  • Analisi della sicurezza del codice - sia manuale che automatizzata.
  • test della penna
  • recensione indipendente

Il livello di impegno deve essere bilanciato dal costo dell'errore, qui - ma potresti scoprire che il costo di trovare e rispondere a una vulnerabilità che viene divulgata in pubblico è maggiore rispetto all'implementazione della tua verifica di sicurezza.

Come faccio - Scopri quando i database di vulnerabilità creano voci relative alla mia applicazione?

Molti dei database di vulnerabilità hanno streaming di avvisi: dovresti essere in grado di iscriverti a un flusso e filtrare o ottenere un feed RSS e limitarlo con i criteri di ricerca.

Come faccio a - Garantire l'accuratezza delle voci del database delle vulnerabilità relative alla mia applicazione?

Prima - crea una relazione con i gruppi di database. E chiarisci come creare una relazione con te se un gruppo di database sta cercando di raggiungere. indicazioni del CERT e questo articolo - sono ottime risorse per le raccomandazioni, ma la parte critica sta comprendendo che se non possono raggiungerti, non avranno la risposta giusta.

Ed è un processo a due vie: avere un modo per trovarti, ma anche trovare un modo per pubblicare informazioni. E quando pubblichi, includi risposte solide. Come sviluppatore di soluzioni, ho troppi run-around con i fornitori di soluzioni che forniscono informazioni sulla vulnerabilità della sicurezza che suona come se l'avessero sognata in giro per lavorare senza test reali o informazioni reali. Elenca cose come:

  • specifiche sulla correzione
  • specifiche sui test utilizzati per verificare la correzione
  • specifiche sull'impatto di prendere la correzione (c'è qualche possibilità che qualcosa di cui mi stavo affidando cambierà o si interromperà?)
  • riepilogo generale dell'ambito della modifica - ad esempio "correzione apportata a una funzione di utilità sottostante", "correzione apportata a una base di codice specalizzata utilizzata per l'interoperabilità XYZ, l'impatto all'esterno di questo spazio è estremamente limitato"

E i dettagli di ciò che CVE o altro problema pubblicato si sta tentando di risolvere.

Inseriscilo nel maggior numero possibile di stream: iscriviti via email, blog, sito web, ecc. Vuoi che sia reperibile.

E rendi noto il tuo processo. Se invio una vulnerabilità al tuo sito web, posso aspettarmi di ricevere una risposta entro 24 ore? Come valuti la gravità? Qual è il processo per la risoluzione? Se si tratta di un prodotto integrato in altre soluzioni, chi esegue il test di interoperabilità?

Non hai bisogno di metriche perfette, devi essere in grado di realizzarle. Quindi, se il tuo tempo di risposta è di 2 weeeks, fallo sapere agli utenti.

    
risposta data 12.09.2012 - 18:31
fonte
27

Per il futuro, c'è una cosa fondamentale che dovresti fare:

  • Fornisci un modo semplice per farti segnalare bug alla sicurezza.

    Ho dato un'occhiata alla pagina web per la tua applicazione e ho notato che non sembra in alcun modo che un ricercatore della sicurezza ti contatti con un rapporto su una vulnerabilità della sicurezza. Non esiste un indirizzo email per segnalare vulnerabilità di sicurezza, o almeno non riesco a trovarne uno. Non sono riuscito a trovare un bug tracker che permetta alle persone di inviare un rapporto sulle vulnerabilità di sicurezza (o persino qualsiasi bug tracker che permetta a un membro del pubblico di inviare un bug report, per non parlare di un report confidenziale di un bug di sicurezza). p>

    Vedi, ad esempio, i Consigli per i fornitori e Hey corporation: fornisci un modo semplice per rivelare le vulnerabilità a te! .

    Naturalmente, questo non è un proiettile d'argento. Anche se fornisci un modo chiaro per segnalare una vulnerabilità di sicurezza, alcune persone potrebbero comunque non contattarti, ma alcuni ricercatori responsabili lo faranno. In ogni caso, posso dirti una cosa: se non fornisci alcun modo ovvio per contattarti con una segnalazione di bug di sicurezza, ciò diminuisce significativamente la probabilità che i ricercatori di sicurezza lo facciano in futuro!

Ci sono anche alcuni passaggi aggiuntivi che potresti intraprendere, se lo desideri, ma questi sono facoltativi e oltre ciò che classificherò come importante o essenziale per un progetto open-source:

risposta data 30.08.2012 - 07:42
fonte
8

Le vulnerabilità di tipo Zero-day sono spesso sottoterra, quindi sarà difficile apprenderle attraverso una fonte attendibile. Le dichiarazioni pubblicate di solito si verificano solo dopo che la vulnerabilità è stata rilevata e tracciata dalle vittime, spesso abbastanza presto perché altre potenziali vittime possano correggere i loro sistemi. Sfortunatamente, questi messaggi arrivano alla comunità open source solo dopo che i publisher hanno distribuito le informazioni sulla vulnerabilità, determinando un effetto a catena delle patch.

Fortunatamente, se si aggiorna automaticamente il software tramite un gestore di pacchetti, le vulnerabilità potrebbero essere automaticamente corrette per te dalla comunità open source, riducendo la necessità di auto-validazione.

Innanzitutto, vale la pena ricordare che CVE ha un elenco di servizi di segnalazione di vulnerabilità che potrebbero essere di tuo interesse . Questi strumenti invieranno notifiche per avvisarti quando necessario.

Potresti essere interessato a leggere attraverso alcune newsletter di vulnerabilità come @RISK , che pubblica articoli sulle vulnerabilità su base settimanale.

SecurityFocus aggiorna anche il loro sito web con un elenco di vulnerabilità (anche se prive di feed) in uno spettro di software.

Per filtrare le notifiche irrilevanti, potresti essere interessato ad avere un filtro di script cronned attraverso il contenuto per le parole chiave correlate al tuo software.

    
risposta data 29.08.2012 - 22:52
fonte
3

Google Alerts - elabora una query di ricerca che trova menzioni del tuo software e vulnerabilità, imposta l'email ogni giorno e saprai qualcosa entro 24 ore dall'indicizzazione di Google.

    
risposta data 06.09.2012 - 02:08
fonte
0

Se il tuo software è incluso in grandi distro come Fedora, Debian, gentoo, ecc. sarà utile entrare in contatto con i loro team di sicurezza. Sono certo che saranno più che felici di dover risolvere eventuali problemi di sicurezza futuri che si presentano e che potrebbero beneficiare delle risorse che hanno per controllare quotidianamente varie fonti di informazioni sulla vulnerabilità.

    
risposta data 07.09.2012 - 09:38
fonte

Leggi altre domande sui tag