맨위로가기

포트 스캔

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

포트 스캔은 네트워크의 열린 포트를 확인하는 기술로, 일반적으로 TCP/IP 프로토콜을 기반으로 작동한다. 이는 시스템 관리자가 보안 취약점을 점검하는 데 사용되지만, 공격자가 악용하여 시스템 침입, 정보 유출, 서비스 거부 공격(DoS) 등의 사이버 공격을 시도할 수도 있다. 포트 스캔에는 TCP 스캔, SYN 스캔, UDP 스캔 등 다양한 방식이 있으며, 각 방식은 TCP/IP 프로토콜의 특성을 활용하여 포트의 상태를 확인한다. 포트 스캔 자체는 불법이 아니지만, 이를 통해 얻은 정보를 바탕으로 불법 행위를 저지르면 법적 처벌을 받을 수 있으며, 각 국가별로 관련 법규가 존재한다.

더 읽어볼만한 페이지

  • 인터넷 프로토콜 기반 네트워크 소프트웨어 - 슈퍼 서버
    슈퍼 서버는 TCP 래퍼를 통해 접근 권한을 확인하고 필요에 따라 다른 서버 프로그램을 시작하여 메모리 사용량 감소 및 시스템 관리 효율성을 높이지만, 높은 연결 요청 빈도에서는 성능 저하를 유발할 수 있으며, inetd, launchd, systemd, ucspi-tcp, xinetd 등이 대표적인 구현체이다.
  • 인터넷 프로토콜 기반 네트워크 소프트웨어 - 시스코 IOS
    시스코 IOS는 시스코 시스템즈의 네트워크 장비 운영체제로, 라우터용으로 개발되어 다양한 하드웨어 기능과 네트워킹 프로토콜에 적응하며 CLI를 통해 네트워크 기능을 제어 및 관리할 수 있도록 설계되었고, IOS XR, IOS XE 등 후속 운영 체제가 등장했다.
  • 보안 소프트웨어 - 코드 서명
    코드 서명은 코드의 출처와 무결성을 보장하기 위해 공개 키와 개인 키 쌍을 사용하여 코드를 서명하는 기술이며, 소프트웨어 보안 강화 및 출처 확인에 유용하다.
  • 보안 소프트웨어 - 구글 네이티브 클라이언트
    구글 네이티브 클라이언트는 웹 애플리케이션 개발 및 배포를 간소화하고 CPU 종속성 문제 해결을 목표로 개발된 기술로, 다양한 아키텍처 지원, 샌드박싱을 통한 보안 강화, PNaCl을 통한 이식성 향상을 제공했으나 페퍼 API 지원은 2022년 6월에 종료되었다.
  • 취약점 공격 - 보안 취약점
    보안 취약점은 시스템의 설계, 구현, 운영, 관리상 결함이나 약점으로, 위협에 의해 악용되어 시스템 보안 정책을 위반할 수 있는 요소이며, ISO 27005, IETF RFC 4949, NIST SP 800-30, ENISA 등 다양한 기관에서 정의하고 있다.
  • 취약점 공격 - 인터넷 보안
    인터넷 보안은 사이버 위협, 악성 소프트웨어, 서비스 거부 공격 등으로부터 정보와 시스템을 보호하기 위해 네트워크 계층 보안, 다단계 인증, 방화벽 등 다양한 기술과 방법을 포괄한다.
