PNAF 0.1.2 howto básico

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

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.

fig01_pnaf_modelo

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):

  1. 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 ~
  1. 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.

fig02_pnaf_installer2

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.

fig03_pnaf_installer3

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

fig04_pnaf_installer4

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.

  1. Descargar la imagen en http://pnaf.honeynet.org.mx/download/pnaf-0.1.2.ova
  2. 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.

fig05_pnaf_vm

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

fig06_poc_pnaf1

Figura 6. Ejecución de PNAF