Site icon

진화하는 DDoS 공격에 대한 예방

기업의 웹사이트와 모바일 앱은 일정한 수의 요청을 처리하도록 설계됩니다. 분산 서비스 거부 공격(DDoS)은 이 점을 악용하여 공격 대상에 과도한 요청을 전송함으로써 처리 속도를 늦추거나 아예 무력화합니다. 웹사이트와 모바일 앱을 통해 서비스를 제공하는 기업들은 이러한 공격의 1차적 목표물입니다. 이러한 서비스에는 전자상거래, 금융 거래나 온라인 카지노, 모바일 앱이 있으며 공격자들은 과도한 요청 트래픽으로 해당 앱과 인프라를 무력화하려 합니다.

DDoS 공격이란?

DDoS는 공격자가 과도한 수의 요청을 전송하여 해당 서버나 네트워크의 작동을 방해하거나 무력화하는 사이버공격을 말합니다. 이러한 공격은 피해자의 상대 기업이 피해자의 앱과 웹사이트를 무력화하는 것이 목적인 경우가 대부분입니다. 또한 공격자들은 피해 기업을 무력화한 후 이를 복구해주겠다면서 금전적 보상을 요구합니다.

DoS 대 DDoS

DOS(서비스 거부)와 DDoS(분산 서비스 공격)은 DOS의 경우 한 곳에서 대량의 요청이, DDoS는 여러 분산된 곳에서 요청이 발송된다는 차이가 있습니다. 즉 여러 곳에서 발생하는 DDoS 공격은 복잡하고 훨씬 빠르기 때문에 찾아내기도 더 어렵습니다.

DDoS는 악성코드에 감염된 IoT 기반 네트워크를 통해 이루어지는 경우도 있습니다. 원격으로도 진행되며 하나의 봇이나 또는 ‘봇넷’이라 하는 여러 봇들을 사용하기도 합니다. 이 봇들은 목표물의 IP 주소를 찾아내는 즉시 동시에 요청을 발송하여 네트워크를 압도합니다.

DDoS 공격과 모바일 앱

DDoS 공격은 개별 장치를 통해 사용자들의 정보를 파악하기 용이한 모바일 앱을 이용하는 경우가 많습니다. 앱스토어에서 사용자가 앱을 다운로드하면 개발자는 사용자의 장치에 접근하고 장치의 보안 허점을 악용하여 공격할 수 있습니다. 이러한 공격은 아래와 같은 것이 있습니다. 

UDP 플러딩:

공격자가 사용자 데이터그램 프로토콜(UDP) 패킷으로 호스트 내 애플리케이션의 포트를 무작위로 플러딩하며 호스트는 해당 애플리케이션을 찾으려 하지만 실패합니다. 이제 호스트는 ‘Destination unreachable’이라는 응답 메시지 패킷을 발송합니다. 이는 서버의 자원을 고갈시켜 결국 서버가 작동을 멈추게 됩니다. 또한 UDP로 인해 서버 시스템이 처리할 수 없을 정도의 대량의 요청이 무작위 포트로 발송됩니다.

ICMP(핑) 플러딩:

공격자가 대량의 ICMP 에코 요청(핑) 패킷으로 네트워크를 플러딩합니다. 이 패킷들은 최대한 먼 곳에서 무작위로 발송되어 목표물의 수발신 트래픽을 모두 방해합니다. 여기에 목표물 서버가 자체 ICMP 패킷으로 회신하려 하면서 상황이 악화됩니다. 

죽음의 핑(POD):

악의적 핑을 대량으로 목표물에 발송하는 공격입니다. 일반적으로 패킷을 발송할 시에는 크기 제한이 있으므로 이를 무시하는 크기의 핑을 대량으로 보내서 목표물을 무력화하는 공격입니다.

SYN 플러딩:

일반적인 TCP/IP 네트워크 상황에는 SYN, ACK, SYN-ACK 3-방향 핸드쉐이크가 일어납니다. 한 쪽에서 SYN을 통해 정보 요청을 발송하면 상대방은 ACK를 통해 요청된 정보를 보냅니다. 정상적인 경우 최초 발송자는 SYN-ACK를 통해 이 정보를 받았다고 알립니다. 그러나 SYN 플러딩에서는 IP 주소가 가짜이므로 마지막 단계가 일어나지 않고 해당 요청은 타임아웃됩니다. 이로 인해 서버 자원이 고갈되고 결국 작동을 멈춥니다. 

