✅ DoS란? (Denial of Service, 서비스 거부 공격)
🔍 개념 설명
어떤 웹사이트나 서버가 정상적인 사용자에게 서비스를 제공하지 못하게 만드는 공격이다.
- 시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격이다.
- 특정 서버에게 수많은 접속 시도를 만들어 다른 이용자가 정상적으로 서비스 이용을 하지 못하게 하거나, 서버의 TCP 연결을 소진시키는 등의 공격이다.
- 쉽게 말하면~~~
일부러 시스템을 너무 바쁘게 만들어서 멈추게 하는 공격 이라고 보면 된다.
🚌 실생활 비유
👉 "버스를 점령한 장난꾸러기들"
정상적으로 회사원들이 타야 할 버스에, 장난꾸러기들이 미리 가서 자리를 다 차지하면
→ 진짜 필요한 사람들은 못 타고 기다리게 되지?
이게 바로 DoS 공격이야!
정상적인 이용자가 서비스를 사용하지 못하게 만드는 것!
공격기법 | 설명 | 비유 | 암기팁 |
SYN 플러딩 | TCP 연결을 반쯤만 하고 기다리게 함 | 예약만 하고 안 옴(노쇼) | 노쇼 공격 |
UDP 플러딩 | 없는 포트에 요청 남발 | 없는 번호로 전화 계속하기 | 없는 데 두드림 |
Smurf | 브로드캐스트로 핑 보내기 | 단톡방에 몰아보내기 | 귀여운 이름, 무서운 폭탄 |
Ping of Death | 너무 큰 핑으로 시스템 마비 | 햄버거 입에 넣기 | 큰 핑 = 독 |
Land Attack | 자기한테 자기 IP 보내 혼란 | 자기 이름으로 편지 계속 받기 | Land = 자기 IP |
Tear Drop | 조각난 패킷 재조립 오류 | 안 맞는 퍼즐 조각 | Tear(찢어진) = 조각 재조립 불가 |
Bonk | 깨진 UDP를 특정 포트로 보냄 | 부서진 택배 받고 쓰러짐 | “봉크!” 하고 쓰러짐 |
Boink | Bonk + 여러 포트로 동시 공격 | 여기저기 택배 동시 배달 혼란 | Boink = Bonk 확장판 |
✅ 1. SYN 플러딩 (SYN Flooding)
📌 개념
TCP 프로토콜의 구조적인 문제를 이용한 공격이다.
서버의 동시 가용 사용자 수를 SYN 패킷만 보내 점유하여 다른 사용자가 서버를 사용 불가능하게 만드는 공격.
공격자는 ACK를 발송하지 않고 계속 새로운 연결 요청을 하게 되어, 서버는 자원할당을 해지하지 않고 자원만 소비하여 고갈됨.
👩🏫 쉽게말해 -> TCP 3-way 핸드셰이크 중 마지막 ACK를 보내지 않아 서버가 계속 기다리게 만듦
🚌 비유: 식당에 예약만 하고 손님이 안 와서 자리는 차지하고, 다른 손님은 못 앉는 상황
🧠 암기 팁:
“예약만 하고 잠수타기” = SYN만 보내고 도망가기
+) TCP 3-way 핸드셰이크 개념
1. 클라이언트 → 서버 : SYN (접속 요청) :“나 너랑 연결하고 싶어!”라는 시작 신호
2. 서버 → 클라이언트 : SYN + ACK (요청 받았고, 나도 OK야!)
3. 클라이언트 → 서버 : ACK (좋아! 연결하자!) : “네 요청 잘 받았어!”라는 확인 응답 신호
[전화 연결 비유]
나: 📞 SYN → “여보세요? 거기 누구세요?”
상대: 📞 SYN+ACK → “네~ 여기 누구입니다. 들려요?”
나: 📞 ACK → “네~ 잘 들려요! 통화 시작해요~”
✅ 2. UDP 플러딩 (UDP Flooding)
📌 개념
- 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송하여 응답 메시지(ICMP Destination Unreachable)를 생성하게 하여 지속해서 자원을 고갈시키는 공격이다.
- ICMP 패킷은 변조되어 공격자에게 전달되지 않아 대기함.
👩🏫 쉽게말해 -> 무작위 포트로 엄청난 양의 UDP 패킷을 보내서, 서버가 계속 “이 포트 없어!” 라고 응답하게 만들어 CPU와 네트워크를 과부하시킴
🚌 비유: “없는 주소로 택배를 마구 보내는 장난”
- 누군가 우리집 주소로 수백 개의 택배를 보내는데, 전부 존재하지 않는 주소로부터 온 거임
- 택배 회사는 반송하려고 해도 보낼 곳이 없으니까 계속 우리집 앞에서 머물게 되고,
는 택배 정리만 하다가 지쳐버리는 상황이다.
💥 위험한 이유
- 서버는 계속 “이 포트 없어!” 하고 응답을 만들고 기다리느라 CPU, 메모리, 네트워크 자원을 낭비하게 된다.
- 이게 계속되면 정상 사용자는 서비스 이용이 어려워지고, 서버가 다운될 수도 있다.
🧠 암기 팁:
UDP 플러딩 = “없는 집에 계속 노크해서 집주인 피곤하게 만들기”
- UDP는 연결 없는 방식이라 누구에게든 막 보낼 수 있다.
- 없는 포트로 계속 보내서, 서버가 계속 반응하다 지쳐버리는 공격이다.
✅ 3. Smurf/Smurfing 공격
📌 개념
- 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시키는 공격
- 바운스 사이트라고 불리는 제3의 사이트를 이용해 공격한다.
👩🏫 쉽게말해
- 공격자가 ICMP Echo Request(핑 요청)을 1 2브로드캐스트 주소로 보낸다.
- 그런데 출발지 IP 주소를 공격 대상의 주소로 바꿔치기( 스푸핑)한다. 3
- 그 결과, 네트워크에 있는 여러 컴퓨터들이 “핑 요청이 왔네!” 하고 한꺼번에 공격 대상에게 응답을 보낸다.
- 이때 응답이 한꺼번에 몰리면서 공격 대상이 트래픽 폭탄을 맞고 마비된다.
- 이렇게 다른 네트워크( 바운스 사이트)를 이용하는 간접 공격 방식이다. 4
용어 | 의미 |
ICMP | 핑(Ping)에 쓰이는 통신 프로토콜이다. |
브로드캐스트 | 한 대가 여러 대에게 동시에 보내는 방식이다. |
스푸핑 | 출발지 IP 주소를 속여서 다른 사람인 척하는 것이다. |
바운스 사이트 | 공격자가 이용하는 제3의 중간 네트워크이다. |
🚌 비유: "동네 주민을 시켜 장난전화하기"
- 어떤 사람이 나의 이름을 사칭해서, 동네 단체 채팅방에
“저에게 전화 좀 해주세요! 긴급해요!” 라고 보낸다. - 수십 명이 그 메시지를 보고 한꺼번에 나한테 전화를 건다.
- 나는 전화 폭탄에 시달리며 아무것도 할 수 없게 된다.
→ 이게 스머프 공격이다.
- 본인은 직접 공격하지 않고, 다른 사람들을 조종해서 공격하게 만든다.
- 이런 중간 네트워크를 **“바운스 사이트(Bounce Site)”**라고 부른다.
🧠 암기 팁:
"스머프는 귀여운데 몰려오면 무서워"
→ 브로드캐스트 응답 폭탄
🛡️ 대응 방안 (방어 방법)
1) 라우터 또는 스위치에서 ICMP 브로드캐스트 차단
- 대부분의 스머프 공격은 브로드캐스트를 이용하므로,
네트워크 장비에서 브로드캐스트에 대한 ICMP 응답을 차단
2) 출발지 IP 주소 스푸핑 방지 (Ingress Filtering)
- 라우터나 방화벽에서 허용된 IP만 들어오게 제한하면,
출발지 IP를 조작한 패킷이 네트워크에 들어오는 것을 막을 수 있다.
3) 서버에서 ICMP 응답 제한
- 중요한 서버에서는 ICMP Echo 응답 자체를 끄거나,
일정 수 이상 응답하지 않도록 속도 제한(rate limiting)을 설정
✅ 4. 죽음의 핑 (Ping of Death, PoD)
📌 개념: ICMP 패킷(Ping)을 정상적인 크기보다 아주 크게 만들어 전송하면 다수의 IP 단편화가 발생하고, 수신 측에서는 단편화된 패킷을 처리(재조합)하는 과정에서 많은 부하가 발생하거나, 재조합 버퍼의 오버플로가 발생하여 정상적인 서비스를 하지 못하도록 하는 공격기법이다.
👩🏫 쉽게말해 너무 큰 크기의 핑 패킷을 보내 시스템이 이를 처리하지 못하고 다운됨
즉, 정상적인 요청인 척하면서도 너무 큰 요청을 보내 시스템을 다운시키는 게 바로 죽음의 핑이다.
🚌 비유: 입이 너무 작은 사람에게 큰 햄버거를 억지로 먹이려는 거랑 같아 → 숨 막힘!
🔧 취약점
- 예전 Windows, Linux, Mac OS 등 다양한 운영체제는
큰 패킷을 조립하는 데 오류 처리나 메모리 보호가 부족했기 때문에 이 공격에 쉽게 당했다. - 요즘은 대부분 패치를 통해 대응하고 있지만, 비슷한 원리의 공격은 여전히 존재한다.
🧠 암기 팁
“핑은 작아야 안전하다. 너무 크면 독이 된다.”
- Ping = ICMP 메시지
- of Death = 죽음처럼 시스템을 멈추게 함
- 이름 자체가 “거대한 작은 핑 하나로 죽일 수 있다...”는 의미다.
🛡️ 대응 방법
- OS 최신 패치 : 대부분의 운영체제는 이 취약점을 패치했다. 업데이트가 중요하다.
- 방화벽 설정 : 너무 큰 ICMP 패킷이 들어오지 못하도록 패킷 필터링을 적용한다.
- ICMP 제한 : ICMP 요청을 차단하거나, 속도 제한을 걸어두면 방어에 도움이 된다.
✅ 5. Land Attack
📌 개념: 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격 기법.
👩🏫 쉽게말해 출발지와 목적지 IP주소와 포트 번호를 모두 피해자의 주소로 설정 → 피해자가 자기 자신에게 응답을 보내면서 시스템이 혼란에 빠짐(무한루프..)
🚌 비유: 나한테 내 자신이 쓴 편지가 하루 종일 오고 있는 것
🧠 암기 팁:
“랜드 = 자기 땅 → 자기한테 자기가 보냄!”
🛡️ 대응 방법
- 수신되는 패킷 중 출발지 주소와 목적지 주소가 동일한 패킷들을 차단한다.
✅ 6. Tear Drop Attack
📌 개념: 조각난 IP 패킷의 offset 값을 이상하게 조작해서, 운영체제가 제대로 재조립 못 하게 해서 시스템 오류 유발
- 인터넷에서 큰 데이터를 보낼 때는 한 번에 다 보내지 못해서 **작은 조각(packet fragment)**으로 나눠서 전송한다.
- 수신자는 이 조각들을 **번호(offset)**를 기준으로 순서대로 다시 조립한다.
- 그런데 공격자는 이 offset 값을 일부러 비정상적으로 겹치게 만들거나 엉망으로 조작해서 보낸다.
수신자는 조각을 제대로 맞추지 못하고, 조립 중에 시스템 오류가 발생하거나 다운된다.
🚌 비유: "맞지 않는 퍼즐 조각을 억지로 끼우는 상황"
- 퍼즐을 조립하려는데 조각들에 붙은 번호가 엉켜 있고, 겹쳐 있고, 비정상적으로 표시돼 있어.
- 조립하려는 사람이 혼란스러워서 머리 아프고, 결국 포기하거나 멈추게 되는 것과 같다.
- 운영체제도 이런 비정상 조각을 처리하다가 시스템 오류나 블루스크린이 발생하게 된다.
🧨 취약점
- 예전 Windows 95, NT, Linux 등은 조각 재조합 과정에서 예외 처리가 약했기 때문에,
offset이 겹치거나 이상할 때 버그나 크래시가 발생했다. - 이 공격은 데이터를 많이 보내는 게 아니라,
아주 교묘하게 조작된 몇 개의 조각으로 시스템을 다운시키는 방식이라서 탐지하기 더 어려웠다.
🧠 암기 팁:
"Tear Drop = 조각이 찢겨져서 못 붙임"
데이터를 조각내서 한 방울 한 방울 떨어뜨린다는 의미도 있고,
시스템이 우는 것처럼 망가진다는 상징적인 의미도 있다.
✅ 7. Bonk Attack
📌 개념:
- UDP 프로토콜을 이용한 DoS 공격이다.
- 공격자가 UDP 패킷을 비정상적으로 조각(Fragment)낸 뒤,
**특정 포트(보통 53번 DNS 포트)**로 보내면,
수신자가 이를 조립하지 못해 시스템이 다운된다.
🧩 공격 방식
- 데이터를 UDP로 조각(Fragment) 내어 보낸다.
- 이 조각들이 정상적인 규칙(offset 등)을 따르지 않게 조작되어 있다.
- 수신 컴퓨터는 이 잘못된 조각을 조립하다가 **시스템 오류(크래시)**를 일으킨다.
🚌 비유: 택배 상자를 일부러 깨지고 부서진 채로 배송하는 것과 같다. 수령한 사람이 그걸 맞추려고 하다가 다치거나 쓰러지는 상황이다.
🧠 암기 팁:
“Bonk! 하고 시스템 맞고 쓰러짐” ( Bonk는 만화에서 머리 맞는 소리처럼 기억하면 쉽다.)
✅ 8. Boink Attack
📌 개념:
- Bonk의 확장판이다.
- Bonk는 **하나의 포트(보통 53번)**를 대상으로 했다면,
Boink는 여러 포트에 동시에 잘못된 UDP 조각을 보낸다.
🧩 공격 방식
- 여러 포트에 걸쳐서 비정상 조각화된 UDP 패킷을 전송한다.
- 여러 포트가 동시에 조립 오류를 일으키게 되어 시스템이 더욱 빠르게 다운된다.
🚌 비유: 한 개 택배도 깨졌는데, 여러 택배가 동시에 부서진 상태로 배달된다면 집안이 엉망이 되고, 정리하다 쓰러지게 되는 것과 같다.
🧠 암기 팁:
“Boink는 Bonk의 다구리 버전”
→ 동시다발 공격
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기 이론] 세션 하이재킹(Session Hijacking) 개념 | 탐지 방법 (0) | 2025.07.11 |
---|---|
[정보처리기사 실기 이론] DDoS, DRDoS 공격 개념 및 대응 방안 (0) | 2025.07.10 |
[정보처리기사 실기 이론] 소프트웨어 개발 보안 3대 요소 - 기밀성/무결성/가용성 (0) | 2025.07.07 |
[정보처리기사 실기 이론] 논리 데이터 모델링 정규화 단계 뜯어보기 (0) | 2025.07.06 |
[정보처리기사 실기 이론] 물리 데이터 모델링 무결성 종류 - 개체/참조/속성/사용자정의/키 무결성 (0) | 2025.07.05 |