카테고리 없음

스니핑

csi1201 2024. 9. 23. 19:57

스니핑이란?

Sniffing이란 단어의 사전적 의미는 '코를 킁킁거리다', '냄새를 맡다.' 등의 뜻이 있습니다. 사전적인 의미와 같이 해킹 기법으로서 스니핑은 네트워크 상에서 자신이 아닌 다른 상대방들의 패킷 교환을 엿듣는 것을 의미합니다. 간단히 말하여 네트워크 트래픽을 도청(eavesdropping)하는 과정을 스니핑이라고 할 수 있습니다. 이런 스니핑을 할 수 있도록 하는 도구를 스니퍼(Sniffer)라고 하며 스니퍼를 설치하는 과정은 전화기 도청 장치를 설치하는 과정에 비유될 수 있습니다. 또한 스니핑 공격을 수동적 공격이라고 말하는데 공격할 때 아무것도 하지 않고 조용히 있는 것만으로도 충분하기 때문입니다.

 

 

스니핑 원리

네트워크에 접속하는 모든 시스템은 설정된 IP 주소값과 고유한 MAC(Media Access Control) 주소를 가지게 된다. 이더넷은 로컬 네트워크 내의 모든 호스트가 같은 선(wire)을 공유하도록 되어 있다. 따라서 같은 네트워크 내의 모든 컴퓨터는 다른 컴퓨터가 통신하는 모든 트래픽을 볼 수 있다. 하지만 자신을 지나는 모든 트래픽을 받아들인 경우 관계없는 트래픽까지 처리해야 하므로 효율적이지 못하고 네트워크 성능도 저하된다. 따라서 자신의 주소를 갖지 않는 트래픽을 무시하는 필터링 기능을 가지고 있다.
통신을 할 때 네트워크 카드는 전송된 패킷의 2계층 MAC 정보와 3계층의 IP 정보를 읽어 처리할지를 결정하고 정보가 자신의 것과 일치하지 않는 패킷을 무시한다. 스니핑을 수행하는 공격자는 자신이 가지지 말아야 할 정보까지 모두 받아들이며, 이때 2, 3계층에서의 필터링을 해제하는 네트워크 카드의 모드를 Promiscuous Mode라고 한다.

Promiscuous Mode는 일반적으로 시스템에 부하를 주기때문에 대부분 해당기능은 디폴트로 disabled되어있습니다. 만약 필요에 따라서 해당기능을 인터페이스에서 활성화하게 되면, 해당인터페이스는 자기에게 온 패킷이 아님에도 불구하고 해당패킷을 받아 유지하게 되고, 해당데이터를 조합하여 다른 정보를 스틸할 수 도 있습니다.

 

 

스니핑 공격 방법

1. 스위치 재밍

스위치가 MAC 주소 테이블을 기반으로 포트에 패킷을 스위팅할 때 정상적인 스위칭을 하지 못하도록 하는 공격입니다. MACOF 공격이라고도 불립니다. 정상적으로 스위칭 하지 못하도록 하는 방법은 스위치의 특징을 이용하는 것입니다. 만약 스위치가 관리하는 MAC 주소 테이블에 정보가 모두 입력되서 테이블이 가득차면 허브처럼 패킷을 브로드캐스트하게 됩니다. 공격자는 위조된 MAC 주소를 계속해서 스위치로 보내고, 스위치는 위조된 MAC주소로 테이블을 채우게 됩니다. 그렇게 MAC 테이블을 오버플로우시키게 되면 브로드캐스트로 인해 모든 패킷을 공격자가 받을 수 있습니다. 이 때 네트워크 속도가 현저히 저하되서 공격자에게도 영향이 있습니다. 요즘 고가의 스위치는 MAC 테이블의 캐시와 연산자가 쓰는 캐시가 독립적으로 구성되어 있어 스위치 재밍 공격을 통하지 않습니다.

 

2. 포트 미러링

