해커 속도를 늦추는 방법


17

인도 델리의 일부 스크립트 아동은 지난 밤부터 사이트를 해킹하려고 시도했습니다. 그는 우리 서버의 요청을 거대한 중첩 루프로 만들어서 햇빛 아래서 모든 것을 시도하는 브라우저 스크립트를 작성했습니다.

그는 아무데도 가지 않고 기본 방어조차도 지나치지 않습니다 (그러나 그는 로그 파일을 채우고 있습니다).

우리는 403 Unauthorized요청이 도착하자마자 그의 요청을 다시 보내지 만, 요청을 더 빨리 차단할수록 그의 스크립트가 더 빨리 실행됩니다.

403 응답을 보내기 전에 일종의 "지연"을 소개하려고합니다. 길수록 좋습니다.

질문 : 나머지 사이트에 영향을주지 않고 어떻게 해킹 시도를 지연시킬 수 있습니까?

  • 나는 스레드에서 Sleep (15000)이 다른 사이트 방문자에게 나쁜 소식이라고 가정합니다.
  • 그를 위해 새로운 실을 돌리는 것은 지나친 것처럼 보입니다.
  • 지연된 응답을 보내는 다른 방법이 있습니까?
  • 브라우저를 얼마나 오래 기다리게 할 수 있습니까? 나는 그가 403 Unauthorized오류 를 얻 거나 결국 시간이 초과 되면별로 신경 쓰지 않는다고 생각 하므로 무한 / 무한 대기를 할 수도 있습니다.

36
IP 주소에서 오는 트래픽을 삭제하도록 방화벽을 구성 할 수없는 이유가 있습니까? 이 문제는 응용 프로그램 수준보다 네트워크 수준에서 더 잘 해결됩니다. 트래픽이 떨어지면 연결 요청 시간이 초과 될 때까지 앉아 있어야합니다. 그리고 전혀 응답하지 않으면 "무단"응답을 철회하는 것보다 훨씬 효과적입니다. 왜냐하면 검사 할 정보가 효과적으로 없기 때문입니다.
cdhowie

3
왜 그의 IP를 차단하지 않습니까?
Hogan

2
서버를 분리하십시오.
사예드 이브라힘 하시

내 대답을보십시오-이것은 표준적인 것입니다. 일부 침입 탐지 시스템을 가리키는 답변을 얻지 못한 것에 놀랐습니다.
Unreason

@Sayed, 서버를 분리하는 것은 당신이 할 수있는 최악의 일 중 하나입니다. DoSing 이외에도 security.stackexchange.com/q/181/33
AviD

답변:


37

웹 서버 앞에 별도의 방화벽이 있어야합니다. 자신의 IP에 관한 한 서버가 더 이상 존재하지 않도록 요청이 서버에 도달하지 못하도록 차단하려고합니다.


1
안녕하세요 Joel, 이것은 "허용 된"답변이지만, 질문이 StackOverflow에서 전송되었으므로 실제로 승인 할 권한이없는 것 같습니다. 나는 당신의 대답 +1을 주었다. 이것은 내가 할 일입니다.
Flipster

2
@flip 이름을 클릭 한 다음 오른쪽 페이지 아래에 '계정'링크를 클릭하십시오. 그러면 이것을 다시 스택 오버플로 계정에 연결하고 질문의 소유권을 되 찾을 수 있습니다.
Joel Coel

1
그러나 사례별로 이러한 문제를 처리하는 데 아무런 문제가 없습니다. (내 답변 참조)
Unreason

5

다양한 필터, 허니팟 및 기타 메커니즘에 따라 자동으로이를 수행하는 크고 작은 실제 침입 탐지 시스템이 있습니다.

예를 들어 , 로그 분석을 기반으로 조치를 수행하도록 구성 할 수있는 fail2ban 을 참조하십시오 .

이 방법으로 할 수 있습니다

  • 사이트의 다른 사용자에게 영향을주지 않고 공격이 발생하는 단일 IP 주소를 쉽게 필터링
  • 자신의 정규식을 작성하여 로그를 분석 할 수 있습니다
  • 당신은 당신의 자신의 행동을 정의 할 수 있습니다 (금지 대신 스로틀 등)

다른 더 큰 도구가 있습니다. 위키 백과의 섹션도 참조하십시오.

귀하의 질문이 asp.net으로 표시되어 있으므로 서버 플랫폼이 Windows라고 가정합니다. 여전히 리눅스 방화벽을 사용하는 것이 옵션이라면 위의 시도를 할 수 있습니다

  • WAN과 서버 사이에 리눅스 방화벽을 설치
  • 방화벽 컴퓨터에 IIS 로그에 대한 액세스 권한 부여
  • 그것을 분석하기 위해 정규식을 작성하십시오
  • 금지를 위해 기존 템플릿에 연결

이러한 방화벽은 매우 겸손한 하드웨어에서 실행될 수 있습니다 . 아주 적절한 링크 대역폭 은 linksys 라우터 ( 여기 참조 ) 와 같은 것으로 생각하십시오 .


4

특정 IP 주소 또는 주소 블록에서 오는 경우 블랙홀 경로를 추가 할 수 있습니다.

ip ro add blackhole 10.69.96.0/24
ip ro flush cache

iptables 규칙을 사용하여이 작업을 수행 할 수도 있지만 iptables 규칙이 선형으로 순회된다는 것을 알고 있으므로 발생하는 모든 잘못된 작성에 대해 iptables 규칙을 추가하기 시작하면 많은 CPU를 먹을 수 있습니다. 라우팅 테이블은 많은 수의 항목을 처리하도록 최적화되어 있습니다. 예를 들어, 상자 중 하나에 라우팅 테이블에 350K 항목이 문제없이 있습니다. 그러나 3K iptables 규칙이 있다면 상자는 거의 확실하게 넘어 질 것입니다.

