Esistono diverse tecniche diverse, a seconda del livello di abilità dell'autore del malware:
- Metadati incorporati - i programmi compilati possono contenere dettagli sui loro autori. Questo è più comunemente visto in programmi legittimi, e mostra nella schermata dei dettagli se si guarda nelle proprietà di Windows. Gli attaccanti che sono fuori per la fama potrebbero benissimo mettere i dettagli identificativi in questi campi
- Incorporamento accidentale - i compilatori spesso includono dettagli sui flag del compilatore utilizzati, che potrebbero includere i percorsi dei file di origine. Se il file sorgente era in
/users/evilbob/malware
, puoi fare una buona ipotesi sul fatto che il malvagio bob lo abbia scritto. Ci sono modi per disattivare queste inclusioni, ma a volte tutti fanno errori
- Codice comune: gli autori di malware sono come qualsiasi altro programmatore e riutilizzeranno bit di codice utili dal lavoro precedente. Talvolta è possibile notare che una sezione di codice compilato corrisponde a una sezione di codice precedentemente rilevata così strettamente che sembra probabile che sia stato utilizzato lo stesso codice sorgente per ciascuno. Se questo è il caso, può dedurre che il secondo autore ha avuto accesso al codice dal primo, o potrebbe essere la stessa persona.
- Toolchain comune - se uno sviluppatore tende ad utilizzare Visual Studio, sarebbe inaspettato vedere il proprio codice comparire compilato con GCC. Se usano uno specifico packer, sarebbe strano vederli usando un packer diverso. Non è perfetto, ma potrebbe suggerire una distinzione.
- Tecniche comuni - analogamente a quanto sopra, i programmatori hanno spesso schemi di codifica specifici. È improbabile che le persone modifichino i pattern, quindi è ragionevole supporre che, se un codice compilato non fosse stato generato in uno stile di codifica particolare, probabilmente non è stato scritto da qualcuno che in precedenza era noto per utilizzare uno stile diverso. Questo è molto più semplice con i linguaggi interpretati, poiché vedere un uso coerente di, per esempio,
for
loops piuttosto che while
loops è più semplice che individuare le differenze tra l'output compilato di ciascuno (i compilatori moderni potrebbero ridurli esattamente allo stesso set di istruzioni).
- Origine malware: da dove viene? Ha testo in lingue specifiche o errori di battitura che suggeriscono uno sfondo particolare? (ad es.
colour
suggerirebbe che l'autore non fosse americano, generale
potrebbe suggerire qualcuno abituato a scrivere in una lingua romanza come francese o italiano)
Nessuno di questi è sufficiente da solo per determinare un autore, ma combinato, potrebbero suggerire un autore comune con malware precedente o anche con altro codice noto (ad esempio, da progetti OS).