공부/정보보안기사 실기

[Section 04] 네트워크 기본 학습 (199~ 221pg)

남쪽마을밤송이 2022. 4. 18. 23:17

 [11 포트 스캐닝] 

 (1) 개요 

  • 포트 스캐닝은 공격자가 침입 전 대상 호스트에 어떤 포트(서비스)가 활성화되어 있는지 확인하는 기법으로 침입 전 취약점을 분석하기 위한 사전 작업 중 하나이다.
  • 포트 스캐닝을 통해 대상 호스트의 동작 여부와 제공하는 서비스 등을 확인할 수 있다. 일반적으로 포트 스캐닝을 수행하기 위한 포트 스캐너로 nmap을 많이 사용한다.

 (2) nmap 포트 스캐너 사용법 

 (3) TCP Connect(Open) 스캔 

  • 개요
    • 일반 사용자 권한으로 TCP 포트 오픈 여부를 확인하기 위해 connect 시스템 호출을 이용하는 방식으로 스캔 대상 포트별로 정상적인 TCP 연결 설정을 수행하여 스캔하는 방식이다.
    • TCP 등 프로토콜 패킷 자체를 사용자가 직접 조작하여 생성하기 위해서는 관리자 권한이 필요하다. TCP SYN 스캔 등 대부분의 스캔 방식들이 관리자 권한으로 패킷을 직접 조작해서 스캔하는 방식이며 이러한 관리자 권한이 없을 경우에는 일반 사용자 권한으로 사용할 수 있는 시스템 호출을 이용하느 TCP Connect 스캔을 이용한다.
    • 포트 스캔 과정에서 connect 시스템 호출을 통해 TCP 연결 설정 과정을 완전하게 수행하여 Target 호스트의 포트에 직접 연결되기 때문에 Open 스캔이라고도 하며 시스템 로그에 스캔한 흔적이 남는 특성이 있다.
  • 동작방식
    • OPEN/CLOSED 상태
      • 먼저 Target 호스트의 대상 포트로 SYN 패킷을 전송한다. 전송 후 포트 오픈 여부에 따라 다음과 같은 응답 패킷을 수신한다.
        • 열린 상태 : SYN+ACK 응답을 수신한 후 ACK 패킷을 전송하여 TCP 연결을 완료한다.
        • 닫힌 상태 : RST+ACK 응답을 수신한다.
      • 대상 포트가 열린 상태에서 연결 설정이 완료되고 (3way handshake 과정) 나면 포트 오픈 여부를 확인했기 때문에 연결을 즉시 중단하기 위해 RST+ACK 패킷을 전송한다.
      • TCP 연결 설정이 이루어지기 때문에 대상 호스트의 시스템 로그에 스캔을 시도한 IP 주소가 남는 특징이 있다.
    • Filtered 상태
      • Target 호스트의 포트(서비스)가 방화벽에 의해 필터링되고 있다면 방화벽 차단 정책에 따라 응답이 없거나 ICMP 에러 메시지 응답을 받을 수 있다. 방화벽 필터링 정책은 보안상의 이유로 응답을 하지 않도록 설정하는 것이 일반적이다.
        • iptables 방화벽의 경우 DROP 차단 정책을 사용하면 해당 패킷을 폐기한 후 아무런 응답을 하지 않고 REJECT 차단 정책을 사용하면 해당 패킷을 폐기한 후 설정된 ICMP 에러 메시지를 응답한다.

 (4) TCP Syn(Half-Open) 스캔 

개요

  • 관리자 권한으로 TCP 패킷 자체를 직접 조작하여 TCP 포트 오픈 여부를 판단하는 스캔 방식이다.
  • 포트 스캔 과정에서 TCP 패킷 헤더의 제어비를 조작, TCP 연결 설정과정을 완전하게 수행하지 않기 때문에 Half-Open 스캔이라고도 한다.
  • 스텔스 스캔 방식 : TCP 세션이 완전히 성립되지 않은 상태에서 대상 시스템의 포트 활성화(오픈) 여부를 알아내는 스캔 방식으로 TCP 연결 설정이 완전히 이루어지지 않기 때문에 스캔 대상 시스템에 로그가 남지 않아 공격자는 자신의 IP를 노출시키지 않으면서 스캔할 수 있는데 이렇게 흔적을 남기지 않는 방식이 스텔스 스캔
    • 대표적인 스탤스 스캔 방식 : TCP SYN Scan, TCP FIN Scan, TCP NULL Scan, TCP Xmas Scan

