본문 바로가기

IT News/Security

스푸핑(Spoofing)에 관한 모든 것

반응형

IP 스푸핑(IP Spoofing)이란?


Spoof란 단어의 사전적 의미는 'hoax; trick; swindle 골탕 먹이다.; 속여먹다.; 야바위(치다), 우롱, 사취'이다. 즉 해커가 악용하고자 하는 호스트의 IP 어드레스를 바꾸어서 이를 통해 해킹을 하는 것을 IP 스푸핑이다.
네트워크 시스템에서 서로 신뢰관계에 있는 A, B 두 시스템간에는 A 시스템의 어카운트를 가지고 B 시스템을 액세스 할 수 있다. 이는 네트워크에서 신뢰관계를 형성하는 서비스가 네트워크 주소에 기반하여 이를 인증하기 때문이다. 이로 인해 IP 스푸핑이 가능해 진다. IP 스푸핑은 이 신뢰관계에 있는 두 시스템사이에서 해커의 호스트를 마치 하나의 신뢰관계에 있는 호스트인 것처럼 속이는 것이다. 또한 IP 스푸핑과 항상 연동돼 사용되는 공격법으로 TCP sequence number guessing attack을 들 수 있다.

TCP Sequence Number Guessing Attack이란?


과거에 Internet worm의 저자로도 유명했던 Robert T.Morris가 벨 연구소에서 인턴쉽으로 일할 때 쓴 논문에서 처음으로 알려졌고 AT&A사의 Bellovin S.M이 89년 쓴 논문에서도 언급이 되었던 공격 방법이다.(Security Problems in the TCP/IP Protocol Suite).
Kevin Mitnick이 사용한 방법 또한, 이런 공격을 이용해 몇 년 전에 보안업계를 떠들석하게 했었던 사건이 하나 있다. 바로 Kevin Mitnick이 슈퍼 컴퓨터센터 소속 연구원의 컴퓨터를 공격해 자료를 빼간 뒤 관리자인 Tsutomu Shimomura를 조롱하고 달아난 사건이다. Kevin Mitnick은 상당기간 동안 잡히지 않다가 Tsutomu Shimomura의 추적 끝에 간신히 잡힌 것으로 이 사건은 결말이 났다. 바로 이 사건에서 Kevin Mitnick이 쓴 방법도 TCP Sequence Number Guessing Attack의 특별한 한 형태라고 할 수 있다. (Kevin Mitnick이 사용한 방법은 IP 어드레스를 spoof해서 Berlerly R-command(rlogin, rcp, rsh 등)를 공격한 방법이었다.)

스푸핑에 관한 모든 것


TCP와 UDP 서비스는 호스트의 IP 주소가 유효하다고 가정하고, 그 결과로 주소를 신뢰한다. 어쨌든, 해커의 호스트는 IP 소스 라우팅을 사용해서 신뢰받는 호스트나 클라이언트로 변장할 수 있다. 해커는 IP 소스 라우팅을 사용해서 목적지의 길을 지정할 수 있고, 원래 위치로 돌아오는 길도 지정할 수 있다. 경로(route)는 여러분이 패킷을 목적지에 보내는 데 사용하는 라우터나 호스트를 말려들 게 할 수도 있다. 이 방법으로 해커는 진짜 호스트로 갈 패킷을 만나지 않고도 전송을 가로채거나 수정할 수 있다. 다음의 예는 어떻게 해커의 시스템이 특정한 서버의 신뢰받는 클라이언트로 변장할 수 있는지를 보여준다. 

1. 해커는 변장 호스트의 IP 주소를 신뢰받는 클라이언트의 주소와 일치하게 변경한다. 
2. IP 패킷은 직접 패스를 서버로 보내야 하고, 해커의 호스트로부터 가지고 돌아와야만 한다. 해커는 이 직접 패스를 지정하는 서버로서 소스 경로를 구성한다. 
3. 해커는 소스 경로를 사용해서 서버에게 클라이언트 요청을 보낸다. 
4. 서버는 요청이 신뢰받는 클라이언트로부터 직접 온 것처럼 생각해서 클라이언트 요청을 받아들이고, 신뢰받는 클라이언트에게 응답을 보낸다. 
5. 신뢰받는 클라이언트는 소스 경로를 사용해서 패킷을 서버의 호스트에 보낸다. 

많은 유닉스 호스트는 소스-발송의 패킷을 받아들이고, 이 패킷을 소스 경로가 지시하는 곳으로 보낼 것이다. 많은 라우터는 소스-발송의 패킷 또한 받아 들일 것이다.
클라이언트를 스푸핑하는 간단한 방법은 클라이언트의 시스템이 종료할 때까지 기다리고, 클라이언트의 시스템을 흉내 내는 것이다. 많은 조직과 스태프 멤버는 개인용 컴퓨터와 TCP/IP 소프트웨어를 사용해서 연결하고, 유닉스 호스트를 LAN 서버로 활용한다. 개인용 컴퓨터는 종종 유닉스의 네트워크 파일 시스템(NFS)을 사용해서 서버 디렉토리와 파일(NFS는 IP주소만을 사용해서 클라이언트를 확인한다.)에 액세스한다. 해커는 진짜 클라이언트인 체해서 개인용 호스트에의 연결을 초기화한다. 해커는 이 스푸핑 공격을 쉽게 행할 수 있다. 게다가, 내부 사람만이 보호된 네트워크 내의 종료된 컴퓨터가 어떤 것인지 알 것이기 때문이 공격은 아마 "내부"공격이라고 알려질 것이다.

