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

и попробуйте в веб-браузере открывать адреса вида:

Пример вывода при выявлении атак, сканирований, проникновений на веб-сервер и эксплуатации уязвимых веб-сайтов:

[+] - 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

Близкие программы:

  • LORG (100%)
  • GoAccess (89%)
  • Loki (63.4%)
  • Bash Scanner (61%)
  • simple findbackdoor (57.3%)
  • Xplico (RANDOM - 52.5%)
  • Рекомендуется Вам:

    Comments are Closed