Security/Network

Modsecurity 설치 및 차단 테스트

2er0127 2023. 6. 4. 16:01

실습 환경: Ubuntu 22.04 CLI

 

 

 

Modsecurity

Modsecurity는 웹 서비스의 공격을 효과적으로 차단할 수 있는 공개 웹 응용 프로그램 방화벽 모듈(WAF) 이다.

웹 서비스를 통해서 공격하는 XSS, SQL Injection, Command Execute와 같은 공격을 효과적으로 차단하는 역할을 수행하며, Apache HTTP Server, Microsoft IIS, NGINX에서도 사용이 가능하다.

CVE-2013-5705 취약점이 발견되어 2.6.6 이상 버전을 사용해야 한다.

 

 

 

사용하기 전, Apache2 웹서버를 기반으로 동작하기 때문에 80번 포트를 사용하고 있는 다른 서비스가 있다면 꺼두거나 삭제한다.

 

 

 

1.

설치

sudo apt update
sudo apt install apache2
sudo apt info apache2

sudo apt install libapache2-mod-security2

sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

systemctl restart apache2

 

 

정책 설정 파일을 만들어줘야 하는데, 나는 추천하는 설정 파일을 지정해주었다.

/etc/modsecurity/modsecurity.conf

 

 

 

설치 완료 후 정상적으로 실행 중인지 확인해본다.

systemctl status apache2

 

 

 

 

 

80번 포트도 잘 열려있는지 확인한다.

netstat -anp | grep 80

 

 

 

 

 

 

2.

웹페이지 경로는 /var/www/html 에 있다. 

 

테스트를 위해 원래 있던 index.html 파일은 다른 이름으로 변경하거나 다른 경로에 복사해둔 후, 테스트용 index.html 파일을 만든다.

 

 

 

현재 Modsecurity가 동작 중인 컴퓨터의 IP는 11.11.11.9 이다.

 

다른 가상머신을 띄워 wget 명령어로 index.html 파일이 정상 다운로드되는지 확인한다.

wget http://11.11.11.9/index.html

 

 

 

 

 

 

3.

실시간 로그 탐지는 /var/log/apache2modsec_audit.log 에서 할 수 있다.

tail -f /var/log/apache2/modsec_audit.log

 

 

 

 

다른 가상 머신에서 악성코드를 보내보자. 아래는 xss의 대표적인 script 태그를 이용한 공격 구문이다.

wget http://11.11.11.9/index.html?q='<script>alert(1);</script>'

 

 

 

위 공격 구문을 보내자 로그에 찍히는 것을 확인할 수 있다.

 

 

다 표시하진 못했지만 로그를 보면 XSS 공격임을 인지한 내용과 공격을 시도한 클라이언트 컴퓨터의 IP도 볼 수 있다.

 

 

 

 

 

이 외에도 Injection 공격 등 웹을 이용한 공격이 탐지되어 로그에 남게 된다. 

 

 

잡힌 로그를 짧게 확인하려면 /var/log/apache2 경로에 access.log, error.log 등에서 확인 가능하다.

 

 

 

 

728x90