modsecurity
- Open Source Web Application Firewall
- The most widespread open source WAF
- 웹 애플리케이션으로 들어오는 악의적인 HTTP/S 요청 트래픽을 필터링, 모니터링 및 차단하여 웹 앱을 보호하고, 승인되지 않은 데이터가 앱에서 나가는 것을 방지합니다.
목적
- 네트워크 요청에 대해 웹서버 앞에서 차단하는 서비스형 WAF도 있으나, 실제로 AWS, cloudflare 등 서비스를 사용할 수 없는 프로젝트도 있어서 기본적으로 웹서버가 받은 요청을 뒤의 WAS(php-fpm 등)로 전달하기 전에 필터링하는 방식을 구현하고 잘 적응하면 보다 광범위한 프로젝트에서 활용할 수 있습니다.
- 방화벽 룰셋을 조정해가며 실제 운영 환경에서 정당하지 않은 요청만 차단하는 정확도를 높이는 경험과 지식은 서비스형 WAF를 사용하는 경우에도 도움이 될 것입니다.
참고
- https://www.drupal.org/node/695902
- https://www.netnea.com/cms/2016/11/22/securing-drupal-with-modsecurity-and-the-core-rule-set-crs3/
- https://coreruleset.org/docs/4-about-plugins/4-1-plugins/
- https://github.com/coreruleset/drupal-rule-exclusions-plugin
- https://github.com/coreruleset/wordpress-rule-exclusions-plugin
설치 및 설정
sudo su# install modsecurityapt install libapache2-mod-security2 -y
# 주요 설정 파일 위치# /etc/modsecurity# /usr/share/modsecurity-crs# /etc/apache2/mods-enabled/security2.conf
# download latest coreruleset and drupal plugincd /etc/modsecurity/mv crs crs.origin && mkdir crscurl -L https://github.com/coreruleset/coreruleset/releases/download/v4.11.0/coreruleset-4.11.0-minimal.tar.gz | tar -zx --strip-components 1 -C ./crscurl -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/pluginsmv crs/crs-setup.conf.example crs/crs-setup.confmv modsecurity.conf-recommended modsecurity.confnano modesecurity.conf...#SecRuleEngine DetectionOnlySecRuleEngine On...service apache2 restart
- 공격: https://drupal-cms.skunkworks.co.kr/?exec=/bin/bash- 로그 위치: `/var/log/apache2/modsec_audit.log`