DDoS 공격 101: 정의, 기법, 위험 및 예방

분산 서비스 거부(DDoS) 공격은 컴퓨터 네트워크 전체가 서버와 동시에 연결하려고 하려고 할 때 발생합니다. 이렇게 되면 시스템이 과부하로 인해 결국 마비됩니다. 게다가 트래픽 요청이 과부화되어 합법적인 트래픽까지도 서버에 도달하지 못하게 됩니다. 

DDoS는 새로운 유형의 공격이 아닙니다. 기업들은 이미 오래 전부터 DDoS 공격을 받아왔습니다. 일례로 2013년 당시 중국 내 모든 서버가 협공을 받아 4시간 정도 시스템이 마비되었던 적이 있습니다. 

하지만 전문가들에 따르면 공격 횟수가 증가하고 있다고 합니다. 2020년 3분기에는 DDoS 공격이 전년 대비 약 50% 증가했습니다. 

진행 중인 DDoS 공격을 감지하기란 쉽지 않습니다. 일단 해커의 공격이 시작되면 복구하기가 어렵습니다. 하지만 공격을 차단하는 데 투자하면 해커의 표적이 될 위험을 줄일 수 있습니다.

DDoS 공격의 원리

모든 서버는 요청을 수신하여 응답하도록 설계됩니다. DDoS 공격은 감당하지 못할 정도로 작업이 늘어나면 서버가 과부하를 일으킨다는 취약점을 이용합니다. 

해커는 먼저 서로 연결된 디바이스 네트워크를 구성합니다. 컴퓨터나 노트북 모두 표적이 될 수 있습니다. 그 밖에 초인종이나 냉장고처럼 인터넷에 연결되는 디바이스에 초점을 맞추기도 합니다. 공격자들은 악성 코드와 연결된 것이라면 무엇이든 감염시킬 수 있습니다. 이렇게 감염된 디바이스는 다른 표적을 공격하는 데 사용될 수도 있습니다. 

전문가들은 감염된 디바이스가 변함없이 작동하는 경우가 많기 때문에 소유자들이 문제를 인지하지 못할 수도 있다고 합니다. 특히 소유자가 소프트웨어를 업데이트하거나 보안 패치를 다운로드할 생각이 전혀 없는 경우에는 감염된 디바이스를 복구하기 어렵습니다. 

네트워크 관리자가 봇을 감지하기도 쉽지 않습니다. 봇마다 IP 주소가 다를 뿐만 아니라 합법적으로 보이기 때문입니다. 이후 문제가 발생하면 어디에서 시작되었는지조차 파악하기 어렵습니다. 

하지만 공격자는 봇을 이용해 서버를 표적 공격하여 무력화할 수 있습니다.

세 가지 주요 DDoS 공격 유형

모든 DDoS 공격은 해커가 시스템에 과부하를 일으켜서 시작됩니다. 하지만 프로그래머는 이러한 목표를 여러 가지 방법으로 달성할 수 있습니다. 기본적으로 세 가지 공격 유형이 있지만 모두 중요한 변종이 있습니다. 

1. 애플리케이션 계층 공격

이러한 기법을 사용하는 해커는 서버에서 사용자 요청 시 웹 페이지를 생성하는 부분에 공격을 집중합니다. 공격자는 봇에게 페이지를 반복해서 요청하도록 명령하여 서버에 과부하를 일으킵니다. 

애플리케이션 계층 공격 중에서 HTTP 플러드 공격이 가장 많습니다. 해커는 봇에게 다음과 같이 명령합니다.

  • 특정 URL 호출
  • 웹 페이지에서 특정 이미지 요청
  • GET 요청을 통해 문서 요청 
  • 잦은 페이지 새로 고침 요청

보통의 사용자도 사이트를 방문해서 리소스를 찾을 때 동일한 요청을 할 수 있습니다. 따라서 악의적인 트래픽과 합법적인 트래픽을 구분하기가 매우 어렵습니다. 

2. 프로토콜 공격

해커는 로드 밸런서와 같은 시스템 구성요소를 대상으로 대규모 요청을 보내 플러딩 공격을 실행합니다.

대표적인 프로토콜 공격으로 SYN 플러드 공격이 있습니다. 해커가 소스로 스푸핑된 IP 주소와 함께 다수의 초기 연결 요청을 서버에 전송합니다. 서버는 다음과 같이 응답합니다.

  • 연결 요청 수신
  • 연결 완료를 요청하는 응답 전송 
  • 해당 응답 대기
  • 지나치게 많은 응답 대기로 인한 마비

3. 볼륨 공격

전문가들은 DDoS 공격의 약 50%가 볼륨 공격이라고 말합니다. 볼륨 공격은 대역폭을 표적으로 플로딩 공격을 실행하여 사용 가능한 공간을 부족하게 만들고, 이로 인해 서버를 무력화하는 것이 목적입니다.

이것의 가장 일반적인 형태가 DNS 증폭 공격입니다. 해커는 봇에게 대량의 데이터를 차지하는 정보를 요청하도록 명령합니다. 그런 다음 데이터를 다시 본래 서버로 보내게 합니다. 이러한 방식의 공격으로 매우 빠르게 대규모 혼란을 일으킬 수 있습니다.

일반적인 DDoS 증상

정상적인 서버라면 요청을 수신하고, 요청에 응답합니다. 각 서버는 DDoS 공격을 받고 있을 때도 동일한 작업을 처리합니다. 그렇다면 무엇이 다를까요?

