보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

Wireshark를 이용한 네트워크 계층별 공격 확인 방법

2018.11.07

21,278


 

 

 

1. 개요

 

최근 페이스북이 네트워크 해킹 공격을 받아 약 5천만 명의 개인정보가 노출될 위험에 처한 것으로 알려졌으며, 2017년 전 세계를 혼돈의 카오스로 빠뜨린 워너크라이 랜섬웨어 또한 네트워크를 통해 빠르게 전파되고 있는 것처럼 네트워크 공격은 인터넷이 발달하기 시작할 때부터 현재까지, 공격자들에게 활발히 이용되고 있다. 

 

네트워크 공격은 주로 정보보안 3대 요소(기밀성, 무결성, 가용성)를 훼손하는 공격으로 크게 Sniffing(훔쳐보기), Spoofing(사기치기), DoS(방해하기)로 나뉜다. 

 


1) Sniffing (훔쳐보기)

 

정보는 인가된 대상에게만 제공되어야 한다는 “기밀성”을 훼손하는 것으로 공격 대상의 모든 네트워크 패킷을 훔쳐보며 정보를 수집하는 공격 유형이다. 

 

 

2) Spoofing (사기치기)

 

정보는 변경되거나 삭제되지 않고 정확하고 안전하게 전달되어야 한다는 “무결성”을 훼손하는 것으로 수신자의 정보를 변조하여 제 3자에게 패킷을 전달하거나 패킷에 악의적인 코드를 삽입하는 공격 유형이다.

 

 

3) Denial of Service (Dos, 방해하기)

 

정보는 인가된 사용자에게 언제나 제공되어야 한다는 “가용성”을 훼손하는 것으로 공격 대상의 자원을 과도하게 소모시켜 정상적인 서비스를 수행하지 못하도록 마비시키는 공격 유형이다.

 

위 3개의 유형은 서로 밀접하게 연관되어 있으며 공격의 목적과 방식에 따라 상호 작용하기도 한다. 예를 들면 공격 대상의 정보 획득(기밀성 훼손)하기 위하여 수신자 정보를 공격자의 정보로 변조(무결성 훼손)하는 등의 공격이 있다. 

 

 

4) 네트워크 개념

 

먼저 네트워크란 무엇인가에 대해 알아보자. 네트워크란 여러 매체들이 연결되어 통신하는 것을 총칭한다. 초기 네트워크 환경에서는 *매체 제조회사마다 독자적인 통신 절차를 가지고 있어 같은 회사 제품끼리만 통신이 가능하였다. 그러나 기술이 발전함에 따라 매체의 종류는 기하급수적으로 증가하였고, 이기종 간의 네트워크 통신의 필요성이 대두되자 국제 표준화 기구(OSI)에서 모든 시스템의 상호 연결을 위한 기초 참조 모델을 만들었다. 이것을 우리는 "OSI 7 Layer"라고 부른다. 

 

 

계층

특징

주소

프로토콜

장비

Application

(7계층)

사용자의 명령을 받으며 일반적으로 응용 서비스를 제공

 

HTTP

FTP

DNS

L7 Switch

IDS

IPS

WAF

Presentation

(6계층)

데이터 형식, 인코딩, 압축, 암호화 등에 대한 정보 제공

 

JPEG

MPEG

SMB

Session

(5계층)

상호 연결(세션)이 필요한 통신에서 연결(세션)상태 제어

 

TLS

SSH

NetBIOS

Transport

(4계층)

목적지에 정보 전송방식 결정 및 전송 에러 관리

port

TCP

UDP

L4 Switch

Firewall

Network

(3계층)

IP 주소를 이용하여 네트워크 상의 전송 경로 결정

IP

ICMP

IP

ARP

L3 Switch

Router

Data Link

(2계층)

MAC 주소를 이용하여 인접 장비에 정보 전송

MAC

Ethernet

PPP

L2 Switch

Physical

(1계층)

비트 형태의 신호를 전기적 신호로 변경하여 정보 전송

 

 

Hub

Repeater

 

[표 1] OSI 네트워크 참조 모델

 

 

OSI 7 Layer는 7계층으로 이루어져있지만 크게 하위계층(하드웨어 계층)과 상위계층(소프트웨어 계층)으로 구분되기도 한다. 하위계층은 데이터 전달하기 위해 “누구에게”, “어떻게” 전달할 것인가를 결정하는 계층으로 “1~4 계층”이 이에 속한다. 해당 계층은 주로 네트워크 분야에서 많이 참조하는 계층이다. 상위계층은 “5~7 계층”으로 데이터를 “어떠한 형식”으로 생성하고 표현할 것인가를 결정하는 계층이며 주로 소프트웨어 개발 분야에서 참조한다. 

 

