Amazon EC2에 대한 DDOS 공격을 어떻게 방지 할 수 있습니까?


46

내가 사용하는 서버 중 하나가 Amazon EC2 클라우드에서 호스팅됩니다. 몇 달마다 우리는이 서버에 대해 DDOS 공격을받는 것으로 보입니다. 이로 인해 서버 속도가 엄청나게 느려집니다. 약 30 분 후, 때로는 재부팅 한 후 모든 것이 정상으로 돌아옵니다.

Amazon에는 보안 그룹과 방화벽이 있지만 공격을 완화하거나 방지하기 위해 EC2 서버에 어떤 다른 것들이 있어야합니까?

내가 배운 비슷한 질문에서 :

  • IP 테이블 (또는 UFW?)과 같은 특정 IP 주소의 요청 / 분 (또는 초) 비율을 제한하십시오.
  • 그러한 공격을 견뎌 낼 수있는 충분한 자원이 있어야합니다.
  • 웹 애플리케이션이 탄력적이거나 탄력적 인로드 밸런서를 가지고 있으므로 이러한 높은 수요를 충족시키기 위해 신속하게 확장 할 수 있도록 웹 애플리케이션을 구축 할 수 있습니다)
  • mySql을 사용하는 경우 느린 쿼리로 인해 시스템이 다운되지 않도록 mySql 연결이 순차적으로 실행되도록 설정하십시오.

내가 뭘 놓치고 있니? 특정 도구 및 구성 옵션 (여기서는 Linux 사용) 및 / 또는 Amazon EC2에만 해당되는 정보에 관심이 있습니다.

추신 : DDOS 모니터링에 대한 메모도 환영합니다-아마도 nagios? ;)


이를 막는 것은 거의 불가능하지만 취약점을 확실히 줄일 수 있습니다.
벨민 페르난데스

1
매우 사실입니다. 그리고 나는 취약점 감소에 대한 답변에 만족할 것입니다 :)
cwd

이를 방지하는 방법을 알기 위해서는 공격의 성격에 대해 더 알아야합니다. syn-flood입니까? 가격이 비싼 웹 페이지가 있습니까? 다른 서비스였습니까?
스튜

웹 페이지라고 생각하지만 확실하지 않습니다. 또한 모니터 및 조사에 대한 팁을 환영합니다. 일부 액세스 로그가 이미 삭제되었습니다. 무엇을 더 찾아야합니까?
cwd

실제로 재부팅하면 문제가 해결되면 서버에 리소스가 누출 된 것 외에는 문제가 무엇인지 알 수 없습니다. 재부팅은 확실히 자체적으로 DDoS를 중지 할 수 없습니다. 이것이 DDoS라는 것을 어떻게 알 수 있습니까?
스튜

답변:


36

본질적으로 DDOS (또는 DOS)는 자원 소모입니다. 병목 현상을 제거 할 수는 없습니다. 병목 현상을 더 멀리 만 밀어 낼 수 있기 때문입니다.

AWS에서는 네트워크 구성 요소가 매우 강력하기 때문에 운이 좋았습니다. 업스트림 링크가 포화 상태임을 알고 매우 놀랍습니다. 그러나 디스크 I / O뿐만 아니라 CPU도 플러드하기 쉽습니다.

최선의 조치는 일부 모니터링 (SAR과 같은 로컬, Nagios 및 / 또는 ScoutApp과의 원격) 및 일부 원격 로깅 기능 (Syslog-ng)을 시작하는 것입니다. 이러한 설정을 통해 포화되는 리소스 (Syn 홍수로 인한 네트워크 소켓, 잘못된 SQL 쿼리 또는 크롤러로 인한 CPU,…로 인한 램)를 식별 할 수 있습니다. EBS 볼륨 (나중에 로그를 연구하기 위해)에 로그 파티션 (원격 로깅을 사용하도록 설정하지 않은 경우)이 있어야합니다.

공격이 웹 페이지를 통해 들어오는 경우 액세스 로그 (또는 이에 상응하는 내용)가 매우 유용 할 수 있습니다.



24

EC2 인스턴스를 Elastic Load Balancer 뒤에 배치하고 ELB 인스턴스의 트래픽 만 수락하여 EC2 인스턴스를 추가로 격리 할 수도 있습니다. 이로 인해 DDOS 공격을 관리하기 위해 아마존에 더 많은 부담을지게됩니다.

나는 여전히 모든 사용자에게 SSH가 열려 있다고 가정하므로 해당 포트를 고정 IP로 잠글 수 없다면 악성 트래픽이 계속 발생할 수 있습니다. DDOS 적중을 더 줄이기 위해 SSHd 포트를 더 모호한 것 (예 : 22 이외의 것)으로 변경할 수 있습니다 (대부분의 봇은 알려진 포트만 확인).

또한 로그를 모니터링하고 특정 IP를 차단하도록 ip 테이블을 임시로 수정할 수있는 fail2ban에 대해서도 언급합니다 (예 : 단일 IP 주소에서 호스트에 SSH로 6 번의 시도가 실패한 경우 해당 IP를 30 분 동안 차단할 수 있음) 몇 분 정도). (조던이 잘 언급했듯이) fail2ban은 프록시 된 IP를 차단할 것이기 때문에 프록시 된 IP (예 : ELB의 트래픽)를 차단하는 데 적합하지 않을 수 있습니다.

