OSSIM en Fedora Core 4

Anuncio
Por:Eliseo Ortiz Valdez
OSSIM en Fedora Core 4
Este documento puede ser modificado copiado o distribuido bajo los términos de la libre documentación
GNU en cualquier versión publicada por la fundación de Software Libre.
Este documento fue creado por Software Libre.
I. Introducción.
OSSIM fue creado básicamente para solucionar un escenario como:
“En el evento de que una intrusión se lleve acabo, una vez que los perímetros de defensa han sido
superados por máquinas comprometidas. Existe una corriente de una conexión permanente y
duradera por bastantes horas o un tiempo considerado, conexiones anomalías, Procesos externos
que crean un puente entre la red interna, donde se encuentran las máquinas comprometidas, una
de la otra, encontrando cada vez mas y mas anomalías en los paths del sistema.
El usuario y los administradores en este caso nunca notan nada extraño en la red, y raramente
identifican un ataque, nunca se dieron cuenta que se encontraron comprometidos...
Analógicamente se puede poner a una persona que llega a la oficina, busca la información que se
le hace importante, se la lleva obteniendo así copia, siguiendo las personas siguen con sus labores
cotidianos sin percatarse de la penetración, uno puede decirse, en mi empresa no se maneja
información importante, lo cual es completamente absurda puesto que no siempre es información
empresarial, si no transacciones bancarias u otras que nos puedan afectar o mas aún pudiendo
utilizar la empresa como puente para atacar otros sitios vulnerables”
Esta tecnología tiene la ventaja detectar eventos extremamente específicos, mas sin embargo no es
posible monitorear todas las alertas que se encuentren en el marco del exceso de volumen y poca
viabilidad (FALSE POSITIVES = F) de otra manera no es posible detectar conexiones de un estado
complejo (FALSE NEGATIVES = V). Lo cual este ultimo de mi punto mas humilde de
pensamiento digo que si lograron entrar a tu red o sistema de la manera mas compleja no conocida,
se lo merecieron y no hay objeción alguna. Es decir en palabras mundanas ni tan bajo para detectar
malas configuraciones ni tan inteligente para detectar ataques muy eficientes y originales.
II. OK Pero que es OSSIM?
OSSIM es una distribución basado en la filosofía del open source, la cual esta integrada para
proveer una infraestructura de monitoreo de seguridad. (Perteneciente a la característica S del
modelo FCAPS).
Su objetivo es proveer de un framework para centralizar, organizar, detectar e implementar un
sistema de monitoreo y despliegue de eventos. Básicamente el sistema incluye las siguientes
herramientas de monitoreo:
a. Panel de control para un despliegue de alto nivel
b. Monitoreo de medio nivel para riesgos y actividades
c. Monitoreo para bajo nivel y consola de análisis forense
ci.
Estas herramientas utilizan nuevas habilidades desarrolladas en SIM post-procesamiento, del cual el
objetivo es implementar detección de sensibilidad y reabilidad:
a. Correalización
b. Priorización
c. Asignación de Riesgos
Post-procesamiento es un numero de detectores y monitores ya conocidos como el mejor tipo de
administración conocida en esta distribución
a. IDS
b. Detector de Anomalias
c. Firewalls
d. Muchos mas tipos de monitoreos
Para configurar todos los modulos tenemos el Framework, el cual nos permite manejar de manera
inventaria para definir: topología, políticas de seguridad, reglas de correlación, y enlazarnos para
varios sistemas de integración.
III. FUNCIONABILIDAD
Para entender de que es lo que OSSIM nos ofrece debemos de definir funcionabilidad usando una
forma de gráfico simplificado con los siguientes niveles.
Fig. 1. Diagrama de funcionabilidad
Las siguientes funcionabilidades se citan de manera general acontinuación:
a. Detector de Patrones. Ejemplo de un sistema de detección de intrusos (IDS) , el cual es
capaz de detectar patrones definidos usando reglas de asignación
b. Detector de Anomalias. Tiene la habilidad de detectar anomalias mas reciendtes que los
patrones . Este aprende automáticamente acorde a las situaciones dadas y nos puede dar una
alerta cuando un modo de ser se desvia mucho de lo que el reconoce como “normal”
c. Centralización y Normalización. Estos proporcionan una unificación de eventos de
seguridad para un sistema crítico a través de una organización en un único formato o
solamente desde una consola
d. Asignamiento de prioridades. La prioridad de una alerta debe de depender de la
topología y de los sistemas de organización que se hayan determinado. La razón de esto se
muestra mas claramente en estos ejemplos.
i. Si una máquina esta corriendo sistema operativo UNIX con Apache Web
Server recibe una alerta acerca un ataque que le corresponde a Microsoft IIS,
la alerta debe de ser despreciada,
ii. Si un usuario tiene una sospechosa conexión a un servidor, el sistema deberá
de ser:
1. Dando una máxima prioridad si la persona es externa al servidor
2. Dando baja prioridad si el usuario es un interno y esta atacando un
servidor de impresión... jajajaja que tipo mas nefasto
3. Descartar si el usuario es alguien que normalmente checa el
desarrollo de un servidor, ej. sysadmin
e. Asignamiento de riesgos. La importancia de darle o no a un evento se da dependiendo
de los siguientes tres valores:
i. El valor de tener configuraciones con el evento
ii. El trato que representa para el evento
iii. La probabilidad de que el evento ocurra
f. Correlación. Este se define como un algoritmo que ejecuta una operación de entrada de
datos y regresa una salida de datos. El cual trabaja recolectando información y la monitorea
de manera parcial, posteriormente este ilumina pequeñas areas a través del espectro de toda
la información que realmente nos interesa.
g. Monitores. Este checa las siguientes anomalías:
i. Monitoreo de riesgos. Despliega información dado por el algoritmo
CALM . El cual mide los niveles de riesgos de Compromiso y Ataques
ii. Uso de sesión y control de políticas. Provee información como numero de
bytes transmitidos al día (IPTRAF), actividad de los usuarios, y
monitoreo de sesiones en la red
iii. Monitor de Paths. Monitorea los paths que son usados en la red por
diferentes máquinas. Identificando ataques de varias máquinas (DOS) o
identificando mapeo de puertos o redes por medio de protocolos (TCP,
ICMP, UDP)
h. Consola de Análisis forense. Este nos provee acceso generada y guardada por el
colector de eventos. Esta consola es un buscador que opera en la base de datos,
permitiendo al administrador analizar los eventos en relación a elementos críticos de
la red a posteriori de una manera centralizada
i. Panel de Control. Nos permite visualizar una situación de seguridad de alto nivel
. Este monitorea una seria de undicaciones que manejan el estado de organización
en reñación a la seguridad.
IV. ARQUITECTURA
Los sitesmas de procesamiento se dividen en dos pasos básicos, cada uno corresponde a una parte
de la arquitectura:
i. Pre-Procesamiento. Llevado a cabo por los monitores y detectores
ii. Post-Procesamiento. Ejecutado en una consola centralizada
El siguiente diagrama es una manera general de esquematizar la arquitectura:
fig. 2. Arquitectura ossim
V. FLUJO DE DATOS
Este proporciona un mejor entendimiento de como cada producto es integrado, OSSIM ofrece una
descripción paso por paso de un flujo de dato empezando por la generación de un evento.
La siguiente gráfica nos muestra el flujo de datos:
fig.3. Diagrama de flujo del OSSIM
VI. DISTRIBUCION DE LA ARQUITECTURA
La distribución de OSSIM es mas que un producto, significa la integración que toma precedencia a
través de un desarrollo, La arquitectura de OSSIM se encuentra en dos niveles:
Nivel de Kernel:
a) Define la estructura de datos,
b) Provee una interfaz para hablar con diferentes productos
c) Trabaja en lo que comúnmente se llama Pre-Procesamiento
d) Implementa un panel de control
Productos “Third-Party”
a) Productos Open Source el cual puede ser modificado o parcheado por propia
voluntad
b) “Four-Pay-Products” . El cual no es incluido en la distribución y no puede ser
parcheado o modificado...$$$
VII. Instalación y configuración OSSIM
Crear un archivo para los repositorios de ossim en in /etc/yum.repos.d/ que se llame ossim.repo
!"##$%&
'(%)*+,,-.!/01
2(#)345*67789::;)#<(7"%$=4"=>)773475)<="%:(7"%$=?7)#7$'@:"##$%:A4)5)(#)B)4:
)'(25)C*D
@8@=6)=>*E
Deberiamos de tener habilitados los repositorios fedora-extras en la configuración del Yum.
Instalando ossim-mysql:
F!G3%!$'#7(55!"##$%?%G#H5
Inicializar el demonio mysqld:
F!:)7=:$'$7<C:%G#H5C!#7(47
Configurar la base de datos como root:
F!%G#H5(C%$'!?3!4""7!8(##I"4C!G"34J#)=4)7J8(##I"4C
Crear las siguientes bases de datoss:
F!%G#H5!?3!4""7!?8
%G#H5K!=4)(7)!C(7(2(#)!"##$%L
%G#H5K!=4)(7)!C(7(2(#)!"##$%J(=5L
%G#H5K!=4)(7)!C(7(2(#)!#'"47L
%G#H5K!)M$7L
Crear las siguientes tablas en las siguientes bases de datos:
F!=(7!:3#4:#6(4):"##$%:C2:=4)(7)J%G#H5<#H5!N
!!!!:3#4:#6(4):"##$%:C2:"##$%J="'O$@<#H5!N
!!!!:3#4:#6(4):"##$%:C2:"##$%JC(7(<#H5!N
!!!!:3#4:#6(4):"##$%:C2:4)(5#)=34)<#H5!P!N
!!!!%G#H5!?3!4""7!"##$%!?8
F!=(7!:3#4:#6(4):"##$%:C2:=4)(7)J#'"47J725#J%G#H5<#H5!N
!!!!:3#4:#6(4):"##$%:C2:=4)(7)J(=$CJ725#J%G#H5<#H5!N
!!!!P!%G#H5!?3!4""7!#'"47!?8
VII.I. Install Ossim Server
Instalación del paquete ossim-server y sus dependencias :
F!G3%!$'#7(55!"##$%?#)4B)4
Editar /etc/ossim/server/config.xml para dar de alta las propiedades en las bases de datos:
!!??!:)7=:"##$%:#)4B)4:="'O$@<M%5!??!&
<<
Q#)'#"4!'(%)*R6)4)J@")#JG"34J#)'#"4J'(%)R!$8*R#)'#"4J$8R!$'7)4O(=)*R)76ER:K
<<
QC(7(#"34=)!'(%)*R"##$%S,R!84"B$C)4*R.G,TUR
!C#'*RV+WX*;;EYLZ,[W*4""7LV\,,]+WS*G"348(##I"4CLS\X\^\,[*"##$%L_+,X*5"=(56"#7R:K
QC(7(#"34=)!'(%)*R#'"47S,R!84"B$C)4*R.G,TUR
!C#'*RV+WX*;;EYLZ,[W*4""7LV\,,]+WS*G"348(##I"4CLS\X\^\,[*#'"47L_+,X*5"=(56"#7R:K
Inicializar el servidor Ossim :
F!"##$%?#)4B)4!?C!?=!:)7=:"##$%:#)4B)4:="'O$@<M%5
VII.II. Install Ossim agent:
Instalar el paquete de Ossim agent y sus dependencias:
F!G3%!$'#7(55!"##$%?(@)'7!"##$%?37$5#
Dar de alta el agente de configuración y editar el archivo /etc/ossim/agent/config.xml:
!!??!:)7=:"##$%:(@)'7:="'O$@<M%5!??!&
Q`??!W)85(=)!Dab<E<E<D!I$76!G"34!#)'#"4!-8!??K
Q`[cX-Xd!!!#)'#"4!!!!!RDab<E<E<DR!K
Q`??!S)O(357!')7I"4>!$'7)4O(=)!??K
Q`[cX-Xd!!!!$'7)4O(=)!!R)76ER!K
Q`??!S)O(357!+,,-.!C(7(2(#)!="'')=7$"'!eC296"#79C2'(%)93#)498(##f!??K
Q`[cX-Xd!!!!"##$%JC2!!!R%G#H595"=(56"#79"##$%94""79G"34"##$%C28(##R!K
Q`??!W)85(=)!5"=(56"#7!I$76!G"34!#)4B)4!-8!??K
Q`[cX-Xd!!!!#)4B)4$8!!!R5"=(56"#7R!K
Inicializar el agente Ossim:
F!"##$%?(@)'7!?C!?=!:)7=:"##$%:(@)'7:="'O$@<M%5
VII.III. Install Ossim agent plugins
Snort.
Instalación del Snort:
F!G3%!$'#7(55!#'"47?"##$%?%G#H5
Editar el archivo /etc/snort/snort.conf y configurar los siguientes valores:
!!??!:)7=:#'"47:#'"47<="'O!??&
<<
B(4!_+.[Jc[X!!Dga<DYh<E<E:DY&
B(4![iX[Wc\UJc[X!`A_+.[Jc[X
<<
F!#85$77)C!$'!7I"!5$')#!O"4!4)(C(2$5$7G
"37837!C(7(2(#)9!(5)47j!%G#H5j!3#)4*4""7!8(##I"4C*G"34C28(##!C2'(%)*#'"47
6"#7*G"34C26"#7!#)'#"4J'(%)*G"34J#)'#"4J$8!5"@O$5)*O(#7<5"@
<<
F!!#$!#)!H3$)4)!7)')4!)5!#"8"47)!C)!3'!(4=6$B"!B(5$C"!#8(C)!"27)')4!3'!(4=6$B"
F!!BJ5$C"!#8(C)<="'O!O$5)
F!!e8"4!)k)%85"$!C)#C)!5(#!O3)'7)#!C)!5(!="'74$23=$J'!C)!5"#!8(H3)7)#!"##$%f
$'=53C)!#8(C)<="'O
Comentar la linea que contiene ALERTMODE= fast en el archivo /etc/sysconfig/snort
Checar el Bleeding edge de snort de la pagina oficial y actualizare. El rango falso positivo es
extremadamente bajo para pequeños signos que hayan sido probados y son bastantes utilespara
nosotros:
F!=C!:)7=:#'"47:435)#:
F!I@)7!67789::III<25))C$'@#'"47<="%:25))C$'@?(55<435)#
F!)=6"!R$'=53C)!NAWZU[JV\X_:25))C$'@?(55<435)#R!KK!:)7=:#'"47:#'"47<="'O
Inicializar el demonio de snort:
F!:)7=:$'$7<C:#'"47C!#7(47
F!=6>="'O$@!??5)B)5!;1l!#'"47C!"'
Ntop
Instalar Ntop:
F!G3%!$'#7(55!'7"8?"##$%
Define los passwords del usuario de administrador:
F!'7"8!?3!'7"8
KK!V5)(#)!)'7)4!76)!8(##I"4C!O"4!76)!(C%$'!3#)49
F!m0
F!:)7=:$'$7<C:'7"8!#7(47
F!=6>="'O$@!??5)B)5!;1l!'7"8!"'
Ir a http://localhost:3000/ para ver Ntop en acción. Activar el plugin rrdPlugin en Admin_plugins.
Dar click en Host en Data Dump y especificar la mascara de red en el filtro de hosts.
Otros plugins
As simple as:
F!G3%!$'#7(55!8EO!(48I(7=6!8(C#!7=874(=>
VII.IV. Install Ossim framework
Instalar el paquete phpgacl:
F!G3%!$'#7(55!868@(=5
La ultima versión de phpgacl incluyephpgacl/gacl.ini.php en vez
dephpgacl/admin/gacl_admin.inc.php.
De la misma manera editar el archivo que se encuentra en /usr/share/phpgacl/gacl.ini.php
Para jalarlo:
ossim-server -d -c /etc/ossim/server/config.xml
/usr/bin/python /usr/bin/ossim-framework -d
Editar el archivo phpgacl/gacl.class.php
!!??!:3#4:#6(4):868@(=5:@(=5<=5(##<868!??!&
<<
B(4!AJC2J7G8)!*!n%G#H5nL
<<
B(4!AJC2J3#)4!*!n4""7nL
<<
B(4!AJC2J8(##I"4C!*!nG"34C28(##I"4CL
<<
B(4!AJC2J'(%)!*!n"##$%J(=5nL
<<
B(4!AJC2J7(25)J84)O$M!*!nnL
Ahora editart /usr/share/phpgacl/admin/gacl_admin.inc.php:
!!??!:3#4:#6(4):868@(=5:(C%$':@(=5J(C%$'<$'=<868!??!&
<<
nC2J7G8)n!*K!n%G#H5nj
nC2J6"#7n!*K!n5"=(56"#7nj
nC2J3#)4n!*K!n4""7nj
nC2J8(##I"4Cn!*K!nG"34C28(##I"4Cnj
nC2J'(%)n!*K!n"##$%J(=5nj
Crear el directorio y darle permisos de escritura para el servidor web phpgacl/admin/templates_c:
F!%>C$4!:3#4:#6(4):868@(=5:(C%$':7)%85(7)#J=
F!=6"I'!?W!(8(=6)9(8(=6)!:3#4:#6(4):868@(=5:(C%$':7)%85(7)#J=
Inicializar httpd:
F!:)7=:$'$7<C:6778C!#7(47
F!=6>="'O$@!?5)B)5!;1l!6778C!"'
Ir a http://tuhost/phpgacl/setup.php y checar si tiene la configuración correcta.
Fig. 4. Vista de la configuración phpgacl
Instalar las dependencias del paquete Install ossim-framework:
F!G3%!$'#7(55!"##$%?O4(%)I"4>
Configurar el archivo de configuración del framework y editar el archivo:
/etc/ossim/framework/ossim.conf:
!!??!:)7=:"##$%:O4(%)I"4>:"##$%<="'O!??!&
<<
(C"C2J8(76*:3#4:#6(4):(C"C2:
<<
"##$%J8(##*"##$%C28(##
<<
868@(=5J8(##*868@(=58(##
Editar /etc/php.ini y configurar el include_path, configurar de la misma manera los tipos de errores
que sean desplegados:
Aproximadamente en la linea 491 se encuentra algo asi:
; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"
se pone algo asi:
[ -- /etc/php.ini -- ]
..
include_path = "/usr/share/ossim/include"
...
Configurar la base usando el programa de configuración en http://tu host/base/
Inicializar el Framework Start ossim-framework y reiniciar httpd:
F!"##$%?O4(%)I"4>!?C
F!:)7=:$'$7<C:6778C!4)#7(47
fig. 6. Primera parte de la configuración base
fig.7. Segunda parte configuración base
fig. 7. Tercera parte configuración base
fig. 8. Cuarta parte configuración base
Accesar el framework [ http://tu host/ossim/ ] e ir a la configuración Configuration_Main para dar
de alta todos los passwords de configuración. También se debe de tener configurado la base para
evitar la configuración básica en vez del acid.
Fig.9. Inicio OSSIM
En dado caso que se quieran reiniciar los servicios manualmente, una vez configurando base ,
phpgacl y ntop introducir los siguientes comandos a consola:
[root@localhost ~]# service snortd start
Starting snort:
[ OK ]
[root@localhost ~]# service ntop start
Starting ntop:
Processing file /etc/ntop.conf for parameters...
Fri Mar 31 20:00:08 2006 NOTE: Interface merge enabled by default
Fri Mar 31 20:00:08 2006 Initializing gdbm databases
NOTE: --use-syslog, no facility specified, using default value. Did you forget the =?
[ OK ]
[root@localhost ~]# ossim-framework -d
OSSIM Framework: Forking into background...
[root@localhost ~]# ossim-server -d -c /etc/ossim/server/config.xml
/usr/bin/python /usr/bin/ossim-framework -d
[root@localhost ~]# service httpd restart
Stopping httpd:
Starting httpd:
[ OK ]
[ OK ]
VII.V. Install OSSIM utils
El paquete de ossim-framework depende de las uilidades, por lo tanto si tienes instaldo el paquete
ossim-framework se debe de tener instalado. Si se quiere instalarlo de otro host:
F!G3%!$'#7(55!"##$%?37$5#
VII.VI. Install OSSIM contrib (optional)
El paquete de ossim-contrib contiene un set de parches,ejemplos de archivos de configuración
usados por la distribución de ossim. Este paquete es solamente usado por propositos de desarrollo.
Sin embargo si se quiere instalar:
F!G3%!$'#7(55!"##$%?="'74$2
VIII. El OSSIM en acción
fig. 10. El OSSIM en acción
Descargar