포럼
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
HashDos 공격과 관련된 내용
2012.01.02 14:24
HashDos
HashDos 공격은 많은 HTTP Request Parameter (String 형태)를 만들어,
hash contension이 나도록 하여 CPU 부하를 주도록 하는 것입니다.
Web Server에서는 HTTP Request를 HashMap으로 만들어 관리합니다.
Request Parameter를 hash contention이 일어나도록 만들어 공격하는 것입니다.
약 2MB 정도의 POST HTTP Request 한번이면, i7 core 서버를 약 2분간 CPU 100% 만들어 낼 수 있습니다.
HashDos 공격 패턴
현재 공격 패턴 제작 방법을 web에서 찾을 수 있습니다.
http://koto.github.com/blog-kotowicz-net-examples/hashcollision/kill.html
HashDos 공격에 영향이 있는 경우
HTTP GET에는 길이 제한이 있으니, 해당하지 않습니다.
HTTP POST의 경우 길이 제한이 있고, 크지 않다면 (2MB이하) 역시 문제 되지 않습니다.
HTTP POST의 경우 parameter 개수 제한을 해야 합니다.
만약 여의치 않은 경우 스레드 하나 당 최대 동작 시간을 지정할 수 있다면 이 방법도 대응책이 될 수 있습니다. (max_input_time 갑 수정)
PHP
PHP 5.4.0 RC4로 업데이트 한 후 php.ini에서 'max_input_vars'에서 최대 HTTP POST Parameter 개수를 설정할 수 있습니다.
PHP 대처코드는 현재 릴리즈 버전이 아닌 php.5.4.0 RC4 버전에 대해서만 패치가 되어 있기 때문에
그보다 낮은 버전의 php버전을 사용하는 서비스는 낮은 버전의 php source에서
소스변경부분을 수동으로 추가하여 재빌드하여 php module을 생성해야 합니다.
(서비스에서 사용중인 php extension의 경우도 모두 재빌드가 필요합니다.)
변경 소스는
http://svn.php.net/viewvc?view=revision&revision=321003
에서 확인할 수 있음
낮은 버젼의 경우 아래 3개의 파일을 수정해서 재빌드 하면 됩니다.
php/php-src/branches/PHP_5_4/main/main.c
php/php-src/branches/PHP_5_4/main/php_globals.h
php/php-src/branches/PHP_5_4/main/php_variables.c
===========================================================
위 내용은 DDOS 관련 공유된 내용을 XE 사용자들을 위해서 다시 토스해 드리는 것입니다.
개인적으로 서버 호스팅 하시는 분들은 적용 하시면 될 것 같습니다.
현재 XE는 Stage 서버에서 PHP 5.3.9 RC 버젼을 사용해서 max_input_vars를 테스트 중에 있습니다. (SVN을 확인해 보니 PHP 5.3.9 RC 버젼도 max_input_vars가 패치 되었더군요)
현재 이 글도 PHP 5.3.9 RC에서 작성 중입니다.
댓글 3
-
EcusE
2012.01.02 15:16
-
파이델
2012.01.03 18:02
그런대 200kb 제한은 언제 풀리나요?
아주 쬐끔 급한 패치이긴 한데... 파일(400kb)만 수정하면 되는데...
자꾸 시간은 흘러... 계획에 차질이... ㅜㅜ
-
SkyKiDS
2012.01.08 13:00
원래 HTTP GET 메소드는 길이 제한이 없는 것으로 알고 있습니다. 단지 IE 옛 판(구 버전)에서 2048(-1?)로 제한했기 때문에 길이를 제한한 것처럼 알려졌을 뿐이지요.
아무튼 정말 보안 관련해서는 나날이 위험해지고, 이에 대한 대처는 항상 염두에 두어야 하니 참 바쁘군요.
보잘 것 없는 제 사이트에도 한 번 대규모 공격(트랙백)이 날아왔었는데, XE는 잘 막아주었더랍니다. :)
modsecurity 관련 글을 링크합니다.
https://twitter.com/#!/ModSecurity/status/152399717974810624
http://mod-security.svn.sourceforge.net/viewvc/mod-security/crs/trunk/base_rules/modsecurity_crs_23_request_limits.conf?revision=1883