동작방식

  • OPEN/CLOSED 상태
    • 먼저 target 호스트의 대상 포트로 SYN 패킷을 전송한다. 전송 후 포트 오픈 여부에 따라 다음과 같은 응답 패킷을 수신한다.
      • 열린 상태 : SYN+ACK 응답을 수신한다.
      • 닫힌 상태 : RST+ACK 응답을 수신한다.
    • 대상 포트가 열린 상태이면 Target 호스트로부터 SYN+ACK 응답이 오고 해당 응답만으로도 포트가 열린 상태임을 알 수 있기 때문에 연결을 완료하지 않고 패킷 조작을 통해 즉시 중단하기 위한 RST 패킷을 전송한다.
  • Filtered 상태
    • TCP Connect 스캔과 동일하게 Target 호스트의 포트(서비스)가 방화벽에 의해 필터링되고 있다면 차단 정책에 따라 응답이 없거나 ICMP 에러 메시지 응답을 받을 수 있다.

 (5) TCP FIN/NULL/Xmas 스캔 

개요

  • 관리자 권한으로 TCP 패킷 자체를 직접 조작하여 TCP 포트 오픈 여부를 판단하는 스캔 방식이다.
  • TCP 세션(연결)을 생성하지 않고 스캔하는 스텔스 스캔 방식으로 TCP 패킷 헤더의 제어비트를 비정상적으로 설정해서 스캔한다. 스캔 방식에 따른 제어비트 설정 방식은 다음과 같다.
    • TCP FIN 스캔 : FIN 제어비트만 설정하여 스캔하는 방식으로 TCP 표준에서 연결 종료 패킷은 FIN+ACK 제어비트를 사용한다.
    • TCP NULL 스캔 : 제어비트를 설정하지 않고 스캔하는 방식으로 TCP 표준에서 사용하지 않는 설정이다.
    • TCP Xmas 스캔 : URG, PSH, FIN 제어비트를 설정하여 스캔하는 방식으로 TCP 표준에서 사용하지 않는 설정이다.
  • TCP 표준의 다음 특성을 이용하여 포트 오픈 여부를 확인한다.
    • 닫힌 포트로 RST 이외의 패킷을 수신한 경우 RST 패킷으로 응답한다.
    • 열린 포트로 SYN, ACK 또는 RST 이외의 패킷을 수신한 경우 이를 폐기하고 응답하지 않는다.
    • 따라서 위와 같은 TCP 표준 동작방식을 준수하는 시스템이라면 SYN, ACK 또는 RST 이외의 패킷을 수신한 경우 닫힌 포트에서는 RST 패킷으로 응답하고 열린 포트에서는 응답하지 않는다.

동작방식

  • TCP FIN 스캔 : OPEN/CLOSED 상태
    • 먼저 Target 호스트의 대상 포트로 FIN 제어비트만 설정한 패킷을 전송한다. 전송 후 포트 오픈 여부에 다라 다음과 같은 응답 패킷을 수신한다.
      • 열린 상태 : 응답없음
      • 닫힌 상태 : RST+ACK 응답 수신
      • 포트가 open|filtered 상태로 보이는 것은 응답이 없는 경우가 해당 포트가 열린 상태뿐만이 아니라 방화벽에 의해 차단된 경우일수도 있기 때문이다.
  • TCP NULL 스캔 : OPEN/CLOSED 상태
    • 먼저 Target 호스트의 대상 포트로 제어비트를 아무것도 설정하지 않은 패킷을 전송한다. 전송 후 포트 오픈 여부에 따라 다음과 같은 응답 패킷을 수신한다.
      • 열린 상태 : 응답 없음
      • 닫힌 상태 : RST+ACK 응답 수신
  • TCP XMAS 스캔 : OPEN/CLOSED 상태
    • 먼저 Target 호스트의 대상 포트로 URG, PSH, FIN 제어비트를 설정한 패킷을 전송한다. Xmas라고 이름 붙인 이유는 크리스마스 트리처럼 제어비트를 반짝거리게 설정했다는 의미이다. 전송 후 포트 오픈 여부에 따라 다음과 같은 응답 패킷을 수신한다..
      • 열린 상태 : 응답 없음
      • 닫힌 상태 : RST+ACK 응답 수신
  • TCP FIN/NULL/Xmas 스캔 : FILTERED 상태
    • TCP Connect 스캔과 동일하게 Target 호스트의 포트(서비스)가 방화벽에 의해 필터링(차단)되고 있다면 방화벽 차단 정책에 따라 응답이 없거나 ICMP 에러 메시지 응답을 받을 수 있다.

 (6) TCP ACK 스캔 

