Introdução
Este documento descreve como usar expressões regulares (regex) com o comando grep para pesquisar logs.
Pré-requisitos
As informações neste documento são baseadas nestas versões de software e hardware:
- Cisco Web Security Appliance (WSA)
- Dispositivo de segurança de e-mail (ESA) da Cisco
- Cisco Security Management Appliance (SMA)
Grep com Regex
O Regex pode ser uma ferramenta poderosa quando usado com o comando grep para pesquisar logs disponíveis no dispositivo, como Logs de acesso, Logs de proxy e outros. Você pode pesquisar os logs com base no site ou em qualquer parte do URL e nos nomes de usuário com o comando CLI grep.
Aqui estão alguns cenários comuns onde você pode usar regex com o comando grep para ajudar na solução de problemas.
Cenário 1: Localizar um site específico nos logs de acesso
O cenário mais comum é quando você tenta encontrar solicitações feitas a um site nos logs de acesso do WSA.
Aqui está um exemplo:
Conecte-se ao equipamento via Secure Shell (SSH). Depois de receber o prompt, insira o comando grep para listar os logs disponíveis.
CLI> grep
Insira o número do log que você deseja grep.
[]> 1 (Choose the # for access logs here)
Insira a expressão regular para grep.
[]> website\.com
Cenário 2: Tentativa de localizar uma extensão de arquivo específica ou domínio de nível superior
Você pode usar o comando grep para localizar uma extensão de arquivo específica (.doc, .pptx) em uma URL ou um domínio de nível superior (.com, .org).
Aqui está um exemplo:
Para encontrar todos os URLs que terminam com .crl, use este regex:
\.crl$
Para encontrar todos os URLs que contêm a extensão de arquivo .pptx, use este regex:
\.pptx
Cenário 3: Tentativa de localizar um bloco específico para um site
Ao pesquisar um site específico, você também pode procurar uma resposta HTTP específica.
Aqui está um exemplo:
Se quiser procurar todas as mensagens TCP_DENIED/403 para domain.com, use este regex:
tcp_denied/403.*domain\.com
Cenário 4: Localizar um nome de máquina nos logs de acesso
Ao usar o esquema de autenticação NTLMSSP, você pode encontrar uma instância em que um agente de usuário (o Microsoft NCSI é o mais comum) envia incorretamente as credenciais da máquina em vez das credenciais do usuário ao autenticar. Para rastrear o URL/agente de usuário que causa esse problema, use regex com grep para isolar a solicitação feita quando a autenticação ocorreu.
Se você não tiver o nome da máquina que foi usado, use grep e localize todos os nomes de máquina que foram usados como nomes de usuário ao autenticar com este regex:
\$@
Quando você tiver a linha onde isso ocorre, faça o grep para o nome específico da máquina que foi usado com este regex:
machinename\$
A primeira entrada que aparece deve ser a solicitação feita quando o usuário foi autenticado com o nome da máquina em vez do nome do usuário.
Cenário 5: Localizar um período de tempo específico nos logs de acesso
Por padrão, as inscrições de log de acesso não incluem o campo que mostra a data/hora legível. Para verificar os logs de acesso de um período específico, siga estas etapas:
- Procure o timestamp UNIX de um site como Conversão On-line.
- Depois de ter o carimbo de data e hora, procure um horário específico nos Logs de acesso.
Aqui está um exemplo:
Um timestamp Unix de 1325419200 é equivalente a 01/01/2012 12:00:00.
Você pode usar essa entrada regex para pesquisar os logs de acesso próximos às 12:00 do dia 1º de janeiro de 2012:
13254192
Cenário 6: Pesquisar mensagens críticas ou de advertência
Você pode procurar mensagens críticas ou de advertência em quaisquer logs disponíveis, como logs de proxy ou logs do sistema, com expressões regulares.
Aqui está um exemplo:
Para procurar mensagens de aviso nos logs de proxy, insira este regex:
CLI> grep
Insira o número do log que você deseja grep.
[]> 17 (Choose the # for proxy logs here)
Insira a expressão regular para grep.
[]> warning