
Продвинутая платформа угроз в реальном времени для выявления угроз и вредоносного веб-трафика на основе репутации IP и исторических данных.

ARTIF — это новая современная среда анализа угроз в реальном времени, которая добавляет дополнительный уровень абстракции поверх MISP для выявления угроз и вредоносного веб-трафика на основе репутации IP и исторических данных. Она также выполняет автоматическое обогащение и оценку угроз путём сбора, обработки и корреляции наблюдаемых объектов с учётом различных факторов.
Ключевые возможности ARTIF включают:
Некоторые варианты использования:
Зачем использовать ARTIF? Это среда анализа угроз в реальном времени, которая помогает выявлять вредоносные IP-адреса, даже если они отсутствуют в MISP. Это позволяет организациям выстроить первый уровень защиты, обеспечивая прозрачность в отношении вредоносного веб-трафика, поступающего на их серверы.
Взято из MISP: MISP — это решение с открытым исходным кодом для сбора, хранения, распространения и обмена индикаторами кибербезопасности и угрозами, связанными с анализом инцидентов кибербезопасности и анализом вредоносных программ. MISP разработан аналитиками по инцидентам, специалистами по безопасности и ИКТ или специалистами по реверс-инжинирингу вредоносных программ для поддержки их повседневной работы по эффективному обмену структурированной информацией.
MISP можно установить из исходного кода или с помощью предварительно созданных образов AWS. Дополнительная информация об установке MISP доступна на их веб-сайте.
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
Ниже приведён пример config.yaml для справки. Просто замените соответствующие значения своими.
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
Это откроет порт 8000, который можно использовать для получения метаданных IP-адресов. Теперь вы можете попробовать получить оценку угрозы для конкретного IP.
curl 127.0.0.1:8000/ip/?ip=x.x.x.x
Вывод будет таким:
{"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"}
Оценка указывает на меньший риск для IP, так как показатель угрозы высокий. Чем выше оценка, тем менее вредоносным является IP.
Примечание: Для установки ARTIF рекомендуется экземпляр с 8 ГБ ОЗУ.
Настройка контейнеров docker

Запуск ARTIF

ARTIF поддерживает синхронизацию с MISP. Он синхронизирует каналы MISP, выбирая самую последнюю конфигурацию из settings.yaml, и все новые события, изменённые в MISP, отражаются в settings.yaml. Чтобы добавить новый IP, просто войдите в MISP и нажмите на страницу добавления канала. После добавления IP, cronjob подхватит его по своему расписанию и обработает автоматически.
ARTIF, как среда анализа угроз, очень полезна для обеспечения видимости трафика внутри организации. Он полностью написан на Python и собирает информацию об IP из различных каналов. Затем эти данные отправляются в механизм корреляции, который генерирует оценку угрозы, где исторические данные также являются одним из факторов, учитываемых при расчёте оценки.
Каждый раз, когда новый IP обращается к сервису, задание назначается работнику celery для обновления его оценки в базе данных путём взаимодействия с механизмом корреляции, который, в свою очередь, собирает данные из нескольких источников. Чтобы данные не устаревали (значение по умолчанию «время устаревания» — 24 часа), для каждого IP в базе данных, который не обновлялся за последнее время устаревания, запускается работник. Как и все остальные параметры, это значение также можно настроить. Поскольку расчёт оценки угрозы является ключевым, мы уделили ему большое внимание. Помимо известных каналов угроз, таких как MISP, Cortex, Alien Vault, VirusTotal и популярных чёрных списков IP, мы также можем добавлять пользовательские каналы в соответствии с бизнес- и операционными потребностями безопасности, где лояльность клиентов также может использоваться в качестве параметра для расчёта оценки угрозы.
Для удобства настройки ARTIF требует следующих входных данных для работы:
После запуска данные обрабатываются и сохраняются в контейнере MongoDB. Контейнер MongoDB содержит три важные базы данных, в которых хранится информация об IP в канале, а также его метаданные, например, страна/ASN, организация и т.д. Если IP не найден в базе данных, это означает, что это новый IP, поступающий на сервер, информация о котором отсутствует в MISP. Затем мы вычисляем оценку риска для данного IP с помощью алгоритма и различных других параметров, таких как геолокация, ASN и организация. Дополнительная информация о механизме оценки доступна здесь.
ARTIF имеет дополнительную функцию для отслеживания старых каналов. Конфигурация по умолчанию обновляет последние каналы каждые 24 часа. Через 24 часа старый канал перемещается в другую коллекцию, а последние добавляются. Для удобства работы мы добавили поле «historical» в вывод, которое показывает, был ли IP исторически вредоносным. Значение false означает, что IP был недавно добавлен в каналы, а значение true указывает на то, что IP уже присутствовал в более старых каналах, и, следовательно, это исторически вредоносный IP.
Все исторические IP удаляются из базы данных через 7 дней по умолчанию.

Вам нужно запустить ARTIF с помощью update_check.py, который является основой 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
optional arguments:
-h, --help show this help message and exit
-s [S] Required only for the first run
Вы также можете просмотреть задание cron, выполнив команду ниже -
python3 manage.py crontab show
Это будет автоматически обновлять канал. По умолчанию каждые 24 часа он будет проверять MISP на наличие последнего канала и пополнять БД новыми IP из каналов. IP-адреса старше 7 дней также удаляются планировщиком.
Вы можете смело игнорировать это, так как это происходит, когда тег уже существует, и мы пытаемся его добавить. В этом случае появится указанная выше ошибка, и удаление тега невозможно. В MISP нет способа обработать такие исключения, поэтому приходится полагаться на этот подход.
Действительно, это занимает время — иногда от 30 до 90 минут в зависимости от скорости интернета и ОЗУ. В основном это загрузка всех каналов в MongoDB и их обработка, поэтому это требует времени, и это единоразовая задача.
Решение: В таких случаях запустите файл update_check.py без аргумента -s. Это загрузит все IP из канала. Эта ошибка обычно возникает, если вы резко прервали выполнение update_check.py на начальном этапе.
Вклад всегда приветствуется!
См. contributing.md для получения информации о способах участия. Пожалуйста, соблюдайте code of conduct этого проекта.
Самый простой способ связаться с командой — через GitHub Issues.
Пожалуйста, создавайте новые задачи, запросы функций и предложения, но перед созданием новой задачи проверьте, нет ли уже открытых/закрытых похожих задач.