본문 바로가기

AI/정보보안

[정보보안] 네트워크 보안(2)

728x90
반응형

스푸핑(Spoofing)

다른 사람을 흉내 내는 것 혹은 따라하는 짓궂은 장난을 말하는 뜻으로 '공격자가 마치 공격 대상자인 것처럼 행세하는 것'을 말함.

공격자는 스푸핑을 통해 마치 자신이 수신자인 것처럼 행세하여 송신자가 보낸 메시지를 강탈함.

스푸핑은 능동적 공격의 한가지로 분류되며 스니핑과 달리 원래 수신자가 메시지를 전달 받지 못함.

 

유형1 : 수신자로 행세

유형2 : 송신자로 행세

 

송신자로 행세하는 스푸핑 공격 유형은 DoS 공격의 수단이 됨.

 

 

ARP(Address Resolution Protocol) 스푸핑(2계층)

  • 공격자가 공격 대상자의 MAC 주소를 가로채는 공격.

 

ARP의 동작 원리

  • 다음과 같은 환경에서

  • 단말 A가 스위치에 단말 B의 MAC 주소를 알기 위해 ARP(ARP Request) 요청을 보냄.
  • 스위치는 ARP 요청을 받으면 자신에게 접속된 모든 단말에 브로드캐스트 방식으로 ARP 요청을 전송함.
  • ARP 요청을 전달 받은 단말 중 실제 요청한 IP 주소를 가진 단말이 있으면 이 단말은 ARP 응답(ARP Reply)를 보냄.
  • ARP 응답에는 B의 MAC 주소가 포함되어 있음.
  • 응답을 전달 받은 A는 자신의 ARP 테이블에 B의 MAC 주소를 추가함.
  • 만약 B가 외부 네트워크에 연결되어 있다면 외부 네트워크에 통로가 되는 게이트웨이(Gateway)의 MAC 주소가 해당 IP의 MAC 주소로 설정되어 ARP 테이블에 게이트웨이의 MAC 주소를 추가함.

 

ARP 스푸핑 과정

  • 공격자가 스위치 내의 다른 단말에 가짜 ARP 응답을 보내는 것이 핵심.
  • 공격자는 공격 대상자인 것 처럼 속여 가짜 ARP 응답을 만듦.
  • ARP 요청이 오지 않아도 ARP 응답을 계속 보내어 스위치 내 다른 단말의 ARP 테이블에 가짜 MAC 주소(공격자의 MAC 주소)를 추가 시킴.
  • 이렇게 스푸핑에 성공하면 스위치 내 단말들은 ARP 테이블이 잘못된 MAC 주소로 저장되었기 때문에 정상적인 주소로 가야하는 메세지들이 공격자에게 전달됨.
  • 송신자 입장에서는 정상적인 과정이기 때문에 특별히 문제가 발생했다고 알아채기는 어려움.

 

ARP 스푸핑을 이용한 스니핑 공격

  • 스푸핑 공격을 통해 스위치 내 모든 단말의 MAC 주소를 공격자의 MAC 주소로 변경.
  • 스위치 내 모든 단말에서 메세지를 보내면 항상 공격자에게 전달 되므로 공격자는 메세지를 전달 받고 원래 수신자에게 재전송함.
  • 이런 방식으로 공격자는 중간에 전달되는 메시지의 내용을 도청함.

 

ARP 스푸핑의 현상 탐지 방법

  • 지속적인 ARP 응답 발생 - ARP 공격은 지속적으로 ARP 응답이 전달되는 특징이 있으므로 와이어샤크(Wireshark) 같은 패킷 분석 프로그램을 이용하여 확인 할 수 있음.
  • ARP 테이블에서 중복된 MAC 주소 확인 - ARP 스푸핑 공격을 받게 되면 서로 다른 PC들이 같은 MAC 주소를 가지게 되므로 IP 주소가 다른데 MAC 주소가 같다면 스푸핑 공격에 당한 것으로 볼 수 있음.
  • ARP 테이블 감시 프로그램 활용 - xarp, arpwatch 등을 통해 ARP 테이블에서 중복된 MAC 주소를 자동으로 확인할 수 있음.
  • 네트워크 속도 저하 - 일반적으로 ARP 스푸핑을 이용하여 스니핑 공격까지 하기 때문에 네트워크 속도가 느려짐. 특별한 이유 없이 네트워크가 느려진다면 의심해볼 수 있음.

 

ARP 스푸핑 방지 대책

  • 정적인 ARP 테이블 관리 - 미리 통신할 단말들의 MAC 주소를 ARP 테이블에 정적으로 설정해 놓으면 ARP 스푸핑을 방지할 수 있지만 관리 효율성이 떨어짐.
  • PC와 서버의 보안 수준 강화 - 운영체제, DBMS 등의 보안 업데이트를 정기적으로 실행하고 바이러스 백신 프로그램의 설치와 최신 패턴 유지 등의 보안 수준을 강화하는 것도 ARP 스푸핑을 막는 하나의 방법임.

 

 

 

