Post

웹 보안 실습 6

modsecurity

설치

  1. apt-get -y install libapache2-mod-security2
  2. a2enmod security2
  3. ls -al /etc/apache2/mods-enabled/grep security2
  4. systemctl restart apache2
  5. vi /etc/apache2/mods-enabled/security2.conf
    • includeOptional 경로 확인
  6. mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
    • 원활한 작업을 위해 이름 변경
  7. /etc/modsecurity/modsecurity.conf 파일 수정
    • SecRuleEngine DetectionOnly -> SecRuleEngine On

실습

로그 확인

  • 우분투에서 로깅 시작
    • tail -f /var/log/apache2/modsec_audit.loggrep 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.loggrep injection
  • 칼리에서 owasp로 우분투 아파치 자동 공격 수행
  • 로그 확인

커스텀 룰 적용

  • /etc/apache2/sites-available/000-default.conf 에 룰 추가
  • 아파치 재시작
  • 로깅 시작

문제

  1. name 파라미터에 kroeait가 입력되는 경우 차단하는 룰
    • SecRule ARGS:name “@rx koreait”
  2. ’, <, >, / 기호가 포함되어 있는 경우 차단하는 룰
  3. select, insert, drop, union 이 포함되어 있는 경우 차단하는 룰
    • SecRule ARGS “@rx selectinsertdropunion”
  4. ../../ 패턴이 나오는 경우 차단하는 룰
    • SecRule ARGS “@rx ../../”
  5. cmd, echo, passwd가 포함되는 경우 차단하는 룰
    • SecRule ARGS “@rx cmdechopassword”