Sto studiando le caratteristiche del malware comuni e ho un po 'di difficoltà a comprendere le scelte progettuali che gli autori di malware fanno. Molte di queste scelte sembrano ruotare intorno a rendere la vita difficile a un analista umano di distinguere il malware, mentre potenzialmente rendono il malware molto facile per un sistema automatico contrassegnarlo come "probabilmente dannoso". Sono curioso di vedere se qualcuno può dirmi quale sia la logica dietro a tali scelte di design.
Ad esempio, alcune tattiche di anti-reverse engineering. Sì, potrebbero rendere più difficile per l'analista invertire il malware, ma le tattiche come i callback TLS potrebbero essere segnalate come sospette, soprattutto perché il malware non è quasi mai firmato, mentre la maggior parte dei software legittimi che utilizzano tali tecniche per scopi anti-RE è.
Un altro esempio potrebbe essere la tattica anti-VM. La maggior parte degli emulatori AV scade dopo un breve periodo. Non è necessario rilevare l'emulatore. Basta fare qualcosa per pochi secondi (oltre a qualcosa che ovviamente ritardare, come chiamare sleep ()), invece di fare controlli estremamente rumorosi come provare ad aprire un gruppo di chiavi di registro VMWare e VirtualBox. L'unico caso in cui non si può sopravvivere alla VM è quando c'è un umano che analizza il campione, e se un umano sufficientemente motivato sta analizzando un programma, stanno andando per poterlo invertire alla fine , allora perché preoccuparsi anche?
Forse non sono abbastanza esperto nel campo della creazione di malware per capire lo scopo di tutto questo, ma mi sembra che il tipo di sistemi che un autore di malware cercherebbe di bypassare sarebbe per lo più sistemi automatizzati. Ad esempio, i motori antivirus o le sandbox automatizzate che le aziende AV utilizzano per analizzare nuovi campioni potenzialmente dannosi che classificano tali campioni in pile "definitivamente non nocive, di scarto" e "potenzialmente dannose; invia per revisione umana". L'obiettivo principale dell'autore del malware sembrerebbe quello di impedire a quei sistemi automatici di contrassegnare il programma come sospetto per ridurre la possibilità che il malware finisca di fronte a un analista umano per cominciare, non leggermente frustrante per l'analista umano che alla fine sarà in grado comunque di analizzare il malware.
So che alcuni autori di malware sono solo degli script kiddies, ma suppongo che almeno alcuni di loro si impegnino a fare scelte di sviluppo del software. Immagino che sappiano più di me sull'argomento, dato che fanno lo sviluppo di malware per vivere. Ma non riesco a capire alcune delle decisioni di progettazione che prendono. Qualcuno può spiegarmi la logica dietro queste decisioni?