페미위키:위키독/아름드리/분산 서비스 거부

최근 편집: 2023년 1월 6일 (금) 19:33

1. 개요

분산 서비스 거부(Distributed Denial of Service) 공격, 즉 DDoS는 DoS 공격을 분산해서 수행하는 공격 기법이다. 최근엔 컴퓨팅 파워가 커지고 회선 대역폭 크기도 넓어져서 분산 공격을 위해 좀비 PC를 공격에 사용하고 있다.


2. 공격 원리

DDoS 공격의 원리는 대량의 쓰레기 데이터를 한꺼번에 보내거나 쓸모없는 연결을 지속적으로 빠르게 시도해서 라우터나 서버가 처리를 제대로 수행할 수 없게 만드는데 있다. DDoS 공격은 특히 웹 서버 등 이미 패킷 구조가 다 알려지고 클라이언트를 쉽게 만들 수 있는 서버에 효과가 뛰어나다. 다만 알려지지 않은 프로토콜을 사용하는 서버라고 하더라도 공격은 가능하다. 이 경우에는 보통 한꺼번에 연결을 시도하도록 하여 사용자가 서버에 연결하지 못하도록 방해하는 공격을 수행한다. 특히 옛날 메신저 서버나 일반적인 온라인게임 서버의 경우에는 첫 패킷이 로그인 시도 패킷이므로 이 패킷 전송이 잘못되면 바로 연결이 끊기기 때문에 이런 공격 방식을 이용하는 편이다.


가장 쉽게 DDoS 공격을 해보려면 홈페이지에서 많은 사용자가 한꺼번에 새로고침을 여러 번 해보면 된다. 이 경우 서버 사양이 높지 않다면 대부분 503 오류를 내뱉고 정상적인 서비스를 이용할 수 없다. 이런 오류로 동시접속자 수가 2000명이 넘는 일부 커뮤니티 사이트들은 503 오류를 자주 본다. 의도치 않은 DDoS 공격인 셈이다.


3. 공격으로 인한 피해

웹 서버의 경우 이 공격으로 인해 위에서 설명한 503 오류를 내보이며 정상적으로 서비스를 제공할 수 없게 된다. 서버 포트 자체는 열려있는데 DDoS 공격 중인 데이터를 한꺼번에 많이 받아 처리가 힘들어져서 CPU가 제시간 안에 데이터를 처리하지 못하거나 메모리 허용량이 넘어가는 등 서버 내부적으로 오류가 발생하게 된다. 심한 경우에는 웹 서버 자체가 다운되어 연결조차 되지 않기도 한다. 일부 DDoS 사례 중 홈페이지 내에서 특정 페이지만 열리지 않는다던가 하는 경우는 대부분 DDoS의 사례가 아니다.


라우터 자체가 DDoS 공격을 받으면 라우터도 내부적으로 패킷 송수신을 위해 CPU와 메모리를 사용하기 때문에 과부하가 발생하여 라우터를 거치던 많은 연결이 끊겨버리고 남아있는 연결되어 있는 기기 간에는 송수신 속도가 느려지는 등의 피해가 발생한다.


일부 매체가 보도하는 "DDoS를 이용해 악성코드를 심는" 등의 일은 DDoS만으로는 절대 불가능하다. 만약 공격 대상 서버에 악성코드가 심어져있다면 미리 백도어로 숨겨놨거나 DDoS로 관심을 돌려놓고 서버 해킹을 같이 진행했을 가능성이 크다. 다만 DDoS가 아닌 상위 개념인 DoS 공격 중에는 프로토콜 취약점이나 서버 또는 클라이언트의 버그를 이용하여 장비 손상이나 악성코드 주입을 할 수 있는 경우는 있다.


4. 방어 방법

DDoS 공격에는 패턴이 있다. "1) 어떤 IP가", "2) 어떤 방식의 패킷을", "3) 얼마나  빠르고 많이" 전송하느냐의 패턴을 잘 선별하여 해당 IP를 막아버리면 대부분 방어에 성공한다. 다만 이 패턴을 알아내기 전까지 피해는 계속된다. 때문에 공격 예방 자체는 되지 않지만 패턴에 따른 IP 차단 시스템 구비라는 대비는 할 수 있는 공격이다.


아직 서버 IP는 대부분 IPv4이고 때문에 IP가 한정되어 있는데다 최근 공격에는 좀비 PC가 많이 사용되므로 공격에 사용된 IP들을 막아버리면 이후 DDoS 공격도 상당 부분 차단되는 효과도 있다. 좀비 PC가 일반 사용자의 PC라는 점을 생각하면 일반 사용자의 서비스 이용이 불가능해지는 단점 역시 존재하기는 한다. 또한 IP가 영구적인 주소도 아니어서 차단된 IP를 다른 사용자가 임대했을 때 발생하는 문제 역시 존재한다. 때문에 일부 차단 시스템은 차단한 IP를 일정 기간이 지나면 차단을 해제하도록 구현하기도 한다. 또는 아예 차단하는 것이 아니라 라우터 설정을 통해 해당 IP에 대한 트래픽 제한을 걸기도 한다.


또 다른 방어 방법은 서버 다중화 방식을 적용하는 것이다. 가장 바깥쪽에는 정적 웹 서버를 두어 대 두고 L4 스위치 등으로 사용자가 알아서 한쪽 웹 서버에 접속되도록 구현한 뒤 정적 웹 서버 뒤에 동적 웹 서버(JSP, ASP.NET 등)을 여러 대 두는 등 다중 서버를 적용하여 패킷을 분산시키는 방법이다. 이 방법이 적용되면 적용 비용은 많이 들어가더라도 공격자가 더 많은 PC를 사용하여 공격해야 하는 리스크가 존재하여 쉽게 공격하지 못하게 하는 이점이 있다. 위의 차단 방어 시스템도 같이 적용하면 서비스 제공도 원활하게 하면서 DDoS 공격자 IP도 막을 수 있다.


그러나 대부분의 경우에는 방어 시스템을 구축하지 않는다. DDoS 공격 자체가 원시적인 공격에 속하고 공격자 입장에서도 DDoS로 얻을 수 있는 이익이 별로 없고 좀비 PC를 만들기 위해 들여야 하는 노력이 크기 때문에 웬만하면 공격이 잘 들어오지 않기 때문이다. 나중에 진짜로 공격을 당하면 그때 방어 시스템을 구축하는 경우도 흔하다. DDoS 공격은 보통 정치적 목적의 공격으로 자주 시도되기 때문에 국가 서비스나 대기업, 금융업체 위주로만 처음부터 DDoS 방어 시스템을 구축하는 편이다.


5. 연관된 공격 기법

  • DoS
  • ICMP Flood
  • tear drop
  • PDoS