Hacer un IDS con redes neuronales

Iniciado por .rn3w., 22 Diciembre 2019, 04:18 AM

0 Miembros y 1 Visitante están viendo este tema.

.rn3w.

hola A todos.

En esa ocasion vengo aqui para que me ayuden a plantear como hacer un IDS para mi tesis de grado.


lo que necesito es como obtengo los datos de una red, estos datos deben ser buenos indicadores para formar un patron ya que usare redes neuronales

En realidad debo obtener los paquetes enviados por una red, por ejemplo los que lista en este paper:

https://www.researchgate.net/publication/49588113_APLICACION_DE_REDES_NEURONALES_PARA_LA_DETECCION_DE_INTRUSOS_EN_REDES_Y_SISTEMAS_DE_INFORMACION

son estos los datos de los paquetes:



Tos (Tipo de Servicio): Indica una serie de parámetros
sobre la calidad de servicio deseada durante el tránsito
por una red.
Len (Longitud Total): Es el tamaño total, en octetos, del
datagrama, incluyendo el tamaño de la cabecera y el de
los datos.
Ttl (Tiempo de Vida TTL): Indica el máximo número
de segundos que un paquete puede estar circulando.
Sport (Puerto Origen): Puerto TCP de la máquina
emisora de datos.
Dport (Puerto Destino): Puerto TCP de la máquina
destino.
Seq (Número de secuencia): Identifica el primer byte
dentro de ese segmento de la secuencia de bytes enviados
hasta ese momento.
Ack (Numero de reconocimiento): Contiene el próximo
número de secuencia que el transmisor del ACK espera
recibir.
Tcpflags (Banderas del protocolo): Este campo
describe cual es el contenido del segmento.
Win (Tamaño de ventana): Tamaño de la ventana
advertida por el receptor al transmisor (Sliding Window).


mi pregunta es con que software puedo obtener estos datos de informacion, o con snort se puede?

AlbertoBSD

Cita de: .rn3w. en 22 Diciembre 2019, 04:18 AM
mi pregunta es con que software puedo obtener estos datos de información, o con snort se puede?
Si con Snort puedes o tcpdump, pero si lo que quieres es ir extrayendo los datos te hara falta alguna libreria para realizar esa operacion si tienes linux puedes utilizar libpcap para programarlo en C, o si prefieres otro lenguaje necesitarías buscar las alternativas de cada uno de ellos.

Con libpcap puedes obtener los paquetes tal como llegan al sistema operativo y de ahí ir extrayendo todo los datos que necesitas de acuerdo al tipo de paquetes. Es necesario tener algo de background del tipo de paquetes que recibirás y mas o menos como se forma cada uno de ellos [Paquetes que ve el hardware][Paquetes IP u otros] [Paquetes TCP o UDP....] y un largo ETC en fin.

Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

.rn3w.

Hola AlbertoBSD entonces con SNORT puedo obtener los datos, creo que esa parte la hare manualmente, porque automatizarlo se volvera demasiado complicado.

@XSStringManolo

Está guay la idea. Para la parte gráfica podrías hacer output de los logs en formato .cvs y en un documento html y utilizas D3.js (Data Driven Documents) para crear un infograma con toda la información. Podrías meter las fechas en un select o menú dropdown y al desplegarlo que se muestre el infograma correspondiente.

.rn3w.

@?0!,5^34 quisieras ayudarme con este proyecto, ya que somos de otras partes del mundo nos podria servir a los dos

@XSStringManolo

Cita de: .rn3w. en 22 Diciembre 2019, 16:07 PM
@?0!,5^34 quisieras ayudarme con este proyecto, ya que somos de otras partes del mundo nos podria servir a los dos
Si es acerca de lo que te comenté no te hace falta ni ayuda. Puedes utilizar algún proyecto ya hecho en D3.js pidiendo permiso al autor o que tenga licencia de código libre que ya utilice un archivo .csv en el proyecto. Simplemente le cambias el nombre del archivo por el tuyo y lo ubicas en la ruta especificada en el código, o la cambias. Descargas la librería de la página oficial y en tu html pones la ruta de la libería D3 como un script src hacia la ruta de donde lo tengas ubicado.
El propio codigo de D3 tiene ya el csv integrado asique solo es copiar el código en tu html y ya te lo lee el mismo código.

En el .csv metes los logs en formato .csv que no es otra cosa que un documento de texto normal en el que separas los valores por comas y las filas con saltos de linea.

AÑO, MES , DIA, HORA, IP, MAC, Protocolo, Velocidad de conexion, ...
2019, 12, 22, 18:00:32:1275, 192.168.0.58, 00:02:5a:91:d2:78, http, 0.5Mb/s, ...
2019, 12, 22, 18:01:28:1826, 192.168.0.58, 00:02:5a:91:d2:78, http, 0.48Mb/s, ...

Este archivo créalo programáticamente a partir de tu programa de detección. Llámalo logs.csv por ejemplo y pones toda la info qie quieras en ese formato. También podrías hacer el infograma sin usar D3.js directamente con javascript. Tienes como ejemplo las estadísticas de tu perfil aquí en el foro que se utilizan las barras en html para las horas a las que te conectas. Es sencillo de hacer.