필자는 사용하지 않았지만 Apache mod_evasive도 조사 할 가치가 있습니다. 그러나 IP 기반 차단의 경우 fail2ban과 동일한 약점을 가질 수 있습니다.


+1 감사합니다. 실제로 나는 ssh를 닫았다;)
cwd

1
ELB 뒤에 있으면 fail2ban이 작동하지 않습니다. 일반적으로 iptables에서 IP를 차단하여 작동하기 때문입니다. 그러나 IP는 항상 ELB의 IP가됩니다. 내 설정에 fail2ban을 추가하려고 시도한 후에 깨달았습니다. 사용자가 ELB를 통해서만 액세스하는 경우 작동하지 않습니다.
Jordan Reiter

5

Apache를 사용하는 경우 mod_security를 사용하는 것이 좋습니다 . 대부분의 공급 업체에서 제공하는 핵심 규칙 세트는 환상적인 작업을 수행합니다.

또 다른 강화 단계는 웹 서버 수준에서 요청을 제한하는 것입니다. Nginx ., Apache 는 들어오는 요청을 제한하고 제한 할 수 있습니다.


굉장-환상적인 옵션 감사합니다!
cwd

2

실시간으로 나쁜 활동을 차단하는 데 사용하는 솔루션 IP가 AWS 및 다른 곳에서 나오는 것은 다음과 같습니다. LFD 차단 목록 구성의 CSF 방화벽에서 여기에있는 목록을 사용합니다 . 블랙리스트 _IP_ 블랙리스트 _IP_ 주소 es_ 라이브 _ 데이터베이스 _ 실시간

CSF 방화벽 용 블랙리스트 다운로드» http://myip.ms/files/blacklist/csf/latest_blacklist.txt

더 이상 불쾌한 AWS 트래픽은 없습니다.


1
이것은 질문에 대답하지 않습니다.
kasperd

2

보안 프리 세일즈 엔지니어로 콘텐츠 전송 네트워크에서 일하면서 편견이 있습니다.

그러나 컨텐츠 전송 네트워크에서 Ddos 완화 솔루션을 활용하면 원래 자원이 부족하지 않습니다. 사이트 앞에 F5로드 밸런서를 배치하는 것과 비슷하지만 전 세계 수천 곳으로 퍼져 있습니다.

좋은 CDN을 사용하면 AWS 방화벽에 설치 한 화이트리스트로 원점을 클로킹 할 수 있습니다. 따라서 공격자가 Amazon에서 정찰을 수행하면 모든 것이 차단되므로 IP 주소가 비어있게됩니다.

따라서 Ddos 공격은 트래픽이 공격자와 가능한 한 노드에 근접 할 때 차단됩니다. 이를 통해 보호하려는 자산에서 멀리 떨어진 Ddos 공격을 완화 할 수 있습니다.

좋은 CDN은 상태 확인 및 다른 위치로의 장애 조치 트래픽 (예 : 엉덩이, Azure, 랙 공간, 소프트 레이어, 물리적 DC 등)을 수행 할 수 있습니다. 또한 WAF가 있어야 애플리케이션 계층 소진 공격을 차단할 수 있습니다. RUDY, slowpost, slowloris 및 sqli, xss, rfi, lfi 등

기본적으로 cdn은 눈물 방울, icmp 공격, synfloods 등과 같은 네트워크 계층 공격도 차단합니다. cdn은 trey가 요청을 수락하고, 나쁜 트래픽을 걸러 내고, 좋은 트래픽을 전달하는 데 많은 양의 용량을 가지고 있기 때문에 Ddos 공격을 완화 할 수 있습니다. 따라서 ntp, DNS, ssdp, chargen 및 snmp 체적 공격과 같은 증폭 공격을 차단할 수 있습니다.

내가 지금까지 본 가장 큰 공격은 2014 년 7 월 321gbps입니다.이 공격 중에 20gbps에서 DNS 프로토콜 공격도있었습니다. 따라서 많은 수의 요청을 견딜 수 있도록 DNS 인프라도 복원력이 있어야합니다.

당신이 제공 한 설명에서, 당신은 모든 공격이 웹 서버, 앱 서버 또는 방화벽에서 소비되도록 많은 스레드를 열었던 고갈 공격에 노출 된 것처럼 보입니다. slowpost, slowloris 또는 RUDY와 유사합니다.

응용 프로그램 계층 소진 공격을 차단하려면 웹 응용 프로그램 방화벽 (WAF)이 필요합니다. 일반적인 네트워크 방화벽 (아마존 방화벽 및 차세대 방화벽 포함)은이를 차단할 수 없습니다. 요즘에는 업무용 방화벽이 전송되어 오늘날 모든 공격의 약 30 % 만 차단할 수 있습니다 (2014 년 11 월)



0

구성 서버 방화벽은 EC2의 소프트웨어 기반 VM에서 DDoS 완화에 대해 가장 잘 볼 수 있습니다. syslog 기능을 결합하면로드 밸런스 환경으로부터 보호 할 수 있습니다.

http://configserver.com/cp/csf.html


서버 결함에 오신 것을 환영합니다! 이것이 이론적으로 질문에 대답 할 수 있지만 여기에 답의 핵심 부분을 포함시키고 참조 할 수있는 링크를 제공하는 것이 바람직 합니다.
Scott Pack
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.