Stavo analizzando i metodi per rilevare lo svuotamento dei processi e altre forme di iniezione di codice, e questo sembrava abbastanza robusto.
Sarebbe possibile per uno "scanner di elaborazione dei processi" enumerare tutte le pagine eseguibili in una memoria di processo, enumerare tutte le sezioni eseguibili del file di immagine associato al processo e vedere se c'erano delle pagine nella memoria che non aveva pagine corrispondenti nel file immagine, ad esempio da fuzzy con hashing del file immagine, hashing di ciascuna pagina di memoria e confronto tra i due set?
Questo sembrerebbe rilevare che il processo si sta svuotando molto bene - qualsiasi codice iniettato in un processo non sarebbe presente nel file immagine, e a meno che l'aggressore non possa trovare un attacco di collisione contro l'algoritmo di hashing non sarebbe in grado di ingannare il rivelatore (e comunque possono essere usati più algoritmi). E poiché il rilevatore si basa sulla ricerca di segmenti extra anomali nella memoria del processo anziché eseguire direttamente l'hashing della memoria e confrontarla con il file, funzionerebbe anche se l'intero file di immagine non è mappato in memoria.
Quindi questo è un metodo valido per rilevare il processo di svuotamento? Non credo di aver visto questo metodo utilizzato ovunque per rilevare l'iniezione di codice (il più vicino che ho visto è quando gli scanner di rootkit confrontano l'hash di un'intera sezione di memoria di un processo con l'hash dell'intero file di immagine, che funziona solo se il file è interamente mappato in memoria).
Si tratta di un metodo fattibile per rilevare l'inceppamento del codice / il processo di svuotamento?