Notice
Recent Posts
Recent Comments
Today
Total
05-02 00:04
Archives
관리 메뉴

Jeongchul Kim

12 네트워크 기반 공격 본문

정보 보호

12 네트워크 기반 공격

김 정출 2016. 2. 13. 15:22



12 네트워크 기반 공격



네트워크 기반 공격과 관련하여 다음의 내용을 살펴보도록 하겠습니다.

네트워크가 취약한 이유는 무엇일까요? 임의의 호스트는 임의의 호스트를 공격할 수 있으며, 대규모 네트워크에서는 더 많은 취약 지점이 존재합니다. 공격 지점이 많기 때문입니다.


네트워크는 자원 및 작업부하의 공유를 하기 때문에 개별 컴퓨터에 비해 네트워크로 연결된 시스템들에 더 많은 사용자들이 접근할 수 있습니다.


네트워크 운영/제어 시스템은 단일 컴퓨터 시스템을 위한 운영체제보다 훨씬 복잡하기 때문입니다.

이러한 네트워크의 취약점들 때문에 네트워크를 기반으로 한 공격이 많이 이루어지고 있는데요. 지금부터 네트워크 기반 공격의 종류에 대해 살펴보도록 하겠습니다.




네트워크 기반 공격의 종류

1. 네트워크 기반 공격의 종류

네트워크 기반 공격의 종류

네트워크 공격 종류는 네트워크 공격, 서비스 거부 공격, 네트워크 스캐닝 공격 이렇게 크게 세 가지로 나뉘게 됩니다.   

네트워크 공격은 네트워크 패킷 도/감청을 하는 공격으로, 종류는 스니핑, 스푸핑, 세션 하이재킹이 있습니다.


서비스 거부 공격은 서버의 자원을 소비시켜 시스템을 다운시키는 공격으로 종류로는 SYN Flooding, UDP Flooding, Land 공격, Ping of Death, Smurf 공격, Tear Drop, Tiny Fragment 공격, Fragment overlap 공격이 있습니다.

네트워크 스캐닝 공격은 공격전 취약점을 파악하는 것입니다. 종류로는  TCP Scan, UDP Scan이 있습니다.




공격 기법의 종류별 특징

1. 서비스 거부 공격

공격 기법의 종류별 특징

서비스 거부 공격은 과도한 트래픽 또는 시스템의 자원을 고갈시켜 시스템을 불능 상태에 빠트리는 공격을 말합니다.


서비스 거부 공격의 종류로는 서비스 거부 공격과 분산 서비스 거부 공격이 있습니다. 서비스 거부 공격은 공격자가 시스템의 하드웨어나 소프트웨어 등을 무력하게 만들어 시스템이 정상적인 수행을 하는데 문제를 일으키며, 분산 서비스 거부 공격은 네트워크로 연결되어 있는 많은 수의 호스트들에게 패킷을 범람 시킬 수 있는 서비스 거부 공격용 프로그램을 분산 설치하여 이들이 서로 한 시스템을 집중적으로 공격 하는 방법을 말합니다.


이번에는 서비스 거부 공격의 대응 절차에 대해서 간단히 알아보겠습니다. 1단계는 서비스 거부 공격을 인지하는 것입니다.

웹 서비스와 관련된 이벤트 발생 시 해당 원인이 DDoS 공격으로 인한 것인지에 대한 명확한 판단이 필요합니다. 2단계는 DDoS 공격 유형을 파악하는 단계로 DDoS 공격 유형을 명확히 파악하여 어떠한 차단 정책을 설정해야 되는지 판단의 자료로 활용합니다. 3단계는 공격유형에 따른 차단정책 정의 및 대응 단계로, 공격의 유형과 목적을 명확히 판단하여 차단정책을 설정함으로써 웹 서비스의 가용성을 확보할 수 있습니다.  4단계는 공격 대응 후, 사후조치 단계입니다. 공격 트래픽 분석을 통해 공격 내용을 상세히 규명함으로써

추가 발생할 수 있는 공격 대비를 위해 정책을 업데이트하고, 좀비PC IP를 확보하여 추가적인 피해가 발생하지 않도록 조치해야합니다.


