2019년 10월부터 유지

사후 보고: AMS-01, 11분, 2020년 10월 14일

한 고객을 겨냥한 340 Gbit/s 공격으로 암스테르담 사이트 전체가 11분간 네트워크에서 단절되었습니다. 이후 지금까지 운영하는 필터링은 이 사건에서 비롯되었습니다.

요약

2020년 10월 14일 02:41부터 02:52 UTC까지 AMS-01의 모든 인스턴스에 접근할 수 없었습니다. 단일 고객 주소를 대상으로 한 대규모 공격은 최대 340Gbit/s에 달했고 사이트의 업링크를 포화시켰습니다. 우리는 업스트림에 대상 주소로 향하는 모든 트래픽을 폐기하도록 요청하여 이 문제를 해결했으며, 사이트는 복구되었지만 해당 고객 한 명은 50분 동안 더 오프라인 상태였습니다. 데이터 손실은 없었고 인스턴스 피해도 없었습니다. 당시 사이트에는 스크러빙 용량이 없었으며, 이는 사고가 아니라 구매 결정이었습니다.

타임라인

모든 시간은 UTC, 2020년 10월 14일입니다.

시간사건
02:41:04단일 고객 주소로 향하는 트래픽이 20초도 안 되어 약 200Mbit/s에서 90Gbit/s로 증가합니다.
02:41:30사이트의 두 업링크가 모두 포화됩니다. 대상뿐만 아니라 사이트의 모든 접두사에서 패킷 손실이 전체적으로 발생합니다.
02:423개의 외부 프로브에서 도달 가능성에 대한 자동 알림이 울립니다.
02:44당직 엔지니어가 온라인에 접속합니다. 공격은 포트 그래프에서만 보이고 다른 곳에서는 보이지 않습니다. 플로우 수집 샘플링 속도가 이를 따라잡을 수 없었기 때문입니다.
02:46최대 340Gbit/s로 측정됩니다. 구성은 수만 개 소스에서 반사된 UDP(주로 DNS 및 NTP)입니다.
02:47대상 주소로 향하는 모든 트래픽을 업스트림에서 폐기하도록 요청하기로 결정합니다. 이것이 우리가 사용할 수 있는 유일한 도구였습니다.
02:49첫 번째 업스트림에서 폐기가 전파됩니다.
02:51두 번째 업스트림에서 적용됩니다. 업링크 사용률이 용량 아래로 떨어집니다.
02:52:10사이트가 완전히 접근 가능해집니다. 총 고객 인지 장애 시간은 11분 6초입니다.
03:20피해 고객에게 연락하여 새 주소를 제안합니다.
03:42고객이 새 주소로 이전하고 서비스가 복구됩니다.

근본 원인

직접적인 원인은 우리가 흡수할 수 없는 공격이었습니다. 실제로 원인은 우리가 이 규모의 공격이 일상적인 도시에서 200Gbit/s의 업링크와 필터링 전혀 없이 호스팅을 판매하고 업스트림 폐기 계약을 계획으로 취급했다는 것입니다.

그것은 불운이 아닙니다. 2019년에 하드웨어에 돈을 쓰기로 한 결정이었고, 그것은 잘못이었습니다.

두 가지 이차적 결함이 상황을 악화시켰습니다. 플로우 수집 샘플링 속도는 실제 이벤트 중에 유용한 세부 정보를 제공하지 못해 처음 4분은 인터페이스 카운터를 읽는 데 보냈습니다. 그리고 폐기는 수동이었고, 인간이 깨어 있고, 인증되고, 확신이 있어야 했습니다. 이는 새벽 3시에 너무 많은 요구사항 세 가지입니다.

이것이 고객에게 끼친 비용

솔직히 말하면, 우리는 서비스를 꺼서 우리의 문제를 해결했습니다. 폐기 경로는 한 고객이 접근 불가능하게 되어 다른 모든 사람이 그렇지 않도록 하는 결정입니다. 우리가 가진 도구로는 올바른 선택이었고, 여전히 우리의 장애가 아니라 그들의 장애였으며, 그들은 그렇지 않다고 약속하는 제품을 사지 않았습니다.

그들은 남았습니다. 우리는 10월 요금을 청구하지 않았습니다.

우리가 변경한 사항

  1. 엣지에서의 상시 스크러빙, 3주 이내에 구매, 1.2Tbit/s 용량으로 시작. 필터링이 경로에 영구적으로 존재하므로 감지 지연이 없고 02:47에 누군가 누를 버튼이 없습니다. 이제 모든 사이트에서 표준이며, 가장 큰 사이트는 최대 12Tbit/s입니다.
  2. AMS-01의 업링크 증설, 처음에는 200Gbit/s 추가 용량으로, 나중에는 오늘 사이트가 운영하는 400Gbit/s로.
  3. 샘플링되지 않은 플로우 텔레메트리를 모든 사이트 엣지에 도입, 운영 목적으로 7일간 보관. 이는 자체 포트의 트래픽 메타데이터이며 인스턴스 트래픽이나 어떤 내용물도 아닙니다.
  4. 폐기 경로가 자동화, 문서화된 임계값, 공지된 정책, 39분이 아닌 60초 내에 피해 고객에게 이메일 발송.
  5. 공격이 [상태 페이지](/ko/status)에 게시, 크기와 기간 포함, 누군가 알아차렸는지 여부와 관계없이.

우리가 변경하지 않은 것과 이유

필터링에 비용을 청구하지 않았습니다. 기본 스크러빙은 모든 사이트의 모든 요금제에 포함되어 있으며, 구매한 날부터 항상 그랬습니다. 공격은 피해자가 요청한 서비스가 아닙니다. 사용자 지정 규칙이 있는 L7 필터링은 우리 쪽에서 인간이 필요하기 때문에 애드온으로 존재하며, 이는 볼륨 공격과 다른 것입니다.

폐기 경로를 제거하지 않았습니다. 12Tbit/s는 숫자이지 무한대가 아니며, 둔기 도구가 다시 필요하지 않을 것이라고 가장하는 것은 부정직할 것입니다. 변경된 것은 이제 유일한 단계가 아니라 문서화된 최후의 수단이라는 것입니다.

고객별 트래픽 상한을 부과하지 않았습니다. 모든 고객을 업링크의 안전한 비율로 제한하면 이 사고를 예방할 수 있었지만 모든 합법적인 급증도 제한합니다. 필터링은 고객이 아닌 공격, 엣지에 있어야 합니다.

고객을 다른 제품으로 옮기지 않았습니다. 그들은 지불한 것을, 자신에게 맞는 요금제로 실행하고 있었고, 누군가 봇넷을 겨냥한 것은 그들의 잘못이 아닙니다.

준비 완료

도시를 고르고, 크기를 고르고, 코인으로 결제하세요.

신원 확인 양식도, 승인을 기다리는 담당자도, 검증을 위한 전화도 없습니다. 청구서가 결제되면 자격 증명이 받은 편지함에 도착합니다.