스위치의 포트 미러링 기능을 이용한 공격 방법입니다. 포트 미러링은 네트워크 스위치에서 스위치 포트를 통과하는 패킷들을 감시하거나 관찰하기 위해 패킷들을 다른 스위치 포트로 복사하는 방법입니다. 네트워크 관리자가 패킷 복사용 포트와 패킷 송신용 포트를 지정해 포트 미러링이 설정되게 됩니다. 관리자는 프로토콜 분석 장치를 포트에 포트 미러링을 세팅하고 세그먼트마다 개별적으로 감시합니다. 이 분석 장치를 활용하면 클라이언트에 어떤 영향도 미치지 않는 상태로 데이터를 포착하고 분석할 수 있습니다. 침입탐지 시스템 또는 침입 방지 시스템과 같은 네트워크 보안 장비에서 주로 사용됩니다.

 

3. ARP 우회 공격

ARP우회 공격(Address Resolution Protocol Redirect Attack)은 네트워크 보안 공격 중 하나로, 공격자가 네트워크상에서 ARP 프로토콜을 이용하여 다른 호스트의 IP주소와 MAC주소를 변조하는 공격입니다. 일반적으로 네트워크에서 호스트 간 통신을 할 때는 IP주소를 사용하여 통신하는데, IP주소와 실제 통신에 사용되는 MAC 주소를 매핑하기 위해 ARP 프로토콜을 사용합니다. ARP 우회 공격은 이 ARP 프로토콜을 이용하여 공격자가 자신의 MAC 주소를 다른 호스트의 IP주소에 매핑시켜 해당 호스트로 전송되는 패킷을 공격자가 가로채는 것을 의미합니다. 이러한 공격을 통해 공격자는 중간자 공격자을 수행하여 통신 내용을 도청하거나 조작할 수 있습니다. 또한, ARP 우회 공격을 통해 공격자는 네트워크 상에서 다른 호스트의 위치를 변조하여 트래픽을 전송할 수도 있습니다. ARP 우회 공격은 대부분 로컬 네트워크에서 수행되며, 공격자외 피해 호스트가 같은 네트워크에 있어야 합니다. 이러한 공격을 방지하기 위해서는 네트워크 장비에서 ARP 테니블을 관리하고, ARP 요청과 응답에 대한 필터링 및 보안 정책을 설정하는 등의 보안 대책을 시행해야 합니다.

 

4. ICMP Redirect 공격

ICMP 란 신뢰성 없는 IP 를 대신해 통신의 이상 유무를 알리기 위해 네트워크의 에러 메시지를 전송하거나 네트워크의 흐름을 통제하기 위한 프로토콜로 ICMP 메시지를 사용하여 타깃의 라우팅 경로를 변경하여 패킷의 흐름을 조정한다.
한 네트워크에 여러 개의 라우터가 있는 경우 좀 더 효율적인 경로라고 판단되는 특정 라우터의 IP 주소를 ICMP Redirect 를 통해 보낼 수 있다. ICMP Redirect 를 받은 클라이언트는 패킷의 내용대로 라우팅 테이블을 변경하는데 인증 메커니즘이 없기 때문에 스니핑 공격의 방법으로 사용된다. 공격자는 타깃에게 패킷을 자신에게 전달하도록 만든 라우팅 경로를 ICMP 메시지로 만들어 전달한다.

 

 

스니퍼 탐지 방법

1. Ping을 이용한 방법

대부분의 스니퍼는 일반 TCP/IP에서 동작한다. 이를 이용하여 의심이 가는 호스트에 ping을 보낸는데 존재하지 않는 MAC 주소로 위장해서 보낸다. ping은 ICMP프로토콜에서 해당 호스트까지 reachable한지를 검사하는 신호로, 정상적인 경우하면 MAC 주소가 유효하지 않으므로 응답이 오지 않는 것이 맞다. 하지만 스니핑용 호스트라면 MAC 주소와 무관하게 모든 정보를 다 수신받으므로 ICMP에서 정상적으로 reach 했다는 뜻의 Echo reply를 보내게 된다.

 