이번 테크노트에서는 앞서 말한 3가지의 공격 유형이 네트워크 분야에서 주로 참조하는 2~4계층에서 어떻게 발현되는지 네트워크 모니터링 도구인 WireShark를 통해 알아볼 것이다. 

 

* 매체 : 다른 기기와 통신이 가능한 모든 기기, 네트워크 장비, 스마트폰 등을 일컫는다. 

 

 

2. Data Link (2계층) – MAC 주소

 

동일한 네트워크 대역을 사용하는 근거리 네트워크(LAN)에서 인접한 매체와 통신하는 계층이다. 각각의 매체들은 서로를 구별하기 위해 고유의 이름을 가지는데 이것을 “MAC 주소”라고 부른다. 

 

MAC 주소는 네트워크 인터페이스 카드(NIC)에 부착된 고유의 식별 값이며, 특정 매체에 정보를 요청하거나 응답할 때 자신의 MAC 주소와 상대방의 MAC 주소를 기입하여 전달함으로써 정보가 올바르게 전달되도록 한다. 따라서 각 매체들은 제대로 정보를 전달하기 위해 주변 매체들의 MAC 주소를 기록하여 저장하는데 이것을 “MAC 테이블”이라고 부른다. 

 

이러한 MAC 주소와 MAC 테이블을 이용하여 매체간 통신을 관장하는 네트워크 장비가 바로 "스위치(Switch)"이다. 스위치의 가장 큰 역할은 정보를 받을 수신자를 선별하는 것이다. 

 

 


 

 

1) Switch Jamming – “기밀성” 침해

 

스위치 재밍(Switch Jamming)은 네트워크 패킷의 수신자를 확인하여 해당 패킷을 적재적소에 보내주는 “스위치 기능을 마비”시키는 공격이다. 

 

일반적으로 스위치는 자신이 가지고 있는 MAC 테이블의 저장공간이 가득차면 네트워크 패킷을 브로드 캐스트하는 특성을 가지며, 공격자는 이러한 스위치의 단점을 이용하여 수많은 MAC 주소들을 지속적으로 네트워크 상에 흘림으로써 스위치의 MAC 테이블을 가득 채운다. MAC 테이블이 가득 찬 스위치는 특정 매체에 전송해야 하는 패킷을 모든 매체에 전송하게 되고 공격자는 스위치를 통해 오가는 모든 패킷을 염탐하여 주요 네트워크 정보를 손쉽게 획득할 수 있다.

 

아래 [그림 1]은 Wireshark에서 스위치 재밍을 확인한 것이다. 

 

 

필터링 조건

-

판단 근거

“1안되는 짧은 시간
무수히 많은” MAC 주소
같은크기의 패킷

 

 

 

 [그림 1] Switch Jamming 패킷

 

 

스위치 재밍(Switch Jamming)은 MAC 테이블의 오버플로우를 발생시키는 것이 목적이기 때문에 서로다른 MAC 주소로 다량의 패킷을 전송한다. 따라서 IP 또는 MAC 당 패킷은 극히 적은 수로 발생하며 이러한 특징을 이용해 Wireshark에서는 IP별 또는 Ethernet 별로 패킷 수를 확인하는 방법으로 공격을 확인 할 수 있다.

 

 

 

[그림 2] 프로토콜별 패킷 수 확인 1

 

 

 

 

[그림 3] 프로토콜별 패킷 수 확인 2

 

 

3. Network(3계층) - IP 주소

 

서로 다른 네트워크 대역을 사용하는 원거리 네트워크(WAN)에서 특정 대역에 존재하는 매체로 가는 경로를 결정하는 계층이다. 서로 다른 대역에 존재하는 매체와 통신하기 위해서 사용되는 식별자가 바로 "IP 주소"이다. 

 

IP 주소는 네트워크 영역(Net ID)와 매체식별 영역(Host ID)로 이뤄져 있으며 특히 네트워크 영역은 수많은 네트워크 대역에서 통신하고자 하는 곳으로 가는 길을 안내하는 유일한 단서이다. 매체식별 영역은 매체를 구별하기 위해 부여된 것으로 2계층 MAC 주소와 그 역할이 비슷하지만 IP의 경우 고유한(세계에서 유일한) 번호가 아니라는 점에서 MAC과 가장 큰 차이를 나타낸다. 이를테면 IP가 네트워크의 이름이라면 MAC은 네트워크의 주민번호인 셈이다. 

 

 

 

 

1) Land Attack – “기밀성”, “가용성” 침해

 

랜드 어택(Land Attack)은 "나쁜 상태에 빠지게 하다"의 의미를 가진 "Land"에서 비롯된 것으로 “네트워크 패킷의 출발지 IP를 변조하여 공격 대상의 자원을 소모”시키는 공격이다.

 

