Pequeña contribución: Plugin para AlienVault OSSIM para procesar logs de un switch Allied Telesis AT-8000S/24

Saludos, nuevamente.

Como les he contado en post anteriores, le estoy dedicando algo de tiempo a AlienVault OSSIM. En los últimos tres días he estado tratando de configurarle [y añadirle] un plugin para procesar los logs de un switch Allied Telesis AT-8000S.

Claro está que, antes de ponerme a hacer eso, busque en Inet y no encontré nada al respecto. De hecho, según un blog en portugués que consulté, publican una lista de plugins que trae AlienVault USM/OSSIM del 8 de julio de 2015. Dicha lista es la siguiente:

Alcatel    Lucent Brick
AlienVault    Forensics DB Post-correlation
AlienVault    OSSIM Agent
AlienVault    OSSIM Monitor
AlienVault    Post Correlation
Allot    NetEnforcer
Apache Foundation    HTTP Server
Apache Foundation    Spam Assassin
Apple    iPhone
Aruba Networks    Mobility Access Switch
Aruba Networks    Wireless
Avast    Antivirus Home
Axigen Messaging    Axigen Email Server
BIT9    Security Platform
Bluecoat Systems    Proxy SG
Bro    Network Security Monitor (NSM)
Broadweb    Netkeeper Firewall
Broadweb    Netkeeper IPS
Brocade    Vyatta
Brookhaven National Lab    Osiris
Checkpoint    FW-1
Checkpoint    VPN-1 / FW-1 / NG
Cisco    300 Series Managed Switches
Cisco    ACE (Access Control Engine)
Cisco    ACS (Access Control Server)
Cisco    ASA (Adaptive Security Appliance)
Cisco    ASR (Aggregation Services Router)
Cisco    FWSM (Firewall Services Module)
Cisco    IDS
Cisco    IPS
Cisco    IronPort ESA
Cisco    Meraki
Cisco    Nexus NX OS
Cisco    PIX Firewall
Cisco    VPN Concentrator 3030
Cisco    WLC (Wireless LAN Controller)
Citrix    Netscaler
Dell    Enterasys Matrix X-Series Router
Dell    Entrasys Dragon
Dell    SonicWall Scrutinizer
Double Precision Inc    Courier Mail Server
Drupal Project    Drupal 5
Envault Corporation    Airlock
Extreme Networks    Alpine 3800 Series Switches
Extreme Networks    Summit WM3000 Series
F5    Big IP Load Balancer
F5    Firepass Network
Fortigate    Fortimail
Fortinet    Fortigate
Fortinet    Fortiguard
FreeBSD Project    IPFW
Gamelinux    PRADS
General Dynamics    Fidelis XPS
GFI Software    Vipre Antivirus Protection
Hardened PHP Project    Suhosin
HP    ServiceGuard
HP    SiteScope
HP    StorageWorks Command View EVA
HP    TippingPoint IDS
IBM    AIX Audit Logs
IBM    ISS RealSecure
IBM    Proventia Network IPS GX
IBM    Siteprotector
IBM    Storewize
IBM    Tivoli RAS trace log
IBM    VisionPLUS
Immunity Inc.    El Jefe
Imperva    Securesphere
Independent    Amun HoneyPot
Independent    Arpalert
Independent    Artemisa VOIP Honeypot
Independent    Dionaea
Independent    Dovecot
Independent    GlastopfNG
Independent    Heartbeat
Independent    Honeyd (Honeyd Virtual Honeypot)
Independent    Kismet
Independent    m0n0wall
Independent    Monit
Independent    Moodle
Independent    Motion
Independent    Nagios
Independent    Nepenthes
Independent    NFS
Independent    NMAP Monitor
Independent    NTOP Monitor
Independent    NTOP Session Monitor
Independent    NTsyslog (generic)
Independent    p0f
Independent    PADS (Passive Asset Detection System)
Independent    Pam_Unix
Independent    Ping
Independent    Postfix
Independent    PRADS
Independent    PureFTPd
Independent    RRDtool
Independent    Squid
Independent    Sudo
Independent    TCPTrack
Independent    USB udev
Independent    VSFTP
Independent    Webmin
Independent    Whois
Independent    Wuftp
Internet Systems Consortium    ISC Bind
Internet Systems Consortium    Linux DHCP
Intersect Alliance    Snare
Juniper Networks    IDP
Juniper Networks    Netscreen Firewall
Juniper Networks    Netscreen ISG
Juniper Networks    Netscreen Manager
Juniper Networks    Netscreen NSM (IDP)
Juniper Networks    NSM (NetScreen Security Manager)
Juniper Networks    ScreenOS
Juniper Networks    SRX Series Services Gateways
Juniper Networks    VPN SSL
Lawrence Berkeley Lab    Arpwatch
McAfee    Antispam
McAfee    Antivirus
McAfee    Cyberguard SG565
McAfee    ePO-MVT (EPO Virtual Technician)
McAfee    Intrushield
McAfee (formerly Secure Computing)    Sidewinder Firewall
McAfee (formerly Stonesoft)    Stonegate Firewall
McAfee (formerly Stonesoft)    Stonegate IPS
MDL Project    Malware Domain List
Microsoft    DHCP
Microsoft    Exchange Server
Microsoft    IIS (Internet Information Server)
Microsoft    ISA Server (Internet Security & Acceleration Server)
Microsoft    Server
Microsoft    SSIS (SQL Server Intregration Services)
Microsoft    Windows Application Log
Microsoft    Windows System Log
Microsoft    Windows Security Log
Microsoft    Windows NT / 2000 / XP syslog service
Microsoft    WMI Monitor
Motorola    Firewall
N/A    Syslog
NetFilter Project    Iptables
NetGear    FVS318 Cable/DSL ProSafe VPN Firewall
Nortel    Alteon OS
Nortel    Passport 1612G Switch
OCS Inventory Team    OCSInventory
OISF    Suricata
OISF    Suricata IDS – HTTP Logging
Open Source    Mwcollect
Open System Consultants    Radiator
OpenBSD Project    OpenBSD-OpenSSH
OpenBSD Project    OpenSSH
OpenBSD Project    pf
OpenLDAP Foundation    OpenLDAP
OpteNet    MailSecure
Oracle    Oracle Database
Oracle    Oracle Database (via syslog)
Oracle    Tarantella
Palo Alto Networks    PA-5000 Series Firewall
Panda Software    AdminSecure
Panda Software    Security for Enterprise
Proofpoint    Sendmail
Proxim Wireless    ORiNOCO
RadWare Inc    DefensePro IPS
Red Hat    Resource Group (Cluster Service) Manager Daemon
RSA Security    ACE
RSA Security    SecurID Software Token Converter
RSA Security    Authentication Manager
RSA Security    SecurID
Safenet    Aladdin eSafe Gateway
Samba    SMB
SAP    Netweaver Technology Platform
Shalla Secure Services    squidGuard
Shrubbery Networks    TACACS+
Sophos    Antivirus
SourceFire    ClamAV
SourceFire    Snort
Symantec    AMS (Altiris Management Suite)
Symantec    Endpoint Management (EPM)
Tenable    Nessus (via ossec)
Tenable    Nessus Detector
Tenable    Nessus Monitor
The OpenNMS Group    OpenNMS
Trend Micro    IMSS Messaging Security
Trend Micro    Ossec
Trend Micro    Ossec 2.7.3 custom alert
Trend Micro    Ossec IDM
TrustWave    ModSecurity Web Application Firewall
VanDyke Software    Vandyke Vshell
VMWare    ESXi Server
VMWare    Vcenter
VMWare    Workstation
WatchGuard    XTM NG Firewall
WebSense    Web Security Gateway
Xtera    Ascenlink