개요

  • Target 호스트의 포트 오픈 여부를 판단하는 것이 아니라 방화벽 룰셋을 알아내기 위한 스캔방식이다.
  • Target 호스트의 대상 포트로 ACK 제어비트만 설정한 패킷을 전송하면 방화벽 룰셋에 따라 다음과 같은 응답을 확인할 수 있다.
    • 방화벽에 의해 차단된 상태 : 방화벽으로부터 응답이 없거나 ICMP 에러 메시지 응답을 수신한다.
    • 방화벽에 의해 허용된 상태 : Target 호스트로부터 포트 오픈 여부와는 무관하게 RST 응답을 수신한다. TCP 표준에 따르면 열린 포트에 ACK를 수신한 경우 RST로 응답하고 닫힌 포트에 ACK를 수신한 경우에도 RST로 응답한다.
  • 방화벽에서 허용된 경우, target 호스트의 포트 오픈 여부에 상관없이 RST 응답을 수신하기 때문에 TCP ACK 스캔은 포트 오픈 여부를 판단할 수 없다.

동작방식

  • 먼저 Target 호스트의 대상 포트로 ACK 제어비트만 설정한 패킷을 전송한다. 전송 후 방화벽 룰셋의 차단/허용 여부에 따라 다음과 같은 응답 패킷을 수신한다.
    • 차단 상태 : 방화벽으로부터 응답이 없거나 ICMP 에러 메시지 수신
    • 허용 상태 : Target 호스트로부터 RST 응답 수신

 (7) UDP 스캔 

개요

  • Target 호스트의 UDP 포트 오픈 여부를 판단하는 스캔방식으로 닫힌 UDP 포트로 패킷 수신시 ICMP 에러 메시지로 응답하는 특성을 이용한다.

동작방식

  • OPEN/CLOSED 상태
    • 먼저 Target 호스트의 대상 포트로 UDP 패킷을 전송한다. 전송 후 포트 오픈 여부에 따라 다음과 같은 응답 패킷을 확인할 수 있다.
      • 열린 상태 : UDP 응답을 수신하거나 응답 없음, 만약 포트스캔 UDP 요청 패킷이 해당 서비스에 적절한 요청이 아닐 경우 응답 없음이 발생할 수 있다.
      • 닫힌 상태 : ICMP 에러 메시지 응답 수신
  • FILTERED 상태
    • TCP Connect 스캔과 동일하게 Target 호스트의 포트(서비스)가 방화벽에 의해 필터링되고 있다면 방화벽 차단 정책에 따라 응답이 없거나 ICMP 에러 메시지 응답을 받을 수 있다.

 (8) Decoy 스캔 

개요

  • Decoy 스캔은 다양한 포트 스캔을 수행할 때 스캔을 당하는 Target 호스트에서 스캐너 주소를 식별하기 어렵도록 실제 스캐너 주소 외에 다양한 위조된 주소로 스캔하는 방식을 말한다.
  • 다양한 IP로 스캐너 주소를 위조하여 Target 호스트의 관리자가 스캔을 누가 하는지 알아채기 어렵도록 한다.

동작방식

  • -D 옵션을 통해서 공각자 IP외에 임의로 부여한 위조된 IP로 스캔을 수행하는 패킷들을 확인할 수 있다.

 (9) 기타 옵션 

출력 옵션

  • -oN : 스캔 결과 일반 파일 형식으로 출력
  • -oX : 스캔 결과 XML 파일 형식으로 출력
  • -oG : 스캔 결과 Grepable 파일 형식으로 출력

