Technical article
Mecanismos de Detección
Static/Signature Detection
Una firma(signature) es un numero de bytes o strings unicos que identifican un malware, otras condiciones pueden ser variables o
nombres de funciones. Una vez que la solución de seguridad escanea el programa lo compara con una lista de reglas (YARA), por
ejemplo si un shellcode empieza con `FC 48 83 E4 F0 E8 C0 00 00 00 41 51 41 50 52 51` sabemos que es un payload de msfvenom
Hash Detection
Es parte del static/signature detection, es la manera mas fácil y rápida de detectar un malware, se puede hacer simplemente guardando los hashes (MD5, SHA256…) de un malware conocido en una BD
Heuristic Detection
Dado que se puede bypassear facilmente la detección por firma cambiando unos bytes o modificando algo el código se creo:
Static Heuristic Detection
Decompila el programa y compara los trozos de código con malware ya conocido que estan en las BD del propio AV
Dynamic Heuristic Analysis (SandBox)
Analiza el comportamiento de un malware subiéndolo a su servidor en la nube y lo ejecuta, una vez alli analiza su comportamiento y lo flagea como bueno o no (Se puede preveer esto y hacer que solo ejecute codigo bueno)
Behavior-Based Detection
Una vez que el malware este corriendo las security solutions buscaran por comportamiento sospechoso, por ejemplo si inyecta código en el proceso `notepad.exe` y se conecta a internet esto causara que sea sospechoso
La mejor manera de bypassearlo es evitando lo máximo posible que haga cosas detectables (spawnear un cmd.exe, etc)
Api Hooking
Mayormente usado por EDRs, interceptan las APIs mas usadas y analizan los parámetros que se le pasan en tiempo real
IAT Checking
Podemos saber los dlls y funciones que esta usando los PE, por ejemplo el ransomware usa CreateFileA/W, SetFilePointer, Read/WriteFile, CryptCreateHash, CryptHashData, CryptGetHashParam esto es detectable
Análisis Manual
El blue team puede analizar manualmente el malware haciendo ingenieria inversa, sin embargo se pueden implementar tecnicas de anti ingenieria inversa