포트 스캔
개요
유형네트워크 보안 도구
목적네트워크의 포트 상태 점검
작동 방식TCP, UDP 등의 프로토콜을 사용하여 대상 포트에 연결 시도
활용보안 취약점 분석
네트워크 관리
시스템 진단
기술적 세부 사항
프로토콜TCP
UDP
SCTP
ICMP
스캔 방법TCP Connect 스캔
TCP SYN 스캔 (Half-Open 스캔)
TCP FIN 스캔
TCP Xmas 스캔
TCP Null 스캔
UDP 스캔
ICMP 스캔
포트 상태Open (열림)
Closed (닫힘)
Filtered (필터링됨)
기능
포트 스캔지정된 호스트의 열린 포트 검색
서비스 탐지포트에서 실행 중인 서비스 식별
운영 체제 탐지대상 시스템의 운영 체제 추정
방화벽 탐지방화벽 규칙 및 구성 식별
활용 분야
보안 감사네트워크의 보안 상태 평가
침투 테스트시스템의 취약점 악용 시도
네트워크 관리네트워크 문제 해결 및 모니터링
악성코드 분석악성코드의 네트워크 활동 분석
공격적인 사용
악용 가능성DoS 공격
버퍼 오버플로 공격
무단 액세스 시도
보안 강화 필요성포트 스캔에 대한 적절한 방어 및 모니터링 필요
기타
참고 사항포트 스캔은 합법적인 용도로 사용될 수 있지만, 악의적인 목적으로 사용될 수도 있음

2. 포트 스캔 방식

인터넷은 TCP/IP라고도 불리는 인터넷 프로토콜 스위트를 기반으로 설계 및 운영된다. 네트워크 서비스는 호스트 주소와 포트 번호라는 두 가지 구성 요소를 사용하여 참조된다. 사용 가능한 포트 번호는 1번부터 65535번까지 총 65535개가 있다. (0번 포트는 사용 가능한 포트 번호가 아니다.) 대부분의 서비스는 하나 또는 제한된 범위의 포트 번호를 사용한다.[3]

일부 포트 스캐너는 지정된 호스트에서 가장 일반적인 포트 번호나 취약한 서비스와 가장 일반적으로 연관된 포트만 스캔한다.

포트 스캔 방식은 목적과 동작 방식에 따라 여러 가지로 나뉜다.


  • '''TCP 스캔:''' 가장 기본적인 방식으로, TCP 프로토콜의 3-way handshake를 이용하여 포트의 개방 여부를 확인한다.
  • '''SYN 스캔:''' TCP 연결을 완전히 맺지 않고 SYN 패킷만 보내어 포트 상태를 확인하는 방식으로, '하프 오픈 스캔'이라고도 불린다.
  • '''UDP 스캔:''' 연결 과정이 없는 UDP 프로토콜의 특성을 이용하여, ICMP unreachable 메시지 또는 특정 프로토콜 패킷 응답을 통해 포트 상태를 확인한다.
  • '''기타 스캔 방식:''' ACK 스캔, 윈도우 스캔, FIN 스캔, Xmas 스캔, Null 스캔, 프로토콜 스캔, 프록시 스캔, Idle 스캔, ICMP 스캔 등 다양한 방식이 존재한다.


이러한 다양한 포트 스캔 방식들은 각각의 장단점을 가지고 있으며, 스캔 목적과 대상 시스템의 환경에 따라 적절한 방식을 선택해야 한다.

2. 1. TCP 스캔

TCP 스캔은 TCP 프로토콜의 3-웨이 핸드쉐이킹(3-way handshaking) 과정을 이용하는 가장 기본적인 포트 스캔 방식이다. 스캐너는 대상 호스트의 특정 포트에 SYN 패킷을 보내고, 해당 포트가 열려있다면 SYN-ACK 응답을 받는다. 이후 연결을 종료(RST 패킷 전송)하여 스캔을 완료한다. Nmap에서는 이 방식을 'connect 스캔'이라고 부르는데, 일반적인 소켓(socket)의 `connect()` 함수를 사용하므로 특별한 권한이 필요 없지만, 대상 시스템에 로그가 남을 수 있다.[3]

핸드쉐이킹이 정상적으로 완료되면 해당 TCP 포트가 정상적으로 열려 있는 것으로 판단한다. 서비스 거부 공격을 막기 위해, 포트 스캐너는 핸드쉐이킹 직후 연결을 종료한다.[3]

포트 스캔 결과는 일반적으로 다음 세 가지 범주 중 하나로 나타난다.

  • '''열림''' 또는 '''수락됨''': 호스트가 포트에서 서비스를 수신하고 있음을 나타내는 응답을 보낸 경우.
  • '''닫힘''' 또는 '''거부됨''' 또는 '''수신 안 함''': 호스트가 포트에 대한 연결이 거부됨을 나타내는 응답을 보낸 경우.
  • '''필터링됨''', '''삭제됨''' 또는 '''차단됨''': 호스트로부터 응답이 없는 경우.


