Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Qué sistema de archivos es del tipo 8E?

¿Qué sistema de archivos es del tipo 8E?

Informe de análisis de Snort

1.--Introducción a Snort

Snort es un rastreador de paquetes basado en libpcap, que puede usarse como un sistema liviano de detección de intrusiones en la red (

NIDS). El llamado peso ligero significa que no afecta en la medida de lo posible el funcionamiento normal de la red durante el proceso de detección. Un NIDS liviano excelente debe tener las características de operación entre plataformas y un impacto mínimo en el sistema. Los administradores deben poder responder en tiempo real modificando las configuraciones en poco tiempo. Más importante aún, debe convertirse en un miembro importante del conjunto. estructura de seguridad.

Snort es un ejemplo típico, puede ejecutarse en una variedad de plataformas de sistemas operativos, como la familia UNIX y Windows 9

X. (requiere libpcap para Win32), que depende menos del sistema operativo que muchos productos comerciales. En segundo lugar, los usuarios pueden ajustar la estrategia de detección en poco tiempo según sus propias necesidades. En términos de tipos de ataques de detección,

Según los últimos datos (4/12/2000), snort**** tiene 21 categorías y 1271 reglas de detección, incluido

desbordamiento de búfer. , escaneo de puertos, ataques CGI, etc. SNORT integra múltiples mecanismos de alerta para proporcionar capacidades de alerta en tiempo real, que incluyen: registros del sistema, archivos especificados por el usuario, UNIXSocket y alertas de cliente Windo

ws a través de SMBClient usando WinPopup. Como software de código abierto, la importancia práctica de Snort es llenar el vacío en los sistemas comerciales de detección de intrusiones.

Puede ayudar a los administradores de sistemas de redes pequeñas y medianas a monitorear eficazmente el tráfico de la red y detectar comportamientos de intrusión.

2. Comparación de Snort con otras herramientas.

Los principales usos de Snort son la monitorización de redes, la grabación de paquetes y la detección de intrusos. A continuación se muestra una comparación con una herramienta típica que tiene las dos funciones anteriores

.

1)- Comparación entre snort y tcpdump

Tcpdump es la herramienta de rastreo más clásica, utilizada principalmente para registrar datos de la red, y también es una herramienta de diagnóstico y detección de fallas de la red.

Snort y su dios más grande son similares en que ambos se basan en libpcap y admiten el mecanismo de filtrado BPF, por lo que esencialmente

ambos llaman a funciones de biblioteca para capturar paquetes. , pero el propósito de snort no es solo registrar paquetes de datos sino también analizarlos desde una perspectiva de seguridad, y tcpdump se utiliza principalmente para analizar datos de red y también analizar datos de red. tcpdump analiza principalmente paquetes de capa 2 o capa 3 para solucionar problemas de red, mientras que snort analiza principalmente datos de la capa de aplicación para detectar intrusiones.

Además, dado que tcpdump está diseñado para registrar el tráfico de forma rápida y completa, tiene un formato de salida especial que es rápido

pero no fácil de leer, mientras que snort El formato de salida proporcionado es; más amigable y fácil de analizar directamente para los administradores de sistemas.

-----------------------------------------

2)--Snort vs.

Según una encuesta de las herramientas de detección de intrusiones en redes comerciales existentes realizada por Denmac System en noviembre de 1999, el índice de rendimiento general de NFR

es más alto que el de ISS RealSecure y SessionWall de CA, por lo que representa el nivel más alto de IDS internacional actual y es un producto comercial relativamente maduro. Muchas de las ideas de diseño de Snort son similares a NF

R, pero hay deficiencias en muchos aspectos. Por ejemplo, no puede implementar la desfragmentación de IP. En el formato del lenguaje de reglas de detección, NFR utiliza un lenguaje de secuencias de comandos profundo. , lo que hace que SNORT sea ligeramente más delgado que NF

R. Pero la ventaja del snort es que se puede utilizar de diferentes maneras, p. Pero la ventaja de SNORT es que es un software de código abierto. Los fanáticos de todo el mundo pueden unirse a su desarrollo y actualización.

Su futuro es ilimitado.

2.--Principio

