네트워크교육 46일차 (2022.03.07)

정상훈·2022년 3월 7일
0

DOS(Denial of Service) - 서비스 거부 공격

- 공격 대상이 수용할 수 있는 능력 이상의 정보를 제공하거나, 
사용자 또는 네트워크 용량을 초과시켜 정상적으로 작동하지 못하게 하는 공격

DoS 공격의 특징

파괴 공격 : 디스크, 데이터, 시스템 파괴

시스템 자원 고갈 공격 : CPU 메모리 디스크의 과다한 사용으로 인한 부하 가중

네트워크 자원 고갈 공격 : 쓰레기 데이터로 네트워크 대역폭의 고갈

DoS 공격의 유형

1. PPS를 대상으로 하는 공격
PPS(Packet Per Second) : 많은 개수의 패킷을 전송하는 공격

2. 대역폭을 대상으로 하는 공격
대역폭(BandWidth) : 네트워크의 허용치보다 많은 데이터를 전송하는 공격

3. 응용계층을 대상으로 하는 공격
응용계층(OSI 7계층)의 프로토콜의 취약점을 대상으로 하는 공격

Ping of Death 공격

1. Ping을 이용하여 ICMP 패킷의 크기를 정상보다 아주 크게 만듦.

2. 크게 만들어진 패킷은 네트워크를 통해 라우팅 되어 공격 네트워크에 도달하는 동안 아주 작은 조각으로 쪼개짐.

3. 공격 대상은 조각화된 패킷을 모두 처리해야 하므로 정상적인 Ping보다 부하가 훨씬 많이 걸림

패킷을 왜 작게 분할하여 전달하나 ?

- 라우팅은 패킷을 전달할 때 특성이 똑같은 네트워크를 지나지 않음.

- 네트워크마다 최대로 전송이 가능한 패킷의 길이가 달라 
  최대 전송 가능한 패킷의 길이가 작은 네트워크를 지나면 데이터는 더 작게 분할됨.
  
- 한번 분할된 패킷은 다시 커지지 않음.

- 패킷을 늘리려면 패킷을 저장한 후 다음번에 들어온 패킷 데이터를 재조합 해야 하는데 
  라우터 성능에 치명적일 정도로 높은 부하를 야기함.

Ping of Death 실습

Kali, XP 진행
네트워크 Host-Only로 변경 후 진행

1. hping3 설치

(sudo)apt-get install hping3

2. Ping of Death 공격 수행

hping3 --icmp --rand-source 192.168.0.1 -d 65000\

3. 보안 대책

반복적으로 들어오는 일정 수 이상의 ICMP 패킷을 무시하도록 설정
가장 일반적으로 할 수 있는 대책은 패치

SYN Flooding (플러딩) 공격

서버별로 한정되어 있는 접속 가능 공간에 
존재하지 않는 클라이언트가 접속 한 것 처럼 속여 
다른 사용자가 서비스를 제공받지 못하게 하는 것

SYN Flooding 공격이란 ?

1. 공격자는 많은 숫자의 SYN 패킷을 서버에 보냄
2. 서버는 받은 SYN패킷에 대한 SYN/ACK 패킷을 각 클라이언트로 보냄
3. 서버는 자신이 보낸 SYN/ACK 패킷에 대한 ACK 패킷을 받지 못함.
4. 서버는 세션의 연결을 기다리게 되고 공격은 성공함.
웹서비스 Flooding 공격 
NAT환경에서는 flood 옵션 쓰지 말것! (추적당함)

hping3 192.168.100.129(centos) --rand-source -p 80 -S 

SYN flooding 보안 대책

1. 시스템 패치 설치 

2. 침입 탐지 시스템(IDS)이나 침입 차단 시스템(IPS) 설치

3. 짧은 시간 안에 똑같은 형태의 패킷을 보내는 형태의 공격을 인지했을 경우,
   그에 해당하는 IP주소 대역의 접속을 금지하거나
   방화벽 또는 라우터에서 해당 접속을 금지 시킴
   
4. 서버에서 클라이언트로 보내는 SYN+ACK 패킷에 암호화 기술을 이용해서 
   인증 정보가 담긴 시퀀스 넘버를 생성하여 클라이언트에 보내는 Syn_Cookie 이용
   
- 클라이언트로부터 SYN 패킷을 받으면,
     간단한 인증 정보가 담긴 Syn_Cookie를 시퀀스 값에 넣고 세션을 닫음.
   
- 클라이언트가 Syn_Cookie 가 포함된 값으로 ACK를 보내면 서버는 세션을 다시 열고 통신을 시작

Boink, Bonk, Teardrop 공격

1. Bonk : 처음 패킷을 1번으로 보낸 후 두 번째와 세 번째 패킷의 시퀀스 넘버를 모두 1번으로 조작하여 보냄

2. Boink : 처음 패킷을 1번으로 보낸 후, 두번째 패킷은 101번, 세 번째 패킷은 201번으로 정상적으로 보내다가 중간에서 일정한 시퀀스 넘버로 보냄

3. Teardrop : 공격 대상 컴퓨터에 헤더가 조작된 일련의 IP 패킷 조각을 전송함으로써 컴퓨터의 OS를 다운 시키는 공격. 패킷 재조합시 부하를 발생시키는 공격.

