'스푸핑'에 해당되는 글 2건

  1. 2006.08.10 [네트워크]IP Spoofing
  2. 2006.08.07 [해킹 기법과 대응] ④ 스프핑 공격(spoofing attack)
engineering/Network Eng.2006. 8. 10. 14:40
IP 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 속이기 공격이 진행 중이라는 것을 나타내는 확률이 높다.

anidia_blue.gif 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}' <Enter>
Tcplogger 명령문은 netlog에게 같은 네트워크 내에 소스와 데스티네이션 주소를 가지고 있는 패킷을 검색한다. Tcplogger를 실행시킨 다음에 netlog는 소스와 데스티네이션 범쥐의 패킷을 리턴할 것이다.
스푸핑 방지하기
이미 제시했듯이 스푸핑 된 패킷 내의 양 주소는 종종 여러분의 네트워크의 내부 주소와 일치한다. IP 스푸핑 공격의 가장 최고의 방어는 여러분의 지역 도메인에서 출발했다고 주장하는 패킷을 걸러내도록 라우터에 입력하는 것이다. 몇몇개의 라우터 회사는 입력 필터(input filter)로 알려진 다음의 패킷 필터링 기능을 지원한다.
  • Bay Networks/Wekfleet, 버전 5 이후
  • Cabletron
  • Cisco, RIS 소프트웨어 버전 9.21 이후
  • Livingston

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

Reference : http://elyjinni.com.ne.kr/hacking/ipspoofing.htm

Posted by theYoungman
engineering/Network Eng.2006. 8. 7. 14:10
우리는 스파이 첩보 영화에서 주인공이 자신을 노출시키지 않기 위해 남의 신분으로 위장하는 경우를 자주 볼 수 있다. 이때 주로 사용하는 방법이 주민등록증, 운전면허증 등의 신분증을 위조하거나 신체적인 특징인 얼굴, 지문, 목소리 등을 변조하는 것이다. 이 모든 것들이 특정 사람을 인식하는 방법을 우회 통과하기 위한 방법이다.

마찬가지로 네트워크 상에서도 악의적인 혹은 비밀스러운 활동을 시도하려는 사람들은 먼저 자기 자신을 감추는 방법을 생각하게 된다. 다만 네트워크 상에서 해당 사용자(혹은 해당 호스트)를 식별하는 정보는 IP 주소, DNS 이름, Mac 주소, 이메일 주소 등을 사용한다.

스프핑 공격(Spoofing Attack)은 바로 자기 자신의 식별 정보를 속여 다른 대상 시스템을 공격하는 기법이다. 네트워크 상의 공격자는 TCP/IP 프로토콜 상의 취약성을 기반으로 해킹 시도시 자신의 시스템 정보(IP 주소, DNS 이름, Mac 주소 등)를 위장하여 감춤으로써 역추적이 어렵게 만든다. 이러한 스프핑 공격은 패킷 스니퍼링이나 서비스 거부 공격, 세션 하이재킹(Session Hijacking)

등의 다른 여러가지 공격을 수행 가능하게 한다.

이번 회에서는 스프핑 공격의 종류를 알아보고, 해당 공격이 어떤 것인지 간략하게 알아보도록 하겠다. 스프핑 공격의 종류를 알아보면 다음과 같다. 어떤 정보를 속이느냐에 따라 세분화될 수 있다.


스프핑 공격의 종류
① IP 스프핑
② APR 스프핑
③ 이메일 스프핑
④ DNS 스프핑



① IP 스프핑

IP 스프핑은 말 그대로 IP 정보를 속여서 다른 시스템을 공격하는 것이다. IP 스프핑을 통해 서비스 거부 공격(TCP Syn flooding, UDP flooding, ICMP flooding)을 수행할 수도 있으며, 공격대상 컴퓨터와 서버 사이의 연결된 세션에 대해서 세션 끊기도 가능하다. TCP/IP 상의 프로토콜 취약성은 1985년 Robert T. Morris의 논문 “A Weakness in the 4.2 BSD Unix TCP/IP Software”에 업급이 되었으며, 특히 희대의 해커 케빈미트닉은 실제 해킹에서 IP 스프핑 공격을 통해 모토롤러, 선마이크로시스템즈, NEC, 노벨 등의 컴퓨터 전산망에 침투, 소프트웨어 및 각종 자료 등을 훔친 혐의로 1995년 체포되었다.

케빈 미트닉은 정확하게는 TCP Syn flooding + TCP 순서 번호 예측(TCP Sequence Nubmer Guessing)

+ IP 스프핑을 사용하였다. 이는 클라이언트와 서버와의 통신 사이에 해커 컴퓨터가 끼어들어 클라이언트를 TCP Syn flooding 서비스 거부 공격으로 전혀 반응하지 못하게 한 후, 해커가 이 클라이언트인 것으로 가장하여 서버와 통신하는 기법이다. 이러한 공격은 TCP/IP 프로토콜의 문제점인 TCP 순서 번호 생성이 매초당 일정하게 증가한다는 것과 호스트에 대한 인증시 IP의 소스 주소만을 사용한다는 것으로 인하여 가능하였다.