Snort como NIDS [Nota: Sistema de Detección de Intrusos basado en Red (NIDS), su principio de funcionamiento es en un basado en **** red que disfruta de datos de transmisión de red originales, al analizar los paquetes de datos capturados, el trabajo principal es hacer coincidir las características del comportamiento de intrusión o desde la perspectiva de las actividades de la red para detectar comportamientos anormales y luego tomar medidas.

Detectar comportamientos anormales desde la perspectiva de las actividades de la red y luego tomar medidas de advertencia o registro para el comportamiento de intrusión. Desde el punto de vista del modo de detección,

snort es una detección de uso indebido. [Nota: este enfoque coincide con patrones de firma de ataques conocidos

incluido el análisis de protocolo pasivo utilizando un rastreador que se ejecuta en modo espurio de NIC e interpreta y analiza una serie de

características de los paquetes]. En esencia, Snort es una herramienta de detección de intrusiones basada en reglas, es decir, para cada tipo de intrusión, extrae su valor característico y lo escribe en reglas de detección de acuerdo con la especificación, formando así una base de datos de reglas

. En segundo lugar, los paquetes de datos capturados se comparan uno por uno de acuerdo con la base de datos de reglas. Si la coincidencia tiene éxito, el comportamiento de intrusión se considera establecido.

En la actualidad, la base de reglas de detección de Snort incluye principalmente los siguientes tipos de comportamientos de intrusión:

La estructura de Snort se divide principalmente en tres partes, como se muestra en la Figura n-1:

l --data Subsistema de captura y análisis de paquetes (mecanismo de captura de paquetes y decodificador de paquetes desde la capa de enlace):

La función de este subsistema es capturar los datos transmitidos a través de la red y analizarlos según los diferentes TCP/IP. protocolos.Analizar paquetes de datos a diferentes niveles.

. Snort utiliza funciones de la biblioteca libpcap para capturar datos, lo que proporciona a las aplicaciones funciones de interfaz para capturar paquetes directamente desde la capa de enlace y configurar decodificadores de paquetes. Esta función de biblioteca proporciona a las aplicaciones la capacidad de capturar paquetes directamente desde la capa de enlace

y configurar filtros de paquetes para capturar datos específicos. (Ver Apéndice N

para más detalles). El mecanismo de captura y análisis de datos de la red es la base de toda la implementación de NIDS y es fundamental para garantizar una alta velocidad y una baja pérdida de paquetes, lo que depende no sólo de la eficiencia del software, sino también de la potencia de procesamiento del hardware. También es importante que el mecanismo de análisis pueda manejar varios tipos de paquetes. Actualmente, snort puede manejar paquetes en múltiples tipos de enlaces, incluidos Ethernet

, Token Ring y SLIP.

l--Motor de detección

El motor de detección es el núcleo de la implementación de NIDS. La precisión y la velocidad son indicadores importantes para medir su rendimiento principalmente.

depende de La precisión de refinar el código característico del comportamiento de intrusión y la simplicidad y practicidad de escribir reglas se deben a la pasividad de la función propia del sistema de detección de intrusiones en la red: solo puede detectar pasivamente los datos que fluyen a través de la red. , pero no puede La única forma de enviar paquetes de datos de forma proactiva

para detectar y determinar si se ha producido una intrusión es atribuir el código característico del comportamiento de intrusión a los valores característicos de diferentes campos del protocolo. y detectar los valores característicos

Determinar si se ha producido una intrusión. Esto último depende en gran medida de la organización del motor y de su capacidad para realizar coincidencias de reglas rápidamente.

Snort utiliza un formato de complemento flexible para organizar la base de reglas, es decir, la base de reglas se divide en diferentes complementos según el tipo de intrusión que los usuarios pueden

. seleccione los complementos correspondientes para la detección según sus necesidades. Los complementos incluidos actualmente son los siguientes:

Cada tipo de complemento contiene docenas de reglas de detección, que representan diferentes comportamientos de intrusión del mismo tipo. Al definir reglas,

snort utiliza un lenguaje de descripción de reglas simple y liviano. Como se mencionó anteriormente, el acto final de detección es detectar los diferentes campos del protocolo en el paquete. Por ejemplo, el número de puerto es una pista importante de la intrusión. Para ilustrar esto más claramente,

Tomemos un ejemplo:

Nombre del ataque: NT IIS Showcode ASP

Tipo de ataque: obtener acceso no autorizado.

Descripción del ataque: al crear una solicitud de URL específica, se pueden leer ilegalmente otros archivos en el servidor. Envíe ICMP_NET_UNREACH al remitente.

icmp_host: envíe ICMP_HOST_UNREACH al remitente.

icmp_port: envía ICMP _PORT_UNREACH al remitente.

icmp_all: envía todos los paquetes ICMP anteriores al remitente.

Como sistema de detección de intrusiones, en teoría sólo necesitas detectar intrusiones, no responder a ellas. Por lo tanto, esta característica

debería usarse como una característica adicional de SNORT, pero vale la pena mencionar que enviar paquetes RST e ICMP UNREACH al atacante puede abortar su ataque al host objetivo, una herramienta que tenemos. El método estudiado se llama dsniff, que se utiliza en tcpkill para cortar conexiones ilegales, pero para la denegación general de servicio, no es una buena idea. Sin embargo, este enfoque no es tan eficaz contra ataques generales de denegación de servicio como lo es contra SNORT. Para SNORT, la implementación de esta función reducirá inevitablemente la eficiencia de la detección, especialmente cuando el tráfico de red es particularmente intenso

.

Las otras 12 palabras clave se configuran para diferentes campos en el protocolo:

Palabra clave - Qué detectar - Ataque objetivo principal

ttl - Detectar IP El valor de ttl en el encabezado: se utiliza para la detección de sondeo de traceroute

id: el valor de la identificación del segmento en el encabezado IP: ataque fijo por parte de piratas informáticos, por ejemplo, ataque, por ejemplo, establecido en 31337

dsize: detección del valor del tamaño de la carga útil del paquete: ataque de desbordamiento del búfer.

contenido: busca el patrón especificado en la carga útil del paquete: la opción más importante se utiliza para buscar el contenido especificado en el segmento de datos del paquete

y activa una respuesta basada en los datos. Se pueden buscar datos que contengan una combinación de texto y datos binarios.

Y establezca

tres palabras clave auxiliares: offset, dsize, nocase

Banderas: detecta el valor del indicador tcp: escaneo de puertos ilegal u otra detección ilegal del tipo de sistema operativo host, etc.

Seq: detecta el valor del número de secuencia tcp: detecta si el conjunto de números de secuencia enviado por el host es un conjunto fijo. Un intruso puede utilizar este valor para hacerse pasar por un usuario legítimo y enviarle datos, disfrazándolos de comunicación normal para robar información o realizar otras actividades ilegales

.

Ack - valor para el reconocimiento de tcp: el PING TCP de Nmap establece este valor en 0 para

determinar que Nmap puede estar siendo utilizado para escaneo ilegal.

Itype - detecta el valor del tipo icmp - ataque de denegación de servicio. Nota: Sólo se utiliza como una de las funciones.

Icode - Detecta el valor del código icmp - tráfico sospechoso.

Sesión: registra el contenido de información de la capa de aplicación de la sesión especificada: registra los datos de la sesión en la sesión TCP.

Icmp_id - Detecta el valor del ICMP ECHO ID -

Icmp_seq - Detecta el valor del número de secuencia ICMP ECHO -

Ipoption - Monitoriza el código específico de la opción IP -

Rpc - Monitorear servicios RPC llamados por aplicaciones/procesos específicos -

3 Preprocesador

El preprocesador se introdujo a partir de la versión 1.5 de Snort. , y su código se ejecuta antes de que se llame al motor de detección allana el camino para la detección

para mejorar la precisión y la velocidad de la detección. Además, el mecanismo de preprocesamiento toma la forma de un complemento, que permite a los usuarios y programadores integrar fácilmente complementos modulares en Snort. Actualmente, Snort tiene tres

módulos de preprocesador existentes:

l--Minfrag

El preprocesador Minfrag busca datos fragmentados dada una bolsa de tamaño límite. La fragmentación de paquetes suele ser causada por enrutadores entre los hosts de origen y de destino

. En términos generales, los equipos de redes comerciales no generarán paquetes fragmentados de menos de 512 bytes.

Este hecho se puede aprovechar para monitorear el tráfico que contiene pequeños fragmentos.

l--Decodificación HTTP

La decodificación HTTP se utiliza para procesar cadenas de URI HTTP y convertir los datos de las cadenas en cadenas ASCII legibles, que se pueden utilizar para la detección.

Mensajes de datos HTTP dirigidos a escáneres de URL web encubiertos e intrusos maliciosos.

l--Detector de escaneo de puertos

El propósito del preprocesador Snort Portscan:

Registrar el inicio y el final de un escaneo de puertos desde la dirección IP de origen hasta un dispositivo de registro estándar Finalizar.

Si se especifica un archivo de registro, la dirección IP y el puerto de destino se registran junto con el tipo de análisis.

El escaneo de puertos se define como intentar conectar conexiones TCP a más de P puertos en T (segundos) de tiempo, o enviar paquetes UDP a más de P puertos en T (segundos) de tiempo. Se puede realizar un escaneo de puertos en múltiples puertos en cualquier dirección IP, o en el mismo puerto en múltiples

direcciones IP. Esta versión ahora puede manejar escaneos de puertos uno a uno y uno a muchos, la próxima versión completa

podrá manejar escaneos de puertos distribuidos (varios a uno o muchos- a muchos). El escaneo de puertos también incluye paquetes de escaneo sigiloso únicos

como NULL, FIN, SYNFIN, XMAS, etc. El módulo de escaneo de puertos genera una alerta si cada paquete de escaneo contiene un escaneo sigiloso.

Red a monitorear: la red de destino a monitorear para la exploración de puertos, expresada en red/CIDR.

Número de puertos: la cantidad de puertos a los que se accedió durante la sonda Número de puertos

período de detección: límite de tiempo para el acceso al puerto (en segundos)

logdir/filename: directorio/nombre de archivo para guardar la información de alerta, las alertas también se pueden escribir en un archivo de alerta estándar.

l--Subsistema de registro y alerta (subsistema de registro/alerta)

Las características necesarias de los resultados de salida del sistema de detección de intrusiones son tiempo real y diversidad. El primero se refiere a. la capacidad de cuando se detecta una intrusión, puede registrar y emitir una alarma de manera oportuna. Esto último significa poder elegir múltiples formas de registrar y emitir alarmas según sea necesario.

Un buen NIDS debe proporcionar una interfaz de salida amigable o alarmas audibles.

Snort es un NIDS liviano y su otra función importante es la grabadora de paquetes, por lo que este subsistema principalmente

proporciona los siguientes métodos:

1. : registra información en formato TCPDUMP

2. Modo legible: registra información en formato de protocolo para que los usuarios la vean fácilmente.

1. --modelo rápido: registra información en formato TCPDUMP

2.

3. alerta a syslog: envía una alerta a syslog.

4. Alerta a archivo de texto: Registre alertas en texto claro.

Cabe mencionar que snort tiene en cuenta la necesidad de un alto rendimiento, es decir, el tráfico de datos de la red es muy grande y la información del paquete se puede comprimir para su procesamiento interno en alertas rápidas.

3.--Estructura del programa

1)--La estructura general de snort

