RegEx básico para SIEM

O Regex é usado para diversas linguagens e possui diversas utilidades, aqui vamos usa o Regex como o foco em SIEM.

É possível realizar buscas de dados, parser de logs, condições de regras, entre outras opções. Antes de tudo, vamos entender um pouco sobre os comandos básicos e alguns exemplos:

Caracteres

Expressão Descrição
^ Negação – Usado para negar a expressão
. Curinga – Qualquer caractere
* 0 ou mais caracteres
? 0 ou 1 caracteres
+ 1 ou mais caracteres
{ } Delimita a quantidade de ocorrências
[ ] Qualquer caractere incluso no conjunto
( ) Define um grupo, para efeito de aplicação de quantificador
| Usado como alternativa opção A OU opção B

Obs: o caractere ^ possui outras funções, mas nesse momento vamos focar nele como negação apenas.

Comandos básicos

Expressão Descrição
[a-z] Qualquer letra minúscula
[A-Z] Qualquer letra maiúscula
[0-9] Qualquer número
\d = [0-9]
\D = [^0-9]
\w Alfanumérico = [a-zA-Z0-9]
\W Nega alfanumérico

Exemplos

Log: <01/01/2000> hostname: ABCD Event:XYZ IPV4:1.10.100.10 IPV6: 2001:0DB8:AD1F:25E2:CADE:CAFE:F0CA:84C1

Data: 01/01/2000

  • Ex 01:\d\d/\d\d/\d\d\d\d – Usando apenas o parâmetro \d conforme o padrão da data
  • Ex 02:\d{2}/\d{2}/\d{4} – Usando o \d mais {} para delimitar a quantidade de números
  • Ex 03:[0-3]\d\W[0-1]\d\W\d{4} – Delimita que o primeiro algarismo seja 0,1,2 ou 3, sendo assim não será aceito a data com dia 40 ao 99 o parâmetro \W para um caractere não alfanumérico e o mês delimitando o primeiro algarismo em 0 ou 2.

IPV4: 1.10.100.10

  • Ex 01: \d{1,3}.\d{1,3}.\d{1,3}.\d{1,3} – \d para caractere numérico delimitado de 1 à 3 separados por ponto
  • Ex 02: \d{1,3}\W\d{1,3}\W\d{1,3} – \d separado por caractere não alfanumérico \W
  • Ex 03: IPV4(.*) – “coletar” o que tiver após a palavra IPV4 e antes de IPV6

IPV6: 2001:0DB8:AD1F:25E2:CADE:CAFE:F0CA:84C1

  • Ex 01: IPV6(.*) – “coletar” tudo após a palavra IPV6
  • Ex 02: (([0-9a-fA-F]{1,4}):([0-9a-fA-F]{1,4}):([0-9a-fA-F]{1,4}):([0-9a-fA-F]{1,4}):([0-9a-fA-F]{1,4}):([0-9a-fA-F]{1,4}):([0-9a-fA-F]{1,4}):([0-9a-fA-F]{1,4})) – Irá “coletar” 4 caractere de 0 à 9 ou de A à F tanto minúsculo quanto maiúsculos em uma sequência de 8 vezes

Obs: Dependendo do SIEM pode ter que alterar ou movimentar os parênteses

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.