- 네트워크 보안 신규 위협 대응하기2023년 11월 29일 16시 26분 54초에 업로드 된 글입니다.작성자: 채이_E
네트워크 기반 공격 유형 분석
Sniffing (스니핑)
- 통신 경로상에서 정보를 엿듣거나 훔쳐보는 행위 = 도청
> 도청 -> 타인의 통신 내용을 동의 없이 청취, 녹음하는 행위
> 와이어태핑 -> 기계적인 방법을 이용하여 데이터를 도청하는 행위
> 탬페스트 -> 하드웨어에서 발생하는 미세한 전자파를 이용하는 도청 행위
- Sniffing 공격 조건
> Media 공유
ㄴ 정보를 가지고 있는 신호가 공격자의 시스템에 도착해야 함
ㄴ HUB 환경 -> 피해자와 공격자가 같은 Collision Domain에 위치해야 함
ㄴ SWTICH 환경 -> 피해자의 전기적인 신호를 유도할 수 있는 추가공격이 필요함
> 공격자 시스템의 NIC가 Promiscuous 모드로 동작해야 함
ㄴ Fame이 NIC에서 Filtering 되는 것을 방지해야 함
> 공격자 시스템에서 Sniffer 프로그램을 사용해야 함
> Sniffing할 데이터가 암호화 되지 않아야 함
Hub와 Switch의 동작 방식
- Hub는 모든 Inbound Traffic을 증폭하여 Inbound 포트를 제외한 다른 모든 포트로 Flooding함
- Switch는 Inbound Frame의 Destination MAC address를 살피고, 자신의 Forwarding Table에서 해당 MAC Address를
가진 시스템의 정보를 찾아 연결된 포트로만 Frame을 전달
NIC (Network Interface Card)의 Mode
- Bypass mode
> 일반적인 NIC의 기본 동작 모드
> Filtering 동작하는 모드 -> 목적지 주소가 자신 또는 Broadcast인 데이터만 받아들이는 모드
- Promiscuous mode
> Filtering 해제 모드 -> 목적지 주소와 상관없이 NIC에 도달한 모든 데이터를 받아들이는 모드
> Software를 이용하여 Promiscuous Mode를 활성화 함
> promiscuous 모드 제어 프로그램
ㄴ Windows : winpcap
ㄴ Linux : libpcap, ifconfig
> promiscuous 모드를 사용하려면 root 권한이 필요함
Sniffing 종류
- Passive Sniffing
> 공격자가 수동적으로 공격
> 공격자 시스템에 전달되는 전기적인 신호를 Sniffer를 이용하여 획득하는 공격
> HUB 환경과 같이 모든 노드에 동일한 전기적 신호가 복제되는 경우 수행되는 Sniffing 공격
ㄴ 단순히 Sniffer만 동작시켜 지나가는 Packet을 확인
- Active Sniffing
> 공격자가 능동적으로 공격
> 일반적인 상황에서는 전기적인 신호가 전달되지 않는 환경에서 추가 공격을 통해 데이터의 전달 흐름을 변경하여 공격자 시스템으로 전달되도록 유도하여 수행되는 Sniffing 공격
> SWITCH 환경에서 수행되는 Sniffing 공격
ㄴ 2계층(MAC) -> Switch Jamming(=MAC Flooding), ARP Spoofing(=ARP cache Poisoning)
ㄴ 3계층(IP) -> ICMP Redirect, DHCP Spoofing ...
> MITM 공격 형태가 될 수 있음
- 중간자 공격(MITM)
> 공격자가 통신 경로의 중간에 끼어드는 공격 형태
> 공격 목적 : Sniffing, Filtering, Injection, Dos, Spoofing ...
> 방식 : Transparent type, Proxy type
> Transparent MITM
ㄴ 통신 경로 사이에서 공격자가 노출되지 않고 MITM 공격을 수행하는 방식
ㄴ 데이터는 공격자를 경유하지만 데이터의 IP 주소는 변경되지 않음
> Proxy MITM
ㄴ 통신 경로 사이에서 공격자가 노출되면서 MITM 공격을 수행하는 방식
ㄴ IP 주소를 변조하여 통신의 흐름을 공격자로 변경되게 함
Spoofing
- 침입, 공격의 목적으로 데이터를 위/변조하는 모든 행위
- 속임을 이용한 공격을 총칭
- 변조하는 데이터 종류 : MAC 주소, IP 주소, Port 주소, 다양한 프로토콜의 필드 값 ...
- Spoofing 공격 종류 : ARP Spoofing, IP Spoofing, DNS Spoofing, DHCP Spoofing ...
ARP Spoofing (=ARP Cache Poisoning)
- Host의 ARP Cache의 IP에 해당하는 MAC 주소를 변조하여 데이터의 흐름을 공격자로 유도하는 공격
- 공격 형태
> 변조한 ARP를 이용하여 공격함
> ARP Spoofing : Host <-> Host 공격
> ARP Redirect : Host <-> Router 공격
- 공격 목적 : Sniffing -> 피해자의 데이터 획득 및 통신 경로 변경
- MAC 주소를 이용하여 흐름을 변경 -> Layer 2 Sniffing
- 특징 : ARP Cache의 재 변경을 막기 위해 공격을 수행하는 동안 변조된 ARP를 지속적으로 전송함 = ARP Storm 현상
- 공격에 이용되는 취약점
> ARP의 인증 부재 -> ARP의 메커니즘에 인증 기능이 없음
> ARP Cache Table은 최신 정보를 실시간 업데이트함
- 한계 : Local Network에서만 공격이 가능함 -> 공격자와 피해자가 같은 네트워크에 위치해야 함
- Tools : arpspoof, ettercap, Cain & Abel ...
- ARP Spoofing 공격 원리 (정상 통신)
> ARP Table의 MAC 주소를 이용해 데이터 전달
> 통신할 대상에게만 데이터 전달
- ARP Spoofing 공격 원리 (공격)
> Attacker -> 변조한 ARP Reply를 공격 대상에게 전송함
> Victim -> 공격자의 ARP Reply 때문에 통신 대상의 IP 주소에 매치되는 MAC 주소가 공격자로 변경됨
- Forwarding -> MITM 형태의 공격
> Sniffing한 데이터를 본래의 목적지로 재전송함
> 공격자는 정상 통신 경로의 중간에서 데이터를 획득함 -> 사용자는 정상통신 수행
> Forwarding을 수행하지 않으면 Dos 공격이 됨
- Software Forwarding
> Forwarding 동작을 수행할 수 있는 프로그램을 이용하여 재전송함
> 프로그램에 의한 Forwarding 동작이므로 오작동 할 확률이 높음
> #fragrouter -B1
- ARP Redirect 공격
> 외부로 전송되는 데이터 전체를 Sniffing 함
> Host와 Gateway 통신을 Sniffing 공격
- Sniffing 탐지
> 네트워크 트래픽 모니터링 -> ARP Storm 확인
> Decoy : 가짜 계정을 네트워크 상으로 흘려서 이를 사용하는 시스템을 탐지함
> 변조된 ARP 정보 확인
> 중요한 시스템들의 IP와 MAC Matching 리스트를 작성하고 변조여부를 확인
> 관리 네트워크에서 변경되는 시스템의 정보를 모니터링 하는 도구 (Arpwatch, Xarp)
IP Spoofing
- Source IP를 속여서 접속하는 공격
- 신뢰받는 IP로 변경하여 접근제어를 우회하는 공격 기법
- 목적
> Dos 공격에서 공격자를 은닉하기 위해 Source IP를 변조함
> 접근 제어 정책을 우회 하기위해 허용된 Source IP로 변조하여 통신함
- Local IP Spoofing
> 공격자가 내부 네트워크에서 IP Spoofing을 통해 통신하는 공격
> 주로 시스템의 접근 제어를 우회하기 위해 사용됨
- 공격 순서 및 원리
> 공격자 시스템에서 IP Spoofing할 IP가 설정된 인터페이스 준비
> 접근 우회할 서버의 데이터를 Sniffing
> 공격자 시스템에서 Source IP를 허가된 IP로 지정하여 서버에 접속
- Local IP Spoofing 보안 : 선행 공격 차단 -> Sniffing 공격 차단
- Local IP Spoofing 공격
> 1) 가상 IP 설정
ㄴ ifconfig eth0:1 <정상 Client IP> netmask <Subnet Mask>
ㄴ eth0:1 가상 IP는 충돌 발생하지 않음
> 2) ARP Spoofing
ㄴ Server에서 실제 클라이언트로 가는 패킷을 공격자에게 오도록 설정
ㄴ arpspoof -t <Server IP> <정상 Client IP>
> 3) ssh 접속 시 주소 Binding 해서 접속
ㄴ ssh -b <정상 Client IP> <Server IP>
> 4) 서버에서 접속된 세션 확인
ICMP Redirect
- Router에서 특정 목적지 네트워크 또는 호스트로 갈 수 있는 더 효율적인 경로를 알리는 메시지
- 동일한 네트워크에 여러 대의 Router가 연결되어 있을 때 잘못 설정된 Default Route를 알림
- ICMP Redirect 구조
> Type -> ICMP 메시지 종류
ㄴ 5 = Redirect 메시지
> Code -> 오류 메시지의 추가 정보
ㄴ 0 = Network Redirect
ㄴ 1 = Host Redirect
ㄴ 2 = 원본과 같은 TOS를 갖는 패킷만 Network Redirect
ㄴ 3 = 원본과 같은 TOS를 갖는 패킷만 Host Redirect
- ICMP Redirect Sniffing
> 공격자가 조작한 ICMP Redirect 메시지를 공격대상에게 전달
> 특정 목적지 전달되는 데이터의 흐름을 공격자로 유도하는 공격
> 데이터의 전달 경로를 조작하여 공격하는 Layer 3 Sniffing
- 장점 : Layer 2 Sniffing (ARP Cache Poisoning)으로 공격할 수 없을 때 시도할 수 있음
- 주의
> Software Forwarding만 설정해야 함
> Kernel Forwarding을 수행하면 공격자 시스템에서 다시 정상 GW를 Redirect 함
- 한계
> 외부로 전달되는 요청만 Sniffing 가능
ㄴ 응답이 전달될 때 Switch에서 MAC 주소를 이용하여 Forwarding 함
> 공격 대상에서 방화벽이 동작 중이면 ICMP를 차단하기 때문에 공격할 수 없음
Option value 의미 -1 hping3를 이용하여 만들 데이터 종류 -> ICMP -C <icmp type> 5 ICMP 메시지 종류 -> Redirect -K <icmp code> 1 redirection 할 종류 -> host --icmp-gw <new gw address> Attacker IP 변경할 GW 주소 -> Routing table에 등록될 새로운 GW --icmp-ipsrc <error ip source> Victim IP 에러 원본의 출발지 IP -> 피해자 시스템의 데이터라고 인식하게 함 --icmp-ipdst <error ip destination> Target Ip 에러 원본의 목적지 IP -> Routing Table에 등록될 경로가 변경될 목적지 -a <source ip> GW IP IP헤더의 출발지 IP -> 정상 GW가 전달하는 것이라 속임 옵션없음 <destination IP> Victim IP IP헤더의 목적지 IP -> Redirect를 전달받은 대상 - Linux
> Kernel에서 ICMP Redirect를 거부하도록 설정함
> /proc/sys/net/ipv4/conf/all/accept_redirects를 0으로 설정(비활성화) 함
> /proc/sys/net/ipv4/conf/default/accept_redirects를 0으로 설정(비활성화) 함
> /proc/sys/net/ipv3/conf/eth0/accept_redirects를 0으로 설정(비활성화) 함
TCP Session Hijacking
- 세션(Session) : 두 대의 시스템(호스트) 간의 통신(활성화 된 상태)를 의미
- 세션 하이재킹(Session Hijacking)
> Sniffing + Spoofing을 이용한 공격
> 이미 인증을 받아 세션의 생성 및 유지되어 있는 연결을 여러 기법을 이용하여 빼앗는 공격
> TCP Session Hijacking : Telnet, FTP ... / WEB Session Hijacking : HTTP
- 세션 하이재킹의 유형
> Passive Hijacking : 공격자의 시스템에서 세션 데이터 흐름을 모니터링하여 민감한 데이터 획득
> Active Hijacking : 두 호스트 중에 임의의 호스트를 대신하여 연결을 진행하는 것을 의미
- TCP Session Hijacking
> 정상적인 TCP 통신에서 연결의 신뢰성을 확보하기 위해 Sequence Number, IP Address, TCP Port를
사용하는 것을 악용한 공격
> IP Spoofing의 공격 개념과 유사하나 Telnet, FTP 등 TCP를 이용하는 세션의 갈취가 가능
- TCP Session Hijacking 시 발생하는 문제점
> ACK Storm
ㄴ 공격자가 세션 하이재킹을 시도하는 동안 클라이언트는 정상적인 패킷을 서버로 보내게 되나, 공격자에
의해서 공격 당한 서버는 정상적이지 않은 Sequence Number로 인식하여 ACK 패킷을 전송한다.
ㄴ 클라이언트 역시 서버가 보낸 정보가 자신의 정보와 다르다는 것을 확인하고 서버에게 ACK 패킷을 전송하게
되며, 이러한 과정이 무한히 반복되는 경우가 생기는데, 이를 ACK Strom이라 한다.
> 공격자 입장에서 ACK Storm 해결 방법
ㄴ ARP Spoofing을 이용하여 잘못된 패킷을 전달되지 않도록 공격을 실시하여 안전하게 공격을 수행
- TCP Session Hijacking 보안 대책
> 비공기화 상태 탐지
> ACK Storm 탐지
> 패킷의 유실 및 재전송 증가 탐지
> 지속적인 인증
> 암호화 방식 사용
- TCP Session Hijacking 공격 순서
> 1) nc로 client(windows xp)에서 server(centos)로 접근 후 간단히 통신
ㄴ server -> nc -l 9000
ㄴ client -> nc 172.16.10.20 9000
server -> nc -l 9000 client -> nc 172.16.10.20 9000 > 2) 공격 측(Kali)에서 MITM 수행 및 정보(패킷) 확인
ㄴ Sequence/Acknowledgment Number, Source/Destination IP Address, Source/Destination Port Address
정보 확인
> 3) 공격 측에서 Data Injection
ㄴ #hping3 -a [출발지주소] -s [출발지 포트] -p [목적지 포트] -M [Sequence Number] -L [Acknowledgement Number] -E [전송할 데이터가 들어있는 파일 경로] -d [전송할 데이터의 크기] -PA -c [패킷 카운트]
[목적지 주소]
ㄴInjection할 데이터 파일 구성 : #echo "Hijacking" > data
ㄴ ex) #hping3 -a 172.16.10.10 -s 1101 -p 9000 -M 2322732583 -L 7427311 -E data -d 10 -P -A -c 1 172.16.10.20
> 4) 클라이언트 및 서버 확인
ㄴ 서버 측 정보 확인 -> 클라이언트로 위장해서 전송한 데이터가 처리되어 출력 되었음을 확인
ㄴ 클라이언트 측 정보 확인 -> ACK Storm 발생
DNS Attack
- 특정 Domain 주소로 전달되는 요청을 공격자가 원하는 목적지로 전달되게 함
- 주로 파밍 공격을 수행하기 위해 공격자가 준비한 서버로 유인하기 위한 목적으로 사용
- DNS 취약점
> 질의에 대한 응답을 Cache에 저장한 후 Cache 저장된 정보를 재 사용함
ㄴ Cache가 한번 감염되면 지속적으로 공격이 수행됨
> UDP를 이용하여 일반적인 질의를 수행함 -> 비 신뢰성, 비 연결성
> DNS 자체에 인증 메커니즘이 없음
ㄴ Transaction ID, Client Port의 일치 여부만 확인함
- DNS Attack 분류
> DNS Spoofing -> DNS Client의 Cache를 공격 -> 한번의 공격으로 하나의 Client만 공격함
> DNS Cache Poisoning -> DNS Server의 Cache를 공격 -> 한번의 공격으로 다수의 Client를 공격함
- DNS Spoofing (Client)
> Client의 DNS Cache에 특정 도메인 주소에 해당하는 IP를 공격자가 원하는 IP로 변조하는 공격
> 한번만 DNS Cache를 감염시키면 DNS Cache Table이 만료되기 전까지 지속적인 공격이 가능함
- DNS Client의 Domain 해석 순서 : Domain 해석 요구 -> Hosts 파일 확인 -> DNS Cache 확인 -> 질의
- DNS Spoofing (Client) 공격 조건
> DNS 자체의 인증 매커니즘은 없지만 요청과 응답을 연결하기 위한 Transaction ID를 정확히 알아야함
> UDP 자체의 인증 매커니즘은 없지만 요청과 응답을 연결하기 위한 Source Port를 정확히 알아야함
> DNS 질의에 대한 응답이 여러 개가 전달되는 경우 먼저 도착한 응답만 수용함
- DNS Spoofing (Client) 공격 순서
> 공격 대상이 정상 DNS Server로 전달하는 DNS Query를 Sniffing 함
ㄴ XID(Transactioin ID), Source Port 획득
> 변조된 DNS 응답을 전달할 Tool 동작 -> dnsspoof
ㄴ hosts 파일 형식으로 변조된 정보를 전달할 파일을 생성
ㄴ 지정된 Domain 요청을 감지하면 지정된 IP로 DNS 응답을 피해자에게 전송함
- DNS Spoofing 한계
> 클라이언트가 생성한 XID를 Source Port를 획득하기 위해 Sniffing 공격이 선행되어야 함
> 한 공격 당 하나의 대상만 공격할 수 있음
- DNS Spoofing 보안
> DNS Query를 Sniffing 할 수 없도록 사전 차단
ㄴ 지속적인 Sniffing 탐지 및 관리
ㄴ Gateway MAC 주소를 고정으로 등록
> DNS 운영 시 TTL을 짧게 운영 함
> 중요한 서버는 hosts 파일에 등록하여 DNS Server로 Query를 보내지 않도록 설정
> DNSSEC 적용
ㄴ 공개키 암호화 방식의 전자 서명을 사용하여 위/변조 검사 수행
DHCP Attack
- 공격자가 DHCP 클라이언트 또는 서버로 위장하여 변조된 DHCP 메시지를 이용하여 수행하는 공격
- 정상 DHCP 서버를 마비(Dos) 시키거나 클라이언트에게 변조된 네트워크 정보를 전달하여 데이터의 전달 흐름을
공격자로 유도(Sniffing) 함
- DHCP 취약점
> UDP를 이용함 -> 비 신뢰성, 비 연결성
> DHCP 자체의 인증 메커니즘이 없음
ㄴ 누구나 원할 때 클라이언트, 서버 역할을 할 수 있음 -> 진위성을 확인할 수 없음
ㄴClient -> 요청으로 전달한 XID, Port의 일치 여부만 확인
ㄴ Server -> MAC 주소로 Client 구분만 함
- DHCP Attack 분류
> DHCP Starvation -> DHCP Server의 Pool을 모두 소모시키는 공격 -> Dos Attack
> DHCP Spoofing -> DHCP Client에게 조작된 네트워크 정보를 전달하는 공격
- DHCP Starvation (Server)
> 클라이언트 MAC을 Random하게 Spoofing하여 서버의 Pool을 고갈시켜 정상 클라이언트가 IP를 할당 받지
못하게 하는 Dos 공격
- DHCP Starvation Tool
> #dhcpx -i <인터페이스 이름> [Options]
ㄴ 위조된 클라이언트 MAC으로 DORA 과정을 진행하는 도구
-i DORA 과정을 진행할 인터페이스 지정(공격용 인터페이스) -D 공격 대상 지정 -v[v[v]] 자세한 동작 과정 확인 -t Discover 전송 시간 조정 -u DORA 마지막 IP출동을 확인하는 ARP 전송 시간 조정 - DHCP Starvation 공격 순서
> dhcpx로 MAC주소가 위조된 Discover 전송
> 서버는 새로운 클라이언트의 요청이라고 인식하고 새로운 IP를 Offer로 제안함
> dhcpx가 Request를 전송
> 서버가 Ack를 전송함
> 위 과정을 반복하여 Pool의 모든 IP를 고갈 시킴
- DHCP Spoofing
> 공격자가 DHCP 서버를 이용하여 조작된 네트워크 정보를 전달하는 공격
> 위조된 Gateway로 통신하기 때문에 공격자에게 감염된 모든 Client의 요청과 응답을 Sniffing함
> 사전에 정상 DHCP 서버의 기능을 마비시켜야 공격의 성공률이 높아짐
- DHCP Spoofing 방식
> 동일한 Network 대역의 IP를 할당하는 방식(단방향 Sniffing)
ㄴ Client의 Gateway 정보를 감염시켜 모든 Client가 외부로 요청하는 데이터를 Sniffing함
ㄴ 외부에서 Client로 보내는 응답은 Sniffing 할 수 없음
> 새로운 Network 대역의 IP를 할당하는 방식(양방향 Sniffing)
ㄴ 공격자와 감염된 Client 끼리 새로운 Network 영역이 생성됨
ㄴ 공격자 시스템을 실제 Gateway처럼 동작
- DHCP Spoofing Tools
> #ettercap -i <인터페이스명> -T -M dhcp:<동일 서브넷 IP Scope>/<Subnet mask>/<DNS Server 주소>
ㄴ 요청만 Sniffing 할 수 있음 -> 단 방향 Sniffing
> etthercap -i <NEW 인터페이스명> -T -M dhcp:<NEW 서브넷 IP Scope>/<Subnet mask>/<DNS Server 주소>
ㄴ 요청/응답을 Sniffing 할 수 있음 -> 양 방향 Sniffing
ㄴ 공격 후 etthercap은 종료해야 Sniffing이 수행됨
ㄴ 새로운 인터페이스 추가, Routing, NAT를 설정해야 함
- DHCP Snooping
> L3 이상의 Switch에서 지원하는 DHCP Attack 보안 기능
> Server가 전달하는 Offer, Ack, Nak 등의 메시를 허용할 port를 지정함
> 허용되지 않은 port에서 전달되는 Server 메시지를 차단함
서비스 거부 공격(Dos) 분석 및 대응
DoS (Denial of Service)
- 서비스 거부 공격
- CIA Triad에서 가용성을 침해하는 공격 행위
- 시스템 또는 네트워크의 구조적인 취약점을 이용하여 공격 대상이 정상적인 서비스를 수행하지 못하도록 마비 시키는
공격
- 기본적으로 공격의 형태가 1 vs 1 -> 공격자(1) vs 공격대상(1)
- 공격 방식
> 물리적인 파괴
> 시스템 리소스 공격 -> CPU, Memory, DIsk, 특정 Application ...
> 네트워크 대역폭 공격 -> 대역폭 고갈
Ping of Death (죽음의 핑)
- 시스템 리소스 공격 -> 운영체제의 오작동 유발, 메모리 부하, CPU 부하
- 초기에 사용된 ICMP를 이용하는 DoS 공격
- 공격 원리
> MTU를 초과하는 비정상으로 큰 "ICMP Echo Request"를 전달하여 재조합 과정에서 시스템 충돌 또는
Buffer Overflow를 유발함
> 현재는 단편화 된 많은 양의 Echo Request를 전달하여 재조합 과정에 부하를 유발시키는 형식으로
공격함 -> ICMP Flooding
- 공격 : #hping3 --icmp --rand-source <공격대상IP> -d 65000 --flood
- 보안
> ICMP 패킷 필터링
> 일정 시간 내 일정 개수 이상의 ICMP Packet이 들어올 경우 해당 출발지의 ICMP Message 차단
> 재조합 패킷의 전체 크기를 검사
> IP 패킷의 크기를 검사하여 65535 이상의 패킷을 필터링함
Land Attack
- 시스템 리소스 공격 -> 메모리 부하, CPU 부하
- 공격 원리
> 연결 요청 메시지의 Source를 공격대상의 주소로 변조하여 공격대상에 응답이 전달되게 함
> 다량의 공격 패킷을 전달하여 부하를 유발시킴
- 공격
> #hping3 -a <공격대상IP> <공격대상IP> --icmp --flood
> #hping3 -a <공격대상IP> <공격대상IP> -s 80 -k -p -S --flood
- 보안 : 패킷의 출발지와 목적지 주소가 같을 경우 필터링하여 차단함
Smurf Attack
- 시스템 리소스 공격 -> 메모리 부하, CPU 부하
- 취약한 네트워크의 호스트들을 이용하여 공격을 수행함
> 공격자(1) -> 경유지(N) -> 공격대상(1)
- DRDos 공격의 모태
- 공격 원리
> 공격 패킷의 출발지 주소를 공격대상으로 목적지 주소를 취약한 네트워크의 Direct Broadcast주소로 변조한
요청을 전달함
> 취약한 네트워크의 호스트들이 공격대상에 응답함
> 공격대상은 한꺼번에 전달되는 비정상 응답을 처리해야 하므로 부하가 발생함
- 공격 : #hping3 -a <공격대상IP> <Direct Broadcast 주소> --icmp --flood
- 특징
> 공격자가 직접 대상을 공격하는 것이 아니므로 공격자의 흔적을 숨기기 쉬움
> 인터넷의 존재하는 취약한 모든 네트워크가 공격자의 경유지가 될 수 있음
- 보안
> Router에서 Inbound되는 Direct Broadcast 차단
> Host에서 Direct Broadcast 패킷 수신 차단
> 목적지가 Broadcast IP로 전송된 ICMP 패킷에 대한 응답을 하지 않도록 설정
TCP SYN Flooding
- TCP가 데이터를 보내기 전에 연결을 먼저 맺어야 하는 연결지향성을 이용한 방법
- Attacker는 Victim에 Source IP Address를 Spoofing 하여 SYN 패킷을 특정 포트로 전송하여 해당 포트의 대기 큐를
가득 차게 하여 해당 포트에 들어오는 정상적인 연결요청을 큐가 빌 때까지 무시하도록함
- UDP Flooding이 주류를 이루기 이전에 많이 사용되던 방식
- 시스템 부하 -> 메모리 부하
- 공격원리
> 출발지 IP를 Random하게 변조하여 연결요청(SYN)을 전달함
> 공격 대상의 Backlog Queue가 가득 차서 정상 클라이언트의 연결 정보를 저장하지 못하게 됨
> #hping3 --rand-source <공격대상IP> -p 80 -S --flood
- 보안
> 시스템 최적화
> syncookie 기능 활성화
> 보안 솔루션을 통한 방어
- syncookie
> SYN Flooding을 발생했을 때 정상 사용자의 Connection을 보장하는 기술
> syncookie에게 전달 정보를 전달하고 서버는 SYN에 대한 정보를 Backlog Queue에서 삭제함
> #sysctl net.ipv4.tcp_syncookies=1
TCP Connect Flood
- TCP 3-way Handshake 과정을 과도하게 유발시켜 서비스에 과부하를 발생시키는 공격
- 공격 트래픽을 받는 서버는 정상적인 TCP 세션을 지속적으로 세션 연결을 하여 세션 처리 자원을 고갈시켜 정상적인
세션 연결을 더 이상 수행할 수 없게 되어 이 후 정상적으로 접근하는 사용자가 더 이상 서비스를 사용할 수 없게 됨
- 형태 : 연결 유지, 연결/해제 반복, 연결 이후 정상적인 통신처럼 트래픽을 발송
- 정상적인 TCP 연결을 다수의 Zonbie PC로 유지시켜 기존의 SYN Flooding 보안대책을 무력화함
- 공격 : #nping --tcp-connect -p 80 -rate=90000 -c 900000 -q <공격대상IP>
- 보안
> 1 IP 당 세션 수 제한
> TCP 세션 연결 이후 유휴 세션에 대한 타임아웃 설정
> TCP 세션 연결 이후 정상적인 트래픽이 이루어지는지 확인
UDP Flooding
- UDP의 비 연결성 및 미 신뢰성 때문에 발생
- 단순한 공격으로 높은 수위의 공격효과를 볼 수 있기 때문에 DDoS 공격의 주류를 이룬다고 할 수 있음
- 공격 유형
> 최대 수십 Gbps 범위의 공격을 직접 Victim에 전송하여 네트워크 인프라를 마비 시키는 유형
> Source Address, Source Port를 Spoofing 하여 과다한 트래픽을 Victim 들에 전송함으로써 Spoof되는 Victim 간의
네트워크를 마비시키는 유형
- 주로 echo와 chargen 서비스를 이용함
- 공격 : #hping3 -2 -a 192.168.50.100 192.168.50.50 -p 53 -d 1000 --flood
ICMP Flooding
- 활성화된 서비스나 포트가 필요하지 않다는 해당 프로토콜의 특징을 이용한 공격
- Smurf 공격 형태
> 공격자가 Source IP Address를 Victim으로 설정하고 특정 네트워크에 ICMP echo broadcasr 패킷을 전송하면 해당
네트워크의 모든 시스템들이 ICMP echo replay 패킷을 Victim 에게 전송하는 형태의 공격
분산 서비스 거부공격(DDoS) 분석 및 대응
DDoS (Disrtibution Denial of Service)
- 분산 서비스 거부 공격
- DoS 공격의 발전 형태
- 공격 시스템을 여러 대로 분산 배치하여 대량의 트래픽으로 공격대상의 서비스를 마비시키는 공격
> 악성코드 등을 이용하여 Zombie PC를 획득하여 C&C 서버를 통해 공격 명령을 내림
- 기본적으로 공격의 형태가 (1 -> N) vs 1
> (공격자(1) -> 좀비PC(N)) vs 공격대상(1)
- 공격 방식
> 물리적인 파괴
> 시스템 리소스 공격 -> CPU, Memory, Disk, 특정 Application ...
> 네트워크 대역폭 공격 -> 대역폭 고갈
- DDoS - Botnet 형태의 구성 요소
> Attacker (=Bot Header)
ㄴ DDoS 공격을 수행하는 실제 공격자
> Master (= C&C(Command & Control) Server)
ㄴ Bot Header의 명령을 연결된 Agent에게 전달하는 시스템 또는 프로그램
ㄴ Handler 프로그램
> Agent(= Zombie PC)
ㄴ Bot Header가 유포한 Bot(악성코드)에 감염된 시스템
ㄴ Master에게 명령을 전달 받거나 Bot Header가 지정한 시점에 직접적인 공격을 수행함
ㄴ Daemon 프로그램
- 네트워크 대역폭 소모
> 다수의 Zombie PC를 이용하여 대량의 패킷의 전송하여 네트워크 대역폭의 처리 한계를 초과
> 종류 : 통신량의 한계 초과 -> UDP Flooding, ICMP Flooding
- 시스템 자원 고갈
> 시스템에서 서비스를 지원하는 리소스를 소모시켜 정상 서비스의 문제를 유발 시킴
> 종류 : SYN Flooding, TCP Connection Flooding
- 어플리케이션 취약점 공격
> 특정 서버 프로그램에서 나타나는 취약점을 이용하여 정상 서비스를 방해함
- 공격자의 Business Model 변화
> 금전적 이득을 노림
> 보안이 향상된 시스템을 기술적으로 어렵게 해킹할 필요가 없음
- 네트워크 인프라의 발달
> 최근에 급격한 네트워크 서비스의 발전으로 Gbps/Tbps에 달하는 공격이 가능해짐
> Zombie PC를 많이 보유할 수록 강한 공격이 가능해짐
- 사용자의 부주의한 PC 관리
> 개인 PC의 등장과 비 전문가에 의한 관리
> 개인 사용자의 부주의한 PC관리로 인해 Bot에 감염된 Zombie PC의 확산이 증가됨
분산 반사 서비스 거부공격(DRDoS) 분석 및 대응
DRDoS (Distribution Reflective Denial of Service)
- 분산 반사 서비스 거부 공격
- DoS의 Smurf 공격이 DDoS 방식으로 발전한 공격
- 특징
> Zombie PC를 보유할 필요가 없음 -> 반사체(Server List)를 이용함
> 공격자 은닉 강화
- 공격 원리
> 공격자가 반사체 List에 등록된 시스템에 출발지 IP를 공격대상의 IP로 Spoofing한 요청을 전송함
> 반사체 시스템은 받은 요청을 정상적인 요청으로 인식하고 응답을 공격대상으로 전달함
> 다량의 응답을 받은 공격 대상은 응답을 처리하기 위한 리소스를 소비하여 정상 서비스에 부하를 줌
- DDoS 공격 대응
> 충분한 Bandwidth 확보
> 공격 트래픽 모니터링
> 공격 대응 전문기관의 연계
> DDoS 솔루션 장비 도입 고려
> 대응 프로세스를 준비
댓글