본문 바로가기

보안/네트워크

파이어워킹 (Firewalking)




Firewalking


Firewalking이란 침입탐지시스템이 보호하는 네트워크에 대한 정보를 수집하는 기술이다. 목적지에 ICMP 패킷을 보내게 되는데 이때 TTL 필드의 값을 1부터 증가시키면서 패킷을 보내어 호스트와 침입탐지시스템 장비와의 Hop 수를 알아낸다. 그 뒤 TCP 또는 UDP 패킷을 보내어 스캐닝을 시도한다.


ICMP 패킷 구조





Type : ICMP 패킷 메시지의 종류를 정의한다. 


 타입코드

 설명

 0

 에코 응답

 3

 목적지 도달 불가능

 4

 출발지 억제

 5

 경로 변경

 8

 에코 요청

 11

 시간 초과

 12

 파라미터 문제

 13

 타임스탬프 요청

 14

 타임스탬프 응답

 15

 정보 요청

 16

 정보 응답


타입 11과 같이 시간이 초과된 패킷은 TTL이 초과되었을 때 기록된다. IP 패킷은 네트워크 라우터를 통과할 때마다 TTL 값이 1씩 감소되는데 예정 도착지에 도달하기 전에 TTL 값이 0이 되면 마지막에 도착된 라우터는 근원지에게 시간 초과된 ICMP 패킷을 보내게 된다. 이것은 traceroute 프로그램에서 사용된다. 두가지 타입의 ICMP 패킷들이 반환되게 되는데 


1) TTL 값이 0이 될 때 라우터에서 시간 초과 패킷을 보낸다. (타입 11)


2) 에코 요청 패킷을 수신하면 목적지에서 에코 응답패킷을 보낸다 (타입 0)


네트워크 경로의 라우터 들이 ICMP 패킷을 무시하도록 설정되어 있을 경우 아무런 패킷도 반환되지 않는다. 이 때 TTL 값을 1씩 증가시켜서 다음 라우터로부터 응답을 기다린다.


Code : 타입 필드를 정의 한다.


 코드

 설명

 0

 네트워크 도달 불가능 

 1

 호스트 도달 불가능 

 2

 프로토콜 도달 불가능 

 3

 포트 도달 불가능

 4

 필요한 분열과 DF 플래그 세트 

 5

 원본 라우트 실패

 6

 목적지 네트워크 미확인 

 7

 목적지 호스트 미확인 

 8

 원본 호스트 고립 

 9

 목적지 네트워크와 통신 금지 

 10

 목적지 호스트와 통신 금지 

 11

 서비스 타입에 대한 네트워크 도달 불가능 

 12

 서비스 타입에 대한 호스트 도달 불가능 



checksum : ICMP 패킷의 변조 여부를 보장한다. 


message : 다양한 데이터 요소들을 포함한다. 보통 메시지의 처음 두 필드를 식별자와 시퀀스 숫자로 정의한다. 






파이어워킹 절차는 다음과 같다. (라우터, 스위치, 방화벽의 ACL의 상태를 확인한다.)


1) ICMP 패킷을 보낸다 (TTL 값을 1씩 증가시키면서 이 패킷이 방화벽에 도달하면 패킷의 TTL 값은이 1이 된다.


2) 만약 이 패킷이 라우터 B에 도달할 수 있다면 이 패킷은 TTL이 0되기 때문에 패킷은 사라진다. 라우터는 ICMP 응답 패킷을 해커의 컴퓨터에 ICMP 타임 초과 메세지(타입11)로 전송할 것이다.


3) 만약 이 패킷이 방화벽 또는 중간 경로 스위치의 ACL에서 막힌다면 해커는 응답을 받지못할 것이다.


4) TTL의 값을 변화시키면서 목적지 타겟의 포트를 변화시킨다. 해커는 방화벽의 ACL과 타겟의 네트워크 구조를 예상할 수 있다. 


참고 사이트 : https://www.linux.co.kr/security/certcc/tr1998019.htm