ACK 폭주 DDoS 공격이란? | DDoS 공격의 유형

ACK 폭주 공격에서 공격자는 장치가 전송된 데이터를 성공적으로 수신했음을 확인하는 데 사용되는 가짜 ACK 패킷으로 대상을 압도하려고 시도합니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • ACK의 의미 알아보기
  • ACK 폭주의 작동 방식 이해하기
  • ACK 폭주 공격을 차단하는 방법 알아보기

관련 콘텐츠


계속 알아보시겠어요?

인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!

Cloudflare가 개인 데이터를 수집하고 처리하는 방법은 Cloudflare의 개인정보 취급방침을 참조하세요.

글 링크 복사

ACK 폭주 DDoS 공격이란?

ACK 폭주 공격은 공격자가 TCP ACK 패킷으로 서버에 과부하를 걸려고 시도하는 경우입니다.다른 DDoS 공격과 마찬가지로 ACK 폭주의 목표는 정크 데이터를 사용하여 대상의 속도를 늦추거나 충돌시켜 다른 사용자에 대한 서비스를 거부하도록 만드는 것입니다.대상 서버는 수신된 각 ACK 패킷을 처리해야 하며, 이는 너무 많은 컴퓨팅 능력을 사용하므로 합법적인 사용자에게 서비스를 제공할 수 없습니다.

장난을 치려는 발신자가 실제 발신자의 음성 메일이 도달할 수 없도록 누군가의 음성 사서함을 가짜 메시지로 채우는 것을 상상해 보세요. 이제 그 모든 가짜 메시지가 "안녕하세요, 메시지를 받았음을 알려드리려고 전화했습니다."라고 상상해 보세요. 이는 ACK 폭주 DDoS 공격에서 발생하는 상황과 다소 비슷합니다.

패킷이란?

인터넷을 통해 전송되는 모든 데이터는 패킷이라는 더 작은 조각으로 나뉩니다. 트위터에서 심층적인 요점을 만들거나 긴 이야기를 하고 싶은 사람이 텍스트를 280자 조각으로 나누고 한 번에 모두 게시하는 대신 일련의 트윗으로 게시하는 경우를 생각해 보세요. 트위터를 사용하지 않는 사람의 경우에는, 전용 문자 메시지 앱이 없는 휴대 전화로 긴 SMS 문자 메시지를 더 작은 섹션으로 나누는 경우를 생각해 보세요.

전송 제어 프로토콜(TCP)은 인터넷 통신의 필수적인 부분입니다. TCP 프로토콜을 사용하여 전송되는 패킷에는 패킷 헤더에 정보가 첨부되어 있습니다. TCP 프로토콜은 패킷 헤더를 사용하여 수신자에게 패킷 수와 도착 순서를 알려줍니다. 헤더는 패킷의 길이, 패킷의 타입 등도 나타낼 수 있습니다.

이것은 사람들이 그 안에 무엇이 있는지 알 수 있도록 파일 폴더의 이름을 지정하는 것과 다소 비슷합니다. 트위터의 예로 돌아가서, 일련의 긴 트윗을 게시하는 사람들은 시리즈에 총 트윗이 몇 개 있는지 표시하고 독자가 따라갈 수 있도록 각 트윗에 번호를 매기는 경우가 많습니다.

ACK 패킷이란?

ACK는 "승인"의 줄임말입니다. ACK 패킷은 메시지 또는 일련의 패킷 수신을 승인하는 TCP 패킷입니다. ACK 패킷의 기술적 정의는 헤더에 "ACK" 플래그가 설정된 TCP 패킷입니다.

TCP 핸드셰이크

ACK 패킷은 인터넷에서 연결된 두 장치 간의 대화를 시작하는 일련의 세 단계인 TCP 핸드셰이크의 일부입니다(사람들이 실생활에서 대화를 시작하기 전에 악수로 서로 인사할 수 있는 것처럼). TCP 핸드셰이크의 세 단계는 다음과 같습니다.

  1. SYN
  2. SYN ACK
  3. ACK

연결을 여는 장치(예: 사용자의 노트북)에서는 SYN("동기화"의 약자) 패킷을 전송하여 3방향 핸드셰이크를 시작합니다. 연결의 다른 쪽 끝에 있는 장치(온라인 쇼핑 웹 사이트를 호스팅하는 서버라고 가정)는 SYN ACK 패킷으로 응답합니다. 마지막으로 사용자의 노트북에서 ACK 패킷을 보내고 3방향 핸드셰이크가 완료됩니다. 이 프로세스는 두 장치가 모두 온라인 상태임을 확인하며, 이 예에서는 사용자가 웹 사이트를 로드할 수 있도록 허용하는 추가 패킷을 수신할 준비가 되었는지 확인합니다.

