truefeel Ä«Æä °ü¸®ÀÚ
°¡ÀÔ: 2003³â 7¿ù 24ÀÏ ¿Ã¸° ±Û: 1277 À§Ä¡: ´ëÇѹα¹
|
¿Ã·ÁÁü: 2007.6.12 È, 12:20 pm ÁÖÁ¦: apache À¥¹æÈº® ¸ðµâ modsecurity¿ë À¥¼³Á¤ Åø, Remo |
|
|
ModSecurity ´Â ¾ÆÆÄÄ¡(apache)¿¡¼ »ç¿ëÇÏ´Â ´ëÇ¥ÀûÀÎ À¥¹æÈº® ¸ðµâÀÌ´Ù. ¾ÆÆÄÄ¡¿¡ ¸ðµâÀ» ¼³Ä¡Çϰí, ·ê(Rule) ¼³Á¤À» ÅëÇØ ¼³Á¤ÇÑ Á¶°Ç¿¡ ¸Â´Â °æ¿ì Â÷´ÜÀ» ÇÒ ¼ö ÀÖ´Ù. modsecurity 2.x À» ±âÁØÀ¸·ÎÇÑ °£´ÜÇÑ ¿¹ÀÌ´Ù.
- À¥¼¹ö¸íÀ» ¼û±â°Å³ª ¼ÓÀδÙ.
ÄÚµå: |
SecServerSignature "lighttpd"
|
- ƯÁ¤ ¸Þ¼ÒµåÀÇ »ç¿ë¸¸ Çã¿ëÇÑ´Ù. (POST, GET, OPTIONS, HEAD ¸Þ¼Òµå¸¸ Çã¿ë)
ÄÚµå: |
SecRule REQUEST_METHOD "!^((?:(?:POS|GE)T|OPTIONS|HEAD))$" \
"phase:1,log,auditlog,status:501,msg:'Method is not allowed by policy', severity:'2',,id:'960032',"
|
- ¿äûÇÑ HTTP ÇÁ·ÎÅäÄÝ ¹öÀüÀÌ 1.0, 1.1ÀÌ ¾Æ´Ò °æ¿ì Â÷´ÜÇÑ´Ù.
ÄÚµå: |
SecRule REQUEST_PROTOCOL "!^HTTP/(1\.[01])$" \
"t:none, deny,log,auditlog,status:505,msg:'HTTP protocol version is not allowed by policy', severity:'2',,id:'960034',"
|
- GET, HEAD ¸Þ¼Òµå´Â Content-Length°¡ 0ÀÌ ¾Æ´Ñ °æ¿ì´Â Â÷´ÜÇϰí, POST´Â Content-Length header°¡ ¾øÀ¸¸é Â÷´ÜÇÑ´Ù.
ÄÚµå: |
SecRule REQUEST_METHOD "^(GET|HEAD)$" "chain,deny,log,auditlog,status:400,msg:'GET or HEAD requests with bodies', severity:'2',,id:'960011',"
SecRule REQUEST_HEADERS:Content-Length "!^0?$"
SecRule REQUEST_METHOD "^POST$" "chain,deny,log,auditlog,status:400,msg:'POST request must have a Content-Length header',,id:'960012',severity:'4'"
SecRule &REQUEST_HEADERS:Content-Length "@eq 0"
|
¿ÀǼҽº IDSÀÎ snort¿¡ ±âº» ·êÀ» Á¦°øÇÏ´Â °Íó·³ ModSecurity ¿¡¼µµ modsecurity-core-rules À̸§À¸·Î ·ê ÆÄÀÏÀ» Á¦°øÇϰí ÀÖÀ¸´Ï Âü°íÇϱ⠹ٶõ´Ù. ·ê¿¡ ´ëÇØ¼´Â À̸¸ÇÏ°í ¿ø·¡ ²¨³»·ÁÇÑ ¾ê±â°Å¸®·Î µé¾î°¡ÀÚ.
ÀÌ·± ·ê ¼³Á¤À» À¥ÆäÀÌÁö¸¦ ÅëÇØ¼ ÇÒ ¼ö ÀÖ´Â REMO(Rule Editor for ModSecurity) beta¹öÀüÀ» 6¿ù¿¡ ¹ßÇ¥Çß°í, Howtoforge¿¡ Introducing Remo - An Easy Way to Secure an Insecure Online Application with ModSecurity Á¦¸ñÀ¸·Î REMO ´Ù·ç´Â ¹æ¹ý¿¡ ´ëÇÑ ±ÛÀÌ ¿Ã¶ó¿Ô´Ù. ÀÚ¼¼ÇÑ ±ÛÀº Howtoforge¿¡ ±ÛÀ» º¸½Ã°í, °£´ÜÇÏ°Ô ¼³¸íÇϸé ÀÌ·¸´Ù.
REMO¸¦ »ç¿ëÇϱâ À§Çؼ´Â ruby 1.8.2ÀÌ»ó, irb, sqlite3-ruby ȯ°æÀÌ ÇÊ¿äÇÏ´Ù. ¶ÇÇÑ ModSecurity ¸ðµâÀÌ ¼³Ä¡µÇÁö ¾ÊÀº Å×½ºÆ®³ª °³¹ß ¼¹ö, °³ÀÎ PC µî¿¡ ¼³Ä¡Çصµ ¹«°üÇÏ´Ù. ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇÑ ÈÄ http://¼¹ö:3000/main/index ·Î Á¢¼ÓÇÏ¸é ¼³Á¤È¸éÀ» º¼ ¼ö ÀÖ´Ù.
ÄÚµå: |
wget http://remo.netnea.com/files/remo-0.2.0.tar.gz
tar xvzf remo-0.2.0.tar.gz
cd remo-0.2.0
ruby script/server
|
[ À̹ÌÁö Ãâó : À§ howtoforge URL ]
REMOȸ鿡¼ ¸Þ¼Òµå¿Í URIµîÀ» »õ·Î ÀÔ·ÂÇÑ ´ÙÀ½, ¿øÇÏ´Â Á¶°ÇÀ» Á¤ÀÇÇÑ´Ù. ±× ÈÄ 'generate' ¹öưÀ» ´©¸£¸é ÆÄÀÏ·Î ·ê¼Â ÆÄÀÏÀ» ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ´Ù. ¹ÞÀº ·ê¼ÂÀ» ´ÙÀ½°ú °°ÀÌ apache ¼³Á¤¿¡¼ includeÇØÁÖ¸é µÈ´Ù.
ÄÚµå: |
<IfModule mod_security2.c>
Include /ÆÄÀϰæ·Î/rulefile.conf
</IfModule>
|
REMOÅøÀº ModSecurity ·ê »ý¼ºÀÇ ¸ðµç °ÍÀ» Á¦°øÇØÁÖÁö´Â ¾Ê´Â´Ù. modsecurity-core-rules ·ê ÆÄÀÏÀ» º¸¸é ·ê ¼³Á¤ÀÌ ½±Áö¾Ê´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ÀÌ ÅøÀº °í°³¸¦ ¼³·¹¼³·¹ Á£Áö ¾Êµµ·Ï º¸Á¶ÀûÀÎ ¿ªÇÒÀ» ÇÏ´Â Åø·Î ¿©±â¸é µÈ´Ù. |
|