네트워크 스캐닝
더 많은 작업
네트워크 스캐닝(Network Scanning)은 네트워크에 연결된 시스템, 서비스, 포트, 운영체제 등의 정보를 수집하기 위해 대상 네트워크를 탐색하는 과정이다. 보안 점검, 취약점 분석, 침투 테스트 등에 사용되며, 공격자가 사전 정보 수집 단계에서 수행하기도 한다.
네트워크 스캐닝은 특정 호스트나 네트워크 대역에 어떤 장치와 서비스가 존재하는지를 확인하는 과정이다.
일반적으로 다음과 같은 정보를 수집한다.
- 활성화된 호스트
- 열린 포트(Open Port)
- 실행 중인 서비스
- 운영체제 종류
- 네트워크 구조
- 방화벽 및 보안 장비 존재 여부
네트워크 스캐닝은 합법적인 보안 점검에도 사용되지만, 공격자가 침입 전 목표 시스템을 분석하기 위해 수행하는 경우도 많다.
- 네트워크 자산 식별
- 서비스 및 포트 확인
- 취약점 탐색
- 운영체제 식별
- 방화벽 우회 가능성 분석
- 침투 테스트 수행
- 네트워크 구성 점검
일반적인 네트워크 스캐닝 절차는 다음과 같다.
- 대상 네트워크 범위 결정
- 활성 호스트 탐색
- 포트 스캔 수행
- 서비스 및 버전 분석
- 운영체제 식별
- 취약점 분석
Half-open Scan이라고도 한다.
TCP 연결을 완전히 수립하지 않고 SYN 패킷만 전송하여 응답을 분석한다.
- SYN 전송
- SYN/ACK 수신 시 포트가 열려 있음 판단
- RST 전송 후 연결 종료
TCP Connect 스캔보다 탐지가 어려운 편이다.
FIN 플래그를 가진 패킷을 전송하여 응답 여부를 분석한다.
RFC 기준으로 닫힌 포트는 RST를 반환하고, 열린 포트는 응답하지 않는다.
일부 운영체제에서는 정상적으로 동작하지 않을 수 있다.
TCP 플래그 없이 패킷을 전송하는 방식이다.
FIN, PSH, URG 플래그를 동시에 설정하여 전송하는 방식이다.
패킷의 여러 플래그가 켜져 있어 크리스마스트리처럼 보인다고 하여 붙은 이름이다.
UDP 포트의 상태를 확인하는 방식이다.
UDP는 연결형 프로토콜이 아니므로 TCP보다 분석이 어렵고 느린 경우가 많다.
운영체제 스캐닝(OS Fingerprinting)은 대상 시스템의 운영체제를 추정하는 기술이다.
TCP/IP 스택의 동작 방식 차이를 분석하여 운영체제를 추정한다.
다음과 같은 요소가 활용된다.
- TTL 값
- TCP 윈도우 크기
- 응답 패턴
- TCP 옵션 구조
배너 그래빙(Banner Grabbing)은 서비스가 제공하는 배너 정보를 수집하여 서비스 종류와 버전을 식별하는 기법이다.
예를 들어 웹 서버, FTP 서버, SSH 서버 등이 접속 시 버전 정보를 반환하는 경우가 있다.
이를 통해 취약한 버전 여부를 분석할 수 있다.
네트워크 스캐닝은 공격의 초기 정찰(Reconnaissance) 단계에서 자주 사용된다.
공격자는 다음과 같은 정보를 수집한다.
- 열려 있는 포트
- 취약 서비스
- 운영체제 종류
- 방화벽 존재 여부
이 정보를 기반으로 이후 취약점 공격이나 침입 시도가 이루어진다.
- 네트워크 스캐닝은 네트워크 정보 수집 과정이다.
- 포트 스캐닝은 열린 포트를 탐색하는 과정이다.
- SYN 스캔은 Half-open Scan이라고도 한다.
- TCP Connect 스캔은 완전한 TCP 연결을 수행한다.
- XMAS 스캔은 FIN, PSH, URG 플래그를 사용한다.
- 배너 그래빙은 서비스 및 버전 정보를 수집하는 기법이다.
- Nmap은 대표적인 네트워크 스캐닝 도구이다.
- 운영체제 스캐닝은 TCP/IP 스택 특성을 분석하여 수행한다.