Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ
  Apache ¿¡¼­ DoS °ø°Ý ¸·±â (2.x±îÁö Æ÷ÇÔµÈ ±Û) ÀÛ¼ºÀÏ : 2003/08/26 01:13
 
  • ±Û¾´ÀÌ : ÁÁÀºÁøÈ£ ( http://coffeenix.net/ )
  • Á¶È¸¼ö : 6577
     
    ÀÛ¼ºÀÚ : ÁÁÀºÁøÈ£(truefeel, http://coffeenix.net/ )
    ÀÛ¼ºÀÏ : 2003.8.20(¼ö) apache v1.3.x
    ¼öÁ¤ÀÏ : 2003.8.25(¿ù) apache v2.x ºÎºÐ Ãß°¡

    ƯÁ¤ URLÀ̳ª IPÀÏ °æ¿ì³ª ƯÁ¤ÇÑ ºê¶ó¿ìÀú¸¦ ÀÌ¿ëÇÏ¿© DoS(Denial of Service, ¼­ºñ½º°ÅºÎ)
    °ø°ÝÀÌ µé¾î¿Â´Ù¸é httpd.conf ¿¡¼­ SetEnvIf, SetEnvIfNoCase µî°ú Allow, Deny ¼³Á¤À¸·Î
    °£´ÜÈ÷ ¸·À» ¼ö ÀÖ°ÚÁö¸¸ ÀÏÁ¤ÇÑ À¯ÇüÀÌ ¾ø´Ù¸é ÇØ°áÁ¡À» ã±â°¡ ½±Áö ¾Ê´Ù.

    ´ÙÇàÈ÷ Apache¿ë mod_dosevasive ¸ðµâ·Î DoS °ø°ÝÀ» ½±°Ô ¸·À» ¼ö ÀÖ´Ù.
    ¸çÄ¥Àü 1.7¹öÀü ¹ßÇ¥·Î apache 2.x¿¡¼­µµ Á¤»óÀûÀ¸·Î ÀÌ ¸ðµâÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô µÆ´Ù.

    1. mod_dosevasive ¼³Ä¡

    http://www.nuclearelephant.com/projects/dosevasive/
    ¿¡¼­ mod_dosevasive (ÇöÀç ÃֽŹöÀüÀº 1.7)À» ¹Þ¾Æ¿Â´Ù.

    1) ±âÁ¸¿¡ »ç¿ëÇÏ´ø apache 1.3.x¿¡ ¸ðµâ¸¸ Ãß°¡ÇÒ ¶§

    mod_dosevasive.tar.gz À» Ǭ´ÙÀ½ apxs·Î ¼³Ä¡

    ----------------------------------------------
    # tar xvfz mod_dosevasive.tar.gz  
    # cd dosevasive
    # /bin/apxs -iac mod_dosevasive.c
    ...
    [activating module `dosevasive' in /usr/local/apache/conf/httpd.conf]
    cp mod_dosevasive.so /usr/local/apache/libexec/mod_dosevasive.so
    chmod 755 /usr/local/apache/libexec/mod_dosevasive.so
    ...
    ----------------------------------------------

    httpd.confÀÇ LoadModule, AddModule´Â apxs°¡ ¾Ë¾Æ¼­ Ãß°¡ÇØÁØ´Ù.

    2) apache 1.3.xºÎÅÍ »õ·Î ÄÄÆÄÀÏÇÒ ÇÒ ¶§

    mod_dosevasive.tar.gz À» apache_source_Ȩ/src/modules ¿¡ Ǭ ´ÙÀ½
    ±âÁ¸¿¡ apache ÄÄÆÄÀÏÇÏ´Â °Í°ú µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î ÇϵÇ, --add-module=... ¿É¼Ç¸¸
    Ãß°¡ÇØÁØ´Ù.

    ----------------------------------------------
    ./configure --prefix=/usr/local/apache \
    --enable-module=all --enable-shared=max \
    --add-module=src/modules/dosevasive/mod_dosevasive.c   <-- Ãß°¡ÇÔ
    make
    make install
    ----------------------------------------------

    3) apache 2.x¿¡ ¸ðµâ¸¸ ºÙÀÏ ¶§

    /bin/apxs -iac mod_dosevasive20.c

    2. ¼³Á¤

    httpd.conf ¿¡ ¾Æ·¡ ¼³Á¤ÀÌ ÀÖ´ÂÁö È®ÀÎÇÑ´Ù.

    apache 1.3.x
    ----------------------------------------------
    ...
    LoadModule dosevasive_module  libexec/mod_dosevasive.so
    ...
    AddModule mod_dosevasive.c
    ----------------------------------------------

    apache 2.x
    ----------------------------------------------
    LoadModule dosevasive20_module modules/mod_dosevasive20.so
    ----------------------------------------------

    httpd.conf¿¡´Â ´ÙÀ½°ú °°ÀÌ ¼³Á¤À» Ãß°¡ÇÑ´Ù.
    ( ´Ü, ¾Æ·¡ ¼³Á¤ Áß¿¡ apache 2.xÀÏ ¶§´Â < IfModule mod_dosevasive20.c> ·Î )
    ----------------------------------------------
    < IfModule mod_dosevasive.c>
        DOSHashTableSize    3097
        DOSPageCount        3
        DOSSiteCount        50
        DOSPageInterval     1
        DOSSiteInterval     1
        DOSBlockingPeriod   30
    < /IfModule>
    ----------------------------------------------
    DOSHashTableSize    3097

    hash tableÀÇ Å©±â. IP, URIµîÀ» ºÐ¼®Çϱâ À§ÇÑ °ø°£À¸·Î ¾²ÀÌ´Â °Í °°Àºµ¥ Á¤È®È÷´Â
    ¸ð¸£°Ú´Ù. Á¢¼ÓÀÌ ¸¹Àº ¼­¹öÀÌ¸é ¼öÄ¡¸¦ ³ôÀδÙ.

    DOSPageCount        3
    DOSPageInterval     1

    DOSPageInterval¿¡¼­ ÁöÁ¤ÇÑ ½Ã°£(ÃÊ´ÜÀ§)µ¿¾È °°Àº ÆäÀÌÁö¸¦ 3¹ø ¿äûÇÑ °æ¿ì
    ÇØ´ç Ŭ¶óÀÌ¾ðÆ® IP¸¦ ºí·°Å·ÇÑ´Ù. ºí·°Å·µÇ´Â µ¿¾È¿¡ »ç¿ëÀÚ¿¡°Ô´Â 403(Forbidden)
    Äڵ尡 Àü¼ÛµÈ´Ù.

    DOSSiteCount        50
    DOSSiteInterval     1

    DOSSiteInterval¿¡¼­ ÁöÁ¤ÇÑ ½Ã°£µ¿¾È ¾î´À ÆäÀÌÁö³ª À̹ÌÁöµç ¿äû °Ç¼ö°¡ 50¹øÀ» ³Ñ´Â
    °æ¿ì ÇØ´ç Ŭ¶óÀÌ¾ðÆ® IP¸¦ ºí·°Å·ÇÑ´Ù. 403ÄÚµå º¸³»´Â °ÍÀº ¸¶Âù°¡Áö.
    HTML ³»¿¡ À̹ÌÁö°¡ 10°³ÀÌ¸é ¿äû °Ç¼ö´Â HTMLÆ÷ÇÔÇÏ¿© 11¹øÀÌ µÇ¹Ç·Î À̹ÌÁö°¡ ¸¹Àº
    »çÀÌÆ®´Â ¼ýÀÚ¸¦ Å©°ÔÇÑ´Ù.

    DOSBlockingPeriod   30

    ºí·°Å·µÈ IP´Â 30Ãʵ¿¾È Á¢¼ÓÀ» ÇÒ ¼ö ¾ø´Ù.

    3. ¸ðµâ »ç¿ëÀ» ÁßÁöÇÏ·Á¸é

    Â÷´Ü ±â´ÉÀ» ÀÌ¿ëÇÏÁö ¾Ê±â À§ÇØ

    DOSPageCount 0
    DOSSiteCount 0

    ¿Í °°ÀÌ ÇÏ¸é ¸ðµâ ³»ºÎÀÇ default°ªÀ» ÀÌ¿ëÇØ¼­ µ¿ÀÛÇϹǷΠLoadModule, AddModule¸¦
    ÁÖ¼® ó¸®ÇÏ´Â ¹æ¹ýÀ» ½á¾ßÇÑ´Ù. ¶Ç´Â Count°ªÀ» »ó´çÈ÷ Å« ¼ö¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ°Ú´Ù.

    4. Â÷´ÜÇÏ´ÂÁö Å×½ºÆ®

    °£´ÜÇÑ Å×½ºÆ® Åø·Î test.plÀ» Á¦°øÇÑ´Ù.
    12¹øÂ° ÁÙ¿¡

    printf("%03d  ", $_ );

    ¸¦ Ãß°¡Çϰí

    apache¸¦ ½ÇÇà½ÃŲ ´ÙÀ½ perl test.plÀ» ÇØº¸¸é 200 OK, 403 Forbidden µÈ °ÍÀ» ½±°Ô
    È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

    DOSPageCount, DOSSiteCount ¼öÄ¡¸¦ ³Ê¹« ³·°Ô Çϸé Á¤»óÀûÀÎ Á¢¼Ó¿¡ ´ëÇØ¼­µµ Â÷´ÜµÉ ¼ö
    ÀÖÀ¸¹Ç·Î ÁÖÀÇÇØ¾ß ÇÑ´Ù. ¼öÄ¡¸¦ ³·Ãß°í, °°Àº ÆäÀÌÁö¸¦ reload(Ctrl+R)¸¦ ¿©·¯¹øÇß´õ´Ï
    ¹Ù·Î 403 ÆäÀÌÁö°¡ µîÀå.

    403 ÆäÀÌÁö¸¦ º°µµ·Î ¸¸µå´Â °ÍÀÌ ÁÁÀ» µí ½Í´Ù. httpd.conf¿¡ ErrorDocument 403 ... ¼³Á¤
    À¸·Î htmlÀ» ¸¸µé¾îµÎ¸é ¹æ¹®ÀÚ¿¡°Ô µµ¿òÀÌ µÇÁö ¾ÊÀ»±î...

    ÀÌÁ¨ ab, lynx µîÀ¸·Î °Ô½Ã¹° Á¶È¸¼ö¸¦ ¼ø°£ÀûÀ¸·Î ¿Ã¸°´Ù°Å³ª, ½Ã½ºÅÛ ·Îµå¸¦ Áõ°¡½ÃŰ´Â
    °Í±îÁöµµ ¾î´ÀÁ¤µµ ¸·À» ¼ö ÀÖÀ» °ÍÀÌ´Ù.

    ¡Ø syslog ·Î ·Î±× ³²±â´Â ±â´É°ú  DOSEmailNotify, DOSSystemCommand ¿É¼ÇÀº Á¦´ë·Î Àû¿ë
       µÇÁö ¾Ê¾Æ ÀÌ ±Û¿¡ ÀûÁö ¾Ê¾Ò´Ù. Á¤»óµ¿ÀÛÀÌ È®ÀÎµÇ¸é ±× ¶§ Ãß°¡ÇÒ °ÍÀÌ´Ù.


    Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ / URL : http://coffeenix.net/board_view.php?bd_code=37