랜드 어택은 주로 데이터 전송의 신뢰성을 보장하기 위해 연결지향적(3-Way Handshaking) 특징을 가지는 서비스에서 발생된다. 공격자는 이러한 특징을 이용하여 네트워크 패킷의 출발지 IP 주소를 공격 대상의 IP 주소로 변조하여 패킷을 전송하며 패킷을 받은 대상은 자기 자신과 일정시간까지 빈 연결(세션)을 맺게 된다. 이 과정이 반복되면 빈 연결이 많아지게 되고 결국 시스템 오버플로우가 발생하여 정상적인 서비스를 제공하지 못하게 된다.

 

 

아래 [그림 4]은 Wireshark에서 랜드 어택을 확인한 것이다.

 

 

필터링 조건

Ip.src == [동일 IP] and Ip.dst == [동일 IP]

판단 근거

"같은" 출발지 IP 주소와 목적지 IP 주소

 

 

 

[그림 4] Land Attack 패킷

 

 

랜드 어택의 경우 출발지와 목적지 IP 주소가 동일하다는 특징이 있으므로 Wireshark의 Conversations 기능을 통해 동일 IP 주소 간에 통신 여부를 체크하는 방법으로 공격을 확인할 수 있다.

 

 

 

[그림 5] IP별 통신 내역 확인 1

 

 

 

 

[그림 6] IP별 통신 내역 확인 2

 

 

2) ARP Spoofing – “무결성” 침해

 

 

ARP 프로토콜은 이름과 주민번호가 함께 기재된 주민등록증처럼 IP 주소와 MAC 주소를 매핑시키는 데 사용되는 프로토콜이다. 이러한 ARP 프로토콜의 정보를 변조하는 공격을 "ARP Spoofing"이라고 부른다. 

 

공격자가 의도적으로 특정 IP 주소와 자신의 MAC 주소로 대응하는 ARP 메시지를 전송하면 각 매체는 잘못된 IP-MAC 테이블을 가지게 된다. 이러한 점을 이용하여 공격자는 공격 대상의 MAC 주소를 자신의 MAC 주소로 변조하여 모든 패킷을 염탐하거나 주요정보를 탈취할 수 있다. 

 

아래 [그림 7]은 Wireshark에서 ARP Spoofing을 확인한 것이다. 

 

 

필터링 조건

ARP

판단 근거

모든 IP 주소가 동일한 MAC 주소를 가짐

 

 

 

[그림 7] ARP Spoofing 패킷

 

 

ARP Spoofing은 ARP 프로토콜로 필터링하는 것이 좀 더 명확하게 볼 수 있는 방법이며 특정 목적지에 반복적으로 ARP 패킷을 전송하거나 자신의 MAC 주소를 여러 IP 주소의 MAC 주소인 것처럼 브로드캐스팅하는 패턴을 통해 공격을 확인할 수 있다.

 

 

4. Transport(4계층) - PORT 주소

 

이전 계층까지는 매체를 찾는 과정이었다면 이번 계층은 데이터를 어디로, 어떻게 전송할 것인지 결정하는 계층이다. 이러한 통로를 결정하는데 사용되는 식별자가 “PORT 주소” 이다. 

 

PORT 주소는 일반적으로 데이터의 종류나 서비스에 따라 서로 다른 번호를 사용하므로 서버에 활성화된 PORT 주소만으로도 어떠한 서비스 제공하고 있는지 유추가 가능하다. 

 

 

1) PORT Scanning

 

포트 스캐닝(PORT Scanning)은 공격 대상이 사용하고 있는 응용프로그램의 취약점을 공격하기 전에 선행되는 공격으로, 서비스의 종류를 확인하기 위해 PORT 주소를 검사한다. 만약 공격 대상에 “1521 포트”가 활성화 되어 있다면, 공격자는 Oracle의 익스플로잇 코드를 이용하여 공격을 감행할 수 있다. 이는 정보보안의 3대 요소를 훼손하지는 않지만 공격대상의 정보를 수집한다는 점에서 주요한 공격으로 볼 수 있다. 

 

대표적인 포트 스캔 방법은 아래와 같다.

 

▶ TCP 스캔

TCP 통신 시 일어나는 3-Way Handshaking 과정을 이용하는 것으로, 이 과정이 정상적으로 완료되었다면 해당 TCP 포트는 열려있는 것으로 판단한다. 이러한 방식을 연결 스캔(connect scan)이라 부른다.

 

▶ SYN 스캔

TCP 3-Way Handshaking 과정 중 첫 단계인 SYN 패킷에 대한 응답을 여부로 포트가 열려있는지 판단한다. 이 방식은 실제 TCP 연결이 일어나지 않기 때문에 “half-open 스캔”으로 부르기도 한다.

 