Entonces, al ver que el fabricante del switch no aparecía en la lista, pues, me dispuse a crear un plugin personalizado para procesar sus logs. Por supuesto, luego de leer mucha documentación y el archivo de configuración del plugin de Cisco (oh, esa configuración me aclaró muchísimas dudas 🙂 Gracias Equipo de AlienVault), creé un modesto plugin que, hasta el momento, me funciona adecuadamente.

Para que se tenga una idea, aquí pongo un extracto de los logs del switch (sustituí las direcciones IP reales del laboratorio por letras por razones obvias):

Feb 13 11:50:21 CCC.DDD.EEE.FFF %AAA-I-CONNECT: New http connection for user admin, source AAA.BBB.CCC.DDD destination VVV.WWW.YYY.ZZZ ACCEPTED#015
Feb 13 11:50:48 CCC.DDD.EEE.FFF %AAA-I-CONNECT: User CLI session for user admin over telnet , source AAA.BBB.CCC.DDD destination  VVV.WWW.YYY.ZZZ ACCEPTED#015
Feb 13 11:53:44 CCC.DDD.EEE.FFF %AAA-I-DISCONNECT: User CLI session for user admin over telnet , source AAA.BBB.CCC.DDD destination  VVV.WWW.YYY.ZZZ  TERMINATED. The Telnet/SSH session may still be connected.#015
Feb 13 11:55:00 CCC.DDD.EEE.FFF %AAA-I-DISCONNECT: http connection for user admin, source AAA.BBB.CCC.DDD destination VVV.WWW.YYY.ZZZ TERMINATED#015
Feb 13 11:54:21 CCC.DDD.EEE.FFF %AAA-W-REJECT: New telnet connection for user admin, source AAA.BBB.CCC.DDD destination VVV.WWW.YYY.ZZZ  REJECTED#015
Feb 13 11:54:37 CCC.DDD.EEE.FFF %AAA-W-REJECT: New telnet connection for user df, source AAA.BBB.CCC.DDD destination VVV.WWW.YYY.ZZZ  REJECTED#015
Feb 13 11:54:40 CCC.DDD.EEE.FFF %AAA-W-REJECT: New telnet connection for user ffddf, source AAA.BBB.CCC.DDD destination VVV.WWW.YYY.ZZZ  REJECTED#015
Feb 13 11:49:50 CCC.DDD.EEE.FFF %COPY-I-FILECPY: Files Copy – source URL running-config destination URL flash://startup-config#015
Feb 13 11:49:53 CCC.DDD.EEE.FFF %COPY-W-TRAP: The copy operation was completed successfully#015
Feb 13 11:56:17 CCC.DDD.EEE.FFF %IGMPHOST-W-IP: IGMP Packet with unknown source IP#015

