
안녕하세요, 성조입니다.
오늘은 DoS와 DDoS, DRDoS에 대해 학습한 내용을 간략하게 정리했습니다.
1. DoS(Denial of Service) 이란?
DoS(서비스 거부(Denial 부정) 공격)는 특정 시스템, 서버, 네트워크 자원에 지속적이고 의도적인 요청을 보내 정상적인 사용자들이 서비스를 이용하지 못하도록 만드는 공격이다.
DDoS 대비 공격자가의 규모가 작은 DoS 공격은 과도한 트래픽이나 비정상 요청을 발생시켜, 다운시키려는 시스템의 자원을 빠르게 고갈시켜서(TCP 통신 소진을 통한 네트워크 연결 패킷 제거 등) 시스템이 다운되거나 응답 불가 상태로 빠지게 만드는 것을 목표로 한다는 게 주요 포인트이다.
DoS 공격의 주요 특징
1) 공격 주체
- DDoS와 다르게 DoS는 단일 공격을 진행한다.
2) 목표
- 시스템의 자원(CPU, 메모리, 네트워크 대역폭의 패킷 등)을 과부하시켜 일반 유저가 서비스에 접근하지 못하도록 만드는 것을 목표로 함.다만 요즘 같이 프로덕트가 고도화되고 있는 시장에서는 대용량 트래픽을 처리하면서 이상 증상이 있는 트래픽을 감지해서 차단 또는 제한하는 방식이 잘 구현되어 있는 편이다.
최신 업데이트되는 CVE, CCE, CWE를 잘 파악해서 보안 취약점들을 사전에 커버해 놓는 것이 좋다.
3) 형태
- 접근 형태는 트래픽 폭주, 요청 지연(네트워크 통신 망), 연결 고갈(TCP) 등이 있다
4) 위험도
- DoS는 DDoS 대비 위험도가 낮긴 하지만 현재까지도 유효하게 잘 사용되고 있는 공격 기법으로 보안 설계가 조금 미흡한 서비스일 수록 매우 치명적으로 다가올 수 있다.
DoS 공격의 종류
1. SYN Flooding
- TCP 프로토콜의 구조적인 문제를 이용한 공격 방식이다. (TCP 프로토콜은 통신이 끝날 때까지 연결되는 특성이 있기 때문이다.)
- 서버의 동시 가용 사용자 수를 SYN 패킷만 보내 컴퓨팅 자원을 점유하여 다른 사용자가 서비스를 사용하지 못하도록 만드는 공격 기법이다.
- 공격자는 TCP 3-way 핸드셰이크를 진행하며, ACK(통신에 대한 응답)를 발송하지 않고 SYN 패킷만 지속적으로 받아서 자원을 고갈시키는 것이다.
2. UDP Flooding
- 대량의 UDP(TCP 통신과 UDP 통신을 묶어서 학습하면 많은 도움이 된다.) 패킷을 만들어 서버로 임의의 포트 번호로 전송하여 응답 메시지 (ICMP Destination Unreachable)를 생성하게 만들어 지속적으로 자원 고갈시키는 공격 방법이다.
- ICMP 패킷은 변조되어 공격자에게 응답으로 전달되지 않기 때문에 쌓이면서 과부하를 유발한다.
3. ICMP Flooding
- Ping 요청을 과도하게 전송하여 네트워크 대역폭과 CPU 자원을 고갈 유도하는 공격 기법이다.
4. 스머프(Smurf) / 스머핑 (Smurfing)
- 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시키는 공격 방법이다.
(본인 컴퓨터가 본인을 공격하는 것처럼 속이는 것에 가까우며, 브로드 캐스팅은 이전 캐스트 방법 정리를 참조하면 좋다.)
- 바운스(Bounce) 사이트라 불리는 제3의 사이트 격으로 공격하는 방법이다.
5. 죽음의 핑 PoD(Ping of Death) (정말 자주 보이는 이론으로 판단된다.)
- ICMP 패킷(Ping)을 10 정도로 크기를 지정해서 보내는 것이 일반 적이라면 정상적인 크기보다 아주 크게 허수 데이터를 추가로 만들어서 전송하고 단편화된 패킷을 재조합하여 처리하는 과정에서 컴퓨팅 자원을 고갈시켜 공격하는 방법이다.
이렇게 메모리 버퍼를 공격하는 경우 오버 플로우가 발생될 가능성이 커지게 되기 때문에 매우 위협적으로 공격이 들어오게 된다.
6. 랜드 어택(Land Attack)
- 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어서 무한 루프 형식으로 자기 자신에게 응답을 무한히 돌리며 시스템 가용성을 침해하는 기법의 공격 방법이다. 이전 스머프 스머핑은 브로드캐스팅의 개념으로 같은 네트워크를 점유하는 차이가 있다면 해당 랜드 어택 방법은 공격 대상인 수신자가 직접 자기 자신에게 응답을 보내게 하여 시스템을 공격하는 차이이다.
7. 티어 드롭(Tear Drop)
- IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보를 끼워 넣어 수신시스템에서 문제가 발생되도록 만드는 도스 공격 방법이다.
- 공격자는 UP Fragment Offset 값을 서로 중첩되도록 조작하여 전송하고, 이를 수신한 시스템이 재조합하는 과정에서 홈이 맞지 않는 블록처럼 기능에 오류를 발생시켜 마비시키는 공격 방법이다.
8. 봉크(Bonk)
- 예전 윈도우 95/98 시절, 비정상적인 ICMP 패킷을 이용해 시스템을 다운시키던 비공식적인 도스 공격 방법이다.
- 공격을 위해 패킷을 분할하여 보낼 때 1번 패킷으로 전달 후 2번 패킷을 전달해야 한다면 동일한 1번 패킷으로 계속 보내면서 문제를 발생시키는 방법이다.
9. 보잉크 (Boink)
- 봉크의 변형 공격 기법으로, 여러 포트에 동시에 ICMP 패킷을 보내 시스템을 더 강하게 마비시키는 공격 방법이다.
- 보잉처럼 패킷 공격을 에러로 발생시키는데 중간에 있는 패킷 시퀀스 번호를 비정상적으로 변경하여 컴퓨팅 파워가 해당 트래픽을 검사하게 만들면서 부하를 일으키게 하는 것이 보잉크 기법이다.
2. DDoS(Distributed DoS) 이란?
DDoS(분산 서비스 거부 공격(Distributed 분산))는 다수의 감염된 컴퓨터(좀비 PC) 들을 이용해 동시에 한 대의 서버 또는 네트워크를 공격하여 정상적인 유저들이 정상적인 서비스 이용을 방해하는 공격이다. (대규모 트래픽 공격으로 컴퓨터 한, 두대가 아닌 여러 대를 활용하여 공격하게 된다.)
DDoS는 DoS 대비 매우 많이 분산되어 있는 컴퓨터 자원을 활용하여 상대 서비스를 공격하는 것이기 때문에 파급력이 매우 크다는 것이 차별점이다. 해커의 컴퓨팅 파워를 사용하는 것이 아닌 공격을 위해 미리 다른 컴퓨터에 심어둔 좀비(Bot)를 활용해서 공격하는 것이므로 추적하는 것도 어렵다.
DDoS 공격의 주요 특징
1) 공격 주체
- 수많은 좀비 컴퓨터를 조종하는 공격자(해커)
2) 구조
C&C(Command & Control) 서버를 통해 다수의 공격 노드를 제어하는 것이다. ( 한 명의 장군과 그의 명령을 따르는 다수의 병사들이라 생각하자)
3) 공격 유형
- DoS로 발생되던 것과 다르게 배수가 되는 트래픽을 통해 다중 요청 유발, 자원 고갈 유도 등을 진행하는 유형이다.
4) 위험도
- 해당 공격 기법은 아무리 대용량 트래픽을 잘 구현해 놨고, 보안 체계가 잡혀 있는 곳이라도 위험한 공격 기법이다.
DDoS 공격 구성 요소
- 핸들러(Handler) -> 마스터 시스템에서 에이전트로 내려줄 때 손가락 같은 느낌으로 핸들링을 하는 프로그램이다.
- 에이전트(Agent) -> 공격 대상에 직접 공격을 가하는 시스템으로 해커에게 감염된 좀비 컴퓨터가 에이전트에 속하게 된다.
- 마스터(Master) -> 공격자에게서 명령을 받는 미들웨어 느낌의 시스템이며, 여러 대의 에이전트를 관리하는 역할을 한다.
- 공격자(Attacker) -> DDoS를 총괄 컨트롤하는 컨트롤 타워 개념으로 공격을 주도하는 해커의 컴퓨터 또는 컴퓨팅 자원이다.
- 데몬 프로그램(Daemon) -> 에이전트 즉, 좀비 컴퓨터에서 서버에게 DoS를 시도하기 위해 수행하는 프로그램을 의미한다.
3. DRDoS(Distributed Reflection DoS) 이란?
- DRDoS는 Distributed Reflective Denial of Service의 약자로, 분산 반사형 서비스 거부 공격을 의미하는 것이다.
즉, 공격자는 출발지 IP를 공격대상 IP로 위조하여 다수의 반사 서버로 요청 정보를 전송, 공격 대상자는 반사 서보로부터 대량 응답을 받아서 서비스 거부를 발생시키는 공격 기법이다.
DRDoS의 핵심 개념
1) 반사 (Reflective)
공격자가 요청을 보낼 때 출발지 IP를 피해자의 IP로 위조(스푸핑-Spoofing)하여 Syn 응답이 피해자에게 전달되도록 유도한다.
2) 분산 (Distributed)
여러 개의 반사 서버를 이용해 공격 트래픽을 분산하도록 생성하는 개념이다.
3) 증폭(Amplicifation)
요청 대비 응답 크기가 훨씬 큰 프로토콜을 사용해 공격 효과를 극대화(증폭)하는 개념이다.
DRDoS를 대응하기 위해서는 ISP를 직접 차단하거나, 반사 서버에서 연결을 완료하지 않는 Syn 패킷들의 출처 IP를 조사하여 블랙 처리하고, 공격 서버를 사전에 차단하는 방법도 있다.(올바르게 추적됐다면.)
공격 대상이 되고 있는 공격대상 서버 IP Port(서비스)를 변경, 필터링하여 운영하는 것도 방법이다.
DRDoS라는 개념은 처음 봤을 때 DoS, DDoS와 다르게 뭐지? 했는데 이번 기회에 공부하면서 알게 된 개념이라 좋았습니다.
감사합니다.
다음 포스트에서 또 뵙겠습니다.
'Study' 카테고리의 다른 글
| [Study] PDCA란? (1) | 2026.03.12 |
|---|---|
| [Study] 정적, 동적 테스트 이론 가벼운 한 스푼 (0) | 2025.08.05 |
| [Supabase] getSession과 getUser의 차이점 정리 (0) | 2025.03.03 |
| [인프라] AWS, GCP, Azure 간단 비교 정리 (0) | 2024.11.24 |
| [Study] 고객 충성도를 높이는 CRM(Customer Relationship Management) 마케팅 전략 (0) | 2024.11.21 |