열린 포트는 시스템 관리자가 주의해야 할 두 가지 취약점을 나타낸다.

# 서비스를 제공하는 프로그램과 관련된 보안 및 안정성 문제

# 호스트에서 실행 중인 운영 체제와 관련된 보안 및 안정성 문제

SYN 스캔은 또 다른 형태의 TCP 스캔이다. 운영체제의 네트워크 기능을 사용하는 대신, 포트 스캐너가 자체적으로 원시 IP 패킷을 생성하고 응답을 모니터링한다. 이를 "반개방형 스캔"이라고도 하는데, 이는 완전한 TCP 연결을 열지 않기 때문이다. 포트 스캐너는 SYN 패킷을 생성하고, 대상 포트가 열려 있으면 SYN-ACK 패킷으로 응답한다. 그러면 스캐너는 RST 패킷으로 응답하여 핸드셰이크가 완료되기 전에 연결을 닫는다.[3]

포트 스캔을 수행하면, 컴퓨터라우터 관리자는 대상 포트에 연결할 수 있는지 확인할 수 있다. 예를 들어, 웹 서버 관리자는 포트 80으로 통신이 가능한지 확인할 필요가 있다. 또한, 관리자가 의도하지 않았는데 연결 가능한 포트가 존재할 경우, 보안상의 위험이 있으므로 대처가 필요할 수 있다.

유명한 포트 스캐너에는 Nmap이 있다.

2. 2. SYN 스캔

SYN 스캔은 '하프 오픈(half-open) 스캔'이라고도 불리며, TCP 핸드쉐이킹을 완전히 수행하지 않고 처음 SYN 패킷만을 보낸 후 검사를 완료하는 방식이다.[3] 실제 TCP 연결이 일어나지 않기 때문에 '하프 오픈 스캔'이라고 부르기도 한다.

포트 스캐너는 SYN 패킷을 생성하여 대상 포트에 전송한다. 대상 포트가 열려있다면, SYN-ACK 패킷으로 응답한다. 그러면 스캐너는 RST 패킷으로 응답하여 핸드셰이크가 완료되기 전에 연결을 닫는다.[3] 대상 포트가 닫혀 있지만 필터링되지 않은 경우에는 대상이 즉시 RST 패킷으로 응답한다.

SYN 스캔은 운영 체제의 네트워크 기능을 사용하는 대신, 스캐너가 자체적으로 원시 IP 패킷을 생성하고 응답을 모니터링한다. 원시 네트워킹을 사용하면 스캐너가 전송된 패킷과 응답에 대한 타임아웃을 완벽하게 제어할 수 있으며, 응답에 대한 상세한 보고를 허용하는 등 여러 가지 이점이 있다.

어떤 스캔이 대상 호스트에 덜 침입적인지에 대한 논쟁이 있는데, SYN 스캔은 개별 서비스가 실제로 연결을 수신하지 않는다는 장점이 있다. 그러나 핸드셰이크 중의 RST는 일부 네트워크 스택, 특히 프린터와 같은 간단한 장치에 문제를 일으킬 수 있다.

이 방식을 사용하기 위해서는 TCP 스캔과 같이 `connect()` 함수를 이용할 수 없고, 포트 스캐너는 이 스캔 작업을 위해 TCP 패킷을 직접 생성해야 한다.

2. 3. UDP 스캔

UDP 프로토콜은 TCP와 다르게 연결 과정이 없으므로, 일반적으로 포트가 열려 있어도 서버에서 아무런 응답을 하지 않을 수 있다. 하지만 많은 시스템에서는 닫힌 포트에 UDP 패킷을 보내면 ICMP "port unreachable" 메시지를 보낸다. 대부분의 UDP 스캐너는 이 메시지를 탐지하는 방식으로 동작한다.[4] 그러나 방화벽 등에 의해 ICMP 메시지가 차단되면 닫힌 포트도 열려있는 것으로 오인될 수 있다.[4]