서비스 거부 공격이 발생할 경우 한국인터넷진흥원 등과 같은 관련 기관과 협업을 통해 대응을 수행하게 됩니다.

서비스 거부 공격의 대응 절차를 단계별로 자세히 알아보겠습니다. 1단계 공격 인지를 위한 체크포인트는 유입 트래픽 크기를 확인하는 것입니다. 방화벽, IDS 등의 네트워크 장비를 통해 웹 서비스 운영 망으로 유입되는 트래픽의 BPS와 PPS 규모를 확인하여 평시와 비교하고, 유입 트래픽의 크기가 비정상적인 증감을 나타내는 경우, 공격 발생 여부를 의심할 수 있습니다. 그리고 웹 서버 접속 로그를 확인하여 비정상 접속 증가 여부를 확인합니다.


그리고 웹 서버와 클라이언트가 유지하고 있는 연결 규모를 확인하여 평시 대비 증감률을 비교하고, 웹 서버 운영망으로 유입되는 트래픽을 적절히 샘플링하여 실제 트래픽을 분석하여 DDoS 공격 여부를 검증합니다.


2단계에는 DDoS 공격 유형을 파악하는 것입니다. Tcpdump와 같은 트래픽 캡쳐 툴을 이용하여 분석하고자 하는 기간 동안의 유입 트래픽 일부를 PCAP 형태로 저장합니다. 그리고 DDoS 공격 특징을 파악하기 위해서는 프로토콜 정보, HTTP 헤더 정보, 연결 정보를 확인해야 합니다.


또한, 대역폭 소진공격, DB 부하 유발공격, 웹 서버 자원 공격 등 대표적인 DDoS 공격 유형을 파악합니다. 마지막으로 서버 접속로그를 확인하여 접속자의 요청 페이지에 대한 통계와 특정 시간 동안 발생되는 요청 횟수에 대한 통계를 확인합니다.


3단계는 공격 유형에 따른 차단정책 정의 및 대응입니다. 대역폭 소진 공격 대응 방안으로 UDP Flooding, ICMP Flooding은 웹 서버 망을 보호하는 방화벽이나 웹 서버망 상단에 위치한 라우터에서 해당 프로토콜을 차단하도록 ACL을 설정합니다.


대용량 TCP Flooding 공격은 프로토콜 기준으로 차단하는데 한계가 있어 소스 IP별로 PPS 임계치를 설정합니다.

웹 서버 자원 소모 공격 대응 방안에 대해 알아볼 텐데요. SynFlooding 공격유형은 웹 서버 OS의 TCP 스택 자원을 소모하는 특징이 있으므로 먼저 소스 IP별로 PPS 임계치를 설정하거나 패킷 헤더 검사를 통해 정상적인 옵션 필드값을 가지지 않는 비정상 패킷을 차단합니다.

Get Flooding, Post Flooding 공격유형은 다량의 HTTP 요청으로 웹 서버와 DB 연동에 부하를 유발시키는 것이 특징으로 클라이언트로부터의 요청 수에 대한 임계치를 설정하여 임계치를 초과하는 소스 IP의 접속 차단하거나 HTTP 헤더를 확인하여 HTTP 표준에 맞지 않는 필드 값을 차단 시그너처로 설정합니다.

Slow Header Flooding, Slow Data Flooding 공격 유형은 완료되지 않은 연결 상태를 지속적으로 유지하는 공격이므로 하나의 요청에 대한 연결 타임아웃을 설정하여 특정 타임아웃이 지나면 연결을 종료시켜 차단합니다. 일반적인 봇은 브라우저와 달리 웹 서버의 응답코드에 반응하여 행동하지 않으므로 웹 서버에서 302 moved temporary와 같은 코드로 응답하여 봇이 발생시키는 요청을 차단합니다.


마지막으로 4단계 공격 대응 후의 사후조치 단계에 대해 알아보도록 하겠습니다. 공격 규모를 확인하고 웹 서버의 가용성이 침해될 수 있는 지점을 확인하여 정확한 분석정보가 반영된 차단정책으로 업데이트를 합니다. 또한 프로토콜에 대한 통계, 패킷 크기에 대한 통계, 요청 형태에 대한 통계를 상세히 확인하여 시간에 따른 공격 유형의 변경 여부 또는 복합공격 여부를 확인하여 차단 정책

