IP Spooping
Spoofing : '속이다', '사기치다'라는 뜻으로 protocol의 내용을 바꿔 공격하는 hacking 기법이다.
IP Spoofing : source IP를 바꿔 ACL, filtering 을 우회하는 방법이다.
대부분의 공격이 hacking을 시도하고 다시 hacker에게 돌아올 필요가 없는 dos 공격이 주로 된다.
요즘 OS 환경에서는 원격 IP spoofing이 불가능하다.
만약 다른 network, ACL, filtering을 피해 접근하려면 IP Spoofing을 해야 할 것이다. 그런데 여기서 Spoofing을 시도한 IP가 공격 대상에게 반응해버린다면
곤란해 질 것이다.
한가지 방법은 IP Spoofing을 사용할 해당 IP PC를 dos공격으로 뻗게 만들거나, ARP poisoning 기법을 사용한다.
Bind attack
위의 그림에서 hacker는 1.1.1.2로 server에게 접근을 할 예정이다.
hacker가 src.IP를 1.1.1.2로 하여 SYN을 보내 session 맺을 준비를 할텐데 여기서 실제 1.1.1.2에서는
이 사실을 몰라 server의 응답 SYN/ACK에 RST를 보내버리면 더이상 진행이 되지 않을 것이다.
그러므로 사전에 hacker는 실제 1.1.1.2 PC를 DOS 공격과 같은 것으로 무력하게 만든 후 SYN을 보낸 후 server에 SYN/ACK에 응답은 ACK를 보낸다.
현재 공격 성공 가능성은 희박하다.
local 내에서 IP Spoofing
hacker가 공격대상과 같은 network에 위치해 있지만 공격대상이 trust relationship으로 통신을 하고 있다고 가정해 보자.
(relationship의 IP을 알려면 모든 network의 packet을 볼 수 있는 ARP redirect을 사용하여 해당 service의 packet을 보이는 IP를 찾으면 된다.)
이때 hacker는 poisoning 기법을 사용해 공격대상과 relationship 통신을 sniffing한다. 그 후 IP spoofing 기법을 사용해 relationship PC IP로 session을
맺어 버리면 relationship에게 갈 packet이 hacker에게 오니 session 성립이 가능하다.
(hacker가 forwarding 기법을 사용한다면 relationship PC에게 packet이 전달되 RST를 보내게 된다. 그러므로 사용할 이유가 없다.)
예를 들어 SSH service을 획득하였더라도 relationship 가진 IP을 위한 service이므로 SSH의 Layer까지 de-encapsulation을 할 수 있는 프로그램이 별도로 필요하다.
relationship? sniffing을 통해 ID password 유출을 막기 위해 특정 client의 IP만과 신뢰관계를 맺고 접속을 허용하게 하는 것
시나리오
SSH의 service을 제공하는데 모든 IP는 제외하고 10.10.10.1만 접속 가능하게 한다고 가정시에 10.10.10.3에서 접근 해보자.
기본 설정
linux에서 /etc/hosts.deny /etc/hosts.permit 에서 각각 설정을 해준다.
/etc/hosts.deny
ALL:ALL ////모든 service IP를 거부하겠다.
/etc/hosts.permit
ALL:10.10.10.1 //모든 service를 10.10.10.1에게 허용하겠다.
'network 보안' 카테고리의 다른 글
IEEE 802.1X 인증(= dot1x 인증) (0) | 2016.09.01 |
---|---|
AAA 인증 (0) | 2016.09.01 |
DNS 공격 및 방어 (0) | 2016.09.01 |
DHCP 관련 Attack 및 방어 (0) | 2016.08.31 |
arp spoofing (0) | 2016.08.07 |