Remote OS Command Injection 취약점 및 탐지 실습 (2)
1. Remote OS Command Injection 취약점 탐지 실습
그림 1-1 local.rules
Security Onion을 실행해 /etc/nsm/rules 폴더로 이동한 후 vim을 활용해 local.rules를 실행한다.
그림 1-2 스노트 규칙 작성
local.rules 파일에 스노트 규칙을 작성한다. 외부 아이피 주소에서 웹 서버 주소로 전달해주며 메시지는 Remote OS Vulerability in URI로 출력되며 패턴을 URI나 요청메시지 헤더에서 각각 탐지되게 하려면 스노트 규칙의 sid 넘버를 달리하고 PCRE 정규화 표현식을 적용한다. sid는 30000002로 정의하고 I 옵션은 정규화 되지 않은 URI 디코딩한 문자열과 패턴이 매치된다.
그림 1-3 rule-update
local.rules 파일 저장 후 스노트 규칙을 업데이트한다. Fail이 출력되면 스노트 규칙 적용이 안되기 때문에 OK가 나올때까지 스노트 규칙을 수정 해야 한다.
그림 1-4 rule-set 업데이트
rule-update만 하게 되도 스노트 룰 적용이 안될 수 있기 때문에 rule-set도 같이 업데이트 한다. 모두 OK가 나오면 스노트 규칙이 정상적으로 적용된 것이다.
그림 1-5 sguil 실행
스노트 규칙 적용 후 sguil을 실행한다. sguil을 통해 Remote OS Command Injection 공격 취약점이 탐지된다.
그림 1-6 Command Execution
DVWA를 실행시켜 보안 레벨을 Low로 낮춘 후 Commmand Execution을 실행시켜 ;cat /etc/passwd를 입력하고 submit한다.
그림 1-7 Sguil 탐지
Submit을 하면 Sguil에서 Remote OS Command Injection 공격을 탐지한다.
그림 1-8 스노트 규칙
그림 1-2에서 적용했던 스노트 규칙도 잘 탐지되었음을 볼 수 있다. sid 번호는 30000002다.
그림 1-9 submit 로그
그림 1-6에서 보낸 정보를 탐지한 로그다. 정규 표현식에 의해 변환되서 탐지 되었음을 볼 수 있다. ;는 %3B, /는 %2F를 의미한다.