Saltar al contenido

YARA · Trellix Advanced Research Center

TRELLIX_ARC_Loocipher_Ransomware

Rule to detect Loocipher ransomware

MalwareLoocipherTrellix Advanced Research CenterApache License 2.0Compila con YARA-X
Autor
Marc Rivero | McAfee ATR Team
Fecha
2019-12-05
Modificada
2020-08-14
Puntuación / Calidad
75 / 70

Qué detecta esta regla

Rule to detect Loocipher ransomware

Familia de malware asociada: Loocipher.

Objetivos: PE de Windows.

Define 20 patrones (20 de texto, 0 hex, 0 regex).

Resumen generado a partir de los metadatos y la condición de la regla.

Código de la regla

loocipher-ransomware.yarApache License 2.0
rule TRELLIX_ARC_Loocipher_Ransomware : RANSOMWARE FILE
{
	meta:
		description = "Rule to detect Loocipher ransomware"
		author = "Marc Rivero | McAfee ATR Team"
		id = "d18efe09-4b04-5089-84f8-aead63fc19bb"
		date = "2019-12-05"
		modified = "2020-08-14"
		reference = "https://www.mcafee.com/blogs/other-blogs/mcafee-labs/analysis-of-loocipher-a-new-ransomware-family-observed-this-year/"
		source_url = "https://github.com/advanced-threat-research/Yara-Rules//blob/1919562a59f190bda60c982424f6a24c542ee3e0/ransomware/RANSOM_Loocipher.yar#L1-L46"
		license_url = "https://github.com/advanced-threat-research/Yara-Rules//blob/1919562a59f190bda60c982424f6a24c542ee3e0/LICENSE"
		hash = "7720aa6eb206e589493e440fec8690ceef9e70b5e6712a9fec9208c03cac7ff0"
		logic_hash = "36e452c34fd9bbb521f5422bffdbb71991de66f3faa29292dc3f27c8d7e1f9ba"
		score = 75
		quality = 70
		tags = "RANSOMWARE, FILE"
		rule_version = "v1"
		malware_type = "ransomware"
		malware_family = "Ransom:W32/Loocipher"
		actor_type = "Cybercrime"
		actor_group = "Unknown"

	strings:
		$x1 = "c:\\users\\usuario\\desktop\\cryptolib\\gfpcrypt.h" fullword ascii
		$x2 = "c:\\users\\usuario\\desktop\\cryptolib\\eccrypto.h" fullword ascii
		$s3 = "c:\\users\\usuario\\desktop\\cryptolib\\gf2n.h" fullword ascii
		$s4 = "c:\\users\\usuario\\desktop\\cryptolib\\queue.h" fullword ascii
		$s5 = "ThreadUserTimer: GetThreadTimes failed with error " fullword ascii
		$s6 = "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<struct CryptoPP::ProjectivePoint> > >::operator *" fullword wide
		$s7 = "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<struct CryptoPP::ProjectivePoint> > >::operator +=" fullword wide
		$s8 = "std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::operator []" fullword wide
		$s9 = "std::vector<struct CryptoPP::ProjectivePoint,class std::allocator<struct CryptoPP::ProjectivePoint> >::operator []" fullword wide
		$s10 = "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<class CryptoPP::Integer> > >::operator *" fullword wide
		$s11 = "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<class CryptoPP::Integer> > >::operator +=" fullword wide
		$s12 = "std::vector<struct CryptoPP::WindowSlider,class std::allocator<struct CryptoPP::WindowSlider> >::operator []" fullword wide
		$s13 = "std::istreambuf_iterator<char,struct std::char_traits<char> >::operator ++" fullword wide
		$s14 = "std::istreambuf_iterator<char,struct std::char_traits<char> >::operator *" fullword wide
		$s15 = "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<struct CryptoPP::ProjectivePoint> > >::_Compat" fullword wide
		$s16 = "std::vector<class CryptoPP::PolynomialMod2,class std::allocator<class CryptoPP::PolynomialMod2> >::operator []" fullword wide
		$s17 = "DL_ElgamalLikeSignatureAlgorithm: this signature scheme does not support message recovery" fullword ascii
		$s18 = "std::vector<struct CryptoPP::ECPPoint,class std::allocator<struct CryptoPP::ECPPoint> >::operator []" fullword wide
		$s19 = "std::vector<struct CryptoPP::EC2NPoint,class std::allocator<struct CryptoPP::EC2NPoint> >::operator []" fullword wide
		$s20 = "std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<class CryptoPP::Integer> > >::_Compat" fullword wide

	condition:
		( uint16( 0 ) == 0x5a4d and filesize < 17000KB and ( 1 of ( $x* ) and 4 of them ) ) or ( all of them )
}

