Se puede implementar un sistema de detección de intrusiones según el tamaño de la red. Hay docenas de IDS comerciales de calidad, pero muchas empresas y pequeñas empresas no pueden pagarlos. Bufido es un sistema de detección de intrusiones flexible, liviano y popular que se puede implementar de acuerdo con las necesidades de la red, desde redes pequeñas a grandes, y proporciona todas las características de un IDS pagado. Bufido no cuesta nada, pero eso no significa que no pueda proporcionar las mismas funcionalidades que un IDS comercial de élite. Bufido se considera un IDS pasivo, lo que significa que rastrea los paquetes de red, los compara con el conjunto de reglas y, en el caso de detectar un registro o una entrada maliciosos (i.mi., detectar una intrusión), genera una alerta o coloca una entrada en un archivo de registro. Bufido se utiliza para monitorear las operaciones y actividades de enrutadores, firewalls y servidores. Snort proporciona una interfaz fácil de usar, que contiene una cadena de conjuntos de reglas que pueden ser muy útiles para una persona que no está familiarizada con los IDS. Snort genera una alarma en caso de una intrusión (ataques de desbordamiento de búfer, envenenamiento de DNS, huellas dactilares del sistema operativo, escaneos de puertos y mucho más), lo que brinda a la organización una mayor visibilidad del tráfico de la red y facilita el cumplimiento de las normas de seguridad.
Instalación de Snort
Antes de instalar Snort, existen algunos softwares o paquetes de código abierto que debe instalar primero para aprovechar al máximo este programa.
- Libpcap: Un rastreador de paquetes como Wireshark que se utiliza para capturar, monitorear y analizar el tráfico de la red. Instalar libpcap, use los siguientes comandos para descargar el paquete del sitio web oficial, descomprímalo y luego instálelo:
[correo electrónico protegido]: ~ $ tar -xzvf libpcap-
[correo electrónico protegido]: ~ $ cd libpcap-
[correo electrónico protegido]: ~ $ ./ configurar
[correo electrónico protegido]: ~ $ sudo make
[correo electrónico protegido]: ~ $ make install
- OpenSSH: Una herramienta de conectividad segura que proporciona un canal seguro, incluso a través de una red insegura, para iniciar sesión de forma remota a través de ssh protocolo. OpenSSH se utiliza para conectarse a sistemas de forma remota con privilegios de administrador. OpenSSH se puede instalar usando los siguientes comandos:
portátil / openssh-8.3p1.alquitrán.gz
[correo electrónico protegido]: ~ $ tar xzvf openssh-
[correo electrónico protegido]: ~ $ cd openssh-
[correo electrónico protegido]: ~ $ ./ configurar
[correo electrónico protegido]: ~ $ sudo make install
- MySQL: El código abierto y gratuito más popular SQL base de datos. MySQL se utiliza para almacenar datos de alerta de Snort. Las bibliotecas SQL son utilizadas por máquinas remotas para comunicarse y acceder a la base de datos donde se almacenan las entradas del registro de Snort. MySQL se puede instalar usando el siguiente comando:
- Servidor web Apache: El servidor web más utilizado en Internet. Apache se utiliza para mostrar la consola de análisis a través del servidor web. Se puede descargar del sitio web oficial aquí: http: // httpd.apache.org /, o usando el siguiente comando:
- PHP: PHP es un lenguaje de secuencias de comandos utilizado en el desarrollo web. Se requiere un motor de análisis de PHP para ejecutar la consola de análisis. Se puede descargar desde el sitio web oficial: https: // www.php.net / descargas.php, o usando los siguientes comandos:
[correo electrónico protegido]: ~ $ tar -xvf php-
[correo electrónico protegido]: ~ $ cd php-
[correo electrónico protegido]: ~ $ sudo make
[correo electrónico protegido]: ~ $ sudo make install
- OpenSSL: Se utiliza para asegurar las comunicaciones a través de la red sin preocuparse de que un tercero obtenga o controle los datos enviados y recibidos. OpenSSL proporciona funcionalidad criptográfica al servidor web. Se puede descargar desde el sitio web oficial: https: // www.openssl.org /.
- Aturdimiento: Un programa utilizado para cifrar el tráfico de red arbitrario o las conexiones dentro de SSL y que funciona junto OpenSSL. Aturdir se puede descargar desde su sitio web oficial: https: // www.aturdir.org /, o se puede instalar usando los siguientes comandos:
[correo electrónico protegido]: ~ $ tar xzvf stunnel-
[correo electrónico protegido]: ~ $ cd stunnel-
[correo electrónico protegido]: ~ $ ./ configurar
[correo electrónico protegido]: ~ $ sudo make install
- ÁCIDO: Una abreviatura de Control de análisis para la detección de intrusiones. ACID es una interfaz de búsqueda compatible con consultas que se utiliza para encontrar direcciones IP coincidentes, patrones dados, un comando específico, una carga útil, firmas, puertos específicos, etc., de todas las alertas registradas. Proporciona una funcionalidad en profundidad de análisis de paquetes, lo que permite identificar exactamente qué estaba tratando de lograr el atacante y el tipo de carga útil utilizada en el ataque. ÁCIDO se puede descargar desde su sitio web oficial: https: // www.sei.cmu.edu / about / divisions / cert / index.cfm.
Ahora que todos los paquetes básicos requeridos están instalados, Bufido se puede descargar desde el sitio web oficial, bufido.org, y se puede instalar usando los siguientes comandos:
[correo electrónico protegido]: ~ $ wget https: // www.bufido.org / downloads / snort / snort-2.9.dieciséis.1.alquitrán.gz[correo electrónico protegido]: ~ $ tar xvzf snort-
[correo electrónico protegido]: ~ $ cd snort-
[correo electrónico protegido]: ~ $ ./ configurar
[correo electrónico protegido]: ~ $ sudo make && --enable-source-fire
[correo electrónico protegido]: ~ $ sudo make install
A continuación, ejecute el siguiente comando para verificar si Snort está instalado y la versión de Snort que está utilizando:
[correo electrónico protegido]: ~ $ snort --,,_ - *> Resoplido! <*-
o ") ~ Número de versión"
Derechos de autor (C) 1998-2013 Sourcefire, Inc., et al.
Usando libpcap versión 1.8.1
Utilizando la versión PCRE: 8.39 2016-06-14
Utilizando la versión ZLIB: 1.2.11
Después de que la instalación sea exitosa, se deberían haber creado los siguientes archivos en el sistema:
/ usr / bin / snort: Este es el ejecutable binario de Snort.
/ usr / share / doc / snort: Contiene la documentación y las páginas de manual de Snort.
/ etc / snort: Contiene todos los conjuntos de reglas de Bufido y también es su archivo de configuración.
Usando Snort
Para utilizar Snort, primero debe configurar el Home_Net valor y asígnele el valor de la dirección IP de la red que está protegiendo. La dirección IP de la red se puede obtener mediante el siguiente comando:
[correo electrónico protegido]: ~ $ ifconfigDe los resultados, copie el valor del dirección inet de la red deseada. Ahora, abra el archivo de configuración de Snort / etc / snort / snort.conf usando el siguiente comando:
[correo electrónico protegido]: ~ $ sudo vim / etc / snort / snort.confVerá una salida como esta:
Encuentra la linea “Ipvar HOME_NET." En frente de ipvar HOME_NET, escriba la dirección IP copiada antes y guarde el archivo. Antes de correr Bufido, otra cosa que debes hacer es ejecutar la red en modo promiscuo. Puede hacerlo utilizando el siguiente comando:
[correo electrónico protegido]: ~ $ / sbin / ifconfig -Ahora estás listo para correr Bufido. Para verificar su estado y probar el archivo de configuración, use el siguiente comando:
[correo electrónico protegido]: ~ $ sudo snort -T -i4150 Lectura de reglas de Snort
3476 reglas de detección
0 reglas del decodificador
0 reglas del preprocesador
3476 cadenas de opciones vinculadas a 290 encabezados de cadena
0 reglas dinámicas
+++++++++++++++++++++++++++++++++++++++++++++++++++
+-------------------[Recuento de puertos de reglas]---------------------------------------
| tcp udp icmp ip
| src 151 18 0 0
| dst 3306126 0 0
| cualquiera 383 48145 22
| nc 27 8 94 20
| s + d 12 5 0 0
+----------------------------------------------------------------------------
+-----------------------[configuración-filtro-detección]------------------------------
| capacidad de memoria: 1048576 bytes
+-----------------------[reglas-de-filtro-de-detección]-------------------------------
| ninguno
-------------------------------------------------------------------------------
+-----------------------[rate-filter-config]-----------------------------------
| capacidad de memoria: 1048576 bytes
+-----------------------[reglas-de-filtro-de-tarifas]------------------------------------
| ninguno
-------------------------------------------------------------------------------
+-----------------------[event-filter-config]----------------------------------
| capacidad de memoria: 1048576 bytes
+-----------------------[filtro de eventos-global]----------------------------------
| ninguno
+-----------------------[filtro-de-eventos-local]-----------------------------------
| gen-id = 1 sig-id = 3273 tipo = seguimiento de umbral = recuento de src = 5 segundos = 2
| gen-id = 1 sig-id = 2494 tipo = ambos seguimientos = recuento de dst = 20 segundos = 60
| gen-id = 1 sig-id = 3152 tipo = seguimiento de umbral = recuento de src = 5 segundos = 2
| gen-id = 1 sig-id = 2923 tipo = seguimiento de umbral = recuento de dst = 10 segundos = 60
| gen-id = 1 sig-id = 2496 tipo = ambos seguimientos = recuento de dst = 20 segundos = 60
| gen-id = 1 sig-id = 2275 tipo = seguimiento de umbral = recuento de dst = 5 segundos = 60
| gen-id = 1 sig-id = 2495 tipo = ambos seguimientos = recuento de dst = 20 segundos = 60
| gen-id = 1 sig-id = 2523 tipo = ambos seguimientos = dst count = 10 segundos = 10
| gen-id = 1 sig-id = 2924 tipo = seguimiento de umbral = recuento de dst = 10 segundos = 60
| gen-id = 1 sig-id = 1991 tipo = seguimiento de límite = recuento de src = 1 segundos = 60
+-----------------------[supresión]------------------------------------------
| ninguno
-------------------------------------------------------------------------------
Orden de aplicación de reglas: activación-> dinámica-> pasar-> soltar-> soltar-> rechazar-> alerta-> registro
Verificación de las configuraciones del preprocesador!
[Memoria de coincidencia de patrones basada en puertos]
+- [Resumen de Aho-Corasick] -------------------------------------
| Formato de almacenamiento: Full-Q
| Autómata finito: DFA
| Tamaño del alfabeto: 256 caracteres
| Tamaño del estado: variable (1,2,4 bytes)
| Instancias: 215
| Estados de 1 byte: 204
| Estados de 2 bytes: 11
| 4 estados de bytes: 0
| Caracteres: 64982
| Estados: 32135
| Transiciones: 872051
| Densidad de estado: 10.6%
| Patrones: 5055
| Estados de coincidencia: 3855
| Memoria (MB): 17.00
| Patrones: 0.51
| Listas de partidos: 1.02
| DFA
| Estados de 1 byte: 1.02
| Estados de 2 bytes: 14.05
| 4 estados de bytes: 0.00
+----------------------------------------------------------------
[Número de patrones truncados a 20 bytes: 1039]
pcap DAQ configurado para pasivo.
Adquirir tráfico de red de "wlxcc79cfd6acfc".
--== Inicialización completa ==--
,,_ - *> Resoplido! <*-
o ") ~ Número de versión
Derechos de autor (C) 1998-2013 Sourcefire, Inc., et al.
Usando libpcap versión 1.8.1
Utilizando la versión PCRE: 8.39 2016-06-14
Utilizando la versión ZLIB: 1.2.11
Motor de reglas: SF_SNORT_DETECTION_ENGINE Versión 2.4
Objeto de preprocesador: SF_IMAP versión 1.0
Objeto de preprocesador: SF_FTPTELNET versión 1.2
Objeto de preprocesador: SF_REPUTATION Versión 1.1
Objeto de preprocesador: SF_SDF versión 1.1
Objeto de preprocesador: SF_SIP versión 1.1
Objeto de preprocesador: SF_SSH versión 1.1
Objeto de preprocesador: SF_GTP versión 1.1
Objeto de preprocesador: SF_SSLPP versión 1.1
Objeto de preprocesador: SF_DCERPC2 Versión 1.0
Objeto de preprocesador: SF_SMTP versión 1.1
Objeto de preprocesador: SF_POP versión 1.0
Objeto de preprocesador: SF_DNS versión 1.1
Objeto de preprocesador: SF_DNP3 Versión 1.1
Objeto de preprocesador: SF_MODBUS versión 1.1
Snort validó con éxito la configuración!
Resoplido saliendo
Conjuntos de reglas de snort
El mayor poder de Bufido yace en sus conjuntos de reglas. Snort tiene la capacidad de emplear una gran cantidad de conjuntos de reglas para monitorear el tráfico de la red. En su última versión, Bufido viene con 73 diferentes tipos y más 4150 reglas para detectar anomalías, contenidas en la carpeta "/ Etc / snort / rules."
Puede ver los tipos de conjuntos de reglas en Snort usando el siguiente comando:
[correo electrónico protegido]: ~ $ ls / etc / snort / rlesrespuestas-ataque.reglas community-smtp.reglas icmp.reglas shellcode.reglas
Puerta trasera.reglas community-sql-injection.reglas imap.reglas smtp.reglas
tráfico malo.reglas community-virus.información de reglas.reglas snmp.reglas
chat.reglas comunidad-web-ataques.reglas locales.reglas sql.reglas
bot de comunidad.reglas community-web-cgi.reglas misceláneas.reglas telnet.reglas
comunidad eliminada.reglas community-web-client.reglas multimedia.reglas tftp.reglas
comunidad-dos.reglas community-web-dos.reglas mysql.virus de reglas.reglas
comunidad-exploit.reglas community-web-iis.reglas netbios.reglas de ataques web.reglas
ftp comunitario.reglas community-web-misc.reglas nntp.reglas web-cgi.reglas
comunidad-juego.reglas community-web-php.reglas del oráculo.reglas cliente web.reglas
comunidad-icmp.reglas ddos.reglas otros-identificadores.reglas web-coldfusion.reglas
comunidad-imap.reglas eliminadas.reglas p2p.reglas de la página web.reglas
inapropiada para la comunidad.reglas dns.política de reglas.reglas web-iis.reglas
cliente-correo-comunitario.reglas dos.reglas pop2.reglas web-misc.reglas
comunidad-miscelánea.reglas experimentales.reglas pop3.reglas web-php.reglas
community-nntp.explotar las reglas.reglas porno.reglas x11.reglas
comunidad-oráculo.reglas dedo.reglas rpc.reglas
política-comunitaria.reglas ftp.reglas rservicios.reglas
sorbo comunitario.reglas icmp-info.escaneo de reglas.reglas
Por defecto, cuando corres Bufido en el modo de sistema de detección de intrusiones, todas estas reglas se implementan automáticamente. Probemos ahora el ICMP reglamento.
Primero, use el siguiente comando para ejecutar Bufido en IDS modo:
[correo electrónico protegido]: ~ $ sudo snort -A console -i-c / etc / snort / snort.conf
Verá varias salidas en la pantalla, manténgalo así.
Ahora, hará ping a la IP de esta máquina desde otra máquina usando el siguiente comando:
[correo electrónico protegido]: ~ $ pingHaga ping de cinco a seis veces y luego regrese a su máquina para ver si el Snort IDS lo detecta o no.
24 / 08-01: 21: 55.178653 [**] [1: 396: 6] Fragmentación inalcanzable de destino ICMPNecesario y el bit DF se estableció [**] [Clasificación: Actividad miscelánea] [Prioridad: 3]
ICMP
24 / 08-01: 21: 55.178653 [**] [1: 396: 6] Fragmentación inalcanzable de destino ICMP
Necesario y el bit DF se estableció [**] [Clasificación: Actividad miscelánea] [Prioridad: 3]
ICMP
24 / 08-01: 21: 55.178653 [**] [1: 396: 6] Fragmentación inalcanzable de destino ICMP
Necesario y el bit DF se estableció [**] [Clasificación: Actividad miscelánea] [Prioridad: 3]
ICMP
24 / 08-01: 21: 55.178653 [**] [1: 396: 6] Fragmentación inalcanzable de destino ICMP
Necesario y el bit DF se estableció [**] [Clasificación: Actividad miscelánea] [Prioridad: 3]
ICMP
24 / 08-01: 21: 55.178653 [**] [1: 396: 6] Fragmentación inalcanzable de destino ICMP
Necesario y el bit DF se estableció [**] [Clasificación: Actividad miscelánea] [Prioridad: 3]
ICMP
24 / 08-01: 21: 55.178653 [**] [1: 396: 6] Fragmentación inalcanzable de destino ICMP
Necesario y el bit DF se estableció [**] [Clasificación: Actividad miscelánea] [Prioridad: 3]
ICMP
Aquí, recibimos una alerta de que alguien está realizando un escaneo de ping. Incluso proporcionó el dirección IP de la máquina del atacante.
Ahora, iremos al IP dirección de esta máquina en el navegador. No veremos ninguna alerta, en este caso. Intenta conectarte al ftp servidor de esta máquina utilizando otra máquina como atacante:
[correo electrónico protegido]: ~ $ ftpSeguiremos sin ver ninguna alerta porque estos conjuntos de reglas no se agregan en las reglas predeterminadas y, en estos casos, no se generaría ninguna alerta. Aquí es cuando debes crear tu propio conjuntos de reglas. Puede crear reglas de acuerdo con sus propias necesidades y agregarlas en el "/ Etc / snort / rules / local.reglas" archivo, y luego bufido utilizará automáticamente estas reglas al detectar anomalías.
Crear una regla
Ahora crearemos una regla para detectar un paquete sospechoso enviado al puerto 80 para que se genere una alerta de registro cuando esto ocurra:
# alert tcp any any -> $ HOME_NET 80 (msg: "Paquete HTTP encontrado"; sid: 10000001; rev: 1;)Hay dos partes principales para escribir una regla, yo.mi., Encabezado de regla y opciones de regla. El siguiente es un desglose de la regla que acabamos de escribir:
- Encabezamiento
- Alerta: La acción especificada que se tomará al descubrir el paquete que coincide con la descripción de la regla. Hay varias otras acciones que se pueden especificar en lugar de la alerta de acuerdo con las necesidades del usuario, i.mi., registrar, rechazar, activar, soltar, pasar, etc.
- Tcp: Aquí, tenemos que especificar el protocolo. Hay varios tipos de protocolos que se pueden especificar, i.mi., tcp, udp, icmp, etc., según las necesidades del usuario.
- Alguna: Aquí, se puede especificar la interfaz de red de origen. Si alguna se especifica, Snort comprobará todas las redes de origen.
- ->: La dirección; en este caso, se establece de origen a destino.
- $ HOME_NET: El lugar donde el destino dirección IP está especificado. En este caso, estamos utilizando el configurado en el / etc / snort / snort.conf archivo al principio.
- 80: El puerto de destino en el que estamos esperando un paquete de red.
- Opciones:
- Mensaje: La alerta que se generará o el mensaje que se mostrará en el caso de capturar un paquete. En este caso, se establece en "Paquete HTTP encontrado."
- sid: Se utiliza para identificar las reglas de Snort de forma única y sistemática. El primero 1000000 los números están reservados, por lo que puede comenzar con 1000001.
- Rvdo: Se utiliza para facilitar el mantenimiento de las reglas.
Agregaremos esta regla en el "/ Etc / snort / rules / local.reglas" archivo y vea si puede detectar solicitudes HTTP en el puerto 80.
[correo electrónico protegido]: ~ $ echo “alerta tcp any any -> $ HOME_NET 80 (msg:" HTTP Packetencontrado "; sid: 10000001; rev: 1;)” >> / etc / snort / rules / local.reglas
Estamos todos listos. Ahora puedes abrir Bufido en IDS modo usando el siguiente comando:
[correo electrónico protegido]: ~ $ sudo snort -A console -i wlxcc79cfd6acfc-c / etc / snort / snort.conf
Navega al dirección IP de esta máquina desde el navegador.
Bufido ahora puede detectar cualquier paquete enviado al puerto 80 y mostrará la alerta "Paquete HTTP encontrado " en la pantalla si esto ocurre.
24 / 08-03: 35: 22.979898 [**] [1: 10000001: 0] Paquete HTTP encontrado [**][Prioridad: 0] TCP
24 / 08-03: 35: 22.979898 [**] [1: 10000001: 0] Paquete HTTP encontrado [**]
[Prioridad: 0] TCP
24 / 08-03: 35: 22.979898 [**] [1: 10000001: 0] Paquete HTTP encontrado [**]
[Prioridad: 0] TCP
24 / 08-03: 35: 22.979898 [**] [1: 10000001: 0] Paquete HTTP encontrado [**]
[Prioridad: 0] TCP
24 / 08-03: 35: 22.979898 [**] [1: 10000001: 0] Paquete HTTP encontrado [**]
[Prioridad: 0] TCP
24 / 08-03: 35: 22.979898 [**] [1: 10000001: 0] Paquete HTTP encontrado [**]
[Prioridad: 0] TCP
24 / 08-03: 35: 22.979898 [**] [1: 10000001: 0] Paquete HTTP encontrado [**]
[Prioridad: 0] TCP
También crearemos una regla para detectar ftp intentos de acceso:
# alert tcp any any -> any 21 (msg: "paquete FTP encontrado"; sid: 10000002;)Agregue esta regla a la "local.reglas" archivo usando el siguiente comando:
[correo electrónico protegido]: ~ $ echo “alerta tcp any any -> alert tcp any any -> any 21(msg: "paquete FTP encontrado"; sid: 10000002; rev: 1;) ”>> / etc / snort / rules / local.reglas
Ahora, intente iniciar sesión desde otra máquina y observe los resultados del programa Snort.
24 / 08-03: 35: 22.979898 [**] [1: 10000002: 0) Paquete FTP encontrado [**] [Prioridad: 0]TCP
24 / 08-03: 35: 22.979898 [**] [1: 10000002: 0) Paquete FTP encontrado [**] [Prioridad: 0]
TCP
24 / 08-03: 35: 22.979898 [**] [1: 10000002: 0) Paquete FTP encontrado [**] [Prioridad: 0]
TCP
24 / 08-03: 35: 22.979898 [**] [1: 10000002: 0) Paquete FTP encontrado [**] [Prioridad: 0]
TCP
24 / 08-03: 35: 22.979898 [**] [1: 10000002: 0) Paquete FTP encontrado [**] [Prioridad: 0]
TCP
Como se vio anteriormente, recibimos la alerta, lo que significa que hemos creado con éxito estas reglas para detectar anomalías en el puerto 21 y puerto 80.
Conclusión
sistema de deteccion de intrusos como Bufido se utilizan para monitorear el tráfico de la red para detectar cuándo un usuario malintencionado está llevando a cabo un ataque antes de que pueda dañar o afectar la red. Si un atacante está realizando un escaneo de puertos en una red, el ataque se puede detectar, junto con el número de intentos realizados, el atacante IP dirección y otros detalles. Bufido se utiliza para detectar todo tipo de anomalías, y viene con una gran cantidad de reglas ya configuradas, junto con la opción de que el usuario escriba sus propias reglas de acuerdo a sus necesidades. Dependiendo del tamaño de la red, Bufido se puede configurar y utilizar fácilmente sin gastar nada, en comparación con otros anuncios comerciales pagados sistema de deteccion de intrusos. Los paquetes capturados se pueden analizar más a fondo utilizando un rastreador de paquetes, como Wireshark, para analizar y desglosar lo que estaba pasando por la mente del atacante durante el ataque y los tipos de escaneos o comandos realizados. Bufido es una herramienta gratuita, de código abierto y fácil de configurar, y puede ser una excelente opción para proteger cualquier red de tamaño mediano de los ataques.