Ahora bien, el plugin que hice fue para procesar dichos logs. Aquí les comparto tanto el contenido del archivo de configuración, como el script SQL para añadírselo al servidor OSSIM (que es quien alberga la base de datos, no los sensores OSSIM):

Archivo /etc/ossim/agent/plugins/alliedtelesis-at8000s.cfg:

# Alienvault plugin
# Author: Hector Suarez Planas at hector.suarez@codesa.co.cu
# Plugin alliedtelesis-at8000s id:11001 version: 0.0.1
# Last modification: 2016-02-19 19:31
#
# Plugin Selection Info:
# Allied Telesis:Switch L2:AT-8000S/24
#
# END-HEADER
# Accepted products:
# Allied Telesis – Switches all
# Allied Telesis – Switches AT-8000S/AT-8000GS –
# Allied Telesis – series_managed_switches AT-8000S_AT-8000GS
# Description:
# Allied Telesis Managed Switch
#
#
[DEFAULT]
plugin_id=11001

[config]
type=detector
enable=yes
source=log
location=/var/log/alliedtelesis-at8000s.log
create_file=true
process=rsyslogd
start=no
stop=no
startup=/etc/init.d/rsyslog start
shutdown=/etc/init.d/rsyslog stop

[translation]
%AAA-W=10
%AAA-I=20
%COPY-W=30
%COPY-I=40
%IGMPHOST-W=50

