Introducción
Este documento describe cómo utilizar expresiones regulares (regex) con el comando grep para buscar registros.
Prerequisites
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
- Dispositivo de seguridad Cisco Web Security Appliance (WSA)
- Dispositivo de seguridad Cisco Email Security Appliance (ESA)
- Dispositivo de administración de seguridad de Cisco (SMA)
Grep con Regex
Regex puede ser una herramienta poderosa cuando se utiliza con el comando grep para buscar a través de los registros disponibles en el dispositivo, tales como Access Logs, Proxy Logs, y otros. Puede buscar en los registros basados en el sitio web, o en cualquier parte de la URL, y en los nombres de usuario con el comando grep CLI.
A continuación se presentan algunos escenarios comunes donde puede utilizar regex con el comando grep para ayudar con la resolución de problemas.
Situación 1: Buscar un sitio web concreto en los registros de acceso
La situación más habitual es cuando intenta encontrar solicitudes que se realizan a un sitio web en los registros de acceso de WSA.
Aquí tiene un ejemplo:
Conéctese al dispositivo mediante Secure Shell (SSH). Una vez que tenga la indicación, ingrese el comando grep para enumerar los registros disponibles.
CLI> grep
Introduzca el número del registro que desea agregar.
[]> 1 (Choose the # for access logs here)
Ingrese la expresión regular a grep.
[]> website\.com
Situación 2: intento de encontrar una extensión de archivo o un dominio de nivel superior concretos
Puede utilizar el comando grep para encontrar una extensión de archivo determinada (.doc, .pptx) en una URL o un dominio de nivel superior (.com, .org).
Aquí tiene un ejemplo:
Para encontrar todas las URL que terminan con .crl, utilice este regex:
\.crl$
Para encontrar todas las URLs que contienen la extensión de archivo .pptx, utilice este regex:
\.pptx
Situación 3: Intento de encontrar un bloque concreto para un sitio web
Al buscar un sitio web concreto, también puede buscar una respuesta HTTP determinada.
Aquí tiene un ejemplo:
Si desea buscar todos los mensajes TCP_DENIED/403 para domain.com, utilice este regex:
tcp_denied/403.*domain\.com
Situación 4: Buscar un nombre de equipo en los registros de acceso
Cuando utiliza el esquema de autenticación NTLMSSP, puede encontrar una instancia en la que un agente de usuario (Microsoft NCSI es la más común) envía incorrectamente credenciales de equipo en lugar de credenciales de usuario cuando se autentica. Para rastrear la URL/Agente de usuario que causa este problema, utilice regex con grep para aislar la solicitud realizada cuando ocurrió la autenticación.
Si no tiene el nombre de máquina que se utilizó, utilice grep y busque todos los nombres de máquina que se utilizaron como nombres de usuario al autenticarse con este regex:
\$@
Una vez que tenga la línea donde ocurre esto, grep para el nombre de máquina específico que se utilizó con este regex:
machinename\$
La primera entrada que aparece debe ser la solicitud que se realizó cuando el usuario se autenticó con el nombre de equipo en lugar del nombre de usuario.
Situación 5: Búsqueda de un período de tiempo específico en los registros de acceso
De forma predeterminada, las suscripciones al registro de acceso no incluyen el campo que muestra la fecha/hora legible por personas. Si desea comprobar los registros de acceso para un período de tiempo determinado, realice estos pasos:
- Busque la marca de tiempo de UNIX en un sitio como Online Conversion.
- Una vez que tenga la marca de tiempo, busque una hora específica en los registros de acceso.
Aquí tiene un ejemplo:
Una marca de tiempo Unix de 1325419200 es equivalente a 01/01/2012 12:00:00.
Puede utilizar esta entrada regex para buscar los registros de acceso cercanos a las 12:00 del 1 de enero de 2012:
13254192
Situación 6: Búsqueda de mensajes críticos o de advertencia
Puede buscar mensajes críticos o de advertencia en cualquier registro disponible, como registros de proxy o registros del sistema, con expresiones regulares.
Aquí tiene un ejemplo:
Para buscar mensajes de advertencia en los registros de proxy, ingrese este regex:
CLI> grep
Introduzca el número del registro que desea agregar.
[]> 17 (Choose the # for proxy logs here)
Ingrese la expresión regular a grep.
[]> warning