
WAF + YARA (WAFARAY) でマルウェア検出を強化しましょう
基本的なアイデアは、WAF + YARA(YARA を右から左に読むと ARAY)を使用して、WAF がファイルをバックエンドに転送する前に、WAF レベルで悪意のあるファイルを検出することです。例:Web 機能を介してアップロードされたファイル。参照:https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload
Web ページがファイルのアップロードを許可する場合、ほとんどの WAF はファイルをバックエンドに送信する前に検査しません。WAF + YARA を実装すると、WAF がファイルをバックエンドに転送する前にマルウェア検出を提供できます。
はい、1つの解決策は ModSecurity + Clamav を使用することです。ほとんどのページは ClamAV をデーモンではなくプロセスとして呼び出します。この場合、ファイルの分析に1ファイルあたり50秒以上かかる可能性があります。参照:https://kifarunix.com/intercept-malicious-file-upload-with-modsecurity-and-clamav/
:- (いくつかの手がかりはこちら Black Hat Asia 2019 引き続きお読みいただき、以下のクイック LAB デプロイメントをご覧ください。
基本的には、クイックデプロイメントです。(1) カスタムルールを使用して ModSecurity (WAF) 経由で事前にコンパイルされたすぐに使える YARA ルールを用意し、(2) このカスタムルールが悪意のあるコードを含む可能性のあるファイルの検査と検出を実行し、(3) 通常は Web 機能(ファイルアップロード)で、ファイルが疑わしい場合は ModSecurity によって 403 Forbidden コードで拒否されます。
✔️ YaraCompile.py はすべての yara ルールをコンパイルします。(Python3 コード)
✔️ test.conf は mod security ルールを含む仮想ホストです。(ModSecurity コード)
✔️ ModSecurity ルールは、アップロードしようとしているファイルを検査するために modsec_yara.py を呼び出します。(Python3 コード)
✔️ Yara は 2 つのオプション 1 (200 OK) または 0 (403 Forbidden) を返します。
/YaraRules/Compiled/YaraRules/rules/YaraRules/YaraScripts/etc/apache2/sites-enabled/temporal Blueteamers: ルールの適用、最適なアラート、Web 機能を介してアップロードされたファイルのマルウェア検出。Redteamers/pentesters: グレーボックススコープ、悪意のあるファイルのアップロードとバイパス、ルールの適用。Security Officers: アラートの維持、脅威ハンティング。SOC: 悪意のあるファイルに関する最適な監視。CERT: マルウェア分析、新しい IOC の決定。概念実証は Debian 11.3.0 (安定版) x64 OS システム、OWASP CRC v3.3.2、Yara 4.0.5 に基づいています。自動インストールスクリプトは wafaray_install.sh にあり、オプションの手動インストールガイドは manual_instructions.txt にあります。また、WAF + YARA を使用した悪意のあるファイルの相互作用と検出を観察するための「モック」として PHP ページが作成されています。
✔️ ステップ 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 をデプロイするのと同様に、適用する必要のあるルールの種類をカスタマイズする必要があります。 以下のログは、Web アプリケーションファイアウォール + 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
⚠️ テストには注意してください。以下のデモは隔離された仮想マシンでテストされました。 ⚠️
悪意のあるファイルがアップロードされ、ファイルが少なくとも1つの Yara ルールに一致した場合、ModSecurity ルールと Yara はバックエンドへのファイルアップロードを拒否します。(マルウェアの例: https://secure.eicar.org/eicar.com.txt) ファイルを実行しないでください。
このデモでは、Yara ルールを検証するためにルール 933110 - PHP Inject Attack を無効にします。
悪意のあるファイルがアップロードされ、ファイルが少なくとも1つの Yara ルールに一致した場合、ModSecurity ルールと Yara はバックエンドへのファイルアップロードを拒否します。(WebShell PHP の例: https://github.com/drag0s/php-webshell) ファイルを実行しないでください。
悪意のあるファイルがアップロードされ、ファイルが少なくとも1つの Yara ルールに一致した場合、ModSecurity ルールと Yara はバックエンドへのファイルアップロードを拒否します。(Malware Bazaar (RecordBreaker) の例: https://bazaar.abuse.ch/sample/94ffc1624939c5eaa4ed32d19f82c369333b45afbbd9d053fa82fe8f05d91ac2/) ファイルを実行しないでください。
さらに yara ルールをダウンロードしたい場合は、以下のリポジトリを参照してください。
Alex Hernandez 別名 (@_alt3kx_)
Jesus Huerta 別名 @mindhack03d
Israel Zeron Medina 別名 @spk085