ICMP 메시지가 없는 경우, 각 포트에 대응하는 프로토콜 패킷을 전송하는 방식을 사용할 수 있다. 예를 들어, DNS 서버는 53번 포트에서 동작하며, UDP 스캐너는 해당 포트에 DNS 정보 요청 패킷을 보낸 후 응답을 받는다. 이 방법은 열린 포트를 식별하는 데 더 신뢰할 수 있지만, 잘 알려진 포트와 대응 프로토콜에 대해서만 사용할 수 있다는 한계가 있다.[4] DNS 쿼리를 포트 53으로 보내면 DNS 서버가 있는 경우 응답이 반환되는 것이 그 예시이다. 일부 도구(예: Nmap, Unionscan[5])는 일반적으로 20개 미만의 UDP 서비스에 대한 프로브를 가지고 있다. 한편, 서비스가 포트에서 수신 대기 중이더라도 특정 프로브 패킷에 응답하지 않도록 구성되어 있을 수 있다.

2. 4. 기타 스캔 방식

ACK 스캔은 방화벽 규칙을 파악하는 데 사용되며, 포트 개방 여부보다는 필터링 여부를 확인한다. 단순 패킷 필터는 ACK 비트 설정 패킷을 허용하지만, 상태 저장 방화벽은 그렇지 않을 수 있다.[6]

윈도우 스캔은 일부 오래된 시스템의 TCP 윈도우 크기 구현 취약점을 이용한다. 패킷의 윈도우 필드를 확인하여 포트 개방 여부를 판단하지만, 현재는 거의 사용되지 않는다.[7]

FIN 스캔은 방화벽을 우회하기 위해 FIN 패킷을 보낸다. 닫힌 포트는 RST 패킷으로 응답하고, 열린 포트는 무시한다.[8]

Xmas 스캔과 Null 스캔은 FIN 스캔과 유사하게 동작한다. Xmas 스캔은 FIN, URG, PUSH 플래그를, Null 스캔은 TCP 플래그를 설정하지 않은 패킷을 사용한다.[3]

프로토콜 스캔은 어떤 IP 프로토콜(TCP, UDP, GRE 등)이 활성화되어 있는지 확인한다.

프록시 스캔은 프록시 서버를 통해 스캔하여 출처를 숨긴다. 일부 FTP 서버를 사용할 수도 있다.

Idle 스캔은 좀비 호스트를 이용하여 IP 주소를 노출하지 않고 스캔하는 고급 기법이다.

ICMP 스캔은 ping 등의 ICMP 요청에 호스트가 응답하는지 확인한다.

3. 포트 스윕

포트 스윕은 시스템에서 동작하는 특정 프로그램을 탐지하기 위해 여러 호스트의 동일한 포트를 검사하는 것을 의미한다.[21] 특정 포트를 사용하는 프로그램에 취약점이 있다면, 그 포트가 열려 있는 서버를 찾아 공격할 수 있기 때문에 포트 스윕은 시스템의 취약점을 탐지하기 위해 사용되기도 한다. 예를 들어, 마이크로소프트 SQL 서버의 취약점을 이용하는 컴퓨터 웜은 TCP 1433 포트를 검사한다.[22]

4. 포트 스캔과 보안

포트 스캔은 네트워크 관리자가 보안 취약점을 점검하는 유용한 도구이지만, 공격자에게 악용될 소지도 있다. 공격자는 포트 스캔을 통해 열려 있는 포트와 실행 중인 서비스를 확인하고, 이를 바탕으로 취약점을 공격할 수 있다.[3] 예를 들어, Windows 95의 NetBIOS 세션 서비스가 사용하는 포트 139는 특정 문자열을 전송하면 OS가 프리즈되는 취약점이 있었는데, 공격자는 포트 139가 열려 있는 컴퓨터에 대해 이 공격을 시도하여 수정 프로그램이 적용되지 않은 컴퓨터를 정지시킬 수 있었다.

포트 스캔 자체는 공격 행위가 아니지만, 이를 통해 수집된 정보를 바탕으로 시스템 침입, 정보 유출, 서비스 거부 공격(DoS) 등 다양한 사이버 공격이 발생할 수 있다.[11] 취약점 스캐너와 함께 사용될 경우 공격 발생 확률이 더 높아진다.[12]

