
Улучшите обнаружение вредоносного ПО с помощью WAF + YARA (WAFARAY)
По сути, основная идея заключалась в использовании WAF + YARA (YARA справа налево = ARAY) для обнаружения вредоносных файлов на уровне WAF до того, как WAF сможет передать их на серверную часть, например, файлы, загружаемые через веб-функции, см.: https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload
Когда веб-страница позволяет загружать файлы, большинство WAF не проверяют файлы перед отправкой на сервер. Внедрение WAF + YARA может обеспечить обнаружение вредоносных программ до того, как WAF перешлёт файлы на сервер.
Да, одно из решений — использовать ModSecurity + ClamAV. Большинство страниц вызывают ClamAV как процесс, а не как демон, и в этом случае анализ файла может занять более 50 секунд на файл. См. этот ресурс: https://kifarunix.com/intercept-malicious-file-upload-with-modsecurity-and-clamav/
:-( Несколько подсказок здесь: Black Hat Asia 2019. Пожалуйста, продолжайте чтение и смотрите наше быстрое лабораторное развертывание ниже.
По сути, это быстрое развертывание (1) с предварительно скомпилированными и готовыми к использованию правилами YARA через ModSecurity (WAF) с использованием пользовательского правила; (2) это пользовательское правило выполняет проверку и обнаружение файлов, которые могут содержать вредоносный код; (3) как правило, если файл подозрителен, веб-функции (загрузка файлов) отклоняют его, получая код 403 Forbidden от ModSecurity.
✔️ YaraCompile.py компилирует все правила yara. (Код Python3)
✔️ test.conf — это виртуальный хост, содержащий правила mod security. (Код ModSecurity)
✔️ Правила ModSecurity вызывают modsec_yara.py для проверки файла, который пытаются загрузить. (Код Python3)
✔️ Yara возвращает два варианта: 1 (200 OK) или 0 (403 Forbidden)
/YaraRules/Compiled/YaraRules/rules/YaraRules/YaraScripts/etc/apache2/sites-enabled/temporal Blueteamers: Применение правил, лучшее оповещение, обнаружение вредоносных программ в файлах, загружаемых через веб-функции.Redteamers/пентестеры: Область GreyBox, загрузка и обход с вредоносным файлом, применение правил.Специалисты по безопасности: Постоянное оповещение, охота за угрозами.SOC: Лучший мониторинг вредоносных файлов.CERT: Анализ вредоносного ПО, определение новых индикаторов компрометации (IOC).Концептуальное доказательство основано на Debian 11.3.0 (stable) x64, OWASP CRC v3.3.2 и Yara 4.0.5. Вы найдете скрипт автоматической установки здесь: wafaray_install.sh, а дополнительное руководство по ручной установке можно найти здесь: manual_instructions.txt. Также была создана PHP-страница в качестве «заглушки» для наблюдения за взаимодействием и обнаружением вредоносных файлов с помощью WAF + YARA.
✔️ Шаг 1: Загрузите Debian 11.3.0: https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.3.0-amd64-DVD-1.iso
✔️ Шаг 2: Разверните с помощью VMware или VirtualBox
✔️ Шаг 3: После установки следуйте инструкциям ниже:
alex@waf-labs:~$ su root
root@waf-labs:/home/alex#
# Remember to change YOUR_USER by your username (e.g waf)
root@waf-labs:/home/alex# sed -i 's/^\(# User privi.*\)/\1\nalex ALL=(ALL) NOPASSWD:ALL/g' /etc/sudoers
root@waf-labs:/home/alex# exit
alex@waf-labs:~$ sudo sed -i 's/^\(deb cdrom.*\)/#\1/g' /etc/apt/sources.list
alex@waf-labs:~$ sudo sed -i 's/^# \(deb\-src http.*\)/ \1/g' /etc/apt/sources.list
alex@waf-labs:~$ sudo sed -i 's/^# \(deb http.*\)/ \1/g' /etc/apt/sources.list
alex@waf-labs:~$ echo -ne "\n\ndeb http://deb.debian.org/debian/ bullseye main\ndeb-src http://deb.debian.org/debian/ bullseye main\n" | sudo tee -a /etc/apt/sources.list
alex@waf-labs:~$ sudo apt-get update
alex@waf-labs:~$ sudo apt-get install sudo -y
alex@waf-labs:~$ sudo apt-get install git vim dos2unix net-tools -y
alex@waf-labs:~$ git clone https://github.com/alt3kx/wafaray
alex@waf-labs:~$ cd wafaray
alex@waf-labs:~$ dos2unix wafaray_install.sh
alex@waf-labs:~$ chmod +x wafaray_install.sh
alex@waf-labs:~$ sudo ./wafaray_install.sh >> log_install.log
# Test your LAB environment
alex@waf-labs:~$ firefox localhost:8080/upload.php
После загрузки и компиляции правил Yara.
Это похоже на развертывание ModSecurity: необходимо настроить, какие правила применять. Следующий журнал — пример того, как межсетевой экран веб-приложений + Yara обнаружили вредоносный файл, в данном случае был обнаружен EICAR.
Message: Access denied with code 403 (phase 2). File "/temporal/20220812-184146-YvbXKilOKdNkDfySME10ywAAAAA-file-Wx1hQA" rejected by
the approver script "/YaraRules/YaraScripts/modsec_yara.py": 0 SUSPECTED [YaraSignature: eicar]
[file "/etc/apache2/sites-enabled/test.conf"] [line "56"] [id "500002"]
[msg "Suspected File Upload:eicar.com.txt -> /temporal/20220812-184146-YvbXKilOKdNkDfySME10ywAAAAA-file-Wx1hQA - URI: /upload.php"]
$ sudo service apache2 stop
$ sudo service apache2 start
$ cd /var/log
$ sudo tail -f apache2/test_access.log apache2/test_audit.log apache2/test_error.log
⚠️ Будьте осторожны при тестировании. Следующие демонстрации проводились на изолированных виртуальных машинах. ⚠️
Загружается вредоносный файл, и правила ModSecurity вместе с Yara отказывают в загрузке файла на сервер, если файл совпадает хотя бы с одним правилом Yara. (Пример вредоносного ПО: https://secure.eicar.org/eicar.com.txt) НЕ ЗАПУСКАЙТЕ ФАЙЛ.
Для этой демонстрации мы отключаем правило 933110 - PHP Inject Attack, чтобы проверить правила Yara.
Загружается вредоносный файл, и правила ModSecurity вместе с Yara отказывают в загрузке файла на сервер, если файл совпадает хотя бы с одним правилом Yara. (Пример веб-шелла PHP: https://github.com/drag0s/php-webshell) НЕ ЗАПУСКАЙТЕ ФАЙЛ.
Загружается вредоносный файл, и правила ModSecurity вместе с Yara отказывают в загрузке файла на сервер, если файл совпадает хотя бы с одним правилом Yara. (Пример Malware Bazaar (RecordBreaker): https://bazaar.abuse.ch/sample/94ffc1624939c5eaa4ed32d19f82c369333b45afbbd9d053fa82fe8f05d91ac2/) НЕ ЗАПУСКАЙТЕ ФАЙЛ.
Если вы хотите загрузить больше правил yara, вы можете обратиться к следующим репозиториям:
Alex Hernandez aka (@_alt3kx_)
Jesus Huerta aka @mindhack03d
Israel Zeron Medina aka @spk085