Snort es un excelente ejemplo de un sistema de detección de intrusiones de código abierto, y toda su estructura del programa es clara, inteligentemente concebida,

realizamos un análisis en profundidad del código fuente de su versión 1.6.3. snort **** tiene 64 archivos c y h Primero, se presentará la estructura general del programa

El diagrama de flujo es el siguiente:

La función más crítica es. ProcessPacket(), cuyo diagrama de flujo es el siguiente:

2) -Estructura de datos--

La estructura de datos principal de Snort son varias listas vinculadas. Como se mencionó anteriormente, la organización. La estructura de Snort es

La estructura de datos principal es una lista vinculada, que es una lista vinculada y una lista vinculada. La inteligencia de la base de reglas es que se divide en tres listas vinculadas según las operaciones de procesamiento de las reglas, y cada lista vinculada se divide en tres listas vinculadas según el tipo de protocolo:

De esta manera , todas las reglas se asignan a tres listas vinculadas Una lista vinculada. Los miembros de la lista vinculada son la estructura que describe cada regla: RuleTreeNode. Un miembro importante de esta estructura es la función de procesamiento que registra las reglas.

El número de tablas vinculadas: RuleFpList, una que a veces requieren las reglas. múltiples llamadas a funciones de procesamiento para ser analizadas. Otro miembro importante de esta estructura