Cadenas (20 patrones)

IdentificadorTipoValorModificadores
$x1texto"c:\\users\\usuario\\desktop\\cryptolib\\gfpcrypt.h"fullword ascii
$x2texto"c:\\users\\usuario\\desktop\\cryptolib\\eccrypto.h"fullword ascii
$s3texto"c:\\users\\usuario\\desktop\\cryptolib\\gf2n.h"fullword ascii
$s4texto"c:\\users\\usuario\\desktop\\cryptolib\\queue.h"fullword ascii
$s5texto"ThreadUserTimer: GetThreadTimes failed with error "fullword ascii
$s6texto"std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<struct CryptoPP::ProjectivePoint> > >::operator *"fullword wide
$s7texto"std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<struct CryptoPP::ProjectivePoint> > >::operator +="fullword wide
$s8texto"std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::operator []"fullword wide
$s9texto"std::vector<struct CryptoPP::ProjectivePoint,class std::allocator<struct CryptoPP::ProjectivePoint> >::operator []"fullword wide
$s10texto"std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<class CryptoPP::Integer> > >::operator *"fullword wide
$s11texto"std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<class CryptoPP::Integer> > >::operator +="fullword wide
$s12texto"std::vector<struct CryptoPP::WindowSlider,class std::allocator<struct CryptoPP::WindowSlider> >::operator []"fullword wide
$s13texto"std::istreambuf_iterator<char,struct std::char_traits<char> >::operator ++"fullword wide
$s14texto"std::istreambuf_iterator<char,struct std::char_traits<char> >::operator *"fullword wide
$s15texto"std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<struct CryptoPP::ProjectivePoint> > >::_Compat"fullword wide
$s16texto"std::vector<class CryptoPP::PolynomialMod2,class std::allocator<class CryptoPP::PolynomialMod2> >::operator []"fullword wide
$s17texto"DL_ElgamalLikeSignatureAlgorithm: this signature scheme does not support message recovery"fullword ascii
$s18texto"std::vector<struct CryptoPP::ECPPoint,class std::allocator<struct CryptoPP::ECPPoint> >::operator []"fullword wide
$s19texto"std::vector<struct CryptoPP::EC2NPoint,class std::allocator<struct CryptoPP::EC2NPoint> >::operator []"fullword wide
$s20texto"std::_Vector_const_iterator<class std::_Vector_val<struct std::_Simple_types<class CryptoPP::Integer> > >::_Compat"fullword wide

Condición

( uint16( 0 ) == 0x5a4d and filesize < 17000KB and ( 1 of ( $x* ) and 4 of them ) ) or ( all of them )

En palabras sencillas (Heurística)

  • El archivo debe empezar por «MZ»: un ejecutable de Windows (PE).
  • El archivo debe ocupar menos de 17000KB (un límite barato que descarta archivos grandes).
  • Deben coincidir todos los patrones de la regla.
  • Deben coincidir al menos 1 patrones de ( $x* ).
  • Deben coincidir al menos 4 patrones de la regla.

Prueba esta regla en tu navegador

Arrastra un archivo para escanearlo con esta regla usando YARA-X compilado a WebAssembly. No se sube nada.

Arrastra un archivo aquí o haz clic para elegirSe escanea en local con YARA-X. Archivos de hasta 200 MB.

Abrir en el editor

Referencias

Hashes de muestras

Hashes de las muestras que el autor lista en los metadatos de la regla (búscalos en tu plataforma de threat intelligence).

  • 7720aa6eb206e589493e440fec8690ceef9e70b5e6712a9fec9208c03cac7ff0

Licencia y atribución

Autor: Marc Rivero | McAfee ATR Team

Repositorio de origen: Trellix Advanced Research Center @ 1919562a59

Licencia: Apache License 2.0 (licencia del repositorio)

Regla original

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: d18efe09-4b04-5089-84f8-aead63fc19bb

Metadatos

rule_versionv1
malware_typeransomware
malware_familyRansom:W32/Loocipher
actor_typeCybercrime
actor_groupUnknown

Etiquetas:RANSOMWAREFILE