Come rilevare il malware su un HDD da zero

1

Mi chiedo come rilevare un virus o malware o tutto ciò che esiste su un HDD (sto pensando a dischi rigidi esterni). Fare una ricerca veloce ha portato a questi che non sono abbastanza correlati:

Questo è più vicino a quello di cui sto parlando:

Quora afferma:

It depends on the malware. Reformatting will remove most malware, but there are exceptions. Just make sure to blow away the recovery partition and install from known good media.... Some malware can modify the BIOS or other parts of the computer that will survive a reformat of the hard drive. This type of malware is rare because it is specific to hardware.

Per questa domanda non mi interessa virus non-HDD , solo su HDD (per dischi rigidi esterni, solo per mantenere la domanda non troppo ampia). Non capisco perfettamente come i dischi fissi funzionino a parte il fatto che usano materiale magnetico per archiviare i dati.

Nella programmazione (sono solo un programmatore, non molto materiale di sicurezza), penso semplicemente "Memorizzo i file sul disco rigido". Alcuni di questi file possono essere "file eseguibili". Ma se non esegui quei file non otterrai un virus (ignorando altri modi per ottenere virus al di fuori degli HDD qui). Se fa esegue il file, e "ha un virus", non vedo come spegnendo e riaccendendo il tuo computer non si fermi semplicemente a far funzionare il programma. So che ci sono daemon di avvio, quindi forse sarebbe un demone di avvio, ma se guardi solo ps ax , suppongo che vedresti il processo elencato. Ma questo dimostra che non so molto su come funzionano i virus. Non direttamente correlato alla domanda, volevo solo aggiungere un contesto alla domanda principale.

Quindi la domanda principale è, come controllare che ci sia un virus sull'HDD. Più in generale, come verificare che possa essere installato software o malware sull'HDD. Chiedendo cosa deve essere fatto a livello di strumento / software indipendente (cioè a livello teorico). La conoscenza di alcuni strumenti standard sarebbe utile anche in un certo senso, potrebbe rendere più facile la comprensione con l'esempio.

La mia conoscenza è fondamentalmente limitata a "digita solo ps ax e controlla i processi". Ma forse il virus non è elencato lì, o cambia nome. Inoltre, questo è solo un comando unix, non so se c'è altro da fare. Forse è possibile eseguire manualmente la scansione del contenuto dell'unità e cercare alcune funzionalità di qualche tipo. O non lo so, è quello che mi sto chiedendo.

Per "da zero" nel titolo, voglio dire senza fare affidamento su alcuni strumenti come "basta eseguire il software antivirus X". Cosa succederebbe se volessi scrivere solo un codice C o un assembly, chiedendoti a quel livello (non necessariamente implementazioni specifiche) su cosa scrivere il codice per risolvere il problema.

    
posta Lance Pollard 22.11.2018 - 10:47
fonte

2 risposte

1

A livello teorico è necessario prima confrontare il layout dell'elettronica del dispositivo con lo schema desiderato (probabilmente non ce l'hai) o un'altra versione nota di esattamente lo stesso drive. Se differisce, scopri cosa differisce e quali sono le conseguenze? Ci sono nuove parti "intelligenti" come un microcontrollore? A cosa è connesso?

Quindi dai un'occhiata a tutti i componenti elettronici programmabili presenti e scarica il codice binario lì. (usando JTAG, SPI, qualunque cosa ti serva).

Quindi confronti questo codice binario con la versione conosciuta (probabilmente non ce l'hai) o le versioni scaricate da versioni conosciute di questa unità.

Quindi analizzi esattamente le differenze smontando il codice e comprendendo cosa fa. È solo una correzione / aggiornamento del produttore o codice dannoso?

Puoi guardare in questo blog per alcune belle fotografie e una descrizione di come funziona il firmware dell'unità.

Se hai stabilito che l'hardware e il firmware non sono stati manomessi, puoi continuare con i dati sul disco.

I dati sull'unità non vengono eseguiti a meno che UEFI / BIOS / ... o il sistema operativo non lo faccia.

Quindi prima devi controllare il bootloader lì. L'unità contiene un bootloader? in caso affermativo, verifica se si tratta di un buon bootloader noto (ad esempio, WindowsBootloader, default grub, ...). In caso contrario, disassemblare il codice e analizzarlo.

Se sei sicuro che l'hardware, il firmware e il bootloader non siano malevoli, l'unico modo per eseguire il codice sarebbe il tuo sistema operativo.

Scopri se il tuo sistema operativo carica ed esegue automaticamente il codice dalle unità connesse (non dovrebbe) e, in tal caso, da dove esattamente. Controlla se c'è un codice in questa posizione sul tuo disco. Analizzalo.

Se sei arrivato così lontano, non c'è alcun codice dannoso sul disco che viene eseguito automaticamente. Naturalmente, potrebbe comunque esserci un codice dannoso che non viene eseguito automaticamente.

    
risposta data 22.11.2018 - 12:26
fonte
0

Il tuo problema principale sembra essere che ti stai fidando di ps ax . Vale a dire, si inseriscono le due parole e si assume che siano eseguite come desiderato. Con il malware in esecuzione questa ipotesi è difettosa.

In pratica, la risposta è, non eseguire niente su quell'HDD allora. Inseriscilo in un enclosure USB e collegalo a un sistema funzionante che non avvia automaticamente l'esecuzione del contenuto dalla memoria USB. Per una sicurezza ancora maggiore, su Linux puoi montare il dsk come noexec .

Ora puoi ispezionare tutti i bit accessibili al malware ordinario. C'è ancora il rischio che attori di livello statale abbiano sostituito lo stesso firmware del disco stesso. Ma se hai a che fare con quel livello di minacce, non dovresti fare questo tipo di domande.

    
risposta data 22.11.2018 - 10:55
fonte

Leggi altre domande sui tag