Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
wafaray — WAF + YARA (WAFARAY)로 악성코드 탐지를 강화하세요 | Kitploit
도구/GitHubGitHub/alt3kx/wafaray
Defensive ToolsWAF BypassWeb SecurityMalware AnalysisPenetration TestingThreat IntelligenceLabs & Practice
GitHubalt3kx/wafaray

wafaray

WAF + YARA (WAFARAY)로 악성코드 탐지를 강화하세요

저장소 보기
107143년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

WAF + YARA (WAFARAY)를 이용한 악성코드 탐지 강화

wafaray

WAFARAY는 Debian 11.3.0 (stable) x64 기반의 LAB 배포판으로, WAF + YARA라는 두 가지 주요 재료를 혼합하여 제작되었습니다. 일반적으로 웹 기능(파일 업로드)을 통해 악성 파일(예: 웹쉘, 바이러스, 악성코드, 바이너리)을 탐지합니다.

made-with-python made-with-bash GitHub Linux

목적

기본적으로 주요 아이디어는 WAF가 파일을 백엔드로 전달하기 전에 WAF + YARA(YARA 오른쪽에서 왼쪽으로 읽으면 ARAY)를 사용하여 WAF 수준에서 악성 파일을 탐지하는 것입니다. 예: 웹 기능을 통해 업로드된 파일 https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload 참조

웹 페이지에서 파일 업로드를 허용할 때, 대부분의 WAF는 파일을 백엔드로 보내기 전에 검사하지 않습니다. WAF + YARA를 구현하면 WAF가 파일을 백엔드로 전달하기 전에 악성코드 탐지를 제공할 수 있습니다.

WAF를 통한 악성코드 탐지?

네, 한 가지 해결책은 ModSecurity + ClamAV를 사용하는 것입니다. 대부분의 페이지에서는 ClamAV를 데몬이 아닌 프로세스로 호출합니다. 이 경우 파일 하나를 분석하는 데 최대 50초 이상이 소요될 수 있습니다. 이 리소스를 참조하십시오: https://kifarunix.com/intercept-malicious-file-upload-with-modsecurity-and-clamav/

WAF + YARA를 통한 악성코드 탐지?

