"스니핑"의 두 판 사이의 차이
leejia1222 (토론 | 기여) (→탐지 방법) |
|||
(사용자 2명의 중간 판 20개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | '''스니핑'''(sniffing) | + | '''스니핑'''(sniffing)은 [[네트워크]] 중간에서 자신이 아닌 남의 [[패킷]] 정보를 도청하는 [[해킹]] 기법의 하나이다. 스니핑을 할 수 있도록 하는 도구를 [[스니퍼]](Sniffer)라고 하며 스니퍼를 설치하는 과정은 전화기 도청 장치를 설치하는 과정에 비유될 수 있다. |
== 개요 == | == 개요 == | ||
− | 스니핑은 보안의 기본 요소 중 기밀성을 해치는 공격 방법으로 스니핑 공격은 웹호스팅, 인터넷데이터센터(IDC) 등과 같이 여러 업체가 같은 네트워크를 공유하는 환경에서는 매우 위협적인 공격이 | + | 스니핑은 보안의 기본 요소 중 기밀성을 해치는 공격 방법으로, 스니핑 공격은 [[웹호스팅]], [[인터넷데이터센터]](IDC) 등과 같이 여러 업체가 같은 네트워크를 공유하는 환경에서는 매우 위협적인 공격이 될 수 있다. 하나의 시스템이 공격당하게 되면 그 시스템을 이용하는 네트워크를 도청하게 되고, 다른 시스템의 사용자 아이디와 비밀번호를 알아낼 수 있기 때문이다. 네트워크 내의 패킷들은 대부분 [[암호화]]되어 있지 않아 해킹에 이용당하기가 쉽다. 비록 스위칭 환경의 네트워크를 구축하여 스니핑을 어렵게 할 수는 있지만 이를 우회할 수 있는 많은 공격 방법이 존재하고 있다. |
== 특징 == | == 특징 == | ||
=== 공격 기법 === | === 공격 기법 === | ||
==== 허브 환경에서의 스니핑 ==== | ==== 허브 환경에서의 스니핑 ==== | ||
− | 허브(Hub)는 기본적으로 들어온 패킷에 대해 패킷이 들어온 포트를 제외한 모든 포트에 대해 패킷을 보내는 리피터 장비이다. 만약 기업에서 허브를 사용하고 있고 시스템이 그 허브에 연결되어 있다면 원하던, 원치 않던 계속하여 다른 사람의 패킷을 받아보고 있었다는 것이다. 물론 네트워크 드라이버, OS 커널 등의 수준에서 맥(MAC) 주소를 보아 자신이 아닌 다른 이들의 패킷은 버려지기 때문에 쉽게 알아챌 수는 없다. 그러나 시스템의 네트워크 인터페이스 카드(Network Interface Card, NIC)를 promiscuous | + | 허브(Hub)는 기본적으로 들어온 패킷에 대해 패킷이 들어온 포트를 제외한 모든 포트에 대해 패킷을 보내는 리피터(repeater) 장비이다. 만약 기업에서 허브를 사용하고 있고 시스템이 그 허브에 연결되어 있다면 원하던, 원치 않던 계속하여 다른 사람의 패킷을 받아보고 있었다는 것이다. 물론 네트워크 드라이버, [[OS]] 커널 등의 수준에서 맥(MAC) 주소를 보아 자신이 아닌 다른 이들의 패킷은 버려지기 때문에 쉽게 알아챌 수는 없다. 그러나 시스템의 [[네트워크 인터페이스 카드]](Network Interface Card, NIC)를 프로미스큐어스 모드(promiscuous mode)로 동작하게 한다면 다른 이들의 패킷 또한 버리지 않고 받아볼 수 있다. 이때 스니핑 도구를 통해 해당 패킷을 저장하고 분석하기만 하면 된다. |
====스위칭 환경에서의 스니핑 ==== | ====스위칭 환경에서의 스니핑 ==== | ||
* 스위치 재밍(Switch Jamming) | * 스위치 재밍(Switch Jamming) | ||
− | : 스위치는 실제 수신 대상으로만 패킷을 보내는 브리지 장비다. 그러나 엉뚱한 맥 주소를 가진 패킷을 계속하여 보냄으로써 스위치가 허브처럼 동작하도록 할 수 있다. 많은 종류의 스위치가 주소 테이블이 가득 차게 되었을 때 패킷을 모든 포트로 브로드캐스팅 하는 성질을 이용한 것이다. | + | : 스위치는 실제 수신 대상으로만 패킷을 보내는 브리지(bridge) 장비다. 그러나 엉뚱한 맥 주소를 가진 패킷을 계속하여 보냄으로써 스위치가 허브처럼 동작하도록 할 수 있다. 많은 종류의 스위치가 주소 테이블이 가득 차게 되었을 때 패킷을 모든 포트로 브로드캐스팅 하는 성질을 이용한 것이다. |
* 에이알피 리다이렉트(ARP Redirect) | * 에이알피 리다이렉트(ARP Redirect) | ||
− | : 대표적인 툴로 | + | : 대표적인 툴로 디스니프(Dsniff)와 같은 툴이 이 방법에 의한 스니핑을 제공한다. 네트워크상에서 패킷이 보내질 때 목적지의 아이피 주소를 갖고 해당 목적지가 어떤 맥 주소를 사용하는지를 요청하는데 이를 에이알피 리퀘스트라고 한다. 에이알피 리퀘스트(ARP Request)는 네트워크상에 브로드캐스팅되어 모든 호스트가 그 패킷을 받게 되고 해당 아이피를 가진 호스트는 그런 아이피를 사용하는 것은 나라고 에이알피 리플라이(ARP Reply)를 주게 된다. |
* 아이씨엠피 리다이렉트(ICMP Redirect) | * 아이씨엠피 리다이렉트(ICMP Redirect) | ||
− | : 아이씨엠피 프로토콜은 네트워크상의 오류 메시지 전송, | + | : 아이씨엠피 프로토콜은 네트워크상의 오류 메시지 전송, 트러블 슈팅(trouble shooting) 등을 위해 사용되는데 그 중 아이씨엠피 리다이렉트 메시지를 이용한 스니핑 방법이다. 기본적으로 에이알피 리다이렉트의 경우와 마찬가지로 공격 대상 시스템으로 패킷이 오도록 만드는 것이다. 네트워크상에 라우터가 여러 대 존재할 때 비효율적인 라우팅 경로가 존재한다면 라우터에 대해 이를 수정할 것을 권고하는 아이씨엠피 리다이렉트 메시지가 보내진다. 공격자는 이를 악용한 아이씨엠피 리다이렉트 메시지리를 보내 패킷이 자신으로 보내지 않도록 한다. |
* 아이씨엠피 라우터 어드버타이스먼트(ICMP Router Advertisement) | * 아이씨엠피 라우터 어드버타이스먼트(ICMP Router Advertisement) | ||
25번째 줄: | 25번째 줄: | ||
: 스위치는 기본적으로 맥 주소를 통해 패킷이 어떤 목적지로 보내질지를 결정한다. 응답으로 패킷이 오게 되면 맥 주소 테이블에 해당 정보가 입력되어 다음부터는 응답이 오게 된 포트로 보내게 된다. 그러나 공격자가 공격 대상 시스템의 맥 주소를 가지는 패킷을 출발지 맥 주소로 하는 패킷으로 계속하여 보내면 스위치의 맥 주소 테이블에는 공격자 맥 주소가 등록된다. 따라서 스위치는 패킷을 공격자에게 보내게 된다. | : 스위치는 기본적으로 맥 주소를 통해 패킷이 어떤 목적지로 보내질지를 결정한다. 응답으로 패킷이 오게 되면 맥 주소 테이블에 해당 정보가 입력되어 다음부터는 응답이 오게 된 포트로 보내게 된다. 그러나 공격자가 공격 대상 시스템의 맥 주소를 가지는 패킷을 출발지 맥 주소로 하는 패킷으로 계속하여 보내면 스위치의 맥 주소 테이블에는 공격자 맥 주소가 등록된다. 따라서 스위치는 패킷을 공격자에게 보내게 된다. | ||
− | * 스위치에서 SPAN | + | * 스위치에서 SPAN 및 Monitorport 설정 |
: 대다수의 스위치는 포트 모니터링(Port Monitoring) 기능을 가지고 있는데, 이는 특정 포트로 주고 받아지는 패킷을 또 다른 모니터 포트로 전송해주는 옵션이다. 공격자가 스위치에 접근 권한을 얻어내어 위와 같은 설정을 적용함으로 공격자 시스템에 연결된 포트로 보낼 수 있다. 이는 매우 어려워 보이지만 디폴트로 설정된 스위치의 경우 해당 스위치의 사용자 아이디, 패스워드를 인터넷 검색사이트를 통해 얻어낼 수 있기 때문에 매우 쉬운 일이다.<ref name="리얼">REAL STORY, 〈[https://kama1204.tistory.com/entry/IT-%EC%9A%A9%EC%96%B4-%EC%8A%A4%EB%8B%88%ED%95%91-Sniffing IT 용어 스니핑 ( Sniffing )]〉, 《티스토리》, 2013-06-12</ref> | : 대다수의 스위치는 포트 모니터링(Port Monitoring) 기능을 가지고 있는데, 이는 특정 포트로 주고 받아지는 패킷을 또 다른 모니터 포트로 전송해주는 옵션이다. 공격자가 스위치에 접근 권한을 얻어내어 위와 같은 설정을 적용함으로 공격자 시스템에 연결된 포트로 보낼 수 있다. 이는 매우 어려워 보이지만 디폴트로 설정된 스위치의 경우 해당 스위치의 사용자 아이디, 패스워드를 인터넷 검색사이트를 통해 얻어낼 수 있기 때문에 매우 쉬운 일이다.<ref name="리얼">REAL STORY, 〈[https://kama1204.tistory.com/entry/IT-%EC%9A%A9%EC%96%B4-%EC%8A%A4%EB%8B%88%ED%95%91-Sniffing IT 용어 스니핑 ( Sniffing )]〉, 《티스토리》, 2013-06-12</ref> | ||
=== 탐지 방법 === | === 탐지 방법 === | ||
− | * 핑(Ping)을 이용한 탐지 : 대부분의 스니핑은 TCP/ | + | * [[핑]](Ping)을 이용한 탐지: 대부분의 스니핑은 [[TCP/IP]]에서 동작하기 때문에 요청(Request)를 받으면 응답(Response)하는 특성이 있다. 이를 이용해 의심 가는 호스트의 네트워크에 존재하지 않는 [[맥]] 주소를 위장하여 보낸다. 만약 대상 컴퓨터가 이에 응답하는 메시지(ICMP Echo Reply)를 보내면 해당 호스트가 스니핑을 하는 것이다. |
− | * 에이알피(ARP)를 이용한 감지 : 위조된 에이알피 요청을 보냈을 때 에이알피 응답이 오면 프로미스큐어스 | + | * [[에이알피]](ARP)를 이용한 감지: 위조된 에이알피 요청을 보냈을 때 에이알피 응답이 오면 프로미스큐어스 모드(promiscuous mode)로 설정된 것이므로 스니핑을 의심할 수 있다. |
− | * 디엔에스(DNS)를 이용한 탐지 : 일반적으로 스니핑 프로그램은 사용자의 편의를 위해 스니핑한 시스템의 아이피 주소에 디엔에스에 대한 이름 해석과정을 수행한다. | + | * [[디엔에스]](DNS)를 이용한 탐지: 일반적으로 스니핑 프로그램은 사용자의 편의를 위해 스니핑한 시스템의 아이피 주소에 디엔에스에 대한 이름 해석과정을 수행한다. |
− | * 유인을 이용한 탐지 : 가짜 아이디와 패스워드를 네트워크에 뿌리고 공격자가 이 아이디와 패스워드를 이용하여 접속을 시도할 때 스니퍼를 탐지한다. | + | * 유인을 이용한 탐지: 가짜 아이디와 패스워드를 네트워크에 뿌리고 공격자가 이 아이디와 패스워드를 이용하여 접속을 시도할 때 스니퍼를 탐지한다. |
− | * 에이알피 와치(ARP Watch)를 이용한 탐지 : 맥 주소와 아이피 주소의 매칭 값을 초기에 저장하고 에이알피 트래픽을 모니터링하여 이를 변하게 하는 패킷이 탐지되면 관리자에게 메일로 알려주는 툴이다.<ref name="자니">차니, 〈[https://m.blog.naver.com/PostView.nhn?blogId=pgh7092&logNo=221144092275&proxyReferer=https%3A%2F%2Fwww.google.com%2F 스니핑(Sniffing) 공격의 개념과 탐지방법]〉, 《네이버 블로그》, 2017-11-21</ref> | + | * [[에이알피 와치]](ARP Watch)를 이용한 탐지: 맥 주소와 아이피 주소의 매칭 값을 초기에 저장하고 에이알피 트래픽을 모니터링하여 이를 변하게 하는 패킷이 탐지되면 관리자에게 메일로 알려주는 툴이다.<ref name="자니">차니, 〈[https://m.blog.naver.com/PostView.nhn?blogId=pgh7092&logNo=221144092275&proxyReferer=https%3A%2F%2Fwww.google.com%2F 스니핑(Sniffing) 공격의 개념과 탐지방법]〉, 《네이버 블로그》, 2017-11-21</ref> |
=== 스니핑에 취약한 프로토콜 === | === 스니핑에 취약한 프로토콜 === | ||
− | + | [[패킷]]을 악의적인 사용자가 가로채는 것은 그리 어려운 일이 아니다. 이런 시도를 탐지하는 방법도 있지만, 완전히 봉쇄하는 것은 불가능하다고 볼 수 있다. 하지만 이렇게 얻어낸 패킷이 모두 유용한 것은 아니며, 암호화되지 않거나 암호화되더라도 너무도 간단한 방법으로 되어 있기 때문에 공격자가 쉬운 방법으로도 복호화 프로토콜에 사용되는 패킷을 이용하여 해킹을 시도할 수 있다. 이런 종류의 프로토콜을 스니핑에 취약한 프로토콜이라고 한다. | |
− | * Telnet, Rlogin | + | |
− | : | + | * [[텔넷]](Telnet), [[알로긴]](Rlogin): 텔넷, 알로긴의 사용자 아이디, 패스워드를 비롯한 모든 통신의 내용은 [[암호화]]되지 않아 모든 통신 내용을 쉽게 볼 수 있다. |
− | * HTTP | + | |
− | : HTTP의 사용자 인증으로 많이 사용되는 | + | * [[HTTP]]: HTTP의 사용자 인증으로 많이 사용되는 [[HTTP 기본 인증]](HTTP basic authentication)방법은 아주 기본적인 방법으로 [[부호화]]되기 때문에 쉽게 사용자 아이디, 패스워드 정보를 얻어낼 수 있다. |
− | * | + | |
− | + | * [[간이 망 관리 프로토콜]](SNMP, Simple Network Management Protocol): 간이 망 관리 프로토콜이라는 이름처럼 보안을 거의 고려하지 않았다. SNMP의 패스워드와 같은 역할을 하는 커뮤니티 이름을 비롯한 모든 통신 내용이 암호화 되지 않는다.<ref name="자니"></ref> | |
+ | |||
+ | ===방어 기법=== | ||
+ | 스위치에 브로드캐스트 도메인, 맥 주소 수동 설정 등을 함으로써 패킷을 가로채는 시도를 줄일 수는 있으나, 다른 사용자가 패킷을 가로채는 시도를 원천 봉쇄하는 것은 불가능하다. 따라서 패킷을 가로채더라도 그것의 내용을 가지고 어떠한 행동조차 할 수 없도록 암호화 기법을 이용하는 것이 가장 일반적이고 중요한 스니핑 방어 기법이라고 할 수 있다. | ||
+ | |||
+ | * [[SSL]] 적용: SSL은 인터넷에서 데이터를 안전하게 전송하기 위한 인터넷 통신 규약 프로토콜이다. HTTP, POP, SMTP, 테넷 등은 SSL을 적용하여 HTTPS, IMAPS, POPS, Telnets 등으로 할 수 있다. SSL은 물론 HTTP에 가장 많이 활용되며 이를 적용하여 사용자의 아이디, 패스워드 및 전자 상거래 결재 정보 등 웹 서핑의 내용을 암호화 할 수 있다. | ||
+ | |||
+ | * [[PGP]], [[S/MIME]]: PGP와 S/MIME는 전자우편의 내용을 보호하기 위한 암호화 기술이다. 인터넷 상에서 전자 메일을 전송할 때 쓰이는 표준적인 프로토콜인 [[SMTP]](simple mail transfer protocol)으로 보내지는 메일은 기본적으로 암호화 되지 않기 때문에 스니핑하여 그 내용을 쉽게 얻어낼 수 있다. PGP, S/MME 등을 이용하여 메일에 대한 암호화 기능을 제공할 수 있다. | ||
+ | |||
+ | * [[SSH]]: SSH는 PGP와 마찬가지로 공개 키 방식의 암호 방식을 사용하여 원격지 시스템에 접근하여 암호화된 메시지를 전송할 수 있는 시스템이다. SSH는 암호화 통신을 제공하여 텔넷, [[FTP]], [[RCP]], 알로긴 등을 대치할 수 있다. | ||
+ | |||
+ | * 사설망 혹은 가상사설망([[VPN]]): 스니핑이 우려되는 네트워크 상에 전용선(leased line)으로 직접 연결함으로 중간에 도청되는 것을 막는 것이 사설망이다. 하지만 이는 거리가 멀어질수록 인터넷을 이용하는 것에 비해 비용이 매우 비싸질 수밖에 없다. 인터넷 회선을 이용하여 사설망의 효과를 줄 수 있는 것이 VPN이다. VPN 장비 간의 암호화를 통해 도청을 막을 수 있다. | ||
== 활용 == | == 활용 == | ||
− | === 윈도우 기반 | + | === 윈도우 기반 === |
− | + | [[윈도우]](Windows) 기반의 스니핑 도구는 다음과 같다. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | * [[이더리얼]](Ethereal): 유닉스용 Ethereal을 윈도우로 [[포팅]]한 것으로 [[오픈소스]]이다. | |
− | * | + | * [[윈덤프]](Windump): [[티씨피덤프]](Tcpdump)를 윈도우 용으로 포팅한 것이다. |
− | * | + | * [[NAI 스니퍼]](NAI Sniffer): 스니핑뿐 아니라, 다양한 통계 기능을 제공한다. |
− | * | + | * [[이더피크]](EtherPeek): 스니핑뿐 아니라, 다양한 통계 기능을 제공한다. |
− | * | + | * [[에어로피크]](AiroPeek): 이더피크를 제조한 [[와일드패킷]](WildPackets) 사의 제품으로 무선 네트워크상의 스니핑 도구이다. |
− | * AiroPeek : | + | * [[카인 엔 아벨]](Cain&Abel): 스니핑 기능 외에도 [[패스워드 크래킹]] 등 다양한 기능이 포함된 통합 툴이다. 스위칭 환경에서의 스니핑 및 각종 [[프로토콜]]에 대한 복호화 기능이 있다.<ref name="자니"></ref> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | + | === 유닉스 기반 === |
− | * | + | [[유닉스]](UNIX) 기반의 스니핑 도구는 다음과 같다. |
− | * 스니핑 | + | |
− | * | + | * [[티씨피덤프]](Tcpdump): [[커맨드 라인]](Command-line) 툴로 해킹보다는 [[트러블슈팅]](trouble shooting)의 용도로 가장 많이 사용되는 도구이다. |
+ | * [[이더리얼]](Ethereal): [[GUI]] 기반의 유닉스용 GUI 스니핑 도구로서 매우 훌륭한 성능을 가진다. | ||
+ | * [[스눕]](Snoop): [[썬 솔라리스]](Sun Solaris) 시스템 등에서 기본적으로 제공하는 스니핑 도구이다. | ||
+ | * [[스니핏]](Sniffit): 연결된 세션 내용 정보 등을 쉽게 볼 수 있다. | ||
+ | * [[에어로피크]](AiroPeek): 이더피크을 제조한 와일드패킷사의 제품으로 무선 네트워크상의 스니핑 도구이다. | ||
+ | * [[디스니프]](Dsniff): [[송덕준]]이 개발한 스위칭 환경에서의 해킹 도구로ㅡ 스니핑 툴만 포함된 것이 아니라 [[SSH]]나 [[SSL]]에 대한 [[중간자 공격]] 툴이 포함되어 있고 각종 프로토콜에 대한 사용자 아이디와 비밀번호 정보를 쉽게 수집해준다. | ||
+ | * [[린스니프]](LinSniff): 각종 프로토콜에 대한 사용자 아이디와 비밀번호를 쉽게 수집하고 가볍지만 디스니프보다는 적은 프로토콜을 지원한다. | ||
+ | * [[이스니프]](Esniff): 프랙 매거진(Phrack Magazine)에 소개된 유닉스 기반의 스니핑 도구이다. | ||
+ | * [[이더캡]](Ettercap): 스위칭 환경에서의 스니핑 도구이다. | ||
+ | * [[SNMP 스니프]](SnmpSniff): 간이 망 관리 프로토콜 전용 스니핑 도구이다.<ref name="자니"></ref> | ||
{{각주}} | {{각주}} | ||
82번째 줄: | 92번째 줄: | ||
== 같이 보기 == | == 같이 보기 == | ||
+ | * [[스니퍼]] | ||
* [[해킹]] | * [[해킹]] | ||
* [[에스큐엘 인젝션]] | * [[에스큐엘 인젝션]] | ||
* [[디엔에스 스푸핑]] | * [[디엔에스 스푸핑]] | ||
− | {{ | + | {{보안|검토 필요}} |
− | |||
− | |||
− |
2023년 4월 8일 (토) 18:07 기준 최신판
스니핑(sniffing)은 네트워크 중간에서 자신이 아닌 남의 패킷 정보를 도청하는 해킹 기법의 하나이다. 스니핑을 할 수 있도록 하는 도구를 스니퍼(Sniffer)라고 하며 스니퍼를 설치하는 과정은 전화기 도청 장치를 설치하는 과정에 비유될 수 있다.
목차
개요[편집]
스니핑은 보안의 기본 요소 중 기밀성을 해치는 공격 방법으로, 스니핑 공격은 웹호스팅, 인터넷데이터센터(IDC) 등과 같이 여러 업체가 같은 네트워크를 공유하는 환경에서는 매우 위협적인 공격이 될 수 있다. 하나의 시스템이 공격당하게 되면 그 시스템을 이용하는 네트워크를 도청하게 되고, 다른 시스템의 사용자 아이디와 비밀번호를 알아낼 수 있기 때문이다. 네트워크 내의 패킷들은 대부분 암호화되어 있지 않아 해킹에 이용당하기가 쉽다. 비록 스위칭 환경의 네트워크를 구축하여 스니핑을 어렵게 할 수는 있지만 이를 우회할 수 있는 많은 공격 방법이 존재하고 있다.
특징[편집]
공격 기법[편집]
허브 환경에서의 스니핑[편집]
허브(Hub)는 기본적으로 들어온 패킷에 대해 패킷이 들어온 포트를 제외한 모든 포트에 대해 패킷을 보내는 리피터(repeater) 장비이다. 만약 기업에서 허브를 사용하고 있고 시스템이 그 허브에 연결되어 있다면 원하던, 원치 않던 계속하여 다른 사람의 패킷을 받아보고 있었다는 것이다. 물론 네트워크 드라이버, OS 커널 등의 수준에서 맥(MAC) 주소를 보아 자신이 아닌 다른 이들의 패킷은 버려지기 때문에 쉽게 알아챌 수는 없다. 그러나 시스템의 네트워크 인터페이스 카드(Network Interface Card, NIC)를 프로미스큐어스 모드(promiscuous mode)로 동작하게 한다면 다른 이들의 패킷 또한 버리지 않고 받아볼 수 있다. 이때 스니핑 도구를 통해 해당 패킷을 저장하고 분석하기만 하면 된다.
스위칭 환경에서의 스니핑[편집]
- 스위치 재밍(Switch Jamming)
- 스위치는 실제 수신 대상으로만 패킷을 보내는 브리지(bridge) 장비다. 그러나 엉뚱한 맥 주소를 가진 패킷을 계속하여 보냄으로써 스위치가 허브처럼 동작하도록 할 수 있다. 많은 종류의 스위치가 주소 테이블이 가득 차게 되었을 때 패킷을 모든 포트로 브로드캐스팅 하는 성질을 이용한 것이다.
- 에이알피 리다이렉트(ARP Redirect)
- 대표적인 툴로 디스니프(Dsniff)와 같은 툴이 이 방법에 의한 스니핑을 제공한다. 네트워크상에서 패킷이 보내질 때 목적지의 아이피 주소를 갖고 해당 목적지가 어떤 맥 주소를 사용하는지를 요청하는데 이를 에이알피 리퀘스트라고 한다. 에이알피 리퀘스트(ARP Request)는 네트워크상에 브로드캐스팅되어 모든 호스트가 그 패킷을 받게 되고 해당 아이피를 가진 호스트는 그런 아이피를 사용하는 것은 나라고 에이알피 리플라이(ARP Reply)를 주게 된다.
- 아이씨엠피 리다이렉트(ICMP Redirect)
- 아이씨엠피 프로토콜은 네트워크상의 오류 메시지 전송, 트러블 슈팅(trouble shooting) 등을 위해 사용되는데 그 중 아이씨엠피 리다이렉트 메시지를 이용한 스니핑 방법이다. 기본적으로 에이알피 리다이렉트의 경우와 마찬가지로 공격 대상 시스템으로 패킷이 오도록 만드는 것이다. 네트워크상에 라우터가 여러 대 존재할 때 비효율적인 라우팅 경로가 존재한다면 라우터에 대해 이를 수정할 것을 권고하는 아이씨엠피 리다이렉트 메시지가 보내진다. 공격자는 이를 악용한 아이씨엠피 리다이렉트 메시지리를 보내 패킷이 자신으로 보내지 않도록 한다.
- 아이씨엠피 라우터 어드버타이스먼트(ICMP Router Advertisement)
- 특정 호스트가 자신이 라우터라고 다른 호스트들에게 알리는 메시지이다. 공격자는 이를 악용하여 다른 호스트들이 자신을 라우터라고 생각하게 만들어 패킷이 자신으로 보내지도록 한다.[1]
- 맥 스푸핑
- 스위치는 기본적으로 맥 주소를 통해 패킷이 어떤 목적지로 보내질지를 결정한다. 응답으로 패킷이 오게 되면 맥 주소 테이블에 해당 정보가 입력되어 다음부터는 응답이 오게 된 포트로 보내게 된다. 그러나 공격자가 공격 대상 시스템의 맥 주소를 가지는 패킷을 출발지 맥 주소로 하는 패킷으로 계속하여 보내면 스위치의 맥 주소 테이블에는 공격자 맥 주소가 등록된다. 따라서 스위치는 패킷을 공격자에게 보내게 된다.
- 스위치에서 SPAN 및 Monitorport 설정
- 대다수의 스위치는 포트 모니터링(Port Monitoring) 기능을 가지고 있는데, 이는 특정 포트로 주고 받아지는 패킷을 또 다른 모니터 포트로 전송해주는 옵션이다. 공격자가 스위치에 접근 권한을 얻어내어 위와 같은 설정을 적용함으로 공격자 시스템에 연결된 포트로 보낼 수 있다. 이는 매우 어려워 보이지만 디폴트로 설정된 스위치의 경우 해당 스위치의 사용자 아이디, 패스워드를 인터넷 검색사이트를 통해 얻어낼 수 있기 때문에 매우 쉬운 일이다.[2]
탐지 방법[편집]
- 핑(Ping)을 이용한 탐지: 대부분의 스니핑은 TCP/IP에서 동작하기 때문에 요청(Request)를 받으면 응답(Response)하는 특성이 있다. 이를 이용해 의심 가는 호스트의 네트워크에 존재하지 않는 맥 주소를 위장하여 보낸다. 만약 대상 컴퓨터가 이에 응답하는 메시지(ICMP Echo Reply)를 보내면 해당 호스트가 스니핑을 하는 것이다.
- 에이알피(ARP)를 이용한 감지: 위조된 에이알피 요청을 보냈을 때 에이알피 응답이 오면 프로미스큐어스 모드(promiscuous mode)로 설정된 것이므로 스니핑을 의심할 수 있다.
- 디엔에스(DNS)를 이용한 탐지: 일반적으로 스니핑 프로그램은 사용자의 편의를 위해 스니핑한 시스템의 아이피 주소에 디엔에스에 대한 이름 해석과정을 수행한다.
- 유인을 이용한 탐지: 가짜 아이디와 패스워드를 네트워크에 뿌리고 공격자가 이 아이디와 패스워드를 이용하여 접속을 시도할 때 스니퍼를 탐지한다.
- 에이알피 와치(ARP Watch)를 이용한 탐지: 맥 주소와 아이피 주소의 매칭 값을 초기에 저장하고 에이알피 트래픽을 모니터링하여 이를 변하게 하는 패킷이 탐지되면 관리자에게 메일로 알려주는 툴이다.[3]
스니핑에 취약한 프로토콜[편집]
패킷을 악의적인 사용자가 가로채는 것은 그리 어려운 일이 아니다. 이런 시도를 탐지하는 방법도 있지만, 완전히 봉쇄하는 것은 불가능하다고 볼 수 있다. 하지만 이렇게 얻어낸 패킷이 모두 유용한 것은 아니며, 암호화되지 않거나 암호화되더라도 너무도 간단한 방법으로 되어 있기 때문에 공격자가 쉬운 방법으로도 복호화 프로토콜에 사용되는 패킷을 이용하여 해킹을 시도할 수 있다. 이런 종류의 프로토콜을 스니핑에 취약한 프로토콜이라고 한다.
- HTTP: HTTP의 사용자 인증으로 많이 사용되는 HTTP 기본 인증(HTTP basic authentication)방법은 아주 기본적인 방법으로 부호화되기 때문에 쉽게 사용자 아이디, 패스워드 정보를 얻어낼 수 있다.
- 간이 망 관리 프로토콜(SNMP, Simple Network Management Protocol): 간이 망 관리 프로토콜이라는 이름처럼 보안을 거의 고려하지 않았다. SNMP의 패스워드와 같은 역할을 하는 커뮤니티 이름을 비롯한 모든 통신 내용이 암호화 되지 않는다.[3]
방어 기법[편집]
스위치에 브로드캐스트 도메인, 맥 주소 수동 설정 등을 함으로써 패킷을 가로채는 시도를 줄일 수는 있으나, 다른 사용자가 패킷을 가로채는 시도를 원천 봉쇄하는 것은 불가능하다. 따라서 패킷을 가로채더라도 그것의 내용을 가지고 어떠한 행동조차 할 수 없도록 암호화 기법을 이용하는 것이 가장 일반적이고 중요한 스니핑 방어 기법이라고 할 수 있다.
- SSL 적용: SSL은 인터넷에서 데이터를 안전하게 전송하기 위한 인터넷 통신 규약 프로토콜이다. HTTP, POP, SMTP, 테넷 등은 SSL을 적용하여 HTTPS, IMAPS, POPS, Telnets 등으로 할 수 있다. SSL은 물론 HTTP에 가장 많이 활용되며 이를 적용하여 사용자의 아이디, 패스워드 및 전자 상거래 결재 정보 등 웹 서핑의 내용을 암호화 할 수 있다.
- PGP, S/MIME: PGP와 S/MIME는 전자우편의 내용을 보호하기 위한 암호화 기술이다. 인터넷 상에서 전자 메일을 전송할 때 쓰이는 표준적인 프로토콜인 SMTP(simple mail transfer protocol)으로 보내지는 메일은 기본적으로 암호화 되지 않기 때문에 스니핑하여 그 내용을 쉽게 얻어낼 수 있다. PGP, S/MME 등을 이용하여 메일에 대한 암호화 기능을 제공할 수 있다.
- SSH: SSH는 PGP와 마찬가지로 공개 키 방식의 암호 방식을 사용하여 원격지 시스템에 접근하여 암호화된 메시지를 전송할 수 있는 시스템이다. SSH는 암호화 통신을 제공하여 텔넷, FTP, RCP, 알로긴 등을 대치할 수 있다.
- 사설망 혹은 가상사설망(VPN): 스니핑이 우려되는 네트워크 상에 전용선(leased line)으로 직접 연결함으로 중간에 도청되는 것을 막는 것이 사설망이다. 하지만 이는 거리가 멀어질수록 인터넷을 이용하는 것에 비해 비용이 매우 비싸질 수밖에 없다. 인터넷 회선을 이용하여 사설망의 효과를 줄 수 있는 것이 VPN이다. VPN 장비 간의 암호화를 통해 도청을 막을 수 있다.
활용[편집]
윈도우 기반[편집]
윈도우(Windows) 기반의 스니핑 도구는 다음과 같다.
- 이더리얼(Ethereal): 유닉스용 Ethereal을 윈도우로 포팅한 것으로 오픈소스이다.
- 윈덤프(Windump): 티씨피덤프(Tcpdump)를 윈도우 용으로 포팅한 것이다.
- NAI 스니퍼(NAI Sniffer): 스니핑뿐 아니라, 다양한 통계 기능을 제공한다.
- 이더피크(EtherPeek): 스니핑뿐 아니라, 다양한 통계 기능을 제공한다.
- 에어로피크(AiroPeek): 이더피크를 제조한 와일드패킷(WildPackets) 사의 제품으로 무선 네트워크상의 스니핑 도구이다.
- 카인 엔 아벨(Cain&Abel): 스니핑 기능 외에도 패스워드 크래킹 등 다양한 기능이 포함된 통합 툴이다. 스위칭 환경에서의 스니핑 및 각종 프로토콜에 대한 복호화 기능이 있다.[3]
유닉스 기반[편집]
유닉스(UNIX) 기반의 스니핑 도구는 다음과 같다.
- 티씨피덤프(Tcpdump): 커맨드 라인(Command-line) 툴로 해킹보다는 트러블슈팅(trouble shooting)의 용도로 가장 많이 사용되는 도구이다.
- 이더리얼(Ethereal): GUI 기반의 유닉스용 GUI 스니핑 도구로서 매우 훌륭한 성능을 가진다.
- 스눕(Snoop): 썬 솔라리스(Sun Solaris) 시스템 등에서 기본적으로 제공하는 스니핑 도구이다.
- 스니핏(Sniffit): 연결된 세션 내용 정보 등을 쉽게 볼 수 있다.
- 에어로피크(AiroPeek): 이더피크을 제조한 와일드패킷사의 제품으로 무선 네트워크상의 스니핑 도구이다.
- 디스니프(Dsniff): 송덕준이 개발한 스위칭 환경에서의 해킹 도구로ㅡ 스니핑 툴만 포함된 것이 아니라 SSH나 SSL에 대한 중간자 공격 툴이 포함되어 있고 각종 프로토콜에 대한 사용자 아이디와 비밀번호 정보를 쉽게 수집해준다.
- 린스니프(LinSniff): 각종 프로토콜에 대한 사용자 아이디와 비밀번호를 쉽게 수집하고 가볍지만 디스니프보다는 적은 프로토콜을 지원한다.
- 이스니프(Esniff): 프랙 매거진(Phrack Magazine)에 소개된 유닉스 기반의 스니핑 도구이다.
- 이더캡(Ettercap): 스위칭 환경에서의 스니핑 도구이다.
- SNMP 스니프(SnmpSniff): 간이 망 관리 프로토콜 전용 스니핑 도구이다.[3]
각주[편집]
- ↑ exerceo, 〈스푸핑과 스니핑!!〉, 《이글루스》, 2006-11-22
- ↑ REAL STORY, 〈IT 용어 스니핑 ( Sniffing )〉, 《티스토리》, 2013-06-12
- ↑ 3.0 3.1 3.2 3.3 차니, 〈스니핑(Sniffing) 공격의 개념과 탐지방법〉, 《네이버 블로그》, 2017-11-21
참고자료[편집]
- exerceo, 〈스푸핑과 스니핑!!〉, 《이글루스》, 2006-11-22
- REAL STORY, 〈IT 용어 스니핑 ( Sniffing )〉, 《티스토리》, 2013-06-12
- 차니, 〈스니핑(Sniffing) 공격의 개념과 탐지방법〉, 《네이버 블로그》, 2017-11-2
같이 보기[편집]