2. ARP를 이용한 탐지

기본적으로 TCP/IP에선 자신을 거쳐 가더라도 목적지가 자신이 아니라면 수신하지 않는 것이 일반적인데 랜카드를 조작하여 목적지가 어디든 그냥 무조건 수신 하도록 옵션을 줄 수도 있습니다. 이 옵션을 프러미스큐어스 모드라고 합니다. 이런 랜카드를 사용하는 호스트를 찾기 위해 그 어느 호스트도 목적지가 아닌 조작된 ARP request를 보냈는데 응답이 온다면 프러미스큐어스 모드를 사용하고 있는것 입니다.

 

3. 유인을 이용한 스니퍼 탐지

스니퍼를 실행하는 공격자는 일반적으로 사용자 ID와 패스워드를 도청합니다. 그리고 도청한 ID와 패스워드를 이용하여 다른 시스템을 공격하게 됩니다. 따라서 네트워크상에 클라이언트/서버를 설정하여 미리 설정된 사용자 ID와 패스워드를 지속적으로 흘려 공격자가 이 패스워드를 사용하게끔 합니다. 관리자는 IDS 또는 네트워크 감시 프로그램을 이용하여 이러한 미리 설정된 ID와 패스워드를 사용하는 시스템을 탐지함으로써 스니퍼를 탐지할 수 있습니다.

 

4. ARP watch를 이용한 탐지

ARP watch는 MAC주소와 IP 주소의 매칭 값을 초기에 저장하고 ARP 트래픽을 모니터링하여 위조한 패킷이 탐지되면 알려주는 툴입니다. 위조된 ARP를 사용하는 공격은 쉽게 탐지할 수 있습니다.

 

 

 

 

스니핑 예방 방법

1. 공용 와이파이

공용 와이파이는 최대한 자제하는 것이 좋습니다. 해커는 공용 와이파이 네트워크를 스니핑하고 이를 통해 전달되는 모든 데이터를 낚아채는 간편한 방법을 사용합니다. 따라서 고용 와이파이 대신 암호화된 와이파이를 사용하는 것이 중요합니다.

 

2. 암호화

스니핑 공격을 예방하기 위한 가장 기본적인 방법은 암호화입니다. SSL/TLS, SSH, VPN 등의 암호화 프로토콜을 사용하여 네트워크 통신을 암호화하는 것이 좋습니다. 암호화를 통해 스니핑 공격자가 데이터를 가로채더라도 암호화된 데이터를 해독할 수 없도록 합니다. 

 

3.  HTTPS 확인

인터넷을 사용할 때는 현재 접속 중인 웹사이트가 안전한 사이트인지 확인하는 습관이 필요합니다. 인터넷 주소창을 확인해 제일 앞부분, HTTP가 아니라 HTTPS로 되어 있는지 확인해야 합니다. 여기서 'S'는 'secrue'의 약어로 HTTP보다 강화된 보안성을 의미하며, HTTPS로 되어 있는 웹사이트는 상대적으로 안전하다고 할 수 있습니다.

 

4. 보안 업데이트

컴퓨터 운영체제와 응용 프로그램의 보안 업데이트를 지속적으로 수행하는 것이 좋습니다. 최신 보안 약점 패치로 인해 시스템에 있는 취약점을 예방할 수 있습니다.

 

 

스니핑 공격의 위험성

스니핑 공격은 보안 위협으로 간주되며, 그 위험성은 크다고 볼 수 있습니다. 스니핑 공격은 네트워크사엥서 데이터를 가로채는 것이므로, 수집된 데이터는 공격자가 악용할 수 있습니다.

1. 개인 정보 유출