업데이트합니다.

그리고 특정 시간대의 HTTP 요청 횟수를 확인하여 비정상적인 행위 여부를 규명하고, HTTP 헤더의 각 필드 정보를 조사하여,

HTTP 표준을 준수하지 않는 비정상 메시지를 차단할 수 있도록 차단정책 업데이트합니다. TCP 기반의 웹 서버 가용성 마비 공격은 TCP 3중 연결 완료와 함께 시작하므로 실제 공격 IP를 확보하여 차단하도록 조치합니다.


2. SYN/UDP Flooding

다음 공격 기법으로 싱크 플루딩과 유디피 플루딩에 대해 알아보겠습니다. 먼저 싱크 플루딩은 TCP 프로토콜의 구조적인 문제를 이용한 공격으로, 각 서버의 동시 가용 사용자수를 SYN 패킷만 보내 점유하여 다른 사용자로 하여금 서버를 사용 불가능하게 하는 공격을 말합니다.


유디피는 소스 주소와 소스 포트를 스푸핑하기 쉬우므로 이러한 약점을 이용해 과다한 트래픽을 호스트에 전송함으로써 Spoof 되는 호스트 간 네트워크를 마비 시키는 것입니다. 이때 공격자가 출발지 IP를 변경하여 대량의 UDP 패킷을

전송하면 호스트 A와 호스트 B는 계속해서 서로 패킷을 주고 받게 되어 두 시스템 사이의 네트워크 과부하가 됩니다.



3. Ping of Death

다음은 핑이라는 공격 기법입니다. 핑은 네트워크 상에서 데이터가 오고 가는 시간을 측정하는 명령어입니다. 이때 공격자는 버퍼 사이즈를 늘려서 호스트에게 계속 전송하며, 패킷을 단편화 시킵니다. 이후 호스트는 나눠진 패킷을 재조립합니다. 이런 작업이 많아짐에 따라 호스트의 자원을 무의미하게 소모시키며, 심할 경우 내부 네트워크 자원에 심각한 영향을 일으켜 네트워크 성능을 저하 시킬 수 있습니다.



4. 스머프 공격

다음은 스머프 공격입니다. 스머프 공격은 ICMP 에코 패킷을 브로드캐스트 하여 ICMP 리퀘스트하게 만들어 마비시키는 방법입니다. IP 주소 중 XXX.XXX.XXX.255는 전체 네트워크를 의미합니다. 공격자는 출발지 IP를 공격할 호스트 IP로 변경하여 호스트 A로192.168.1.255에 에코 패킷을 보냅니다. 이후 호스트 A는 같은 네트워크 단에 있는 곳으로 브로드캐스트하여 패킷을 보내며 패킷을 받은 각각의 호스트들은 호스트 B에게 리플라이 패킷을 보내어 서비스 거부 상태를 만듭니다.


5. Tear Drop

티어 드롭(Tear Drop) 공격은 IP 헤더가 조작된 일련의 IP 패킷 조각(IP Fragment)들을 전송하는 공격으로, 패킷을 겹치게 하거나 일정한 간격의 데이터가 빠지게 하는 것입니다. 이 수신된 패킷으로는 재조립할 수가 없으므로 시스템이 다운되는 현상이 발행합니다.

6. Tiny Fragment Attack

다음은 Tiny Fragment Attack입니다. 최초의 패킷 조각을 아주 작게 만들어 네트워크 침입탐지 시스템(IDS)이나 패킷 필터링 장비를

우회하는 공격을 말합니다. 패킷 필터링 장비나 침입탐지시스템은 필터링을 결정하기 위해 포트번호를 확인하는데 포트번호가 포함되지 않을 정도로 아주 작게 단편화된 첫 번째 조각을 통과시킵니다. 또한 실제 포트번호가 포함되어 있는 두 번째 조각은 아예 검사도 하지 않고 통과시킵니다. 그 결과 보호되어야 할 목적지 서버에서는 이 패킷들이 재조합되어 공격자가 원하는 포트의 프로그램으로 무사히 연결될 수 있습니다. 이런 방법으로 패킷 필터링에서 차단되어야 하는 패킷을 통과시킬 수도 있고, 침입 탐지