[0010 – alliedtelesis-at8000s – AAA-I Events]
precheck=”%AAA-I”
event_type=event
regexp=”(?P<date>\SYSLOG_OPTYEAR_DATE)\s+(?P<sensor>\S+)\s+(?P<sid>%AAA-I)-\S+:\s+(?P<userdata>.*?user\s+(?P<user>\S+).*?source\s+(?P<src_ip>\IPV4).*?(?P<dst_ip>\IPV4).*)”
date={normalize_date($date)}
sensor={resolv($sensor)}
plugin_sid={translate($sid)}
src_ip={resolv($src_ip)}
dst_ip={resolv($dst_ip)}
userdata1={$userdata}

[0020 – alliedtelesis-at8000s – AAA-W Events]
precheck=”%AAA-W”
event_type=event
regexp=”(?P<date>\SYSLOG_OPTYEAR_DATE)\s+(?P<sensor>\S+)\s+(?P<sid>%AAA-W)-\S+:\s+(?P<userdata>.*?user\s+(?P<user>\S+).*?source\s+(?P<src_ip>\IPV4).*?(?P<dst_ip>\IPV4).*)”
date={normalize_date($date)}
sensor={resolv($sensor)}
plugin_sid={translate($sid)}
src_ip={resolv($src_ip)}
dst_ip={resolv($dst_ip)}
userdata1={$userdata}

[0030 – alliedtelesis-at8000s – COPY-I Events]
precheck=”%COPY-I”
event_type=event
regexp=”(?P<date>\SYSLOG_OPTYEAR_DATE)\s+(?P<sensor>\S+)\s+(?P<sid>%COPY-I)-\S+:\s+(?P<userdata>.*)”
date={normalize_date($date)}
sensor={resolv($sensor)}
plugin_sid={translate($sid)}
userdata1={$userdata}

[0040 – alliedtelesis-at8000s – COPY-W Events]
precheck=”%COPY-W”
event_type=event
regexp=”(?P<date>\SYSLOG_OPTYEAR_DATE)\s+(?P<sensor>\S+)\s+(?P<sid>%COPY-W)-\S+:\s+(?P<userdata>.*)”
date={normalize_date($date)}
sensor={resolv($sensor)}
plugin_sid={translate($sid)}
userdata1={$userdata}

[0050 – alliedtelesis-at8000s – IGMPHOST-W Events]
precheck=”%IGMPHOST-W”
event_type=event
regexp=”(?P<date>\SYSLOG_OPTYEAR_DATE)\s+(?P<sensor>\S+)\s+(?P<sid>%IGMPHOST-W)-\S+:\s+(?P<userdata>.*)”
date={normalize_date($date)}
sensor={resolv($sensor)}
plugin_sid={translate($sid)}
userdata1={$userdata}

Archivo /usr/share/doc/ossim-mysql/contrib/plugins/alliedtelesis-at8000s.sql:

— Allied Telesis AT-8000S switch
— Plugin id:11001

DELETE FROM plugin WHERE id = ‘11001’;
DELETE FROM plugin_sid where plugin_id = ‘11001’;

INSERT IGNORE INTO plugin (id, type, name, description) VALUES (11001, 1, ‘alliedtelesis-at8000s-switch’, ‘Allied Telesis AT-8000S switch’);

INSERT IGNORE INTO plugin_sid (plugin_id, sid, category_id, class_id, name, priority, reliability) VALUES
(11001, 10, NULL, NULL, ‘AT-8000S-AAA: Authentication, authorization, and accounting Warning Event’, 1, 4),
(11001, 20, NULL, NULL, ‘AT-8000S-AAA: Authentication, authorization, and accounting Informational Event’, 1, 2),
(11001, 30, NULL, NULL, ‘AT-8000S-CONFIGURATION-COPY: Configuration Copy Feature Warning Event’, 1, 4),
(11001, 40, NULL, NULL, ‘AT-8000S-CONFIGURATION-COPY: Configuration Copy Feature Informational Event’, 1, 2),
(11001, 50, NULL, NULL, ‘AT-8000S-IGMP: Internet Group Management Protocol Warning Event’, 1, 4);

