Information Technology

[해킹 기법] 스니핑(Sniffing) 공격 원리와 종류, 탐지 방법

coinAA 2021. 9. 27.

 

목차

     

    스니핑 공격(Sniffing Attack)이란? 스니퍼(Sniffer)의 개념

    Sniffing이란 단어의 사전적 의미로는 ‘코를 킁킁거리다’, ‘냄새를 맡다’ 등의 뜻으로 정의된다. 사전적인 의미와 같이 해킹 기법으로서 스니핑은 네트워크 상에서 자신이 아닌 다른 상대방의 패킷(데이터) 교환을 엿듣는 즉 도청하는 것을 의미한다.
    컴퓨터 내에서의 스니핑 공격은 일반적으로 작동하는 IP 필터링과 MAC 주소 필터링을 수행하지 않고, 랜 카드로 들어오는 전기 신호를 모두 읽어 들이기 떄문에 다른 이의 패킷을 관찰하여 정보를 유출시키 수 있는 것이다.
    간단히 말하여 네트워크 트래픽을 도청(eavesdropping)하는 과정을 스니핑이라고 할 수 있다. 이런 스니핑을 할 수 있도록 하는 도구를 스니퍼(Sniffer)라고 칭하며 스니퍼를 설치하는 과정은 전화기 도청 장치를 설치하는 과정과 유사하여 비유될 수 있다.
    또한 스니핑 공격을 수동적 공격이라고 말하는데 공격할 때 아무 것도 하지 않고 조용히 있는 것만으로도 충분하기 때문이다. 

    그림으로 표현한 스니핑 공격

    스니핑  공격의  원리(Principles of sniffing attacks)

    근거리 통신망(LAN) 상에서 개별적으로 호스트[각주:1]를 구별하기 위한 방법으로 이더넷[각주:2] 인터페이스[각주:3]는 MAC 주소를 갖게 되며, 모든 이더넷 인터페이스의 MAC 주소는 서로 다른 고유한 값을 가진다. 따라서 로컬 네트워크상에서 각 호스트는 유일하게 구별이 가능해진다. 이더넷은 로컬 네트워크 내의 모든 호스트가 같은 선을 공유하도록 되어 있는데 이로 인해 같은 네트워크내의 컴퓨터는 다른 컴퓨터가 통신하는 모든 트래픽을 볼 수 있게 된다. 하지만 이더넷 인터페이스는 자신의 MAC 주소를 갖지 않는 트래픽을 무시하는 특성의 필터링을 가지고 있다.
    하지만 스니핑 공격은 필터링을 무시하고 모든 트래픽을 볼 수 있는 * Promiscuous 모드를 설정하여 트래픽을 도청하는 방식을 취한다.

     

    * Promiscuous Mode
    사전적 정의로는 컴퓨터 네트워킹에서, 무차별 모드는 유선 네트워크 인터페이스 컨트롤러 또는 무선 네트워크 인터페이스 컨트롤러를위한 모드로, 컨트롤러가 특별히 수신하도록 프로그래밍 된 프레임 만 전달하지 않고 컨트롤러가 수신하는 모든 트래픽을 중앙 처리 장치로 전달하는 기능이다.
    통상적으로 허브(HUB) 같은 스위치(Switch)에서 TCP/IP 프로토콜에서 목적지를 찾기위해 모든 장비에 브로드캐스트를 하게되면,
    해당 스위치에 연결된 모든 NIC(Network Interface Card)는 자신에게 알맞는 패킷인 경우 허용하고 그렇지 않은 경우 해당 패킷을 폐기하게 된다.
    일반적으로 시스템에 부하를 많이 주기때문에 대부분 기본적으로 비활성화(Disabled) 되어있다. 
    상황에 따라서 해당 기능을 인터페이스에서 활성화하게 되면, 해당 인터페이스는 자신에게 온 패킷이 아님에도 불구하고 해당 패킷을 받아 유지하게되고, 해당 데이터를 조합하여 다른 정보를 스틸할 수도 있다.
    간단히 말하자면 데이터 링크 계층과 네트워크 계층의 정보를 이용한 필터링을 해제하는 역할을 하는것이다.

     

    스니핑  공격의  종류(Types of Sniffing Attacks)

    스위치  재밍  공격(Switch Jamming Attack)

    스위치가 MAC 주소 테이블을 기반으로 포트에 패킷을 스위칭할 때 정상적인 스위칭 기능을 마비 시키는 공격이다.
    MACOF 공격이라고 불리기도 한다.

     

    스위치  재밍  공격(Switch Jamming Attack) 원리

    스위치는 자신이 가지고 있는 MAC 테이블의 저장 공간이 가득차면 네트워크 패킷을 브로드 캐스트 하는 특성이 있는데  이를 이용한 공격 방법이다.

    스위치 재밍 공격의 공격 원리는 스위치가 관리하는 MAC 주소 테이블에 정보가 모두 입력되서 테이블이 가득차면 허브(HUB)처럼 패킷을 브로드 캐스트하게 되는데 공격자는 위조된 MAC 주소를 계속해서 스위치로 전달하고 스위치는 위조된 MAC 주소로 MAC 테이블을 채우게 된다. 그렇게 스위치의 MAC 테이블을 오버플로우 시키게 되면 브로드 캐스트로 인해 모든 패킷을 공격자가 받을 수 있게된다.
    이 때 네트워크 통신 속도가 현저히 저하되서 공격자에게도 영향이 있게 된다.
    현대 고가의 스위치는 MAC 테이블의 캐시와 연산자가 쓰는 캐시가 독립적으로 구성되어 있어 스위치 재밍 공격을 통하지 않는다.

     

    스위치  재밍  공격(Switch Jamming Attack) 가능한 이유

    스위치의 한 포트에 여러 개의 MAC 주소 설정이 가능한데 스위치는 자신에게 들어오는 모든 패킷을 MAC Table에 저장 시켜놓는다. 공격자가 스위치에게 다량의 Frame 패킷을 보내게 된다면 스위치의 포트로부터 들어온 모든 MAC주소를 MAC 테이블에 저장하게 되고 결국 Overflow 상태가 되어서 스위치가 허브처럼 동작하게 된다.
    스위치는 허브로 동작하게 되어서 결국 모든 패킷을 브로드 캐스트하여 다른 호스트가 패킷을 스니핑할 수 있는 환경이된다.

     

    스위치  재밍  공격(Switch Jamming Attack) 탐지 방법

    스위치 재밍(Switch Jamming) 공격은 MAC 테이블의 오버플로우를 발생시키는 것이 목적이기 때문에 서로 다른 MAC 주소로 다량의 패킷을 전송하기 때문에 IP 또는 MAC 당 패킷은 극히 적은 수로 발생한다. 이러한 특징을 이용해 와이어샤크(Wireshark)에서는 IP별 또는 이더넷(Ethernet) 별로 패킷 수를 확인하는 방법으로 공격을 확인할 수 있다.

     

    SPAN 포트  태핑  공격(SPAN Port mirroring)

    스위치의 포트 미러링(Port mirroring) 기능을 이용한 공격 방법인데 포트 미러링(Port mirroring)이란 포트 미러링[각주:4]각 포트에 전송되는 데이터를 미러링하는 포트에도 동일하게 전달하여 침입 탐지 시스템, 네트워크 모니터링, 로그 시스템 등에 많이 사용된다.
    공격자는 미러링 된 포트를 이용하여 모든 정보를 볼 수 있게 된다.

     

    ARP Redirect

    ARP[각주:5] Redirect 공격은 공격자는 자신이 라우터인 것처럼 속여 공격하는 기법이다. 위조된 ARP reply를 주기적으로 브로드 캐스트함으로서 주변 기기들이 공격자를 라우터로 인식하도록 만들고 외부로 전달되는 모든 패킷은 공격자를 거쳐 가도록 만든다. 자신이 공격자라는 걸 은닉 위해 주변 기기들은 정상 통신 응답을 받아야하므로 공격자는 스니핑 이후 패킷을 IP Forwarding[각주:6]으로 게이트웨이[각주:7]로 전달해야 한다.

     

     

    ICMP Redirect

    ICMP Redirect는 ARP Redirect와 동일하게 공격자가 라우터로 인식되도록 하는 공격방법이다. 여러 라우터가 존재하는 네트워크 시스템에서 최적의 데이터 전송 경로를 찾기위해 네트워크 들은 여러 알고리즘으로 동작하게 되는데 공격자는 공격대상에게 자신이 라우터이고 최적의 경로라고 수정된 ICMP Redirect를 보내 데이터를 전달받는다.
    ARP Redirect와 동일하게 게이트웨이로 다시 전달해야 한다.

     

    ICMP Redirect 동작 원리

    • 호스트가 인터넷으로 패킷을 보낼 때 디폴트 라우터로 라우터 A가 정해져 있다면 호스트는 일단 패킷을 라우터 A로 보낸다.
    • 라우터 A는 라우팅 테이블을 검색해서 직접 패킷 데이터를 처리하는 것 보다 라우터 B가 처리하는 것이 효과적이라면 패킷을 라우터 B로 패킷을 전송한다.
    • 라우터 A는 동일 목적지로 보내는 패킷이 라우터 B로 전송되도록 호스트에게 ICMP Redirect 패킷을 보낸다.
    • 호스트는 라우팅 테이블에 현재 전송중인 패킷에 대한 정보를 저장하고 동일 목적지로 전송하는 패킷은 라우터 B로 보낸다.

    스니퍼 탐지 방법

    Ping을  이용한  스니퍼  탐지

    의심이 가는 호스트에 네트워크에 존재하지 않는 MAC 주소를 위장해서 ping을 보내면 스니퍼 탐지 가능
    존재하지 않는 MAC 주소를 사용했으므로 스니핑을 하지 않는 호스트라면 ping request를 볼 수 없는 것이 정상이기 때문이다.

    공격자로 의심이 되는 호스트에 네트워크에 존재하지 않는 MAC 주소로 위조된 ping을 보내면 Transport 레이어에서 다시 reply를 보내게 됩니다. 만약 스니핑을 하지 않는 호스트라면 ping request를 볼 수 없는 것이 정상이다.

     

    ARP를  이용한  스니퍼  탐지

    위조된 ARP request를 보냈을 때 ARP Response가 오면  프로미스큐어스(Promiscuous) 모드로 설정된 것이므로 탐지가 가능하다.


    DNS를  이용한  스니퍼  탐지

    일반적인 스니핑 프로그램은 스니핑한 시스템의 IP 주소에 DNS의 이름 해석 과정인 Reverse-DNS lookup[각주:8]을 수행하여서 대상 네트워크로 Ping Sweep를 보내고 들어오는 Reverse-DNS lookup을 감시하면 스니퍼 탐지 가능하다.

     

     

    유인을  이용한  스니퍼  탐지

    가짜 아이디와 패스워드를 네트워크에 계속 뿌려서 공격자가 이를 이용해 접속을 시도하면 스니퍼 탐지 가능하다


    ARP Watch를  이용한  스니퍼  탐지

    ARP watch는 MAC 주소와 IP 주소의 매칭 값을 초기에 저장하고 ARP 트래픽을 모니터링하여 이를 변하게 하는 패킷이 탐지되면 알려주는 툴이다. 대부분의 공격 기법은 위조된 ARP를 사용하기 때문에 쉽게 탐지 가능하다.

     

     

    1. 네트워크 호스트는 컴퓨터 네트워크에 연결된 컴퓨터나 기타 장치이다. [본문으로]
    2. 이더넷(영어: Ethernet)은 컴퓨터 네트워크 기술의 하나로, 일반적으로 LAN, MAN 및 WAN에서 가장 많이 활용되는 기술 규격이다. [본문으로]
    3. 인터페이스는 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이다.  [본문으로]
    4. 포트 미러링(Port Mirroring)은 네트워크 스위치의 어떤 한 포트에서 보이는 모든 네트워크 패킷 혹은 전체 VLAN의 모든 패킷들을 다른 모니터링 포트로 복제하는데 사용되는 기술이다. [본문으로]
    5. 주소 결정 프로토콜(Address Resolution Protocol, ARP)은 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind)시키기 위해 사용되는 프로토콜이다. [본문으로]
    6. 내부망(사설) IP(아이피) 접속하기 사용자가 A컴퓨터에 접속했을때 모든 데이터를 B컴퓨터로 데이터를 넘기는 기술을 말한다. [본문으로]
    7. 컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어, 즉 다른 네트워크로 들어가는 입구 역할을 하는 네트워크 포인트이다. [본문으로]
    8. 컴퓨터 네트워크에서 역방향 DNS 조회 또는 역방향 DNS 확인은 IP 주소와 연관된 도메인 이름을 결정하기위한 도메인 이름 시스템의 쿼리 기술입니다. [본문으로]

    댓글