:- (약간의 단서가 여기 Black Hat Asia 2019에 있습니다. 계속 읽어보시고 아래의 빠른 LAB 배포를 확인하십시오.

WAFARAY: 어떻게 작동하나요?

기본적으로 빠른 배포입니다. (1) 사전 컴파일된 YARA 규칙을 ModSecurity(WAF)와 함께 사용자 정의 규칙을 통해 바로 사용할 수 있습니다. (2) 이 사용자 정의 규칙은 악성 코드를 포함할 수 있는 파일을 검사하고 탐지하며, (3) 일반적으로 웹 기능(파일 업로드)에서 의심스러운 파일이 감지되면 ModSecurity에 의해 403 Forbidden 코드로 거부됩니다.

wafaray

✔️ YaraCompile.py는 모든 YARA 규칙을 컴파일합니다. (Python3 코드)
✔️ test.conf는 ModSecurity 규칙을 포함하는 가상 호스트입니다. (ModSecurity 코드)
✔️ ModSecurity 규칙은 업로드하려는 파일을 검사하기 위해 modsec_yara.py를 호출합니다. (Python3 코드)
✔️ YARA는 두 가지 옵션을 반환합니다: 1 (200 OK) 또는 0 (403 Forbidden)

주요 경로:

  • YARA 컴파일된 규칙: /YaraRules/Compiled
  • YARA 기본 규칙: /YaraRules/rules
  • YARA 스크립트: /YaraRules/YaraScripts
  • Apache vhosts: /etc/apache2/sites-enabled
  • 임시 파일: /temporal

접근 방식

  • 블루팀: 규칙 시행, 최적의 알림, 웹 기능을 통해 업로드된 파일의 악성코드 탐지.
  • 레드팀/침투 테스터: 그레이박스 범위, 악성 파일 업로드 및 우회, 규칙 시행.
  • 보안 책임자: 지속적인 알림, 위협 헌팅.
  • SOC: 악성 파일에 대한 최적의 모니터링.
  • CERT: 악성코드 분석, 새로운 IOC 식별.

탐지 랩 구축

프루프 오브 컨셉은 Debian 11.3.0 (stable) x64 OS 시스템, 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단계: 설치 후 아래 지침을 따르십시오:

root@kitploit:~
alex@waf-labs:~$ su root 
root@waf-labs:/home/alex#

# YOUR_USER를 사용자 이름으로 변경하는 것을 잊지 마십시오 (예: 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

# LAB 환경 테스트
alex@waf-labs:~$ firefox localhost:8080/upload.php

wafaray

YARA 규칙

YARA 규칙이 다운로드되고 컴파일된 후입니다.

ModSecurity를 배포할 때와 유사하게 적용하려는 규칙 종류를 사용자 정의해야 합니다. 다음 로그는 웹 애플리케이션 방화벽 + YARA가 악성 파일을 탐지한 예시입니다. 이 경우 eicar가 탐지되었습니다.

root@kitploit:~
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"]

WAFARAY 테스트... 짜잔...

ModSecurity 중지/시작

root@kitploit:~
$ sudo service apache2 stop
$ sudo service apache2 start

Apache 로그

root@kitploit:~
$ cd /var/log
$ sudo tail -f apache2/test_access.log apache2/test_audit.log apache2/test_error.log

데모

⚠️ 테스트 시 주의하십시오. 다음 데모는 격리된 가상 머신에서 테스트되었습니다. ⚠️

데모 1 - EICAR

악성 파일이 업로드되고, 파일이 최소 하나의 YARA 규칙과 일치하면 ModSecurity 규칙과 YARA가 백엔드로의 업로드를 거부합니다. (악성코드 예시: https://secure.eicar.org/eicar.com.txt) 파일을 실행하지 마십시오.

wafaray

데모 2 - WebShell.php

이 데모에서는 YARA 규칙을 검증하기 위해 933110 - PHP Inject Attack 규칙을 비활성화했습니다. 악성 파일이 업로드되고, 파일이 최소 하나의 YARA 규칙과 일치하면 ModSecurity 규칙과 YARA가 백엔드로의 업로드를 거부합니다. (PHP 웹쉘 예시: https://github.com/drag0s/php-webshell) 파일을 실행하지 마십시오.

wafaray

데모 3 - Malware Bazaar (RecordBreaker) 게시일: 2022-08-13

악성 파일이 업로드되고, 파일이 최소 하나의 YARA 규칙과 일치하면 ModSecurity 규칙과 YARA가 백엔드로의 업로드를 거부합니다. (Malware Bazaar (RecordBreaker) 예시: https://bazaar.abuse.ch/sample/94ffc1624939c5eaa4ed32d19f82c369333b45afbbd9d053fa82fe8f05d91ac2/) 파일을 실행하지 마십시오.

wafaray

YARA 규칙 소스

더 많은 YARA 규칙을 다운로드하려면 다음 저장소를 참조하십시오:

  • Yara Signatures Compiled - https://github.com/Yara-Rules/rules
  • YARAHub - https://yaraify.abuse.ch/
  • Awesome Yara Rules - https://github.com/InQuest/awesome-yara#rules
  • Advanced Threat Research Yara Rules - https://github.com/advanced-threat-research/Yara-Rules
  • Icewater - https://github.com/SupportIntelligence/Icewater
  • Open Source Yara Rules - https://github.com/mikesxrs/Open-Source-YARA-rules
  • Bartblaza Yara Rules - https://github.com/bartblaze/Yara-rules
  • Cobalstrike - https://github.com/Te-k/cobaltstrike
  • Yara Forensic - https://github.com/Xumeiquer/yara-forensics
  • Loki - https://github.com/Neo23x0/Loki
  • YarGen - https://github.com/Neo23x0/yarGen
  • YarAnalyzer - https://github.com/Neo23x0/yarAnalyzer/
  • Valhalla - https://www.nextron-systems.com/valhalla/, https://valhalla.nextron-systems.com/
  • AlienVault - https://otx.alienvault.com/ (계정 생성 필요)

참고 자료

  • https://portswigger.net/daily-swig/waf-reloaded-modsecurity-3-1-showcased-at-black-hat-asia
  • https://yara.readthedocs.io/en/latest/gettingstarted.html
  • https://yara.readthedocs.io/en/v3.4.0/yarapython.html
  • https://virustotal.github.io/yara/
  • https://www.tutorialspoint.com/perl/perl_introduction.htm
  • https://malware.expert/scan-every-file-clam-antivirus-scanner-modsecurity/
  • https://xael.org/pages/pyclamd-en.html
  • https://docs.clamav.net/
  • https://www.decalage.info/en/python/pyclamd
  • https://opensource.apple.com/source/clamav/clamav-116.2/clamav.Conf/clamd.conf.auto.html
  • https://c99.sh/hunting-0days-with-yara-rules/
  • https://github.com/claroty/arya
  • https://isc.sans.edu/diary/YARA%27s+Console+Module/28288

다음 릴리스까지의 로드맵

  • 악성코드 해시 데이터베이스 (MLDBM). 데이터베이스는 의심스러운 파일로 탐지된 MD5 또는 SHA1을 저장합니다.
  • 테스트 예정 CRS Modsecurity v.3.3.3 새로운 규칙
  • 데이터베이스를 이용한 악성코드 탐지를 위한 ModSecurity 규칙 개선
  • MD5 또는 SHA1 관련 블랙리스트 및 화이트리스트 생성 예정
  • YARA 분석이 3초 이상 걸리는 경우 백그라운드에서 실행 테스트 예정
  • 새로운 페이로드 테스트 예정, 예: PowerShell Obfuscated (웹쉘)
  • 라이브 환경에 대한 주의사항 (WAF AWS, WAF GCP, ...)

저자

Alex Hernandez aka (@_alt3kx_)
Jesus Huerta aka @mindhack03d

기여자

Israel Zeron Medina aka @spk085

도구 다운로드