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