08 스니핑과 스푸핑
스니핑 Sniffing
1. 스니핑
스니핑
스니핑이란 무엇일까요? ‘냄새를 맡다’는 뜻을 가진 단어로 수동적 형태의 공격 방법입니다.
스니핑 공격을 수행할 때는 아무것도 하지 않고 공격 대상의 통신을 지켜보고만 있습니다.
스니핑 공격의 종류를 살펴보겠습니다. 먼저 다른 사람의 대화를 엿듣거나, 도청, 전화선이나 UTP에 태핑하여 전기적 신호를 순석해 정보를 찾아내는 것, 전자파를 템피스트 장비를 이용해 분석하는 등의 방법이 있습니다. 네트워크에서 스니핑 공격은 공격 대상의 네트워크 패킷을 수집하고 분석하게 됩니다.
스니핑을 수행하기 위해서는 네트워크 카드를 조작해야 합니다. 네트워크 카드, 흔히 말하는 랜 카드는 패킷 필터링을 수행하고 있습니다. 네트워크에 접속하는 모든 시스템은 설정된 IP 주소 값과 고유한 MAC 주소 값을 가지고 있습니다. IP 주소와 MAC 주소를 기반으로 NIC에 들어오는 패킷의 헤더 부분을 분석합니다. NIC는 OSI 2계층과 3계층 정보가 자신의 IP, MAC 주소와 일치하지 않은 패킷을 무시합니다. 이러한 NIC의 패킷 필터링을 무시하기 위해서는 프러미스큐어스 모드로 NIC카드를 수정해야 합니다. 프러미스큐어스 모드는 2계층과 3계층 필터링을 해제시키는 것입니다.
2. 스위칭 환경에서 스니핑
다음은 스위칭 환경에서 스니핑에 대해서 학습하겠습니다.
스위치란 근거리 통신망 구축 시 단말기의 집선 장치입니다. 스위칭 기능을 가진 통신 장비로 통신 효율을 향상시킨 허브라고 생각할 수 있습니다. 대역폭이 커서 여러 개의 포트 입력을 동시에 받을 수 있으며, 수신 단말기의 주소 번지를 파악하여 특정 포트로만 데이터를 전송 시킵니다.
스위칭 환경에서 스니핑 방법에 대해 알아보겠습니다.
먼저 미러링 포트가 있습니다. 미러링 포트란 스위치에 존재하는 모든 포트에서 이동하는 데이터를 복제하여 보내주는 포트입니다. 미러링 포트를 통해 스위치 내부에서 이동하는 정보를 모두 확인할 수 있습니다.원래의 목적은 네트워크 장애 발생시 문제점을 파악하기 위해서지만 이는 스니핑에 악용될 수 있습니다.
두 번째 방법은 스위칭 재밍으로 스위치들은 주소 테이블이 가득 차게 되면 모든 포트로 트래픽을 브로드캐스팅합니다. 공격자는 위조된 MAC 주소를 지속적으로 네트워크에 흘려보내 스위칭 허버의 주소 테이블을 오버플로우 시켜 다른 네트워크 세그먼트의 데이터를 스니핑하는 방법입니다. 이 방법을 사용할 경우 스위칭 허브가 더미 허브처럼 동작하므로 통신 속도가 저하됩니다.
세 번째 방법은 ARP Redirect의 취약점을 악용한 방법입니다. 공격자는 자신이 라우터인 것처럼 위조된 ARP Reply패킷을 주기적으로 브로드캐스팅 합니다. 스위칭 네트워크 상의 모든 호스트들이 공격자를 라우터로 믿게끔 만들어 네트워크에 모든 트래픽을 공격자를 통해 외부로 연결됩니다. 공격자는 정상적으로 통신이 되고 있는 것처럼 보이기 위해 모든 트래픽을 게이트웨이로 포워딩 해야 합니다.
네 번째 방법은 ICMP Redirect 메시지를 악용한 방법입니다. ICMP Redirect 메시지는 네트워크에 라우터 여러 개인 경우 호스트의 라우팅 경로를 수정하여 패킷을 최적의 경로로 보내주는 역할을 합니다. 공격자는 타켓 호스트에 자신이 라우터이고 최적의 경로라고 수정된 ICMP Redirect 메시지를 전송합니다. ARP spoofing과 같이 패킷 포워딩을 해주어야 합니다.
3. 스니핑 탐지와 방지
다음은 스니핑의 탐지와 방지 방법에 대해서 알아보겠습니다.
먼저 스니핑을 탐지에 대해 알아보도록 할까요?
대부분의 스니퍼는 TCP/IP에서 동작합니다. TCP/IP는 Request를 받으면 Response을 전달하는 것이 기본 과정입니다. 의심이 가는 호스트에 ping을 보낼 때는 네트워크에 존재하지 않는 MAC 주소로 위장하여 보내어서 ICMP Echo Reply를 받으면 해당 ping을 보냈던 호스트가 스니핑을 수행 중인 것을 탐지해 낼 수 있습니다.
스니핑을 방지하기 위해서는 ARP Table를 정적으로 구성하고, 중요 패킷을 암호화하는 것이 좋습니다. SSH, SSH등의 암호화 프로토콜을 사용하면 됩니다. 또한 스니핑 툴을 사용하는 것이 좋은데요. 스니핑 툴에는 AntiSniff, sentinel, XARP 등이 있습니다.
스푸핑 Spoofing
1. 스푸핑
스푸핑은 ‘속이다’라는 의미를 가진 단어로 인터넷이나 로컬에서 존재하는 모든 연결에 스푸핑이 가능합니다. 정보를 얻어내는 것 이외에도 시스템을 마비시킬 수도 있습니다
2. 스푸핑의 종류
스푸핑의 종류로는 ARP 스푸핑, IP 스푸핑, DNS 스푸핑이 있습니다.
먼저 ARP 스푸핑에 대해 알아보겠습니다. ARP는 IP 주소 값으로 MAC 주소를 알아내는 프로토콜이고, RARP는 MAC 주소로 IP 주소를 알아내는 프로토콜입니다. ARP스푸핑은 2계층 MAC 주소를 공격자의 MAC 주소로 속이는 것입니다.
IP 스푸핑은 한 시스템이 여러 시스템에 로그인하고자 할 때 각 시스템마다 계정과 패스워드가 필요한데요. 여러 개의 계정과 패스워드를 사용할 경우 사용자의 불편이 발생할 수 있습니다. 이런 점을 해결하기 위해 IP 주소로 인증할 수 있습니다. IP 스푸핑은 시스템 간의 트러스트 관계를 악용하는 방법으로 트러스트 관계가 맺어진 서버와 클라이언트를 확인한 후 클라이언트에 DoS 공격하여 연결을 끊고, 공격자가 클라이언트의 IP 주소를 확보하여 서버에 실제 클라이언트처럼 패스워드 없이 접근하는 방법입니다. 유닉스와 리눅스 시스템에서는 트러스트 관계를 형성하기 위해 주로 다음과 같은 파일을 사용합니다.
DNS 스푸핑은 웹 스푸핑과 비슷한 의미로 이해됩니다. 단순히 DNS 서버를 공격하여 해당 사이트에 접근하지 못하게 만들면 DoS공격이 되지만 이를 변형하면 웹 스푸핑이 됩니다. 공격 방법을 알아보겠습니다. 먼저 클라이언트가 DNS 서버로 DNS Query 패킷을 보내는 것을 확인합니다.
스위칭 환경일 경우에는 클라이언트가 DNS Query 패킷을 보내면 이를 받아야 하므로 ARP 스푸핑과 같은 선행 작업이 필요합니다. 만약 허브를 쓰고 있다면 모든 패킷이 자신에게도 전달되므로 자연스럽게 클라이언트가 DNS Query 패킷을 보낼 경우 이를 확인 가능합니다. 다음으로 DNS 서버가 올바른 DNS Response 패킷을 보내주기 전에 클라이언트에 위조된 DNS Response 패킷을 전송합니다. 클라이언트는 공격자가 보낸 DNS Response 패킷을 올바른 패킷으로 인식하고 웹 서버에 접속을 시도합니다. 클라이언트는 이미 공격자의 DNS Response 를 받았기 때문에 정상 DNS서버가 보낸 DNS Response 패킷은 버립니다.
그렇다면 DNS 스푸핑에 대한 보안 대책은 무엇일까요? 도매인 이름을 브라우저에 입력했을 때 무조건 DNS Query를 생성하는 것은 아닙니다. 사이트에 접속하면 MAC처럼 캐시에 도메인 이름에 대한 IP 주소가 저장되었다가 다시 접속 시 DNS Query를 보내지 않고 캐시에서 읽어 들입니다. 그런 다음 hosts파일을 통해 도메인 이름에 대해 IP 주소를 확인합니다. 따라서 hosts파일에 중요한 사이트의
IP 주소를 기록해 놓으면 DNS Query를 보내지 않기 때문에 DNS 스푸핑을 예방할 수 있습니다.
'정보 보호' 카테고리의 다른 글
10 침입 탐지 시스템 (0) | 2016.01.28 |
---|---|
09 무선 네트워크 보안 (3) | 2016.01.26 |
07 서비스 거부 공격 (1) | 2016.01.26 |
06 윈도우 보안 (0) | 2016.01.26 |
05 로그와 취약점 관리 (0) | 2016.01.26 |