[TCP/IP] 3. 네트워크 공격 유형

이정진·2021년 7월 13일
0

Study

목록 보기
9/13

네트워크 공격 유형

스캐닝(scanning) 공격

: 본격적인 공격에 앞서 수행하는 사전 정찰 공격으로 대표적인 예시는 포트 스캔(port scan)이 있다.

포트 스캔

: 원격지 호스트를 대상으로 어떤 포트 번호를 사용 중인지 확인하는 기법

  • TCP 헤더의 플래그 항목을 이용해 수행
  • 대표적인 툴 : 엔맵(nmap)
  • 대표적인 포트스캔 기법

    1) TCP Full Open 스캔 기법 : 자기 자신을 대상으로 SSH 서비스 동작 여부를 TCP 3단계 연결 완성을 통해 확인하는 방식으로, 이는 공격 대상자 측에 포트 스캔 기록을 남길 수도 있다는 것이 단점이다.
    2) TCP Half Open 스캔 기법 : SSH 서비스 동작 여부를 TCP 3단계 연결 미완성을 통해 확인하는 방식으로, 이는 엔맵의 기본 동작 방식이며, 스텔스 포트 스캔의 종류 중 하나이다.
    3) TCP FIN 스캔 기법 : 방화벽을 우회할 목적으로 사용하는 방식으로, FIN 플래그를 전송하여 이에 대한 응답 플래그를 통해 포트 사용 여부를 확인한다.
    4) TCP X-mas 스캔 기법 : TCP FIN 스캔 기법의 응용 버전으로, URG·PSH·FIN등의 모든 플래그를 통해 포트 사용 여부를 확인한다.
    5) TCP Null 스캔 기법 : 어떤 플래그도 설정하지 않은 상태로 방화벽을 우회하는 기법이다.

(스텔스 포트 스갠 : 공격 대상자에게 포트 스캔 흔적이 남지 않게 하는 방식)

스니핑(sniffing) 공격

: 패킷 분석 툴(ex : 와이어샤크)을 이용하여 패킷 내용을 확인 및 분석하는 기법

스니핑이 가능한 이유 : TCP/IP 방식에는 암호화 기능이 없어 데이터가 평문으로 전송되기 때문에 제 3자가 와이어샤크와 같은 패킷 분석 툴을 이용하여 DNS 페이로드 내용을 볼 수 있다.

스니핑 대응 방법 : VPN(Virtual Private Network)

스푸핑(spoofing) 공격

: 출발지 주소 등을 은폐하거나 변경하는 기법

ARP 스푸핑 (ARP 캐시 중독 공격) : 데이터 링크 계층에서 목적지 맥 주소를 조작하는 방식 / ARP 캐시 테이블에서 사용하는 주소 체계를 조작
IP 스푸핑 : 네트워크 계층에서 출발지 IP주소를 조작하는 방식
DNS 스푸핑 (DNS 캐시 중독 공격) : 응용 계층에서 목적지 IP주소를 조작하는 방식 / DNS 캐시 테이블에서 사용하는 주소 체계를 조작

플러딩(flooding) 공격

: 출발지 IP주소를 수시로 변경하면서 상대방에게 불필요한 데이터를 계속 전송하여 인위적으로 과부하를 유발하는 기법

  • 일반적으로 IP스푸핑 기법과 결합하여 사용
  • DDos(Distributed Denial of Service) 공격이라고도 ㅊ부름
  • 네트워크 공격 중 가장 위력적인 공격에 해당

계층별 공격 유형

물리계층 (전송 단위 : 비트 / 대표적인 장치 : 회선, 허브)

- 회선 태핑(Tapping) 공격

: 전기 신호를 직접 자신에게 끌어오는 방식

대응 방법 : 광섬유(광섬유는 어떤 유형의 신호도 외부로 방출할 수 없게 설계되어 있어 전기 신호를 직접 끌어오는 것을 방지할 수 있다.)

- 템페스트(Tempest) 공격

: 전송 매체에 흐르는 전기 신호를 검출해 데이터를 해석하는 기법으로 무선분야에서 광범위하게 일어난다.

Ex) 워 드라이빙(war driving) 공격, PC스피커의 전기 신호를 이용한 공격 등

데이터 링크 계층 (전송 단위 : 프레임 / 대표적인 장치 : LAN카드, 스위치, 무선 AP)

