포트 스캔이란 무엇인가요?

포트 스캐너는 호스트 또는 서버를 조사하여 열려 있는 포트를 식별하기 위해 만들어진 애플리케이션입니다. 악의적인 공격자는 포트 스캐너를 사용하여 호스트에서 실행 중인 네트워크 서비스를 찾아 취약점을 악용할 수 있습니다. 또한 보안 분석가가 네트워크 보안 정책을 확인하는 데 사용할 수도 있습니다.

 

포트 스캔의 작동 방식

포트 스캔을 설명하는 그래픽

네트워크 또는 서버에서 포트 스캔을 실행하면 어떤 포트가 열려 있고 수신(정보 수신) 중인지 알 수 있을 뿐만 아니라 발신자와 대상 사이에 방화벽과같은 보안 장치가 존재하는지도 알 수 있습니다. 이 기술을 핑거프린팅이라고 합니다.

네트워크 보안과 시스템 방화벽의 강도를 테스트하는 데도 유용합니다. 이러한 기능으로 인해 컴퓨터에 침입할 수 있는 취약점을 찾는 공격자들이 많이 사용하는 정찰 도구이기도 합니다.

포트에 따라 제공되는 서비스가 다릅니다. 0에서 65535까지 번호가 매겨져 있지만 특정 범위가 더 자주 사용됩니다. 포트 0~1023은 "잘 알려진 포트" 또는 표준 포트로 식별되며 IANA(인터넷 할당 번호 기관)에서 서비스를 할당받았습니다. 가장 눈에 띄는 포트와 그에 할당된 서비스는 다음과 같습니다:

  • 포트 20(UDP) - 데이터 전송을 위한 파일 전송 프로토콜(FTP)
  • 포트 22(TCP) - 보안 로그인, FTP 및 포트 포워딩을 위한 보안 셸(SSH) 프로토콜
  • 포트 23(TCP) - 암호화되지 않은 텍스트 전송을 위한 텔넷 프로토콜
  • 포트 53(UDP) - DNS(도메인 이름 시스템)는 인터넷에 있는 모든 컴퓨터의 이름을 IP 주소로 변환합니다.
  • 포트 80(TCP) - 월드와이드웹 HTTP

1023 이후 포트에서도 표준 서비스가 제공되며, 포트가 열려 있으면 일부 광범위한 트로이 목마 및 바이러스로 인해 감염된 시스템을 나타내는 포트가 있습니다.

 

포트 스캔 유형

6가지 포트 스캔 유형을 나타내는 그래픽

포트 스캔은 신중하게 준비된 패킷을 각 대상 포트 번호로 전송합니다. 포트 스캔 소프트웨어가 수행할 수 있는 기본 기술은 다음과 같습니다:

  • 바닐라 - 가장 기본적인 스캔으로, 65,536개의 모든 포트에 한 번에 하나씩 연결을 시도합니다. 바닐라 스캔은 전체 연결 스캔으로, SYN 플래그(연결 요청)를 보내고 SYN-ACK(연결 승인) 응답을 받으면 ACK 플래그를 다시 보내는 것을 의미합니다. 이 SYN, SYN-ACK, ACK 교환은 TCP 핸드셰이크로 구성됩니다. 전체 연결 검사는 정확하지만 전체 연결이 항상 방화벽에 기록되기 때문에 매우 쉽게 탐지할 수 있습니다.
  • SYN 스캔 - 반개방 스캔이라고도 하며, SYN만 전송하고 대상의 SYN-ACK 응답을 기다립니다. 응답이 수신되면 스캐너가 응답하지 않습니다. TCP 연결이 완료되지 않았으므로 시스템에서는 상호 작용을 기록하지 않지만 발신자는 포트가 열려 있는지 여부를 알 수 있습니다.
  • 크리스마스 및 FIN 스캔 - 대상 시스템에서 로깅하지 않고 정보를 수집하는 데 사용되는 스캔 제품군의 예입니다. FIN 스캔에서는 요청하지 않은 FIN 플래그(일반적으로 설정된 세션을 종료하는 데 사용됨)가 포트로 전송됩니다. 이 임의 플래그에 대한 시스템의 응답을 통해 포트의 상태나 방화벽에 대한 인사이트를 확인할 수 있습니다. 예를 들어, 요청하지 않은 FIN 패킷을 수신한 닫힌 포트는 RST(순간 중단) 패킷으로 응답하지만 열린 포트는 이를 무시합니다. 크리스마스 스캔은 단순히 모든 플래그 세트를 전송하여 무의미한 상호 작용을 생성합니다. 시스템의 응답을 해석하여 시스템의 포트와 방화벽을 더 잘 이해할 수 있습니다.
  • FTP 바운스 스캔 - FTP 서버를 통해 패킷을 바운스하여 발신자의 위치를 위장할 수 있습니다. 또한 발신자가 탐지되지 않도록 설계되었습니다.
  • 스윕 스캔 - 여러 컴퓨터에서 동일한 포트를 핑하여 네트워크에서 어떤 컴퓨터가 활성화되어 있는지 식별합니다. 이는 포트의 상태에 대한 정보를 알려주는 것이 아니라 발신자에게 네트워크의 어떤 시스템이 활성화되어 있는지를 알려줍니다. 따라서 예비 스캔으로 사용할 수 있습니다.

 

