2010-05-27 17 views
16

Immaginate la seguente situazione:Virus nel repository Subversion, cosa fare?

  1. Un file infettato virus è stato commesso in un repository Subversion.
  2. Uno scanner antivirus viene eseguito sul server ed esegue la scansione del repository Subversion.

Lo scanner antivirus elimina la revisione interessata o la sposta in quarantena. La conseguenza è un repository rotto.

Se il file di revisione è recuperabile (dalla quarantena), come risolvere questo problema?
Mi hanno alcuni obiettivi da raggiungere:

  1. L'AV non è permesso essere disabilitato o esclusi dalle directory.
  2. Il file infetto da virus non deve essere archiviato nel repository
  3. Il repository deve essere consistente e utilizzabile.

Qual è la soluzione migliore per questo piccolo problema?

+0

È possibile ricostruire il file infetto dal sorgente? Se puoi, separa il virus dal repository, ricostruisci e ricomincia. – AlG

+2

Molto probabilmente il virusscanner non rileverà il virus nel file di revisione in quanto la maggior parte degli scanner scansionano solo posti di file interessanti e un file di revisione è un formato binario diff che molto probabilmente interrompe gli scanner di modelli. –

+0

qor72: Non conosco il file infetto, questo è il problema. Bert: Lo scanner lo ha rilevato, questo è il mio problema. Non l'ho pensato anche io :) – guerda

risposta

16

Dal FAQ:

Ci sono casi particolari in cui si potrebbe desiderare di distruggere tutte le prove di un file o commettere. (Forse qualcuno ha impegnato accidentalmente un documento confidenziale .) Questo non è così facile, perché Subversion è stato appositamente progettato per mai perdere informazioni. Le revisioni sono gli alberi immutabili che si basano su un altro . La rimozione di una revisione dalla cronologia causerebbe un effetto domino, creando il caos in tutte le successive revisioni ed eventualmente invalidando tutte le copie di lavoro.

Il progetto ha piani, però, di un giorno implementare un comando svnadmin obliterate che realizzare il compito di permanentemente eliminazione delle informazioni. (Vedere issue 516.)

Nel frattempo, l'unica soluzione è al svnadmin discarica repository, quindi tubo del dumpfile attraverso svndumpfilter (escluso il cattivo percorso) in un comando di carico svnadmin. Vedi chapter 5 del libro di Subversion per dettagli su questo.

+0

svndumpfilter è l'unica soluzione a corto di ripristino dal backup. +1 – rmeador

3

Il più semplice? Ripristinare da un backup da prima il commit con il virus ...

+0

La revisione è più vecchia di un anno. O meglio detto:> 6000 revisioni precedenti. Il backup non lo farà. – guerda

+1

Beh, immagino che tu abbia imparato una lezione. Backup anticipato e spesso ... – ircmaxell

+1

Ho dei backup, molti e molti. Se ripristino un backup prima del commit, perdo> 6000 revisioni. non è fattibile. – guerda

0

Se il repository è stato creato in modalità file (singolo file di repository per file di origine), è probabile che sia possibile correggere/modificare/sostituire il file infetto.
Se è stato creato in modalità DB, allora è più difficile - si può svndump poi svncreate un nuovo pronti contro termine, ma è probabilmente più facile per escludere il repository SVN dal virus scan

+0

Il file di revisione è infetto, quindi non è possibile sostituire/modificare ciò che è possibile. – guerda

0

"L'AV non è permesso essere disabilitato o esclusi dalle directory. "

Lotta con il tuo reparto IT per aggiungere i tuoi repository in esclusioni. MEGLIO, se l'AV supporta "Modalità solo informativa", fallo funzionare con i tuoi repository in modalità solo informativa. La maggior parte delle volte, questi vecchi virus sono solo falsi positivi. Aggiungi i ganci precommit per eseguire la scansione antivirus di qualsiasi file e rifiutare il commit se è contrassegnato da un virus.

Se l'AV segnala che il file precedente è infetto, controllare se non è falso positivo. Se non lo è, e il file è davvero vecchio virus, basta impegnarsi nella sua cancellazione e ignorare del tutto la sua esistenza nella tua storia.

Problemi correlati