기타 옵션

  • -O : 대상 호스트의 운영체제 정보를 출력

 [12 서비스 거부 (DoS : Denial of Service) 공격] 

 (1) 개요 

  • 서비스 거부 공격은 공격 대상 시스템이 정상적인 서비스를 할 수 없도록 서비스를 마비시키는 형태의 공격을 말한다. 따라서 서비스 거부 공격은 공격 대상 시스템의 서비스 가용성을 떨어뜨리는 것이 공격의 목적이다.
  • 서비스 거부 공격은 크게 다음 세 가지 유형으로 구분할 수 있다.
    • 파괴 공격 : 디스크, 데이터, 시스템 파괴
    • 시스템 자원 소진 공격 : CPU, 메모리, 디스크 등의 자원에 과도한 부하를 발생시키는 유형
    • 네트워크 자원 소진 공격 : 과도한 트래픽으로 네트워크 대역폭을 소진시키는 유형
  • 서비스 거부 Vs 분산 서비스 거부 공격의 차이점
    • 서비스 거부 공격 : 공격자가 단일 컴퓨터를 이용하여 공격하는 형태
    • 분산 서비스 거부 공격 : 공격자가 분산된 다수의 컴퓨터(좀비 PC) 또는 장치(좀비 Device)들을 이용하여 공격하는 형태

 (2) Ping Of Death Attack 

  • 개요
    • ping 명령을 통해 ICMP 패킷을 정상적인 크기보다 아주 크게 만들어 전송하면 MTU에 의해 다수의 IP 단편화가 발생하게 된다.
      • MTU는 물리적인 네트워크 프로토콜 프레임의 데이터부의 최대크기를 의미한다.
      • 이더넷의 경우 1500bytes, 즉 IP 패킷의 최대 크기가 1500bytes이기 때문에 IP 헤더부를 제외하면 ICMP 패킷은 최대 1480bytes의 크기로 생성된다.
    • 수신측에서는 단편화된 패킷을 재조합하는 과정에서 많은 부하가 발생하거나, 재조합 버퍼의 오버플로우가 발생하여 정상적인 서비스를 하지 못하도록 한다.
  • 대응책
    • Ping Of Death 공격의 핵심은 Ping 패킷의 데이터 크기를 매우 크게 하여 패킷을 몇 개만 보내도 수십 개로 분할하여 목적지로 송신되는 것이다. 보통의 ICMP 패킷은 불할하지 않으므로 패킷 중 분할이 일어난 패킷을 공격으로 의심하여 탐지하는 방식을 사용한다.
    • 현재 대부분의 시스템은 Ping Of Death 공격을 받을 때 반복적으로 들어오는 일정 수 이상의 ICMP 패킷을 무시하게 설정되어 있다. 만약 여전히 취약점을 가지고 있다면 패치가 필요하다.

 (3) Land Attack 

  • 개요
    • land는 착률하다, 나쁜 상태에 빠지게 한다는 의미가 있다. 따라서 해당 시스템을 나쁜 상태에 빠지게 하는 도스 공격기법이라 할 수 있다.
    • 공격자가 출발지와 목적지 IP가 같은 패킷을 만들어 공격 대상 시스템에게 보냄으로써 수신자가 자기 자신에게 응답을 보내 무한 루프 상태에 빠지도록 하여 시스템 자원을 소모시키는 형태의 도스 공격을 말한다.
  • 대응책
    • 현재 대부분의 운영체제는 Land Attack에 대한 보안패치가 적용되어 있다. 패치 적용 시 출발지와 목적지 IP 주소가 동일한 패킷의 경우 모두 폐기(Drop) 처리 한다.
    • 침입차단시스템, 라우터 등 패킷 필터링 장비를 통해 차단하도록 설정한다.

 (4) Smurf Attack 

  • 개요
    • 스머프 공격은 출발지 IP를 희생자 IP로 위조한 후 증폭 네트워크로 ICMP Echo Request를 브로드캐스트함으로써, 다수의 ICMP Echo Reply가 희생자에게 전달되어 서비스 거부를 유발시키는 공격기법이다.
    • Directed Broadcast
      • IP 주소의 호스트 ID 비트를 모두 1로 설정하여 브로드캐스트하는 방식을 Directed Broadcast라고 한다.
      • 원격지 네트워크에  브로드캐스트를 해야 할 경우에 원격지 주소의 호스트 ID 비트를 모두 1로 설정하여 전송을 하게 된다. 이 때 원격지 라우터의 Directed Broadcast가 활성화되어야 가능한데 일반적으로 보안상의 문제로 허용하지 않는다.
    • Amplifier(Bounce) Network(증폭 네트워크)
      • ICMP Echo Request 브로드캐스트 메시지를 받아서 희생자에게 다수의/증폭된 ICMP Echo Reply를 전송하는 네트워크를 말한다.
  • 대응책
    • 스머프 공격의 특성상 공격이 시작되면 단시간에 다수의 ICMP Echo Reply 패킷을 희생자에게 전송한다. 따라서 동일한 ICMP Echo Request 패킷이 다량으로 발생한다면 해당 패킷들을 침입차단시스템을 통해 모두 차단한다.
    • 증폭 네트워크로 사용되는 것을 막기 위해 다른 네트워크로부터 자신의 네트워크로 들어오는 Directed Broadcast 패킷을 허용하지 않도록 라우터 설정을 한다.
    • (희생자는) 브로드캐스트 주소로 전송된 ICMP Echo Request 메시지에 대해 응답하지 않도록 시스템 설정을 한다.

 (5) Teardrop Attack 

  • 개요
    • IP 패킷의 재조합 과정에서 조작된 단편의 오프셋 정보로 인해 수신시스템에 오류나 부하가 발생하도록 만드는 도스 공격을 말한다.
    • 공격자는 IP fragment offset값을 서로 중첩되도록 조작하여 전송하고 이를 수신한 시스템이 재조합하는 과정에서 오류나 부하가 발생, 시스템의 기능을 마비시키는 공격 방식이다.
    • 패킷이 fragment 관련 헤더 값을 조작하는 유사한 공격으로 Bonk, Boink가 있다.
  • 대응책
    • 운영체제의 보안패치를 모두 적용하여 OS의 취약점을 해소한다.

 (6) IP 단편화의 취약점을 이용한 우회 공격 

  • 개요
    • IP 단편화의 취약점을 이용하여 패킷 필터링 장비(방화벽, 침입탐지시스템 등)을 우회하기 위한 대표적인 공격 기법에는 "Tiny Fragement" 공격과 "Fragment Overlap" 공격이 있다.
    • Teardrop 공격처럼 IP 단편의 오프셋을 조작하는 공격이지만 DoS 공격이 아닌 침입차단시스템 등을 우회하여 허용하지 않는 공격 대상 시스템의 서비스에 접근하기 위한 공격이다.
  • Tiny Fragment(작은 단편) 공격
    • TCP/UDP 헤더가 2개의 IP 단편에 나누어질 정도로 최초의 단편을 아주 작게 만들어서 패킷 필터링 장비를 우회하는 공격 기법을 말한다.
    • 공격 원리
      • 공격자는 TCP/UDP 헤더가 2개의 IP 단편에 나누어질 정도로 작게 쪼개서 첫 번재 단편에는 목적지 포트가 포함되지 않고 두 번째 단펴에 포함되도록 한다.
      • 패킷 필터링 장비는 첫 번째 IP 단편에 필터링할 정보(목적지 포트 정보)가 없어 통과시키고 이후 두 번째 단편은 첫 번째 단편이 허용되었으므로 통과시킨다.
      • 목적지 서버에서 단편들이 재조합되어 공격자가 원하는 목적지 포트로 연결된다.
  • Fragment Overlap(단편 중첩) 공격
    • IP 단편의 오프셋을 조작하여 첫 번째 단편의 일부분을 두 번째 단편이 덮어쓰도록 함으로써 패킷 필터링 장비를 우회하는 공격 기법을 말한다.
    • 공격 원리
      • 공격자는 두 개의 IP 단편을 생성한 후 첫 번째 단편에는 패킷 필터링 장비에서 허용하는 목적지 포트가 포함되도록 하고 두 번째 단편에는 공격자가 연결하기를 원하는 목적지 포트가 포함되도록 한다.
      • 두 번째 단편의 목적지 포트가 첫 번째 단편의 목적지 포트를 덮어쓸 수 있도록 두 번째 단편의 오프셋을 조작한다.
      • 패킷 필터링 장비는 첫 번째 IP 단편에 있는 허용하는 목적지 포트 정보를 확인한 후 통과시키고 이후 두 번째 단편은 첫 번째 단편이 허용되었으므로 통과시킨다.
      • 목적지 서버에서 단편들이 재조합되어 공격자가 원하는 목적지 포트로 연결된다.

 

  •  대응책
    • 단편화된 패킷들을 재조합하여 IP 단편화를 이용한 우회 공격의 탐지가 가능한 패킷 필터링 장비(방화벽,  침입탐지시스템 등)을 적용한다.