IP(Internet Protocol) 스푸핑(3계층)

자신의 IP 주소를 다른 사람의 IP 주소로 속이는 공격 방법.

공격자는 자신이 보내는 메세지 안의 IP 주소를 변조함.

IP 스푸핑은 3계층 공격이기 때문에 스위치 내부 뿐만 아니라 게이트웨이 외부에서도 공격할 수 있음.

 

IP헤더의 출발 IP 주소(Source IP address)를 변조하여 스푸핑 공격을 수행하는데 일반적인 네트워크 프로그램에서는 이러한 출발 IP주소 변조 기능을 제공하지 않으며 패킷을 생성하고 변경하는 scapy 등의 전용 프로그램에서만 가능함.

 

IP 스푸핑 예시

  • A와 B가 IP 주소 기반의 트러스트 관계라고 하면 B는 IP주소가 IPA인 모든 요청에 대해서 사용자 ID와 암호를 확인하는 등의 인증 절차 없이 허용함.
  • 공격자 I는 먼저 단말 A를 공격하여 동작하지 못하게 함.
  • 그 사이 공격자는 마치 단말 A인척 출발 IP 주소를 IPA로 변조한 메시지를 B에 보냄.
  • 단말 B는 출발 IP가 IPA인 공격자의 메시지를 아무런 인증 절차 없이 그대로 수신함.


IP 스푸핑의 합법적 사용 - 웹 성능 테스트(LoadRunner)

 

IP 스푸핑의 방지 방법

  • IP 주소 기반의 트러스트 관계를 맺지 않는 것이 보안상 안전.
  • 네트워크 파일 시스템 등과 같이 서버 클러스터링이 꼭 필요한 경우 트러스트 관계에 있는 서버들의 보안 수준을 강화해줘야함.
  • 패킷 필터링(Packet Filtering)를 사용해 게이트웨이 밖에서 시도되는 IP 스푸핑 공격을 방지함.
    • 외부에서 내부로 전달되는 메시지 중 출발 IP가 내부 IP로 설정된 메시지는 IP 스푸핑으로 의심되는 메시지로 차단.
    • 내부 네트워크 안에서 이루어지는 IP 스푸핑에서 대해서는 방어 수단이 되지 못함.

 

 

 

ICMP(The Internet Control Message Protocol) 스푸핑(3계층)

ICMP는 네트워크 상에 현재 오류가 없는지 진단하거나 제어하는 목적으로 사용되는 프로토콜임.

ICMP는 자체적으로 인증 절차가 없으므로 이를 이용해 ICMP의 네트워크 제어 기능을 악용하는 방법.

 

ICMP의 사용목적1 : 네트워크 진단

  • ping, traceroute 등의 네트워크 프로그램은 ICMP를 사용하는 대표적인 프로그램들임.
  • 예를 들어 ping 명령을 통해 A에서 B로 echo 요청을 보내면 B는 A로 echo 응답을 보냄.
  • 만약 네트워크가 끊어져 있다면 응답을 받을 수 없음.

 

ICMP의 사용목적2 : 네트워크 흐름 통제

  • 다음과 같은 네트워크 구성에서

  • A -> C로 메시지를 보낸다고 하면 기본 게이트웨이가 1이기 때문에 게이트웨이1로 먼저 메시지가 전송됨.
  • 게이트웨이1은 메시지의 도착 IP 주소가 내부망 주소 범위라 판단하면 게이트웨이2로 메시지를 전송함.
  • 이 다음부터 A가 C로 메시지를 보낼 때 게이트웨이1은 ICMP 리다이렉트(ICMP Redirect) 메시지를 A에게 보내 자신 말고 게이트웨이2를 사용하라는 정보를 보냄.
  • 이렇게 ICMP 리다이렉트 메시지를 받은 단말 A는 단말 C로 메시지를 보낼 때 게이트웨이2로 메시지를 보냄.
  • 이러한 문제 말고도 특정 게이트웨이로 네트워크가 몰려서 네트워크 트래픽이 초과한 경우 ICMP 리다이렉트 메시지를 이용해 여러 게이트웨이로 트래픽을 분산시킬 수도 있음.

 

ICMP 스푸핑

  • ICMP의 네트워크 제어 기능을 악용하는 공격 방법.
  • 공격자는 ICMP 리다이렉트 메시지를 공격 대상에게 보내어 자신이 공격 대상자의 게이트웨이가 되게함.
  • 그 결과로 공격 대상자로 보내는 모든 메시지가 공격자에게 전달됨.
  • 공격자는 손쉽게 공격 대상자의 메시지를 스니핑 할 수 있음.
  • 공격자는 이렇게 받은 메시지를 다시 원래 게이트웨이로 재전송함.

 