이러한 연결에서 응용 프로그램이 몇 초 동안 휴면 상태에서 작업을 시도하면 합법적 인 요청이 리소스를 얻을 수없는 충분한 리소스가 연결될 수 있습니다.


1
+1. 이 상황에서 라우팅 대 netfilter의 상대적 효율성에 대한 정보가 마음에 들었습니다. 기능이 iptables있는 커널 ipset에서는 방대한 IP 주소 목록을 매우 효율적으로 일치시킬 수 있지만 ipset커널에서 사용할 수있는 주요 배포판은 없습니다 .
Steven 월요일

좋은 지적은, ipset은 이런 종류의 것들에 유용 할 것 같지만 쉽게 구할 수없는 것입니다. 이보다 일반적인 iptables에 최적화했다 NF-hipac라는 또 다른 시스템은, 그러나 메일 링리스트 및 최신 릴리스의 마지막 포스트는 2005 년부터입니다
숀 Reifschneider

3

당신은 할 수 없습니다 잘못 그를 둔화하는 것은 당신의 스레드가이 사람의 요청을 서비스하는 '바쁜'될 것입니다 있기 때문에 DoS 공격 아래 인 것처럼 아래 사이트를 가지고 있기 때문에 그 속도를 느리게하고 싶다. 당신이하고 싶은 것은 그의 IP를 차단하고 그것으로 끝나는 것입니다. 그 사람을 미끼로 할 이유가 없습니다.


2

당신이 찾고있는 것은 Apache 모듈 mod_evaisve입니다.

데비안 기반 배포판에서 다음을 사용하여 설치하십시오.

apt-get install libapache2-mod-evasive

CentOS / RHEL

yum install mod_evasive

mod_evasive는 Apache로 들어오는 요청을 추적하고 임계 값을 전달하는 iptables를 사용하여 IP를 금지합니다. 수천 개의 다른 IP를 가진 거대한 봇넷을 대상으로 할 때 HTTP 기반 DoS 공격 및 심지어 분산 DoS 공격에 대비 한 최고의 도구입니다.

별도의 데몬이 아닌 런타임 동안로드 된 Apache 모듈로 실행됩니다.

거대한 봇넷을 제어하는 ​​스마트 공격자는 여전히 봇넷의 각 좀비가 보낸 요청을 타이밍하여 웹 서버를 중단 시켜서 IP가 임계 값을 넘지 않도록 할 수 있습니다.

이 경우 이상 기반 IDS를 사용하고 시스템을 직접 교육해야합니다. 그러나 실제 큰 적이나 회사 안건이없는 사람이 아니면 이런 일이 일어날 가능성이 적습니다.


0

리눅스를 사용하는 경우 iptables를 사용하여 지연 시간이 큰 1 바이트 / s를 좋아하도록 제한하고 하나의 요청을 처리하는 데 영원히 걸리게하십시오 . 그것이 배포된다면 그다지 도움이되지 않습니다.

Windows에서 어떻게 수행할지 잘 모르겠지만 라우터 또는 하드웨어 방화벽에서 비슷한 옵션을 찾을 수 있습니다.

편집 : 위의 내용에 동의하면 서버 오류 질문과 비슷합니다.


2
이 기술은 공격자가 DDoS 공격에 사용하는 경우가 있습니다. 서버에서이 작업을 수행하는 것은 일종의 역효과를 낳습니다. <_ <
p-static

DDoS 공격에 사용된다고 말하는 것은 실제로 옳지 않습니다. 이런 종류의 효과는 DDoS 공격 의 목표 입니다. 서버 / 방화벽에서는 컴퓨터를 공격하는 것만이 유일한 실제 방어 (AFAIK)입니다.
Unreason

0

사람의 IP 주소가 꽤 일정하면 사용자 정의 HttpModule을 만들 수 있으며 web.config 파일의 변경 사항을 통해 플러그인을 연결 하고이 IP 주소로 인식되면 지연됩니다. 또는 404 코드를 다시 보내거나 다른 곳으로 리디렉션하도록 할 수 있습니다.


0

그들이 인도에 있다는 것을 알고 있습니다. 귀하의 사이트에 흐름이 멈출 때까지 증분으로 방화벽 수준에서 전체 IP 범위를 단순히 차단할 수없는 상당한 인도 고객이 있습니까? 확실히 확실한 솔루션은 아니지만 일반적인 '스크립트 아동'을 다루는 경우 낙담하고 다른 대상으로 보내면 충분합니다.

더 좋은 점은 하나의 IP에서 온 경우 자체 서비스 거부 공격으로 응답 할 수 있습니다. :)


그것은 실제로 해결책이 아니며 도끼로 젤리를 자릅니다. 그리고 B, DDOS는 정말 좋은 권장 사항이 아닙니다 (농담이라고 가정하지만) a) smth illagel을 수행 할 이유가 없습니다.
Trufa

0

수신 한 답변 외에도 문서 (로그, 추적)를 저장하고 서비스 제공 업체에 제공하려고합니다. 이는 제공자가 침략을 목격 할 수 있기 때문에 사고 중 가장 효과적입니다. 측정에 성공하더라도 추가 시도를 줄이는 것이 중요하며 공급자가 요청을 공격자의 서비스 공급자에게 에스컬레이션하는 데 도움이됩니다. 아마도 가장 효율적인 조치는 공격자의 공급자가 식별 된 공격자 인 고객에 대한 서비스를 거부하는 것입니다.


0

프로그래머라면 .net Begin_Request 이벤트로 작업하여 "sleep"을 넣을 수 있습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.