Auditando Plantillas de Configuración segun Línea base de Seguridad


En la auditoria a dispositivos de redes, existen varias herramientas de software propietarias (ej. Nipper Studio, Cisco Prime) y open sources (ej. Cisco Auditing Tool, Yersenia…) que apoyan este procedimiento, sin embargo, dependiendo del alcance u objetivo de la auditoria, muchas de estas herramientas se quedan cortas o quizás ya no tienen soporte y actualizaciones (ej. Nipper) o simplemente no se adaptan a la necesidad especifica o al tipo de auditoria que se va a realizar (ej. de caja blanca o gris), por ejemplo, verificar que se esté cumpliendo la línea base definida e implementada por el área pertinente (ej. OpSec) en la organización.

Comando en Nipper

Ejemplo de comando en Nipper con varios archivos de configuración

Es en estos casos en donde se hace necesario crear scripts o herramientas de software propias para realizar ciertas validaciones, por ejemplo, hacer búsquedas de comandos que están definidos en la línea base y en caso de que lo encuentre indicar si cumple o no con lo establecido en dicho documento.

Conceptualización:

¿Qué es una línea base? En el contexto de seguridad informática, una linea base tiene que ver con un conjunto de parametros o configuraciones definidas para los activos de T.I. con el fin de estar más seguros o con un nivel de riesgo minimo. Por lo general, se documentan para ser publicados en la base de conocimiento de T.I. con los respectivos permisos solo para el personal de seguridad, operación o quien lo consideren por demanda (ej. Auditores, Jefes…). Las guias/herramientas de Hardening publicadas por los Fabricantes o entidades como el Center for Internet Security – CIS, son un buen inicio para crear las lineas base.

¿Qué es Windows Powershell – PS? Es un Framework con interface de linea de comandos (CLI) basado en .NET, con el fin de automatizar tareas y administrar configuraciones en entornos Microsoft, por medio de lenguaje scripting.

¿Y por qué no Python u otro lenguaje scripting? Para este caso, porque PowerShell esta embebido por defecto en sistemas operativos Windows Vista en Adelante y posee una gran cantidad de funcionalidades o CMDLETs que le permiten interactuar de forma directa con el sistema operativo Windows; Además porque en muchas ocasiones no se tiene facilidad de instalar el entorno o interprete para Python, lo que es más conveniente usar comandos ninja o scripts con un lenguaje nativo por defecto.

En este post, se comparte un sencillo script en Powershell para la finalidad de auditar los comandos definidos en una línea base de dispositivos de redes y comunicaciones, básicamente funciona de la siguiente manera:

  • El script solicita ingresar como parámetros el nombre de la categoría, el comando o string a buscar, la ruta en donde están almacenadas las plantillas o archivos de configuración de la muestra seleccionada y finalmente la ruta del archivo de salida.
parámetros Script

Información que solicita el Script

NOTA: Este código puede ser modificado para que la variable tenga un valor en específico o tome la información desde un array.

  • Finalmente, este recorre cada una de las plantillas en búsqueda del comando y en caso de que lo encuentre indica que cumple sino indica que no cumple; este resultado se almacena en un archivo CSV el cual puedes manipular para crear una tabla dinámica y mostrar los resultados en forma percentil o más resumida.
Reporte CSV

Reporte en formato CSV

 El código fuente del script lo publique en CodePlex y se puede clonar con GIT (git clone https://git01.codeplex.com/auditsecbaselinenet Folder) o se puede copiar y pegar a un archivo PS1 para ser ejecutado.

Codigo Fuente Script en Power Shell

Código Fuente Script en Power Shell

NOTA: Pueden aprender a usar GIT con CodePlex en este enlace> http://bit.ly/1VPKxj5

  • Luego de validar los cumplimientos y otras actividades que se incluyen en una auditoria de seguridad, se puede obtener una tabla como la siguiente para anexar en el informe final.
Tabla de Cumplimiento

Tabla de Cumplimiento

Cabe aclarar que este script se puede adaptar para otras situaciones en las que sea necesario realizar búsquedas masivas sobre un conjunto de archivos.

By @JOGAcrack

Anuncios