sshの辞書攻撃やられちゃった

先日自分が管理してるサーバーがsshのパスワード攻撃によって、あるアカウントのパスワードを盗まれ、
サーバーをpaypalフィッシング詐欺に使われてしまった。


今後こんなことが起きないよう色々対策を考え、また同じような被害に会う人がいないよう
攻撃の方法と対策法について書いてみます。
(自分でサーバーを管理してる人が、何人このブログを読むかわからないけど)

プロバイダからの連絡

まず最初にプロバイダから、あなたが使ってるIPアドレスのマシンにおいて
paypal のフィシング詐欺に使われてると携帯で連絡がありました。
ウィルスに感染してませんか?とかそういった事を言ってたのだが、
家で使ってるマシンは、MacLinux(セキュリティパッチはそれなりに頻繁にあててる)
しかないため、なんかの間違いだろうと思ったのだが、言われた通りのURLを入力してみると、
確かにpaypalのトップページみたいなのが表示されるのが確認できました。


そして、そのURLが
http://1.2.3.4/hogehoge/ageage/paypal/
となっていて、hogehoge/ageage/ の部分が完全に自分のサーバーで使っているようなパスだったため、
確かに自分のサーバーだなというのが確認でき、実際ログインして確認してみると
見た事も無いような不正なファイルがアップされているのが確認できました。

不正アクセスによってログインを許した原因

アクセスログをすべて見直した結果、ある程度どのように不正アクセスしたのか分かりました。
まず原因は FTP アカウントのIDとパスワードが漏れ、それにより不正なファイルがアップされていました。
なぜFTPアカウントのIDとパスワードが漏れたのか?それはSSHの辞書攻撃によって解析されたのが原因でした。


ちなみにSSHの辞書攻撃についての詳細は、警視庁が公開している以下の資料が参考になります。
(てか、こんなこと警視庁やってるんですね。ちょっと見直しました)
http://www.cyberpolice.go.jp/detect/pdf/ssh_monitor.pdf

SSHの辞書攻撃が最近多いみたいなんですが、これは簡単に辞書攻撃できるツールがどっかで公開されたのが要因のようです。


SSHの辞書攻撃はある程度前から受けているのは分かってたのだが、
そのサーバーにログインできるSSHアカウントは少数で、
ほとんどのアカウントはFTPのみ可能な設定になってたため(その設定も今思えばどうかと思うが。。。)
SSHの辞書攻撃でパスワードが漏れる事はないと、放置していました。


しかし、FTPのみ可能なアカウントだったとしても、SSHで正しいIDとパスワードを入力すれば、
ログイン失敗の時とは違ったメッセージが表示されるため、パスワードが正しいかどうかを知る事が出来てしまいます。
これにより、影響がないと思ってたFTPアカウントのパスワードを辞書攻撃によって当てられて
SSHではログインできなかったのを確認後、FTPでログインを試みられ、そしてログインされました。
辞書攻撃はツールで自動的に行ってたようですが、FTPでログインからその後の行動はすべてマニュアルで行っていたと思われます。

ログイン後、何をやられたか

FTP アカウント権限だけであれば、ファイルのアップロード・ダウンロードくらいしかできませんが、
アップされたファイルの中で PHP Shell という *.php ファイルがあり、
そのスクリプトの中身を見ると、どうも PHP 経由でシェルコマンドを叩けるような物のようでした(怖いので実際に実行させていません)

つまりこれにより http 経由でシェルコマンドが叩けるようになり、
apache 権限で何かしらのコマンドが叩けるような状態になっていました。


FTPのログによると、アップされたファイルは上記のPHP Shellファイルと*.tgzファイルだけだったので、
ファイルアップロード後は、PHP Shellを使ってファイルの展開等を行ってたんだと思われます。


http 経由で PHP Shell をたたき、postメソッドによってコマンドを送信すれば、
apacheのログにコマンド履歴が残りません(少なくとも僕のサーバーでは)。
賢いもんです。


ただgetメソッドによってコマンド送信している部分もあるようで、それを見てみると uname -a というのを実行してたのが分かりました。多分 OS を確認してたんでしょう。


これらの手順を見て思ったのは、アクセス者はかなり手慣れてるようです。
多分他にも何人か被害者がいて、同じようにしてフィッシング詐欺がなんかに使われたのでしょう。


今後同じような被害に合わないためにはどうすればいいか。その対策についてはまた別途書く事にします。