Gumblar(GENO,8080)を対策する

linux, Web全般 2010年1月23日,

ガンブラーとか系のFTPパスがのっとられてアレになるあのウィルスです。
ユーザーさん側の対策なんて
「JavaScriptを切る」さえ守ってればほぼ大丈夫だけど
それでもやっぱかかる人はいるよね。

というわけでサーバー側での対策を。

一応いまんとこ ガンブラー=FTPのIDとPASSがレイプされるらしいから
それを対策するということで。

FTPアクセスを制限する

当然だけど一番大切?
とりあえずproftpdをinetd経由で起動してるので
hosts.denyに
in.proftpd : all
/etc/hosts.allowに
in.proftpd : .jp
in.proftpd : .net
を追加するとかいったおおざっぱなアクセスを制限する。
つまり日本国外からは拒否って事ね。
まら、.kr とか .cnとか危険なドメインを拒否する、ってのでもいいかと。
とりあえずざっくりと。

FTPアクセスをユーザーごとに制限 SSLも対応させちゃお

前回のステップからちょっと進んで。
proftpdのモジュールを使ってユーザーごとにアクセス制限をかけれるようにします。
また、proftpdでFTPS(暗号化)もしちゃおう系。

proftpdのソースをDLしてきて展開してmod_ifsessionとかtslを組み込んでconfigure

tar zxvf proftpd-x.x.x.tar.gz
cd /usr/local/src/proftpd-x.x.x
./configure –with-modules=mod_ifsession –with-modules=mod_tls –with-includes=/usr/include/openssl
make
make install


再コンパイルの場合はproftpdのソースがあるところで

make distclean
./configure –with-modules=mod_ifsession –with-modules=mod_tls –with-includes=/usr/include/openssl
make
make install
/usr/sbin/proftpd –list


インストール完了したら組み込まれてるか確認すると多い日も安心

proftpd –list
Compiled-in modules:
mod_core.c
mod_xfer.c
mod_auth_unix.c
mod_auth_file.c
mod_auth.c
mod_ifsession
mod_ls.c
mod_log.c
mod_site.c
mod_delay.c
mod_tls.c
mod_cap.c

でtlsやらmod_ifsessionが組み込まれてるか確認できるっぽい。

んで設定。
/usr/local/etc/proftpd.confで

<IfUser sonar>
<Limit LOGIN>
Order allow,deny
Allow from 123.123.123.123
DenyAll
</Limit>
</IfUser>


<fUser sonar>のとこが大切系で
sonarのユーザー(FTPアカウント)は123.123.123.123でのみ接続できるよー
みたいな設定になります。
ユーザーさんが固定IPであるとか、
こちらがVPN用のルーターあるとかいう場合は個別に発行してあげるといい感じです。
VPNじゃなくてもsquidで串鯖たててもいいし。

ついでに

ExtendedLog /var/log/proftpd-all.log AUTH,DIRS,READ,WRITE,INFO

とか追加しとくと、どのユーザーがどのファイルをアップロードしたか、とかダウンロードしたかとか
全部のログが出て、なんかあったときに安心かもしれないです。

次はSSLの設定。



<IIfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

# Are clients required to use FTP over TLS when talking to this server?
TLSRequired off

# Server’s certificate
TLSRSACertificateFile /usr/local/ssl/SERVER/cert.pem
TLSRSACertificateKeyFile /usr/local/ssl/SERVER/servernopasskey.pem

# Authenticate clients that want to use FTP over TLS?
TLSVerifyClient off
</IfModule>




TLSRSACertificateFileが証明書
TLSRSACertificateKeyFileが公開鍵。
おれおれ認証自己認証で作るといいと思います。

当然FFFTPじゃSSL使えないのでFileZillaとかFTPSに対応してる奴を
ユーザーさんが使ってくれないと意味なすです。
あるにこしたことはないって事で。

定期的にガンブラーで改竄されてないか確認する

いろんなサイトでみてるとガンブラー系で改竄されて挿入されるウィルスコードって

try{window.onload ・・・


の記述が絶対使われてるような気がする。
で、改竄されるのはhtmlやらjsファイルなので
html とか jsの中にtry{window.onloadが含まれていたらその行を抽出すれば
怪しそうなのないかある程度目視できるんじゃないかと。

find . \( -name “*.html” -o -name “*.htm” -o -name “*.js” -o -name “*.php” \) | xargs grep “try{window.onload”


おまけで.phpも入れてみた。
このコマンドを実行したら現在のカレントディレクトリ以下にある
findで.html .html .js .phpのファイルを全部一覧し、パイプでgrepに渡して
try{window.onloadが含まれる行を抽出していきます。
ちなみに結構重い処理だったので気をつけてください。
久々にLPIC1のコマンドの章を見たよw

まとめ

サーバーにできる事ってこれくらいでしょーか?
FTPをがちがちにすればほぼ大丈夫なんだけど・・・
ユーザーさんの敷居が高くなってしまうのはNGなのがきついです・・・。

しかしそろそろガンブラーも収束してきたかな・・・?

One Response to “Gumblar(GENO,8080)を対策する”

  1. Bette Says:

    "…pay enough taxes for all the retiring 'baby boomers' with their Social Security ch9&sk."Thatc#3e;s what I don't understand. Isn't S.S. our own money we give to the government for safe keeping all the years we are working? It's our money. Now if you end up getting more than you paid in, well, that's another story.

コメントどうぞ