ARTLAS
Описание ARTLAS
Анализатор логов Apache в реальном времени. Основываясь на важнейших 10 уязвимостях по классификации OWASP, эта программа выявляет попытки эксплуатации ваших веб-приложений и уведомляет вас или вашу команду по реагированию на инциденты по Telegram, Zabbix и Syslog/SIEM.
ARTLAS использует регулярные выражения из проекта PHP-IDS для идентификации попыток эксплуатации.
Поддерживаемый вывод:
- Zabbix Version 2.4 и 3.0
- SySlog
- SIEM
- Telegram
Поддерживаемые веб-сервера
- Apache
- Apache vHost
- Nginx
- Nginx vHost
Домашняя страница: https://github.com/mthbernardes/ARTLAS
Автор: Matheus Bernardes
Лицензия: MIT
Справка по ARTLAS
У программы нет опций, вся настройка происходит в конфигурационном файле etc/artlas.conf.
ИНТЕГРАЦИЯ С TELEGRAM
[Telegram]
api = Маркер вашего API
group_id = Идентификатор Группы/Пользователя которые будут получать уведомления
enable = True для отправки уведомлений или False чтобы не отправлять.
КОНФИГУРАЦИЯ ZABBIX
[Zabbix]
server_name = имя хоста или сервера в zabbix
agentd_config = конфигурационный файл агента Zabbix
enable_advantage_keys = True или False для использования продвинутых триггеров
notifications = true чтобы включить или false чтобы отключить триггеры уведомлений
enable = true чтобы включить или false чтобы отключить
КОНФИГУРАЦИЯ SYSLOG/SIEM
[CEF_Syslog]
server_name = IP или имя хоста сервера SySlog/SIEM
enable = True чтобы включить или False чтобы отключить
GENERAL CONFIGURATION
[General]
apache_log = Полный путь до журнала доступа Apache access.log
apache_mask = Маска для идентификации полей в журнале доступа apache. Данные обозначения соответствуют формату журнала доступа Apache. Подробности о значении каждого символа в «Как настроить формат логов доступа Apache. Пользовательские форматы журналов».
vhost_enable = True чтобы включить или False чтобы отключить поддержку виртуальных хостов
rules = etc/default_filter.json Это файл, который содержит фильтры OWASP [не меняйте]
Руководство по ARTLAS
Страница man отсутствует.
Примеры запуска ARTLAS
Для запуска требуется Python2 и права суперпользователя:
sudo python2 artlas.py
Пример вывода при успешном запуске программы:
[*] Getting config... [+] Done! [+] Syslog Enabled [*] Getting rules... [+] Done! [*] A.R.T.L.A.S Started!
Запустите веб-сервер (если он ещё не запущен):
sudo systemctl start apache2.service
и попробуйте в веб-браузере открывать адреса вида:
- http://localhost/?mial=/etc/passwd
- http://localhost/?hackware=../../../../
- http://localhost/?miloserdov.org=\u0000
- http://localhost/?hackware.ru=(union(.*)select(.*)from)
- http://localhost/?mial=%SYSTEMROOT%
Пример вывода при выявлении атак, сканирований, проникновений на веб-сервер и эксплуатации уязвимых веб-сайтов:
[+] - Intrusion Attempt - [+] Date: Aug 19 2019 14:09:16 Vhost: None IP: ::1 Path: /?mial=/etc/passwd User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 Browser: Firefox 60 S.O: Linux Description: Detects specific directory and path traversal Impact: 5 Category: dt,id,lfi [+] - Intrusion Attempt - [+] Date: Aug 19 2019 14:09:25 Vhost: None IP: ::1 Path: /?hackware=../../../../ User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 Browser: Firefox 60 S.O: Linux Description: Detects basic directory traversal Impact: 5 Category: dt,id,lfi [+] - Intrusion Attempt - [+] Date: Aug 19 2019 14:09:33 Vhost: None IP: ::1 Path: /?miloserdov.org=\\u0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 Browser: Firefox 60 S.O: Linux Description: Detects the IE octal, hex and unicode entities Impact: 2 Category: xss,csrf [+] - Intrusion Attempt - [+] Date: Aug 19 2019 14:09:40 Vhost: None IP: ::1 Path: /?hackware.ru=(union(.*)select(.*)from) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 Browser: Firefox 60 S.O: Linux Description: Detects JavaScript location/document property access and window access obfuscation Impact: 5 Category: xss,csrf [+] - Intrusion Attempt - [+] Date: Aug 19 2019 14:09:51 Vhost: None IP: ::1 Path: /?mial=%SYSTEMROOT% User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 Browser: Firefox 60 S.O: Linux Description: An attacker is trying to locate a file to read or write. Impact: 4 Category: files,id
Установка ARTLAS
Установка в Kali Linux
git clone https://github.com/mthbernardes/ARTLAS cd ARTLAS/ sudo pip2 install -r requirements.txt
Необходимо отредактировать файл artlas.py. Для этого откройте его:
gedit artlas.py
Найдите там строку
http://dev.itratos.de/projects/php-ids/repository/raw/trunk/lib/IDS/default_filter.json
и замените её на:
https://raw.githubusercontent.com/PHPIDS/PHPIDS/master/lib/IDS/default_filter.json
сохраните и закройте файл.
Установка в BlackArch
Программа предустановлена в BlackArch.
sudo pacman -S artlas
Необходимо отредактировать файл artlas.py. Для этого откройте его:
sudo gedit /usr/share/artlas/artlas.py
Найдите там строку
http://dev.itratos.de/projects/php-ids/repository/raw/trunk/lib/IDS/default_filter.json
и замените её на:
https://raw.githubusercontent.com/PHPIDS/PHPIDS/master/lib/IDS/default_filter.json
Конфигурационный файл расположен по пути /usr/share/artlas/etc/artlas.conf.
Файл журнала доступа веб-сервера по умолчанию в Arch Linux и BlackArch расположен по пути /var/log/httpd/access_log (отредактируйте на правильное значение в конфигурационном файле)
Запуск программы выполняется так:
sudo artlas
Информация об установке в другие операционные системы будет добавлена позже.
Скриншоты ARTLAS
Решение проблем
Ошибка ValueError: No JSON object could be decoded
Для работы ARTLAS использует файл default_filter.json с регулярными выражениями из проекта PHP-IDS. В коде программы прописана ссылка на этот файл и она его скачивает при первом запуске. К сожалению, ссылка в настоящее время неправильна (сайт сменился) и программа вместо правильно файла скачивает другую страницу.
Поэтому при запуске показывается следующая ошибка:
Traceback (most recent call last): File "artlas.py", line 186, in <module> artlas = ARTLAS('/usr/share/artlas/etc/artlas.conf') File "artlas.py", line 43, in __init__ self.rules = json.loads(open(self.conf['rules']).read()) File "/usr/lib/python2.7/json/__init__.py", line 339, in loads return _default_decoder.decode(s) File "/usr/lib/python2.7/json/decoder.py", line 364, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded
Необходимо отредактировать файл artlas.py. Для этого откройте его:
gedit artlas.py
Найдите там строку
http://dev.itratos.de/projects/php-ids/repository/raw/trunk/lib/IDS/default_filter.json
и замените её на:
https://raw.githubusercontent.com/PHPIDS/PHPIDS/master/lib/IDS/default_filter.json
сохраните и закройте файл.
Поскольку неверный файл уже скачался, то его нужно удалить. Он находится в папке программы по пути etc/default_filter.json.
Для удаления этого файла в Arch Linux/BlackArch выполните:
sudo rm /usr/share/artlas/etc/default_filter.json
Ошибка IOError: [Errno 13] Permission denied: 'etc/default_filter.json'
При запуске вы можете столкнуться с ошибкой:
[*] Getting rules... Traceback (most recent call last): File "artlas.py", line 186, in <module> artlas = ARTLAS('/usr/share/artlas/etc/artlas.conf') File "artlas.py", line 40, in __init__ self.get_file_rules() File "artlas.py", line 82, in get_file_rules with open('etc/default_filter.json','w') as file_rules: IOError: [Errno 13] Permission denied: 'etc/default_filter.json'
Она означает, что при у программы недостаточно прав для сохранения файла default_filter.json. Запустите её с sudo:
sudo artlas
Ошибка requests.exceptions.SSLError: [SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:727)
В Kali Linux при запуске возникает следующая ошибка:
Traceback (most recent call last): File "artlas.py", line 186, in <module> artlas = ARTLAS('etc/artlas.conf') File "artlas.py", line 40, in __init__ self.get_file_rules() File "artlas.py", line 81, in get_file_rules r = requests.get('http://dev.itratos.de/projects/php-ids/repository/raw/trunk/lib/IDS/default_filter.json') File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 71, in get return request('get', url, params=params, **kwargs) File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 57, in request return session.request(method=method, url=url, **kwargs) File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 475, in request resp = self.send(prep, **send_kwargs) File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 606, in send history = [resp for resp in gen] if allow_redirects else [] File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 179, in resolve_redirects **adapter_kwargs File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 585, in send r = adapter.send(request, **kwargs) File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 477, in send raise SSLError(e, request=request) requests.exceptions.SSLError: [SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:727)
Необходимо отредактировать файл artlas.py. Для этого откройте его:
gedit artlas.py
Найдите там строку
http://dev.itratos.de/projects/php-ids/repository/raw/trunk/lib/IDS/default_filter.json
и замените её на:
https://raw.githubusercontent.com/PHPIDS/PHPIDS/master/lib/IDS/default_filter.json
сохраните и закройте файл.
Инструкции по ARTLAS
- Логи Apache (ч. 1): Виды и модули журналов. Формат логов доступа Apache
- Логи Apache (ч. 2): Формат логов ошибок. Журнал событий модулей
- Логи Apache (ч. 3): Программы для анализа логов Apache
Comments are Closed