DDoS 공격을 막는 방법
게시 됨: 2023-03-24가동 시간은 프런트엔드 및 백엔드 개발자 모두에게 주요 관심사이지만 모든 종류의 서버 측 관리자에게도 중요합니다. 불행하게도 악의적인 행위자가 사이트를 망치는 가장 효과적인 방법 중 하나는 DDoS(Distributed Denial of Service) 공격을 사용하여 사이트를 다운시키고 가동 시간을 줄이는 것입니다. 따라서 웹사이트 작업을 하는 대부분의 사용자는 DDoS 공격을 중지하거나 최소한 완화하는 방법을 알고 싶어할 것입니다.
이 게시물에서는 DDoS 공격을 중지하는 방법을 살펴봅니다. 그러나 정확한 단계에 도달하기 전에 장면을 설정해 보겠습니다. 이를 위해 먼저 DDoS 공격이 무엇인지 살펴보고 이를 식별하는 방법을 알아봅니다.
DDoS 공격이란
일반적으로 일반적인(분산되지 않은) 서비스 거부(DoS) 공격은 서버 리소스를 압도하여 사이트를 오프라인 상태로 만듭니다. 악의적인 행위자는 과도한 요청을 사용하여 합법적인 요청이 사이트에 도달할 수 없는 결과로 네트워크의 호스트 서비스를 방해합니다.
이것은 상점 밖에서의 시위와 같다고 생각할 수 있습니다. 사람들이 건물 입구를 막으면 고객이 들어올 수 없고 사실상 상점이 최적으로(또는 전혀) 거래할 수 없습니다.
DDoS(분산 서비스 거부) 공격은 이 목표를 달성하기 위해 네트워크의 많은 원격 컴퓨터를 사용합니다. 이것은 실제로 "Slashdot 효과"와 유사합니다. 합법적이고 전례 없는 트래픽(대개 트래픽이 많은 웹 사이트의 링크로 인해 발생)이 사이트 속도 저하 또는 충돌을 일으킬 수 있습니다. 그러나 이것은 정당한 이유가 있지만 DDoS 공격은 항상 계획적이고 악의적입니다.
예를 들어 DDoS 공격이 사용하는 많은 시스템이 악용 또는 맬웨어 주입을 겪었습니다. 공격자는 특정 IP 주소를 대상으로 하는 원격 명령을 사용하여 이러한 "봇"을 제어하며 각각 합법적인 것처럼 보일 수 있습니다.
성공적인 DoS 공격 의 핵심 요소 중 하나는 대상이 공격자보다 인터넷 속도가 느리다는 것입니다. 최신 컴퓨팅 기술은 이를 어렵게 만들기 때문에 DDoS 공격이 악의적인 행위자에게 훨씬 더 잘 수행됩니다.
전반적으로 DDoS 공격의 분산 특성으로 인해 일반적인 상황에서 공격을 식별하기 어렵습니다.
DDoS 공격을 식별하는 방법
DDoS 공격을 중지하는 방법을 배우려면 먼저 공격이 어떤 형태인지 이해해야 합니다. 트래픽 수가 많은 정당한 이유가 있을 수 있으므로 이는 어려울 수 있습니다.
높은 수준에서 사이트가 느려지거나 충돌하는 경우 이는 재해 계획을 구현하라는 신호입니다(자세한 내용은 나중에). 거기에서 다음과 같은 여러 징후를 살펴봐야 합니다.
- 모두 공통 서명을 나타내는 많은 트래픽. 이것은 트래픽이 동일한 IP 주소 또는 주소 범위에서 나온다는 것을 의미할 수 있습니다. 다른 경우에는 유사한 위치, 참조 웹 사이트 또는 장치 유형에서 오는 트래픽을 발견할 수 있습니다.
- 단일 사이트 끝점(일반적으로 특정 페이지)에 대한 트래픽 급증이 있을 수도 있습니다. 많은 404 오류도 명확한 신호일 수 있습니다.
- 사이트에서 수신할 것으로 예상되는 것과 일치하지 않는 트래픽 패턴. 예를 들어, 이는 평소 시간 범위를 벗어난 피크이거나 정시 활동 급증과 같은 부자연스러운 이벤트일 수 있습니다.
- 이들 모두는 악성이 아니라 합법적일 수 있습니다. 따라서 관련성 및 관련성을 파악하기 위해 분석 소프트웨어에 의존하고 싶을 것입니다.
또한 모든 DDoS 공격이 동일한 것은 아니며 다양한 유형으로 인해 이 문제가 훨씬 더 복잡해질 수 있습니다. 따라서 DDoS 공격을 중지하는 방법을 알고 싶다면 이러한 유형에 대해 알고 있어야 합니다.
직면하게 될 다양한 유형의 DDoS 공격
"네트워크 연결"은 컴퓨터가 웹을 통해 연결되는 방식을 설명하는 간단한 문구처럼 보일 수 있지만 이는 오류입니다. OSI(Open Systems Interconnection) 모델은 네트워크 연결 및 통신 시스템의 실제 계층화된 복잡성을 보여줍니다.
DDoS 공격은 공격 대상 계층에 따라 다양한 범주로 나뉩니다. 그렇더라도 여러 그룹으로 묶을 수 있습니다. 계층별로 이 작업을 수행할 수 있지만 DDoS 공격 대상 으로 분류하는 것도 허용됩니다.
예를 들어 볼륨 공격은 네트워크 및 전송 계층(3 및 4)을 압도하는 것으로 보입니다. 여기서 공격은 데이터가 웹에서 이동하는 방식과 전송 프로토콜의 효율성을 변경할 수 있습니다.
한 가지 유형인 DNS(도메인 이름 시스템) 증폭 공격은 "봇넷"을 사용하여 대상 IP 주소를 스푸핑하고 개방형 DNS 서버에 요청합니다. 이로 인해 서버가 대상 IP에 응답하고 리소스를 압도합니다.
프로토콜 계층 공격
프로토콜 또는 인프라 계층 공격도 계층 3과 4를 대상으로 하며 DDoS 공격을 수행하는 일반적인 방법을 나타냅니다. 이것은 서버의 리소스와 네트워크 장비가 들어오는 데이터를 처리할 수 없는 곳입니다.
예를 들어 사용자 데이터그램 프로토콜(UDP) 반사 공격이 있습니다. 이는 UDP의 상태 비저장 특성을 활용합니다. 거의 모든 프로그래밍 언어를 사용하여 유효한 UDP 요청 패킷을 만들 수 있습니다. 성공적인 공격을 수행하려면 대상의 IP 주소를 UDP 소스 주소로 나열하기만 하면 됩니다.
이 데이터가 향하는 서버는 데이터를 증폭하여 더 큰 응답 패킷을 만든 다음 대상 IP 주소에 다시 반영합니다. 따라서 악의적인 행위자는 생산 비용이 저렴한 어떤 지점에서도 서버 연결을 만들 필요가 없습니다.
웹 서버에 연결하면 클라이언트와 서버 간에 동기화( SYN ) 및 승인( ACK ) 패킷이 모두 포함되는 "3방향 핸드셰이크"가 수행됩니다. 서버가 결합된 SYN-ACK 패킷을 보내는 동안 클라이언트는 단일 SYN 및 ACK 패킷을 보냅니다.
SYN 플러드 공격을 통해 클라이언트(이 경우 악의적인 사용자)는 여러 SYN 패킷을 보내지만 최종 ACK 패킷은 보내지 않습니다. 이로 인해 반개방 TCP(Transmission Control Protocol) 연결이 많이 남게 되어 서버가 새 연결을 수락할 수 있는 용량이 부족해집니다. 합법적인 사용자로부터 사용 가능한 연결을 멀리하는 또 다른 방법입니다.
애플리케이션 계층 공격
세 번째와 네 번째 계층에 대한 DDoS 공격만 볼 수는 없습니다. 애플리케이션 계층(7번)은 최상위 레벨에 있습니다. 즉, 인간과 컴퓨터의 상호 작용을 처리하고 앱이 네트워크 서비스에 액세스할 수 있도록 합니다.
따라서 종종 HTTP 요청을 사용하여 이 계층을 조작하는 많은 DDoS 공격이 있습니다. 클라이언트의 경우 HTTP 요청이 저렴하지만 서버의 경우 기술적인 관점에서 응답하는 데 비용이 많이 듭니다. 공격은 주로 사이트에 액세스하는 데 동일한 방법을 사용하기 때문에 합법적인 트래픽처럼 보일 수 있습니다.
예를 들어 HTTP 플러드는 브라우저에서 연속적인 주기로 새로 고침 버튼을 누르는 것과 매우 유사합니다. 이러한 유형의 DoS 상호 작용이 DDoS가 되면 더욱 복잡해집니다.
HTTP 플러드의 스타일도 복잡할 수 있습니다. 다양한 IP 주소와 무작위 서명을 사용하여 광범위한 웹 URL을 대상으로 공격 범위를 확장합니다. 단일 URL을 대상으로 하는 간단한 구현도 많은 피해를 입힐 수 있습니다.
해커에게 Slowloris 공격은 대역폭을 덜 차지하지만 더 많은 혼란을 야기할 수 있습니다. 여기에서 각 요청은 서버를 처리하는 데 무한한 시간이 걸리며 사용 가능한 모든 연결을 독점합니다. 이 공격은 상대적으로 사용 가능한 동시 연결 수가 적은 서버에 대해 효과적이기 때문에 이것이 소규모 웹 사이트에 자주 영향을 주는 것을 볼 수 있습니다.
DDoS 공격에 대비하는 방법
준비는 DDoS 공격을 막는 방법입니다. 빨리 정상으로 돌아갈수록 좋기 때문입니다. 실제로 위협을 완전히 제거할 수는 없지만 잠재적인 문제를 최소한으로 줄일 수 있습니다.
그러나 그 전에 현금 흐름에 따라 DDoS 공격을 중지하는 방법에 대한 계획을 결정할 수 있으므로 지출할 금액을 "계산"해야 합니다. 공격으로 인한 비즈니스 비용에서 시작한 다음 다시 작업하여 사용 가능한 예산을 결정해야 합니다. 중간 공격을 원하는 계산이 아닙니다.
거기에서 준비에 집중해야 하는 세 가지 핵심 영역을 기록하고 싶을 것입니다.
- 재해 및 복구 계획을 세우십시오. 이렇게 하면 팀의 모든 구성원에게 무엇을 해야 하는지 명시적으로 자세히 알려줄 것입니다.
- 거기에서 전용 DDoS 보호 서비스에 할당된 예산의 일부를 사용할 수 있습니다. 이렇게 하면 전문가가 사이트를 모니터링하고 수신하는 일부 악성 트래픽을 "제거"하는 등의 작업을 수행할 수 있습니다.
- DDoS 공격이 시작되는 시점을 파악하는 방법을 알아보세요. DDoS 공격의 숨길 수 없는 징후를 모니터링하고 치명적인 일이 발생하기 전에 대응할 수 있으므로 여기에서 사이트 분석이 중요합니다.
기술적인 측면에서 볼 때 DDoS 공격이 시작되기 전에 차단하기 위해 할 수 있는 일이 훨씬 더 많습니다. 이 내용은 다음에 다루겠습니다.
DDoS 공격을 완화하는 방법
DDoS 공격을 막는 가장 큰 문제 중 하나는 좋은 트래픽과 나쁜 트래픽을 구별하는 것이므로 이를 완화하기 위해 하나의 솔루션에만 의존할 수는 없습니다. "멀티 벡터" DDoS 공격, 즉 여러 OSI 계층을 공격하는 경우 특히 그렇습니다.
이와 같이 방어를 돕기 위해 준비물을 계층화할 수도 있습니다. 이를 수행하는 몇 가지 간단한 방법이 있습니다.
- 블랙홀 라우팅 . 여기에서 null 경로에 대한 트래픽을 필터링하고 네트워크에서 드롭합니다. 특정 필터링이 없으면 이상적이지 않은 모든 트래픽을 버리게 됩니다.
- 속도 제한 . 이것만으로는 DDoS 공격을 중단하기에 충분하지 않지만 각 사용자가 완료하는 작업 수를 제한할 수 있습니다.
- 네트워크 확산 . 사이트에 도달하는 트래픽을 분산 네트워크 전체에 분산시키면 이론적으로 DDoS 공격의 영향이 확산됩니다.
따라서 대역폭, 네트워크 연결 및 기타 리소스를 확장하는 것은 DDoS 공격에 대처하는 가장 좋은 방법 중 일부입니다. 나중에 이야기할 솔루션 중 일부는 방어 수단으로 트래픽을 분산하는 클라우드 서비스로 제공됩니다.
CAPTCHA와 같은 온사이트 솔루션을 사용하여 사이트의 중요한 엔드포인트를 보호할 수도 있습니다. 이것은 로그인 화면이나 기타 보호 측면 뒤에 사이트의 리소스가 많은 요소를 배치할 수 있기 때문에 로그인 페이지에 높은 수준의 보안이 필요한 곳입니다.
또한 몇 가지 수동 기술 고려 사항을 구현할 수 있습니다. 예를 들어 SYN 또는 UDP 임계값을 더 낮게 설정하고 서버에서 반개방 연결을 시간 초과할 수 있습니다.
DDoS 공격을 막는 4단계 전략
이 기사의 나머지 부분에서는 4단계로 DDoS 공격을 중지하는 방법을 보여드리겠습니다. 좋은 소식은 우리가 제공할 조언이 규범적이고 엄격하지 않다는 것입니다. 따라서 자신의 필요에 맞게 아이디어를 조정할 수 있습니다.
여기서 다룰 내용은 다음과 같습니다.
- 대응 계획과 위기 전략이 어떻게 베이컨을 구할 수 있는지.
- 웹 서버를 방어하기 위해 어떤 접근 방식을 사용해야 합니까?
- 온프레미스 DDoS 보호의 장점과 단점.
- 클라우드 기반 DDoS 완화로 할 수 있는 일.
이미 언급한 전략 수립이라는 주제부터 시작하겠습니다.
1. 전략 및 대응방안 수립
공식적인 재해 및 대응 계획에서 수행할 모든 것을 확고히 하는 것은 환상적인 아이디어입니다. 이것은 귀하의 비즈니스에서 가지고 있는 가장 상세한 문서 중 하나여야 하며 공격을 중지하고 리소스를 복구하기 위해 수행할 모든 단계를 포함해야 합니다.
포함해야 할 몇 가지 참고 항목은 다음과 같습니다.
- DDoS 공격에 대응할 때 각 팀원이 순서대로 따라야 하는 단계입니다.
- 고객, 고객, 공급업체, 공급업체 및 기타 이해 당사자에게 문제를 전달해야 하는 팀 외부의 사람들을 위한 지침이 있어야 합니다.
- 인터넷 서비스 공급자(ISP) DDoS 보호 서비스 및 일선에 있는 다른 사람들에 대한 중요한 연락처 세부 정보를 포함하고 싶을 것입니다.
이 작업이 완료되면 회사 전체가 사이트 서버를 보호하기 위해 무엇을 해야 하는지 이해할 것입니다.
2. 웹 서버를 방어하는 방법 파악
DDoS 공격에는 두 가지 주요 문제가 있습니다.
- 언제 공격이 발생하는지 알기 어렵습니다.
- 진행 중인 공격에 대응해야 한다면 이미 너무 늦었습니다.
이 두 가지 문제를 모두 해결하려면 DDoS 보호 서비스를 사용하는 것이 좋습니다. Cloudflare는 최고 중 하나이며 그에 따라 웹 트래픽을 가로채고 확산하고 필터링하기 위한 전 세계적 규모의 전용 서버 아키텍처를 포함합니다.
이를 염두에 두고 정적 트래픽 임계값을 구현하거나 IP 차단 목록을 채우고 싶지 않을 것입니다. 이는 충분하지 않으며 대부분의 경우 사후 조치이기 때문입니다. 확장성은 DDoS 공격을 막는 가장 좋은 방법 중 하나이기 때문에 "홈스펀" 방법에는 전용 서비스가 더 나은 대역폭 제약이 있습니다.
3. 온프레미스 보호 구현
온프레미스 DDoS 보호는 네트워크의 하드웨어 장치를 사용하여 보호된 서버에 대한 트래픽을 필터링합니다. 이것은 DDoS 공격을 완화하고 중지하는 실행 가능하고 정교한 방법이 될 수 있습니다.
Radware와 F5는 하드웨어 DDoS 완화 장치를 생산하고 일부는 하드웨어 WAF(Web Application Firewall)도 생산합니다.
그러나 온프레미스 보호는 그 정도만 할 수 있으며 대규모 공격, 특히 DDoS를 막을 수 없습니다. 따라서 DDoS 공격을 중지하는 방법에 대한 최상의 대응을 위해 클라우드 기반 DDoS 설정으로 보완하는 것이 좋습니다.
4. 클라우드 기반 DDoS 솔루션 고려
실제로 더 많은 사이트가 확장 가능하고 상시 가동되며 하드웨어보다 저렴한 클라우드 보호에 의존하고 있습니다. 유지 보수 비용도 저렴합니다.
ISP 수준에서만 작동하는 일부 DDoS 서비스를 찾을 수 있지만 클라우드 내에서 작동하는 서비스는 보호 범위가 더 큽니다. 종종 이러한 서비스에는 트래픽을 분산할 대규모 컴퓨터 네트워크가 있습니다.
예를 들어 Amazon의 AWS Shield는 네트워크를 활용하여 DDoS 공격을 자동으로 감지하고 완화합니다. 또한 도구가 자사 WAF와 함께 서버를 보호하는 방법을 사용자 지정할 수 있습니다.
Cloudflare의 Magic Transit은 기존 온프레미스 솔루션을 보완하는 역할을 할 수 있습니다. 또한 로드 밸런서, 고급 패킷 필터링 등과 같이 가상 네트워크를 관리하는 데 도움이 되는 도구를 완벽하게 보완할 수 있습니다.
결론 🔥
DDoS 공격은 악의적인 충돌 시도에도 불구하고 귀하의 사이트가 무력화되는 것을 볼 수 있습니다. 패배주의적으로 보일 수 있지만 DDoS 공격은 고사하고 모든 공격을 완전히 막을 수 있는 실제 방법은 없습니다. 따라서 DDoS 공격을 막는 방법에 대한 답은 복잡합니다.
공격을 완화하는 것은 좋은 전략이며 서버 수준에서 구현할 수 있는 구현이 많이 있습니다. 전략이 무엇인지, 웹 서버를 어떻게 방어하고 싶은지 파악하는 것이 중요합니다. 온프레미스 보호는 환상적인 아이디어이며 WAF는 거의 필수적입니다. AWS Shield와 같은 클라우드 솔루션은 물론 CAPTCHA와 같은 현장 클라우드 표준도 작동합니다.
DDoS 공격을 막는 방법에 대해 질문이 있습니까? 아래 댓글 섹션에서 물어보세요!