▶ ICMP 메시지 스캔

다수의 시스템은 자신이 보낸 패킷에 대한 응답이 없을 경우 ICMP unreachable 메시지를 보낸다. 이를 이용하여 서버에서 임의의 패킷을 전송하고 ICMP 메시지 종류를 확인하여 포트가 열려있는지 판단한다. 

 

 

아래 [그림 8]은 Wireshark에서 포트 스캐닝을 확인한 것이다.

 

 

필터링 조건

Ip.src == [의심 IP]

판단 근거

"같은" 목적지 IP 주소
여러 개 PORT 주소로 접근

 

 

 

[그림 8] PORT Scanning 패킷

 

 

포트 스캐닝은 다수의 포트로 접근하여 응답하는 패킷을 통해 활성화 여부를 확인하므로 특정 IP 주소에서 다수의 포트로 접근하는 패킷이 존재할 경우, 공격으로 의심하여 해당 IP 주소로 필터링하여 모니터링할 필요가 있다. 그러나 최근에는 공격 탐지를 우회하기 위해 Interval을 길게 두고 요청하는 경우가 많으므로 모니터링에도 주의가 필요하다.

 

 

2) SYN Flooding – “가용성” 침해

 

SYN Flooding은 TCP 서비스에서 서버와 클라이언트의 연결 상태정보를 임시적으로 저장하는 공간인 “Backlog”를 버퍼 오버플로우 시키는 공격이다. 

 

일반적으로 TCP 통신 시 클라이언트와 서버는 SYN(요청)과 ACK(응답)를 주고 받는 3-Way Handshing을 한다. 이 과정에서 서버는 클라이언트의 정보를 Backlog에 저장하고 과정이 완료되면 삭제한다. 이를 이용하여 공격자는 고의로 수많은 SYN 메시지를 전송하면서 ACK 메시지는 전송하지 않는다. ACK 메시지를 받지 못한 서버는 일정 시간동안 SYN 메시지의 수만큼 공격자의 정보를 Backlog에 저장하게 되고 SYN 패킷이 많아지면 많아질수록 서버의 Backlog는 가득 차게 된다. 결국 진짜 사용해야 하는 사용자의 요청을 받지 못하여 정상적인 서비스를 제공하지 못하게 된다.

 

아래 [그림 9]은 Wireshark에서 SYN Flooding을 확인한 것이다.

 

 

필터링 조건

Ip.src == [의심 IP] and tcp.flags == 0x002

판단 근거

“단위시간” 내 과다 SYN 패킷 발생

 

 

 

[그림 9] SYN Flooding 패킷

 

 

SYN Flooding은 공격자가 포트 스캐닝 공격을 수행할 때도 발생할 수 있으나 보통은 가용성을 훼손시키는 목적으로 사용된다. 따라서 짧은 순간, 다량의 패킷을 발생시켜 대역폭을 점유하기 때문에 평소와 다르게 많은 양의 트래픽이 발생할 경우, Wireshark의 I/O graph 기능을 통해 그래프 이상 현상(기이하게 높이 솟은 형태)을 모니터링하는 방법으로 공격을 확인할 수 있다. 

 

 

 

[그림 10] 트래픽량 확인 방법 1

 

 

 

 

[그림 11] 트래픽량 확인 방법 2

 

 

5. 결론

 

지금까지 네트워크 하위 계층에서 발생 가능한 공격을 Wireshark를 통해 확인하는 방법을 알아보았다. 이번 테크노트에서 역사가 오래된 네트워크 공격 기술과 그 확인 방법에 대해 서술하게 된 이유는 IT 기술이 발달하고 서비스 종류가 기하급수적으로 증가했다 하더라도 이들의 근본인 네트워크는 변하지 않기 때문이다. 따라서 올바른 네트워크 보안 정책이 수립되지 않은 기업은 여전히 “OLD”하고 “BASIC”한 공격에 취약하다는 것을 다시 한번 상기시키고자 한다. 

 

 

6. 참고자료

 

[1] https://namu.wiki/w/OSI%20%EB%AA%A8%ED%98%95?from=OSI%207%EA%B3%84%EC%B8%B5

[2] https://ko.wikipedia.org/wiki/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC_%EA%B3%84%EC%B8%B5

[3] https://en.wikipedia.org/wiki/LAND

[4] https://ko.wikipedia.org/wiki/ARP_%EC%8A%A4%ED%91%B8%ED%95%91

[5] https://ko.wikipedia.org/wiki/%ED%8F%AC%ED%8A%B8_%EC%8A%A4%EC%BA%94

[6] https://en.wikipedia.org/wiki/SYN_flood