메뉴 닫기

초고속 포트 스캐닝 기법 RustScan

 

1. RustScan이란?

RustScan은 현대적인 언어인 Rust로 개발된 오픈소스 포트 스캐너입니다. 이 도구의 핵심은 ‘가속기’ 역할입니다.

  • 압도적 속도: 비동기(Async) 방식으로 65,535개 전체 포트를 단 몇 초 만에 훑습니다.

  • Nmap과의 공존: 속도는 RustScan이 챙기고, 상세 분석(OS 확인, 서비스 버전 등)은 검증된 Nmap에게 넘깁니다.

  • 적응형 설정: 시스템 자원(ulimit)을 능동적으로 활용해 성능을 극대화합니다.

 

2. 설치 및 환경 구성 (Ubuntu)

RustScan은 내부적으로 Nmap을 호출하므로, Nmap이 반드시 먼저 설치되어 있어야 합니다.

# 1. Nmap 필수 설치

sudo apt update

sudo apt install nmap -y

 

# 2. RustScan 패키지 다운로드 및 설치

wget https://github.com/RustScan/RustScan/releases/download/2.3.0/rustscan_2.3.0_amd64.deb   

sudo dpkg -i rustscan_2.3.0_amd64.deb

 

3. Nmap vs RustScan 속도 비교 (왜 써야 할까?)

가장 확실한 차이를 보기 위해 전체 65,535개 포트를 모두 조사하는 ‘전수 스캔’을 기준으로 두 도구의 속도를 비교해 보았습니다. 터미널에서 time 명령어를 앞에 붙여 실행해 보면 드라마틱한 차이를 눈으로 확인할 수 있습니다.

 

① 기존 Nmap 전수 스캔   

time nmap -p- [대상_IP]

Nmap의 -p- 옵션은 1번부터 65,535번 포트까지 하나씩 순차적으로 확인하는 동기식 방식입니다. 꼼꼼하지만 대규모 인프라를 점검할 때는 시간 소모가 너무 큽니다.

 

② RustScan 전수 스캔

time rustscan -a [대상_IP] —ulimit 5000

반면 RustScan은 비동기 방식으로 수만 개의 패킷을 동시에 쏟아붓습니다. “일단 다 던져보고 응답이 오는 포트만 추리는” 방식이라 비교가 안 될 정도로 빠릅니다.

실제로 같은 서버를 대상으로 nmap, rustscan를 실행한 결과 점검 속도가 각각 103.71초, 0.52초로 큰 차이가 나타났습니다.

 

4. RustScan 실무 명령어 & 옵션

RustScan의 진짜 강점은 속도만 빠른 게 아니라, Nmap의 정밀 분석 기능까지 한 줄로 연동할 수 있다는 점입니다. 실무에서 활용도가 높은 명령어 조합과 각 옵션의 의미를 정리해 드립니다.

rustscan -a [대상_IP] —ulimit 5000 — -sV -sC -Pn
  • --ulimit 5000: 리눅스 시스템이 한 번에 열 수 있는 소켓(파일) 제한을 5,000개로 늘려줍니다. RustScan은 워낙 일처리가 빨라서 이 옵션을 주지 않으면 시스템 제한에 걸려 Too many open files 에러가 나며 멈출 수 있으므로 필수 지정이 좋습니다.

  • --: 매우 중요한 구분자입니다. 이 기호 뒤에 오는 옵션들은 RustScan이 직접 처리하지 않고 Nmap에게 그대로 전달하겠다는 의미입니다.

  • -sV: 열린 포트의 구체적인 서비스 버전을 확인합니다. (예: Apache 2.4.x, OpenSSH 8.2 등)

  • -sC: Nmap 기본 스크립트를 실행해 알려진 보안 취약점이나 설정 오류를 자동으로 체크합니다.

  • -Pn: 대상 서버가 보안상 Ping(ICMP)을 차단해두었더라도 살아있다고 가정하고 스캔을 강행합니다. 외부망 점검 시 필수 옵션입니다.

 

  • -sV결과 : 22번 포트에서는 단순히 SSH가 돌고 있는 게 아니라 OpenSSH 10.2p1 버전이, 80번 포트에서는 Apache 2.4.66 버전이 돌고 있다는 걸 파악했습니다. 실무에서 보안 취약점(CVE) 패치 대상을 찾을 때 핵심이 되는 정보입니다.

  • -sC결과 : 웹 서버 헤더를 분석해 다시 한번 아파치 버전을 교차 검증했고, 이 웹 서버가 허용하고 있는 HTTP 메소드(GET, POST 등) 목록이 무엇인지 보안 점검을 해준 결과입니다.

 

이처럼 초기 광범위한 탐지는 RustScan의 비동기 스캔으로 빠르게 수행하고, 식별된 활성 포트에 대한 심층 분석은 Nmap의 엔진에 위임하는 이원화된 워크플로우를 통해 포트 스캐닝 작업의 전반적인 효율을 극대화할 수 있습니다. 대규모 인프라 자산 정찰이나 정기적인 보안 취약점 식별 단계에서 시간 비용을 절감하는 솔루션으로 활용해 보시기 바랍니다.

 

※ 포트 스캔 사용 시 주의사항

RustScan과 Nmap은 인프라 관리자에게는 훌륭한 점검 도구이지만, 악의적인 목적으로 사용될 경우 강력한 공격 무기가 될 수 있습니다.

허가받지 않은 외부 자산에 대한 포트 스캔은 명백한 공격 행위(정찰)로 간주될 수 있습니다. 정보통신망법 등 관련 법률에 따라 법적 책임을 물을 수 있으므로, 테스트를 진행하실 때는 반드시 본인이 소유한 서버(localhost 등)나 사전에 공식적으로 협의된 환경에서만 안전하게 사용하시기 바랍니다.

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다