그러나 이 때가 ACK 패킷이 사용되는 유일한 시간은 아닙니다. TCP 프로토콜을 사용하려면 연결된 장치가 모든 패킷을 순서대로 수신했음을 확인해야 합니다. 사용자가 이미지를 호스팅하는 웹 페이지를 방문한다고 가정해보겠습니다. 이미지는 데이터 패킷으로 분할되어 사용자의 브라우저로 전송됩니다. 전체 이미지가 도착하면 사용자의 장치에서는 호스트 서버에 ACK 패킷을 전송하여 픽셀이 하나도 누락되지 않았는지 확인합니다. 이 ACK 패킷이 없으면 호스트 서버에서 이미지를 다시 보내야 합니다.

ACK 패킷은 헤더에 ACK 플래그가 설정된 TCP 패킷이므로 ACK는 노트북에서 서버에 보내는 다른 메시지의 일부일 수 있습니다. 사용자가 양식을 작성하고 서버에 데이터를 제출하면 노트북에서는 이러한 패킷 중 하나를 이미지에 대한 ACK 패킷으로 만들 수 있습니다. 별도의 패킷일 필요는 없습니다.

ACK 폭주 공격의 작동 방식은?

ACK 폭주 공격은 수신하는 모든 패킷을 처리해야 하는 장치를 대상으로 합니다.방화벽과 서버는 가장 가능성이 높은 ACK 폭주의 타겟입니다.Load Balancer, 라우터, 스위치는 이러한 공격에 취약하지 않습니다.

합법적인 ACK 패킷과 불법적인 ACK 패킷은 기본적으로 동일하게 보이므로 콘텐츠 전송 네트워크(CDN)를 사용하여 불필요한 ACK 패킷을 필터링하지 않고는 ACK 폭주를 차단하기가 어렵습니다. 비슷해 보이기는 하지만, ACK DDoS 공격에 사용되는 패킷에는 페이로드라고도 하는 데이터 패킷의 주요 부분이 포함되어 있지 않습니다. 합법적인 것처럼 보이려면 이 패킷의 TCP 헤더에 ACK 플래그만 포함되면 됩니다.

ACK 폭주는 계층 4(전송 계층) DDoS 공격입니다.계층 4 및 OSI 모델에 대해 알아보세요.

SYN ACK 폭주 공격의 작동 방식은?

SYN ACK 폭주 DDoS 공격은 ACK 공격과 약간 다르지만, 기본 아이디어는 여전히 동일합니다. 너무 많은 패킷으로 대상을 압도하는 것입니다.

TCP 3방향 핸드셰이크의 작동 방식을 기억하세요. 핸드셰이크의 두 번째 단계는 SYN ACK 패킷입니다. 일반적으로 서버에서는 클라이언트 장치의 SYN 패킷에 대한 응답으로 이 SYN ACK 패킷을 전송합니다. SYN ACK DDoS 공격에서 공격자는 SYN ACK 패킷으로 대상을 폭주시킵니다. 이 패킷은 3방향 핸드셰이크의 일부가 아닙니다. 이 패킷의 유일한 목적은 대상의 정상적인 작동을 방해하는 것입니다.

공격자가 SYN 폭주 DDoS 공격에서 SYN 패킷을 사용할 수도 있습니다.

Cloudflare에서는 ACK 폭주 DDoS 공격을 어떻게 차단할까요?

Cloudflare CDN은 Cloudflare 고객의 원본 서버에서 들어오고 나가는 모든 트래픽을 프록시합니다.CDN은 열린 TCP 연결과 연결되지 않은 ACK 패킷을 전달하지 않습니다.따라서 악의적 ACK 트래픽이 원본 서버에 도달하지 않습니다.데이터 센터의 Cloudflare 네트워크는 거의 모든 규모의 DDoS 공격을 흡수할 수 있을 만큼 충분히 크므로 ACK 폭주는 Cloudflare에도 거의 또는 전혀 영향을 미치지 않습니다.

Cloudflare Magic TransitCloudflare Spectrum도 이러한 종류의 DDoS 공격을 차단합니다.Magic Transit은 계층 3 트래픽을 프록싱하고 Spectrum은 계층 4 트래픽을 프록싱합니다(CDN처럼 계층 7 트래픽을 프록싱하는 대신).두 제품 모두 공격 패턴을 자동으로 감지하고 공격 트래픽을 차단하여 ACK 폭주를 차단합니다.

다른 유형의 DDoS 공격에 대해 알아보세요.