es la estructura RuleOptions, que también contiene información sobre las opciones de reglas y una lista vinculada de sus

funciones de manejo.

Cabe mencionar que no a todas las reglas se les asigna una estructura RuleTreeNode, debido a que muchas reglas tienen el mismo encabezado antes de las opciones.

Solo es necesario seleccionar diferentes según la regla Las funciones de opciones manejan listas vinculadas. La estructura general básica

se muestra en la Figura n. Toda la inicialización de la lista vinculada se realiza antes de capturar el paquete.

Además de la lista enlazada anterior, snort también define el preprocesamiento, las palabras clave de salida y las listas enlazadas de funciones de procesamiento. El objetivo principal del diseño de la lista enlazada

es hacer realidad la idea de. complemento, es decir, cómo los usuarios pueden personalizar las funciones según sus necesidades Agregar o eliminar módulos de funciones de preprocesamiento. Su estructura de datos sólo necesita ser

como sigue:

typedef struct _PreprocessKeywordNode

{

char *keyword

;

void (*func)(char *);

}PreprocessKeywordNode;

// Estructura de información de palabras clave de preprocesamiento.

typedef struct _PreprocessKeywordList

{

Entrada PreprocessKeywordNode

struct _PreprocessKeywordList *next

}PreprocessKeywordList