스니핑 공격으로 개인 정보, 비밀번호, 신용카드 정보 등이 유출될 수 있습니다. 이러한 정보를 가진 공격자는 개인 정보 및 신원 도용 등의 사기 행위를 일으킬 수 있습니다.

 

2. 중요 정보 유출

스니핑 공격으로 인해 기업 및 조직 내에서 중요한 정보가 유출될 수 있습니다. 이러한 정보는 경쟁 업체나 해커에게 유용할 수 있으며, 조직 내부 정보 유출로 인한 문제를 야기할 수 있습니다.

 

3. 악성 코드 감염

스니핑 공격을 수행하는 공격자는 많은 경우 악성 코드를 네트워에 전파합니다. 이러한 악성 코드는 시스템을 감염시키고 중요 정보를 파괴할 수 있습니다.

 

4. 중간자 공격

공격자가 스니핑을 통해 데이터를 가로챈 후, 데이터를 변조하거나 재전송하여 두 당사자(클라이언트와 서버)사이의 통신을 끊어냅니다. 이를 통해 공격자는 사용자의 데이터를 열람하거나 변조할 수 있습니다.

 

5. 서비스 거부 공격

공격자는 스니핑 공격을 통해 시스템 자원을 과도하게 사용하여 서비스 거부 공격을 수행할 수 있습니다.

 

 

사례

1. Wi-Fi 스니핑

공공 Wi-Fi 환경은 스니핑 해킹의 주요 타겟이 됩니다. 예를 들어, 사용자가 카페나 공항에서 제공하는 무료 Wi-Fi에 접속했을 때 해커는 해당 네트워크에 접속한 다른 사용자들의 트래픽을 스니핑할 수 있습니다. 해커는 패킷 분석 도구를 사용해 로그인 세션을 가로채고, 사용자의 계정에 침입할 수 있습니다.

 

  • 2015년, 유명 호텔 체인에서는 공공 Wi-Fi를 통해 고객의 신용카드 정보와 개인 정보를 가로채는 스니핑 해킹 사건이 발생했습니다. 이 사건으로 약 50만 명 이상의 고객 정보가 유출되었고, 해커들은 이 정보를 불법적으로 거래했습니다.

 

2. 기업 내 내부망 스니핑

내부망에서의 스니핑 공격도 빈번합니다. 회사 내부의 네트워크 트래픽을 스니핑하는 해커는 민감한 비즈니스 정보, 계약서, 연구 개발 자료 등을 손쉽게 탈취할 수 있습니다.

  • 2017년, 글로벌 금융 회사에서 내부망 스니핑을 통해 고객의 계좌 정보가 대규모로 유출되는 사건이 발생했습니다. 해커는 몇 개월간 침투해 내부 네트워크를 모니터링했고, 최종적으로 약 1억 달러 이상의 손실이 발생했습니다.

 

3. VoIP 스니핑 VoIP(Voice over IP)

전화 시스템은 기업에서 많이 사용하는 통신 시스템입니다. 하지만 이 시스템도 스니핑의 대상이 될 수 있습니다. VoIP 트래픽을 스니핑하여 대화를 도청하거나, 민감한 대화 내용을 탈취할 수 있습니다.

  • 한 대형 통신 회사에서 VoIP 통신 시스템을 스니핑하여 고객의 상담 내용과 비밀 계약 내용을 도청한 사건이 보고된 바 있습니다. 이를 통해 해커는 경쟁 업체에 정보를 팔아 넘기려 했습니다.

 

 

 

마지막으로 스니핑 해킹은 우리의 일상에서 쉽게 노출될 수 있는 위협입니다. 이를 예방하기 위해서는 개인과 기업 모두가 네트워크 보안에 대한 경각심을 갖고, 적절한 방어 체계를 구축하는 것이 필수적입니다. 스니핑 해킹에 취약한 환경을 개선하고, 지속적인 보안 점검과 툴을 활용해 안전한 네트워크 환경을 유지해야 합니다.