공격자가 클라우드 환경에서 ip 주소 재사용을 악용하는 보안 취약점으로 클라우드 스쿼팅이라고도 불린다.
공격자는 클라우드가 유동적으로 할당하는 ip를 의도적으로 계속 점유하여 클라우드가 ip를 소진하도록 만든다.
이번 글에서는 클라우드의 ip말고 내부로컬 ip가 대상이다.
학교에서는 10.120.74.*을 선생님용, 10.120.73.*을 학생용 내부 ip로 사용한다.
학교 인터넷에서는 DHCP를 사용해 ip를 자동으로 할당하지 않는다.
아마 설치 업체에서 수동할당으로 계속 출장비를 받으려고 한듯
따라서 인터넷에 접속할 컴퓨터에서 사용하고 싶은 내부 ip를 위 대역의 ip중에서 골라서 연결해야한다.
내가 학교 네트워크 시스템을 악용하기 위해 할 수 있는 행동들을 알아보자.
학교 컴퓨터가 꺼져있는 밤에, 내가 가상 컴퓨터 256개로 모든 ip를 점유하고 아침까지 계속 먹어둔다면 선생님이 컴퓨터를 켰을때 ip 충돌 오류가 발생할 것이다.
ip 충돌이 발생한다고 해서 인터넷이 완전히 마비 되는것은 아니다. DHCP를 사용하지 않기 때문에 ip가 중복되었는지 검사하는 요소가 없다. 라우터가 ARP를 수행할때 인터넷 사용가능, 불가능의 여부가 갈린다.
Address Resolution Protocol의 약자로 IP 주소를 MAC 주소로 변환하는 프로토콜이다.
아래와 같은 과정으로 작동한다.
1. 보내는 쪽 장비가 ARP Request 브로드캐스트 전송
ex) "192.168.0.10인 컴퓨터는 MAC 주소를 반환해주세요"
2. 해당 IP를 가진 장비가 ARP Reply로 자신의 MAC 주소를 반환함.
3. 결과를 ARP 캐시에 저장해서 다음부터는 바로 사용한다.
위 경우에는 선생님 컴퓨터와 ip를 점유중이던 내 컴퓨터가 ARP 과정에서 경쟁하게 된다. 누가 먼저 응답하는지에 따라 네트워크 연결여부가 갈린다.
선생님 컴퓨터가 ARP 캐시에 저장되어 캐시가 만료될 동안 선생님 컴퓨터는 평소처럼 인터넷을 사용할 수 있다.
> 정말 아쉽게도 선생님은 수업을 정상적으로 하실 수 있다.
내 컴퓨터가 ARP 캐시에 저장되어 캐시가 만료될 동안 선생님 컴퓨터는 인터넷을 사용할 수 없다.
장비에서는 내 컴퓨터의 Mac 주소가 해당하는 ip에 매핑되어 해당 ip로 오는 모든 트래픽이 내 컴퓨터를 향한다. 하지만 선생님 컴퓨터도 요청을 보낼 순 있다.(응답을 받지 못할 뿐..)
> 이제 싫어하는 과목을 막을 수 있다!
하지만 위 방식은 너무 위험하다.
학교 인터넷이 모두 마비되는 수준이기에 공론화와 조사는 물론이고 징계의 위험이 크다.
물론 우리학교가 이런걸 잡을정도로 똑똑할지는 모르겠다.
따라서 내가 방해하고 싶은 컴퓨터의 ip만을 점유하는것이 현명하다.
이렇게 한다면 다른 컴퓨터는 모두 잘 작동하지만 내가 방해한 ip만 arp가 업데이트 될때 인터넷이 끊길 수 있는 것이다.
원래 ip를 점유하여 발생하는 문제라서 ip squatting을 주제로 적기 시작했지만, 완성하고 보니 ARP spoofing에 가까웠다. 위에서 설명했듯 가상컴퓨터 256개를 쓰기보다 그냥 256개의 ip에 응답하는 ARP spoofing 코드를 사용하는걸 추천한다.