// Lista de palabras clave de preproceso.

typedef struct _PreprocessFuncNode

{

void (*func)(Paquete *);

struct _PreprocessFuncNode *next; >

}PreprocessFuncNode;

// Lista vinculada de funciones de preprocesamiento.

Todas las listas vinculadas se inicializan antes de capturar los paquetes. Una vez que se establecen las listas vinculadas y se capturan los paquetes,

Después de recibir cada paquete, las funciones en la lista vinculada del preprocesador se ejecutarán primero. llamado para procesar paquetes y luego recorrer las listas AlertList, PassList y LogList en el orden predeterminado. Lista de registros. Al recorrer, primero ubique la lista de reglas de acuerdo con el tipo de protocolo del paquete de datos

y luego llame a la función recursiva para hacer coincidir las reglas una por una, es decir, primero haga coincidir el encabezado de la regla

, y si coincide, continúe haciendo coincidir recursivamente la opción de reglas; si no coincide, la siguiente regla coincidirá directamente. Para acelerar el recorrido,

nort llama al algoritmo de Boyer-Moore para hacer coincidir el "contenido" en las opciones de la regla.

4.--Mejoras

1.--Antecedentes

Creemos que snort ya tiene las funciones básicas de NIDS, pero debido a su posicionamiento como liviano Herramientas de detección de intrusiones

Así que, en comparación con las herramientas comerciales de detección de intrusiones, su lenguaje de reglas es un poco tosco y también tiene deficiencias en los métodos de alerta y las interfaces gráficas de usuario

.

La interfaz también tiene deficiencias, pero la estructura general del programa es clara, el lenguaje de reglas es simple y práctico y proporciona soporte funcional para complementos

Los usuarios pueden agregar reglas de detección y funciones de procesamiento por sí mismas, lo cual es de gran importancia práctica para la actualización oportuna de la base de reglas

.

En comparación con los NIDS comerciales, SNORT 1.6.3 no tiene la funcionalidad para manejar paquetes IP fragmentados, lo que significa que

dos, como "Teardrop" y "Ping of Death" Este tipo de ataque utiliza paquetes IP ilegales. SNORT 1.6.3 no tiene la función de procesar paquetes IP fragmentados. "Estos dos ataques que explotan la fragmentación ilegal de paquetes IP son indetectables: --teadrop--Este ataque es el reensamblaje de paquetes IP fragmentados

y apunta a la pila TCP/IP. Muchos sistemas operativos no manejan IP fragmentadas paquetes correctamente.

Se caracteriza por enviar 2 o más datagramas IP fragmentados especiales. El primer paquete es un segmento con desplazamiento 0, segmento (longitud del segmento) con un número de bytes N y el bit MF está configurado. El segundo paquete es el último segmento (MF == 0), pero su desplazamiento es La cantidad de desplazamiento. p>

es menor que N, todo lo cual da como resultado la superposición de los dos segmentos. Para volver a ensamblar estos paquetes, un sistema vulnerable asigna grandes cantidades de espacio en la pila TCP/IP, lo que hace que el sistema de destino deje de responder o se reinicie debido al agotamiento de la memoria. -- Ping of Death: este ataque se caracteriza por enviar una gran cantidad de paquetes ICMP fragmentados al objetivo. Cuando estos paquetes se vuelven a ensamblar en segmentos de más de 65535 bytes, el sistema no podrá procesar el paquete y provocará un ataque. una denegación de

servicio o un reinicio. --

2.- Programa

3.- Implementación