YARA regras são uma maneira de identificar um programa malicioso (ou outros arquivos) através da criação de regras que olhar para determinadas características. A YARA foi originalmente desenvolvida por Victor Alvarez da Virustotal e é usada principalmente na pesquisa e detecção de malware. Foi desenvolvido com a ideia de descrever padrões que identificam estirpes particulares ou famílias inteiras de malware.
sintaxe
cada regra tem que começar com a regra da palavra, seguida pelo nome ou identificador. O identificador pode conter qualquer caráter alfanumérico e o caráter sublinhado, mas o primeiro caráter não é permitido ser um dígito. Há uma lista de palavras-chave YARA que não podem ser usadas como um identificador porque eles têm um significado predefinido.
condição
as regras são compostas por várias secções. A secção de condição é a única que é necessária. Esta seção especifica quando o resultado da regra é verdadeiro para o objeto (arquivo) que está sob investigação. Contém uma expressão booleana que determina o resultado. As condições são por design expressões booleanas e podem conter todos os operadores lógicos e relacionais usuais. Você também pode incluir outra regra como parte de suas condições.
Strings
para dar à secção de condição um significado, Você também precisará de uma secção de strings. As seções de strings é onde você pode definir os strings que serão procurados no arquivo. Vejamos um exemplo fácil.
rule vendor
{
strings:
$text_string1 = "Vendor name" wide
$text_string2 = "Alias name" wide
condition:
$text_string1 or $text_string2
}
a regra mostrada acima é nomeado vendedor e procura as cadeias de caracteres “nome do vendedor”e” nome Alias”. Se qualquer uma dessas cadeias de caracteres for encontrada, então o resultado da regra é verdadeiro.
existem vários tipos de cadeias de caracteres que pode procurar:
- Hexadecimal, em combinação com wild-cards, saltos e alternativas.
- strings de texto, com modificadores: nocase, fullword, wide, and ascii.
- expressões regulares, com os mesmos modificadores que as cadeias de texto.
existem muitas condições mais avançadas que você pode usar, mas elas estão fora do escopo deste post. Se você gostaria de saber mais você pode encontrá-lo na documentação de YARA.
Metadados
Metadados podem ser adicionados para ajudar a identificar os arquivos que foram apanhados por uma determinada regra. Os identificadores de metadados são sempre seguidos de um sinal igual e do valor do conjunto. Os valores atribuídos podem ser strings, inteiros, ou um valor booleano. Note que os pares de identificadores / valores definidos na secção de metadados não podem ser usados na secção de condições, a sua única finalidade é armazenar informações adicionais sobre a regra.
Resumo
YARA é uma ferramenta que pode ser usada para identificar arquivos que atendam a determinadas condições. É usado principalmente por pesquisadores de segurança para classificar malware.
ligações
detecção baseada na Assinatura com YARA
última documentação de YARA
YARA: Uma forma simples e eficaz de dissecar Malware
Screenshots foram feitos usando o Editor Yara pelo Adlice Software
Pieter Arntz