본문 바로가기
정보보호 (Security)

해킹 툴 (트로이목마,백도어,스니핑)

by 날으는물고기 2009. 2. 12.

해킹 툴 (트로이목마,백도어,스니핑)

1. 트로이형 해킹 프로그램

 

. 최근의 트로이목마 프로그램들

 

- 최근 유닉스 시스템뿐만 아니라 윈도우즈 시스템에서도 각종 트로이목마가 등장하고 있어 주의를 요한다.

 

- 다음은 최근에 발견되고 있는 트로이목마들이다.

 

l 인터넷 익스플로러(IE) 거짓 업그레이드

 

- 마이크로소프트사의 IE 웹브라우저를 무료로 업그레이드하라는 내용의 전자 우편이 광범위하게 배포되고 있다.

 

- 그러나 마이크로소프트사는 패치나 업그레이드를 전자우편을 통해서 제공하지 않고 전자우편을 통해서는 보안 게시(security bulletins)만을 한다고 발표했다.

 

- 메일 메시지에는 Ie0199.exe라는 실행 프로그램이 첨부되어 있다. 사용자가 무심코 첨부된 Ie0199.exe 프로그램을 설치하여 실행하게 되면 프로그램은 몇몇 시스템 파일에 대한 수정과 다른 원격 시스템으로의 접속을 시도하는 행위를 한다.

 

l 트로이 목마 버젼의 TCP Wrappers

 

- TCP Wrappers 유닉스 시스템에서 네트워크 서비스를 필터링하고 모니터링 있는 유용한 도구로써 시스템 보안을 위해서 광범위하게 사용되고 있다.

 

- 최근 공격자에 의해 소스가 변경되어 트로이목마가 숨겨진 tcp_ wrappers_7.6.tar.gz 배포되고 있다. 트로이목마는 1999 1 21 이후, 몇몇 FTP 서버에서 발견되고 있다.

- 트로이목마 버전의 TCP Wrapper 소스 포트가 421번을 가지고 있는 접속이 시도될 경우 root로의 접근을 허락한다. 또한 트로이목마 버전은 컴파일 도중에 사용자 계정과 시스템의 정보를 'whoami' 'uname -a' 이용하여 얻은 외부에 전자메일을 통해 발송한다.

 

- 트로이 목마 버전의 TCP Wrapper 동작 중인 호스트에 공격자는 시스템 관리자 권한으로 불법 침입이 가능해진다.

 

l 트로이목마 버젼의 util-linux

 

- util-linux 리눅스 시스템을 위한 몇몇 기본적인 유틸리티를 포함하는 배포판이다.

 

- 1999 1 22일에서 1 24 사이에 최소한 ftp 서버의 util-linux-2g.tar.gz 파일에 트로이목마가 있다.

 

- 트로이목마는 미러 FTP 사이트를 통해서도 배포될 있었다.

 

- 트로이목마 버전의 util-linux에는 /bin/login 수정되어 있다.

 

- 수정된 코드는 호스트 이름과 로그인한 사용자의 uid 포함하는 내용을 전자우편을 통해 공격자에게 보낸다.

 

- 또한 어떤 사용자에게 명령을 실행시킬 있는 로그인 프롬프트를 제공해 주도록 수정되었다.

 

- 트로이목마가 설치되었는지 확인하기 위한 빠른 방법은 다음의 명령을 실행시켜 보는 것이다.

 

     $ strings /bin/login | grep "HELO"

 

- 실행결과 아래의 결과가 나타나면 트로이 목마 버전의 util-linux-2.9g 설치되어 있는 것이다.

 

     HELO 127.0.0.1

 

- 실행결과 아무런 출력이 없으면 트로이목마가 설치되지 않은 것이다.

 

- util-linux 개발자에 의해서 제공되는 사이트에서 안전한 파일을 받을 있다.

 

  ftp://ftp.win.tue.nl/pub/linux/utils/util-linux/util-linux-2.9h.tar.gz

 

. 백도어의 종류

 

l 패스워드 크래킹 백도어

 

- 유닉스 시스템에 접속하기 위한 최초의 백도어

 

- 고전적인 침입 방법으로 백도어들은 패스워드 크래커를 실행하여 취약한 패스워드를 가진 계정을 알아낸다.

 

- 이러한 계정들은 시스템에 침입하기 위한 백도어의 가능성을 내재하고 있다.

 

- 침입자들은 취약한 패스워드를 가진 사용하지 않는 계정들을 탐색하여 패스워드를 어려운 계정으로 바꾸어버린다.

 

- 시스템 관리자가 유추 가능한 취약한 패스워드를 찾아 사용을 금지시키려 해도 이미 이러한 계정을 찾을 없는 상태가 된다.

 

l Rhosts + + 백도어

 

- 네트워크에 연결된 유닉스 시스템에서 사용의 편리성을 위해 rsh, rlogin 등의 서비스를 많이 사용하고 있다.

 

- 명령어들은 호스트 이름에 의해 인증이 이루어지고 추가적인 패스워드를 묻지 않는 보안상의 취약성을 내재하고 있다.

 

- 침입자는 어떤 사람의 rhosts 파일에 "+ +" 넣어 어떤 호스트의 어떤 사용자라도 해당 사용자로 패스워드 없이 들어올 있도록 한다.

 

- 많은 침입자들은 NFS 디렉토리를 모든 호스트에 export 하고 있을 경우에 방법을 많이 사용한다.

 

- 계정들은 시스템에 침입할 있는 백도어가 된다.

- 시스템 관리자가 rhosts 파일에서 "+ +" 검사할 있으므로, 침입자는 자신이 해킹한 다른 계정을 등록하여 발견될 가능성을 줄인다.

 

l Checksum Timestamp 백도어

 

- 침입자들이 실행파일을 자신의 트로이목마 버전으로 교체시키는 경우가 있다.

 

- 많은 시스템 관리자들은 타임 스탬프와 유닉스의 sum 프로그램 등과 같은 체크섬 값에 의해 실행파일의 변경유무를 진단한다.

 

- 하지만 침입자들의 기술도 발달되어 트로이목마 프로그램의 타임 스탬프를 원래 파일의 타임 스탬프 값으로 생성시킬 있고, CRC 체크섬 값도 원래의 체크섬 값으로 가장할 있다.

 

- MD5 체크섬은 이러한 임의적인 가장이 불가능하므로 무결성 보장을 위한 도구로 권고되고 있다.

 

l Login 백도어

 

- 유닉스 시스템에서 login 프로그램은 사용자가 텔넷을 통해 시스템에 접속할 경우 패스워드 인증을 수행한다.

 

- 침입자들은 login.c 프로그램을 수정하여 특정한 백도어 패스워드가 입력될 경우 관리자가 어떤 패스워드를 설정해 놓든지 상관없이 로그인 허용하고, utmp wtmp 같은 로그파일에 기록도 하지 않도록 한다.

 

- 침입자는 침입한 흔적을 남기지 않고 시스템에 로그인하여 쉘을 획득할 있다.

 

- 시스템 관리자는 "strings"라는 명령어를 사용하여 login 실행 프로그램에 백도어 패스워드의 유무를 점검하기도 하지만, 침입자들은 백도어 패스워드를 암호화하여 저장함으로써 이러한 명령어에 의한 발견을 피할 있다.

 

- 가장 좋은 방법은 MD5 체크섬을 이용하여 이러한 백도어들을 탐지해내는 것이다.

l Telnetd 백도어

 

- 사용자가 시스템에 텔넷 접속을 , inetd 서비스가 포트를 리슨하고 있다가 in.telnetd 연결시켜 주고, in.telnetd login 프로그램을 구동한다.

 

- 어떤 침입자는 시스템 관리자가 login 프로그램을 수시로 점검하기 때문에 아예 in.telnetd 수정하는 경우도 있다.

 

- in.telnetd 사용자들로부터 터미널 종류 가지 사항을 점검한다.

 

- 일반적으로 터미널은 Xterm이나 VT100으로 설정되어 있다.

 

- 침입자는 터미널 종류가 "letmein" 특수하게 설정되어 있을 경우 인증 과정 없이 쉘을 부여하도록 in.telnetd 수정할 있다.

 

