Problemi di sicurezza

Questo documento spiega la gestione da parte della squadra di Symfony dei problemi di sicurezza di Symfony (in cui “Symfony” è il codice ospitato nel repository Git symfony/symfony).

Segnalare un problema di sicurezza

Se si è trovato un problema di sicurezza in Symfony, non utilizzare la lista o il bug tracker e non diffonderlo pubblicamente. Tutte le questioni di sicurezza devono essere inviate a security [at] symfony-project.com. Le email inviate a questo indirizzo verranno inoltrate alla squadra di sviluppo di Symfony .

Processo di risoluzione

Per ogni rapporto, prima si cercherà di confermare la vulnerabilità. Quando confermata, la squadra di sviluppo lavorerà a una soluzione seguendo questi passi:

  1. Inviare un riconoscimento al segnalatore;
  2. Lavorare su una patch;
  3. Ottenere un identificatore CVE da mitre.org;
  4. Scrivere un annuncio sul blog di Symfony, che descriva la vulnerabilità. Tale post dovrebbe contenere le seguenti informazioni:
    • un titolo che includa sempre la stringa “Security release”;
    • una descrizione della vulnerabilità;
    • le versioni afflitte;
    • i possibili exploit;
    • come applicare patch/aggiornamenti/workaround alle applicazioni afflitte;
    • l’identificatore CVE;
    • riconoscimenti.
  5. Inviare patch e annuncio al segnalante per una revisione;
  6. Applicare la patch a tutte le versioni di Symfony in manutenzione;
  7. Pacchettizzare nuove versioni per tutte le versioni afflitte;
  8. Pubblicare il post sul blog ufficiale di Symfony (va anche aggiunti alla categoria “Security Advisories”);
  9. Aggiornare la lista degli avvisi di sicurezza (vedere sotto).

Nota

I rilasci che includono questioni di sicurezza non andrebbero fatti di sabato o domenica, a meno che la vulnerabilità non sia stata resa pubblica.

Nota

Mentre la patch è in corso di lavorazione, si prega di non rivelare pubblicamente la problematica.

Nota

La risoluzione può prendere tra un paio di giorni a un mese, a seconda della complessità e del coordinamento tra i progetti a valle (vedere il paragrafo successivo).

Collaborazione con progetti open source a valle

Poiché Symfony è usato da molti progetti open source, il modo in cui la squadra di sicurezza di Symfony collabora sulle problematiche di sicurezza è stata standardizzata con i progetti a valle. Il progetto funziona come segue:

  1. Dopo che la squadra di sicurezza di Symfony ha riconosciuto la problematica, invia immediatamente una email alle squadre di sicurezza dei progetti a valle, per informarli della problematica;
  2. La squadra di sicurezza di Symfony crea un repository Git privato, per facilitare la collaborazione sulla problematica. L’accesso a tale repository è fornito all squadra di sicurezza di Symfony, ai contributori du Symfony che hanno avuto impatto sulla problematica e a un rappresentante i ogni progetto a valle;
  3. Le persone che accedono al repository privato lavorano a una soluzione per risolvere la problematica, tramite richieste di pull, revisioni di codice e commenti;
  4. Una volta trovata la soluzione, tutti i progetti coinvolti collaborano per trovare la data migliore per un rilascio congiunto (non c’è garanzia che tutti i rilasci saranno contemporanei, ma si tenterà il più possibili di pubblicarli nello stesso periodo). Quando non si ritiene che la problematica abbia subito degli exploit, un periodo di due settimane sembra essere ragionevole.

La lista dei progetti a valle partecipanti a tale processo è mantenuta più corta possibile, per meglio gestire il flusso di informazioni riservate, prima della pubblicazione. Per questo motivo, i progetti saranno inclusi a sola discrezione della squadra di sicurezza di Symfony.

A oggi, i seguenti progetti hanno approvato questo processo e sono parte dei progetti a valle inclusi:

  • Drupal (solitamente con rilasci di venerdì)
  • eZPublish

Bollettini di sicurezza

Questa sezione elenca le vulnerabilità di sicurezza che sono state risolte in Symfony, partendo da Symfony 1.0.0:

Tabella dei contenuti

Argomento precedente

La squadra di Symfony

Argomento successivo

Eseguire i test di Symfony

Questa pagina