* 교재 : 우분투 리눅스 기반의 IDS/IPS 설치와 운영
Port Scan
원격지 호스트를 대상으로 어떤 포트 번호를 사용 중인가를 확인하는 기법
TCP 헤더의 Flag 항목 이용
Nmap
가장 많이 사용하는 포트 스캐너
apt-get install nmap 명령어로 설치 가능
TCP Open 스캔
nmap 127.0.0.1 -p 22 sT

: 자기 자신을 대상으로 SSH 서비스 동작 여부를 TCP 3-way Handshaking, 3단계 연결을 통해 확인하겠다는 의미
구분 | 해당 포트 사용 중 | 해당 포트 미사용 중 |
송신자 | SYN 플래그 전송 | SYN 플래그 전송 |
수신자 | ACK/SYN 플래그 전송 | ACK/RST 플래그 전송 |
송신자 | ACK 플래그 전송 |
(1) 공격자 : TCP Open 스캔을 수행 시, 전송 계층에서 SYN 플래그를 생성해 공격 대상자에게 전송
(2) 공격 대상자 : SSH 서비스를 사용 중이라면 ACK/SYN 플래그로 응답
* ACK/RST 플래그로 응답 : 서비스 미사용
(3) 공격자 : ACK 플래그로 응답, 공격 대상자가 응답한 플래그로 서비스가 동작 중임을 확인 가능
장점 : 3-Way Handshaking 사용, 포트 스캔 결과가 정확
단점 : 3-Way Handshaking 사용, 공격 대상자 측에 포트 스캔 기록을 남길 수 있음
TCP Half Open 스캔
Nmap의 기본 스캔 방식
nmap 127.0.0.1 -p 22 sS

: SSH 서비스 동작 여부를 TCP 3단계 연결 미완성을 통해 확인하겠다는 의미
구분 | 해당 포트 사용 중 | 해당 포트 미사용 중 |
송신자 | SYN 플래그 전송 | SYN 플래그 전송 |
수신자 | ACK/SYN 플래그 전송 | ACK/RST 플래그 전송 |
송신자 | RST 플래그 전송 |
TCP Open 스캔 기법에서는 ACK 플래그로 응답해 3단계 연결을 완성,
TCP Halt Open 스캔 기법에서는 RST 플래그로 응답해서 3단계 연결을 미완성
-> 공격 대상자에게 포트 스캔 흔적을 남기지 않게 수행 : 스텔스 포스 스캔
EX) TCP FIN 스캔, TCP X-mas 스캔 (공격 대상자 방화벽 우회)
* 방화벽이 포트 스캔을 차단하는 원리
방화벽 입장에서, 공격자 = 외부인, 공격 대상자 = 내부인
TCP 3단계 연결은 외부인이 SYN 플래그를 내부인에게 전송하는 것부터 시작
-> 외부에서 내부로 들어오는 SYN 플래그를 차단하면 됨
TCP FIN 스캔
nmap 127.0.0.1 -p 22 sF

: FIN 플래그를 생성해 전송
방화벽은 SYN 플래그는 차단하지만 FIN 플래그는 허용.
구분 | 해당 포트 사용 중 | 해당 포트 미사용 중 |
송신자 | FIN 플래그 전송 | FIN 플래그 전송 |
수신자 | 무응답 | ACK/RST 플래그 전송 |
TCP X-mas 스캔
TCP FIN 스캔 기법 이용
nmap 127.0.0.1 -p 22 sX

TCP 3단계 연결과 무관한 URG/PSH/FIN 플래그 생성 후 전송
구분 | 해당 포트 사용 중 | 해당 포트 미사용 중 |
송신자 | URG/PSH/FIN 플래그 전송 | URG/PSH/FIN 플래그 전송 |
수신자 | 무응답 | ACK/RST 플래그 전송 |
TCP Null 스캔
TCP X-mas 스캔 기법을 반대로 적용한 기법
nmap 127.0.0.1 -p 22 sN

이제 전송 계층의 주요한 공격 유형들에 대해 알아보자.
TCP SYN 공격
전송계층의 주요한 공격 유형
TCP 3단계 연결 속성을 악용
네트워크 계층의 ICMP 플러딩 공격과 유사
매 순간 공격 대상자에게 엄청난 양의 SYN 플래그를 쏟아 부음 -> 과부하
hping3 [공격대상자 IP주소] -a [조작한 출발지 IP주소] -p 22 -S
: IP 스푸핑 공격을 적용해 조작한 출발지 IP 주소를 통해 웹 서버(-p 22)를 대상으로 SYN 신호를 플러딩
방어 기법 : 출발지 IP 주소에 기반한 차단은 불가능
현재 방화벽에서는 초당 1000개의 SYN 플래그만 수신받겠다 = 임계값 설정을 통해 차단
-> 정상적인 SYN 플래그 조차 차단할 수 있음
Bonk/Boink 공격
TCP SYN 공격과 같이 전송 계층에서 수행하는 플러딩 공격
네트워크 계층의 티얼드롭 공격과 유사
차이점은 이루어지는 계층과, 패킷 분할 속성 악용 <-> TCP 단편화 속성 악용 (본크/보잉크)
TCP 헤더 중 일련 번호 항목을 조작해 수신 측에서 정상적인 재조립이 불가능하도록 함 -> 과부하
방어 기법 : 수신 받은 일련 번호 정보가 불일치한다면 OS는 본크/보잉크 공격으로 판단. 세그먼트 전체 폐기
-> TCP 헤더의 일련 번호 항목이나 IP 헤더의 플래그먼트 오프셋 항목이 불일치할 경우,
OS는 각각 본크/보잉크 공격과 티얼드롭 공격으로 판단해 세그머트나 패킷을 폐기
'Network > 침해탐지' 카테고리의 다른 글
전송 계층의 헤더 기능 (0) | 2021.05.14 |
---|---|
네트워크 계층의 헤더 기능 (0) | 2021.04.02 |
TCP/IP 방식의 계층적 구조 (0) | 2021.04.02 |