- 맥 플러딩 공격

: 불필요한 맥 주소로 스위칭 테이블을 채워 스위치가 플러딩으로 동작하는 상황을 인위적으로 발생시켜 스위치가 허브처럼 동작하게 하는 기법이다

스위치 재밍(switch jamming) 기법이라고도 부른다.

해당 공격은 스위치 포트마다 사용자와 맥 주소를 정적으로 설정하여 대응할 수 있다.

- ARP 스푸핑 공격

: ARP 캐시 테이블에 저장한 대응 관계를 조작하여 수행하는 기법

Ex) 라우터의 맥 주소에 공격자의 맥 주소를 올려놓는 행위
이는 공격 대상자가 라우터로 보내는 모든 데이터들이 라우터가 아닌 공격자에게 흘러가게 된다.
공격자는 공격 대상자와 라우터 사이의 통신을 중계하며 모든 데이터를 확인할 수 있게 된다.

ARP 스푸핑 공격은 응용 계층에서 수행하는 DNS 스푸핑 공격 · SSL 스푸핑 공격 · 쿠키 스푸핑이나 각종 스니핑 공격을 수행하기 위한 기본적인 공격이다

- VLAN 홉핑 공격

: 자신과 다른 VLAN영역으로 넘어가는 기법

VLAN영역은 논리적으로 다른 영역이기 때문에 원래는 넘어갈 수 없다. 이를 무시하고 다른 VLAN 영역으로 넘어갈 때 사용하는 공격이다.

- DHCP 고갈(starvation) 공격

: 가짜 맥 주소를 브로드캐스트 방식으로 많은 양을 생성하여, DHCP 서버가 가지고 있는 IP주소 를 모두 소진시키는 일종의 플러딩 공격 기법

- DHCP 스푸핑 공격

: DHCP 고갈 공격으로 IP주소 고갈 상태에 놓은 DHCP 대신 공격자가 DHCP 사용자들에게 조작한 게이트웨이 ID 또는 DNS 서버를 할당하는 공격 기법

조작한 게이트웨이 IP주소에 공격자의 IP주소를 할당해 DHCP 사용자들의 모든 데이터들을 공격자에게 흐르게 할 수 있다.

네트워크 계층 (전송 단위 : 패킷 / 대표적인 장치 : 라우터)

- 랜드 공격

: 출발지 IP주소를 목적지 IP주소와 동일하게 설정해 공격 대상자에게 인위적인 과부하를 유발하는 네트워크 계층의 플러딩 공격으로 IP 스푸핑 공격을 변형한 기법이다.

- ICMP 플러딩 공격

: ICMP 페이로드의 크기를 65,000바이트 이상으로 설정하고 IP 스푸핑 공격을 적용해 출발지 IP주소를 매순간 임의로 변경 및 전송하여 과부하를 일으키는 기법

- ICMP 스머핑 공격

: 공격 대사장의 IP주소를 출발지 IP주소로 설정하고, 목적지 IP주소를 브로드캐스트 IP주소로 설정하여 공격대상자가 수많은 ICMP응답 패킷을 받고 과부하가 일어나도록 하는 기법

- 티얼드롭(Teardrop) 공격

: 패킷 분할 속성을 악용한 플러딩 공격의 한 종류로, 프래그먼트 오프셋의 정보를 조작하여 과부하를 일으키는 기법

대부분의 운영체제는 프래그먼트 오프셋이 일정 시간동안 불일치할 경우, 패킷 전체를 폐기하는 방식으로 해당 공격을 차단한다.

전송 계층 (전송 단위 : 세그먼트 / 데이터그램)

- TCP SYN 공격

: TCP 3단계 연결 속성을 악용하여 매순간 공격 대상에게 많은 양의 SYN 플래그를 송신하여 과부하를 일으키는 기법

현재 방화벽 등의 보안장비에서는 임계치 설정을 통해 해당 공격을 차단하고 있다. 그러나 임계치 설정 차단 방식은 100% 정확한 차단 방식은 될 수 없다.

- 본크·보인크(Bonk·Boink) 공격

: TCP 단편화 속성을 악용해 TCP 헤더 중 일련번호 항목을 조작해 수신 측에서 정상적인 재조립을 할 수 없도록 하여 과부하를 일으키는 기법

