|
Ä¿ÇÇÇâÀÌ ³ª´Â *NIX
Ä¿ÇǴнº
½Ã½ºÅÛ/³×Æ®¿÷/º¸¾ÈÀ» ´Ù·ç´Â °÷
|
|
|
|
ÀÌÀü ÁÖÁ¦ º¸±â :: ´ÙÀ½ ÁÖÁ¦ º¸±â |
±Û¾´ÀÌ |
¸Þ½ÃÁö |
truefeel Ä«Æä °ü¸®ÀÚ
°¡ÀÔ: 2003³â 7¿ù 24ÀÏ ¿Ã¸° ±Û: 1277 À§Ä¡: ´ëÇѹα¹
|
¿Ã·ÁÁü: 2012.1.04 ¼ö, 9:58 am ÁÖÁ¦: php¿¡¼ hash table DoS(HashDoS) °ø°Ý ¹æ¾î |
|
|
HashDoS °ø°Ý¿¡ ´ëÇؼ´Â 'À¥¼¹ö hash table DoS(HashDoS) °ø°Ý (Áß¿ä. PHP, ASP µî ÇØ´ç)' À» Àо±â ¹Ù¶õ´Ù.
Àοë: |
À¥¼¹ö¿¡¼´Â Request POST, GET º¯¼ö¸¦ hash ±¸Á¶·Î °ü¸®ÇÑ´Ù. ±×·±µ¥ POST ¿äû ÆĶó¹ÌÅͼö°¡ »ó´çÈ÷ ¸¹À» °æ¿ì(GET ¿äûÀº ±æÀÌ Á¦ÇÑÀÌ ÀÖÀ¸¹Ç·Î ¹®Á¦°¡ µÇÁö ¾ÊÀ½)¿¡ hash Ãæµ¹ÀÌ ¸¹ÀÌ ¹ß»ýÇÏ°Ô µÇ¾î CPU load°¡ »ó´çÈ÷ ¿Ã¶ó°¡°Ô µÈ´Ù. ÀÌ·± ¹®Á¦´Â PHP5, Asp.Net, Java, V8 ÀÚ¹Ù½ºÅ©¸³Æ® ¿£Áø µî¿¡¼ ¹ß»ýÇÑ´Ù. |
Ãë¾àÁ¡À» ÇØ°áÇϰųª °ø°ÝÀ» ¾àȽÃÅ°´Â ¹æ¹ýÀÌ´Ù.
1. php 5.4.0 RC¹öÀü°ú ¾ÕÀ¸·Î ³ª¿Ã PHP 5.3.9 ¹öÀü (Ãë¾àÁ¡ ÇØ°á)
max_input_vars ¼³Á¤À¸·Î ÆĶó¹ÌÅÍ °³¼ö¸¦ Á¦ÇÑÇÑ´Ù.
* PHP 5.3.9 Released(HashDoS ¹®Á¦ ÇØ°á ¹öÀü) (2012.1.11(¼ö) ³»¿ë ¼öÁ¤)
2. ±âÁ¸ php¹öÀü¿¡¼ (¿Ïº®ÇÑ ÇØ°áÀÌ ¾Æ´Ñ °ø°ÝÀ» ¾àȽÃÅ°´Â ¹æ¹ý)
php.ini ¼³Á¤°ª (default)
Àοë: |
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
post_max_size = 8M
|
max_input_timeÀº ¿äû µ¥ÀÌÅ͸¦ ÆĽÌÇϴµ¥ °É¸®´Â ÃÖ´ë ½Ã°£ÀÌ´Ù.
max_input_timeÀ¸·Î ÆÄ½Ì ½Ã°£ Á¦ÇÑ, post_max_sizeÀ¸·Î POST »çÀÌÁ Á¦ÇÑÇÔÀ¸·Î½á ÆĶó¹ÌÅͼö¸¦ ¾î´ÀÁ¤µµ(?) Á¦ÇÑÇÏ´Â È¿°ú¸¦ °®´Â´Ù. ¿Ïº®ÇÑ ÇØ°áÀÌ ¾Æ´Ñ °ø°ÝÀ» ¾àȽÃÅ°´Â ¹æ¹ýÀÌ´Ù.
±âÁ¸¿¡ ½×¾ÆµÐ À¥·Î±×¸¦ ºÐ¼®Çؼ
1. ½ºÅ©¸³Æ®ÀÇ ½ÇÇà ½Ã°£ÀÌ ¾ó¸¶³ª °É¸®´ÂÁö ((max_input_time ¼³Á¤À§ÇØ. À¥·Î±× ½Ã°£Àº Á¤È®È÷´Â Àü¼Û½Ã°£ + max_input_time + max_execution_time°ú °ü·Ã)
2. POST ¿äûÀÇ »çÀÌÁ ºÐ¼®ÇÑ´Ù. (post_max_size ¼³Á¤À§ÇØ)
¼öÄ¡¸¦ ÀûÀýÈ÷ ÆľÇÇÑ ÈÄ ¼ºñ½º¿¡ ÁöÀå¾ø´Â Á¤µµ·Î Á¶ÀýÇÑ´Ù.
(¿¹ : max_input_time = 10, post_max_size = 100K)
´Ü, ÆÄÀÏÀÌ ¾÷·ÎµåµÇ´Â ¼ºñ½º´Â POST»çÀÌÁî°¡ Å©¹Ç·Î post_max_size´Â Àû¿ëÇϱ⠾î·Æ°í, max_input_time¸¸ ¼³Á¤Çغ¼ ¼ö ÀÖ´Ù.
3. ¼öÈ£½Å(suhosin) php º¸¾È ¸ðµâ »ç¿ë (Ãë¾àÁ¡ ÇØ°á)
Àοë: |
suhosin.post.max_value_length = 1000000
suhosin.post.max_vars = 500
suhosin.request.max_vars = 500
|
¼öÈ£½Å ¸ðµâÀ» »ç¿ëÇϸé À§ ¼³Á¤¸¸À¸·Îµµ ¹®Á¦°¡ ÇØ°áµÈ´Ù. ÃÖ´ë ÆĶó¹ÌÅÍ °³¼ö¸¦ 500°³·Î Á¦ÇÑÇÑ °æ¿ìÀÌ´Ù. default´Â 1000ÀÌ´Ù. ´ÙÀ½°ú °°ÀÌ Â÷´ÜµÇ¾úÀ½À» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
Àοë: |
suhosin[95705]: ALERT - configured POST variable limit exceeded - dropped variable '..»ý·«..' (attacker 'xxx.xxx.xxx.xxx', file '/..»ý·«../index.html')
|
4. apache¿Í nginx¿¡¼ POST»çÀÌÁî Á¦ÇÑ (100K·Î Á¦ÇÑÇÏ´Â ¿¹)
POST»çÀÌÁî Á¦ÇÑÀ» php¼³Á¤ ¿Ü¿¡ À¥¼¹ö ÀÚü ¼³Á¤µµ Àû¿ëÇÏ°í ½Í´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù. À§ 2¹ø¿¡¼ ¼³¸íÇÑ´ë·Î ±âÁ¸ À¥·Î±×¸¦ ºÐ¼®Çؼ ÀûÀýÇÑ POST»çÀÌÁ ÆľÇÇؼ Àû¿ëÇÑ´Ù.
1) apache
LimitRequestBody 100000
2) nginx (defaul´Â 1MB)
client_max_body_size 100k;
¡Ø ´ÙÀ½Àº php.iniÀÇ max_input_time ¼³Á¤À» Âø°¢ÇÏ´Â ºÐµéÀÌ ÀÖ¾î Á¤¸®Çß´Ù. (1.4(¼ö) 19½Ã)
À§¿¡¼ ¸»ÇÑ´ë·Î, php.ini ¼³Á¤ Áß max_input_timeÀº HTTP '¿äû µ¥ÀÌÅÍ(POST, GET)¸¦ ÆĽÌÇϴµ¥ °É¸®´Â ½Ã°£'ÀÌ´Ù. 'input' À̶ó´Â ´Ü¾î°¡ µé¾î°¡±â ¶§¹®¿¡, Àü¼ÛµÇ´Â ½Ã°£À¸·Î Âø°¢ÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. ÇÏÁö¸¸ ¸ðµçµ¥ÀÌÅ͸¦ ´Ù ¹ÞÀº ¼ø°£ºÎÅÍ ½ÇÇà ½ÃÀÛÇϱâ±îÁöÀÇ ½Ã°£ÀÌ´Ù. Áï, ¾Æ·¡¿¡¼ 3¹ø¿¡ ÇØ´çÇÏ´Â ±¸°£ÀÌ´Ù.
Àοë: |
1) POST ¿äû -> 2) POST µ¥ÀÌÅÍ Àü¼Û -> 3) Àü¼ÛÈÄ ÆÄ½Ì -> 4) ½ÇÇà
|
Á¤»óÀûÀÎ ¿äûÀ̶ó¸é ÆĽÌÇϴµ¥ °É¸®´Â ½Ã°£Àº ª´Ù. ±×·¡¼ ÀÌ ¼öÄ¡¸¦ ÁÙÀÓÀ¸·Î½á ¾î´ÀÁ¤µµÀÇ È¿°ú°¡ ÀÖ´Ù. |
|
À§·Î |
|
|
windofme ¼Õ´Ô
|
¿Ã·ÁÁü: 2012.3.19 ¿ù, 3:43 pm ÁÖÁ¦: php 5.3.9¿¡ ¹ö±×°¡ Á¸Àç ÇÕ´Ï´Ù. |
|
|
php 5.3.9¹ö±×°¡ Á¸Àç ÇÕ´Ï´Ù.
5.3.10À¸·Î ÆÐÄ¡ ÇÏ¼Å¾ß ÇÏ°Ú½À´Ï´Ù. |
|
À§·Î |
|
|
|
|
»õ·Î¿î ÁÖÁ¦¸¦ ¿Ã¸± ¼ö ÀÖ½À´Ï´Ù ´ä±ÛÀ» ¿Ã¸± ¼ö ÀÖ½À´Ï´Ù ÁÖÁ¦¸¦ ¼öÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù ¿Ã¸° ±ÛÀ» »èÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù ÅõÇ¥¸¦ ÇÒ ¼ö ¾ø½À´Ï´Ù
|
Powered by phpBB © 2001, 2005 phpBB Group
|