Skip to content

modsecurity

https://modsecurity.org/

  • Open Source Web Application Firewall
  • The most widespread open source WAF
  • 웹 애플리케이션으로 들어오는 악의적인 HTTP/S 요청 트래픽을 필터링, 모니터링 및 차단하여 웹 앱을 보호하고, 승인되지 않은 데이터가 앱에서 나가는 것을 방지합니다.

목적

  • 네트워크 요청에 대해 웹서버 앞에서 차단하는 서비스형 WAF도 있으나, 실제로 AWS, cloudflare 등 서비스를 사용할 수 없는 프로젝트도 있어서 기본적으로 웹서버가 받은 요청을 뒤의 WAS(php-fpm 등)로 전달하기 전에 필터링하는 방식을 구현하고 잘 적응하면 보다 광범위한 프로젝트에서 활용할 수 있습니다.
  • 방화벽 룰셋을 조정해가며 실제 운영 환경에서 정당하지 않은 요청만 차단하는 정확도를 높이는 경험과 지식은 서비스형 WAF를 사용하는 경우에도 도움이 될 것입니다.

참고

설치 및 설정

Terminal window
sudo su
# install modsecurity
apt install libapache2-mod-security2 -y
# 주요 설정 파일 위치
# /etc/modsecurity
# /usr/share/modsecurity-crs
# /etc/apache2/mods-enabled/security2.conf
# download latest coreruleset and drupal plugin
cd /etc/modsecurity/
mv crs crs.origin && mkdir crs
curl -L https://github.com/coreruleset/coreruleset/releases/download/v4.11.0/coreruleset-4.11.0-minimal.tar.gz | tar -zx --strip-components 1 -C ./crs
curl -L https://github.com/coreruleset/drupal-rule-exclusions-plugin/archive/refs/tags/v1.0.0.tar.gz | tar -zx --strip-components 2 -C ./crs/plugins/ drupal-rule-exclusions-plugin-1.0.0/plugins
mv crs/crs-setup.conf.example crs/crs-setup.conf
mv modsecurity.conf-recommended modsecurity.conf
nano modesecurity.conf
...
#SecRuleEngine DetectionOnly
SecRuleEngine On
...
service apache2 restart
- 공격: https://drupal-cms.skunkworks.co.kr/?exec=/bin/bash
- 로그 위치: `/var/log/apache2/modsec_audit.log`