티얼드롭 공격처럼 대부분읜 운영체제는 일련번호 항목이 일정 시간동안 불일치할 경우, 해당 세그먼트 전체를 폐기하는 방식으로 해당 공격을 차단한다.

응용 계층 (사용자의 정보를 담는 페이로드 생성)

일반적으로 HTTP 페이로드는 제어 정보를 담고 있는 HTTP 헤더와 계정 정보를 담고 있는 HTTP 바디로 구성되어 있다.
또한 일반적으로 수신자의 서버는 헤더를 먼저 수신한 뒤 헤더에 설정한 정보에 따라 바디를 처리하는데, 이 때 헤더의 기능을 조작하여 다양한 형태의 플러딩 공격이 가능하다.

- HTTP GET 플러딩 공격

: 다수의 클라이언트 측 (= 좀비 PC)에서 특정 서버를 대상으로 TCP 3단계 연결 설정과 홈페이지에 대한 요청을 반복적으로 수행하여 웹 서버 측에 과부하가 일어나도록 하는 기법

- HTTP GET 캐시 제어 플러딩(flooding with cache control) 기법

: CC공격이라고도 하며, 일반 헤더의 캐시 설정 부분을 조작해 캐싱 서버가 아닌 서버에게 직접 처리를 요청하게 함으로써 서버에 부하를 유발하는 기법

임계치 설정을 통해 방어할 수 있다.

- 슬로우(slow) HTTP 헤더 공격 / 슬로우리스(slowloris) 공격

: 헤더와 바디의 구분자를 애매하게 설정해 서버가 헤더를 완전히 수신할 때까지 연결을 유지할 때, 부하를 일으키는 기법

방화벽에서 연결 타임아웃을 설정하여 방어하거나, 응용 계층 기반 방화벽에서 조작된 헤더의 유입을 차단할 수 있다.

- 슬로우 HTTP 포스트(post) 공격 / 러디(rudy) 공격

: 서버로 대량의 데이터를 전송할 때 장시간동안 분할 전송하는 기법

방화벽에서 연결 타임아웃을 설정하여 방어할 수 있다.

사이버보안 구성

기밀성 : 서로 주고받은 실제 정보에 대한 비밀성을 보장하는 개념
무결성 : 서로 주고받은 실제 정보에 대한 정확성을 보장하는 개념
가용성 : 정당한 사용자가 필요할 때마다 즉각적으로 정보에 접근해 사용하는 개념
인증 : 송신자와 수신자 사이의 확신성을 보장하는 개념
부인 봉쇄 : 수신자가 정보를 받았는데 송신자가 이를 부인하는 일 등을 방지하는 개념

여기서 기밀성과 무결성이 사이버 보안의 기본이자 중심이 되는 개념이다.

VPN

VPN(Virtual Private Network) : 기밀성을 구현하기 위해 수행하는 일련의 암호화 기법

응용 계층 기반의 VPN 기법 : 오직 페이로드 영역만을 암호화하는 기법으로, 헤더 정보는 읽을 수 있다.

Ex) SSH VPN 기법, SSL/TLS VPN 기법, PGP VPN 기법, SET VPN 기법 등

SSL/TLS VPN 기법 : 세션 키를 이용하는 하이브리드 암호 방식을 사용하는 기법으로 응용 계층과 전송 계층 사이에서 동작한다.

동작 과정
초기 협상 단계 : 클라이언트오 서버 사이에서 클라이언트 헬로 및 서버 헬로 신호 교환
서버 인증 단계 : 서버에서 공개 열쇠를 클라이언트에게 전송
클라이언트 인증 단계 : 클라이언트 핸드셰이크 프로토콜에서 생성한 임시 비밀 열쇠를 공개 열쇠로 암호화해 전송하고 암호 변경 사양 프로토콜에서 다음 단계에서부터 사용할 일련의 보안 매개변수를 서버에게 전송
종료 단계 : 일련의 통신을 진행한 뒤 TCP 방식에 따라 순차적으로 연결 종료

