it-swarm-korea.com

소프트웨어 응용 프로그램이 DoS 또는 DDoS를 어떻게 방어 할 수 있습니까?

DoS 공격에 대한 대부분의 솔루션은 애플리케이션 수준이 아닙니다. 프록시 서버를 사용하는 경우 응용 프로그램 수준에서 DoS에 대해 가능한 대책은 무엇입니까?

34
Phoenician-Eagle

무엇보다도, DoS (서비스 거부)와 DDoS (분산 서비스 거부)를 구별하는 것이 중요합니다. 대부분의 경우 DoS는 소프트웨어 취약성으로 인해 발생합니다. 여기에는 공격 방지 수단으로 패치 및 업데이트가 제공됩니다. 취약하지 않은 서비스에 대한 DoS는 분산 공격이 아니며 효과가 없으며 오늘날에는 사용되지 않습니다. 귀하의 질문의 핵심이라고 생각되는 DDoS에 대해 이야기하면 상황이 약간 복잡해집니다. 거대한 PPS의 경우 일반적으로 큰 도움이되지 않음)-좀비 머신의 경우와 같이 다른 위치에서 공격이 발생합니다. 나는 제안 할 수있다 :

  1. 길고 무거운 요청 거부 (예 : Apache의 MaxKeepAliveRequests)-보다 가벼운 방식으로 연결을 처리하도록 서버 소프트웨어를 구성합니다.
  2. oS-IP 스택 튜닝 (예 : FreeBSD의 sysctl)을 구성하십시오.
  3. 사용하지 않는 포트를 닫고 사용하지 않는 서비스를 제거하십시오.
  4. mod_evasive-공격에 대한 아파치 모듈;
  5. 예를 들어 경량 서버를 프론트 엔드-nginx로 설정하십시오.

이 주제는 논의하기에 긴 주제입니다.이 권장 사항을 멈추지 말고 더 정확한 정보를 얻으려면 Google을 추천하는 것이 좋습니다.

18
anonymous

현재 DDoS에 대한 부분을 무시합니다. 이는 대부분 네트워크에서 또는 서버 인프라에서 중지해야하기 때문에 (IIS/Apache/다른 웹 서버 포함) ...

또한 애플리케이션 계층의 DoS (분산되지 않은)는 여전히 피해로 판단되는 몇 가지 다른 유형의 공격으로 간주 될 수 있음을 이해하는 것이 중요하다고 생각합니다.

  • 영구 DoS-공격이 일단 마운트되면 서버/앱 재시작, 구성 재설정, 데이터 삭제 등과 같은 수동 (관리자) 개입까지 중단되지 않습니다.
  • 임시 DoS-공격 기간 동안 지속되거나 곧 종료됩니다.
  • 플러딩 (Flooding)-서버가 대량의 요청으로 서버를 늪으로 옮기면 서버가 순차적으로 처리해야하므로 합법적 인 사용자가 시스템에 액세스하지 못하도록 차단합니다. (대부분의 DDoS는이 범주에 속합니다).

각 범주에는 공격에 대한 전술이 다르며 물론 예방할 수있는 다른 솔루션이 있습니다. 그러나 DoS로 이어질 수있는 몇 가지 코딩 결함이 있지만 이는 전체 목록에서 FAR입니다.

  • (특정 유형의) 버퍼 오버플로
  • SQL 주입-DROP TABLE
  • 사용자 제어 데이터 루프- "무한"으로 만들 수 있습니다
  • DB 연결 및 파일 핸들을 닫지 않고 사용자가 이들 중 많은 것을 강제로 열 수 있습니다.
  • XML 폭탄-공격자는 DTD 엔터티를 사용하여 다중 프로세서 시스템에서 여러 메모리의 Gigs와 100 % CPU를 쉽게 사용할 수 있습니다 ( http://msdn.Microsoft.com/en-us/magazine/ee335713 참조). aspxhttps://stackoverflow.com/questions/1906927/xml-vulnerabilities )
  • 사용자 계정 잠금-잠금 메커니즘을 구현하려면 로그인 메커니즘을 사용하는 것이 좋습니다. 즉, 5 개의 잘못된 비밀번호로 사용자를 잠그십시오. 이것이 "영구적"잠금이고 모든 사용자 이름 (또는 그 상당 부분)을 발견 할 수있는 경우, 모든 사용자 이름 (또는 상당 부분)을 발견 할 수 있고 의도적으로 잘못된 암호를 5 번에 넣어 사용자를 효과적으로 잠글 수 있습니다. 관리자에게도이 작업을 수행하면 다른 사용자의 잠금을 해제하기 위해 로그인 할 수도 없습니다.
  • 작은 요청은 사용자가 여전히 대기 중인지 확인하지 않고 매우 큰 응답 또는 긴 처리 시간이 필요합니다.
  • 단일 요청으로 여러 프로세스를 시작합니다 (예 : 한 번에 많은 이메일을 보냅니다.
  • 작은 디스크/작은 데이터베이스/메일 서버/제한된 폴더 할당량 등을 가진 서버에 대용량 파일 업로드.
  • "비즈니스"DoS-예 : 많은 지원 요청 보내기

예, DoS로 이어 지거나 범람을 허용 할 수있는 다양한 패턴과 결함이 많이 있습니다. 단일 등급의 공격이 아니라 하나의 피해 범주입니다.
이들 모두를 보호하려면 각각을 처리하고 적절한 제어를 구현 한 다음 위협 모델링을 수행하여 가용성에 영향을 줄 수있는 다른 관련 위협이 있는지 확인해야합니다.

시스템에 따라 고려할 수있는 일반적인 권장 사항 중 하나는 이러한 모든 공격에 대한 은색 총알이 아니라 "감시"서비스를 구현하는 것입니다. 이 서비스는 응용 프로그램을 모니터링하고 필요한 경우 다시 시작하고 필요한 경우 관리자에게 알리는 등 모든 웹 응용 프로그램에 권장되지 않습니다 ....

14
AviD