슬로우로리스:

슬로우로리스는 한 웹 서버가 목표물 서버와 연결하고 부분적 요청을 발송하여 목표물을 공격하는 방법입니다. 이 요청은 완전한 것이 아니고 열린 상태이므로 이 상태에서 다른 정상적 연결이 차단됩니다.

NTP 증폭: 

공격자가 UDP 트래픽을 이용하여 공개된 네트워크 타임 프로토콜(NTP) 서버를 공격합니다. 쿼리 대 반응 비율은 1:20~1:200입니다. 다른 공격과 유사하게 과도한 수의 요청을 단시간 내에 발송하여 애플리케이션의 대응을 어렵게 만드는 방식입니다. 즉 대량의 고대역폭 공격입니다. 

HTTP 플러딩: 

공격자가 악의적 패킷과 스푸핑 기법으로 정상적인 HTTP POST 또는 GET 요청을 악용합니다. 

잘 알려진 DDoS 공격은 아래와 같습니다.

애플리케이션 레이어 공격: 

데이터베이스 접근이나 큰 파일 다운로드와 같은 자원집약적 요청으로 목표 웹사이트를 플러딩합니다. 봇을 사용하여 언뜻 정상적으로 보이는 이런 요청을 수백만 건 발송하면 목표 웹사이트는 곧 처리속도가 크게 느려집니다. 공격자는 특정 애플리케이션 패킷을 목표로 하며 온라인 거래와 같은 특정 기능을 방해하고자 합니다. 이러한 공격에는 HTTP 플러딩, 슬로우로리스, SQL 인젝션, 크로스사이트 스크립팅 등이 있습니다. HTTP 플러딩 공격은 여러 HTTP 요청을 웹 서버에 보내는 것이 특징입니다. 초당 요청 수가 급증합니다. 

대량 공격:

공격자는 여러 봇과 장치 및 각기 다른 인터넷 접속을 이용한 가짜 트래픽으로 목표물 사이트를 플러딩합니다. 이렇게 되면 정상적 트래픽이 차단되고 웹사이트는 결국 충돌을 일으킵니다. 이러한 공격에는 사용자 데이터그램 프로토콜(UDP), DNS 증폭, 패킷 스푸핑과 플러딩 등이 있습니다. DNS 증폭의 경우 DNS 서버에 대량의 데이터를 요청하여 공격합니다. 이에 따라 초당 비트 수가 급증합니다.

프로토콜 공격:

네트워크 레이어에 장애를 일으키려는 이 공격은 요청 처리를 담당하는 선입선출(FIFO) 대기열 시스템을 악용하여 목표물의 방화벽이나 로드 밸런서를 압도하려 시도합니다. 보통 한 요청이 들어오면 다른 요청들은 대기열에서 기다립니다. 이 공격은 가짜 IP 주소로 수백만 건의 요청을 보내서 목표물의 개방 상태를 유지합니다. SYN 플러딩이 한 예입니다. 

DDoS 증폭

정상적으로 보이지만 사실 그렇지 않은 요청으로 도메인명 시스템(DNS) 서버를 압도하는 공격입니다. 이는 2가지 방식으로 이루어집니다.

문자 발생기 프로토콜 반사 공격: 

1983년경 만들어진 오래된 시험용 프로토콜인 Chargen(Character Generation)을 악용하는 공격입니다. 이를 이용하면 외부에서 목표물 장치에게 무작위 연속 문자로 응답하도록 요청할 수 있으며 이는 해커들이 악용하는 보안 취약점입니다. 목표물 웹사이트의 스푸핑된 IP 주소를 통한 작은 패킷들이 여러 장치에 전송되면 이 장치들은 자신의 UDP 패킷으로 응답하면서 전체 시스템이 과부하됩니다.

DNS 반사:

목표 시스템의 IP 주소를 위조하여 여러 요청을 DNS 서버에 보내면 이 서버는 그에 반응합니다. 봇넷의 도움을 받아 이 쿼리들이 최대 70배까지 증폭되면서 트래픽이 매우 커집니다. 이로 인해 시스템이 다운됩니다. 대부분의 시스템은 DNS 서버가 잘못 구성되어 신뢰받는 도메인 네트워크의 외부를 포함하여 어디서나 발송되는 쿼리를 받아들이게 됩니다. 

DDoS 공격에 대한 잘못된 생각

