DoS
서버가 처리할 수 있는 능력을 넘어서게 요청을 보내 정상적으로 작동하지 못하게 한다.
Dos 종류
1. Destruction : Disks, Data System 파괴
2. System resource depletion : cpu, memory, 디스크 용량을 고갈
3. Network resource depletion : 가바지 데이터를 보내서 밴드 width를 꽉 채운다.
Ping of Death
ICMP 패킷을 정상보다 크게 보내서 마비시킨다.
큰 패킷은 라우터팅 되며 공격 네트워크에 도달하는 동안 작은 여러 개의 패킷으로 분할된다.
공격 대상은 많은 패킷을 처리해야 하므로 많은 부하가 된다.
패킷은 왜 작게 나누어져야할까?
1. 네트워크를 통과할 때 네트워크의 MTU가 다 다르다.
2. 라우터에서는 재조립을 하지 않으므로 그냥 보내기만 하는데 공격 대상의 시스템은 이를 재조립하려면 버퍼에 저장해 두어야 한다. 버퍼가 초과될 수도 있고 정상적인 데이터를 버퍼에 못 담으므로 문제가 된다.
패킷 분석
동일한 목적지에 비정상적으로 큰 패킷이 fragment 되어 전송된다면 의심해야 한다.
Reassembled 메시지가 많다.
방어 방법
일정 이상의 ICMP 패킷이 연속적으로 들어오면 무시한다.
운영 체제(OS)와 네트워크 장비의 보안 취약점을 해결하는 소프트웨어 업데이트한다.
SYN Flooding
DoS 공격의 일종이다.
동작원리
1. 공격자는 대량의 SYN 패킷을 보낸다. (3-way handshake의 첫 단계로, 연결을 하기 위한 설정)
2. 서버는 클라이언트에게 요청의 응답으로 SYN + ACK 패킷을 보낸다. (연결을 승인하려고 한다.) 리소스를 할당하고 SYN Received 상태로 돌입한다.
3. 공격자는 의도적으로 ACK패킷을 전송하지 않는다.
4. 서버는 공격자의 SYN 요청을 처리하느라, SYN Receiced 상태를 유지하며 리소스가 고갈된다.
패킷 분석
랜덤의 ip로부터 seq = 0인 패킷이 많은 것을 확인할 수 있다.
데이터는 비어있다.
판단
피해자의 컴퓨터에서 netstat명령을 통해 확인해 보면 SYN_RECEIVED 상태의 연결이 비정상적으로 많다면 SYN Flooding 공격이 발생 중일 가능성이 높다.
방어 방법
1. 랜덤으로 SYN이 대량으로 들어오는 경우를 막기 위해 IDS, IPS를 설치한다.
2. 짧은 시간에 동일한 유형의 패킷이 전송되는 경우 해당 ip를 막는다.
3. SYN Cookie기술을 활용하여 해결한다. (클라이언트로부터 SYN이 도착하면 SYN+ACK의 Cookie에 인증 정보를 포함해서 보낸다. 그런 후 세션을 종료하고, 클라이언트로부터 ACK에 해당 쿠키 값이 포함되어 있으면 연결을 인증하고 통신 시작한다.)
3. 서버의 대기 시간을 조정한다. (최대 대기 시간을 설정한다.)
Boink, Bonk, Teardrop
위 세 가지는 시퀀스 넘버를 조작하여, 패킷의 재조합, 재전송 과정을 방해하여 시스템의 과부하를 발생시킨다.
Bonk
seq가 1인 패킷을 보낸 후 2, 3번째 패킷도 seq가 1인 패킷을 보낸다.
Boink
seq가 1인 패킷을 보낸 후 101, 201 패킷을 보낸다. 패턴을 가진 시퀀스 넘버 패킷을 중간에 불일치하는 시퀀스가 생기도록 한다.
Teardrop
시퀀스 넘버를 무작위로 설정하여 전송한다.
시퀀스 넘버를 겹치지 않게 하거나, 비어있는 공간을 만들어 혼란을 일으킨다.
LAND Attack
소스 ip주소와 도착 ip주소를 동일하게 설정한 패킷을 전송하여 네트워크의 혼란을 일으키는 공격이다.
여기서 ip주소는 공격 타깃의 ip주소여야 한다.
동시 사용자 수를 증가시키므로 CPU이용률을 높인다.
패킷 분석
src ip와 dst ip가 동일한 패킷이 있다.
방어 방법
라우터나 방화벽에서 src, dst ip가 같으면 차단한다.
Smurf Attack
DDoS의 한 유형이다.
ICMP 패킷을 이용해서 공격을 한다.
공격자는 ICMP 도착 주소를 브로트캐스팅 (192.168.55.255)로 ICMP( ping) 요청을 보낸다.
그럼 192.168.55.3, 192.168.55.9 등과 같이 브로드캐스트의 주소의 호스트들이 ICMP 응답을 보내게 된다.
이때 ICMP의 src ip는 공격 대상의 ip로 설정해서 ICMP응답이 공격 타깃으로 향하게 한다.
네트워크의 모든 기기가 이 요청을 수신하고 공격 타깃으로 ICMP 응답을 보내어 마비시킨다.
즉 단일 브로드캐스팅 요청이 대규모 응답으로 증폭되는 특징을 가진다.
방어 방법
Direct Broadcast를 막는다.
7-layer DoS Attack
기존의 3, 4 계층에서의 DoS 공격과 7 계층에서의 DoS공격 차이
특징
- 정상적인 TCP/UDP 연결로 공격한다.
- 정상적인 이용과 공격을 구분하기 어려워 탐지하기 힘들다.
- 소규모 트래픽으로도 공격이 가능하다. (장기간에 걸쳐 공격 가능)
- 특정 서비스의 취약점을 이용해서 공격한다. (웹, 이메일 서비스 등의 프로토콜)
종류
- HTTP GET Flooding Attack
- 공격자가 HTTP GET 요청을 반복적으로 전송하여 특정 웹 페이지에 대해 지속적으로 정보를 요청하는 방법
- 정상적인 연결로 공격한다. (정상적인 사용자처럼 보인다.)
- HTTP CC Attack (Cache Control 기반)
- HTTP 요청 헤더의 Cache-Control 옵션에서 캐시를 비활성화한다.
- 이로 인해 서버는 데이터를 새로 처리해야 하며, 캐시를 사용하지 못한다.
- 서버는 모든 요청에 새로운 응답을 생성해야 하므로 부하가 증가된다.
- 가령 특히 캐시가 중요한 정적 콘텐츠(이미지, CSS)에 대해 서버 리소스를 소모하게 한다.
- Dynamic HTTP Request Flooding Attacks
- 특정 웹페이지가 아닌 요청 페이지를 계속 변경하여, 지속적으로 요청하는 기법이다.
- 특정적인 요청 패턴에 대해 방화벽이 막는 것을 우회하기 위해 사용한다.
- Slow HTTP Header DoS Attack
- HTTP 헤더 정보를 매우 느린 속도로 전송하여, 서버가 헤더 정보를 완전히 수신하기 전까지 리소스를 소비하게 한다.
- 서버는 리소스를 계속 할당해야 하므로 다른 클라이언트의 요청을 처리할 수 없다.
- Slow HTTP POST Attack
- 공격자는 HTTP POST 요청의 헤더에 Content-Length를 매우 큰 값으로 설정하고 (20000바이트)
- 매우 느린 속도로(1바이트씩) 전송한다.
- 서버는 POST요청이 끝날 때까지 데이터를 수신하기 위해 연결을 유지한다.
- Content-Length 헤더의 값이 비정상적으로 큰 요청을 필터링합니다.
- 일정 시간 동안 데이터가 수신되지 않을 경우 연결을 강제로 종료합니다.
- Mail Bomb
- 스팸 메일을 많이 보내 정상적이 메일을 확인 못하게 한다.
- 사용자마다 할당된 디스크가 있으므로 이를 초과하면 이용 못하는 것을 이용한다.
DDoS
DDoS란 분산 서비스 거부 공격
즉 DoS를 업그레이드한 것으로 공격자는 여러 대의 컴퓨터를 이용하여 공격한다.
특징
1. 공격자의 위치와 출처를 파악하기 어렵다.
2. 대미지가 크며 명확한 설루션이 없다.
기본 구성 요소
- Attacker (공격자)
- 공격을 수행하는 해커의 컴퓨터
- Master
- 공격자가 직접 제어하는 시스템
- 에이전트 시스템을 관리하고, 명령을 전달하는 역할을 한다.
- Handler program
- 마스터 시스템에 설치된 프로그램으로 에어전트를 제어한다.
- Agent
- 공격 대상에게 실제로 트래픽을 보내는 시스템
- 보통 공격자가 감염시킨 좀비 컴퓨터로 구성된다.
- Daemon program
- Agent 시스템 역할을 하는 프로그램
DDoS 공격의 절차
- 많은 사람이 사용하고 대역폭이 크며 모든 시스템의 관리자가 관리할 수 없는 사용자 계정을 획득한다.
- 공격자(도구)는 스니핑 또는 버퍼 오버플로와 같은 공격을 통해 설치 또는 루트 권한을 획득할 수 있다.
- 네트워크 스캐닝
- 공격자는 네트워크를 스캔(Scanning)하여 취약한 시스템과 공격 가능성을 확인합니다.
- 취약한 시스템 목록 작성
- 공격 대상이 될 취약한 시스템의 목록을 작성한다.
- 이 목록을 기반으로 익스플로잇(Exploit)을 설계하여 특정 공격을 실행할 준비를 합니다.
- 취약점을 악용 및 악성 코드 설치
- 공격자는 목록에 있는 시스템에 접근하여 시스템을 손상시키고 악성 코드를 설치한다.
- 설치된 프로그램(예: 데몬 프로그램)을 통해 공격을 지속적으로 실행할 수 있도록 설정한다.
- DDoS 공격 실행
DDoS 도구
- Trinoo
- UDP 기반의 공격이다.
- TFN
- ICMP Echo Request 패킷을 사용한다.
- TCP, UDP를 사용하지 않기 때문에 탐지하기 어렵다.
- 공격자와 마스터 간에 암호화되지 않은 평문으로 명령이 전달되므로 내용을 분석할 수 있는 취약점이 존재한다.
- TFN 2K
- TFN의 개선된 버전
- 암호화를 적용하여 방어를 더욱 어렵게 한다.
- 특정 포트를 사용하지 않고 UDP, TCP, ICMP 프로토콜을 결합해서 사용한다.
- 지정된 TCP 포트를 통해 백도어를 실행할 수 있다.
- Stacheldraht
- 공격자는 마스터 시스템에 명령을 내리되, 명령은 안호화 되어 전달된다.
- Master 하나가 최대 1,000개의 Daemon을 제어할 수 있어, 초대형 트래픽 공격을 생성.
- Master 시스템은 Agent를 자동으로 업데이트할 수 있는 기능을 제공한다.
DoS and DDoS 보안 방법
- 방화벽 설치 및 운영
- 외부와 내부의 경계에 설치한다.
- 방화벽 규칙 설정
- 사용하지 않은 포트들은 닫는다.
- 외부에서 들어온 패킷의 소스가 내부 주소라면 막는다.
- 인증 없는 접속 차단
- 허용된 서비스 외에 모두 차단
- 스캐닝
- 네트워크를 정기적으로 스캐닝하여 잠재적 위협 요소 제거
- 서비스 대역폭 할당 제한
- 대역폭 제한으로 인해 공격 트래픽이 충분하지 않는 경우 전달되지 못하도록 방해
- 시스템 패치 신속하게 적용
- IPS 설치 및 운영
'보안' 카테고리의 다른 글
[이메일 보안] S/MIME (0) | 2024.12.20 |
---|---|
[SSL, HTTPS] HTTP over SSL (4) | 2024.12.18 |
[Wireless Security] 무선 보안 (IEEE 802.11 Wireless LAN) (0) | 2024.12.16 |
Firewall (0) | 2024.12.13 |
[IDS] 침입 탐시 시스템 (0) | 2024.12.09 |