Este artículo tiene como objetivo presentar una prueba de concepto de Passive Network Audit Framework (PNAF), implementación de un framework basado en PNA (Passive Network Audit) el cual puede ser utilizado como herramienta de análisis pasivo de tráfico de red, aprovechando ventajas de otras herramientas. El alcance de este artículo incluye la instalación, configuración y modelos de ejecución para extracción de datos e interpretación de información. Para una mejor referencia del modelo teórico, puede consultarse el artículo “Frameworks para monitoreo, forense y auditoría de tráfico de red” del número 24 de la revista .Seguridad y la fuente original[2] de dicho framework.
Explore this article
El contenido de este artículo será publicado en el número 25 de la revista .Seguridad del UNAM-CERT.
CONTENIDO
- MODELO GENERAL DE PNAF
- MODOS DE INSTALACIÓN
- CONFIGURACIÓN
- POC: ANALISIS DE CAPTURAS DE TRÁFICO DE RED
MODELO GENERAL DE PNAF
El modelo general de PNAF (Figura 1), define el funcionamiento y flujo de datos a través del cual PNAF decodifica, filtra e interpreta información a partir del tráfico de red.
Figura 1. Modelo de análisis de Passive Network Audit Framework (PNAF)
MODOS DE INSTALACIÓN
PNAF incluye una serie de herramientas[3] para captura y análisis de tráfico de red. Debido a sus características y capacidades, algunas de estas herramientas por sí mismas pueden involucrar complejos procesos de instalación y configuración. Por esta razón, PNAF está diseñado para proveer modos de instalación que faciliten y automaticen el proceso de manera que el analista pueda hacer uso del framework sin mayor problema. Existen cuatro modos de instalación los cuales se explican a continuación.
Instalación mediante Instalador
PNAF incluye un instalador que automatiza la descarga, compilación y configuración de todas las herramientas. Este instalador incluye un Wizard (asistente de instalación) basado en dialog. Para poder utilizar este modo de instalación es necesario cumplir los siguientes requerimientos:
- Sistema Debian GNU/Linuxx o superior o Gentoo stage 3.x.
- Conexión a internet durante la instalación (El instalador descarga e instala algunas dependencias via Apt o Emerge), así como algunos módulos de Perl via CPAN.
Es posible su funcionamiento en Ubuntu u otra distribución basada en Debian, sin embargo implica verificar las equivalencias en paquetes instalados por Apt. Asimismo, es posible usar el instalador en otros sistemas no basados en Debian siempre y cuando se instalen manualmente todas las dependencias necesarias para la compilación de las herramientas. Para esto se puede consultar el archivo README e instalar las dependencias equivalentes de la lista de Apt/emerge.
Debido a que PNAF instala una gran cantidad de dependencias, se recomienda instalar el framework en un ambiente chroot para evitar cualquier problema de compatibilidad de dependencias en el sistema nativo. En esta prueba de concepto se hará de esa manera y el proceso se explica a continuación.
Asumiendo que se cuenta con un sistema Debian 8 de 64 bits (amd64):
-
Creación del ambiente chroot (via debootstrap)
# aptitude install debootstrap
# debootstrap --arch amd64 jessie chroot_pnaf http://ftp.mx.debian.org/debian
# mount -t sysfs sysfs chroot_pnaf/sys
# mount -t proc proc chroot_pnaf/proc
# mount -o bind /dev chroot_pnaf/dev
# mount -o bind /dev/pts chroot_pnaf/dev/pts
Ahora se cambia al ambiente chroot
# chroot chroot_pnaf
# cd ~
-
Descarga de PNAF
Opción 1: Desde el repositorio oficial del proyecto
# aptitude install git
# git clone https://dev.honeynet.org.mx/traffic-analysis/pnaf.git
Opción 2: Desde el mirror en github
# git clone https://github.com/jusafing/pnaf
Una vez descargado, ingresar al directorio y ejecutar el instalador
# cd pnaf
# ./install.sh
Esto ejecutará el asistente. Primero se deberá confirmar que se desea instalar PNAF. Posteriormente se pueden seleccionar las herramientas que se incluirán en el framework. A pesar de que no todas las herramientas se utilizan en esta versión de PNAF (v0.1.2), se recomienda seleccionar todas para utilizarlas de manera independiente. Visto de este modo, PNAF es también un asistente para la instalación de herramientas de análisis de tráfico de red.
Figura 2. Selección de herramientas en la instalación de PNAF
Si es la primera vez que se instala PNAF se debe seleccionar una instalación limpia “clean installation”. En caso de que exista una instalación previa, la instalación limpia eliminará cualquier herramienta y archivos instalados por PNAF. Si solo se desea agregar o reinstalar ciertas herramientas, se debe seleccionar “NO” en este paso.
Figura 3. Selección del tipo de instalación
A partir de ese momento el instalador comenzará a compilar y configurar todas las herramientas. Este proceso puede durar aproximadamente 30 minutos dependiendo de las capacidades del equipo. En caso de que exista un error en el proceso de instalación, el instalador mostrará el mensaje correspondiente y se pueden verificar los archivos install.log e install.log.exec para identificar el problema. De lo contrario, si el proceso terminó correctamente, PNAF ha quedado instalado y listo para usarse.
Como recomendación, para actualizar las variables de ambiente hay que salir del ambiente chroot y volver a entrar. Asimismo, para identificar cuando se esté dentro del directorio de chroot, es conveniente agregar una etiqueta al shell :
# echo 'PS1="(PNAF) $PS1"' >> ~/.bashrc
# exit
# chroot chroot_pnaf
Para verificar que PNAF se ha instalado correctamente:
# pnaf_auditor --help
Figura 4. Opciones de ejecución de PNAF
Instalación mediante Debian chroot pre-configurado
El segundo modo de instalación corresponde al uso de un directorio chroot con todas las herramientas pre-compiladas y pre-configuradas. Esta alternativa básicamente evita todo el proceso de compilación y creación del directorio raíz con debootstrap presentada en el modo anterior. Por otro lado, facilita tener una plantilla con un directorio preparado para usar con chroot. Usando este modo solo es necesario descargar el archivo empaquetado .tar.bz2 (aproximadamente 1.3Gb) y desempaquetarlo en el sistema de archivos local.
Es importante mencionar que este modo funciona solo si el sistema local en el que se planea instalar es Debian 8 amd64 (la compilación de todas las herramientas depende de la arquitectura y de las versiones de las dependencias usadas por Apt).
# wget http://pnaf.honeynet.org.mx/download/chroot_pnaf.tar.bz2
# tar -jxvf chroot_pnaf.tar.bz2
# mount -t sysfs sysfs chroot_pnaf/sys
# mount -t proc proc chroot_pnaf/proc
# mount -o bind /dev chroot_pnaf/dev
# mount -o bind /dev/pts chroot_pnaf/dev/pts
# chroot chroot_pnaf
Igualmente se puede verificar que PNAF se ha instalado correctamente:
# pnaf_auditor –help
Instalación (uso) mediante una máquina virtual
En este modo de instalación es necesario descargar una imagen de máquina virtual en formato OVA para ser importando con VirtualBox o Vmware.
- Descargar la imagen en http://pnaf.honeynet.org.mx/download/pnaf-0.1.2.ova
- En virtual Box:
En el menú File/Import appliance/ seleccionar el archivo OVA y crear la máquina virtual
Esta máquina virtual tiene instalado PNAF con todas las opciones mostradas en el instalador. Las credenciales de acceso para el usuario root se muestran en el mensaje de bienvenida una vez que se inicia la máquina virtual.
Figura 5. Máquina virtual pre-configurada con PNAF
Una vez dentro de la máquina virtual se debe ingresar nuevamente al directorio con chroot.
# mount -t sysfs sysfs chroot_pnaf/sys
# mount -t proc proc chroot_pnaf/proc
# mount -o bind /dev chroot_pnaf/dev
# mount -o bind /dev/pts chroot_pnaf/dev/pts
# chroot /root/chroot_pnaf
Instalación mediante módulo de Perl (Instalación independiente)
Esta opción incluye la instalación del core (núcleo) de PNAF, es decir, instalación independiente del módulo de Perl. Este modo se puede utilizar cuando se desee usar PNAF con una instalación propia de las herramientas. Sin embargo, no es recomendable ya que se necesitan configurar una gran cantidad de opciones incluyendo la ruta de los archivos binarios de cada una de las herramientas, archivos de configuración, logs, etc. Para esto, una vez descargado PNAF, editar la configuración de cada una de las herramientas:
# cd pnaf
# vim build/pnaf/Pnaf/lib/Pnaf/Core.pm (establecer rutas)
# cd build/pnaf/Pnaf
# perl Makefile.PL
# make
# make test
# make install
CONFIGURACIÓN
La mayoría de las opciones de configuración se definen directamente como argumentos al momento de la ejecución del auditor de PNAF (pnaf_auditor).
Para visualizar las herramientas incluidas en el framework se puede ejecutar
# pnaf_auditor –-version
Para mayor información sobre las opciones disponibles en PNAF 0.1.2
# pnaf_auditor –-help
En caso de necesitar una configuración específica, por ejemplo agregar firmas del IDS Suricata, se pueden modificar los archivos de configuración dentro del directorio /pnaf/etc
POC: ANALISIS DE CAPTURAS DE TRÁFICO DE RED
A continuación se analizarán tres archivos de captura en formato PCAP. La flexibilidad de las herramientas usadas por PNAF permite extraer e interpretar la información de maneras diferentes. El análisis en esta prueba de concepto no representa la totalidad de información que se puede obtener. Así, la PoC incluye un análisis general los archivos de captura de manera que se obtenga la siguiente información y cuyo propósito se explica en la siguiente tabla:
Información a identificar | Propósito |
Identificación de activos | Identificación de los equipos que participan en el tráfico de red incluyendo estadísticas de uso por tipo de conexión, protocolos, tasas de transferencia, etc. |
Posible eventos de seguridad (alertas de IDS) | Identificación de posibles actividades anómalas o maliciosas a partir de un motor IDS |
Recursos que se acceden | Identificación de recursos como URLs, dominios, archivos transferidos |
Auditoría de software usado en la organización | Identificación pasiva del software utilizado en la red tanto por clientes como por servidores. A partir de esta información se lleva a cabo la identificación de potenciales vulnerabilidades basadas en CVE. |
Ejecución inicial
Procesamiento general:
Teniendo el archivo de captura test1.cap, se ejecuta pnaf_auditor de la siguiente manera:
# pnaf_auditor –-cap test1.cap –log_dir /pnaf/www/test1
Esto ejecutará una serie de herramientas y procesará la información almacenando los resultados en el directorio /pnaf/www/test1
Figura 6. Ejecución de PNAF
Procesamiento específico
Ahora, asumiendo que se desea obtener un filtrado específico se puede ejecutar pnaf_auditor con las siguientes opciones
# pnaf_auditor –-cap test2.cap –log_dir /pnaf/www/test2 --home_net 192.168.1.0/24 –-payload
En esta ejecución se indica que se analizará el archivo de captura test2.cap y que la red de la organización “home_net” es el segmento 192.168.1.0/24. (Se pueden indicar más segmentos en formato CIDR[4] separados por comas). Asimismo, se indica que se desea extraer el payload en caso de identificar una alerta de IDS (útil para análisis a fondo y verificación de falsos positivos).
Análisis e interpretación de la información
La interpretación de la información se puede llevar a cabo en distintas etapas.
1. Logs de línea de comandos
El log generado durante la ejecución muestra el resumen de los resultados. Esta fase es importante porque se obtiene información sobre las herramientas utilizadas, asi como del panorama general de los datos obtenidos. La siguiente figura muestra la explicación del log generado por PNAF.
Figura 7. Log de ejecución y resultados generales de PNAF
2. Logs en interfaz web
PNAF permite una visualización de los resultados a través de una interfaz web básica. Esta interfaz permite listar:
- Archivos de log “crudos” generados por cada una de las herramientas
- Archivos de log pre-procesados en formato JSON[5]
- Archivos de log con resultados de auditoría en formato JSON y visualizados en forma de árbol
Para poder utilizar la interfaz web es necesario activar el servidor web apache incluido en PNAF.
# apachectl start
Usando la configuración default, todos los directorios de resultados que se almacenen en /pnaf/www e indicados en la opción –log_dir, podrán ser visualizados en web, usando http://localhost o la dirección IP específica donde se ejecute PNAF.
Figura 8. Visualización web básica de PNAF
Dentro de este directorio se tiene la siguiente estructura y se muestra un ejemplo en la Figura 9:
Figura 9. Archivos generados para la visualización web de PNAF
El análisis en esta PoC va de lo general a lo particular. Primeramente se puede dar un vistazo general en el contenido del archivo json/summary/dataset.html. Aquí, el analista puede acceder a la información clasificada de las herramientas. Cada herramienta contiene dos categorías principales, Summary (resumen de los datos) y Tracking (información por activos -IPs, servers, etc-). Según la necesidad del analista y los hallazgos encontrados, se pueden extraer datos a profundidad por cada herramienta y filtrar la información mediante el cuadro de búsqueda en cada árbol de herramienta.
Figura 10. Conjunto de datos (datasets) de las herramientas usadas en PNAF
Continuando con el análisis, ahora se visualiza el filtrado y pre-procesamiento de datos generados por PNAF, el cual lleva a cabo una correlación básica y conjunta la información creando diferentes categorías. Para ello se accede al archivo /json/summary/auditSummary.html y es aquí donde el analista puede extraer información detallada de la actividad de cada uno de los activos que intervienen en el tráfico de red. Por ejemplo, se puede obtener información sobre URL, certificados SSL, alertas IDS, archivos transferidos, Software utilizado, etc. De la misma manera, si la auditoría se prefiere hacer tomando como clasificación general a los activos, entonces se puede visualizar el archivo /json/summary/auditTracking.html
Figura 11. Resumen de auditoría. Clasificación general
Figura 12. Resumen de auditoría. Clasificación por activos
Finalmente, el archivo /json/summary/auditOutput.html muestra el resultado del análisis de vulnerabilidades basadas en CVE[6] y versiones de software encontradas. Este análisis incluye un sistema de puntaje (score) que indica el posible impacto de las vulnerabilidades identificadas. Asimismo, se muestra la lista de equipos identificados en listas negras de dominios o IP o cuya interacción estuvo involucrada con equipos de la red.
Figura 13. Resumen de auditoría. Análisis de vulnerabilidad de software basado en CVE
Conjuntando toda la información recopilada y filtrada tanto por PNAF como por el mismo analista, es posible determinar el estado general y características de la red. La información detallada dependerá del tipo de problema o necesidad que desea resolver.
Finalmente, es importante hacer énfasis en el hecho de que PNAF es susceptible a falsos positivos debido a la naturaleza misma de PNA, en donde, al no contar con la información completa y obtener datos a partir de una interpretación del tráfico de red, cierta información podría representar hechos erróneos. Así, una de las tareas del analista implica la identificación y verificación de información certera.
Actualmente PNAF se encuentra en desarrollo en la versión 0.2. Futuras versiones incluirán cambios significativos en la interfaz web y estabilidad del framework. Para actualizaciones consultar las páginas del proyecto.
- http://blog.honeynet.org.mx
- http://www.honeynet.unam.mx
- https://dev.honeynet.org.mx/traffic-analysis/pnaf
Referencias
[1] Frameworks para monitoreo, forense y auditoría de tráfico de red I. Revista .Seguridad número 24.
[2] Passive Network Audit Framework, Master thesis. Santillan, Javier. Eindhoven University of Technology. The Netherlands. 2014
[3]Tabla 1. “Herramientas de análisis de tráfico de red” del artículo anterior
[4] https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
[5] https://en.wikipedia.org/wiki/JSON
[6] https://cve.mitre.org/