インフラセキュリティの処方箋

第34回 2017年5月~WordPressの脆弱性,ランサムウェアWannaCry騒動とその後

この記事を読むのに必要な時間:およそ 2.5 分

今月は,いろいろと人騒がせなWordPress脆弱性と,世界を大混乱に陥れたランサムウェアWannaCryについて取り上げます。

リモートコード実行可能なWordPress脆弱性~ただしPoCは不完全

WordPressの脆弱性,というと「またか」と思われそうですが,今回の脆弱性は,2016年12月に発見されたPHPMailerの脆弱性が,WordPressに残っていたために発生したものです。脆弱性のあるPHPMailerのコードがWordPressに含まれており,さらに不幸なことに,その脆弱性を外部からトリガ可能であったというのが,5月上旬に公開された「WordPressのリモートコード実行」の脆弱性です。

脆弱性の説明は,以下のサイトに説明があります。

5.2.18以前のPHPMailerを用いている場合に,CVE-2016-10033の影響を受けますが,WordPress 4.6のwp-includes/class-phpmailer.phpは,PHPMailer 5.2.14そのものであり,この脆弱性の影響を(当然)受けます。

本脆弱性の対策は,⁠最新のWordPressに更新すること」です。

PoCはMTAがExim4の場合+WordPress 4.6の場合にトリガ…するはず

PoCは,Exploit-DBで公開されています。

ただ,実に幸いなことに,Exploit-DBで公開されたPoCは不完全で,筆者の手元の環境では,そのままでトリガできないことを確認しています。

筆者は,Debian GNU/Linux 7,8とUbuntu 16.04の環境で,Exim4とMySQL,そしてWordPress 4.6をインストールした状態でトリガできませんでした。

Exploitの様子は動画でも公開されている

本Exploitの様子は,Exploitbox.ioというサイトの運営者が作成した動画によって確認することが可能です。

世界を大混乱に陥れたWannaCry~MS17-010が突破口……でもどうやって?

WannaCryは,2017年5月に世界中で被害が確認されたランサムウェアです。

これまでよく見られたランサムウェアは,不審メール等に添付されたファイルを(誤って)実行することでダウンロード・感染に至るものが非常に多かったのですが,WannaCryについてはそうではなく,⁠そんな覚えない」というところでの感染が非常に多く見られました。

WannaCryそのもののレポートは,セキュリティベンダのレポート等でもよく見られますので,防止等の観点から,その内容から読み解けるものを拾い上げてみます。

WannaCryは,MS17-010の脆弱性を悪用して感染する

WannaCryは,MS17-010(CVE-2017-0144)で公開された脆弱性を利用しているというのが,多くの研究者の一致する意見です。

MS17-010は,ネットワーク経由でトリガ可能な脆弱性ですが,それがなぜ悪用されたのか?という話は,ぱっと聞いた限りは結構謎が多いと思われる方も多いのではないかと思います。

ここでは,MS17-010をなぜ悪用できたのか?ということについて,説明を試みます。

MS17-010おさらい~TCP445番ポートに細工されたパケットを送信することでExploit可能

MS17-010は,細工されたSMBv1パケットを攻撃対象に送信することで,リモートコード実行が可能になる脆弱性についてのアドバイザリです。

SMBv1自体は,現在はほとんど使われるシーンがありませんし,積極的に使うシーンも想定されません。

何らかの理由でSMBv2以上の新しいプロトコルで通信が行えないような場合には,SMBv1にフォールバックされることがありますが,よほど古い実装もしくは意図的にSMBv1以外の通信を受付けないようにされていない限りは,SMBv1での通信を行われることはありません。

しかし,そのような通信を行うことがないというのと,そのような通信を行えないというのは別で,多くのWindowsではSMBv1での通信を行えるような構成になっています。

そして,SMBv1は,TCP139番,TCP445番を使用します。

外部からこれらのポートへの通信を制限している場合には,ファイル共有を行えません。

WindowsファイアウォールはTCP445番ポートを開けることがある

図1~3は,Windows 7 Enterpriseでの検証の様子です。

Windowsファイアウォールは,インストール直後に「パブリックネットワーク」を選択(図1)していた場合は,初期状態ではTCP445番を開けません(図2)⁠しかし,何らかのファイル共有サービス等を有効にした場合は,TCP445番を開放します図3)⁠

図1 ネットワークの選択画面

図1 ネットワークの選択画面

図2 パブリックネットワーク選択時のWindowsファイアウォール設定

図2 パブリックネットワーク選択時のWindowsファイアウォール設定

図3 ファイル共有時のWindowsファイアウォール設定例

図3 ファイル共有時のWindowsファイアウォール設定例

また,TCP445番による通信を行えない場合は,ファイル共有通信を行えないことがあるため,ファイル共有を行える設定にしている場合にはTCP445番ポートを開けている可能性があると考えてください。

著者プロフィール

宮本久仁男(みやもとくにお)

某SIerに勤務する,どこにでもいる技術者。

OSやネットワーク技術に興味を持ち,その延長でセキュリティ技術にも興味を持って,いろんな調査や研究を手がけてます。

自分で思考を巡らしたり検証したり,というのももちろん好きで,あれこれやってます。もちろん他の人に迷惑はかけない範囲で……ですが。

博士(情報学),技術士(情報工学)。

URL:http://d.hatena.ne.jp/wakatono/

監訳書の1つ:実践Metasploit

コメント

コメントの記入