Proyecto IOCManager

willy_chaos

IOCManager - (no definitivo)

Web enfocada a gestionar los IOC (Indicator of Compromise) provenientes de diferentes fuentes y extraer un listado que poder inyectar en firewalls.

Por qué

Este enero tuve que desarrollar una intranet con Django en el trabajo. Fue una prueba de concepto pero nos metieron bastante prisa así que hay cosas que creo que no termino de usarlas como debería. Por lo que la idea es mejorar tanto en el lenguaje Python como usando el Framework.

Para que

Llevo unos meses trabajando parte de mi jornada en el departamento de Ciberseguridad, montando y gestionando ELK Stack, Palo Alto, Fortigate y Fortiweb. Actualmente el listado de IPs a banear se gestiona mediante .TXT donde se añaden dichas IPs A MANO y posteriormente se copia en una ruta de un servidor web interno, desde donde el PaloAlto y el Fortigate pueden descargarlo y bloquear dichas IPs.

Tecnologías

Backend: Python 3.x con DJango 3.x
Frontend: Bootstrap4 y jQuery

  • Sweetalert2 para algunos popup
  • Ionic icons
  • Fontawesome icons

Herramientas
PyCharm
Todo-list (para apuntarme las tareas a realizar)

Código (Abro paraguas)
https://github.com/guillerg86/IOCManager

Estado actual:
Lo he comenzado este sábado y para no perder tiempo en el frontend hice uso de un template de bootstrap. No me termina de convencer del todo cuando se pone en modo mobile, pero una vez tenga lo importante simplemente será cambiar los template *base.html

  • Home Threat IPs
    -- Muestra las 5 últimas IPs añadidas a la whitelist
    -- Muestra las 10 últimas IPs añadidas a la blacklist
    -- Permite refrescar mediante Ajax la tabla de las últimas whitelist
    -- Permite añadir mediante Ajax una nueva IP a la whitelist

Tareas a realizar para la v1

  • El botón de refresh de la tabla de blocked también haga refresh
  • Cuando se haga un añadir en la whitelist, refresque la tabla de abajo (ya que en la query de las blocked se excluyen las ips whitelist)
  • Pantalla de listar TODAS las whitelist IPs ( con filtro de búsqueda )
  • Pantalla de modificar una IP de la whitelist (la usare como detalle)
  • Pantalla de borrar una IP de la whitelist
  • Pantalla de listar TODAS las blocked IP ( con filtro de búsqueda )
  • Pantalla de modificar una IP de la blocked list
  • Pantalla de borrar una IP de la blocked list (borra por PK 1 registro)
  • Pantalla de borrar una IP de la blocked list que coincidan con una IP (por ejemplo si la IP 192.168.1.200 viene de dos fuentes, borrar ambos registros)
  • Pantalla de generación de fichero TXT para ser inyectado en los firewalls

Link al video

NSFW
7
HeXaN

A darle duro.

bLaKnI

¿Cuánta RAM tiene la maquina que se ve en el video?

1 respuesta
willy_chaos

#3 ?? la que se vé en el video es mi pc , unos 24gb de ram. por? https://valid.x86.fr/z7nzb6

JuAn4k4

¿ jQuery en 2020 ?

1 2 respuestas
Axtrix

#5 mala mierda nunca muere

1 respuesta
willy_chaos

Hoy he creado:

  • Listview blocked que permite filtrar mediante parámetro GET (me falta añadir el input en un form y que haga la petición get)
  • Listview allowed que permite filtrar mediante parámetro GET (me falta añadir el input en un form y que haga la petición get)
  • DetailView allowed
  • DetailView blocked (backend, falta el template)
  • Añadidos enlaces en la home para poder acceder a dichas pantallas

#5 y #6 podéis indicarme el porque? Entiendo que el problema de jQuery es si se comienza a añadir mil plugins, pero mi idea es usar lo justo y necesario. Quizá en un futuro podría mirar de clonar y usar Angular (el cual tendría que aprender, ahora quiero liarme solo con Django)

2 respuestas
JuAn4k4

#7 Si pretendes sacar un producto, el 99% de devs no va a querer volver a jQuery, te va a ser muy difícil encontrar a gente. Estas creando una deuda técnica del carajo, solo porque no es tu zona de confort.

Entiendo que quieras sacar el producto/mvp rápido. Más allá del MVP, yo tiraría la ui a la basura.

Puedes optar por mirar algo más hacia el futuro y darle a LitElement / web components, igual puedes incorporarlo en django fácilmente. (No conozco Django)

1 1 respuesta
Axtrix

#7 jQuery es una libreria pesada que a dia de hoy no creo que te ofrezaca nada que javascript no haga ya por defecto. Supongo que al usar Bootstrap ya estaras usando jQuery en algunos componentes (si es que aun usan jQuery para desarollar bootrstrap). Te va a ser más util que aprendas a programar en javascript normal.

Si quieres hacer interfaces interactivas y tal pues tira de alguna libreria de front (vue, react) o como dice #8 informate sobre webcomponents si te es más facil integrarlo con la interfaz que tienes

1
JuAn4k4

Echale un ojo a Tailwind, es tipo bootstrap pero en moderno.

2

Usuarios habituales

  • JuAn4k4
  • Axtrix
  • willy_chaos
  • bLaKnI
  • HeXaN