NOTA: Si se tiene una estructura de servidores Alien Vault OSSIM con sus correspondientes sensores del mismo fabricante, se debe añadir el archivo de configuración en todos los elementos de la misma para que así tengan la misma lista de fuentes de datos (Data Sources), y añadir los datos del plugin dentro del script SQL en la base de datos en el servidor.

Para registrar el nuevo data source en el OSSIM, se debe modificar en la sección “plugins” del archivo /etc/ossim/agent/config.cfg de la siguiente manera:

[plugins]
alliedtelesis-at8000s=/etc/ossim/agent/plugins/alliedtelesis-at8000s.cfg
cisco-router=/etc/ossim/agent/plugins/cisco-router.cfg
nmap-monitor=/etc/ossim/agent/plugins/nmap-monitor.cfg
ocs-monitor=/etc/ossim/agent/plugins/ocs-monitor.cfg
ossec-single-line=/etc/ossim/agent/plugins/ossec-single-line.cfg
ossim-monitor=/etc/ossim/agent/plugins/ossim-monitor.cfg
pam_unix=/etc/ossim/agent/plugins/pam_unix.cfg
ping-monitor=/etc/ossim/agent/plugins/ping-monitor.cfg
postfix=/etc/ossim/agent/plugins/postfix.cfg
prads_eth2=/etc/ossim/agent/plugins/prads_eth2.cfg
ssh=/etc/ossim/agent/plugins/ssh.cfg
sudo=/etc/ossim/agent/plugins/sudo.cfg
suricata=/etc/ossim/agent/plugins/suricata.cfg
syslog=/etc/ossim/agent/plugins/syslog.cfg
whois-monitor=/etc/ossim/agent/plugins/whois-monitor.cfg
wmi-monitor=/etc/ossim/agent/plugins/wmi-monitor.cfg

Una vez hechos todos los cambios, se ejecuta el comando siguiente en todos los elementos de la estrcutura (o sea, tanto servidor como sensores AlienVault OSSIM):

# ossim-reconfig

El cual se encarga de aplicar los cambios y reiniciar toda la maquinaria del OSSIM. Así ya procesa los eventos de la manera que se requiere:

Eventos de OSSIM

Y eso es todo por el momento. Más adelante les hablaré sobre las políticas y el motor de correlación.

Espero les sirva. 🙂

Acerca de Hector Suarez Planas

Es Licenciado en Ciencia de la Computación (3 de julio de 2002). Ha sido Administrador de Red en varias organizaciones, Programador y Analista de Sistemas. Actualmente se desempeña como Administrador de Red del Telecentro Tele Turquino de Santiago de Cuba. Tiene experiencia con sistemas Windows y GNU/Linux, Infraestructura de Redes (Cisco, AlliedTelesis, Netgear y HP ProCurve, Vyatta/VyOS), Servidores tanto físicos como virtuales (plataformas VMWare, Proxmox VE y Xen), Sistemas de Seguridad Informática (Snort/Suricata IDS, appliances AlienVault OSSIM), programador (Delphi, C++ Builder, Perl [poco], Python [algo]), entre otras cosas. Actualmente estoy incursionando en todo lo que tiene relación con Cloud Computing (OpenStack) y Centros de Datos. :-)
Esta entrada fue publicada en AlienVault OSSIM, Generales, Seguridad. Guarda el enlace permanente.

