
Un marco avanzado de inteligencia de amenazas en tiempo real para identificar amenazas y tráfico web malicioso basado en la reputación de IP y datos históricos.

ARTIF es un nuevo marco avanzado de inteligencia de amenazas en tiempo real que añade otra capa de abstracción sobre MISP para identificar amenazas y tráfico web malicioso basándose en la reputación de IP y datos históricos. También realiza enriquecimiento automático y puntuación de amenazas mediante la recopilación, procesamiento y correlación de observables basados en diferentes factores.
Las características clave de ARTIF incluyen:-
Algunos casos de uso:-
¿Por qué usar ARTIF? Es un marco de inteligencia de amenazas en tiempo real que puede ayudar a identificar IPs maliciosas aunque no estén presentes en MISP. Esto ayuda a las organizaciones a establecer una primera capa de defensa al proporcionar transparencia sobre el tráfico web malicioso que llega a sus servidores.
Tomado de MISP: MISP es una solución de software de código abierto para recolectar, almacenar, distribuir y compartir indicadores y amenazas de ciberseguridad sobre análisis de incidentes de seguridad y análisis de malware. MISP está diseñado por y para analistas de incidentes, profesionales de seguridad y TIC o reversores de malware para apoyar sus operaciones diarias y compartir información estructurada de manera eficiente.
MISP se puede instalar usando código fuente o sus imágenes preconstruidas de AWS. Más información sobre la instalación de MISP se puede encontrar en su sitio web.
maxmind:
image: maxmindinc/geoipupdate
environment:
GEOIPUPDATE_ACCOUNT_ID: xxxxx
GEOIPUPDATE_LICENSE_KEY: xxxxxxxxxxxxxx
git clone https://github.com/CRED-CLUB/ARTIF/
sudo docker-compose build
sudo docker-compose up
A continuación se muestra un ejemplo de config.yaml para su referencia. Simplemente reemplace los valores correspondientes con sus valores.
credentials:
MISP_URL: "https://127.0.0.1"
MISP_KEY: "qwertyuiopasdfghjk"
python3 /home/user/ARTIF/ip_rep/feed_ingestor/update_check.py -s
python3 /home/user/ARTIF/ip_rep/feed_ingestor/update_check.py
python3 manage.py crontab add
python3 manage.py runserver
Esto abrirá el puerto 8000 que se puede usar para obtener los metadatos de las direcciones IP. Ahora puede intentar obtener la puntuación de amenaza para cualquier IP en particular.
curl 127.0.0.1:8000/ip/?ip=x.x.x.x
La salida será
{"is_IoC": false, "is_Active": false, "metadata": {"asn": "AS165**", "country": "XXX", "org": "XXX"}, "score": 80.14671726301682, "description": "XXX", "blacklists": "", "type": "", "historical":false, "verdict": "No action needed"}
La puntuación representa un menor riesgo para la IP ya que la puntuación de amenaza es alta. Cuanto mayor sea la puntuación, menos maliciosa es la IP.
Nota: Se recomienda una instancia con 8 GB de RAM para la instalación de ARTIF.
Configuración de contenedores docker

Iniciando ARTIF

