709. DoS (Denial of Service) - 가용성 타격 위협 목적

핵심 인사이트: 해커가 꼭 데이터를 훔쳐 가거나 조작해야만 해킹이 아니다. 피자집 사장님을 망하게 하는 가장 얄미운 방법은 피자 레시피를 훔치는 게 아니라, 알바생 수백 명을 고용해 하루 종일 "장난 전화"를 걸어 진짜 손님이 주문 전화를 아예 걸지 못하게 통화 중(마비) 상태로 만들어 버리는 것이다. 정보 보안의 3요소 중 하나인 '가용성(Availability)'을 무참히 파괴하는 깡패 짓이 바로 DoS 공격이다.

Ⅰ. DoS (서비스 거부 공격)의 개념

  • 개념: 서버의 네트워크 대역폭이나 CPU, 메모리, 데이터베이스 연산 자원 등 시스템 자원(Resource)을 대량의 쓰레기 트래픽으로 고갈시켜 버려, 정당한 권한을 가진 일반 사용자들이 정상적인 서비스를 이용할 수 없도록(거부되도록) 마비시키는 악의적 공격 행위입니다.
  • 보안 목적 타격: CIA 트라이어드(기밀성, 무결성, 가용성) 중에서, 시스템이 원할 때 응답해야 한다는 **'가용성(Availability)'**을 정면으로 파괴하는 것이 유일한 목적입니다.

Ⅱ. DoS 공격의 두 가지 파괴 원리 🌟

서버를 기절시키는 방법은 크게 두 가지 패턴으로 나뉩니다.

1. 트래픽 폭주 기반 고갈 공격 (대역폭 고갈)

  • 원리: 10차선 고속도로에 수만 대의 쓰레기 덤프트럭(가짜 패킷)을 일제히 밀어 넣어 도로 자체를 꽉 막아버리는 무식하지만 확실한 물리적 공격입니다.
  • 진짜 정상 고객이 접속하려 해도 이미 고속도로(네트워크 대역폭)가 100% 미어터진 상태라 데이터가 서버까지 도달하지 못하고 버려집니다(Drop). (예: ICMP Flood, UDP Flood 등)

2. 프로토콜 약점 기반 자원 고갈 공격 (시스템 자원 고갈)

  • 원리: 무식하게 트래픽을 쏟아붓지 않습니다. 트래픽은 적지만, 서버의 TCP/IP 운영체제나 애플리케이션 설계의 논리적 결함(취약점)을 얄밉게 파고들어 서버 CPU나 메모리를 극심하게 소모시켜 기절하게 만드는 똑똑한 공격입니다.
  • 1시간 동안 기다려야 하는 복잡한 암호 풀기 연산을 요청하거나, 전화(TCP SYN)를 걸고서 대답도 안 하고 끊어버려 서버가 전화기를 든 채 하루 종일 기다리게(세션 메모리 낭비) 만듭니다. (예: SYN Flood, Slowloris 등)

Ⅲ. 단순 DoS의 한계와 DDoS로의 진화

  • 과거의 DoS: 1990년대 초창기에는 해커 1명이 성능 좋은 슈퍼컴퓨터 1대를 돌려서 타겟 서버 1대를 마비시키는 1:1 싸움이었습니다.
  • 몰락: 하지만 타겟 서버들의 방어막(IPS, 클라우드 로드밸런싱)이 강력해지고 네트워크 파이프가 기가급으로 커지자, 해커 1대의 컴퓨터가 아무리 뿜어대 봤자 서버가 간지럼만 느낄 뿐 마비되지 않게 되었습니다. 게다가 해커 컴퓨터의 IP 주소가 방화벽에 딱 걸려서 1초 만에 차단당하는 허무한 결과를 낳았습니다.
  • 진화 (DDoS의 탄생): 혼자서는 안 되겠다고 깨달은 해커가, 전 세계 수백만 대의 남의 컴퓨터(좀비 PC)를 바이러스로 감염시켜 노예 부대로 만든 뒤, "다 같이 돌격!" 명령을 내려 수백만 대 1의 싸움으로 체급을 우주급으로 키운 것이 바로 오늘날 악명 높은 **DDoS(분산 서비스 거부 공격, 710번 문서 참조)**입니다.

📢 섹션 요약 비유: DoS 공격은 유명 맛집(서버)을 망하게 하려는 경쟁 식당 주인의 수작입니다. 식당 문 앞 도로에 대형 트럭 수백 대를 억지로 주차해 진짜 손님의 차가 진입하지 못하게 도로를 틀어막거나(네트워크 대역폭 고갈), 혹은 매장 안의 테이블 50개에 노숙자 50명을 앉혀놓고 메뉴판만 보며 주문은 하루 종일 안 하고 자리만 꽉 채우게 만들어(서버 자원/세션 고갈), 밖에서 기다리는 진짜 돈을 낼 손님들이 짜증을 내며 돌아가게(서비스 거부) 만드는 아주 얄밉고 치명적인 영업 방해 행위입니다.