8 respuestas a Pequeña contribución: Plugin para AlienVault OSSIM para procesar logs de un switch Allied Telesis AT-8000S/24

  1. Alberto Alien Vault dijo:

    Muy bien el artículo Hector, felicidades! En estos momentos de igual modo incursiono en OSSIM. Estamos haciendo algunos plugins sobre los sistemas que usamos. Deseo si es posible hacerle algunas preguntas desde su experiencia. Por favor si es posible comparta su email. Saludos!!

    • Hector Suarez Planas dijo:

      Saludos, Alberto.

      Gracias por su comentario. Realmente el plugin al que hago referencia lo hice porque no encontré ninguno en Inet para resolver mi problema. Tuve que ponerme a leer un poco sobre eso y me sometí a crearlo. Quizás se vea un poco rudimentario, pero me resolvió un problema puntual. No tengo una gran experiencia en ello, pero no tengo problemas en compartir lo poco que sé al respecto.

      🙂

  2. Pero mira donde me encuetro al reptil, jajajajaja, no voy a decir que es un trabajo excelente, porque solo yo se cuan brillante es este trabajo. Reptil estoy planeando una gira corta por la isla para agosto, entre otras cosas planeo dar un feedback con Alienvault OSSIM del curso oficial que hice en Malaga. Espero ponernos en contacto para ver si reunimos a los profesionales de seguridad y hacer un encuentro buenisimo. Lo que llevo es muchoooooo en este aspecto, desde Control de integridad proactiva hasta DLP con Alienvault. Un abrazo mi hermanazo.

    • Hector Suarez Planas dijo:

      Chamacooooo!!!! Dime, Reptilazo De la Vega.

      Mijito, tú te pierdes feamente. Sí, ya sé que tienes mucho trabajo y todo eso, pero aunque sea da señales de humo porque ni en FB se te ve. 😀

      Muchísimas gracias por tu comentario, aunque creo que exageras un poco. Jejejeje. Es una pequeña contribución para la comunidad. 🙂

      En cuanto a lo de tu gira en agosto, me cuadra una pila, lo que trata de venir a SCU porque si te quedas en HAB, no podré ir. Así que yo no sé lo que vas a hacer, pero tendrás que desplazarte hasta acá. Claro, lo que hay una serie de cosas de AlienVault que no puedo probar por falta de recursos. No obstante, espero que traigas, al menos, un pequeño entorno portatil para que nos muestres. 😀

      Otro abrazo para ti, Chamaco.

  3. Christian L. dijo:

    Felicidades, te quedó muy bien hecho. Alguna vez escribí un tutorial al respecto de cómo programar un plugin para Alienvault OSSIM, es una lástima que no lo hayas encontrado en la red.

    • Hector Suarez Planas dijo:

      Saludos, Christian.

      Gracias por tu comentario. Se agradece muchísimo.

      Disculpa, hermano. Es que como en estas cuestiones lo que más aparece es documentación en inglés, me centré en buscarla en ese idioma. Ahora que lo veo (un post tuyo en A3SEC: http://a3sec.com/creacion-rapida-de-un-plugin-para-alienvault-usm/) está muy interesante. Por lo menos para el que se inicia en esta tarea de crear plugins, este post le será de gran utilidad antes de introducirse en la inmensa documentación inglesa que tiene AlienVault, así como en el foro. 🙂

      Reitero, gracias por tu comentario. 🙂

  4. Carlos dijo:

    hola amigos estoy trabajando en mi tesis de grado y me hace falta ayuda con documentacion u otra cosa que me puedan facilitar referente al trabajo con sensores OSSIM en phyton, creacion de algoritmos etc, le agradeceria cualquier contribuciona ami tesis, mi correo es ibarra53@gmail.com

    • Hector Suarez Planas dijo:

      Saludos, Carlos.

      Bueno, no sé exactamente lo que deseas saber. Yo no soy un experto en el tema. Solamente necesité en su momento hacer eso, leí la documentación, me dispuse a hacerlo y lo instalé.

      Creo que donde primero debe ir es a la documentación y los foros de AlienVault para encaminar sus pasos a lo que quiere hacer exactamente.

      Espero le sirva. 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *