Download presentation
Presentation is loading. Please wait.
1
Linux Security (스니퍼와 전기적 도청장치)
네트워크 실험실 김 윤 수 #
2
목 차 스니퍼와 전기적인 도청 스니퍼는 어떻게 작동하는가? 실전테스트! 스니퍼 공격
다른 스니퍼 프로그램과 네트워크 감시 도구들 스니퍼에 의해 발생할 수 있는 위험들 스니퍼 공격에 대한 방어 #
3
스니퍼는 어떻게 작동하는가? 워크스테이션들은 목적지가 자신의 주소로 되어있는 패킷만을 받아들이고 처리하도록 되어있다. 그러나 워크스테이션의 네트워크 인터페이스를 무차별 모드(Promiscuous mode)로 전환하여, 네트워크 트래픽의 실제 목적지에 관계없이 모두 지나가는 패킷을 감시하고 잡아내도록 하는 프로그램을 제작할 수 있다. #
4
스니퍼는 어떻게 작동하는가? 스니퍼 프로그램의 헤더파일 #include <sys/types.h>
#include <sys/socket.h> #include <sys/time.h> #include <netinet/in.h #include <linux/if.h> #include <signal.h> #include <stdio.h> #include <linux/socket.h> #include <linux/ip.h> #include <linux/tcp.h> #include <linux/if_ether.h> 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #
5
스니퍼는 어떻게 작동하는가? 헤더파일 설명 헤더파일 설 명 linux/if.h 이더넷 인터페이스 카드 제어 정의
설 명 linux/if.h 이더넷 인터페이스 카드 제어 정의 linux/if_ether.h 이더넷 IEEE802.3 인터페이스와 AppleTalk, 이더넷 루프백, 인터넷 프로토콜과 같은 다양한 이더넷 프로토콜 정의 linux/in.h 인터넷 주소 구조 정의 linux/ip.h 리눅스에서의 IP구현 stdio.h 표준입력, 표준출력, 표준 에러 조작 sys/socket.h Listen, bind,connect, accept, send등의 소켓 연산 처리 및 소켓의 정의 tcp.h TCP_ESTABLISHED, TCP_LISTEN, TCP_CLOSE 등 다양한 TCP연결 상태 정의 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #
6
스니퍼는 어떻게 작동하는가? int openintf(char *d) int s; if(fd < 0) { perror("cant get SOCK_PACKET socket"); exit(0); } strcpy(ifr.ifr_name, d); s=ioctl(fd, SIOCGIFFLAGS, &ifr); if(s < 0) close(fd); perror("cant get flags"); ifr.ifr_flags |= IFF_PROMISC; s=ioctl(fd, SIOCSIFFLAGS, &ifr); if(s < 0) perror("cant set promiscuous mode"); return fd; 바이트 코드는 클래스 로더에 의해 로드되며, 바이트 코드 검증기는 프로그램이 수행되기 전에 부적절한 클래스 접근이나 스택의 오버 플로우, 부적절한 형변환을 검사한다. #
7
linsniffer 실전테스트!! 스니퍼 공격 애플리케이션 : Mike Edulla의 linsniffer
필요조건 : C와 IP 헤더파일 설정파일 : 없음 위치 : 보안사항 : 없음 #
8
Linsniffer의 실행 실전테스트!! 스니퍼 공격 Gnss => linux1.samshacker.net [21]
gnss.samshacker.net ftp hapless/unaware ls –al ls ls –F cd lg cd lg_layouts Gnss => linux1.samshacker.net [21] USER hapless PASS unaware SYST PORT 172,16,0,1,4,192 . #
9
linux_sniffer 실전테스트!! 스니퍼공격 애플리케이션 : loq의 linux_sniffer
필요조건 : C와 IP 헤더파일 설정파일 : 없음 위치 : 보안사항 : 없음 컨텐트(Content) 핸들러: 새로운 형식의 파일들을 전송 받을때 사용 내용에 관한 정보(MIME형식) plain/text, text/html.. 프로토콜 핸들러:기존의 프로토콜 이외의 프로토콜을 처리 가능 #
10
Linux_sniff의 실행 실전테스트!! 스니퍼공격 telnet 143.248.1.86 yskim/yyyyy123
proto: :a0:cc:08:06:dd->00:60:97:19:79:bd [1833]-> [23] y telnet yskim/yyyyy123 #
11
실전테스트!! 스니퍼공격 #
12
hunt 실전테스트!! 스니퍼 공격 애플리케이션 : Pavel Kraus의 hunt
필요조건 : C, IP 헤더,리눅스 커널 이상, Linux Threads가지 지원되는 GlibC 2.07. 설정파일 : 없음 위치 : 보안사항 : 없음 #
13
실전테스트!! 스니퍼공격 #
14
실전테스트!! 스니퍼 공격 #
15
sniffit 실전테스트!! 스니퍼 공격 애플리케이션 : Brecht Claerhout의 sniffit
필요조건 : C, IP 헤더, 설정파일 : 없음 위치 : 보안사항 : 없음 #
16
sniffit의 설치및 실행 실전테스트!! 스니퍼 공격 $ gunzip sniffit.0.3.7.beta.tar.gz
$ tar –xvf sniffit beta.tar $ cd sniffit beta $ ./configure $ make $ ./sniffit -i #
17
실전테스트!! 스니퍼 공격 sniffit의 실행 #
18
실전테스트!! 스니퍼 공격 스니퍼 실행 sniffit beta]# ./sniffit -d -p 7 -t Supported Network device found. (eth0) Sniffit Beta is up and running.... ( ) . sniffit beta]# ./sniffit -p 23 -A ^ -t #
19
sniffit 명령행 옵션 실전테스트!! 스니퍼 공격 옵 션 목 적 -c [설정파일] 설정파일 명시. -D [장치]
옵 션 목 적 -c [설정파일] 설정파일 명시. -D [장치] 출력결과를 다른 장치로 보낼 때 사용. -d 덤프모드를 설정. -l [길이] 처음에 수집할 데이터의 길이 명시(기본 : 300 바이트) -L [logparm] -c 옵션과 함께 사용되며 로그의 형태를 설정. -p 감시할 포트설정. -s [발신지IP] 발신지 IP로부터 들어오는 패킷 수집. -t [목적지IP] 목적지 IP로 나가는 패킷 수집. -v 현재 버전 출력 -x TCP 패킷에 대한 추가적인 정보 출력. #
20
sniffit 설정파일 실전테스트!! 스니퍼 공격
<field1> <field2> <field3> <field4> <field5> 필드1 – select와 dselect가 가능. Select로 설정된 호스트로 부터 패킷을 잡아 낼 수 있으며 deselect로 정의된 호스트의 패킷은 무시. 필드2 – from, to, both가 가능. 잡아낼 패킷의 발신지와 목적지 설정. 필드3 – host, port, multiple-host가 가능. 목적지 호스트를 하나 또는 여러 개의 호스트 지정. Multiple-host의 경우 와일드 카드도 사용 가능. 필드4 – 호스트 명, 포트번호, 다중 호스트 목록. 필드5 – 포트 번호 #
21
sniffit 설정파일 예 실전테스트!! 스니퍼 공격 Example 1 select from host 172.16.0.1
select from port 23 Example 2 select both mhost select both host enemy.sniffit.org deselect both port 80 #
22
다른 스니퍼 프로그램과 네트워크 감시 도구들 도 구 설 명 ANM
도 구 설 명 ANM FTP, HTTP, SMTP등의 연결상태 및 디스크 사용 공간 감시. 출력결과는 HTML형태로 제공되며 Perl이 필요하다. Ethereal 리눅스를 위한 GUI기반의 스니퍼. Icmpinfo ICMP 트래픽을 감시. ftp://ftp.cc.gatech.edu/pub/linux/system/network IPAC 리눅스용 IP 감시기. Ksniffer KDE네트워크 통계 유틸리티로 TCP, IP, UDP등 모든 네트워크 트래픽 감시. #
23
다른 스니퍼 프로그램과 네트워크 감시 도구들 도 구 설 명 Lsof
도 구 설 명 Lsof List Open Files. 현재 실행중인 프로세서에 의해 열려진 파일들에 대한 정보 출력. ftp://vic.cc.purdue.edu/pub/tools/unix/lsof Ntop Netwok Top. 네트워크 사용 통계출력. Tcpdump 사용자가 제공한 불린 연산에 일치하는 패킷의 헤더 출력. 네트워크 문제를 진단하고 네트워크 공격에 대한 검사. Traffic-vis TCP/IP 트래픽을 감시하고 정보를 아스키, HTML, 포스트 스크립트 형태로 도식화 ttysnoop 텔넷과 시리얼 통신을 감시. 다른 사용자의 tty에 대한 감시 #
24
Login Name과 password의 유출 사적이거나 내부 기밀정보의 유출
스니퍼에 의해 발생할 수 있는 위험들 Login Name과 password의 유출 사적이거나 내부 기밀정보의 유출 이웃하는 네트워크의 보안에 위협을 가하거나 특정 작업들을 수행 할 수 있는 제어권의 획득 #
25
스니퍼 공격에 대한 방어 ifconfig #
26
스니퍼 공격에 대한 방어 ifstatus 시스템에 있는 모든 네트워크 인터페이스를 검사하여 디버그 상태에 있거나 무차별 모드에 있는 인터페이스를 발견한다. 애플리케이션 : David A. Curry의 ifstatus 필요조건 : C, IP 헤더 설정파일 : 없음 위 치 : 보안사항 : 없음 #
27
스니퍼 공격에 대한 방어 NEPED 서브넷안에서 활동하고 있는 스니퍼 검색.
애플리케이션 : NEPED 필요조건 : C, IP 헤더, 리눅스 2.0.x+, libc5,GlibC 설정파일 : 없음 위 치 : 보안사항 : 없음 주의: 리눅스커널 버전 이전 버전에서만 작동. #
28
스니퍼 공격을 방어하는 일반적인 방법 스니퍼의 발견은 이미 네트웍크의 위험성 노출.
네트워크를 구성할때 부터 암호화 기법을 사용. #
Similar presentations