Land

hping3 -a 192.168.100.129 --icmp 192.168.100.129

- 시스템을 나쁜 상태에 빠지게 하는 것
- 패킷을 전송할 때 출발지 IP주소와 목적지 IP주소의 값을 똑같이 만들어서 공격 대상에게 보냄
(조작된 IP주소 값은 공격 대상의 IP주소여야 함)
- Land 공격법은 동시 사용자 수를 점유하여 CPU 부하까지 올림.

Smurf 공격

웜이 네트워크를 공격할 때 많이사용하는 것으로 ICMP 패킷 이용

라우터는 기본적으로 브로트캐스트를 지원하지 않아 
다른 네트워크에 브로드캐스트를 할 때는 다이렉트 브로드 캐스트를 하게 됨.

목적지 IP 주소 값을 255.255.255.255로 설정하여 패킷을 보내면 
라우터가 외부 네트워크로 나가는 것을 차단하여 내부 네트워크인 LAN 안에서만 동작

7계층 DOS 공격

최근의 Dos 공격은 웹 어플리케이션 등을 대상으로 공격 방향을 전환

주요공격
3,4계층 : 대역폭 고갈 공격, 세션 고갈 공격
7계층 : 서버의 자원 고갈 공격

주요 프로토콜 : 
3,4 계층 : TCP, UDP, ICMP
7계층 : HTTP, SMTP, FTP, VolP 등.

특징 : 
3,4계층 : 단순한 Flooding 형태의 트래픽을 대량으로 발생시켜 공격
Spoofed IP로 비정상적인 트래픽을 이용한 공격의 비율이 높음
보안 장비를 통해 방어 가능

7계층 : 정상 트래픽을 이용한 공격
소량의 트래픽을 이용한 공격
특정 어플리케이션의 취약점을 이용한 공격

웹 어플리케이션에 대한 DoS 공격 유형

1. HTTP GET Flooding 공격

- 공격 대상 시스템에 TCP 쓰리웨이 핸드 셰이킹 과정을 통해 정상적으로 접속한 뒤,
  HTTP의 GET METHOD를 통해 특정 페이지를 무한대로 실행하는 방식

2. HTTP CC 공격

- DoS 공격 기법에 Cache-Control: no-store, must-revalidate 옵션을 사용하면,
  웹 서버는 캐시를 사용하지 않고 응답을 해야 하므로 웹 서비스의 부하가 증가

3. 동적 HTTP Request Flooding 공격

- 요청 페이지를 변경하여 웹 페이지를 지속적으로 요청하는 기법

4. Slow HTTP Header DoS(Sloworis) 공격

- 서버로 전달할 HTTP 메시지의 Header 정보를 비 정상적으로 조작하여 
  웹 서버가 헤더 정보를 완전히 수신할 때 까지 연결을 유지하도록 하여 시스템 자원을 소비시켜 
  다른 클라이언트의 정상적인 서비스를 방해하는 공격
  
- 불안전한 메시지를 수신한 웹 서버는 클라이언트의 요청이 끝나지않은 것으로 인식하여 웹 로그를 기록하지 않음.


DDoS (Distributed Denial of Service)

- DoS 공격이 발전된 것

- 피해 양상이 상당히 심각하지만 확실한 대책이 없음.

- 공격자의 위치와 구체적인 발원지를 파악하는 일이 무척 어려워 여전히 대응이 어려운 공격 중의 하나

- 특성상 대부분의 DDOS 공격은 자동화된 툴을 이용

기본 구성

공격자 : 공격을 주도하는 해커의 컴퓨터

마스터 : 공격자에게 직접 명령을 받는 시스템, 여러 대의 에이전트 관리

핸들러 프로그램 : 마스터 시스템 역할을 수행하는 프로그램

에이전트 : 공격 대상에 직접 공격을 가하는 시스템

데몬 프로그램 : 에이전트 시스템 역할을 수행하는 프로그램

공격 순서

1. 많은 사람이 사용하며 대역폭이 넓고 관리자가 모든 시스템을 세세하게 관리 할 수 없는 곳의 계정을 획득한 후,
   스니핑이나 버퍼 오버플로우 등의 공격으로 설치 권한이나루트 권한을 획득
   
2. 잠재적인 공격 대상을 파악하기 위해 네트워크 블록별로 스캐닝을 실시한 후,
   원격지에서 버퍼 오버플로우를 일으킬 수 있는 취약한 서비스를 제공하는 서버를 파악

3. 취약한 시스템 목록을 확인한 후 실제 공격을 위한 Exploit 을 작성

4. 권한을 획득한 시스템에 침투하여 Exploit을 컴파일 하여 설치

5. 설치한 Exploit으로 공격 시작

DOS DDOS DRDOS 차이점

DoS (Denial of Service) : 
공격자 단독으로 실행하는 공격 방법

DDoS (Distributed DoS) : 
공격자가 다수의 시스템을 장악하여 일시에 공격하는 방법 

DRDOS (Distributed Reflection Denial of Service) : 
공격자가 다수의 시스템을 장악하여 공격을 반사 및 증폭을 시킬 수 있는 대상으로 전달하고, 그 응답이 희생자에게 전달되는 방식 
profile
"@____

0개의 댓글