참고자료
https://jung-story.tistory.com/39 Dos 공격
https://jung-story.tistory.com/40 스니핑 공격
https://jung-story.tistory.com/38?category=826625 네트워크에 대한 이해
ARP 스푸핑 공격
ARP(Address Resolution Protocol) 스푸핑은 MAC 주소를 속이는 것이며, 즉, MAC 주소를 속여 랜에서의 통신 흐름
을 왜곡시킴니다.
공격자가 서버와 클라이언트의 통신을 스나이핑 하기 위해 ARP 스푸핑 공격을 하는 그림
공격자는 서버의 클라이언트에게 10.0.0.2에 해당하는 가짜 MAC 주소 CC를 알리고, 서버에게는 10.0.0.3에
해당하는 가짜 MAC 주소 CC를 알립니다.
공격자가 서버와 클라이언트 컴퓨터에 서로 통신하는 상대방을 공격자 자기 자신으로 알렸기 때문에 서버와
클라이언트는 공격자에게 각각 패킷을 보냅니다.
공격자는 각자에게 받은 패킷을 읽은 후 서버가 클라이언트에 보내고자 하던 패킷을 클라이언트에게 정상적
으로 보내주고, 클라이언트가 서버에게 보내고자 하던 패킷을 서버에게 보내줍니다.
ARP 스푸핑 공격 후 패킷 결과
윈도에서는 arp -a 명령을 이용해 현재 인지하고 있는 IP와 해당 IP를 가지고 있는 시스템의 MAC 주소 목록
을 다음과 같이 확인할 수 있음. 이것을 ‘ARP 테이블’이라고 합니다.
ARP 테이블이 변경되지 않도록 arp -s [IP 주소][MAC 주소] 명령으로 MAC 주소 값을 고정시키는 것
s(static)는 고정시킨다는 의미입니다. 이 명령으로 Type 부분이 Dynamic에서 Static으로 바뀌게 됩니다.
하지만 이 대응책은 시스템이 재부팅될 때마다 수행해주어야 하는 번거로움이 있습니다.
어떤 보안 툴은 클라이언트의 ARP 테이블의 내용이 바뀌면 경고 메시지를 보내기도 하지만 사실 ARP 스푸핑은
TCP/IP 프로토콜 자체의 문제로 근본적인 대책은 없습니다.
IP 스푸핑 공격
IP 스푸핑은 쉽게 말해 IP 주소를 속이는 것입니다.
트러스트 : 파티에 초대한 사람 중 친분이 있는 사람은 초대장을 확인하지 않고 그냥 들여보내 주는 것과 같은
개념입니다.
유닉스 계열에서는 트러스트 인증법을 주로 사용합니다.
윈도에서는 트러스트 대신 액티브 디렉터리 (Active Directory)를 주로 사용합니다.
트러스트 설정을 해주려면 유닉스에서는 /etc/host.equiv 파일에 다음과 같이 클라이언트의 IP와 접속 가능한
아이디를 등록해 주어야 합니다.
1은 200.200.200.200에서 root 계정이 로그인을 시도하면 패스워드 없이 로그인을 허락하라는 의미입니다.
2는 201.201.201.201에서는 어떤 계정이든 로그인을 허락하라는 것으로 +는 모든 계정을 의미입니다.
만일 ++라고 적힌 행이 있으면 IP와 아이디에 관계없이 모두 로그인을 허용하라는 의미입니다.
트러스트를 이용한 접속은 네트워크에 패스워드를 뿌리지 않기 때문에 스니핑 공격에 안전한 것처럼 보입니다.
하지만 인증이 IP를 통해서만 일어나기 때문에 공격자가 해당 IP를 사용해서 접속하면 스니핑을 통해서 패스워드를 알아낼 필요성 자체가 없어지는 문제점이 있습니다.
실제로 공격은 트러스트로 접속하고 있는 클라이언트에 DoS 공격을 수행해 클라이언트가 사용하는 IP가 네트
워크에 출현하지 못하도록 한 뒤, 공격자 자신이 해당 IP로 설정을 변경한 후 서버에 접속하는 형태로 이루어집니다.
공격자는 패스워드 없이 서버에 로그인할 수 있습니다.
ICMP 리다이렉트 공격
ICMP 리 다이렉트는 3계층에서 스니핑 시스템을 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷의
흐름을 바꾸는 공격
- 호스트 A에 라우터 A가 기본으로 설정되어 있기 때문에, 호스트 A가 원격의 호스트 B로 데이터를 보낼 때 패킷을 라우터 A로 보냅니다.
- 라우터 A는 호스트 B로 보내는 패킷을 수신하는데, 그리고 라우팅 테이블을 검색하여 호스트 A에게 자신을 이용하는 것보다 라우터 B를 이용하는 것이 더 효율적이라고 판단하여 해당 패킷을 라우터 B로 보냅니다.
- 라우터 A는 호스트 B로 향하는 패킷을 호스트 A가 자신에게 다시 전달하지 않도록, 호스트 A에 ICMP 리다이렉트 패킷을 보내서 호스트 A가 호스트 B로 보내는 패킷이 라우터 B로 바로 향하도록 합니다.
- 호스트 A는 라우팅 테이블에 호스트 B에 대한 값을 추가하고, 호스트 B로 보내는 패킷은 라우터 B로 전달합니다.
공격자가 라우터 B가 되어 ICMP 리다이렉트 패킷도 공격 대상에게 보낸 후 라우터 A에게 다시 릴레이 시켜 주시켜주면 모든 패킷을 스니핑할 수 있습니다.
DNS 스푸핑 공격
실제 DNS 서버보다 빨리 공격 대상에게 DNS Response 패킷을 보내, 공격 대상이 잘못된 IP 주소로 웹 접속을
하도록 유도하는 공격입니다.
클라이언트가 DNS 서버에게 접속하고자 하는 IP 주소(www.wishfree.com과 같은 도메인 이름)를 물어봅니다.
이때 보내는 패킷은 DNS Query입니다.
DNS 서버가 해당 도메인 이름에 대한 IP 주소를 클라이언트에게 보내줍니다.
클라이언트가 받은 IP 주소를 바탕으로 웹 서버를 찾아갑니다.
- 클라이언트가 DNS 서버로 DNS Query 패킷을 보내는 것을 확인합니다.
- 스위칭 환경일 경우에는 클라이언트 DNS Query 패킷을 보내면 이를 받아야 하므로 ARP 스푸핑과 같은 선행 작업이 필요합니다.
- 만약 허브를 쓰고 있다면 모든 패킷이 자신에게도 전달되므로 클라이언트가 DNS Query 패킷을 보내는 것을 자연스럽게 확인할 수 있습니다.
(DNS Query)
- 공격자는 로컬에 존재하므로 DNS 서버보다 지리적으로 가까웁니다.
- DNS 서버가 올바른 DNS Response 패킷을 보내주기 전에 클라이언트에게 위조된 DNS Response 패킷을 보낼 수 있습니다.
(공격자와 DNS 서버의 DNS Response)
- 클라이언트는 공격자가 보낸 DNS Response 패킷을 올바른 패킷으로 인식하고, 웹에 접속합니다.
- 지리적으로 멀리 떨어져 있는 DNS 서버가 보낸 DNS Response 패킷은 버립니다.
(공격 성공 후 도착한 DNS 서버의 DNS Response)
이렇게 스푸핑 공격에 대해서 알아보았습니다.
'서버 > 데이터통신&네트워크' 카테고리의 다른 글
데이터통신&네트워크 (무선 네트워크 공격과 보안) (0) | 2019.12.04 |
---|---|
데이터통신&네트워크 (세션 하이재킹 공격) (0) | 2019.12.04 |
데이터통신&네트워크 (스니핑 공격) (0) | 2019.12.04 |
데이터통신 & 네트워크 ( 서비스 거부(DOS) 공격) (0) | 2019.12.04 |
데이터통신 & 네트워크 (네트워크에 대한 이해) (0) | 2019.12.04 |