서비스 거부 공격이 발생했습니다. 여러 네트워크 (다른 서브넷의 다른 IP)에서 트래픽이 발생하는 경우 분산 서비스 거부 (DDoS)가 있습니다. 모두 같은 장소에서 나온다면 평범한 오래된 DoS가 있습니다. 가능하면 확인하는 것이 도움이 될 수 있습니다. netstat를 사용하여 확인하십시오. 그러나 이것은 어려울 수 있습니다.
서비스 거부는 일반적으로 트래픽 기반 및로드 기반의 두 가지 범주로 분류됩니다. 마지막 서비스 (충돌 서비스 포함)는 익스플로잇 기반 DoS이며 상당히 다릅니다.
어떤 유형의 공격이 발생했는지 파악하려는 경우 wireshark, tcpdump 또는 libpcap을 사용하여 일부 트래픽을 캡처 할 수 있습니다. 가능하면 많은 트래픽을 캡처 할 수 있음을 알고 있어야합니다.
그렇지 않은 경우, 봇넷 (일부 공격자가 중앙에서 제어 할 수있는 손상된 호스트의 네트워크)에서 발생합니다. 이는 공격자가 서로 다른 네트워크에있는 여러 호스트의 업스트림 대역폭을 (매우 싸게) 획득하여 자신을 추적하면서 공격 할 수있는 좋은 방법입니다. 저궤 이온 캐논 봇넷의 일례 (대신 자발적 임에도 불구 악성 유래); 제우스가 더 전형적인 것입니다.
교통 기반
트래픽 기반 DoS를 사용하는 경우 서버로 들어오는 트래픽 이 너무 많아 인터넷 연결이 완전히 포화 된 것을 알 수 있습니다. 다른 곳에서 서버를 핑할 때 패킷 손실률이 높으며 (사용중인 라우팅 방법에 따라) 때로는 대기 시간이 매우 길기도합니다 (핑이 높음). 이러한 종류의 공격은 일반적으로 DDoS입니다.
이것은 실제로 "거대한"공격이며 진행 상황은 분명하지만 서버 관리자는 완화하기가 어렵습니다 (기본적으로 공유 호스팅 사용자는 완화 할 수 없습니다). ISP의 도움이 필요합니다. DDoS하에 있다는 것을 알려 주면 도움을 줄 수 있습니다.
그러나 대부분의 ISP 및 대중 교통 제공 업체는 진행 상황을 사전에 인식하고 서버에 대한 블랙홀 경로 를 게시 합니다. 이것이 의미하는 바는 다음을 통해 가능한 적은 비용으로 서버에 대한 경로를 게시한다는 것 0.0.0.0
입니다. 이 경로는 일반적으로 / 32이며 결국 제거됩니다. 이것은 전혀 도움이되지 않습니다. 목적은 ISP 네트워크를 홍수로부터 보호하는 것입니다. 해당 기간 동안 서버의 인터넷 액세스가 효과적으로 끊어집니다.
ISP (또는 자신의 AS가있는 경우)가 도울 수있는 유일한 방법은 가능한 DDoS 트래픽을 감지하고 속도를 제한 할 수있는 지능형 트래픽 셰이퍼를 사용하는 것입니다. 모든 사람이이 기술을 가지고있는 것은 아닙니다. 그러나 트래픽이 하나 또는 두 개의 네트워크 또는 하나의 호스트에서 오는 경우 앞서 트래픽을 차단할 수도 있습니다.
요컨대이 문제에 대해 할 수있는 일은 거의 없습니다 . 가장 장기적인 해결책은 DDoS를 개별적으로 동시에 수행해야하는 인터넷의 여러 위치에서 서비스를 호스팅하여 DDoS를 훨씬 더 비싸게 만드는 것입니다. 이를위한 전략은 보호해야하는 서비스에 따라 다릅니다. 여러 신뢰할 수있는 네임 서버, 백업 MX 레코드 및 메일 교환기가있는 SMTP, 라운드 로빈 DNS가있는 HTTP 또는 멀티 호밍을 사용하여 DNS를 보호 할 수 있습니다.
로드 밸런서 자체가 동일한 문제를 겪고 병목 현상을 일으키기 때문에로드 밸런서는이 문제에 대한 효과적인 해결책은 거의 없습니다. 파이프가 포화 상태라는 문제 때문에 IPTable 또는 기타 방화벽 규칙이 도움이되지 않습니다 . 방화벽에서 연결을 확인하면 이미 너무 늦습니다 . 귀하의 사이트에 대한 대역폭이 소비되었습니다. 연결로 무엇을하든 상관 없습니다. 들어오는 트래픽의 양이 정상으로 돌아갈 때 공격이 완화되거나 완료됩니다.
가능한 경우 Akamai, Limelight 및 CDN77과 같은 CDN ( 콘텐츠 배포 네트워크 )을 사용하거나 CloudFlare 또는 Prolexic과 같은 DDoS 스크러빙 서비스를 사용하십시오. 이러한 서비스는 이러한 유형의 공격을 완화하기위한 적극적인 조치를 취하며, 여러 지역에서 가용 대역폭이 너무 많아서 일반적으로 범람 할 수는 없습니다.
CloudFlare (또는 다른 CDN / 프록시)를 사용하기로 결정한 경우 서버의 IP를 숨기십시오. 공격자가 IP를 찾으면 CloudFlare를 우회하여 서버를 직접 DDoS 할 수 있습니다. IP를 숨기려면 서버가 안전하지 않은 한 다른 서버 / 사용자와 직접 통신해서는 안됩니다. 예를 들어 서버가 사용자에게 직접 이메일을 보내서는 안됩니다. CDN에 모든 컨텐츠를 호스팅하고 자신의 서버가없는 경우에는 적용되지 않습니다.
또한 일부 VPS 및 호스팅 제공 업체는 다른 VPS보다 이러한 공격을 완화하는 것이 좋습니다. 일반적으로 그들이 클수록 이것에 더 좋을 것입니다. 매우 잘 평가되고 대역폭이 많은 제공자는 당연히 더 탄력적이며, 적극적이고 직원이 풍부한 네트워크 운영 팀이있는 제공자는 더 빨리 대응할 수 있습니다.
로드 기반
로드 기반 DDoS 가 발생 하는 경우 로드 평균이 비정상적으로 높습니다 (또는 플랫폼 및 사양에 따라 CPU, RAM 또는 디스크 사용량). 서버가 유용한 작업을 수행하지 않는 것 같지만 매우 바쁩니다. 종종 로그에 비정상적인 조건을 나타내는 많은 양의 항목이있을 수 있습니다. 종종 이것은 많은 다른 장소에서 나오고 DDoS이지만, 반드시 그런 것은 아닙니다. 다른 호스트가 많을 필요조차 없습니다 .
이 공격은 서비스가 많은 비용이 드는 일을하게하는 것을 기반으로합니다. 이것은 엄청나게 많은 수의 TCP 연결을 열어서 상태를 유지하도록 강요하거나, 너무 크거나 많은 파일을 서비스에 업로드하거나, 정말로 비싼 검색을하거나, 처리하기에 비싼 것을 수행하는 것과 같은 것일 수 있습니다. 트래픽이 계획 한대로 수행 할 수있는 범위 내에 있지만 요청 유형이 너무 많아서 많은 부분을 처리 할 수 없습니다 .
첫째, 이러한 유형의 공격이 가능하다는 것은 종종 구성 문제 또는 버그를 나타냅니다.당신의 서비스에서. 예를 들어, 지나치게 자세한 로깅이 설정되어 있고 쓰기 속도가 느린 항목에 로그를 저장하고있을 수 있습니다. 누군가가 이것을 알고 많은 양의 로그를 디스크에 쓰도록하는 많은 일을하면 서버가 크롤링 속도가 느려집니다. 소프트웨어는 특정 입력 사례에서 매우 비효율적 인 작업을 수행 할 수도 있습니다. 그 원인은 프로그램만큼이나 많지만 두 가지 예는 서비스가 세션을 닫지 못하게하는 상황과 자식 프로세스를 생성하여 떠나는 상황입니다. 수만 개의 자식 프로세스를 추적하기 위해 수만 개의 열린 연결로 상태를 유지하면 문제가 발생할 수 있습니다.
가장 먼저 할 수있는 일은 방화벽을 사용하여 트래픽을 삭제하는 것 입니다. 이것이 항상 가능하지는 않지만 들어오는 트래픽에서 찾을 수있는 특성이있는 경우 (트래픽이 적 으면 tcpdump가 유용 할 수 있음) 방화벽에서 드롭 할 수 있으며 더 이상 문제를 일으키지 않습니다. 다른 방법은 서비스의 버그를 수정하는 것입니다 (공급 업체에 문의하여 오랜 지원 경험을 준비하십시오).
그러나 구성 문제인 경우 시작하십시오 . 프로덕션 시스템에서 로깅을 적절한 수준으로 낮추십시오 (프로그램에 따라 이것이 기본값이며 일반적으로 "디버그"및 "자세한"레벨의 로깅을 해제해야합니다. 사용자가 수행하는 모든 것이 정확하게 기록 된 경우 세부 사항은 로깅이 너무 자세합니다). 또한, 하위 프로세스 및 요청 제한을 확인 , 아마도 스로틀 적용 가능한 들어오는 요청, IP 당 연결 및 허용 된 자식 프로세스의 수를.
서버를보다 효율적으로 구성하고 프로비저닝할수록 이러한 유형의 공격은 더 어려워 질 것입니다. 특히 RAM과 CPU에 찌르지 마십시오. 백엔드 데이터베이스 및 디스크 스토리지와 같은 연결이 빠르고 안정적이어야합니다.
악용 기반
서비스 가 중단 된 후 서비스 가 매우 빠르게 충돌하는 경우, 특히 충돌 이전의 요청 패턴을 설정할 수 있고 요청이 비정형 적이거나 예상되는 사용 패턴과 일치하지 않는 경우, 익스플로잇 기반 DoS가 발생했을 수 있습니다. 이것은 하나의 호스트 (거의 모든 유형의 인터넷 연결이있는 호스트) 또는 많은 호스트에서 나올 수 있습니다.
이는 여러 측면에서 로드 기반 DoS와 유사하며 기본적으로 동일한 원인과 완화 조치가 있습니다. 차이점은이 경우 버그로 인해 서버가 낭비되지 않고 죽는다는 것입니다. 공격자는 일반적으로 널 역 참조 또는 서비스에서 무언가를 유발하는 잘못된 입력과 같은 원격 충돌 취약점을 악용합니다.
이것을 무단 원격 액세스 공격과 유사하게 처리하십시오. 원래 호스트와 트래픽 유형을 고정 할 수있는 경우 방화벽 . 해당되는 경우 유효성 검사 리버스 프록시를 사용하십시오 . 법 의학적 증거를 모으고 (일부 트래픽을 시도하고 캡처) 공급 업체에 버그 티켓을 제출하고 출처에 대한 남용 불만 (또는 법적 불만)을 제출하는 것도 고려하십시오.
이러한 공격은 익스플로잇이 발견 될 경우 설치하기에 상당히 저렴하며 매우 강력하지만 추적 및 중지가 비교적 쉽습니다. 그러나 트래픽 기반 DDoS에 유용한 기술은 일반적으로 익스플로잇 기반 DoS에 대해서는 쓸모가 없습니다.