포트 스캔 결과

포트 스캐너는 포트의 상태를 묻는 UDP 또는 TCP 네트워크 패킷을 보냅니다. 결과는 네트워크 또는 서버 상태(개방, 폐쇄, 필터링 중 하나)를 표시합니다.

1. 열기 - 수락됨

열린 포트는 다음을 나타냅니다:

  • 대상 네트워크/서비스가 데이터그램/연결을 수락하고 있습니다.
  • 대상 네트워크/서비스가 수신 중임을 나타내는 TCP SYN 패킷으로 응답했습니다.
  • 포트 스캔에 사용되는 서비스(일반적으로 UDP 또는 TCP)가 사용 중입니다.

악의적인 공격자에게는 열린 포트를 찾는 것이 미션입니다. 이로 인해 보안 담당자는 방화벽으로 열린 포트를 차단하는 동시에 권한이 있는 사용자의 액세스를 차단해야 하는 과제를 안고 있습니다.

2. 닫힘 - 듣지 않음

닫힌 포트는 다음을 나타냅니다:

  • 대상 네트워크/서버가 요청을 수신했지만 수신 중인 서비스가 없습니다.

포트가 닫혀 있어도 여전히 액세스할 수 있으므로 호스트가 IP 주소에 있는지 확인하는 데 유용합니다. 보안 담당자는 폐쇄된 포트를 지속적으로 모니터링하고 방화벽으로 차단(필터링된 포트로 만들기)하는 것을 고려해야 합니다.

3. 필터링됨 - 삭제/차단됨

필터링된 포트는 다음을 나타냅니다:

  • 요청 패킷이 전송되었습니다. 호스트가 응답하지 않고 듣지 않습니다.
  • 요청 패킷이 방화벽이나 침입 방지 시스템에 의해 차단되었을 가능성이 높습니다.

패킷이 표적에 도달하지 않는 한, 악의적인 공격자는 추가적인 인사이트를 발견할 방법이 없습니다. 일반적으로 필터링된 포트로 전송된 패킷은 응답을 받지 못하지만, 응답을 받으면 일반적으로 "통신 금지됨" 또는 "대상에 연결할 수 없음"이라는 오류 메시지가 표시됩니다.

 

포트 스캐닝을 공격 방법으로 사용하는 악의적 행위자

포트 스캐닝 공격을 설명하는 다이어그램

SANS Institute에 따르면 포트 스캐닝은 공격자들이 취약한 서버를 찾을 때 가장 많이 사용하는 수법 중 하나입니다. 네트워크를 타겟팅할 때는 일반적으로 포트 스캔이 첫 번째 단계입니다. 포트 스캔은 다음과 같은 네트워크 환경에 대한 유용한 정보를 제공합니다:

  • 방화벽 등 존재하는 방어 수단
  • 대상 시스템에 대한 세부 정보
  • 온라인 상태인 머신
  • 실행 중인 애플리케이션
  • 취약한 네트워크 또는 서버가 있을 수 있는 사람