전문가들은 다음과 같이 명백한 징후가 있다고 말합니다.

  • 의심스러운 위치. 여러 디바이스가 한 곳에 모여있는 것을 발견하지만 평소에는 이곳에서 유입되는 방문자가 없습니다. 
  • 비정상적인 트래픽 증가. 예를 들어 5분마다 다수의 요청이 발생하거나, 1분만에 수백 개에 달하는 요청을 수신합니다. 
  • 성능 저하. 사이트의 로딩 속도가 매우 느리거나, 액세스초자 할 수 없습니다.
  • 오랜 시간 지속되는 서버 중단. 사이트가 합법적인 이유로 중단될 경우 일반적으로 1~2분 정도 문제가 지속됩니다. 하지만 문제가 며칠씩 지속되면 DDoS 공격이 원인일 수 있습니다. 
  • 지속적인 요구. 일부 해커는 단순히 재미로 공격을 자행합니다. 하지만 공격을 멈추겠다는 조건으로 돈을 요구하는 해커들도 있습니다. 

서버 성능을 주의 깊게 지켜봐야 합니다. 문제를 빨리 발견할수록 보다 효과적으로 대응할 수 있기 때문입니다. 

DDoS 공격에 대응하는 방법

서버가 공격을 받고 있다면 선택할 수 있는 옵션이 많습니다. 하지만 대부분의 공격이 합법적인 트래픽에도 영향을 미친다는 사실을 알아야 합니다. 

공격을 완화할 수 있는 옵션은 다음과 같습니다.

  • 블랙홀 필터링. 제한 기준을 정하여 이러한 기준에 미치지 못하는 트래픽을 삭제합니다. 
  • 스크러버. IT 팀이나 호스팅 회사가 공격 직전에 트래픽이 어떻게 바뀌었는지 검사하여 악성 주소를 식별할 수 있습니다. 스크러버는 이러한 주소가 연결되는 것을 차단합니다.  
  • 캐스팅. 트래픽을 서버 네트워크로 분산시킵니다. 용량을 늘리면 트래픽 과부하로 인해 요청에 응답하지 못하는 상황을 방지할 수 있습니다.

DDoS 공격을 예방하는 방법 

공격을 차단하기는 어렵기 때문에 공격을 와해하는 데 집중해야 합니다. 예방조치를 하면 합법적인 방문자들도 불편을 느끼지 않도록 할 수 있습니다. 

기업은 다음과 같이 예방할 수 있습니다.

  • 애플리케이션 프런트 엔드 하드웨어. 시스템으로 유입되는 패킷을 면밀히 조사하여 위협 수준에 따라 관리합니다. 
  • 애플리케이션 수준 KCI(Key Completion Indicator). 대량의 수신 트래픽이 합법적인지, 협공의 일부인지를 판별합니다. 이에 따라 용량을 결정합니다. 
  • DDS. 문제를 조기에 식별하여 사용자의 개입 없이 대응하는 디바이스를 사용해 프로토콜 공격과 볼륨 공격을 해결합니다. 
  • 방화벽. 인터넷과 서버 사이에 보호 계층을 삽입합니다. 맞춤형 규칙으로 요청을 필터링하거나, 혹은 단순한 규칙을 사용해 공격자에게서 수신되는 트래픽을 모두 차단합니다. 
  • 속도 제한. 사용자가 특정 시간 동안 서버에 연결할 수 있는 횟수를 정의합니다. 일부 사용자들은 이러한 서비스가 사이트 접속이 많은 사용자에게 "불공평"하다고 말합니다. 하지만 공격을 예방하는 데는 효과적일 수 있습니다. 

유용한 옵션을 검토할 수 있는 전담 팀을 편성하고, 모든 팀원에게 공격 발생 시 지원할 수 있도록 준비하라고 요청하세요. 강력한 계획과 커뮤니케이션 기법은 문제가 발생했을 때 재빠르게 대응하는 데 효과적입니다.

Okta가 도와드리겠습니다

Okta는 중소기업과 대기업을 대상으로 강력한 보안 툴을 전문적으로 개발하고 있습니다. 네트워크를 구성하는 서버가 한 개이든, 수백 개이든 상관없이 공격으로부터 리소스를 항상 안전하게 보호할 수 있도록 지원합니다. 자세히 알아보세요.

참고 자료

China's Internet Hit by DDoS Attack; Sites Down for Hours. (2013년 8월). CNET. 

DDoS Attack Statistics and Facts for 2018-2020. (2020년 11월). Comparitech. 

What Is a Botnet? When Armies of Infected IoT Devices Attack. (2019년 6월). CSO. 

Distributed Denial of Service Attacks: Four Best Practices for Prevention and Response. (2016년 11월). Carnegie Mellon University. 

Alert (TA13-088A): DNS Application Attacks. (2019년 6월). Cybersecurity and Infrastructure Security Agency.

What Is a DDoS Attack? Everything You Need to Know About Distributed Denial-of-Service Attacks and How to Protect Against Them. (2020년 10월). ZD Net. 

How to Stop DDoS Attacks: 6 Tips for Fighting DDoS Attacks. (2018년 6월). eSecurity Planet. 

Unfair Rate Limiting for DDoS Mitigation Based on Traffic Increasing Patterns. (2012년). 2012 IEEE 14th International Conference on Communication Technology.