La riparazione di un file PCAP danneggiato inizia con le prove, non con una conversione cieca
In che modo gli ingegneri del protocollo dovrebbero affrontare i file PCAP troncati o corrotti prima di modificarli, convertirli o passarli a un altro strumento.
Un file PCAP corrotto può interrompere un'indagine nel peggior momento possibile. L'acquisizione può essere l'unica prova proveniente dalla sede di un cliente, da una riproduzione in laboratorio o da un incidente di produzione. Quando uno strumento si rifiuta di aprirlo, l'impulso più veloce è convertirlo, tagliarlo o eseguirlo attraverso un altro parser.
Può funzionare. Può anche distruggere gli indizi che spiegano cosa è andato storto. La riparazione dovrebbe iniziare con le prove.
Identificare il limite del fallimento
Prima di modificare il file, determinare dove fallisce:
- l'intestazione globale non può essere letta
- il tipo di collegamento è imprevisto
- l'intestazione del pacchetto è incompleta
- la lunghezza catturata supera la dimensione rimanente del file
- la lunghezza originale e la lunghezza acquisita non sono coerenti
- i campi timestamp sembrano non validi
- i dati del pacchetto vengono troncati
- i byte finali rimangono dopo l'ultimo pacchetto valido
Ogni guasto implica una diversa strategia di riparazione. Un'intestazione globale errata non equivale a un ultimo pacchetto troncato. Un tipo di collegamento errato non equivale alla confusione dell'offload del checksum.
Conserva la cattura originale
Non sovrascrivere mai l'acquisizione originale. Un flusso di lavoro di riparazione dovrebbe creare un nuovo file e registrare ciò che è cambiato. Se il file originale costituisce una prova in un caso di supporto, revisione legale o escalation del fornitore, i byte originali contano.
Un flusso di lavoro disciplinato mantiene:
- hash del file originale
- posizione dell'errore del parser
- conteggio dei pacchetti validi prima del fallimento
- byte tagliati o riscritti
- indici dei pacchetti interessati
- hash del file di output
- note che spiegano perché la modifica era sicura
Questa non è burocrazia. È così che gli ingegneri evitano di rendere l'acquisizione meno affidabile.
Modelli di corruzione comuni
Molti casi PCAP corrotti sono semplici:
- il processo di acquisizione è stato interrotto durante la scrittura
- il file è stato copiato prima che lo scrittore lo chiudesse
- lo spazio su disco è esaurito
- uno strumento ha scritto una lunghezza del pacchetto non valida
- il tipo di file sbagliato è stato rinominato ".pcap".
- le aspettative del livello di collegamento non corrispondono al carico utile
La riparazione dovrebbe corrispondere allo schema. Se solo il pacchetto finale è incompleto, il taglio del record parziale finale può ripristinare il prefisso utile. Se le lunghezze dei pacchetti non sono coerenti in tutto il file, l'acquisizione potrebbe richiedere una convalida più approfondita prima di qualsiasi riscrittura.
Non trattare la riparazione come normalizzazione
Riparare significa preservare quante più prove valide possibile. Normalizzazione significa riscrivere i dati in una forma preferita. Quelli sono lavori diversi.
Ad esempio, la modifica dei timestamp, il ricalcolo dei checksum o la riscrittura delle intestazioni del livello di collegamento potrebbero essere utili in seguito, ma tali operazioni non devono essere mescolate nel primo passaggio di ripristino. Per prima cosa recupera ciò di cui ci si può fidare. Quindi decidere se la chirurgia controllata è appropriata.
Dove si adatta la chirurgia PCAP
PCAP Surgery è progettato per un'attenta revisione delle prove di acquisizione e flussi di lavoro di riscrittura controllata. Non sta cercando di diventare un player a pacchetto ampio o un sostituto di ogni strumento di analisi. Il suo ruolo è quello di aiutare gli ingegneri a ispezionare i metadati di acquisizione, identificare dove un file fallisce e applicare le modifiche solo quando le prove supportano l'operazione.
Per un file corrotto, l'output prezioso è:
- quale parte del file è valida
- dove l'analisi fallisce
- quale azione di riparazione è stata applicata
- quali pacchetti o byte sono stati interessati
- se il file risultante può essere aperto dagli strumenti downstream
Questa è la differenza tra "Ho utilizzato un convertitore" e "Posso spiegare la riparazione".