YARA · SEKOIA.IO Community
SEKOIA_Wiper_Win_Isaacwiper
Detect the IsaacWiper using multiple methods + ReversingLab rule's condition
- Autor
- Sekoia.io
- Fecha
- 2022-03-15
- Modificada
- 2024-12-19
- Puntuación / Calidad
- 75 / 80
Qué detecta esta regla
Detect the IsaacWiper using multiple methods + ReversingLab rule's condition
Familia de malware asociada: Isaacwiper.
Objetivos: PE de Windows.
Define 13 patrones (13 de texto, 0 hex, 0 regex). Módulos YARA usados: pe, hash.
YARA-X dice: warning[deprecated_field]: field `number_of_sections` is deprecated
Resumen generado a partir de los metadatos y la condición de la regla.
Código de la regla
Incluye los imports necesarios para compilarla por sí sola.
import "pe"
import "hash"
rule SEKOIA_Wiper_Win_Isaacwiper
{
meta:
= "Detect the IsaacWiper using multiple methods + ReversingLab rule's condition"
= "Sekoia.io"
= "b081e3a3-612e-46ae-93af-82e7ee98fcf7"
= "2022-03-15"
= "2024-12-19"
= "https://github.com/SEKOIA-IO/Community"
= "https://github.com/SEKOIA-IO/Community/blob/a438a5901a211c2abdf75da9c93921ef187473d1/yara_rules/wiper_win_isaacwiper.yar#L4-L45"
= "https://github.com/SEKOIA-IO/Community/blob/a438a5901a211c2abdf75da9c93921ef187473d1/LICENSE.md"
= "0338e11ece112b6f7d88db49cfc703a4431d7ee54f4b9ff0b9e2ea50d39cab4f"
= 75
= 80
= ""
= "1.0"
= "TLP:CLEAR"
strings:
$s1 = "getting drives..." wide
$s2 = "physical drives:" wide
$s3 = "-- system physical drive" wide
$s4 = "-- physical drive" wide
$s5 = "logical drives:" wide
$s6 = "-- system logical drive:" wide
$s7 = "-- logical drive:" wide
$s8 = "start erasing physical drives..." wide
$s9 = "-- FAILED" wide
$s10 = "-- start erasing logical drive" wide
$s11 = "start erasing system physical drive..." wide
$s12 = "system physical drive -- FAILED" wide
$s13 = "start erasing system logical drive" wide
condition:
pe.imphash( ) == "a4b162717c197e11b76a4d9bc58ea25d" or for any i in ( 0 .. pe.number_of_sections -1 ) : ( hash.md5 ( pe.sections [ i ] . raw_data_offset , pe.sections [ i ] . raw_data_size ) == "06d63fddf89fae3948764028712c36d6" or hash.md5 ( pe.sections [ i ] . raw_data_offset , pe.sections [ i ] . raw_data_size ) == "48f101db632bb445c21a10fd5501e343" or hash.md5 ( pe.sections [ i ] . raw_data_offset , pe.sections [ i ] . raw_data_size ) == "5efc98798d0979e69e2a667fc20e3f24" or hash.md5 ( pe.sections [ i ] . raw_data_offset , pe.sections [ i ] . raw_data_size ) == "9676f7c827fb9388358aaba3e4bd0cc6" ) or hash.md5 ( pe.rich_signature.clear_data ) == "ec862d3013903478c2ff8dce2792815f" or all of ( $s* )
}
Cadenas (13 patrones)
| Identificador | Tipo | Valor | Modificadores |
|---|---|---|---|
| $s1 | texto | "getting drives..." | wide |
| $s2 | texto | "physical drives:" | wide |
| $s3 | texto | "-- system physical drive" | wide |
| $s4 | texto | "-- physical drive" | wide |
| $s5 | texto | "logical drives:" | wide |
| $s6 | texto | "-- system logical drive:" | wide |
| $s7 | texto | "-- logical drive:" | wide |
| $s8 | texto | "start erasing physical drives..." | wide |
| $s9 | texto | "-- FAILED" | wide |
| $s10 | texto | "-- start erasing logical drive" | wide |
| $s11 | texto | "start erasing system physical drive..." | wide |
| $s12 | texto | "system physical drive -- FAILED" | wide |
| $s13 | texto | "start erasing system logical drive" | wide |
Condición
pe.imphash( ) == "a4b162717c197e11b76a4d9bc58ea25d" or for any i in ( 0 .. pe.number_of_sections -1 ) : ( hash.md5 ( pe.sections [ i ] . raw_data_offset , pe.sections [ i ] . raw_data_size ) == "06d63fddf89fae3948764028712c36d6" or hash.md5 ( pe.sections [ i ] . raw_data_offset , pe.sections [ i ] . raw_data_size ) == "48f101db632bb445c21a10fd5501e343" or hash.md5 ( pe.sections [ i ] . raw_data_offset , pe.sections [ i ] . raw_data_size ) == "5efc98798d0979e69e2a667fc20e3f24" or hash.md5 ( pe.sections [ i ] . raw_data_offset , pe.sections [ i ] . raw_data_size ) == "9676f7c827fb9388358aaba3e4bd0cc6" ) or hash.md5 ( pe.rich_signature.clear_data ) == "ec862d3013903478c2ff8dce2792815f" or all of ( $s* )En palabras sencillas (Heurística)
- Deben coincidir todos los patrones de ( $s* ).
- Un bucle for comprueba una propiedad sobre varias coincidencias o elementos.
- Usa el módulo pe.
- Usa el módulo hash.
- Compara un hash del archivo o de una parte.
- Comprueba el hash de importaciones PE (imphash).
- Comprueba secciones PE (nombres, número o propiedades).
Prueba esta regla en tu navegador
Arrastra un archivo para escanearlo con esta regla usando YARA-X compilado a WebAssembly. No se sube nada.
Referencias
Licencia y atribución
Autor: Sekoia.io
Repositorio de origen: SEKOIA.IO Community @ a438a5901a
Licencia: Detection Rule License 1.1 (licencia del repositorio)
Obtenida a través de YARA Forge 20260927, que añade a los nombres el prefijo de la fuente y campos meta normalizados.
Id de la regla: b081e3a3-612e-46ae-93af-82e7ee98fcf7
Metadatos
| version | 1.0 |
|---|---|
| classification | TLP:CLEAR |
Reglas relacionadas
- MalwareSignature Base (Florian Roth / Nextron)· Florian Roth (Nextron Systems)· 2022-03-03
- MalwareMalpedia signator rules· Felix Bilstein - yara-signator at cocacoding dot com· 2026-05-04
- MalwareSEKOIA.IO Community· Sekoia.io· 2024-07-16
- MalwareSEKOIA.IO Community· Sekoia.io· 2024-08-23
- MalwareSEKOIA.IO Community· Sekoia.io· 2024-04-22
- MalwareSEKOIA.IO Community· Sekoia.io· 2024-07-23
- MalwareSEKOIA.IO Community· Sekoia.io· 2024-10-20
- MalwareSEKOIA.IO Community· Sekoia.io· 2024-03-20