네트워크 구성
IP 주소
Web Server(Window Server): 192.168.2.2/24
외부 사용자(Window_B): 2.2.2.1/24
UTM(Sophos 9): DNAT 적용된 External IP: 1.1.100.3
- 외부 사용자가 SQL Injection , XSS 공격을 수행할 경우 UTM 장비를 통해 방어하려고 한다.
1) Web Application Firewall을 활성화하는 이유
- 외부에서 웹 서버에 접근할 때 바로 웹서버로 패킷이 이동하는 것이 아닌 가상 서버(UTM)를 통해서 웹 서버로 가도록 설정하려고 한다.
- UTM 장비에서 Web Proxy를 통해서 SQL Injection 공격을 필터링한 후 웹 서버에게 패킷을 전달한다.
2) UTM에서 Web Proxy 설정
- UTM 장비에서 Web Proxy를 설정하기 위해서 Real Webservers → Virtual Webservers → Global순으로 설정한다.
2.1) Firewall Profiles
- 설정하기 이전에 Firewall Profiles 항목을 보면 어떤 항목을 필터링할지 선택할 수 있다.
- 기본적으로 만들어진 Basic, Advanced가 있고 추가를 통해서 사용자가 임의로 정의도 가능하다.
2.2) Real Webservers 설정
- Real Webserver → +New Real Webserver를 선택하여 실제 웹서버를 지정한다.
- 이름을 설정하고 Host에 실제 Webserver(192.168.2.2)를 넣어준 후 Save 버튼을 누른다.
2.3) Virtual Webserver 설정
- Real Webserver → +New Virtual Webserver를 선택하여 가상 웹서버를 설정한다.
- Name 항목에 가상 웹서버 이름을 설정한다.
- Domain 항목에 웹서버의 웹사이트 주소를 입력한다.
- Interface 항목은 외부에서 웹서버로 접근할 경우 1.1.100.3(Destination NAT)으로 접근하기 때문에 External [Ext_Secondary]로 지정한다.
- Real Webservers 항목은 이전에 지정한 웹 서버를 체크한다.
- Firewall Profile 항목은 앞에서 본 Basic, Advanced 중에 Advanced를 선택한다.
- 호스트를 구분하기 위해서 Pass Host Header를 체크한다.
- 설정이 완료되었다면 Save 버튼을 클릭한다.
2.4) Web Application Firewall 활성화
- 설정이 완료된 이후 가상 웹서버를 활성화시킨다.
- Global 항목으로 간 후 Web Application Firewall을 활성화시킨 후 새로고침을 눌러준다.
3) 이전에 설정했던 Destination NAT 해제
- 이전에 설정한 DNAT가 존재하면 웹 필터링이 되기 이전에 NAT 처리되어서 웹서버에게 패킷이 가므로 DNAT 설정을 해제해야 한다. (UTM DNAT 설정 방법 링크)
- Network Protection → NAT → NAT로 이동하면 웹서버의 DNAT가 존재하는 것을 확인할 수 있다.
- 해당 DNAT를 제거한다.
4) 외부 Client에서 테스트
- 외부 Client(Window_B / 2.2.2.1)에서 내부 웹서버로 SQL Injection 공격이 방어가 되는지 확인해 보려고 한다.
4.1) UTM에서 Open Live Log
- 공격하기 이전에 UTM에서 Web Application Firewall → Global → Open live log를 통해 현재 Web(80번) 관련 패킷을 확인할 수 있다.
4.2) 외부 사용자(Window_B)에서 SQL Injection 공격 수행
- True 조건을 통해서 로그인 인증이 수행되도록 한 후 Log in 버튼을 누른다.
ID: 'or'1'=1
PW: 'or'1'=1
- 로그인 인증이 되지 않는 것을 확인할 수 있다.
- 4.1에서 열어둔 Open Live Log를 확인해보면 SQL Injection 공격이 감지돼 패킷을 차단한 것을 확인할 수 있다.
2020:01:08-10:16:31 utm reverseproxy: srcip="2.2.2.1" localip="1.1.100.3" size="198" user="-" host="2.2.2.1" method="POST" statuscode="403" reason="waf" extra="Anomaly Score Exceeded (score 40): SQL Injection Attack" time="2377" url="/member/member_login_check.asp" server="www.test.com" referer="http://www.test.com/member/member_login.asp" cookie="ASPSESSIONIDSABRQSCD=DJBJOLJCGCMPKMPBNDBCKMJD; HASH_ASPSESSIONIDSABRQSCD=9 E691 F2 DB5902 B734 C7 D4 E3 EAA1 BB30372 F22 E38" set-cookie="-" |
4.3) 외부 사용자(Window_B)에서 XSS 공격 수행
- 외부 사용자가 방명록에 Script 구문을 넣어서 XSS 공격을 수행하려고 한다.
- 방명록에서 script문을 작성한 후 작성 완료 버튼을 누른다.
<script> alert("sql injection!") </script>
- 방명록 목록이 보이지 않고 페이지가 차단된 것을 볼 수 있다.
- 다시 방명록을 들어가 보면 외부 사용자가 생성한 게시물이 생성되지 않은 것을 확인할 수 있다.
- Open Live Log를 통해 확인해보면 2.2.2.1 사용자가 XSS 공격을 수행해 차단한 로그를 확인할 수 있다
2020:01:08-10:37:58 utm reverseproxy: srcip="2.2.2.1" localip="1.1.100.3" size="195" user="-" host="2.2.2.1" method="POST" statuscode="403" reason="waf" extra="Anomaly Score Exceeded (score 100): IE XSS Filters - Attack Detected" time="4467" url="/board/board_write_ok.asp" server="www.test.com" referer="http://www.test.com/board/board_write.asp?user_id=" cookie="ASPSESSIONIDSABRQSCD=DJBJOLJCGCMPKMPBNDBCKMJD; HASH_ASPSESSIONIDSABRQSCD=9E691F2DB5902B734C7D4E3EAA1BB30372F22E38" set-cookie="-" |
'Network > Sophos UTM' 카테고리의 다른 글
[UTM] SOPHOS 9.0 Layer 2계층에서 Web Application Firewall 적용 (0) | 2020.01.08 |
---|---|
[UTM] SOPHOS 9.0 Destination NAT 설정 (1) | 2019.12.30 |
[UTM] SOPHOS 9.0 DNS, HTTP, FTP 연결정책 설정 (0) | 2019.12.30 |
[UTM] SOPHOS 9.0 인터페이스 설정 (0) | 2019.12.30 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