▶논문 선정 이유
1학기 종강세미나 주제를 ARP 스푸핑으로 잡아 관련 공부와 실습을 해보았다. 그래서 이번 논문 분석 과제는 ARP 스푸핑에 대한 논문을 선정하여 추가로 공부하는 것이 좋을 것 같다고 생각해서 이 논문을 선정하였다.
▶ARP의 기능 및 ARP 스푸핑
ARP: 네트워크 계층 주소(IP 주소)를 데이터 링크 계층 주소(MAC 주소)로 대응시키기 위해 사용되는 프로토콜
ARP 스푸핑: ARP 기반의 메시지 송수신 과정에 대한 무결성 검증이 보증되지 않은 점을 이용하여 조작된 ARP 응답 패킷을 타깃 시스템으로 전송한 다음 MAC 주소를 속여 정상적인 서비스를 방해하는 공격방식
※ 무결성: 데이터의 정확성, 일관성, 유효성이 유지되는 것
위의 사진은 정상적인 통신 과정이다. 각 호스트의 ARP 캐시 테이블(arp -a로 확인 가능)에는 통신하는 상대방 호스트의 IP 주소와 MAC 주소가 저장되어 있다.
위의 사진은 공격자가 ARP 스푸핑 공격 후 통신 과정을 나타내는 사진이다. 공격자의 ARP 스푸핑 공격으로 인해 호스트 A와 호스트 B가 서로의 MAC 주소를 공격자의 MAC 주소인 "CC-CC-CC"로 오인하고 있으며 이 경우 통신하는 모든 트래픽은 공격자에게 전달된다.
ARP 스푸핑 특징
ARP 스푸핑 공격 기법은 더미 허브 환경뿐만 아니라 스위치 환경에서도 스니핑 공격을 가능하게 한다.
1. 더미 허브 환경
들어온 신호를 연결된 모든 포트의 노드에게 전달하는 중계 장치이다.
- 장비 내부에 MAC 주소를 기록하는 메모리가 존재하지 않기 때문에 특정 목적지로 데이터 전송할 수 있는 기능X -> 특정 노드로의 데이터 전송이 필요할 때 허브에 연결된 모든 포트로 브로드캐스트 기반의 데이터 전송을 한다.
- 모든 포트에 연결된 시스템으로 패킷 전송이 이루어지기 때문에 스니핑 공격에 대한 취약점을 가지고 있음 -> 공격자가 자신의 시스템에 있는 네트워크 카드를 프로미스큐어스 모드(Promiscuous mode)로 전환할 경우 연결된 모든 시스템의 패킷 열람이 가능!
※프로미스큐어스 모드: 네트워크 카드의 동작방식 모드 중 하나로 패킷의 목적지에 관계없이 패킷을 무조건 수용하는 모드
2. 스위치 환경
- MAC 주소를 기록하는 메모리 존재 -> 스위치의 메모리에 존재하는 포트들의 MAC 정보를 기반으로 특정 포트 시스템으로 패킷을 포워딩 기반으로 전달할 수 있다.
- 프로미스큐어스 모드로 전환하더라도 전반적인 패킷들을 열람할 수 없다.
- 그러므로 공격자는 패킷에 대한 포워딩을 할 수 없도록 먼저 스위치의 메모리를 오버플로우 시킴(MAC 오버플로우 공격) -> 더미 허브 환경처럼 만듦 -> 프로미스큐어스 모드로 전환 후 패킷 열람 가능
위의 스위치 환경에서 ARP 스푸핑 공격은 가능하다.
-> 특정 시스템에 대한 스니핑을 하기 위해 공격자의 MAC 주소를 스니핑 시도하는 시스템으로 전달한 다음 중간에서 열람하는 기법
발생 사례
1. 국내 사례는 발생이 미미하지만 중국의 경우 공공시설에서 발생하는 공격 기법 중 대부분이 ARP 기반의 공격으로 보도되고 있다!
2. 자동화와 고도화된 기법으로 제작되어 무작위로 배포되고 있다.
우리나라의 경우 ARP 기반의 공격에 대해 경각심이 적기 때문에 향후 이러한 ARP 공격은 국내 보안 분야에 공격 빈도를 증가시킬 수 있고 큰 피해로 나타날 수 있다.
▶스니핑
스니퍼를 사용하여 네트워크 상에서 송신자와 수신자가 주고받는 중간에서 패킷을 도청하는 것을 의미한다.※스니퍼(Sniffer): 스니핑을 하는 프로그램. 이러한 스니퍼를 이용하여 패킷들을 수집하고 순서대로 재조합 과정을 진행한다.
스니핑 공격을 하기 위한 이전 단계의 공격으로 스푸핑 공격들이 사용되는 것이다!
1. 스위치 재밍 공격
스위치의 주소 테이블이 가득 차게 되면(MAC 오버플로우 공격) 더미 허브처럼 모든 네트워크의 세그먼트로 트래픽을 브로드캐스트하는 특징을 악용한 공격 기법이다.
2. ARP Redirect 공격
위조된 ARP Reply 패킷을 네트워크에 지속해서 브로드캐스트하여 네트워크에 다른 호스트들이 공격자를 라우터로 인지하게 만든다.
-> 위의 2가지 공격 등 다양한 스니핑 공격을 성공하게 되면 타깃의 개인정보가 아래와 같이 공격자에게 노출되는 문제가 발생한다.
▶ARP 스푸핑 공격 패턴
준비 도구: 자동화된 툴
- Arpspoof
- Ettercap
-> 해킹 툴로써 가장 많이 사용되는 2가지이다.
1. ARP 포이즈닝 기반 공격 패턴
자동화 툴 기반의 규칙적인 공격 패턴은 일정한 시간 주기를 가지고 반복적으로 위조된 ARP 응답 패킷을 전송하는 패턴을 띄고 있다.
-> 하지만 일정한 시간 주기로 반복적으로 전송되는 ARP 응답 패킷을 분석하고 탐지하게 되면 ARP 스푸핑 공격을 방어할 수 있게 된다.
2. ARP 포이즈닝 탐지 시스템 우회 공격 패턴
규칙적인 시간 주기를 가지는 공격을 우회하여 위조된 ARP 응답 패킷 발생 시간 주기에 난수를 사용하여 랜덤한 시간으로 불규칙한 ARP 응답 패킷을 전송하여 기존 탐지 시스템 우회하는 공격 패턴이 된다.
3. ARP 캐시 테이블에 대한 제로데이 공격 패턴
ARP 캐시 테이블에 존재하는 기능
- ARPCacheLife: 참조되지 않는 항목이 ARP 캐시 테이블에 남아 있을 수 있는 시간을 결정 -> 시간이 지나면 ARP 캐시 테이블에서 항목을 삭제
- APRCacheMinReferencedLife
▶기존 기법의 문제점 및 개선 방안
기존 기법 1. 프로토콜 [7,8,12] 기법
ARP 응답에 대해 아무런 인증없이 ARP 테이블을 갱신하는 취약점을 해결하기 위해 제안되었다.
-> 인증 과정을 추가하여 ARP의 근본적인 취약점인 ARP 과정에서 아무런 인증 과정이 없는 취약점을 개선하여 문제를 해결하였으나 현 프로토콜 체계에 대한 전면적인 변경 필요!
2. 신뢰할 수 있는 MAC 주소 정보를 ARP 테이블에 갱신
3. 정적 테이블
신뢰할 수 있는 ARP 테이블을 유지하기 위해 MAC 관리 서버를 두고 ARP 스푸핑 공격을 방어하기 위해 클라이언트에서 정적으로 ARP 테이블을 관리
-> 이러한 기존의 제안 기법들은 ARP 캐시 테이블의 변조를 방지하기 위해 자동화 툴에서 발생하는 일정한 시간 간격을 가지고 반복 수신되는 ARP 응답 패킷에 대해서는 취약하지 않지만
앞에서 언급한 다양한 ARP 공격기법에서 발생하는 비정상적인 ARP 패킷에는 취약한 부분들이 존재한다.
따라서 비정상적인 ARP 패킷에서 나타나는 시그니처 정보 기반으로 ARP 공격을 탐지 및 차단해야한다.
※비정상적인 ARP 패킷
- ARP의 구조: 이더넷 프레임 헤더 + ARP 헤더
- 공격자가 정상적인 ARP 패킷의 정보를 위조하게 되면 비정상적인 ARP 과정을 수행하는 패킷 확인 가능 -> ARP 공격으로 판단할 수 있는 고유의 시그니처 정보를 가지고 있다!
▶시그니처 정보
1. 유니캐스트 시그니처 정보
정상적인 ARP 과정:
① 호스트 A가 호스트 B에 패킷을 전송하려고 할 때 호스트 B의 MAC 주소 정보를 가지고 있지 않으면 ARP를 사용한다.
② 이때 이 ARP는 호스트 B의 IP 주소와 FF-FF-FF-FF-FF-FF의 브로드캐스트 MAC 주소를 가진다.
③ ARP 패킷을 수신한 호스트 B는 자신의 MAC 주소를 호스트 A에 유니캐스트 방식으로 전송
ARP 공격 과정에서 나타나는 시그니처 정보: ARP 요청 패킷의 전송 방식이 브로드캐스트 방식이 아닌 유니캐스트 방식!
즉, FF-FF-FF-FF-FF-FF가 아닌 특정 호스트의 MAC 주소가 입력되어 유니캐스트 방식으로 ARP 공격을 할 수 있다.
※유니캐스트: 네트워크에서 가장 많이 사용되며 서버와 클라이언트 간의 일대일 통신 방식이다.
통신하기 위해서는 전송되는 프레임안에 항상 송신지와 수신지 MAC 주소가 있어야 한다.
2. 브로드캐스트 시그니처 정보
① 호스트 B는 호스트 A에게 ARP 응답 패킷을 전송
② 공격자는 정상적인 ARP 응답 패킷의 목적지 주솟값을 호스트 A의 MAC 주소가 아닌 FF-FF-FF-FF-FF-FF로 위조하여 브로드캐스트 방식으로 ARP 응답 패킷을 전송
따라서 정상적인 응답은 유니캐스트로 전송되지만 브로드캐스트 방식으로 응답패킷이 전송되면 비정상적인 ARP 패킷으로 판별하며 시그니처 정보가 된다!
3. 상이한 시그니처 정보
① 호스트 A가 호스트 B와 통신 하기 위해 ARP 요청 패킷을 전송
② A와 B의 통신 과정에서 공격자가 ARP 요청 패킷을 탈취한 후 패킷의 정보를 위조해 호스트 B에 재전송하여 ARP 공격
이때, 이더넷 헤더의 출발지 주소와 ARP 헤더의 출발지 주솟값이 일치하지 않는 경우가 시그니처 정보가 된다!
4. 일정 시간 동안 반복 수신되는 시그니처 정보
① 자동화된 공격 툴은 일정한 시간 간격을 두고 ARP 응답 패킷을 타깃 PC에 재전송하는 시그니처 정보를 가짐
- Ettercap: 약 10초
- Arpspoof: 약 2초
ARP 응답 패킷만 반복적으로 발생하게 되면 비정상 ARP 응답 패킷으로 판별할 수 있게 되며 ARP 공격의 시그니처 정보가 된다!
-> 하지만 공격자가 위조된 ARP 응답 패킷이 아닌 ARP 요청 패킷을 반복적으로 발생시키게 되면
독립적으로 발생한 ARP 응답 패킷과 다르게 ARP 요청에 맞는 ARP 응답 패킷이 발생하고, 독립적으로 발생하는 패킷을 탐지하는 시그니처 정보를 우회할 수 있게 된다.
▶시그니처 기반 탐지 알고리즘
ARP 요청 패킷이 발생하면 아래와 같은 과정을 수행한다.
1. ARP 요청 패킷이 발생한다.
2. Dst_MAC의 값이 FF-FF-FF-FF-FF-FF와 일치하면, "3" 과정을 수행하며 불일치하면 "10" 과정을 수행한다.
3. Src_MAC 과 Sndr_MAC의 값이 일치한다면 "4" 과정을 수행하고, 불일치하면 "10" 과정을 수행한다.
4. ARP 요청 패킷이 재수신 되었다면 "5" 과정을 수행하고, 재수신 되지 않았다면 "6" 과정을 수행한다.
5. 재수신된 패킷의 Sndr_MAC이 전에 수신된 패킷의 Sndr_MAC과 일치하면 "8", 일치안하면 "9" 과정을 수행한다.
6. ARP 응답 패킷을 수신했다면 "7" 과정을 수행하고, 수신하지 않았다면 "9" 과정을 수행한다.
7. Dst_MAC의 값이 FF-FF-FF-FF-FF-FF와 일치하면 "10" 과정을 수행하고, 일치하지 않다면 "8" 과정을 수행한다.
8. 일정 시간 안에 ARP 패킷이 반복 수신되지 않는다면 "9" 과정을 수행하고, 반복 수신된다면 "10" 과정을 수행한다.
9. 정상적인 ARP 패킷으로 간주한다.
10. 비정상인 ARP 패킷으로 간주한다.
11. 비정상인 패킷을 송신한 MAC 주소의 포트를 차단한다.
▶실험
실험 환경
공격자: 리눅스
타깃: 윈도우
서버: 센트 7
위의 사진은 ARP 스푸핑 공격 전의 타깃 PC의 ARP 캐시 테이블이다.
게이트웨이 IP주소 : 203.255.3.1
서버 IP주소 : 203.255.3.24
공격자 IP 주소 : 203.255.3.91
ARP 공격
타깃 PC의 ARP 캐시 테이블 변조 대상: 게이트웨이, 서버
게이트웨이의 MAC 주소 00-00-0C-9F-F0-03이 공격자 PC의 MAC 주소 10-05-01-4D-86-01로 변경된 타깃 PC의 ARP 캐시 테이블 정보를 볼 수 있다.
공격 대상이 게이트웨이가 아닌 서버를 대상으로 공격을 진행한 결과이다.
서버의 MAC 주소 00-0C-29-41-FD-BA가 공격자 PC의 MAC 주소 10-05-01-4D-86-01로 변경된 ARP 테이블을 확인할 수 있다.
게이트웨이와 서버를 동시에 ARP 스푸핑 공격을 진행한 결과이다.
게이트웨이의 MAC 주소 00-00-0C-9F-F0-03이 공격자 PC의 MAC 주소 10-05-01-4D-86-01로 서버의 MAC 주소 00-0C-29-41-FD-BA가 공격자 PC의 MAC 주소 10-05-01-4F-86-01로 변경된 ARP 캐시 테이블을 확인할 수 있다.
ARP 스푸핑 공격 패킷 탐지
패킷 분석 테이블을 기반으로 ARP 공격을 탐지하기 위해 ARP 요청과 응답 패킷을 수집하는 과정이다.
1.
ARP 요청 패킷이 유니캐스트 방식으로 전송된 패킷이다. 해당 패킷은 ARP 요청 패킷이 유니캐스트인 시그니처 정보에 해당하며, 비정상적인 ARP 패킷으로 간주한다.
2.
ARP 응답 패킷을 브로드캐스트 방식으로 전송된 패킷이다. 해당 패킷은 ARP 응답 패킷이 브로드캐스트인 시그니처 정보에 해당하며, 비정상적인 ARP 패킷으로 간주한다.
3.
위의 사진은 IP : 203.255.3.1, MAC : 00:00:0C:9F:F0:03에서 IP : 203.255.3.90, MAC : 00:00:00:00:00:00으로 전송되는 정상적인 ARP 패킷이다. 이더넷 프레임 헤더의 출발지 주솟값과 ARP 헤더의 출발지 주솟값을 확인하게 되면00:00:0C:9F:F0:03으로 동일한 값인 것을 확인할 수 있다.
이더넷 프레임 헤더의 출발지 주솟값과 ARP 헤더의 출발지 주솟값을 확인하게 되면 Source MAC : 00:00:0C:9F:F0:03, Sender MAC Address 값이 10:05:01:4D:86:01로 ARP 헤더의 출발지 주솟값이 공격자의 MAC 주소로 서로 상이한 값을 가지는 ARP 요청 패킷으로 볼 수 있다.
-> 해당 패킷은 이더넷 헤더와 ARP 헤더의 MAC 주솟값이 상이한 시그니처 정보에 해당하며, 비정상적인 ARP 패킷으로 간주한다.
4.
약 10초 간격으로 위조된 ARP 응답 패킷이 타깃 PC로 전송되고 있다.
이번엔 약 2초 간격으로 위조된 ARP 응답 패킷이 타깃 PC로 전송되고 있다. 이 2가지 경우는 자동화 ARP 스푸핑 툴을 사용한 형태로 2초, 10초와 같은 일정한 시간 간격을 가지고 타깃 PC에 재전송되는 시그니처 정보를 보인다.
위의 사진은 랜덤한 시간 간격을 가지고 ARP 패킷을 타깃 PC에 전송하여 ARP 포이즈닝 탐지 시스템을 우회할 수 있는 패턴이다.
-> 하지만 공격자는 원활한 스니핑 공격을 실행하는 특정 시간 동안 타깃 PC에 반복적으로 ARP 패킷을 전송한다.
만약 반복적으로 ARP 패킷을 전송하지 않게 되면 정상적인 ARP 패킷으로 인해 원활한 스니핑 공격이 이루어지지 않는다.
-> 이러한 공격 특성을 활용하여 일정 시간 안에 반복 수신되는 ARP 패킷은 비정상 패킷으로 판단할 수 있는 시그니처 정보가 된다.
ARP 스푸핑 공격 차단
ARP 스푸핑 공격을 탐지하기 전 정상적인 스위치 테이블이다.
ARP 공격 시그니처 정보에 기반하여 탐지하는 과정에서 공격자로 판단되는 PC의 MAC 주소는 10:05:01:4D:86:01이며, 해당 MAC 주소에 대응하는 스위치 포트를 차단한다. 공격자를 차단한 후 스위치의 모습은 위의 사진과 같다.
▶배운점 및 느낀점
이번 논문 ARP 스푸핑과 관련된 주제였는데 이미 종강 세미나를 준비하면서 공부한 내용이라 어느정도는 알고 있었다. 하지만 이 논문을 읽으면서 더 디테일한 부분을 알게 되었고 기존의 ARP 스푸핑 대응 기법이 여러 문제점이 있다는 것을 알게 되었다. 이 부분을 되게 흥미롭게 읽어서 다음에 이와 관련된 실습을 하고 싶다!
'2024 SWLUG > 논문 분석' 카테고리의 다른 글
6. 오버리프의 보안취약점 및 개인 리소스 노출위험 분석 (0) | 2024.10.30 |
---|---|
5. 크로스 사이트 스크립팅(XSS) 취약점에 대한 공격과 방어 (0) | 2024.09.20 |
3. 스마트 컨트랙트 보안 취약점 분석 및 보안 자동화 모델 (0) | 2024.05.22 |
2. 관리자에게 경고 알림을 보낸 후 트래픽 측정을 기준으로 RDDos 공격을 방어하는 시스템 설계 (0) | 2024.05.22 |
1. 메타버스 플랫폼 Roblox 포렌식을 통한 아티팩트 분석 (0) | 2024.05.22 |