ACK 스캔 이란?

  • ACK 패킷을 이용한 스캔
  • 포트가 열려 있는지를 판단하는 것이 아니라, 스캐너와 스캔 대상 시스템 사이에 설치된 방화벽의 종류 판단 목적이다 - 방화벽의 룰셋, 포트 필터링인지 상태 기반 필터링인지를 판단한다 
  • 스탤스 스캔 (stealth scan) 의 한종류다

스캔 결과

  1. 스캔이 필터링 되지 않았을 경우 (unfiltered)
    • 열린 포트와 닫힌 포트 모두 RST 패킷을 반환한다
    • 열림, 닫힘 상태를 의미 하지 않는다
  2. 스캔이 필터링 되었을 경우 (filtered)
    • 응답하지 않거나, ICMP 애러 메시지를 돌려준다

ACK 패킷

  • ACK 스캔은 필터링 하기가 어렵다. ACK 패킷은 내부 호스트와 외부 호스트 중 어느 쪽이 접속을 시작하였는지 알기 어렵기 때문에, 네트워크 안으로 들어오는 SYN 패킷을 차단하기는 어렵기 때문이다.
  • 부적절한 ACK 패킷을 차단하고, 정당한 연결에 의한 ACK 패킷을 통과시키기 위해서, 방화벽은 반드시 성립된 모든 연결의 상태를 검사하여야 한다
  • 이런 상태기반 방화벽은 추가적인 리소스가 필요하고, 상태 기반 방화벽을 재시작하면 장비는 상태 정보를 잃고 성립된 연결들을 모두 종료하게 된다

 

상태기반 필터링

 

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
  • 리눅스 Netfilter/iptables 시스템은 --syn 옵션을 통해 상태 기반을 하지 않는 접근을 제공한다
  • 성립된 연결에 관련된 패킷만을 허용하겠다는 뜻이다
  • 특수 포트 6개를 제외 (22, 25, 53, 70, 80, 113) 하기 때문에 ACK 스캔으로 이 포트들에 대해서는 opne(22, 53, 80) 또는 닫힘(25, 70, 113)으로 분류 할 수 없다

+ Recent posts