WebDAV脆弱性狙いのワーム対策
アクセスログが
SEARCH /\x90\x02\x90\x02・・・(略)
とめっちゃ長い例のワーム(W32.HLLW.Gaobot)について。
ワームの目標はIISなので実害はないが、ログがウザいので隔離したい。
まず、ロググッバイ。
sed '/SEARCH/d' /usr/local/apache2/logs/access_log > /usr/local/apache2/logs/access_log.tmp mv /usr/local/apache2/logs/access_log.tmp /usr/local/apache2/logs/access_log
方法1 SetEnvIf
リクエストで判別する。
vi /usr/local/apache2/conf/httpd.conf
SetEnvIf Request_Method "(GET)|(POST)|(PUT)|(DELETE)|(HEAD)" log SetEnvIf Request_URI "_vti_inf\.html$" warn !log SetEnvIf Request_URI "^/_mem_bin/" warn !log SetEnvIf Request_URI "^/_vti_bin/" warn !log SetEnvIf Request_URI "^/c/" warn !log SetEnvIf Request_URI "^/d/" warn !log SetEnvIf Request_URI ^/scripts/ warn !log SetEnvIfNoCase Request_URI "^/msadc/" warn !log #Code Red SetEnvIf Request_URI "default\.ida" warn !log #WINNTAutoAttack SetEnvIfNoCase Request_URI "null\.ida" warn !log #NIMDA SetEnvIf Request_URI "cmd\.exe" warn !log SetEnvIf Request_URI "root\.exe" warn !log SetEnvIf Request_URI "Admin\.dll" warn !log SetEnvIf Request_URI "(\.gif|\.jpe?g|\.png|\.css|\.js)$" !log SetEnvIf Remote_Addr "^192\.168\." !log SetEnvIf Remote_Addr "^127\.0\." !log SetEnvIf referer "example\.com" !log CustomLog /var/log/apache2/access.log combined env=log CustomLog /var/log/apache2/warn.log combined env=warn
いっそのこと
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
を
LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
にして414(Request-URI Too Long)のときは捨ててしまうっていうのもアリかと。
方法2 VirtualHostで囮を作る
ワームはIPアドレスをランダムに選んでアクセスしてきていることが多く、ホスト名を知らない。つまりIP直でのアクセスを隔離すればいい。
vi /usr/local/apache2/conf/httpd.conf
NameVirtualHost * <VirtualHost *> DocumentRoot /var/www_dummy ErrorLog /var/log/apache2/warn_error.log CustomLog /var/log/apache2/warn.log combined <Location /> Order deny,allow Deny from all </Location> </VirtualHost> <VirtualHost *> ServerName example.com DocumentRoot /var/www </VirtualHost>