따라서 시스템 관리자는 주기적인 포트 스캔을 통해 불필요하게 열린 포트나 취약한 서비스를 탐지하고 적절한 보안 조치를 취해야 한다. 예를 들어, 웹 서버 관리자는 포트 80으로 통신이 가능한지 확인하고, 의도하지 않은 연결 가능한 포트가 있는지 점검해야 한다.

각 회사가 제공하는 소프트웨어 (인터넷 라디오 플레이어, 인스턴트 메신저 클라이언트 등)에 취약점이 존재하는 경우도 많다. 공격자는 이러한 알려진 취약점과 포트 번호를 조합한 데이터베이스를 참조하여 포트 스캔을 수행하고, 대상에 대해 유효할 수 있는 공격 수법을 좁혀서 시도할 수 있다.

5. 법적 문제

인터넷의 개방적인 특성 때문에 사이버 범죄자를 기소하기 위한 법적 경계를 정의하는 것은 어려운 문제였다. 포트 스캔 관련 사건은 이러한 어려움을 보여주는 예시이다. 이러한 사건은 드물지만, 대부분 법적 절차는 단순히 포트 스캔을 수행한 것보다는 침입 또는 무단 접근을 시도하려는 의도가 있었는지를 입증하는 것을 포함한다.[13]

포트 스캔은 크래킹에서 대상 시스템의 취약점을 파악하기 위한 기본적인 수법으로, 타인이 관리하는 컴퓨터에 대해 함부로 포트 스캔을 하는 것은 공격 준비 행위로 간주될 수 있다. 공격자는 포트 스캔을 통해 공격 가능한 포트를 찾는다. 예를 들어, Windows 95의 NetBIOS 세션 서비스가 사용하는 포트 139는 특정 문자열을 전송하면 OS가 프리즈되는 취약점이 있었는데, 공격자는 포트 139가 열려 있는 컴퓨터에 이 공격을 시도하여 수정 프로그램을 적용하지 않은 컴퓨터를 정지시킬 수 있었다.

OS 취약점 외에도, 각 회사에서 제공하는 소프트웨어(예: 인터넷 라디오 플레이어, 인스턴트 메신저 클라이언트)에 취약점이 존재하는 경우도 있다. 많은 공격자는 이러한 알려진 취약점과 포트 번호를 조합한 데이터베이스를 참조하여 포트 스캔을 수행하고, 대상에 대해 유효할 수 있는 공격 수법을 좁혀서 시도한다.

몇몇 국가에서는 포트 스캔과 관련된 법률을 제정하거나 개정하였다. (자세한 내용은 하위 문서를 참조)

5. 1. 미국

미국에서는 컴퓨터 사기 및 남용 방지법에 따라 컴퓨터 침입 시도를 처벌할 수 있다.[13] 1999년 12월, 스콧 몰튼은 FBI에 체포되어 조지아 컴퓨터 시스템 보호법과 미국 컴퓨터 사기 및 남용 방지법에 의거하여 컴퓨터 침입 시도로 기소되었다.[13] 당시 그의 IT 서비스 회사는 조지아주 체로키 카운티와 911 센터 보안 유지 및 업그레이드 계약을 맺고 있었다. 그는 보안 점검을 위해 체로키 카운티 서버에 여러 차례 포트 스캔을 수행했고, 결국 다른 IT 회사가 관리하는 웹 서버를 포트 스캔하여 다툼이 벌어져 재판으로 이어졌다. 2000년, 토마스 쓰래시 판사는 ''몰튼 대 VC3''(조지아 북부 지방 법원 2000) 판결에서 네트워크의 무결성과 가용성을 손상시키는 피해가 없다고 판결하여 그를 무죄로 판결했다.[13]

5. 2. 이스라엘