ARTIF soporta sincronización con MISP. Sincroniza las fuentes de MISP, tomando la configuración más reciente de settings.yaml y todos los nuevos eventos modificados de MISP se reflejan en settings.yaml. Para agregar una nueva IP, simplemente inicie sesión en MISP y haga clic en la página de añadir fuente. Una vez que se añada la IP, el trabajo cron la recogerá según su programación y se procesará automáticamente.
ARTIF, siendo un marco de amenazas, es muy útil para la visibilidad dentro del tráfico de la organización. Está completamente escrito en Python y recopila inteligencia sobre una IP desde varias fuentes. Luego envía estos datos a un motor de correlación que genera una puntuación de amenaza, donde los datos históricos también son uno de los factores considerados para el cálculo de la puntuación de amenaza.
Cada vez que una nueva IP llega al servicio, se asigna un trabajador celery para actualizar su puntuación en la base de datos coordinándose con el motor de correlación, que a su vez recopila datos de múltiples fuentes. Para asegurar que los datos no estén obsoletos (valor por defecto de 'tiempo obsoleto' es 24 horas), ejecutamos un trabajador para cada IP en la base de datos que no haya sido actualizada en las últimas 'horas obsoletas'. Como con todos los demás parámetros, este valor también es configurable. Dado que el cálculo de la puntuación de amenaza es clave en todo esto, hemos puesto mucho énfasis en ello. Además de las conocidas fuentes de amenazas como MISP, Cortex, Alien Vault, VirusTotal y listas negras populares de IPs, también podemos añadir fuentes personalizadas según el caso de uso empresarial y de seguridad, donde la lealtad del cliente también puede ser un parámetro para el cálculo de la puntuación de amenaza.
Para facilitar la configuración, ARTIF necesita las siguientes entradas para ejecutarse:
Al ejecutarse, los datos se procesan y almacenan en un contenedor MongoDB. El contenedor MongoDB contiene 3 bases de datos importantes que almacenan información sobre la IP en la fuente, así como sus metadatos, por ejemplo, país/ASN, Org, etc. Si la IP no se encuentra en la base de datos, significa que es una IP nueva que llega al servidor y cuya información no está presente en MISP. Luego calculamos una puntuación de riesgo para esa IP particular usando un algoritmo y varios otros parámetros como geolocalización, ASN y Org. Más información sobre el motor de puntuación se puede encontrar aquí.
ARTIF tiene funcionalidad adicional para realizar un seguimiento de las fuentes antiguas. La configuración por defecto repone las fuentes más recientes cada 24 horas. Después de 24 horas, la fuente antigua se mueve a otra colección y se añaden las más recientes. Para facilitar la operación, hemos añadido un campo llamado "historical" en la salida que indica si la IP fue históricamente mala. Un valor false indica que la IP ha sido añadida recientemente a las fuentes, mientras que un valor true sugiere que la IP ya estaba presente en fuentes más antiguas y, por lo tanto, es una IP históricamente maliciosa.
Todas las IPs históricas se eliminarán de la base de datos después de 7 días por defecto.

Necesita invocar ARTIF usando update_check.py que es la columna vertebral de ARTIF.
ubuntu@localhost:~/ARTIF/ip_rep/feed_ingestor$ python3 /home/user/ARTIF/ip_rep/feed_ingestor/update_check.py -h
usage: update_check.py [-h] [-s [S]] -k [KEY] -m MISP
Programa de reputación de IP
argumentos opcionales:
-h, --help muestra este mensaje de ayuda y sale
-s [S] Requerido solo para la primera ejecución
También puede ver el trabajo cron ejecutando el siguiente comando -
python3 manage.py crontab show
Esto actualizará automáticamente la fuente. Por defecto, cada 24 horas comprobará MISP en busca de la última fuente y repondrá la base de datos con nuevas IPs de las fuentes. Las IPs con más de 7 días también son eliminadas por el programador.
Puede ignorarlo de forma segura, ya que esto sucede cuando el Tag ya existe e intentamos agregarlo. En ese caso, dará un error indicando lo anterior, y por lo tanto no se puede realizar la eliminación del tag. MISP no tiene una forma de capturar esas excepciones, por lo que tenemos que confiar en este método.
De hecho, esto toma tiempo, a veces de 30 a 90 minutos dependiendo de su velocidad de Internet y RAM. Básicamente, está descargando todas las fuentes a MongoDB y procesándolas, por lo que tomará tiempo y además es un esfuerzo único.
Solución: En tales casos, ejecute el archivo update_check.py sin el argumento -s. Esto descargará todas las IPs de la fuente. Este error generalmente ocurre cuando interrumpe abruptamente la ejecución de update_check.py durante su fase inicial.
¡Las contribuciones son siempre bienvenidas!
Consulte contributing.md para conocer las formas de comenzar. Por favor, adhiérase al código de conducta de este proyecto.
La forma más fácil de comunicarse con el equipo es a través de GitHub Issues.
Por favor, reporte nuevos problemas, solicitudes de funciones y sugerencias, pero busque problemas similares abiertos/cerrados preexistentes antes de crear un nuevo problema.