È possibile aggiungere un codice inutile a caso a un virus per modificarne l'hash in modo che nessun utente abbia lo stesso hash? [duplicare]

1

Non sono sicuro di come il software antivirus funzioni esattamente, ma da quello che ho capito controlla semplicemente gli hash contro il suo database di virus conosciuti (come decide che qualcosa è un virus è una storia diversa).

Quindi è possibile che un sito dannoso aggiunga al suo virus un codice casuale inutile in modo che quando compila il codice in un eseguibile avrà sempre un hash univoco, quindi l'antivirus non avrà un riferimento hash per esso ?

Se sì, perché non è fatto, e qual è il punto del software antivirus che funziona usando solo il confronto hash?

    
posta kat 28.08.2016 - 14:10
fonte

3 risposte

3

L'antivirus è sempre in grado di catturare attacchi ampi o payload predefiniti da strumenti di uso comune.

Un abile attaccante sarà in grado di modificare, codificare o offuscare il suo carico utile per evitare questo tipo di rilevamento.

Detto questo, la maggior parte dell'antivirus cercherà anche nel file eseguibile le stringhe note solo nel malware. Ad esempio, ecco uno snippet da Invoke-Mimikatz.ps1 :

$e_res2Field = $TypeBuilder.DefineField('e_res2', [UInt16[]], 'Public, HasFieldMarshal')

L'antivirus può cercare stringhe come questa all'interno del file e quindi contrassegnarlo se rileva una corrispondenza. Questo può anche essere sconfitto abbastanza facilmente. Un esempio potrebbe essere quello di prendere il file e scomporlo in stringhe piccole. In questo modo:

"$e_res2Fi" + "eld = $TypeBui" + "lder.DefineField('e_res2'," + " [UInt16[]], 'Public, HasFieldMarshal')"   

(non stai cercando di essere sintatticamente corretto qui, ma hai un'idea)

Quindi utilizzare uno script wrapper per raggruppare le stringhe in memoria ed eseguire il codice originale. Un altro esempio più comune sarebbe la crittografia del payload primario e quindi avere uno stub decrypt ed eseguire il payload in memoria.

Alcuni antivirus eseguiranno anche analisi dinamiche, dove il file viene eseguito in un ambiente virtualizzato o simulato per rilevare le azioni che l'eseguibile eseguirà o per analizzare la memoria di post-decrittografia.

Questo tipo di antivirus può essere ignorato semplicemente consumando una quantità sufficiente di tempo o di memoria prima di decrittografare il payload principale.

    
risposta data 30.08.2016 - 05:47
fonte
0

Il binario di editing comporta la ricerca di firme virali e la modifica. Una volta modificata la firma, l'antivirus non riconoscerà più la firma. Questo può essere fatto usando un editor esadecimale. **** Alcuni antivirus eseguono programmi di controllo "euristici" per tipi di comportamenti errati che potrebbero indicare un nuovo virus sconosciuto.

    
risposta data 28.08.2016 - 15:33
fonte
0

Sì. I creatori di virus e malware utilizzano i cosiddetti servizi di criptazione per modificare i loro payload in un modo che eviti il rilevamento dal software antivirus corrente.

Quando la nuova firma viene aggiunta ai database, i creator eseguono nuovamente il malware attraverso il servizio di criptazione e il ciclo si riavvia.

Esistono altre tecniche euristiche per arrestare alcuni malware (ad esempio, ci sono operazioni che nessun software legittimo dovrebbe eseguire) che potrebbero impedire determinate classi di malware indipendentemente da come siano offuscate, ma in generale l'antivirus dovrebbe essere visto come un unico di molti livelli in un'architettura di sicurezza.

    
risposta data 28.08.2016 - 16:10
fonte

Leggi altre domande sui tag