이러한 유형의 정보는 소프트웨어의 취약점을 찾는 악의적인 공격자에게 매우 유용합니다. 조직에서 특정 DNS 또는 웹 서버를 실행하고 있는지 파악할 수 있으면 이러한 취약점을 훨씬 쉽게 찾을 수 있습니다. 악의적인 공격자가 포트 스캔에 디코이 트래픽을 사용하여 자신의 네트워크 주소와 위치를 완전히 숨길 수 있는 몇 가지 TCP 프로토콜 기법이 있습니다.

발신자가 수신 시스템의 로그에 탐지되지 않도록 개발된 스캔은 스텔스 스캔으로 알려져 있으며 공격자들이 특히 관심을 갖는 대상입니다. 포트 스캔은 네트워크를 핑거프린팅하고 침투 테스터가 네트워크 보안의 강도를 평가하는 데 유용한 도구입니다.

 

포트 스캔 FAQ

포트 스캔은 네트워크 또는 서버에서 열려 있는 포트를 식별하는 데 중요한 역할을 하며, 잠재적인 보안 취약점을 알려줄 수 있습니다. 보안 전문가는 포트 스캔을 활용하여 불필요하게 열려 있는 포트를 찾아 보안을 유지하여 무단 액세스의 위험을 줄입니다. 반대로 악의적인 공격자는 포트 스캐닝 기술을 사용하여 네트워크 내의 취약점을 찾아내어 이를 악용하여 침입하거나 민감한 정보를 훔치거나 기타 유해한 작업을 수행할 수 있습니다.

포트 스캔을 수행하는 방법에는 여러 가지가 있습니다:

  • SYN 스캔(반개방 스캔): TCP 핸드셰이크를 완료하지 않고 SYN 패킷을 전송하고 SYN-ACK 응답을 기다리므로 탐지하기가 더 어렵습니다.
  • 핀 스캔: 기술은 닫힌 포트에 FIN 패킷을 전송하여 리셋(RST) 응답을 트리거합니다. 일반적으로 방화벽 탐지를 우회하는 데 사용됩니다.
  • 크리스마스 스캔: 모든 플래그가 설정된 패킷을 "불이 켜진" 크리스마스 트리처럼 전송하여 방화벽의 존재 여부와 포트의 상태를 식별하는 데 도움을 줍니다.
  • UDP 스캔: 핸드셰이크가 필요하지 않은 프로토콜이므로 UDP 패킷을 전송하고 응답을 기다리는 방식으로 열려 있는 UDP 포트를 확인합니다.

포트 스캔은 종종 다양한 유형의 사이버 공격의 전초전 역할을 합니다. 예를 들어 다음과 같은 용도로 활용할 수 있습니다:

  • 무단 침입에 악용될 수 있는 열린 포트를 탐지합니다.
  • 서비스 거부(DoS) 공격이나 데이터 유출과 같은 보다 구체적인 공격을 시작하기 위한 초기 단계로 작동합니다.
  • 네트워크 취약점을 노출하여 공격자에게 멀웨어를 주입하거나 악성 코드를 실행하는 데 필요한 중요 정보를 제공합니다.
포트 스캐닝으로부터 보호하기 위해 조직은 방화벽을 사용하여 표시되는 포트를 제어하고 의심스러운 트래픽을 차단할 수 있습니다. 또한 침입 탐지 시스템(IDS)을 구현하여 포트 스캔의 징후를 모니터링할 수 있습니다. 네트워크 세분화를 적용하여 네트워크를 더 작고 격리된 세그먼트로 나누어 노출을 제한하고 네트워크 트래픽 및 포트 상태를 정기적으로 모니터링하여 무단 스캔 시도를 신속하게 식별하고 대응하세요.
포트 스캔의 적법성은 관할 지역과 상황에 따라 다릅니다. 일반적으로 포트 스캔은 무단 액세스를 시도하는 것으로 볼 수 있으므로 허가 없이 수행하면 불법으로 간주됩니다. 그러나 보안 전문가가 동의를 얻어 수행하는 경우(예: 침투 테스트 또는 취약성 평가) 네트워크 보안을 강화하기 위한 합법적이고 가치 있는 도구입니다.