Come Regin nasconde le istanze di esecuzione di se stesso?

3

Ho letto Symantec e amp; Analisi Kaspersky Lab del malware Regin.

Secondo Symantec

[Stage 2] can also hide running instances of Stage 1. Once this happens, there are no remaining plainly visible code artifacts.

Come ho capito, lo Stage 1 è implementato come un driver di Windows e non esiste un modo sicuro per scaricare un driver di Windows senza richiedere il riavvio (anche se lo stesso Stage 2 è anch'esso un altro driver del kernel).

Allo stesso modo, da quello che posso dire non esiste modo (né legittimamente dovrebbe esserci) per intercettare e manipolare l'elenco dei driver del kernel in esecuzione, il modo in cui un rootkit potrebbe per un file sul file system.

Quindi, in che modo Stage 2 nasconde le istanze in esecuzione di Stage 1? Ci sono poche informazioni su questo online?

Fonte: link - Pagina 9

    
posta jammmie999 30.11.2014 - 22:49
fonte

1 risposta

3

Non sono un hacker del kernel, ma da quello che ho letto la tecnica è analoga a un hook di funzione nello spazio utente.

Premessa

  • Il codice dello spazio utente interagisce con il kernel tramite le chiamate di sistema.
  • Ci sono chiamate di sistema che rivelano informazioni sullo stato del kernel, e. g. f restituisce l'elenco dei moduli del kernel caricati.
  • Il kernel gestisce una tabella t delle chiamate di sistema e la posizione della loro implementazione in memoria.
  • Un modulo del kernel (a. k. a. "driver") m diventa una parte del kernel, quando viene caricato, ottenendo così pieno accesso a tutto ciò che il kernel può accedere.

Passi

  1. m è caricato / iniettato nel kernel in qualche modo. Ora può fare tutto ciò che vuole sul sistema operativo, incluso il collegamento ad alcune delle sue infrastrutture.

  2. m sostituisce la voce t f contenente un riferimento alla funzione f , che potrebbe aiutare a rivelare la presenza di m . Al suo posto m pone un riferimento a una funzione simile f ' in t f , che è una parte di m e usa f ma filtra e / o trasforma i risultati in modo da nascondere le tracce di m .

  3. Un programma spaziale utente sta cercando moduli del kernel sospetti e vuole chiamare f . Dopo aver ricevuto la chiamata di sistema, il kernel cerca t f , perché si aspetta che t f contenga un riferimento a f . Invece trova e chiama f '. Quindi il programma spaziale dell'utente riceverà un risultato controllato da m .

risposta data 02.12.2014 - 01:31
fonte

Leggi altre domande sui tag