E-mail 스푸핑


인터넷상의 e-mail은 특히 속이기가 쉽다. 그리고 여러분은 일반적으로 디지털 서명과 같은 것이 없으면 e-mail을 신뢰하지 못할 것이다. 간단한 예로, 인터넷 호스트가 메일을 교환할 때의 교환을 생각해 보라. 교환은 ASCII문자 명령어를 사용하는 간단한 프로토콜을 사용해서 일어난다. 침입자는 텔넷을 사용해서 간단하게 수동으로 이 명령문을 입력해서 시스템의 SMTP 포트로 직접 연결할 수 있다. 받는 호스트는 보내는 호스트의 id를 신뢰하기 때문에 해커는 해커의 원래 주소와 다른 보내는 주소를 입력함으로써 간단히 메일의 근원지를 속일 수 있다. 결과적으로 특권이 없이도 아무 사용자나 간단히 e-mail을 속일 수 있다.

스푸핑 검출하기


비동기화 공격과는 달리, IP 스푸핑 공격은 검출해내기 힘들다. 만약 여러분의 사이트가 인터넷 라우터의 외부 인터페이스의 네트워크 트래픽을 모니터할 수 있는 기능이 있다면 여러분은 라우터를 통해 들어오는 트래픽을 검사할 수 있다. 여러분이 트래픽을 검사할 때 시스템 로그(Log)에 트래픽의 기록을 남겨야 한다. 검사(audit)기록을 사용해서 여러분의 지역 도메인에 포함된 목적지 주소와 소스 주소를 가지고 있는 패킷을 검사할 수 있다. 여러분은 인터넷에서 여러분의 네트워크로 들어오는 목적이 주소와 내부의 소스를 담고 있는 패킷을 결코 찾을 수 없을 것이다. 여러분의 라우터를 통과하는 주소를 담고 있는 패킷을 발견하면 이것은 IP 속이기 공격이 진행 중이라는 것을 나타내는 확률이 높다.

tcpdump와 netlog를 사용해서 스푸핑에 대항하기
무료 소프트웨어인 tcpdump와 netlog는 유닉스 시스템의 패킷 모니터링을 하는 것을 도와준다.
여러분은 tcpump를 ftp.ee.lbl.govhr의 /tcpdump.tar.Z에서 다운로드 받을 수 있다.(tcpump의 MD5 체크섬은 4D8975B18CAD40851F382DDFC9BD638F이다.). 여러분이 tcpdump패키지를 설치한 후 다음에 다음의 명령 행 지시를 따라서 domain.name 네트워크 소스와 데스티네이션 IP주소를 가지고 있다고 tcpdump가 지정하는 모든 패킷을 출력한다.
#tcpdump src net domain.name(Enter)
#tcpdump dst net domain.name(Enter) 
추가적으로 여러분은 텍사스 A&M 대학에서 개발된 netlog 패키지를 coast.cs.purdue.edu의 파일 /pub/tools/unix/TAMU/netlog-1.2.tar.gz에서 다운로드 받을 수 있다.(MD5 체크섬은 1DD62E7E96192456E9C75047C38E994B이다.) 여러분이 netlog를 설치한 다음에 다음의 명령어로 netlog를 호출한다.
#tcplogger -b | extract -U -e 'srcnet=X.Y.O.O {print}' 
Tcplogger 명령문은 netlog에게 같은 네트워크 내에 소스와 데스티네이션 주소를 가지고 있는 패킷을 검색한다. Tcplogger를 실행시킨 다음에 netlog는 소스와 데스티네이션 범쥐의 패킷을 리턴할 것이다.
스푸핑 방지하기
이미 제시했듯이 스푸핑 된 패킷 내의 양 주소는 종종 여러분의 네트워크의 내부 주소와 일치한다. IP 스푸핑 공격의 가장 최고의 방어는 여러분의 지역 도메인에서 출발했다고 주장하는 패킷을 걸러내도록 라우터에 입력하는 것이다. 몇몇개의 라우터 회사는 입력 필터(input filter)로 알려진 다음의 패킷 필터링 기능을 지원한다. 

- Bay Networks/Wekfleet, 버전 5 이후 
- Cabletron 
- Cisco, RIS 소프트웨어 버전 9.21 이후 
- Livingston 

현재 라우터 하드웨어가 패킷 필터링을 지원하지 않으면 여러분은 현재의 라우터와 인터넷 연결 사이에 두 번째 루우터를 설치해도 된다. 두 번째 라우터를 사용해서 스푸핑된 IP 패킷을 걸러 낼 수 있다                                                                  출처 : 
http://heyjoon.egloos.com

반응형