- 침입자는 어떤 서비스에 백도어를 설치하여 특정 소스 포트로부터 오는 연결에 대해서는 쉘을 부여하도록 수도 있다.

 

l Services 백도어

 

- 대부분의 네트워크 서비스들 , finger, rsh, rexec, rlogin, ftp 심지어 inetd 등은 백도어 버전이 존재한다.

 

- 프로그램들은 uucp 같이 전혀 사용되지 않는 서비스를 백도어 프로그램으로 교체하여 inetd.conf 파일에 등록하는 경우도 있다.

 

- 관리자는 시스템에서 어떤 서비스들이 제공되고 있는지 항상 점검하고, 원래 서비스가 수정되지 않았는지 MD5 체크섬에 의해서 진단해야 한다.

 

l Cronjob 백도어

 

- Cronjob 유닉스 시스템에서 특정 프로그램을 특정 시간에 구동될 있도록 한다.

 

- 예를 들면 백도어 프로그램을 Cronjob 추가하여 새벽 1시에서 2 사이에 구동되도록 하고 시간동안 시스템에 접속할 있다.

- 침입자는 cronjob에서 전형적으로 구동되는 합법적인 프로그램인 것처럼 가장한다.

 

l Library 백도어

 

- 대부분의 유닉스 시스템에서는 공유 라이브러리를 사용한다.

 

- 공유 라이브러리는 같은 루틴들을 재사용하여 프로그램의 크기를 줄이기 위해 사용한다.

 

- 어떤 침입자들은 crypt.c _crypt.c 프로그램 같은 루틴들에 백도어 프로그램을 넣어두기도 한다.

 

- login.c crypt() 루틴을 사용하게 되는데 백도어 패스워드가 사용될 경우 바로 쉘을 부여하게 된다.

 

- 관리자가 login 프로그램의 MD5 점검한다고 하더라도 백도어 코드를 찾을 없고 대다수의 관리자들이 백도어의 근원지를 찾아내기가 상당히 힘들다.

 

 - library 백도어에 대한 대책은 MD5 체크섬 점검기를 정적으로 연결하여 시스템에서 구동하는 것이다.

 

- 정적으로 연결된 프로그램은 트로이목마의 공유 라이브러리를 사용하지 않는다.

 

l Kernel 백도어

 

- kernel 유닉스 시스템이 운용되는 핵심이다. 라이브러리에서 사용되었던 같은 방법으로 MD5 체크섬을 우회할 있다.

 

- 만들어진 백도어가 설치된 커널은 관리자가 찾기 가장 어려운 백도어일 것이다.

 

- 다행히 커널 백도어 스크립트들은 널리 쓰이고 있지는 않지만 아무도 실제 얼마나 배포되어 쓰이고 있는지 모른다.

 

 

 

l 파일 시스템 백도어

 

- 침입자는 서버로부터 획득한 전리품과 데이터들을 관리자에게 발각되지 않고 저장하고자 한다.

 

- 침입자들이 저장하는 파일들은 일반적으로 해킹 스크립트의 도구박스, 백도어들, 스니퍼 로그들, 전자우편 메시지들과 같은 데이터, 소스코드 등이다.

 

- 침입자는 특정 디렉토리나 특정 파일을 숨기기 위해 "ls", "du" 그리고 "fsck" 같은 시스템 명령어들을 수정한다.

 

- 그렇지 않으면, 숨기려는 부분을 "bad" 섹트로 보이게 하고, 침입자는 숨겨진 파일을 오직 특수한 도구를 통해서만 보이게 수도 있다.

 

l Bootblock 백도어

 

- 일반 PC에서는 바이러스가 bootblock 자신을 숨기고 대부분의 바이러스 백신은 bootblock 바뀌어졌는지를 감시한다.

 

- 유닉스 시스템에서는 부트 블럭을 점검할 있는 소프트웨어가 거의 없어, 침입자들이 부트 블럭 공간에 백도어를 숨겨두기도 한다.

 

l 프로세스 은닉 백도어(Process hiding backdoors)

 

- 침입자는 그들이 구동하고 있는 프로그램들을 숨기려고 한다.

   프로그램들은 일반적으로 패스워드크래커, 스니퍼프로그램 등이다.

 

- 아래는 프로세스를 숨기는 가지 방법이다.

 

Ÿ 숨기려는 프로그램 자신의 argv[] 수정하여 다른 프로세스 이름으로 보이도록 한다.

 

Ÿ침입자는 스니퍼 프로그램을 in.syslog 같은 합법적인 서비스로 이름을 바꿀 있다. 관리자가 "ps" 등으로 어떤 프로세스들이 구동되고 있는지 점검하면 정상적인 이름들이 나타나게 된다.

 

Ÿ침입자는 라이브러리 루틴들을 수정하여 "ps" 특정 프로세스를 보여주지 못하게 있다.

Ÿ백도어 프로그램을 패치하거나 인터럽트 driven 루틴들을 삽입하여 프로세스 테이블에 나타나지 않도록 있다.

 

Ÿ커널을 수정하여 특정 프로세스를 숨기도록 수도 있다.

 

l 루트킷(Rootkit)

 

- 백도어를 설치하는 가장 인기 있는 패키지 중의 하나가 루트킷이다.

 

- 루트킷에 소개된 전형적인 백도어용 프로그램들은 다음과 같다.

 

Ÿ z2 - utmp, wtmp, lostlog로부터 특정 엔트리를 제거한다.

 

ŸEs - sun4 기반 커널들의 이더넷 스니퍼

 

Ÿ Fix - 체크섬 값을 가장하는 도구

 

Ÿ Sl - 매직 패스워드를 통하여 관리자로 로그인하는 도구

 

l 네트워크 트래픽 백도어(Network traffic backdoors)

 

- 침입자들은 시스템에서 자신들의 흔적을 숨기려고 뿐더러 가능하면 자신들의 네트워크 트래픽까지 숨기기를 원한다.

 

- 이러한 네트워크 트래픽 백도어들은 간혹 침입차단시스템(firewall) 거쳐서 침입할 있는 것들도 있다. 많은 네트워크 백도어들은 일반적으로 사용하지 않는 네트워크 포트를 사용하여 시스템에 침입하므로 관리자들이 침입자의 트래픽을 간과하기 쉽다.

 

l TCP 백도어

 

- 침입자는 침입차단시스템이 막지 않는 높은 TCP 포트에 TCP 백도어들을 설치할 있다.

 

- 관리자들은 netstat 통해서 어느 포트들이 연결을 기다리고 있고, 어느 포트가 연결되어 있는지를 점검할 있다.

 

- 이러한 백도어들은 SMTP 포트 상에서 구동될 수도 있어, e-mail 허용하는 침입차단 시스템을 통과할 있다.

 

l UDP 백도어 

 

- TCP 연결에 대해서는 이상한 행위를 알아차리기가 쉽지만, UDP 백도어는 유닉스 시스템에 접속한 상태를 netstat 등으로 알기가 쉽지 않다.

 

- 많은 침입차단시스템에서 DNS 서비스 등을 위해 UDP 패킷들을 허락하도록 설정되어 있어 침입자는 UDP 백도어를 설치하여 침입차단 시스템을 무사히 통과할 있다.

 

l ICMP 백도어 

 

- Ping ICMP 패킷을 보내고 받음으로써 시스템이 살아있는지 확인하는 가장 일반적인 방법이다.

 

- 많은 침입차단시스템들이 외부로부터 내부 시스템에 대한 ping 허락한다.

  침입자는 ping ICMP 패킷에 데이터를 추가하여 ping 하고 있는 시스템과 쉘을 제공받을 있도록 한다.

 

- 시스템 관리자는 다량의 ping 패킷들을 발견하겠지만 패킷 속의 데이터를 보지 않는 이상 침입 사실을 없다.

 

l 암호화된 링크 

 

- 관리자가 스니퍼를 설치하여 쉘에 접근하려는 사람을 찾으려고 있다.

 

- 하지만 침입자는 네트워크 트래픽 백도어를 암호화하여 실제 시스템간에 어떤 데이터가 전송되고 있는지를 숨긴다.

 

l Windows NT 

 

- Windows NT 유닉스 시스템처럼 단일 시스템에 다수 사용자들을 접속하도록 허락하지 않는다.

 

- 이는 침입자가 Windows NT 시스템에 침입하여 백도어를 설치하고 시스템을 공격하는 것을 어렵게 한다.

- 하지만 Windows NT 다수 사용자 기술이 발달됨에 따라 Windows NT 시스템에 대한 공격 사례가 늘어나고 있다.

 

- 요즘 Windows NT 위한 telnet 데몬이 이미 나와 있고, 네트워크 트래픽 백도어를 Windows NT 시스템에 설치하는 것이 쉬워졌다.

4. 스니핑

 

. 개요

 

l 스니핑이란 ?

 

- 스니퍼(sniffer) 원래 Network Associate사의 등록상표

 

- 현재는 PC kleenex처럼 일반적인 용어로 사용

 

- "sniff"라는 단어의 의미(냄새를 맡다, 코를 킁킁거리다)에서도 있듯이 스니퍼는 "컴퓨터 네트워크 상에 흘러 다니는 트래픽을 엿듣는 도청장치"라고 말할 있다.

 

- "스니핑"이란 이러한 스니퍼를 이용하여 네트워크상의 데이터를 도청하는 행위를 말한다.

 

- 이러한 스니핑 공격은 호스팅, 인터넷데이터센터(IDC) 등과 같이 여러 업체가 같은 네트워크를 공유하는 환경에서는 매우 위협적인 공격이 있다.

 

- 하나의 시스템이 공격당하게 되면 시스템을 이용하여 네트워크를 도청하게되고, 다른 시스템의 User ID/Passwd 알아내게 된다.

 

- 비록 스위칭 환경의 네트워크를 구축하여 스니핑을 어렵게 수는 있지만 이를 우회할 있는 많은 공격방법이 존재한다.

 

- 스위칭 환경에서의 스니핑 공격 기법과 그리고 이에 대한 대책을 설명한다.

 

. 원리

 

  - LAN 상에서 개별 호스트를 구별하기 위한 방법으로 이더넷 인터페이스는 MAC(Media Access Control) 주소를 갖는다.

 

  - 모든 이더넷 인터페이스의 MAC 주소는 서로 다른 값을 갖는다.

  - 로컬 네트워크 상에서 각각의 호스트는 유일하게 구별될 있다.

 

  - 이더넷은 로컬 네트워크내의 모든 호스트가 같은 (wire) 공유하도록 되어 있다.

 

- 따라서 같은 네트워크내의 컴퓨터는 다른 컴퓨터가 통신하는 모든 트래픽을 있다.

 

- 하지만 이더넷을 지나는 모든 트래픽을 받아들이면 관계없는 트래픽까지 처리해야 하므로 효율적이지 못하고 네트워크의 성능도 저하될 있다.

 

- 그래서 이더넷 인터페이스(LAN 카드) 자신의 MAC address 갖지 않는 트래픽을 무시하는 필터링 기능을 가지고 있다.

 

- 필터링 기능은 자신의 MAC address 가진 트래픽 만을 보도록 한다.

 

- 또한 이더넷 인터페이스에서 모든 트래픽을 있도록 하는 기능을 설정할 수도 있는데 이를 "promiscuous mode" 한다.

 

- 스니퍼는 이더넷 인터페이스를 이러한 "promiscuous mode" 설정하여 로컬 네트워크를 지나는 모든 트래픽을 도청할 있게 된다.

 

. 스위칭 환경에서의 스니핑 기법

 

  - 일반적으로 앞서 설명한 스니핑을 방지하는 방법으로 스위칭 허브를    사용하게 된다.

 

- 스위칭 허브는 로컬 네트워크를 여러 개의 세크먼트로 나누어 있도록 한다.

 

- 세그먼트내의 트래픽은 다른 세그먼트로 전달되지 않는다.

 

- 따라서 스위칭 허브를 이용하여 업무별로 또는 독립적인 사이트별로 네트워크를 나누어 놓으면 다른 네트워크 세그먼트내의 네트워크 트래픽을 도청할 없게 된다.

- 하지만 Switch Jamming, ARP Redirect ICMP Redirect 등의 기법을 이용하여 다른 네트워크 세그먼트의 데이터를 스니핑 있는 방법도 있다.

 

l Switch Jamming

 

- 많은 종류의 스위치들은 주소 테이블이 가득차게 되면(Full) 모든 네트워크 세그먼트로 트레픽을 브로드케스팅하게 된다.

 

- 따라서 공격자는 위조된 MAC 주소를 지속적으로 네트워크에 흘림으로서 스위칭 허브의 주소 테이블을 오버플로우 시켜 다른 네트워크 세그먼트의 데이터를 스니핑 있게 된다.

 

- 이는 보안 원리의 하나인 "Fail close(시스템에 이상이 있을 경우 보안기능이 무력화되는 것을 방지하는 원리)" 따르지 않기 때문에 발생한다.

 

- 스위치들은 사실상 보안보다는 기능과 성능 위주로 디자인되어 있다.

 

- 다음은 arp flooding 공격을 발생하는 임의의 arp 패킷을 tcpdump 이용하여 잡은것이다. 공격자가 만들어낸 이러한 임의의 arp 패킷의 MAC 주소는 스위치의 주소 테이블을 오버플로우 시키게 된다.

 

[root@consult /root]# tcpdump -e arp

 

tcpdump: listening on eth0

 

07:44:23.898915 79:94:74:11:d7:dc bc:47:d8:7b:31:51 arp 42: arp reply 82.195.6.82 is-at 79:94:74:11:d7:dc

07:44:23.898954 b8:29:3:9c:9e:5c 3f:cf:9b:70:fa:14 arp 42: arp reply 204.227.135.56 is-at b8:29:3:9c:9e:5c

07:44:23.898991 5:6f:25:db:4b:76 97:a0:d6:c7:f1:8f arp 42: arp reply 158.81.199.91 is-at 5:6f:25:db:4b:76

07:44:23.899027 f0:f4:2c:8f:50:f7 a6:ca:21:a1:dd:26 arp 42: arp reply 114.215.48.176 is-at f0:f4:2c:8f:50:f7

07:44:23.899063 10:3:1:5b:78:9f de:d0:b:d0:60:fa arp 42: arp reply 171.63.250.67 is-at 10:3:1:5b:78:9f

07:44:23.899099 c4:8c:89:15:83:fb 7d:cc:32:5b:f2:42 arp 42: arp reply 235.178.172.145 is-at c4:8c:89:15:83:fb

07:44:23.899136 5d:f2:9d:d4:92:49 5d:95:c2:bd:8f:86 arp 42: arp reply 19.140.139.241 is-at 5d:f2:9d:d4:92:49

07:44:23.899172 49:19:9a:cc:14:85 8c:49:56:7e:8b:b2 arp 42: arp reply 127.191.23.251 is-at 49:19:9a:cc:14:85

07:44:23.899209 71:28:86:3:70:99 90:4e:aa:20:d3:f2 arp 42: arp reply 143.251.139.236 is-at 71:28:86:3:70:99

...

 

l ARP Redirect 공격 

 

- 먼저 정상적인 ARP Protocol 대하여 설명한다.

 

- IP 데이터 그램에서 IP 주소는 32 bit 구조로 되어 있고 이더넷 주소(MAC 주소) 48 bit 크기를 갖는다.

 

- 다른 호스트로 ftp telnet 등과 같은 네트워크 연결을 하기 위해서는 상대방 호스트의 이더넷 주소를 알아야 한다.

 

- , 사용자는 IP 주소를 이용하여 연결을 하지만 이더넷 상에서는 이더넷 주소를 이용하게 된다.

- 이를 위하여 IP주소를 이더넷 주소로 변환시켜 주어야 하는데 이를 ARP(Address Resolution Protocol) 한다.

 

- 그리고 과정을 RARP(Reverse Address Resolution Protocol) 한다.

 

- ARP 이용하여 상대 호스트의 이더넷 주소를 알아내는 과정은 다음과 같다.

먼저 네트워크내의 모든 호스트에 "ARP Request"라고 불리는 이더넷 프레임을 보낸다. 연결하고자 하는 호스트의 IP 주소를 포함한 ARP Request 이더넷상의 모든 다른 호스트들에게 " IP 주소를 사용하는 호스트는 나에게 하드웨어 주소(이더넷 주소) 알려주시오"라는 의미를 갖는다.

ARP Request 받은 호스트 해당 IP 사용하는 호스트는 자신의 하드웨어 주소(이더넷 주소) ARP Request 보낸 호스트에게만 보내주게 되는데 이를 ARP Reply라고 한다.

이후 호스트간의 통신(ftp, telnet ) 위하여 상대방의 이더넷 주소를 사용하게 되며, IP datagram 송수신할 있게 된다.

 - 다음 그림은 ARP Request ARP Reply 과정을 보여주고 있다. 

 

 

그림 16-80 ARP request ARP reply 과정

 

  - 다음은 실제로 172.16.2.15 호스트에서 172.16.2.26번으로 ping 했을 경우 나타나는 arp 트래픽이다.

 

  - arp request/reply 교환한 호스트는 상대방의 MAC 주소를 각각의 arp cache 저장하게 된다.

 

  - 따라서 마지막 라인에서 172.16.2.26 호스트가 15 호스트로 echo reply 보낼 때는 arp request/reply 과정을 거치지 않아도 된다.

 

[root@consult /root]# tcpdump -e host 172.16.2.26

 

tcpdump: listening on eth0

 

18:16:25.880837 0:0:e8:76:e8:bb Broadcast arp 60: arp who-has 172.16.2.26 tell 172.16.2.15

18:16:25.881021 0:c0:26:27:b:1c 0:0:e8:76:e8:bb arp 60: arp reply 172.16.2.26 is-at 0:c0:26:27:b:1c

18:16:25.881243 0:0:e8:76:e8:bb 0:c0:26:27:b:1c ip 74: 172.16.2.15 > 172.16.2.26: icmp: echo request

18:16:25.881407 0:c0:26:27:b:1c 0:0:e8:76:e8:bb ip 74: 172.16.2.26 > 172.16.2.15: icmp: echo reply

 

  - "ARP Redirect" 공격은 위조된 arp reply 보내는 방법을 사용한다.

 

- 공격자 호스트가 "나의 MAC 주소가 라우터의 MAC 주소이다"라는 위조된 arp reply 브로드캐스트로 네트워크에 주기적으로 보내어, 스위칭 네트워크상의 다른 모든 호스트들이 공격자 호스트를 라우터로 믿게끔 한다.

 

- 결국 외부 네트워크와의 모든 트래픽은 공격자 호스트를 통하여 지나가게 되고 공격자는 스니퍼를 통하여 필요한 정보를 도청할 있게 된다.

 

- 이때 공격 호스트는 IP Forwarding 기능을 설정하여야 공격 호스트로 오는 모든 트래픽을 원래의 게이트웨이로 Forwarding 해줄 있다.

 

- 그렇지 않으면 외부로 나가는 모든 네트워크 연결이 끊어지게 된다.

 

- 다음은 "arpredirect"라는 공격 프로그램으로 공격했을 네트워크 상에 나타나는 arp 패킷을 tcpdump 이용하여 잡은 모습이다. 공격이 끝날 때는 원래의 arp 매핑을 복원하여 네트워크 연결이 끊어지지 않도록 하고 있다.

 

[root@consult dsniff-1.8]# arpredirect 172.16.2.1

 

intercepting traffic from LAN to 172.16.2.1 (^C to exit)...

 

restoring original ARP mapping for 172.16.2.1

 

[root@consult dsniff-1.8]#

 

 

[root@consult /root]# tcpdump -e arp

 

(공격자 호스트가 라우터로 가장하는 공격) 15:29:36.887943 0:50:da:d3:1f:d3 Broadcast arp 60: arp reply 172.16.2.1 is-at 0:50:da:d3:1f:d3

15:29:38.895089 0:50:da:d3:1f:d3 Broadcast arp 60: arp reply 172.16.2.1 is-at 0:50:da:d3:1f:d3

15:30:01.005097 0:50:da:d3:1f:d3 Broadcast arp 60: arp reply 172.16.2.1 is-at 0:50:da:d3:1f:d3

15:30:05.025086 0:50:da:d3:1f:d3 Broadcast arp 60: arp reply 172.16.2.1 is-at 0:50:da:d3:1f:d3

  (공격자 MAC)           (라우터 IP)   (공격자의 MAC)

 

 

...

 

 

(공격이 끝날 네트워크를 복원하는 과정) 15:52:55.025088 0:60:2f:a3:9a:1c Broadcast arp 60: arp reply 172.16.2.1 is-at 0:60:2f:a3:9a:1c

15:52:57.035050 0:60:2f:a3:9a:1c Broadcast arp 60: arp reply 172.16.2.1 is-at 0:60:2f:a3:9a:1c

15:52:59.045050 0:60:2f:a3:9a:1c Broadcast arp 60: arp reply 172.16.2.1 is-at 0:60:2f:a3:9a:1c

 (라우터 MAC)          (라우터 IP)   (라우터 MAC)

 

  위조된 패킷을 주기적으로 보내는 이유는 다른 호스트의 arp cache 지속적으로 위조하기 위해서 이다.

 

- 위와 같은 공격을 하게되면 다른 모든 호스트들은 공격자 호스트를 라우터로 인식하고 외부로 연결되는 모든 트래픽을 공격 호스트로 보내게 되는데 이때 공격자는 다음과 같이 IP Forwarding 기능을 이용하여 원래의 목적지로 패킷을 Forwarding 해야만 네트워크가 끊어지지 않게되고, 공격자는 지나가는 패킷을 스니핑할 있다.

 

[root@consult fragrouter-1.6]# ./fragrouter -B1

 

fragrouter: base-1: normal IP forwarding

 

 

172.16.2.15.1297 > 203.233.150.11.23: . ack 390289256 win 7636 (DF)

172.16.2.142.1287 > 203.233.150.11.53: udp 36

172.16.2.142.1288 > 210.116.114.147.80: S 13774318:13774318(0) win 8192 <mss 1460,nop,nop,sackOK> (DF)

172.16.2.15.1297 > 203.233.150.11.23: . ack 390289317 win 7575 (DF)

172.16.2.15.1300 > 203.233.150.39.23: . ack 1685228460 win 7865 (DF)

172.16.2.142.1288 > 210.116.114.147.80: . ack 97085742 win 8760 (DF)

172.16.2.142.1288 > 210.116.114.147.80: P 13774319:13774505(186) ack 97085742 win 8760 (DF)

......

 

l ARP spoofing 공격

 

- ARP redirect 비슷한 공격 방법으로 다른 세그먼트에 존재하는 호스트간의 트래픽을 스니핑하고자 사용된다.

- 공격자는 자신의 MAC 주소를 스니핑하고자 하는 호스트의 MAC 주소로 위장하는 arp reply(또는 request) 패킷을 네트워크에 뿌린다.

 

- "나의(공격자의) MAC 주소가 스니핑하고자 하는 호스트의 MAC 주소이다"라는 arp reply 각각의 호스트에게 보내게 된다.

 

- 이러한 arp reply 받은 호스트는 자신의 arp cache 업데이트 하게 되고, 호스트간의 연결이 일어날 공격자 호스트의 MAC 주소를 사용하게 된다.

 

- 결국 호스트간의 모든 트래픽은 공격자가 위치한 세그먼트로 들어오게 된다.

 

- 이러한 경우 arp redirect 공격과 마찬가지로 공격자 호스트로 넘어오는 트래픽을 본래의 호스트로 relay 해주어야만 호스트간의 정상적인 연결을 있게 되고 스니핑도 있다.

 

- 그렇지 않으면 호스트간의 연결은 이루어 없게 되고 결국 스니핑도 없게 된다.

 

- 다음은 "arpmitm"이라는 공격 프로그램을 이용하여 172.16.2.15 172.16.2.18 호스트간의 트래픽을 스니핑 하기 위한 공격을 했을 네트워크 상에 나타나는 arp 패킷을 tcpdump 이용하여 잡은 모습이다.

 

Usage: ./arpmitm <ip1> <mac1> <ip2> <mac2> <attacker's mac>

 

[root@consult]# ./arpmitm 172.16.2.15 00:00:E8:76:E8:BB 172.16.2.18 00:C0:26:28:F9:C7 00:50:DA:D3:1F:D3

 (15번의 MAC)  (18번의 MAC) (공격자의 MAC)

 

/*

* ARP MITM attack tool. (c) xdr 2000

* $Id: arpmitm.c,v 1.2 2000/03/28 21:26:48 xdr Exp $

*/

 

--- Starting ARP MITM ---

 

endpoint-1 (172.16.2.15) at 00:00:E8:76:E8:BB [ether] on eth0

endpoint-2 (172.16.2.18) at 00:C0:26:28:F9:C7 [ether] on eth0

 

-------------------------

 

[0x0]: Sending mitm to: endpoint-1 endpoint-2

[0x1]: Sending mitm to: endpoint-1 endpoint-2

...

 

[root@consult tools]# tcpdump -e arp

 

tcpdump: listening on eth0

 

(공격자 호스트가 Target 호스트로 가장하는 공격)

 

([0x0]: Sending mitm to: endpoint-1 endpoint-2 해당하는 패킷)

16:38:30.915146 0:50:da:d3:1f:d3 0:c0:26:28:f9:c7 arp 42: arp reply 172.16.2.15 is-at 0:50:da:d3:1f:d3

16:38:31.225158 0:50:da:d3:1f:d3 0:0:e8:76:e8:bb arp 42: arp reply 172.16.2.18 is-at 0:50:da:d3:1f:d3

 

([0x1]: Sending mitm to: endpoint-1 endpoint-2 해당하는 패킷)

16:38:41.545139 0:50:da:d3:1f:d3 0:c0:26:28:f9:c7 arp 42: arp reply 172.16.2.15 is-at 0:50:da:d3:1f:d3

  (공격자 MAC) (18 호스트 MAC)     (공격자 MAC)

16:38:41.855131 0:50:da:d3:1f:d3 0:0:e8:76:e8:bb arp 42: arp reply 172.16.2.18 is-at 0:50:da:d3:1f:d3

  (공격자 MAC) (15 호스트 MAC)     (공격자 MAC)

...

 

위조된 패킷을 주기적으로 보내는 이유는 Target 호스트의 arp cache 지속적으로 위조하기 위해서 이다.

 

l ICMP Redirect 공격

 

- ICMP(Internet Control Message Protocol) 네트워크 에러 메시지를 전송하거나 네트워크 흐름을 통제하기 위한 프로토콜인데 ICMP Redirect 이용해서 스니핑 있는 방법이 존재한다.

 

- ICMP Redirect 메시지는 하나의 네트워크에 여러개의 라우터가 있을 경우, 호스트가 패킷을 올바른 라우터에게 보내도록 알려주는 역할을 한다.

 

- 공격자는 이를 악용하여 다른 세그먼트에 있는 호스트에게 위조된 ICMP Redirect 메시지를 보내 공격자의 호스트로 패킷을 보내도록 하여 패킷을 스니핑 하는 방법이다.

l 스위치의 span/monitor port 이용한 스니핑

 

- 방법은 스위치에 있는 monitor 포트를 이용하여 스니핑 하는 방법이다.

 

- monitor 포트란 스위치를 통과하는 모든 트래픽을 있는 포트로 네트워크 관리를 위해 만들어 놓은 것이지만 공격자가 트래픽들을 스니핑하는 좋은 장소를 제공한다.

 

. 스니핑 방지대책

 

- 네트워크 설정을 통하여 스니핑을 어렵게 하는 많은 방법이 있으나 가장 좋은 방법은 데이터를 암호화하는 것이다.

 

- 데이터를 암호화 하게되면 스니핑을 하더라도 내용을 없게 된다.

 

- SSL, PGP 인터넷 보안을 위한 많은 암호화 프로토콜이 존재한다.

 

- 하지만, 일관된 암호 프로토콜의 부재, 사용의 어려움, 암호 어플리케이션의 부재로 인하여 암호화를 사용할 없는 경우가 많이 있으며, 이러한 경우 가능한 스니핑 공격을 어렵도록 네트워크를 설정하고 관리하여야 한다.

 

- 특히, 호스팅, 인터넷데이터센터(IDC) 등과 같이 여러 업체가 같은 네트워크를 공유하는 환경에서는 스니핑으로부터의 보안 대책이 마련 되어야 한다.

 

- 스니핑 방지를 위한 대책으로 먼저 네트워크를 스니핑하는 호스트를 주기적으로 점검하는 방법이 있다.

 

- 이러한 점검을 통하여 누가 네트워크를 도청하는지 탐지하여 조치하여야 한다.

 

- 몇몇 침입탐지시스템(IDS) 이러한 스니핑 공격을 탐지할 있다.

 

- 또한 스위칭 환경의 네트워크를 구성하여(비록 스니핑이 가능하기는 하지만) 되도록 스니핑이 어렵도록 하여야 한다.

l 암호화

 

  - SSL

     . 암호화된 웹서핑을 가능하게 해주는 SSL(Secure Sockets Layer) 많은 웹서버와 브라우저에 구현되어 있다.

     . 그리고 대부분의 전자상거래 사이트에 접속하여 신용카드 정보를 보낼 사용된다.

     . 참고 사이트 : http://www.modssl.org/

 

  - PGP and S/MIME

     . 전자메일(E-mail) 또한 많은 방법으로 스니핑되고 있다.

     . 인터넷상의 여러 곳에서 모니터링 수도 있으며, 잘못 전달될 수도 있다.

     . 전자메일을 보호하기 위한 가장 안전한 방법은 메일을 암호화하는 방법이다.

     . 가장 대표적인 방법은 PGP S/MIME 사용한다.

     . PGP add-on 제품으로 사용되고 있으며, S/MIME 전자메일 프로그램에 구현되어 있다.

 

  - ssh

     . ssh(Secure Shell) 유닉스 시스템에 암호화된 로그인을 제공하는 사실상 표준으로 사용되고 있다.

     . telnet 대신에 반듯이 ssh 사용하여야 한다.

     . ssh 제공하는 많은 공개된 도구들이 존재한다.

 

  - VPN

     . VPN(Virtual Private Networks) 인터넷상에서 암호화된 트래픽을 제공한다.

     . 하지만 VPN 제공하는 시스템이 해킹 당할 경우에는 암호화되기 이전의 데이터가 스니핑 당할 있다.

 

l 스위칭 환경의 네트워크 구성

 

- 스위치를 이용하여 업무 성격에 따라 그리고 처리하는 데이터에 따라 세그먼트를 구분하여 네트워크를 구성할 있다.

- 스위치는 트래픽을 전달할 모든 세그먼트로 브로드캐스트 하지 않고 해당 세그먼트에만 전달하므로 일반 허브를 사용하는 것보다 안전하다.

 

- 하지만 앞서 설명한 "스위칭 환경에서의 스니핑 기법" 같은 공격을 있다.

 

- 또한 같은 세그먼트 내에서의 스니핑은 막을 없다.

 

- 스위치의 포트에 대하여 MAC 주소를 static(permanent)하게 대응시키면 ARP spoofing, ARP redirect 등의 공격을 막을 있다.

 

- 이러한 방법은 보안관리에 많은 시간을 소모하게 되지만 매우 효과적인 대응방법 이다.

 

l 스니퍼 탐지

 

- 모든 스니퍼는 네트워크 인터페이스를 "promiscuous mode" 설정하여 네트워크를 도청하게 된다.

 

- 따라서 호스트가 "promiscuous mode" 설정되어 있는지 주기적으로 점검하여 스니퍼가 실행되고 있는 시스템을 탐지하여야 한다.

 

- 스니핑 기술과 마찬가지로 스니퍼를 탐지하는 방법도 고도화 되고 있다.

 

- 다음은 "promiscuous mode" 설정된 시스템을 탐지하는 방법에 대하여 설명한다.

 

- 아래의 대부분의 방법들은 주로 로컬 네트워크내에서 탐지가능한 방법이다.

 

-  ping 이용하는 방법

      . 대부분의 스니퍼는 일반 TCP/IP 스택 상에서 동작하기 때문에 request 받으면 그에 해당하는 response 전달하게된다.

      . ping 이용한 스니퍼 탐지 방법은 의심이 가는 시스템에게 ping 보내는데 MAC 주소를 위장하여 보내는 방법이다.

 

     MAC 주소를 위조하여(로컬 네트워크에 존재하지 않는 MAC 사용)하여 ping(ICMP Echo Request) 다른 시스템에게 보낸다.

     만약 ping reply(ICMP Echo Reply) 받게되면, 해당 호스트가 스니핑을 하고 있는 것이다. 왜냐하면 존재하지 않는 MAC 주소를 사용했기 때문에 스니핑을 하지 않는 호스트는 누구도 ping request 없게되며, reply 하지 않게 된다. 

 

     . 다음은 "sentinel" 이라는 스니퍼 탐지도구를 이용하여 33 호스트에 대하여 ping 테스트를 하는 과정이다. 테스트 결과가 "positive"라고 나오며 이는 33 호스트가 "promiscuous mode" 설정되어 있음을 의미한다.

 

Usage:

 

./sentinel [method] [-t <target ip>] [options]

 

Methods:

 

[ -a ARP test ]

 

[ -d DNS test ] (requires -f (non-existent host) option

 

[ -i ICMP Ping Latency test ]

 

[ -e ICMP Etherping test ]

 

[root@consult sentinel-0.8]# ./sentinel -e -t 172.16.2.33

 

[ The Sentinel Project: Remote promiscuous detection ]

 

[ Subterrain Security Group (c) 2000 ]

 

Running on: 'consult' running on Linux 2.2.12-4 on a(n) i686

 

Device: eth0

 

Source IP Address: 172.16.2.31

 

Source Hardware Address: 0:50:da:d3:1f:d3

 

Target: 172.16.2.33

 

Performing ICMP etherping test

 

Sending out 10 bogus ICMP ECHO packets..

 

 

Results: 172.16.2.33 tested positive to etherping test.

 

 

 

 그림 16-81 ICMP echo request ICMP echo reply 과정

 

   . 다음은 sentinel 실행될 네트워크에 나타나는 트래픽을 보여준다. 6, 8 라인에서 "icmp: echo reply" 회신되는 것을 있다.

 

1: [root@consult Sniffer]# tcpdump -e host 172.16.2.33

 

2: tcpdump: listening on eth0

 

3: 07:35:59.985065 0:50:da:d3:1f:d3 ff:0:0:0:0:0 ip 42: consult.certcc.or.kr > 172.16.2.33: icmp: echo request 

 (위조된 MAC)  

 

4: 07:35:59.985716 0:80:c7:33:16:c2 Broadcast arp 60: arp who-has consult.certcc.or.kr tell 172.16.2.33

 

5: 07:35:59.985761 0:50:da:d3:1f:d3 0:80:c7:33:16:c2 arp 42: arp reply consult.certcc.or.kr is-at 0:50:da:d3:1f:d3

 

6: 07:35:59.986172 0:80:c7:33:16:c2 0:50:da:d3:1f:d3 ip 60: 172.16.2.33 > consult.certcc.or.kr: icmp: echo reply

 

7: 07:36:00.995056 0:50:da:d3:1f:d3 ff:0:0:0:0:0 ip 42: consult.certcc.or.kr > 172.16.2.33: icmp: echo request

 

8: 07:36:00.995571 0:80:c7:33:16:c2 0:50:da:d3:1f:d3 ip 60: 172.16.2.33 > consult.certcc.or.kr: icmp: echo reply

  - 3.2 ARP 이용하는 방법

 

     . ping 방법과 유사한 방법으로 non-broadcast 위조된 ARP request 보냈을 ARP response 오면 상대방 호스트가 "promiscuous mode" 설정되어 있는 것이다.

 

     . 다음은 33 호스트에게 위조된 ARP request 보내어 ARP reply 오는지를 테스트하는 과정이다. 마찬가지로 결과가 "positive" 나오게 되면 이는 33 호스트가 "promiscuous mode" 설정되어 있음을 의미한다.

 

[root@consult sentinel-0.8]# ./sentinel -a -t 172.16.2.33

 

[ The Sentinel Project: Remote promiscuous detection ]

 

[ Subterrain Security Group (c) 2000 ]

 

Running on: 'consult' running on Linux 2.2.12-4 on a(n) i686

 

Device: eth0

 

Source IP Address: 172.16.2.31

 

Source Hardware Address: 0:50:da:d3:1f:d3

 

Target: 172.16.2.33

 

Performing ARP test

 

Sending out 10 bogus ARP requests..

 

Results: 172.16.2.33 tested positive to arp test.

 

  . 다음은 sentinel 실행될 네트워크에 나타나는 트래픽을 보여      준다. 4, 6 라인에서 arp reply 회신되는 것을 있다.

 

1: [root@consult Sniffer]# tcpdump -e arp

2: tcpdump: listening on eth0

 

3: 07:34:03.485066 ff:0:0:0:0:0 ff:0:0:0:0:0 arp 42: arp who-has 172.16.2.33 tell consult.certcc.or.kr (0:50:da:d3:1f:d3)

 (위조된 MAC) 

 

4: 07:34:03.485549 0:80:c7:33:16:c2 0:50:da:d3:1f:d3 arp 60: arp reply 172.16.2.33 is-at 0:80:c7:33:16:c2

 

5: 07:34:04.495057 ff:0:0:0:0:0 ff:0:0:0:0:0 arp 42: arp who-has 172.16.2.33 tell consult.certcc.or.kr (0:50:da:d3:1f:d3)

  (위조된 MAC)  

 

6: 07:34:04.495968 0:80:c7:33:16:c2 0:50:da:d3:1f:d3 arp 60: arp reply 172.16.2.33 is-at 0:80:c7:33:16:c2

  - DNS 방법

     . 일반적으로 스니핑 프로그램은 사용자의 편의를 위하여 스니핑한 시스템의 IP 주소를 보여주지 않고 도메인 네임을 보여주기 위하여 Inverse-DNS lookup 수행하게 된다.

     . 따라서 DNS 트래픽을 감시하여 스니퍼를 탐지할 수도 있다.

     . 방법은 원격 또는 로컬 네트워크 모두에서 있는 방법이다.

     . 원격에서 테스트 대상 네트워크로 Ping sweep 보내고, 들어오는 Inverse-DNS lookup 감시하여 스니퍼를 탐지할 있다.

     . 로컬에서 경우에는 위조된 IP 주소로 IP datagram 보내고 이에 대한 DNS lookup 있는지 감시하여 스니퍼를 탐지할 있다.

 

  - 유인(decoy) 방법

     . 스니퍼를 실행하는 공격자는 일반적으로 사용자 ID 패스워드를 도청한다.

     . 그리고 도청한 ID 패스워드를 이용하여 다른 시스템을 공격하게 된다.

     . 따라서 네트워크 상에 클라이언트/서버를 설정하여 미리 설정된 사용자 ID 패스워드를 지속적으로 흘려 공격자가 패스워드를 사용하게 끔한다.

     . 관리자는 IDS 또는 네트워크 감시 프로그램을 이용하여 이러한 미리 설정된 ID 패스워드를 사용하는 시스템을 탐지함으로서 스니퍼를 탐지할 있다.

 

http://www.zurich.ibm.com/Technology/Security/extern/gsal/sniffer_detector.html

 

  - host method

     . 호스트 단위에서 "promiscuous mode" 확인하는 방법으로

       "ifconfig -a" 명령을 이용하여 확인할 있다.

     . 다음의 결과에서 "PROMISC" 부분을 보고 "promiscuous mode" 설정되어 있음을 있다.

 

[root@lotus]# ifconfig -a

 

eth0 Link encap:Ethernet HWaddr 00:50:DA:50:1C:D3

inet addr:172.16.2.31 Bcast:172.16.2.255 Mask:255.255.255.0

 

UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1

RX packets:538138 errors:0 dropped:0 overruns:0 frame:0

TX packets:317739 errors:0 dropped:0 overruns:0 carrier:2

 

collisions:251 txqueuelen:100

Interrupt:3 Base address:0x300

 

lo Link encap:Local Loopback

 

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:3924 Metric:1

RX packets:40 errors:0 dropped:0 overruns:0 frame:0

TX packets:40 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

 

l 네트워크 관리

 

   - 앞서 설명한 바와 같이 스니퍼를 탐지할 있는 많은 방법이 존재하며 또한 이를 구현한 공개용 도구가 있다.

 

   - 네트워크 관리자는 이러한 도구를 이용하여 주기적으로 스니퍼의 설치 여부를 감시함으로서 외부로부터의 공격자를 포함하여 악의의 내부 사용자를 탐지할 있다.

 

   - 다음은 앞서 설명한 공격을 탐지하는데 사용할 있는 공개용 도구에 대하여 설명한다.

 

   - ARPwatch

    . ARP 트래픽을 모니터링하여 MAC/IP 매칭을 감시하는 프로그램으로 초기에 설정된 ARP 엔트리(ethernet/ip addr) 변하게 되면 이를 탐지하여 관리자에게 메일로 통보해 주는 도구이다.

    . 대부분의 공격기법이 위조된 ARP 사용하기 때문에 이를 쉽게 탐지할 있다.

 

   - Sentinel

    . Sentinel 앞서 설명한 스니퍼를 탐지하는 방법을 구현한 도구이다.

    . 4가지 방법으로 스니퍼를 탐지할 있는데 이중 "ICMP Ping Latency test(-i 옵션)" 아직 구현되지 않았다.

    . 네트워크 관리자는 내부 네트워크의 모든 호스트에 대하여 이와 같은 도구를 사용하여 주기적으로 스니퍼가 설치되어 있는지 점검해 보아야 한다.

    . 그리고 스니퍼가 설치된 것으로 의심이 가는 호스트는 철저한 분석를 수행하고 만약 침입을 당하였을 경우에는 복구를 하도록 하여야 한다.

    . Methods:

     [ -a ARP test ]

     [ -d DNS test ] (requires -f (non-existent host) option

     [ -i ICMP Ping Latency test ]

     [ -e ICMP Etherping test ]

     . Sentinel 다운로드 사이트 :

            http://www.subterrain.net/projects/sentinel

 

5. 대응지침

 

. Desktop 관리지침

 

l 일반지침

 

- 사이트의 모든 데스크탑 PC 백신 소프트웨어를 설치한다.

 

- 백신 업체 한국정보보호센터에서 제공하는 바이러스 정보와 경보를 수시로 받고 대처한다. 전산실 담당자 또는 보안 담당자가 아래 사이트에서 바이러스 경보를 받아 사내 BBS등을 통하여 직원에게 즉시 공지시킨다.

   . CERTCC-KR : http://www.certcc.or.kr

   . 안철수 연구소 : http://home.ahnlab.com/

   . 하우리 : http://www.hauri.co.kr/

   . 트랜드 코리아 : http://www.antivirus.co.kr/

   . 시만텍 코리아 : http://www.symantec.com/region/kr/

 

- 매달 백신 소프트웨어를 업데이트하고, 경보를 받았을 경우에는 바로 업데이트 실시한다. 가능한 최신버전의 백신 프로그램 사용 권장한다.

- 만약 경보 서비스를 받지 못하는 상황이라면 일주일 단위로 백신 소프트웨어를 업데이트한다.

 

- 보안 담당자는 사용자들에게 백신 프로그램을 업데이트하는 방법을 교육한다.

   . 사이트에서 사용하는 백신 제품에 따라 업데이트 방법을 문서화하여 공지한다.

 

- 백신 소프트웨어의 설정을 바르게 하고 사용한다.

   . 실시간 감시, 자동탐지 실시간으로 바이러스를 감시하는 모드를 사용한다.

   . 시스템 부팅 메모리, 마스터/부트 레코드, 시스템화일 검색 가능 모드로 설정한다.

   . 검색할 파일 리스트에 모든 종류의 파일이 포함되도록 설정하는 것이 가장 좋으며, 다음과 같은 파일 확장자는 반듯이 포함되도록 한다. (.HTA, .OCX, .SHS, .VBS)

   . 로그 기능이 있는 경우, 바이러스 관련된 모든 활동을 로그하도록 설정한다.

 

- 바이러스와 관련된 데스크탑 PC 보안을 설정한다.

   . 최신버전의 Micrisoft Outlook 사용한다.

   . Microsoft Outlook에서 "VBS", "ActiveX", "JavaScript",

     "WordMacro" 관련된 모든 보안 패치 프로그램 설치한다.

   . Visual Basic Scripting Host 설정을 금지한다.

     제어판 -> 프로그램 추가/제거 -> 윈도우설치 -> 보조프로그램 에서 Windows Scripting Host 체크박스를 체크하지 않는다.

   . E-mail 클라이언트 보안 설정(B. 어플리케이션 관리 참조)

 

- Desktop 관리 시스템을 이용한 중앙 집중된 관리 체계를 구축한다.

   . 사내의 모든 데스크탑 PC 중앙에서 통제할 있는 시스템으로 구축하고, 이러한 시스템을 통하여 원격으로 모든 직원의 PC 점검하거나 보안 설정을 있다.

 

l 어플리케이션 관리 지침

 

- MS Office

   . 가능한 최신버전의 소프트웨어를 사용하며, 적어도 보안 패치를 설치한다.

   . MS Word에서 파일을 Rich Text Format(*.rtf)으로 저장하도록 설정한다.

   . 매크로 기능 고급기능 사용으로 인하여 불가피하게 *.doc 형태로 저장하는 경우를 제외하고는 디폴트로 *.rtf 파일로 저장하고 관리하도록 한다.

   . Macro Virus Protection 기능을 설정한다.

   . *.doc 파일을 경우 WordView 또는 WordPad 사용하도록 설정한다.

   . E-mail 첨부 문서파일은 더블클릭 하지 말고, 먼저 WordView Wordpad 등으로 열어본 뒤에 실행되는 파일이면 절대로 실행하지 않는다.

   . 매크로/ 바이러스는 메일을 통하여 유포되는데 항상 그럴듯한 제목을 사용하며, 또한 자신이 아는 사람으로부터 메일이 오게 되므로 각별한 주의가 필요하다.

 

- MS Office 97 프로그램 : Word 97

   . [도구]-[옵션]-[일반]-[매크로 바이러스 보호] : 체크한다.

   . [도구]-[옵션]-[일반]-[현재 문서를 메일에 첨부] : 체크하지 않는다.

   . [도구]-[옵션]-[저장]-[양식의 데이터만 저장] : 체크한다.

   . [도구]-[옵션]-[저장]-[빠른 저장 사용] : 체크하지 않는다.

   . [도구]-[옵션]-[저장]-[다른 이름으로 저장 : Rich Text Format

     (*.rtf)] : 설정한다.

 

- MS Office 97 프로그램 : Excel 97

   . [도구]-[옵션]-[일반]-[매크로 바이러스 보호] : 체크한다.

 

- MS Office 97 프로그램 : PowerPoint 97

   . [도구]-[옵션]-[일반]-[매크로 바이러스 보호] : 체크한다.

 

- MS Office 2000 프로그램 : Word 2000

   . [도구]-[매크로]-[보안] :

     보안수준 = 높음 (default)

     Trusted Sources(신뢰할 있는 원본) = NO ONE

     Trust all installed add-ins and templates(설치된 모든 추가 기능과 서식 파일은 안전한 것으로 신뢰함) : 체크하지 않는다.

   . [도구]-[옵션]-[일반]-[현재 문서를 메일에 첨부] : 체크하지 않는다

   . [도구]-[옵션]-[저장]-[양식의 데이터만 저장] : 체크한다.

   . [도구]-[옵션]-[저장]-[빠른 저장 사용] : 체크하지 않는다.

   . [도구]-[옵션]-[저장]-[다른 이름으로 저장 : Rich Text Format (*.rtf)] : 설정한다.

 

- MS Office 2000 프로그램 : Excel 2000

   . [도구]-[매크로]-[보안] :

     보안수준 = 높음 (default)

     Trusted Sources(신뢰할 있는 원본) = NO ONE

     Trust all installed add-ins and templates(설치된 모든 추가 기능과 서식 파일은 안전한 것으로 신뢰함) : 체크한다.

 

- MS Office 2000 프로그램 : PowerPoint 2000

   . [도구]-[매크로]-[보안] :

     보안수준 = 높음 (default)

     Trusted Sources(신뢰할 있는 원본) = NO ONE

     Trust all installed add-ins and templates(설치된 모든 추가 기능과 서식 파일은 안전한 것으로 신뢰함) : 체크하지 않는다.

 

- E-mail 클라이언트 : Outlook

  . 가능한 최신버전의 소프트웨어를 사용하며, 적어도 보안패치를 설치한다.

  . 인터넷 익스플로러(IE) 4.x/5.x 인터넷 영역의 보안을 "높음"으로 설정한다.

    ( [도구]-[인터넷 옵션]-[보안]-[보안수준] : 높음(인터넷영역) )

  . IE 보안 설정을 "높음"으로 맞춘 , ActiveX Active Scripting 기능을 제거한다.

  . 안전한 보안을 위해서는 "사용안함"으로, 그렇지 않으면 "프롬프트" 설정한다.

  . 모든 버전의 Outlook(Outlook97 제외) 보안 설정은 인터넷 익스플로러의 [보안 설정(도구(tools)]-[인터넷 옵션(Internet Options)]-[보안(Security))] 따른다. 하지만 익스플로러의 보안 설정을 따르지 않고, Outlook e-mail 위한 보안 설정을 다시 하려면, Outlook "[도구]-[옵션]-[보안]-[보안내용]"에서 "제한된 사이트" 선택하도록 한다. 그리고 선택한 "제한된 사이트" 대해서도 부가적으로 다음과 같은 설정을 추가한다.

 

    ([영역설정]-[사용자 정의 수준])

    . ActiveX control "사용안함" 또는 "프롬프트" 설정한다.

    . Active Scripting "사용안함" 또는 "프롬프트" 설정한다.

    . JavaScript "사용안함" 또는 "프롬프트" 설정한다.

 

- E-mail 클라이언트 : Outlook Express - 열기와 미리보기 기능 제거

  . 가능한 최신버전의 소프트웨어를 사용하며, 적어도 보안패치를 설치한다.

  . 인터넷 익스플로러의 보안 설정을 앞서 설명한 대로 설정한다.

  . Outlook Express 있는 미리보기 기능을 다음과 같이 제거한다.

    - [보기]-[레이아웃]-[미리보기 표시] : 체크하지 않는다.

 

- Netscape : 자바 스크립트 기능 제거

  . 가능한 최신버전의 소프트웨어를 사용하며, 적어도 보안패치를 설치한다.

  . 메뉴바에서 [Edit]-[Preferences]-[Advanced]-[Enable JavaScript

    for Mail and News] : 체크하지 않는다.

    (보다 안전을 위해서는 "Enable JavaScript" 체크하지 않는다. 하지만 Nescape에서는 자동 업데이트 프로그램(Smart Update program) 위해서 자바스크립트를 사용하기 때문에 기능을 사용하기 위해서는 "Enable JavaScript" 체크해야 한다.)

 

- 기타 E-mail 클라이언트

  . 가능한 최신버전의 소프트웨어를 사용하며, 적어도 보안패치를 설치한다.

  . 비주얼베이직 스크립트(VBS) 자바 스크립트 기능을 제거한다.

- 기타

  . 첨부파일 자동 열기 기능 제거한다.

  . 텍스트 메일 형식 사용한다.

  . *.EXE, *.HTA, *VBS 모든 실행 가능한 첨부파일 실행 , 실행확인 설정한다.

  . 모든 *.doc, *.xls, *.ppt 문서 파일을 경우, open 확인 설정한다.

  . MS mail 프로그램 이외의 제품 사용을 고려한다.

  . 모든 직원의 메일 주소를 로컬 E-mail 주소록에 저장하지 않는다.

 

. 서버 관리지침

 

l 일반지침

- E-mail 서버(gateway)에서 In/Out 메일에 대한 바이러스 검사를 있는 바이러스 방역 시스템 설치하고 Full-Time 모드로 실행한다.

- 검색할 파일 리스트에 모든 종류의 파일이 포함되도록 설정하는 것이 가장 좋으며, 다음과 같은 파일 확장자는 반듯이 포함되도록 한다.

  (.HTA, .OCX, .SHS, .VBS)

- 서버 단위의 바이러스 방역 시스템도 데스크탑 PC 백신의 업데이트 지침에 따라 빠른 업데이트를 실시한다.

- 아래의 E-mail 서버 보안 설정을 통하여 부가적인 보안 수단을 강구한다.

 

l 이메일 서버 보안 지침

- 모든 In/Out 메일의 제목과 헤더를 필터링하여 바이러스를 탐지한다.

- 긴급 경보를 받은 1시간 이내에 필터링 규칙 설정한다.

- 스팸 메일에 대한 한계값을 설정하여 필터링한다.

  - 동일한 메시지를 한계값(30-40 정도) 이상으로 받을 경우 필터링하도록 설정한다.

- 모든 실행파일과, ActiveX, JavaScript 대하여 필터링 설정한다.

  - 필요한 경우, 실행파일을 zip으로 압축하여 메일로 보내면 사용 가능하다.

 

. 인적 관리지침

 

l 사용자 교육

- 메일을 통해 수신될 것이라 예상되는 첨부파일만을 열어본다.

- 알고 있거나 신뢰할 만한 링크만을 클릭한다.

- 이외의 첨부파일이나 링크는 삭제한다.

 

l 위험한 첨부파일명 확장자명

- *.chm, *.hlp, *.hta, *.js, *.shb, *.shs, *.vb, *.vbe, *.vbs, *.wsf, *.wsh, *.exe, *.com, *.shs, *.ocx, aol4free.com, babylonia.exe, badass.exe, buhh.exe, chocolate.exe, compu_ma.exe, happy99.exe, i-watch-u.exe, ie0199.exe, jesus.exe, list.doc, path.xls, photos17.exe, picture.exe, pretty park.exe, prettypark.exe, serialz.hlp, setup.exe, story.doc, suppl.doc, surprise!.exe, x-mas.exe, y2kcount.exe, yahoo.exe, zipped_files.exe, etc.

 

l 첨부파일 주의

- 크리스마스 카드 첨부파일, 비디오, 오디오, 또는 재미있는 첨부파일, 그리고 성적인 내용을 담은 첨부파일은 바이러스, , 트로이잔 악성에이전트를 유포시키는 전형적인 수단임을 주지한다.

 

l 최신정보 습득

- 시스템 관리자 보안 관리자는 최신 정보를 습득하여야 한다. 이는 백신/침입탐지시스템 업체 CERTCC-KR 사이트에서 얻을 있다.

 

 . 백신 침입탐지시스템 제품 선정시 고려사항

 

- 악성 에이전트의 탐지는 백신 제품뿐만이 아니라 침입탐지시스템        (IDS)에서도 탐지할 있다. 백신 제품은 주로 바이러스, , 트로이     잔의 존재 유무를 탐지하는 반면, IDS 트로이잔, 등의 공격활동     탐지한다. 일반적으로 백신 제품이 대부분의 악성 에이전트 영역     대한 보안을 제공한다. 다음은 백신 IDS 선정시 가장 유의해     야할 부분이다.

l 새로운 악성 에이전트 발견에 따른 제품 업데이트 속도

- 최소 2 이내에 업데이트 DB 제공하는 제품

 

l 탐지할 있는 기존에 알려진 악성 에이전트 종류

 

l 탐지의 정확성

 

l 고객에게 새로운 관련 정보 경보를 신속히 제공하는 업체의 제품

 

http://kmh.yeungnam-c.ac.kr/Hacking/netcademy/doc/

728x90

댓글