21.02.2017 @ 11:03 Обзор IPS: The Artillery Project honeypot, ids, IPS, the artillery project В данной статье будет коротко рассмотрен инструмент The Artillery Project компании Binary Defense Systems, целью которого является защита операционной системы от сетевых атак. Что может Artillery Artillery — это IPS система, позволяющая проводить мониторинг файловой системы на предмет модификаций и журналов служб на предмет сообщений об ошибках, проводить анализ конфигурации операционной системы и выявлять уязвимости, работать как honeypot и блокировать нарушителей по IP адресам, а так же уведомлять системного администратора об атаках по электронной почте. Atillery написан на Python и поддерживается операционными системами Linux и Windows. Установка Установка производится очень просто git clone https://github.com/BinaryDefense/artillery.git cd artillery python setup.py Далее отвечаем на несколько вопросов об автоматическом запуске демона и тому подобное. В результате получаем сообщение вроде этого Installation complete. Edit /var/artillery/config in order to config artillery to your liking. На официальной странице можно посмотреть видео, описывающее установку: https://n0where.net/artillery-project/ Конфигурация Ссылка на официальную документацию на английском языке: https://www.binarydefense.com/files/Artillery_Installation_Manual.pdf Настройка Artillery осуществляется путем редактирования файла config в директории /var/artillery/ Конфигурационный файл имеет простую структуру с пояснениями, за что отвечает каждый параметр. Так же есть возможность отключить модули, которые вы не хотите использовать, например мониторинг файловой системы на предмет изменений. Краткое описание параметров представлено ниже. Какие директории мы хотим мониторить на предмет изменения можно настроить в этой секции THESE ARE THE FOLDERS TO MONITOR, TO ADD MORE, JUST DO "/root","/var/", etc. MONITOR_FOLDERS="/var/www","/etc/" При изменении файлов в этих директориях мы получим сообщение в журнале приложения и сообщение по email, если это настроено. По умолчанию файлы проверяются раз в минуту. Это значение можно изменять параметром MONITOR_FREQUENCY Так же можно исключить определенные файлы из анализа. Конфигурация Honeypot PORTS TO SPAWN HONEYPOT FOR PORTS="135,445,22,1433,3389,8080,21,5900,25,53,110,1723,1337,10000,5800,44443" При запуске Artillery начинает прослушивать основные порты, которые обычно являются целью злоумышленников. Далее, в зависимости от настроек, Artillery может навсегда блокировать всех, кто пытается подключиться к этим портам или просто вносить IP-адреса в бан-лист. После чего бан-лист может быть использован другими утилитами. Список заблокированных IP-адресов можно найти здесь /var/artillery/banlist.txt> Далее идет секция для настройки уведомлений по электронной почте CURRENT SUPPORT IS FOR SMTP, ENTER YOUR USERNAME AND PASSWORD HERE. LEAVE BLANK FOR OPEN RELAY SMTP_USERNAME="" ENTER THE SMTP PASSWORD HERE. LEAVE BLANK FOR OPEN RELAY SMTP_PASSWORD="" ... Настройка блокировки при попытке брутфорса SSH DO YOU WANT TO MONITOR SSH BRUTE FORCE ATTEMPTS SSH_BRUTE_MONITOR="ON" HOW MANY ATTEMPTS BEFORE YOU BAN SSH_BRUTE_ATTEMPTS="4" Важной концепцией проекта Artillery является автоматическое получение списка уже известных публичных IP-адресов, являющихся вредоносными и их блокирование. Этот список называется ATIF, сокращенно от the Artillery Threat Intelligence Feed. Список находится в публичном доступе и может быть просмотрен по ссылке https://www.binarydefense.com/banlist.txt Отключить использование ATIF можно изменив параметр THREAT_INTELLIGENCE_FEED на OFF. Вы можете, так же, запустить собственный ATIF сервер и предоставить список нежелательных IP-адресов клиентам. Запуск Для запуска можно воспользоваться либо скриптом из директории с установленным Artillery python restat_server.py Либо запустить Artillery как обычный демон. service artillery start Проверяем, прослушиваются ли Honeypot порты: netstat –antp | grep LISTEN tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 8536/python tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 8536/python tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 8536/python tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN 8536/python tcp 0 0 0.0.0.0:135 0.0.0.0:* LISTEN 8536/python tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 8536/python tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 8536/python Анализ журналов По умолчанию Artillery использует системный журнал для уведомления, но это может быть изменено при помощи параметра SYSLOG_TYPE LOCAL — Значение по умолчанию, использовать SYSLOG REMOTE — Использование удаленного SYSLOG FILE — Использование файла alerts.log в каталоге с установленным Artillery Я указал FILE и Artillery записывает сообщения в файл /var/artillery/logs/alerts.log Первое, что я увидел, Artillery рекомендует не использовать аутентификацию по паролю из за угроза брутфорса и сменить стандартный порт для SSH. Insecure configuration detected on filesystem: Issue identified: Password authentication enabled. An attacker may be able to brute force weak passwords. Insecure configuration detected on filesystem: Issue identified: /etc/ssh/sshd_config. SSH is running on the default port 22. An attacker commonly scans for these type of ports. Recommendation: Change the port to something high that doesn’t get picked up by typical port scanners. Чтобы проверить защиту от брутфорса SSH, я попробовал несколько раз залогиниться с некорректными данными. Мой IP-адрес появился в файле banlist.txt, в цепочке iptables, а также в журнале: Artillery has blocked (blacklisted) the following IP for SSH brute forcing violations: 192.168.1.3 Для удаления IP-адреса из бан-листа нужно воспользоваться скриптом из каталога Artillery. python remove_ban.py 192.168.1.3 Обратите внимание, что IP-адреса снова попадут в бан-лист, если записи о некорректном входе остались в журнале SSHD. Вы можете добавить IP-адрес в белый список, используя параметр WHITELIST_IP. При попытке подключения к порту 3389, являющемуся Honeypot получаем в журнале сообщение Artillery has blocked (and blacklisted) the IP Address: 192.168.1.3 for connecting to a honeypot restricted port: 3389 И бан IP-адреса. Заключение Таким образом утилита Artillery может являться как самостоятельной IPS системой так и хорошим дополнением к уже имеющимся средствам защиты информации. Весь код находится в открытом доступе и написан на Python, так что, при необходимости может быть дополнен недостающей функциональностью самостоятельно. antgorka 7284 Network security Читать дальше >>