시스템에서 비정상적인 접속으로 경보 되어져야 하지만 전혀 탐지되지 않게 할 수도 있습니다.

7. Fragment Ovelap Attack

Fragment Overlap Attack은 타이니 플래그먼트 공격(Tiny Fragment Attack) 기법에 비해 좀 더 정교한 공격입니다. 첫 번째 조각에서는 필킷 필터링 장비에서 허용하는 http 포트와 같은 포트번호를 가집니다. 그리고, 두 번째 조각에서는 오프셋을 아주 작게 조작합니다.

방화벽은 정상적인 포트로 오인하여 패킷을 호스트에게 전달하도록 허락합니다. 조각들이 재조합 될 때 두 번째 조각과 첫 번째 조각의 일부분을 덮어쓰도록 하여 공격이 성공합니다.


8. TCP SYN 스캔

TCP SYN 스캔은 특정 시스템의 포트로 SYN 패킷을 전송해 응답을 기다리는 방법을 말합니다. TCP 싱크는 완전한 TCP 연결을 맺지 않고, 대상 포트로 싱크 패킷을 전송하여 싱크/에크를 받으면 오픈 상태, 리셋/에크를 받으면 클로즈 상태입니다. 공격자는 목표 호스트에게 싱크를 보내며, 목표 호스트는 포트가 열려 있을 경우 싱크/에크 패킷을 보냅니다. 이후 공격자는 리셋 패킷을 보내 연결을 끊습니다. 만약 목표 호스트의 포트가 닫혀 있을 경우 목표 호스트는 리셋/에크 패킷을 보냅니다. 싱크 스캔은 half-open 연결을 통하여 포트의 open/close 상태를 확인하기 때문에 TCP 컨넥트 스캔에 비하여 비밀스러운 연결로 시스템에 로그가 기록되지

않습니다. TCP를 이용한 스캐닝 중 스캔속도가 TCP 컨넥트 스캔보다 빠르기 때문에 가장 많이 사용하는 방법입니다.


9. 세션 하이재킹

세션 하이재킹은 클라이언트와 서버간의 통신을 관찰 할 수 있을 뿐만 아니라 신뢰를 이용한 세션은 물론, Telnet, FTP 등 TCP를 이용한 거의 모든 세션의 갈취가 가능합니다. 현재 연결중인 세션을 가로채어 사용자의 ID와 패스워드를 사용하는 인증 절차를 무시할 수도 있습니다.


세션 하이재킹 과정으로, 첫째 목표 설정을 하고, 둘째 시퀀스 넘버 난이도를 검사합니다. 셋째 공격 대상 세션 설정을 하며,


넷째 시퀀스 넘버를 추측합니다. 마지막으로 사용자 시스템을 오프라인으로 만든 다음에 세션을 가로 챕니다.

마지막으로 세션 하이재킹의 상세한 기법에 대해 알아보도록 할까요? 먼저 목표를 설정합니다. 텔넷이나 FTP와 같이 세션 기반의 연결 설정이 가능한 서버를 목표로 합니다. 시퀀스 넘버 샘플을 수집하기 전에 목표 시스템으로 접근이 가능함을 확인합니다.

둘째 시퀀스 넘버 난이도를 검사합니다. 공격자가 세션을 하이재킹하고 트래픽을 감시 및 가로채기를 수행하기 위해 우선적으로 시퀀스 넘버를 추측할 수 있어야 합니다. 셋째 공격 대상 세션 설정을 합니다. 탐지가 어렵도록 은밀히 수행되는 다른 종류의 공격들과 대조적으로 세션 하이재킹은 많은 트래픽이 존재할 때 탐지를 어렵게 만듭니다.



넷째 시퀀스 넘버를 추측합니다. 공격자는 세션을 성공적으로 가로채기 위해 시퀀스 넘버를 추측해야 합니다. 마지막으로 사용자 시스템 다운입니다. 서비스 거부 공격을 수행하여 사용자 시스템을 오프라인 상태로 만듭니다.




Comments