네트워크 계층의 VPN 기법
IPSec VPN 기법 : 페이로드 영역뿐만 아니라 세그먼트/데이터그램 헤더와 패킷 헤더까지 암호화하는 기법

  1. AH (Authentication Header Protocol)
    : 무결성을 보장하기 위한 프로토콜로, IP 패킷이 전송 중에 변조되지 않았음을 보장하는 서비스를 제공한다.
  2. ESP (Encapsulating Security Payload Protocol)
    : IP 페이로드를 암호화하여 데이터 기밀성을 제공함으로써 제 3자에게 데이터가 노출되는 것을 차단

운영 모드 (= 패킷 전송 방법)

  • 전송 모드(Transport mode) : 원래의 IP 헤더는 그대로 이용하며 나머지 부분만 보호하는 방식 / 암호화 구간은 통신 구간 전체
  • 터널 모드(Tunnel mode) : IP 패킷 전체를 보호하면서 그 위에 새로운 IP헤더를 추가하여 통신을 함 / 암호화 구간은 터널 구간

보안 장비

방화벽(firewall)
: 외부망과 내부망 사이에서 미리 설정한 규칙에 따라 특정한 패킷을 차단하거나 허용하는 소프트웨어 설정 또는 하드웨어 장비를 의미하며 예방 통제를 구현하기 위한 장치이다.

IDS(침입 탐지 체계, intrusion detection system)
: 시스템에 대한 악의적인 공격을 탐지하기 위한 체계

IPS(침입 방지 체계, intrusion protection system)
: 해당 악의적인 공격을 방지하기 위한 체계

IDS와 IPS는 연동해 사용하는 장비

NAC(네트워크 통제 체계, Network Access Control)
: 해당 장치가 네트워크 접근을 시도할 때 인증된 노드인지, 미인증 노드인지 등에 대한 구분 네트워크 정책을 설정하여 만약 해당 장치가 정책에 해당하지 않을 경우, 네트워크 차단을 통해 통신이 발생하지 않도록 관리하는 체계를 의미한다.

TMS(위협 관리 체계, Threat Management System)
: 여러 위협으로부터 내부 자산을 보호하기 위한 체계를 지칭하는 용어

OSI 7계층

응용 계층
: 전송 데이터(페이로드)를 생성 / 전송 단위 : L7PDU

표현 계층
: L7PDU 데이터를 압축하고 암호화 / 전송 단위 : L6PDU

세션 계층
: 송신자와 수신자 사이의 동기화 / 전송 단위 : L5PDU

전송 계층
: 데이터를 주고 받을 수 있도록 일련의 제어 기능 수행 / 전송 단위 : L4PDU

네트워크 계층
: CLNP(ConnectionLess Network Protocol)에 기반해 일련의 라우팅 기능을 수행 / 전송 단위 : L3PDU

데이터 링크 계층
: LAN 영역에서 송신자와 수신자가 신뢰성 있는 데이터를 주고 받을 수 있도록 일련의 제어 기능을 수행 / 전송 단위 : L2PDU

물리 계층
: 하드웨어 전송, 기계적·전기적·기능적·절차적 기능을 수행 / 전송 단위 : L1PDU

IPv6

16진법 표기 / 40바이트 고정

버전(version) : IPv6이므로 6이 들어감 / 4비트 크기
트래픽 클래스(traffic class) : 개별 패킷의 우선 순위 정보를 저장 (IPv4의 Tos와 유사한 역할) / 8비트 크기
플로우 라벨(Flow Label) : 전체패킷의 우선 순위 정보를 저장, 특정 서비스 전체에 대한 우선 순위 정보를 저장 / 20비트 크기
페이로드 길이(Payload Length) : 기본 헤더 크기를 제외한 확장 헤더의 크기와 페이로드 데이터의 크기를 저장 (IPv4의 전체 길이와 유사한 역할) / 16비트 크기
넥스트 헤더(Next Header) : 상위 프로토콜의 식별자와 확장 헤더의 종류를 저장 (IPv4의 프로토콜과 유사한 역할) / 8비트 크기
홉 제한(Hop limit) : 패킷이 통과할 수 있는 최대 라우터의 갯수를 저장 (IPv4의 생존시간과 유사한 역할) / 8비트 크기
출발지 주소 항목 & 목먹지 주소 항목 : / 128비트 크기 (IPv6 주소가 128비트 체계이므로)

  • 위의 내용은 "해킹 입문자를 위한 TCP/IP 이론과 보안 2/e" 책의 내용을 포함해 작성자 본인이 공부했던 내용을 정리한 글입니다.

0개의 댓글