
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 कृपया पढ़ना जारी रखें और नीचे हमारी त्वरित LAB तैनाती देखें।
मूल रूप से, यह एक त्वरित तैनाती है (1) जिसमें एक कस्टम नियम का उपयोग करके ModSecurity (WAF) के माध्यम से पूर्व-संकलित और उपयोग के लिए तैयार YARA नियम शामिल हैं; (2) यह कस्टम नियम उन फ़ाइलों का निरीक्षण और पता लगाने का कार्य करेगा जिनमें दुर्भावनापूर्ण कोड हो सकता है, (3) आमतौर पर वेब फ़ंक्शंस (फ़ाइलें अपलोड) यदि फ़ाइल संदिग्ध है तो वे 403 कोड (ModSecurity द्वारा निषिद्ध) प्राप्त करते हुए अस्वीकार कर देंगे।
✔️ YaraCompile.py सभी yara नियमों को संकलित करता है। (Python3 कोड)
✔️ test.conf एक वर्चुअल होस्ट है जिसमें मॉड सिक्योरिटी नियम शामिल हैं। (ModSecurity कोड)
✔️ ModSecurity नियम अपलोड करने का प्रयास कर रही फ़ाइल का निरीक्षण करने के लिए modsec_yara.py को कॉल करते हैं। (Python3 कोड)
✔️ Yara दो विकल्प लौटाता है 1 (200 OK) या 0 (403 Forbidden)
/YaraRules/Compiled/YaraRules/rules/YaraRules/YaraScripts/etc/apache2/sites-enabled/temporal ब्लूटीमर्स: नियम प्रवर्तन, सर्वोत्तम अलर्टिंग, वेब फ़ंक्शंस के माध्यम से अपलोड की गई फ़ाइलों पर मैलवेयर डिटेक्शन।रेडटीमर्स/पेंटेस्टर्स: ग्रेबॉक्स स्कोप, एक दुर्भावनापूर्ण फ़ाइल के साथ अपलोड और बायपास, नियम प्रवर्तन।सुरक्षा अधिकारी: अलर्टिंग बनाए रखना, खतरे की खोज करना।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 तैनात करते हैं, आपको अनुकूलित करने की आवश्यकता है कि आपको किस प्रकार का नियम लागू करना है। निम्नलिखित लॉग एक उदाहरण है जब वेब एप्लिकेशन फ़ायरवॉल + 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) फ़ाइल को निष्पादित न करें।
इस डेमो के लिए, हम Yara नियमों को मान्य करने के लिए नियम 933110 - PHP Inject Attack को अक्षम करते हैं। एक दुर्भावनापूर्ण फ़ाइल अपलोड की जाती है, और ModSecurity नियम और Yara ने फ़ाइल को बैकएंड पर अपलोड करने से मना कर दिया यदि फ़ाइल कम से कम एक Yara नियम से मेल खाती है। (WebShell PHP का उदाहरण: https://github.com/drag0s/php-webshell) फ़ाइल को निष्पादित न करें।
एक दुर्भावनापूर्ण फ़ाइल अपलोड की जाती है, और ModSecurity नियम और Yara ने फ़ाइल को बैकएंड पर अपलोड करने से मना कर दिया यदि फ़ाइल कम से कम एक Yara नियम से मेल खाती है। (मैलवेयर बाज़ार (RecordBreaker) का उदाहरण: https://bazaar.abuse.ch/sample/94ffc1624939c5eaa4ed32d19f82c369333b45afbbd9d053fa82fe8f05d91ac2/) फ़ाइल को निष्पादित न करें।
यदि आप और yara नियम डाउनलोड करना चाहते हैं, तो आप निम्नलिखित रिपॉजिटरी देख सकते हैं:
Alex Hernandez उर्फ (@_alt3kx_)
Jesus Huerta उर्फ @mindhack03d
Israel Zeron Medina उर्फ @spk085