최근에는 게이트웨이 장비 뿐만 아니라 윈도우7 이상의 PC에서도 기본적인 방화벽 기능이 ICMP를 차단함.

ICMP 스푸핑을 막는 근본적인 방법 중 하나는 방화벽 등을 이용하여 ICMP 메시지를 받지 않는 것임.

 

 

 

DNS(Domain Name Service) 스푸핑

DNS는 단말이 DNS서버로 DNS 질의(DNS Query)를 보내고, 그 결과로 DNS 응답(DNS Response)를 받는 것.

DNS 질의 : URL 주소의 IP 주소가 무엇인지 묻는 것.

DNS 응답 : 질의에 대한 IP 주소.

 

DNS 스푸핑은 공격 대상에게 전달되는 IP 주소를 변조하거나, DNS 서버에 변조된 IP 주소가 저장되게 하여 공격 대상이 의도하지 않은 주소로 접속하게 하는 공격 방법.

궁극적인 목적은 공격 대상자가 엉뚱한 악의적인 사이트로 접속하게 하는것이고 이러한 접속을 통해 공격 대상자의 암호 및 ID를 탈취함.

 

공격방법1 : 스니핑을 이용한 공격

  • 공격 대상자의 패킷을 도청하다가 DNS 요청이 전달될 경우 정상적인 DNS 응답이 도착하기 전에 변조된 DNS 응답을 전달하는 공격 방식.
  • UDP는 TCP와 달리 세션이 유지되지 않으면 먼저 도착한 메시지만 선택 후 이후 도착 메시지는 무시하는데 이러한 특성을 악용한 공격 방법임.
  • 공격자는 공격 대상자의 DNS 질의를 스니핑 기법을 통해 스니핑함.
  • 공격자는 변조된 DNS 응답을 공격 대상자에게 보내고 DNS 서버에도 정상적인 DNS 응답을 보냄.
  • 공격자의 DNS 응답이 먼저 도착하므로 DNS 서버의 정상적인 DNS 응답은 UDP의 특성에 의해 무시됨.
  • 이러한 스니핑을 이용한 공격은 스니핑을 방지하는 방법으로 막을 수 있음.

 

공격방법2 : DNS 캐시 포이즈닝 - DNS 서버의 IP 주소 변조

  • DNS 서버가 가진 IP 주소 자체를 변조 시키는 공격임.
  • DNS 서버는 IP 주소에 대한 정보를 얻어오기 위해 외부의 공인 네임 서버(Authoritative Name Server)에 요청함.
  • 이러한 여러개의 외부 공인 네임 서버의 최상단에 루트 네임 서버(Root Name Server)가 있음.
  • DNS 서버는 루트 네임 서버부터 순차적으로 외부 공인 네임 서버에 질의하여 URL에 대한 IP 주소를 얻어냄.
  • DNS 캐시 포이즈닝은 이러한 외부의 공인 네임 서버에 보내는 질의 메시지를 공격자가 ARP 스푸핑을 사용하여 중간에 가로채 위조된 IP 주소를 전달 받게하는 방법이 있음.
  • 또 다른 방법으로 '랜덤 ID 생성 기반의 DNS 캐시 포이즈닝 공격 == 생일 공격(Birthday Attack)'이 있는데 이는 DNS 서버가 공인 네임 서버에 보내는 질의 내부에 있는 ID를 추측하여 공격자가 보내는 응답이 마치 공인 네임 서버가 보내는 응답인 것 처럼 위장하는 공격 기법.
    • 다수의 같은 URL의 IP를 요청하는 DNS 질의를 DNS 서버로 전송.
    • DNS 서버는 DNS 질의 메시지 내부에 ID 값을 생성해 공인 네임 서버로 보냄.
    • 공격자는 마치 공인 네임 서버가 DNS 응답을 보낸 것처럼 공격자 스스로가 DNS 서버로 DNS 응답 메시지를 보냄.
    • ID 값을 모르기 때문에 여러 개를 보내는데 우연히 같은 ID 값이 있다면 공격자의 모조 DNS 응답이 선택되어 캐시 포이즈닝에 성공함.

 

이러한 DNS 스푸핑 공격을 막으려면 DNS 질의 및 응답이 암호화하여 전달되는 DNSSEC(Domain Name System Security Extensions)를 사용해야함.

728x90
반응형

'AI > 정보보안' 카테고리의 다른 글

[정보보안] 웹 보안  (0) 2023.04.26
[정보보안] 네트워크 보안(3)  (0) 2023.04.25
[정보보안] 네트워크 보안(1)  (0) 2023.04.25
[정보보안] 시스템 보안  (0) 2023.04.25
[정보보안] 정보보안 개요  (0) 2023.04.24