2003년 6월, 이스라엘인 아비 미즈라히는 이스라엘 당국으로부터 컴퓨터 자료에 대한 무단 접근을 시도한 혐의로 기소되었다. 그는 모사드 웹사이트를 포트 스캔했다.[13] 2004년 2월 29일, 법원은 이러한 종류의 행위가 긍정적인 방식으로 수행될 때 억제되어서는 안 된다고 판결하여 모든 혐의에 대해 무죄를 선고했다.[13]

5. 3. 핀란드

1998년, 17세의 핀란드인이 폐쇄된 네트워크에 접근하기 위해 은행 네트워크를 포트 스캔했지만 실패했다.[14] 2003년 4월 9일, 핀란드 최고 법원은 그에게 컴퓨터 침입 시도 혐의로 유죄 판결을 내리고, 은행 측의 법의학적 분석 비용으로 12000USD를 지불하라는 명령을 내렸다.[14]

5. 4. 영국

영국 의회는 2006년에 1990년 컴퓨터 오용 방지법을 개정하여 "제1조 또는 제3조 [CMA]에 따른 범죄 과정에서 또는 그와 관련하여 사용하기 위해 설계되었거나 개조되었음을 알고 있는 모든 품목을 제작, 개조, 공급 또는 공급을 제안하는" 사람은 범죄를 저지른 것으로 간주하도록 했다.[15] 그럼에도 불구하고, 이 개정안의 효력 범위는 모호하며, 보안 전문가들로부터 널리 비판을 받고 있다.[16]

5. 5. 독일

독일은 형법(Strafgesetzbuch) § 202a, b, c와 유사한 법률을 가지고 있으며, 유럽 연합 차원에서도 유사한 법안을 추진하고 있다.[17]

참조

[1] 간행물 Internet Security Glossary IETF 2007-08
[2] 웹사이트 PRB: Unsecured SQL Server with Blank (NULL) SA Password Leaves Vulnerability to a Worm http://support.micro[...]
[3] 서적 Hacking: The Art of Exploitation No Starch Press
[4] 서적 Secrets of Network Cartography: A Comprehensive Guide to Nmap http://www.networkup[...] 2011-12-05
[5] 서적 Port Scan Commands https://portscanner.[...] 2023-02-10
[6] 웹사이트 Port Scanning Techniques http://nmap.org/man/[...] 2009-05-07
[7] 서적 Secrets of Network Cartography: A Comprehensive Guide to Nmap http://www.networkup[...] 2011-12-05
[8] 웹사이트 Port Scanning without the SYN flag http://www.phrack.co[...] Phrack 1996-11-08
[9] 웹사이트 Comcast Acceptable Use Policy http://www.comcast.n[...] Comcast 2009-01-01
[10] 웹사이트 BigPond Customer Terms http://www.telstra.c[...] Telstra 2008-11-06
[11] 웹사이트 The Ethics and Legality of Port Scanning http://www.sans.org/[...] SANS Institute 2001-10-08
[12] 웹사이트 Quantifying Computer Security http://www.isr.umd.e[...] University of Maryland
[13] 웹사이트 Verdict in the case Avi Mizrahi vs. Israeli Police Department of Prosecution http://www.law.co.il[...] 2004-02-29
[14] 웹사이트 First ruling by the Supreme Court of Finland on attempted break-in http://insecure.org/[...]
[15] 웹사이트 Police and Justice Bill - Bill 119 https://publications[...] UK Parliament 2006-01-25
[16] 웹사이트 UK gov sets rules for hacker tool ban https://www.theregis[...] The Register 2008-01-02
[17] 웹사이트 3096th Council meeting Press Release http://www.consilium[...] Council of the European Union 2011-06-10
[18] 웹사이트 Scott Moulton and Network Installation Computer Services, Inc. v. VC3 http://www.internetl[...] 2021-04-29
[19] 웹사이트 Port scans legal, judge says http://www.securityf[...] SecurityFocus 2000-12-18
[20] 문서 RFC 2828
[21] 웹인용 port sweep: 포트 스윕 - 시만텍 보안 연구소 - 용어집 http://kr.norton.com[...] 2011-09-02
[22] 웹인용 PRB: 빈(NULL) SA 암호를 사용하는 보안되지 않은 SQL Server는 바이러스에 취약하다 http://support.micro[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com