
Um framework avançado de inteligência de ameaças em tempo real para identificar ameaças e tráfego web malicioso com base na reputação de IP e dados históricos.

O ARTIF é um novo framework avançado de inteligência de ameaças em tempo real que adiciona uma camada de abstração sobre o MISP para identificar ameaças e tráfego web malicioso com base na reputação de IP e dados históricos. Ele também realiza enriquecimento automático e pontuação de ameaças coletando, processando e correlacionando observáveis baseados em diferentes fatores.
As principais funcionalidades do ARTIF incluem:
Alguns casos de uso:
Por que usar o ARTIF? É um framework de inteligência de ameaças em tempo real que pode ajudar a identificar IPs maliciosos mesmo que não estejam presentes no MISP. Isso ajuda as organizações a estabelecer a primeira camada de defesa, proporcionando transparência sobre o tráfego web malicioso que chega aos seus servidores.
Extraído do MISP: MISP é uma solução de software open source para coletar, armazenar, distribuir e compartilhar indicadores e ameaças de segurança cibernética relacionados à análise de incidentes de segurança cibernética e análise de malware. O MISP foi projetado por e para analistas de incidentes, profissionais de segurança e TIC ou reversores de malware para apoiar suas operações diárias no compartilhamento eficiente de informações estruturadas.
O MISP pode ser instalado usando código-fonte ou suas imagens AWS pré-construídas. Mais informações sobre a instalação do MISP podem ser encontradas em seu site.
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
Abaixo está um exemplo de config.yaml para sua referência. Basta substituir os valores correspondentes pelos seus 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
Isso abrirá a porta 8000, que pode ser usada para obter os metadados dos endereços IP. Agora você pode tentar obter a pontuação de ameaça para qualquer IP específico.
curl 127.0.0.1:8000/ip/?ip=x.x.x.x
A saída 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"}
A pontuação representa um risco menor para o IP, pois a pontuação de ameaça é alta. Quanto maior a pontuação, menos malicioso é o IP.
Nota: Recomenda-se uma instância com 8 GB de RAM para a instalação do ARTIF.
Configurando contêineres docker

Iniciando ARTIF

O ARTIF suporta sincronização com o MISP. Ele sincroniza os feeds do MISP, pegando a configuração mais recente do settings.yaml e todos os novos eventos modificados no MISP são refletidos no settings.yaml. Para adicionar um novo IP, basta fazer login no MISP e clicar na página de adicionar feed. Assim que o IP for adicionado, o cronjob o capturará de acordo com sua programação e será processado automaticamente.
O ARTIF, sendo um framework de ameaças, é altamente útil para visibilidade dentro do tráfego da organização. É completamente escrito em Python e coleta inteligência sobre um IP de vários feeds. Em seguida, envia esses dados para um mecanismo de correlação que gera uma pontuação de ameaça, onde os dados históricos também são um dos fatores considerados para o cálculo da pontuação de ameaça.
Sempre que um novo IP atinge o serviço, um worker do celery é designado para atualizar sua pontuação no banco de dados coordenando-se com o mecanismo de correlação, que por sua vez coleta dados de múltiplas fontes. Para garantir que os dados não estejam obsoletos (o valor padrão de 'stale time' é 24 horas), executamos um worker para cada IP no banco de dados que não foi atualizado nas últimas 'stale time'. Como todos os outros parâmetros, esse valor também é configurável. Como o cálculo da pontuação de ameaça é a chave para tudo isso, damos muita ênfase a ele. Além dos feeds de ameaças bem conhecidos, como MISP, Cortex, Alien Vault, VirusTotal e listas negras populares de IPs, também podemos adicionar feeds personalizados de acordo com o caso de uso de negócios e segurança, onde a lealdade do cliente também pode ser usada como parâmetro para o cálculo da pontuação de ameaça.
Para facilitar a configuração, o ARTIF precisa das seguintes entradas para ser executado:
Ao ser executado, os dados são processados e armazenados em um contêiner MongoDB. O contêiner MongoDB contém 3 bancos de dados importantes que armazenam informações sobre o IP no feed, bem como seus metadados, como país/ASN, organização, etc. Se o IP não for encontrado no banco de dados, significa que é um novo IP chegando ao servidor, cujas informações não estão presentes no MISP. Em seguida, calculamos uma pontuação de risco para o IP específico usando um algoritmo e vários outros parâmetros, como geolocalização, ASN e organização. Mais informações sobre o mecanismo de pontuação podem ser encontradas aqui.
O ARTIF possui funcionalidade adicional para manter o controle de feeds antigos. A configuração padrão reabastece os feeds mais recentes a cada 24 horas. Após 24 horas, o feed antigo é movido para outra coleção e os mais recentes são adicionados. Para facilitar a operação, adicionamos um campo chamado "historical" na saída, que informa se o IP foi historicamente ruim. Um valor falso indica que o IP foi adicionado recentemente aos feeds, enquanto um valor verdadeiro sugere que o IP já estava presente em feeds mais antigos e, portanto, é um IP historicamente malicioso.
Todos os IPs históricos serão removidos do banco de dados após 7 dias por padrão.

Você precisa invocar o ARTIF usando update_check.py, que é a espinha dorsal do 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
IP reputation program
optional arguments:
-h, --help show this help message and exit
-s [S] Required only for the first run
Você também pode visualizar o cron job executando o comando abaixo -
python3 manage.py crontab show
Isso atualizará automaticamente o feed. Por padrão, a cada 24 horas, ele verificará o MISP em busca do feed mais recente e reabastecerá o banco de dados com novos IPs dos feeds. IPs com mais de 7 dias também são removidos pelo agendador.
Você pode ignorar com segurança, pois isso acontece quando a Tag já existe e estamos tentando adicioná-la. Nesse caso, ocorrerá um erro dizendo o acima, e portanto a remoção da tag não pode ser feita. O MISP não tem uma maneira de capturar essas exceções, então temos que confiar nessa abordagem.
Realmente leva tempo, às vezes de 30 a 90 minutos, dependendo da sua velocidade de internet e RAM. Basicamente, está baixando todos os feeds para o MongoDB e processando-os, então levará tempo e também é um esforço único.
Solução: Nesses casos, execute o arquivo update_check.py sem o argumento -s. Isso baixará todos os IPs do feed. Esse erro geralmente ocorre quando você interrompe abruptamente a execução do update_check.py durante sua fase inicial.
Contribuições são sempre bem-vindas!
Consulte contributing.md para saber como contribuir. Por favor, siga o code of conduct deste projeto.
A maneira mais fácil de se comunicar com a equipe é através de Issues do GitHub.
Por favor, abra novas issues, solicitações de funcionalidades e sugestões, mas pesquise por issues semelhantes abertas/fechadas antes de criar uma nova issue.