Chap 1 Introduction to Intrusion Detection
Download
Report
Transcript Chap 1 Introduction to Intrusion Detection
네트웍 해킹기법 및 대응
김진열([email protected])
연구소장, 시큐리티맵㈜
차례
1.
네트웍 보안 개요(Network Security Overview)
2.
네트웍 스캐닝(Network Scanning)
3.
스니핑(Packet Sniffing)
4.
스푸핑(IP Spoofing)
5.
세션 하이재킹(Session Hijacking)
6.
DoS/DDoS Attack
7.
터널링(Tunnelling)
`
http://www.kisec.com
네트웍 보안의 개요
네트웍 공격의 분류
네트워크를 통한 서버 공격
네트워크 환경 및 시스템 정보 수집 - 공격시에 최초로 시도
• 네트워크 스캔, 포트 스캔, 스니핑
Packet Sniffing을 통한 사용자 아이디 및 암호 획득
DOS(Denial of Service) 공격
네트웍 보안취약점의 원인
TCP/IP 프로토콜 구현상의 오류
세밀하지 못한 자원 공유 및 접근제어
네트웍 기반의 인증 서비스 부족
네트웍 서비스 데몬의 취약점
단일화된 보안 관리의 어려움
`
http://www.kisec.com
네트웍 스캐닝
네트웍 스캐닝
네트웍 스캐닝의 목적
네트워크의 연결에 대한 문제점을 테스트
이용 가능한 서비스와 포트를 조사 및 보안 취약점 검색
시스템 정보 획득
• OS 종류 및 버전
• 서비스 중인 포트 및 서비스 종류
네트웍 스캐닝 기법
포트 스캔(Port Scanning)
• Open Port Detection
• OS Detection
• Etc
취약점 스캔(Vulnerability Scanning)
• 특정 네트웍 서비스(서버 어플리케이션)의 취약점 탐지
`
http://www.kisec.com
네트웍 스캐닝
네트워크 스캐너 종류
nmap(Network mapper), mscan, sscan, portscan, HakTek,
porttest, dnscan, checkos, etc
CGI Vulnerability Scanner
• CGI scanner, Perl CGI Checker, etc
`
http://www.kisec.com
Port Scanning
목적
어떤 서비스가 열려 있는지를 확인한다.
방법
인터넷에 공개되어 있는 scanning 도구를 이용한다.
Network Scanning에 의해 시스템의 존재와 그 시스템의 IP 주소를
얻으면 그 시스템에 무슨 서비스가 존재하는지를 확인한다.
서비스를 제공하는 서버 데몬의 종류를 확인한다. 예를 들어서 웹
서버의 종류와 버전을 확인한다. 이것은 이미 알려져 있는 버그가
데몬에 있는지를 확인하기 위해 필요하다.
`
http://www.kisec.com
Port Scanning
mscan 공격
네트워크 블록 전체를 스캐닝하여 최근에 알려진 보안 취약점을
한번에 스캐닝
점검 취약점 항목
• wingate
• phf, handler, test-cgi
• NFS exports, statd, named
• X server, ipopd, imapd
`
http://www.kisec.com
Port Scanning
sscan 공격
mscan을 개발한 jsbach가 개발
mscan에 비해 강력해진 네트워크 보안 취약점 점검 기능
mscan 취약점 점검 항목
• 백오리피스 점검(31337 포트)
• 취약한 CGI 프로그램들(Count.cgi, php.cgi 등 다수)
• bind/iquery 버퍼 오버플로우 등
취약점에 대한 공격 시도(자기복제 가능한 스크립트 모듈 수행)
z0ne
특정 도메인의 수많은 IP를 찾아내는 프로그램
imapvun, imapd_scan.sh
imap 취약점 스캐너
phfscan
phf.cgi 취약점 스캐너
`
http://www.kisec.com
Port Scanning
Nmap(Network Mapper)을 사용한 포트 스캔
`
http://www.kisec.com
Port Scanning(by hand)
일반적인 서버 확인 방법 (TCP 연결인 경우)
victim % telnet 10.10.10.1 3306
….
GET / HTTP/1.0
Accept: */*
HTTP/1.0 200 OK
Date: …
Server: Apache/1.3.6 (Unix) …
Victim % telent 10.10.10.1 23
….
Unix® System V Realse 4.9(10.10.10.1)
Login
Victim % telnet 10.10.10.1 21
….
…. FTP server(UNIX® System V Realse 4.0 ready.
SYST
`
http://www.kisec.com
OS Detection
목적
시스템의 종류를 확인한다.
시스템의 종류를 알면 시스템에 존재하는 취약점을 알 수 있고, 또한
버퍼 오버플로우의 경우가 존재하는 경우 쉘 코드의 종류(Assembly
Language)를 알 수 있다.
방법
victim
% nmap –O 10.10.10.1
인터넷에
공개되어 있는 스캔 도구를
….
Remote operation system guess: Linux 2.1.122 – 2.2.14
….
`
http://www.kisec.com
이용한다.
Vulnerability Scanning
Vulnerability Scanning 개요
원격 시스템의 보안 취약성을 검색하여 정보 수집 및 네트워크 공격
Scanner의 종류
시스템 스캐너
• COPS(The Computer Oracle and Password System)
• 애매하거나 잘못된 파일 허가권
• 디폴트 계정
• 잘못되거나 중복된 UID 항목
• ISS의 System Scanner
네트워크 스캐너
• ISS(Internet Security Scanner)
• SATAN(Security Administrator’s Tool for Analyzing Networks)
• SAINT
` • CGI Scanner
http://www.kisec.com
Vulnerability Scanning
Scanning 공격 방어
courtney : SATAN과 SAINT 탐지기
icmpinfo : ICMP 스캔/폭탄 탐지기
scan-detector : 일반적인 UDP 스캔 탐지기
Psionic PortSentry : stealth scanner 탐지기
`
http://www.kisec.com
SAINT
SAINT(Security Administrator’s Integrated Network Tool)
SATAN의 향상된 보안 스캐너
SAINT의 보안 검사 항목
•
•
•
•
•
CGI 기반의 웹 공격
DOS 공격
POS 서버 공격
SSH Security holes
Remote Buffer Overflow
`
http://www.kisec.com
기타 - 내부 정보 획득
사용자 정보 획득
finger (/usr/bin/finger)
victim % finger @victim.com
[victim.com]
Login
Name
TTY
idle
zen Dr.Foobar
co
1d
When
Wed 08:00
Where
death.com
rusers (/usr/bin/rusers)
Victim % rusers victim.com
Login
Home-dir
Shell
root
/
/bin/sh
bin
/bin
nobody
/
daemon
/
`
http://www.kisec.com
Last login, from where
Fri Nov 5 07:42 on ttyp1 from big.victim.com
Never logged in
Tue Jun 15 08:57 on ttyp2 from server.victim.com
Tue Mar 23 12:14 on ttyp0 from big.victim.com
기타 - 내부 정보 획득
NFS 정보 획득
showmount
evil % showmount –e victim.com
export list form victim.com:
/export
(everyone)
/var
(everyone)
/usr
easy
/export/exec/kvm/sun4c.sunos.4.1.3 easy
/export/root/easy
easy
/export/swap/easy
easy
NFS는
특별히 신뢰하는 클라이언트에게만 read/write only로 개방하며,
가능한 Read-only로 만든다.
`
http://www.kisec.com
기타 - 내부 정보 획득
RPC 관련 시스템 정보 획득
rpcinfo
• NIS 사용 및 master/slave 여부
• 디스크 없는 워크스테이션 운영 여부
• 기타 시스템 정보 획득
evil % rpcinfo –p victim.com
program vers
proto
port
100004
2
tcp
673
100005
1
udp
721
100003
2
udp
2049
100026
1
udp
733
100017
1
tcp
1274
`
http://www.kisec.com
ypserv
mountd
nfs
bootparam
rexd
기타 - 패스워드 추측
패스워드 추측(Password Guessing)
주어진 정보를 이용하여 패스워드를 추측하여 공격
• 사용자의 신상에 관한 정보
• 사전 대입식 – 패스워드 크랙 도구 사용
패스워드의 최소 길이를 설정해 놓지 않았거나 짧게 설정해 놓으면
Brute force 공격에 당하기 쉽다
패스워드 추측 기법
Brute-force
무작위 추출법
순차 대입법
사전식 대입 - 크래킹 도구를 이용
• Crack, webcrack
`
http://www.kisec.com
스니핑/Sniffing
네트웍 도청은 가능한가?
네트웍 도청을 어떻게 하는가?
`
http://www.kisec.com
내용
스니핑이란 무엇인가?
무엇을 스니핑 할 것인가?
유명 스니핑 소프트웨어
고급 스니핑 기법
운영 체제 API 살펴보기
스니핑에 대비하기
스니퍼 탐지 기법
`
http://www.kisec.com
스니핑이란 무엇인가?
네트웍 트래픽을 모니터링하여 중요한 정보를 찾아내는 것
스니퍼(sniffer) : 스니핑에 사용하는 프로그램
대부분의 루트킷(rootkit)에는 스니퍼가 들어 있음
스니핑 방법
예전 : 허브에 연결하여 네트웍 인터페이스 카드를 promiscuous 모드로
변경
요즘 : 스위치 사용으로 인해 promiscuous 모드 스니핑이 불가능
• 스위치의 미러링 포트
• ARP / DNS 스푸핑
`
http://www.kisec.com
스니핑 방법
Old Way
`
http://www.kisec.com
New Way
무엇을 스니핑할 것인가? (1)
인증 정보
텔넷(포트 23)
FTP(포트 21)
POP(포트 110)
IMAP(포트 143)
NNTP(포트 119)
rexec(포트 512)
rlogin(포트 513)
X11 윈도우(포트 6000+)
NFS 파일 핸들
윈도우 NT 인증 정보
`
http://www.kisec.com
무엇을 스니핑할 것인가? (2)
기타 네트웍 트래픽
SMTP(포트 25) 모니터링
• 내부자의 정보 유출 감시
HTTP(포트 80) 모니터링
• 트래픽의 내용 보다는 트래픽 통계및 네트웍 사용량을 알기
위해서 모니터링 하는 경우가 많음
`
http://www.kisec.com
유명 스니핑 소프트웨어 (1)
Ethereal
라이브 디코드 기능
`
http://www.kisec.com
유명 스니핑 소프트웨어 (2)
Network Associates Sniffer Pro
스니퍼의 대명사
`
http://www.kisec.com
유명 스니핑 소프트웨어 (3)
Microsoft Network Monitor
기능은 많지 않지만 안정적, 기본 설치
`
http://www.kisec.com
유명 스니핑 소프트웨어 (4)
TCPDUMP(www.tcpdump.org )
가장 유명한 UNIX기반 네트웍 모니터링 툴
Dsniff(www.monkey.org/~dugsong/dsniff )
Dug Song이 만든 해킹 툴
스니핑, ARP 스푸핑, DNS 스푸핑, MITM 공격
Ettercap
SSL/SSH MITM 공격
Esniff.c
Sniffit
Carnivore
FBI에서 만든 스니퍼
재판 증거물로 쓸 데이터 생성
`
http://www.kisec.com
운영 체제 API 살펴보기
Linux
SOCK_PACKET 인터페이스
BSD
BSD Packet Filter(BPF)
Libpcap
크로스-플랫폼 패킷 캡쳐 라이브러리
윈도우
Winpcap
써드 파티 패킷 드라이버
`
http://www.kisec.com
스니핑에 대비하기
암호화
SSH
SSL
PGP, S/MIME
스위칭 기법 사용
`
http://www.kisec.com
스니핑 탐지 기법
로컬 탐지
ifconfig 명령 : promiscuous 모드 탐지
네트웍 탐지
추가 DNS 룩업 트래픽 발생 탐지
대기 시간 검사
드라이버 버그
• 리눅스 Promiscuous 모드 여부를 원격지에서 알아냄
AntiSniff 툴 사용
• www.securitysoftwaretech.com/antisniff
마이크로소프트 네트웍 모니터 – 다른 NetMon 탐지 기능
`
http://www.kisec.com
스니핑 기술의 양면성
스니핑과 네트웍 침입탐지 시스템
스니핑 기술
• 스위칭 허브에서의 스니핑 방법은 여러가지 존재
• DSL, Cable Modem을 이용한 Sniffing도 가능
• Wireless Ethernet 도 Sniffing이 가능
침입탐지 기술
• 고속에서 문제가 있음
• 스위칭 허브에 적용시에도 문제가 있음
`
http://www.kisec.com
세션 하이재킹/Session Hijacking
나의 세션을 누군가 가로챌 수 있을까?
어떤 툴로 세션 하이재킹을 할 수 있을까?
`
http://www.kisec.com
내용
세션 하이재킹 이해
하이재킹 툴 분석
암호화된 통신에 대한 MITM 공격
`
http://www.kisec.com
세션 하이재킹이란 무엇인가?
세션 하이재킹/Session Hijacking
기존의 세션을 공격자가 가로 채서 통신에 참여하는 것.
스니핑 <-> 세션 하이재킹
인터넷으로 계좌이체를 하는데 수신자 계좌 번호가 바뀐다면?
FTP를 통한 파일 다운로드시, 파일의 내용이 바뀐다면?
`
http://www.kisec.com
TCP Session Hijacking
SYN M
ACK M+1, SYN N
ACK N+1
SEQ M+1, ACK N+1
20 bytes
SEQ N+1, ACK M+21
0 bytes
SEQ M+21, ACK N+1
`
http://www.kisec.com
공격자의 패킷 삽입 :
<CR> echo + + > /.rhosts <CR>
TCP Packet Blocking (1)
세션 하이재킹의 두 가지 방법
Without Packet Blocking
With Packet Blocking
• Route Table Modification
• ARP attack
`
http://www.kisec.com
TCP Packet Blocking (2)
Route table modification
ICMP redirect message
20 bytes
source : http://www.firewall.cx/icmp-redirect.php
`
http://www.kisec.com
TCP Packet Blocking (3)
ARP attack
Arp spoofing
Arp spoofing 탐지법
• Arp 트래픽이 두배로 늘어남
• Arp 캐시가 변경됨
• Arpwatch 툴로 모니터링 가능 (ftp://ee.lbl.gov/arpwatch.tar.gz)
`
http://www.kisec.com
UDP Hijacking
UDP Hijacking
TCP와는 달리 3-way handshake를 맺지 않아도 됨
예: DNS Spoofing
`
http://www.kisec.com
세션 하이재킹 툴
Juggernaut
Hunt
Ettercap
SMBRelay
`
http://www.kisec.com
Ettercap – (1)
(Ettercap 초기 화면)
`
http://www.kisec.com
Ettercap – (2)
(source와 destination 선택 후)
`
http://www.kisec.com
Ettercap – (3)
192.168.0.2에서 arp –a 명령 실행 후
`
http://www.kisec.com
ACK Storm
서버
공격자
클라이언트
20 bytes
Seq : 100
Seq : M
ACK 120
10 bytes
Anomaly !
ACK 120
Anomaly !
ACK M
`
http://www.kisec.com
ACK Storm 종료
packet drop
공격자가 원하는 작업을 마친 후 연결을 끊음(RST 패킷 전송)
resynchronize
`
http://www.kisec.com
ACK Storm resynchronize
서버
공격자
클라이언트
20 bytes
Seq : 100
Seq : M
ACK 120
10 bytes
X
ACK 110
30 bytes
ACK 120
`
http://www.kisec.com
X
Anomaly !
암호화된 통신에 대한 MITM 공격
Dsniff
Webmitm
• dnsspoof 이용
Sshmitm
`
http://www.kisec.com
스푸핑/Spoofing
그래서 나는 진정한 신뢰 관계가 존재하는 네트웍이란 존재하지 않는다고
생각한다. 그보다는, 교활하고 간사한 데몬이 여러 프로토콜을 속이는
네트웍이 존재한다고 생각한다. 나는 스위치, 관리자, 사용자, 헤더, 명령,
응답 을 비롯한 모든 네트웍 통신이 가상으로 일어날 수 있다고 생각한다.
나는 출발지 주소, 복잡한 프로토콜, 신뢰하는 제 삼자, 제대로 동작하는
클라이언트 코드, 제대로 된 상태 등을 갖고 있지 않다고 판단할 것이다. 나는
단지 그런 것을 갖고 있다고 착각할 뿐이다.
—Dan "Effugas" Kaminsky
`
http://www.kisec.com
내용
스푸핑이란 무엇인가?
배경 이론
컴퓨터 네트워킹에서의 주체 설립
웹 브라우저 스푸핑
스푸핑 시스템 설계
사례 연구 : IP 스푸핑
`
http://www.kisec.com
스푸핑이란 무엇인가?
스푸핑이란?
Meike Keao : 시스템과 서비스에 접근하기 위해 주체에 대한 잘못된 정보를
제공하는 것
TCP/IP 프로토콜의 구조적 결함, 즉 TCP 시퀀스 번호, 소스 라우팅, 소스
어드레스를 이용한 인증 메커니즘 등을 이용한 방법
인증 기능을 가지고 있는 시스템에 침입하기 위해 침입자가 사용하는
시스템을 신뢰성 있는 호스트로 위장하는 방법
스푸핑
주체를 속이는 것
주체 검사 단계에 대한 능동적 공격
통신의 모든 계층에서 가능하다
항상 고의적이다
배신과는 다르다
반드시 악의적인 것은 아니다
• Hot Swappable Router Protocol (HSRP)
• Linux의 Fake project (www.au.vergenet.net/linux/fake)
새로운 것이 아니다
`
http://www.kisec.com
ARP 스푸핑 (1)
ARP 프로토콜
`
http://www.kisec.com
ARP 스푸핑 (2)
ARP 오염/Poisoning
• 대부분의 운영 체제에서는 ARP 요청을 보내지 않았더라도 ARP
응답을 받았을 경우 그 응답 내용을 캐시에 저장
• 리눅스 커널 2.4.x에서는 요청하지 않은 ARP 응답이 왔을 경우
캐시에 저장하지 않는 방법을 사용
• ARP 요청(request)을 받을 경우 그 요청의 출발지 주소를 캐시에
저장한다는 보안 문제점
• SOLARIS의 경우 캐시에 항목이 없는 ARP 응답(reply)을 캐시에
저장하지 않음
• 공격자는 먼저 ICMP_ECHO_REQUEST를 SOLARIS 호스트로
보내서 ARP 항목을 캐시에 만든 다음 ARP 오염 공격 수행
`
http://www.kisec.com
DNS 스푸핑 (1)
DNS 요청 전송
`
http://www.kisec.com
DNS 스푸핑 (2)
DNS 스푸핑 공격
`
http://www.kisec.com
웹 브라우저 스푸핑
www.doxpara.com/popup_ie.html
`
http://www.kisec.com
스푸핑 시스템 설계
사용자 공간 라우터 : DoxRoute
라우터의 기능
특정한 MAC 주소를 찾는 ARP 패킷에 응답
특정한 IP 주소를 찾는 Ping 요청에 응답
상위 네트웍으로 패킷을 전달
DoxRoute :
Libpcap과 libnet을 사용한 “fake” 라우터
`
http://www.kisec.com
사례 연구 : IP 스푸핑
공격자
`
http://www.kisec.com
피해자
B와 신뢰관계
스푸핑
IP Spoofing 대비책
탐지
• 네트워크 모니터링 도구 이용
예방
• 패킷 필터링 기능과 보안 취약성이 보강된 라우팅 프로토콜을 포함하고 있는
라우터 사용
• 소스 IP 주소를 이용한 인증에 대한 대책과 시퀀스 번호 조작에 대한 대책 마련
• Router에서 source routing을 허용하지 않음
• 내부 사용자끼리의 IP Spoofing은 막을 수 없다.
• Sequence number를 Random 하게 발생시키도록 함
• Sequence number를 sniff 할 수 있는 경우에는 막을 수 없다.
• Denial of Service가 발생하지 않도록 함
• IP Spoofing은 Denial of Service가 공격의 시작이므로 Denial of Service를
막을수 있다면
IP Spoofing 공격을 막을수 있다.
• IP로 인증하는 서비스는 사용하지 않음
• IP Spoofing은 막을 수 있지만 상당히 불편해진다.
• 암호화된 Protocol 을 사용
• 암호화된 Protocol을 사용하면 IP Spoofing공격을 상당히 차단할 수 있지만
속도가 느려지고
사용이 아직 보편화 되어 있지 않다.
`
http://www.kisec.com
서비스거부(DoS/DDoS)
DoS(Denial of Service)
DoS(Denial of Service)
공격자가 호스트의 H/W나 S/W 등을 무력하게 만들어 호스트에서
적법한 사용자의 서비스 요구를 거부하도록 만드는 일련의 행위
특징
•
•
•
•
•
공격의 원인 및 원천지를 찾기 힘듬
공격 방법이 매우 다양
단순한 공격 방법이 많아 누구나 쉽게 이용
뚜렷한 방지 대책 부재
최근 네트워크를 이용한 원격 DOS 공격 급증
`
http://www.kisec.com
DoS(Denial of Service)
DoS(Denial of Service)
DoS 공격의 형태
•
•
•
•
디스크 채우기, 메모리 고갈, 프로세스 만들기
메일폭탄 – anonmail, kabomb
Buffer Overflow
Ping Flooding, SYN Flooding, etc
DoS 공격 도구
•
•
•
•
Blood Lust - OOB베이스 공격 도구이며 포트 139를 공격
Bitch Slap - IP주소만 입력하여 주면 되는 간단하면서도 파워 있는 도구
Click - IRC 전문 프러딩 공격 도구
Cyber - ping 기능으로 대량의 패킷을 보내는 공격 도구
`
http://www.kisec.com
DoS(Denial of Service)
Smurf 공격
ICMP echo/reply packets 사용
broadcast networks 주소를 이용하여 트래픽 급증
Internet
Perpetrator
ICMP echo : source(Victim’s IP),
destination(broadcast addr of bounce site)
Victim
ICMP echo reply
...
...
bounce site
`
http://www.kisec.com
DoS(Denial of Service)
Land
Source 주소를 공격 대상자 자신의 IP 및 port로 지정하여 패킷 전송
패킷을 받은 시스템은 루프 상태에 빠지는데 시스템의 IP 스택에 심각한 장애 유발
BSDI 2.1 vanilla, FreeBSD 2.2.x, 3.0, HP-UX 10.20, NetBSD 1.2, OpenBSD 2.1,
SunOS 4.1.4, Cisco 2511
대책 : 라우터에서 내부 IP를 가진 외부 트래픽 제한
• http://www.cisco.com/warp/public/770/land-pub.shtml
“Ping of Death”, ping flooding
packet fragmentation and reassembly 취약점 이용
매우 큰 ping 패킷 전송
# ping -s 65507 hostname
시스템의 IP 스택에 심각한 장애 유발
대책: 패치설치(www.sophist.demon.co.uk/ping/ 참조)
`
http://www.kisec.com
DoS(Denial of Service)
SYN Flooding
많은 수의 half-open TCP연결을 시도하여 상대 호스트의 listen
queue를 가득 채움
TCP 서비스 연결 거부
SYN/ACK 전송:
destination(nonexgisting host)
그리고 ACK가 올때까지 기다림
ack_waiting, ack_waiting, …..
많은 수의 SYN 패킷 전송:
source(nonexisting host)
destination(target.host)
test#synf 1.1.1.1 2000 203.227.32.15 23
SYN flooding from 1.1.1.1 to 203.227.32.15.23
`
http://www.kisec.com
dns.target.com
flat# telnet 200.227.32.15
Trying 203.227.32.15...
Connected to 203.227.32.15.
Escape character is '^]'.
SunOS UNIX (test)
login: Login timed out after 60 seconds
Connection closed by foreign host.
flat#
DDoS(Distributed Denial of Service)
DDoS(Distributed Denial of Service)
네트워크로 연결된 분산환경에서 여러대의 클라이언트를 이용하여
한대의 공격대상 시스템에 대한 DOS 공격
DDoS 공격의 형태
• 포트스캔 공격
• 특정포트나 특정트레픽상의 Byte Pattern recognition의 변경
공격
• 크래커 공격시 사용하는 모든 명령어는 암호화 되어 사용
• TCP/IP, ICMP등의 포트를 수시로 변경하며 공격
DDoS 공격 도구
• trin00
• TFN(Tribed Flood Network)
• TFN2000 (TFN2K)
• Stacheldraht
`
http://www.kisec.com
터널링/Tunneling
터널링이란?
SSH를 통한 터널링 기법
`
http://www.kisec.com
내용
터널링이란?
터널 설계의 제약
OpenSSH를 이용한 터널링
`
http://www.kisec.com
터널링이란?
멀리 떨어진 서버가 마치 가깝게 있는 것처럼 보이게 하는 솔루션
“터널”
종단과 종단을 연결하는 경로
그 중간에 있는 경유지 어디에도 도달할 수 없는 네트웍
터널의 용량은 계속 변하지만 일반적으로 제한 조건이 없을 때보다는
작다
`
http://www.kisec.com
터널 설계의 제약
비밀성 : 내 트래픽은 어디로 가고 있나?
다른 사람이 이 터널로 지나가는 트래픽을 모니터링할 수 있는가?
다른 사람이 이 터널로 지나가는 트래픽을 수정하거나, 몰래 그
데이터에 접근할 수 있는가?
라우팅 능력 : 이것이 어디로 흘러들어갈 수 있나?
내 네트웍으로 패킷을 라우팅할 수 있는 능력이 제한돼 있을 때, 이
터널이 거기에 들어맞을 수 있을까?
내가 어떤 네트웍 기능의 목적을 바꿀 때, 그것이 얼마나 드러날
것인가?
배치 능력 : 어떤 클라이언트와 서버를 설치해야 하나?
유연성 : 이것을 어디에 쓸 수 있나?
품질 : 안정성, 속도
`
http://www.kisec.com
OpenSSH 터널링
비밀성 : 내 트래픽은 어디로 가고 있나?
대량의 데이터 암호화 할 때 : 3DES, AES, Blowfinsh
키 교환할 때 : RSA, DSA
라우팅 능력 : 이것이 어디로 흘러들어갈 수 있나?
모든 트래픽이 하나의 외부 TCP 세션으로 전송
배치 능력 : 어떤 클라이언트와 서버를 설치해야 하나?
대부분의 UNIX와 윈도우에서 사용 가능
유연성 : 이것을 어디에 쓸 수 있나?
UNIX 셸, 명령 포워딩, 정적 포트 포워딩, 동적 포트 포워딩, …
품질 : 안정성, 속도
“제대로 동작하는” 시스템
`
http://www.kisec.com
OpenSSH 인증
인증 방식
비밀번호를 통한 인증
공개키/개인키를 이용한 인증
`
http://www.kisec.com
비밀번호를 통한 인증
192.168.0.8 -> 192.168.0.1 로 접속
192.168.0.8 사용자의 $HOME/.ssh 디렉터리
`
http://www.kisec.com
공개키를 통한 인증 (1)
192.168.0.8 에서
`
http://www.kisec.com
공개키를 통한 인증 (2)
192.168.0.8 호스트의 id_dsa.pub를 192.168.0.1 호스트의
/home/securityx/.ssh/authorized_keys2 파일로 복사
192.168.0.8 호스트에서 다음 명령 수행
`
http://www.kisec.com
명령 파이프 연결 (1)
원격지 호스트에서 명령 실행
`
http://www.kisec.com
명령 파이프 연결 (2)
원격지 시스템의 /home/securityx/tools 디렉토리에 있는 모든 내용을 로컬 시스템에 복사
로컬 시스템의 $HOME/magic 디렉토리에 있는 모든 내용을 원격지
시스템의 $HOME/magic으로 복사
`
http://www.kisec.com
포트 포워딩
포트 포워딩
특정 포트(A)로 온 데이터를 특정 호스트(B)의 특정 포트(C)로 보내는 것을 의미
호스트 B : 로컬 호스트 혹은 다른 호스트
로컬 포트 포워딩
동적 포트 포워딩
원격지 포트 포워딩
`
http://www.kisec.com
로컬 포트 포워딩 (1)
로컬에 있는 특정 포트로 오는 데이터를 다른 호스트의 다른 포트로 전달하는 것
ssh –L 로컬_포트:목적지_호스트:목적지_포트 사용자_ID@포워딩_호스트
`
http://www.kisec.com
로컬 포트 포워딩 (2)
`
http://www.kisec.com
동적 포트 포워딩 (1)
로컬 포트 포워딩의 문제점 : 목적 주소와 포트가 고정됨
SOCKS4를 이용하면 방문하고자 하는 호스트의 주소와 포트를 동적으로 결정할
수 있음
ssh 사용자_ID@포워딩_호스트 -D로컬_포트
`
http://www.kisec.com
동적 포트 포워딩 (2)
Netscape 프럭시 설정
`
http://www.kisec.com
원격지 포트 포워딩 (1)
원격지에 있는 특정 포트로 오는 데이터를 다른 호스트의 다른 포트로 전달하는
것
ssh –R 서버_포트:목적지_호스트:목적지_포트 사용자_ID@포워딩_호스트
`
http://www.kisec.com
원격지 포트 포워딩 (2)
`
http://www.kisec.com
원격지 포트 포워딩 (3)
`
http://www.kisec.com