DDoS 공격 지도

DDoS 공격 지도는 이름 그대로 DDoS 공격에 대한 데이터 시각화의 형태로 그 피해 및 규모, 발생 및 목표 국가를 나타냅니다. 이를 통해 과거 데이터와 패턴으로 기업들에게 DDoS에 대한 인사이트를 제공합니다. 특정 시점이나 위치에서 일어난 최근 공격에 대한 자세한 정보도 제공합니다. 이 지도를 통해 과거 발생한 특정 공격을 이해할 수 있습니다. 색상을 이용하여 규모나 영향 및 발생/목적국에 따라 공격을 분류합니다. 이러한 데이터를 이용하여 앞으로의 공격에 보다 효과적으로 대응할 수 있습니다. DDoS 공격에 널리 활용되는 일반적인 IP 주소도 제공합니다. 보다 최근의 공격 에이전트도 볼 수 있습니다. 

DDoS 공격 방지

대응 계획을 수립해야 합니다:

언제나 불확실성과 발생 가능한 공격에 대비해야 합니다. 사용자가 DDoS 공격의 징후를 찾아내도록 교육합니다. 

취약점 위험관리(VRM) 전략을 수립합니다: 

이를 통해 대비 과정을 마련하고 DDoS 공격에 대응이 가능한 조직 구성원과 전문가를 파악하며 백업을 실시할 수 있습니다. 특히 전문가의 역할이 중요합니다.

신속하게 대응하고 안티 DDos 서비스를 이용합니다: 

DDoS와 같은 공격은 최대한 빨리 찾아내서 ISP, 보안팀 등에 알려야 하며 업무연속성을 위한 백업 ISP를 갖추는 것도 좋습니다. 과도한 트래픽이 관측되면 블랙홀로 유도하여 서버나 웹사이트에 과부하가 발생하지 않도록 막을 수 있습니다. 

방화벽과 라우터에는 항상 최신 패치를 실시합니다: 

대부분의 보안 패치는 가장 일반적인 형태의 공격을 방지하므로 당연히 사이버보안 계획에 포함시켜야 합니다.

실시간 검사를 실시합니다: 

애플리케이션 개발자는 다차원적 시험 플랫폼을 통해 실시간으로 모든 서버 요청을 검사할 수 있습니다.

런타임 애플리케이션 자가보호(RASP)를 이용합니다: 

RASP 보안을 통해 실시간 또는 실행 중에 모바일 애플리케이션을 보호할 수 있습니다. 이 기능을 이용하면 데이터 입출력의 가시성이 크게 높아지며 시스템 아키텍처를 심층적으로 파악하여 애플리케이션이 스스로를 보호하도록 만들 수 있습니다. 네트워크의 취약점에서 발생하는 악성 요청에 의한 침해의 확률도 낮춰줍니다. RASP에는 공격에 대해 보안팀에 알리지만 요청을 차단하지는 않는 ‘모니터링’ 및 의심스러운 요청을 즉각 차단하는 ‘블록’ 기능이 있어 보안 업무가 유연화됩니다. 또한 거의 미미한 정도의 위양성 결과를 이용하므로 취약점이 악용될 시에만 직접 개입하여 성능을 높입니다. 

DDoS 공격의 미래

IT 분야에서 여러 발전이 일어나는 것과 마찬가지로 DDoS 공격도 발전합니다. 최근에는 봇넷이 등장하면서 더욱 복잡하고 빨라지는 경향이 있습니다. 또한 공격 벡터도 발전하면서 데이터베이스, 서버, 애플리케이션 등 여러 지점에서 동시다발적으로 공격이 일어나면서 피해자가 대응할 시간도 줄어듭니다. 인공지능, 머신러닝으로 이러한 공격의 위력을 키우기도 합니다. 

기업은 온라인에서 소통하고 업무를 수행하므로 이러한 공격에 매우 취약합니다. IoT의 활용도 확산되면서 IoT 보안도 중요성이 높아지고 있습니다. 봇넷은 이 문제를 매우 어렵게 만듭니다. 2020년 상반기에만 483만건의 DDoS 공격이 있었으며 다중 벡터 공격도 다수 일어났습니다. 기업들은 이에 맞서 적절한 전략을 수립해야 하며 특히 RASP가 이 분야에서 주목받고 있습니다. 지금 바로 AppSealing에서 자세한 정보를 알아보세요!

Exit mobile version