순서 번호는 연결 지향형 프로토콜인 TCP 프로토콜에서 두 호스트 간의 패킷 전달이 손실 없이 이루어졌는지 체크하기 위한 일종의 패킷 번호표이다. 해커는 일단 클라이언트를 TCP Syn flooding 공격으로 봉쇄한다. 이후 서버의 순서번호를 예측하여 IP 스프핑된 위조 패킷을 발송함으로써 서버를 속여 침투하는 것이다. IP 기반의 인증만을 제공하는 Unix의 rlogin, rsh 등의 r 계열 서비스들은 이러한 IP 스프핑 공격에 취약할 수 밖에 없다.




② APR 스프핑

ARP 프로토콜은 32bit IP 주소를 48bit의 네트워크 카드 주소(Mac Address)로 대응시켜 주는 프로토콜이다. 우리가 실제로 IP 주소를 통해 네트워크 연결을 시도하면 TCP/IP에서는 해당 IP에 해당하는 네트워크 카드 주소를 찾아 연결하게 된다. 이러한 IP 주소와 네트워크 카드 주소의 대응 테이블은 스위치나 기타 네트워크 장비 및 사용자 컴퓨터에서 arp cache 테이블이라는 곳에 위치하게 된다.

해커가 이 테이블 상의 정보를 위조하게 되면 공격 대상 컴퓨터와 서버 사이의 트래픽을 해커 자신의 컴퓨터로 우회시킬 수 있다. 우회된 트래픽으로부터 해커는 패스워드 정보 등 유용한 정보를 마음껏 획득할 수 있다.

③ 이메일 스프핑

이메일 발송시 송신자의 주소를 위조하는 것이다. 간단한 방법으로는 이메일 송신자 From 필드에 별칭(alias) 필드를 사용할 수 있다. 이메일 발송시 별칭을 설정한 경우에는 별칭 주소로 이메일이 발송된다. 이러한 경우 메일을 받아보는 사람은 실제 이메일 송신자가 아닌 별칭 필드만을 확인하는 경우에는 이메일의 송신자가 별칭 필드에서 온 것으로 알게 된다.

요즘 들어서 극성인 대량의 스팸 메일과 바이러스 감염 메일은 송신자의 주소가 아예 존재하지 않는 이메일 주소를 사용한다. 또한 이메일을 발송한 메일 서버 또한 직접적인 메일 발송 서버가 아닌 중계 서버이므로 메일을 발송한 자를 추적하기란 쉽지 않다.

④ DNS 스프핑

DNS 프로토콜은 인터넷 연결시 도메인 주소를 실제 IP 주소로 대응시켜 주는 프로토콜이다. 인터넷 연결시 사용하는 DNS 서버가 IP 주소를 찾아달라는 요청을 받았을 때, 자기 자신의 도메인이 아닌 주소에 대해서는 보다 상위 단의 DNS 서버로부터 재귀적(recursive)

인 방식으로 IP 주소를 찾아 알려준다.

만약 해커가 어떤 도메인의 DNS 컴퓨터를 장악하여 통제하고 있다면 최종적으로 얻어진 IP 주소는 원래 사용자가 찾아가고자 하였던 홈페이지가 아닌 다른 홈페이지로 연결되게 된다. 이는 요청을 발송했던 DNS와 응답을 주는 DNS 사이의 트래픽을 해커가 스니퍼링함으로써 Query ID라는 값을 통해 해커의 사이트 IP를 최종 응답으로 넘겨주도록 하는 것이다.

사용자가 쇼핑몰을 이용하고자 하였다면 해커에 의해 조작된 홈페이지 내에서 자신의 아이디와 필드, 신용 카드 정보를 기입함으로써 개인 정보를 탈취당할 수 있다. 위와 같은 스프핑 공격들은 실제로 인터넷 상의 툴로써 공개가 되어 있으며 여러가지 다른 복합적인 공격과 같이 사용될 수 있다.

그러나 각각의 공격 방법에 있어서 제약 및 전제 사항이 있으므로 모두 완벽하게 성공되지는 않는다. 스프핑 공격은 패킷 필터링 접근 제어와 IP 인증 기반 접근제어, 취약점 서비스 사용의 제거, 암호화 프로토콜의 사용을 통해서 방어가 가능하다. 인터넷 상에 떠돌아다니는 정보는 항상 안전한 것이 아니므로 스프핑 공격과 같은 것을 통해 언제라도 위조되었을 가능성도 있을 수 있음을 간과해서는 안되겠다.


내용출처 : [기타] (주)코코넛 시큐레터 9월호
(출처 : '[해킹기법과 대응] ④ 스프핑 공격(spoofing attack)' - 네이버 지식iN)
Posted by theYoungman