1. Desktop 에서 apt update  → 저장소 업데이트 (패키지)

 

 

 

2. apt install libapache2-mid-security2 -y



 

systemctl restart apache2 실행했을 때 오류나면

3. 도커에 pentestlab 서비스 종료 후에 아파치 재시작

 

 

 

4. 패키지가 제대로 설치됐는지 확인하는 명령어

apt-cache show libapache2-mod-security2

 

 

5. 설정파일 복사

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

설정파일 복사  기본으로 설정파일이 허용되어있지 않음

 

6. 설정파일 설정  → rule 파일은 아님

mousepad /etc/modsecurity/modsecurity.conf

 

 

7번째 라인에 SecRuleEngine DetectionOnly를 SecRuleEngine On으로 수정하고 ctrl + s

 

 

 

***********  Rule 구조  ***********   4개의 필드로 구성됨

지시자 | 탐색영역 | 탐지할 데이터 | log에 기록할 메시지 필드

 

SecRule → 지시자

REQUEST_HEADERS:Content-Type    탐색 영역

"^application/json"  →  탐지할 데이터

"id:'200001',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON"  → log에 기록할 메시지 필드

 

 

REQUEST: 요청(클라이언트가 서버로 보내는 데이터)

인터넷      웹서버

RESPONSE: 응답 (서버가 클라이언트로 보내는 데이터)

인터넷   ←   웹서버

 

 

^application/json    ^= 시작할 문자열 지정, application/json 문자열로 시작해야됨

 

id: rule 고유 식별번호

phase: 탐지할 영역 (1 ~ 5 까지 존재)

  phase1: request 헤더만

  phase2: request 헤더 + body

  phase3: 2 + response 헤더만

  phase4: 3 + response 헤더 + body

t: lowercase: 대소문자 구분 없음

pass: 통과하겠다

nolog: 로그로 기록하지 않겠다

 

 

 

7. 서비스 재시작

systemctl restart apache2

 

 

 

8. 사용자 룰 파일 위치 및 사용자 Rule 추가 실

000-default.comf 에 SecRuleDngine On 추가

 

 

 

 

SecRule ARGS:testparam "@contains test" "id:9999,deny,status:403,msg:'TEST'"

 

SecRule 은 무조건 적어야 함

ARGS: 전역변수(매개변수)

@contains: 파라미터 인자값

deny,status,msg: deny(거부), status(403출력), msg: log에 기록할 메시지명

 

http://test.com/?testparam=test  가 입력되면 403 출력

 

 

사용자 Rule 추가 후 서비스 재시작 (필수)

 

 

crul -v -X GET http://127.0.0.1/?testparam=1

정상적으로 페이지 불러옴

 

 

 

testparam에 test를 넣으면 403 이 뜸

사용자 룰이 잘 적용되었음

 

 

log에서 id값과 msg 확인 가능

 

 

로그 기록 확인

 

 

로그는 A ~ Z까지 필드가 존재하며, 기록되는 로그별로 고유값을 가짐

고유값을 통해 A ~ Z가 한 세트의 로그임

 

 

A  → 접속 정보가 존재, 시간정보, 접속주체(클라이언트)

B  → 클라이언트 헤더 정보

F  →  RESPONSE 헤더 정보

E  →    RESPONSE BODY 정보

H  → 탐지된 룰, 영역 기록

Z  → 로그의 끝

 

 

 

rules →  이미 작성된 룰 포함

 

 

 

 

security2.conf  →  이 설정파일이 기본 룰 임포트 설정, 12번 째 라인에 OWASP Rule 경로가 명시됨

 

 

gpt로 룰 수정하면 됨

'보안 > 보안 관제' 카테고리의 다른 글

Snort 환경 구축  (0) 2024.12.11
Snort Rule 구조  (0) 2024.12.11
실습 - 환경세팅  (2) 2024.12.07
[로그]  (1) 2024.12.06
보안 관제 (Security Operations Center, SOC)  (1) 2024.12.06

+ Recent posts