웹 보안 실습 6
modsecurity
설치
- apt-get -y install libapache2-mod-security2
- a2enmod security2
ls -al /etc/apache2/mods-enabled/ grep security2 - systemctl restart apache2
- vi /etc/apache2/mods-enabled/security2.conf
- includeOptional 경로 확인
- mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
- 원활한 작업을 위해 이름 변경
- /etc/modsecurity/modsecurity.conf 파일 수정
- SecRuleEngine DetectionOnly -> SecRuleEngine On
실습
로그 확인
- 우분투에서 로깅 시작
tail -f /var/log/apache2/modsec_audit.log grep script
- 칼리리눅스에서 우분투 아파치에 스크립트 삽입 시도
- 로그 확인
룰 다운로드
- wget https://github.com/coreruleset/coreruleset/archive/v3.3.4.tar.gz
- /etc/apache2/modsecurity-crs 디렉토리에 압축 해제
- coreruleset 파일의 crs-setup.conf.example 파일 이름에서 example 제거
- /etc/apache2/mods-enabled/security2.conf 에서 IncludeOptional 수정
OWASP 로 자동 공격 수행
- 우분투에서 로깅 시작
tail -f /var/log/apache2/modsec_audit.log grep injection
- 칼리에서 owasp로 우분투 아파치 자동 공격 수행
- 로그 확인
커스텀 룰 적용
문제
- name 파라미터에 kroeait가 입력되는 경우 차단하는 룰
- SecRule ARGS:name “@rx koreait”
- ’, <, >, / 기호가 포함되어 있는 경우 차단하는 룰
- select, insert, drop, union 이 포함되어 있는 경우 차단하는 룰
SecRule ARGS “@rx select insert drop union”
- ../../ 패턴이 나오는 경우 차단하는 룰
- SecRule ARGS “@rx ../../”
- cmd, echo, passwd가 포함되는 경우 차단하는 룰
SecRule ARGS “@rx cmd echo password”