martes, enero 15, 2008

Log parser: Una herramienta de gestión de logs para Windows

Cuando uno se enfrenta a un análisis en un sistema Windows, se encuentra con el problema de ficheros binarios que se leen a través del visor de eventos (eventvwe.exe). Aunque este programa permite conectarse a diversos equipos, y examinar los registros - siempre que se tengan los permisos adecuados -, puede darse el caso de que nos pasen los ficheros en formatos .evt.

Para eso existe una herramienta de Microsoft llamada Log Parser, capaz de analizar diferentes fuentes de eventos, filtrarlos a través de consultas similares al SQL.

Como elementos de entrada es capaz de consultar directamente los registros de máquinas Windows (el de aplicación, el de seguridad, el de sistema, los de directorios activos, etc), capaz de consultar LDAP - y por tanto, todos los objetos del directorio activos -, ficheros en XML, ficheros separados por comas, ficheros de de IIS - tanto en formato binario como de texto -, en formato NCSA, nuestro propio formato implementando un componente COM. Como formato de salida es capaz de sacar datos en ficheros csv, XML, bases de datos (ODBC), ...

El formato de los filtros es parecido a una consulta SQL. En función del formato de entrada que se tenga, se podrán seleccionar elementos, manipularlos a través de las funciones - suma, manipulación de cadenas, extraer patrones -.

La aplicación se presenta como un sólo ejecutable o bien como una librería COM que puede usarse para incluir dicha funcionalidad en nuestros propios programas.

Por ejemplo, si queremos consultar todos los eventos de una serie de ficheros .evt, podría usarse:

logparser -i:EVT -o:CVS "SELECT * FROM *.evt"
La orden anterior leería todos los eventos de los diferentes ficheros que se le especifican. Si se quisiera, por ejemplo, filtrar el por id 644 - número de evento que corresponde a que se bloquee una cuenta -:
logparser -i:EVT -o:CVS "SELECT * FROM *.evt where EventID=644"

Esto es una introducción a esta estupenda utilidad. Conforme vaya usando más la utilidad iré colgando información de como utilizar la herramienta. Como referencia este artículo en la web de Microsoft.

Por otra parte, a veces, en un entorno Windows se quiere correlar varios eventos que se producen en varios servidores. Hay dos soluciones: o bien, copiar todos los ficheros .evt a un servidor, y analizarlos con log parserl, o bien usar una utilidad que permita consultar los registros de varios ordenadores buscando eventos. Para ello Microsoft ha puesto en su web Account Lockout and Management Tools, una serie de utilidades que permiten solucionar estos problemas:

  • eventcombMT.exe: Visor de eventos que es capaz de consultar a varias máquinas buscando los identificadores que se deseen y sacando un informe con lo que va encontrando.
  • LockoutStatus.exe: Consulta a todos los controladores de dominio para ver si una cuenta ha está bloqueada, cuando se ha cambiado por última vez la contraseña de la misma o cuando se ha producido el último error al intentar autentificarse.
  • acctinfo.dll: Una DLL que extiende la funcionalidad de la mmc de gestión de usuarios del directorio activo, añadiendo información de cuando fue la última vez que se cambio la contraseña de un usuario, cuanto falta para que caduque la misma, etc.
  • Alockout: Existe dos versiones - para cada sistema operativo - , y es una DLL que se utiliza para generar un registro de depuración que indica qué proceso está produciendo el bloqueo.

Technorati Tags:

No hay comentarios: