본문 바로가기
Network Security/우분투 리눅스 기반의 IDS IPS 설치와 운영

[침탐] 5장, 전송 계층 기반의 주요 공격 유형

by Y06 2021. 4. 4.

포트 스캔이란 원격지 호스트를 대상으로 어떤 포트 번호를 사용 중인가를 확인하는 기법이다.

 

엔맵(Nmap)은 포트 스캐너의 대명사로 오늘날 가장 많이 사용하는 도구이기도 하다. 엔맵은 와이어샤크(WireShark)와 마찬가지로 데비안/우분투 운영 체제에서 관리자 권한을 이용해 apt-get install nmap 명령어를 통해 쉼게 설치할 수 있다.

 

엔맵을 이용한 대표적인 포트 스캔에는 TCP 오픈(TCP Open) 스캔 기법과 TCP 할프 오픈(TCP Half Open) 스캔 기법과 TCP FIN 스캔 기법 등이 있다.

 

TCP 오픈 스캔 기법은 nmap 127.0.0.1 -p 22 -st 명령어와 같이 설정한다. 127.0.0.1번 IP 주소 다시 말해 자기 자신을 대상으로 SSH 서비스 동작 여부를 TCP 3단계 연결 완성을 통해 확인하겠다는 의미다.

 

RST 플래그란 상대방과 연결을 즉시 종료하겠다는 의미다.

 

TCP 오픈 스캔 기법의 장점은 TCP 3단계 연결을 완성하기 때문에 포트 스캔 결과가 정확하다는 점이다. 반면 같은 이유로 TCP 3단계 연결을 완성하기 때문에 공격 대상자 측에 포트 스캔 기록을 남길 수 있다. 이러한 문제를 해결하기 위해 등장한 기법이 바로 TCP 할프 오픈 스캔 기법이다. TCP 할프 오픈 스캔 기법은 엔맵의 기본 스캔 방식이기도 핟.

 

TCP 할프 오픈 스캔 기법은 nmap 127.0.0.1 -p 22 -sS 명령어와 같이 설정한다. SSH 서비스 동작 여부를 TCP 3단계 연결 미완성을 통해 확인하겠다는 의미다.

 

TCP 오픈 스캔 기법에서는 ACK 플래그로 응답해 3단계 연결을 완성하지만 TCP 할프 오픈 스캔 기법에서는 RST 플래그로 응답해 3단계 연결을 완성하지 않는다. 이것이 TCP 할프 오픈 스캔 기법과 TCP 오픈 스캔 기법의 차이점이다.

 

TCP 할프 오픈 스캔처럼 공격 대상자에게 포트 스캔 흔적을 남기지 않게 수행하는 포트 스캔 기법을 흔히 스텔스 포트 스캔(Sealth Port Scan)이라고 한다. 스텔스 포트 스캔 기법에는 TCP 할프 오픈 스캔 기법 이외에도 TCP FIN 스캔 기법과 TCP X-mas 스캔 등이 있다. 이러한 기법은 공격 대상자 측에서 사용하는 방화벽을 우회할 목적으로 개발한 기법이다.

 

이런 상황에서 공격자는 정상적인 TCP 3단계 연결 순서를 어긋나게 설정해 방화벽을 우회할 수 있다.

 

TCP FIN 스캔 기법은 nmap 127.0.0.1 -p 22 -sF 명령어와 같이 설정하면 FIN 플래그를 생성해 전송한다. 방화벽에서는 외부로부터 들어오는 SYN 플래그는 차단하지만 FIN 플래그는 허용해 준다. 따라서 공격 대상자는 공격자가 전송한 FIN 플래그를 수신한다.

 

TCP X-mas 스캔 기법은 TCP FIN 스캔 기법을 응용한 기법이다. TCP X-mas 스캔 기법은 nmap 127.0.0.1 -p 22 -sX 명령어와 같이 설정한다.

 

TCP Null 스캔 기법은 TCP X-mas 스캔 기법을 반대로 적용한 기법이다. TCP Null 스캔 기법은 nmap 127.0.0.1 -p 22 -sN 명령어와 같이 설정한다.

 

전송 계층에서 나타나는 가장 대표적인 공격은 TCP SYN 공격이다. TCP 3단계 연결 속성을 악용한 공격이다. TCP SYN 공격은 네트워크 계층에서 수행하는 ICMP 플러딩 공격과 유사하다.

 

IP 스푸핑 공격을 적용해 -a 192.168.10.220처럼 조작한 출발지 ip 주소를 통해 웹 서버(-p 22)를 대상으로 SYN 신호를 플러딩하겠다는 의미다.

 

악성 코드를 이용해 좀비 시스템으로 하여금 공격자가 설정한 목적지로 SYN 플래그를 전송하게끔 하기 때문에 출발지 IP 주소에 기반한 차단은 불가능하다. 따라서 일시에 들어오는 SYN 플래그가 정상적인 요청인지 악의적인 요청인지 정확하게 판단할 수 없다.

 

본트/보잉크(Bonk/Boink) 공격도 TCP SYN 공격과 같이 전송 계층에서 수행하는 플러딩 공격이다. 티얼드롭 공격이 네트워크 계층에서 수행하는 패킷 분할 속성을 악용한 공격임에 반해 본크/보잉크 공격은 전송 계층에서 수행하는 TCP 단편화 속성을 악용한 공격이다.

 


출처: 우분투 리눅스 기반의 IDS/IPS 설치와 운영_ 오동진, 추다영 지음