Punti chiave
Il malware è complesso e creato per confondere chi lo analizza. Molti utenti di computer pensano che il malware sia solo un’altra parola per “virus” quando un virus è in realtà un tipo di malware. Oltre ai virus, il malware include ogni sorta di codice dannoso e indesiderato, inclusi spyware, adware, trojan e worm.
È sempre necessario il rapido rilevamento e l’estrazione di un malware dai sistemi informatici, ma il malware non lo renderà facile. Il malware è malizioso e scivoloso, usando trucchi come offuscamento, codifica e crittografia cerca di eludere il rilevamento.
Offuscamento del malware
Comprendere l’offuscamento è più facile che pronunciarlo. L’offuscamento del malware rende i dati illeggibili. Quasi ogni malware utilizza questa tecnica.
I dati incomprensibili di solito contengono parole importanti, chiamate “stringhe”. Alcune stringhe contengono identificatori come il nome del programmatore del malware o l’URL da cui viene estratto il codice malevolo. La maggior parte dei malware offusca le stringhe di codice che nascondono le istruzioni che dicono alla macchina infetta cosa fare e quando farlo.
L’offuscamento nasconde i dati del malware così bene che gli analizzatori di codice spesso non riescono a capire come è stato istruito il malware. Solo quando viene eseguito il programma viene rivelato il vero codice.
Semplici tecniche di offuscamento del malware
Vengono comunemente utilizzate semplici tecniche di offuscamento del malware come OR esclusivo (XOR), Base64, ROT13 e codepacking. Queste tecniche sono facili da implementare. L’offuscamento può essere semplice come il testo interposto o un’ulteriore inserimento di codice inutile all’interno di una stringa. Anche gli occhi allenati spesso non riescono a cogliere il codice offuscato.
Il malware imita i casi d’uso quotidiani fino a quando non viene eseguito. Al momento dell’esecuzione, viene rivelato il codice dannoso, che si diffonde rapidamente attraverso il sistema.
Tecniche avanzate di offuscamento del malware
L’offuscamento del malware di livello successivo è attivo ed evasivo. Tecniche avanzate di malware, come la consapevolezza dell’ambiente in cui il codice gira, la confusione degli strumenti automatizzati, l’evasione basata sui tempi e l’offuscamento dei dati interni, consentono al malware di nascondersi all’interno degli ambienti operativi e non essere tracciati dai software antivirus moderni.
Alcuni malware prosperano facendo clic al posto degli utenti su link appositi per scaricare file malware o aprire pagine Web dannose, mentre altri intercettano il traffico e iniettano malware, ottenendo un impatto vasto e rapido.
Utilizzo di cifrari e schemi di codifica per offuscare il malware
Obiettivo del gioco è nascondersi e confondere. Puzzle malware con semplici cifre e schemi di codifica. Rendere il malware difficile da rilevare e decodificare ritardi nell’analisi e nella correzione, poiché il codice dannoso lavora continuamente dietro le quinte.
Codifica malware
Base64 viene spesso utilizzato per codificare malware. Sembra un linguaggio militare ma in realtà è un comune schema di codifica da binario a testo. È stato creato per codificare e decodificare al servizio dello standard Internet MIME (Multipurpose Internet Mail Extensions) che formatta le e-mail per la trasmissione.
Lo scopo essenziale di Base64 è standardizzare il codice. I programmatori ne approfittano iniettando stringhe di caratteri false che imitano lo standard Base64. Il codice sembra standard e funziona normalmente fino a quando non viene decodificato.
Decodifica del malware
È inoltre necessaria una strategia offensiva per combattere la codifica, la crittografia e l’offuscamento del malware. Il software utilizzato per decodificare il malware ha lo scopo di rivelarlo in modo logico e diretto prima dell’esecuzione del malware.
Dopo l’esecuzione, il malware si diffonde e il codice diventa illeggibile. Le stringhe di testo problematiche vengono prima isolate, quindi vengono utilizzate tecniche di ricerca e sostituzione per eliminare il codice dannoso. Una volta rimosso, puoi vedere un’immagine più chiara del codice pulito.
Crittografia malware
In senso tradizionale, la crittografia del malware è il processo di codifica delle informazioni in modo che solo le parti autorizzate possano accedere ai dati in un formato leggibile.
Quando la crittografia malware viene utilizzata per scopi dannosi, si chiama ransomware. Il ransomware tiene in ostaggio i file usando la crittografia. Quando viene ricevuto il pagamento del riscatto, i file vengono decifrati e l’utente recupera l’accesso. I creatori di malware di oggi in genere chiedono il pagamento sotto forma di criptovaluta.
Il malware infetta spesso i sistemi attraverso tecniche di phishing o altre tattiche che utilizza la posta elettronica, ponendosi come e-mail legittima, convincendo un utente a fare clic su un collegamento o a scaricare un file.
Ingegneria inversa e algoritmi crittografici comuni
Gli ingegneri cercano di arrivare al codice partendo dal malware, lavorano all’indietro dall’infezione, utilizzano strumenti di disassemblaggio per rivelare le modifiche ai file che si verificano quando un malware attacca. La crittografia viene spesso utilizzata da programmatori malintenzionati per impedire il disassemblaggio e quindi impedire il reverse engineering.
È utile se gli ingegneri comprendono i comuni algoritmi crittografici utilizzati per creare codice crittografato simmetricamente. Se la crittografia del malware è stata creata utilizzando un algoritmo crittografico comune, il codice può essere decrittografato e il reverse engineering può continuare. Se la crittografia è asimmetrica, tuttavia, l’algoritmo non offrirà la chiave per la decrittazione.
La crittografia asimmetrica implica la generazione di due chiavi completamente diverse; tuttavia condividono una relazione. Una chiave (la chiave pubblica) viene utilizzata per crittografare i dati in testo cifrato, mentre il suo compagno (la chiave privata) viene utilizzato per decodificare il testo cifrato nel testo normale originale. Si chiama asimmetrico perché la chiave pubblica, sebbene sia stata utilizzata per crittografare, non può essere utilizzata per decrittografare. La chiave privata è necessaria per decrittografare.
Questa ovviamente è solo una panoramica di primo approccio al grande sistema di analisi dei malware. E’ un mondo affascinante. Con grandi e continue innovazioni.