API hooking: intercettare le chiamate di sistema
Un hook intercetta una chiamata a funzione per osservarla o modificarla. La tecnica è neutra: gli EDR la usano per monitorare, il malware per nascondersi.
Inline hooking
Si sovrascrivono i primi byte della funzione target con un jmp verso il proprio codice (trampolino). Dopo l'analisi/modifica, si eseguono i byte originali salvati e si torna:
originale: MOV EDI,EDI; PUSH EBP; ...
hookato: JMP mio_handler ; poi esegue i byte salvatiIAT hooking invece riscrive i puntatori nella Import Address Table. Il malware usa gli hook per intercettare API di rete (furto dati), di file (nascondere file), o per bypassare i controlli.
Difesa
Gli EDR rilevano hook sospetti confrontando le funzioni in memoria con l'immagine su disco (integrity check). Il malware moderno fa unhooking (ripristina le API per aggirare l'EDR) o usa syscall dirette. Verificare l'integrità delle DLL di sistema è la contromisura.