WannaCry 2017年 未適用のSMBの弱点を伝って広がったランサムウェア

修正が出てから2か月後に、SMBv1 の弱点を突いて、人の操作なしに端末から端末へ広がった。英国のNHSで感染した組織は、どれも修正を当てていないか、支援の切れた Windows を使っていた。止める所は、修正の適用、SMBv1 の停止、445番を境界で通さないこと、更新できない機器の隔離にある。

2017年5月12日の朝に始まった世界的なランサムウェアの攻撃。悪用された弱点は MS17-010 で、修正は2017年3月14日に出ていた[2]。支援の切れた Windows XP、Windows 8、Windows Server 2003 にも、5月13日に修正が出た[3][4]。NHS England は5月19日に事態の収束を宣言し[1]、保健省は2018年2月に22の勧告を出した[5]。2026年11月時点の公開資料で書いています。

要点

  • 弱点は SMBv1 のサーバーにあり、認証なしに細工した通信を送るだけでコードを動かされる。修正は攻撃の2か月前に出ていた[2]。
  • WannaCry は手元の網の IP を走査し、445番に届いた相手へ自ら広がった[4]。1台の未適用の端末が、同じ網の未適用の端末を全部巻き込む。
  • NHSで感染した組織は、どれも修正を当てていないか、支援の切れた Windows を使っていた。多くは支援の続く Windows 7 で、修正を当てていなかっただけだった[1]。
  • 修正を当てたかどうかに関わらず、外に向いた境界の防火壁を管理していれば感染は防げた、と NAO は書く[1]。
  • 根本の守りは、修正を期限を決めて当てる、SMBv1 を止める、445番を境界で通さない、更新できない機器を網から切り離す、の4つ。

何が起きたか

2017年3月14日の修正、3月と4月の警告、5月12日の攻撃、同じ日の夕方に広がりが止まるまでの4つの段 1 修正が出る 2017年3月14日 MS17-010 支援中の版すべて 2 警告が届く 3月17日と4月28日 NHS Digital が 修正を当てよと通知 3 広がる 5月12日の朝から 16時に重大な 事態と宣言 4 止まる 12日の夕方 研究者が停止の 仕掛けを働かせる 1から3まで59日。修正は出ていた 5月13日に XP などへも修正。5月19日に NHS England が収束を宣言
図1 修正から攻撃まで、攻撃から止まるまで
日付出来事
2014年保健省と内閣府が、Windows XP のような古いソフトウェアから2015年4月までに移る確かな計画を持つよう、トラストへ書面で求める[1]
2017年3月14日Microsoft が MS17-010 を出す。SMBv1 のサーバーの弱点で、CVE-2017-0143 から0148の6件。支援中のすべての Windows で深刻度は緊急[2]
2017年3月17日と4月28日NHS Digital が CareCERT の警告で、修正を当てるようトラストへ求める[1]。勧めであって命令ではなく、NHS Digital に従わせる権限は無い[5]
2017年5月12日 朝攻撃が始まる。午前の遅くに最初のトラストが不具合を届け出る[1]。US-CERT が同じ日に注意喚起を出す[4]
2017年5月12日 13時ごろNHS Digital が、4つのトラストからの届け出を受けて保健省へ伝える。16時には16のトラストに増える[5]
2017年5月12日 16時NHS England が全国の重大な事態と宣言する。18時45分に NHS England が対応を率いると決まる[1]
2017年5月12日 夕方研究者が停止の仕掛けを働かせ、WannaCry は端末を閉ざさなくなる[1]
2017年5月13日Microsoft が、支援の切れた Windows XP、Windows 8、Windows Server 2003 にも修正を出す[3][4]
2017年5月14日JPCERT/CC が注意喚起を出す。17日の更新で、モバイル回線でインターネットにつないでいた持ち出しの端末の感染を国内の1例として載せる[6]。NHS England と NHS Digital は、身代金を払わないよう全トラストへ書面で伝える[1]
2017年5月19日 17時30分NHS England が事態の収束を宣言する[1]
2017年10月27日英国の会計検査院 NAO が調査の報告を出す[1]
2018年2月1日保健医療の CIO による教訓の点検が出る。勧告は22[5]

NAO によると、攻撃は少なくとも100か国の20万台を超える計算機に及んだ。NHS は狙われた相手ではなかった[1]。

イングランドの236のトラストのうち、34が感染して端末を閉ざされ、46が感染せずに業務が乱れた イングランドの236のトラスト 34 46 156 届け出なし 34 感染して端末を閉ざされた。うち25は急性期 46 感染していないが、用心で止めるなどして業務が乱れた ほかに感染した組織 603 うち GP の診療所が595 取り消した診療の予約 6,912 確かめた数。見込みは19,494
図2 NHS の被害の数。NAO の報告の数字
  • 数は組織の自己申告と通信の分析によるもので、実際はもっと多い恐れがある[1]。
  • 急性期の25のトラストのうち5つは、救急車を他の病院へ回した。5月16日にも2つが回し続けていた[1]。
  • 5月19日時点で、感染した診断の機器は1,220台で、NHS の同種の機器の1%。MRI の画像を院内の別の場所へ送れないなどの乱れが出た[1]。
  • がんの疑いの急ぎの紹介のうち、少なくとも139件が取り消された[1]。
  • 身代金を払ったNHSの組織は無い。患者の情報が盗まれた届け出も無い。混乱にかかった費用は、保健省も把握していない[1]。

通った道筋

445番に届く未適用の端末が感染し、同じ網の IP を走査して、445番に届いた未適用の端末へ広がる。起動のたびに決まったドメインへ接続し、届けば止まる 感染した端末 外の網、別の組織 445 組織の網 または N3 のような広域の網 未適用の端末A SMBv1 が有効 端末B 未適用 手元の IP を走査 診断の機器 XP を組み込み 端末C 適用済み 起動したとき 決まったドメインへ接続を試み、つながれば何もせず終わる。つながらなければ暗号化と拡散に進む 5月12日の夕方、このドメインに応答が返るようになり、端末を閉ざさなくなった
図3 WannaCry が網の中を広がる道筋
段何があったか
弱点SMBv1 のサーバーが特定の要求を扱う所の誤りで、認証の無い攻撃者が細工した通信を送るだけでコードを動かせる。修正は SMBv1 の扱いを直すもの[2]。US-CERT はこれを EternalBlue と呼ばれるものとして書く[4]。
広がり方手元の IP の範囲を走査し、UDP の137番と138番、TCP の139番と445番へ接続を試み、445番につながると広げる処理を始める[4]。人がファイルを開く必要は無い。
NHS の中インターネットを通じて広がり、NHS の全拠点をつなぐ広域の網 N3 も通った。NHS のメールの仕組みを通じた広がりは無かった[1]。
停止の仕掛け起動のたびに決まったドメインへ接続を試み、つながれば何もせず終わる。研究者がこのドメインを登録して応答させたことで、広がりが大きく減った。US-CERT は、このドメインへの通信を遮らないよう求めた[4]。
止まった後停止の仕掛けが働いた後に入った端末は、閉ざされなかった。5月15日から9月半ばまでに、ほかに92の組織がこのドメインへ接続しており、うち21はトラストだった[1]。
メールが入口という話は確かめられない

攻撃の当日、US-CERT は最初の入口の候補としてフィッシングを挙げた[4]。保健医療の CIO の点検は、最初の感染はおそらくインターネットに開いた SMB の口からで、当初の見立てのメールではない、と書くが、根拠に挙げるのは報道の記事である[5]。NAO が書くのは、NHS の中ではメールを通じた広がりが無かったことまでである[1]。最初の1台がどう入ったかは、公表資料では決まっていない。どちらでも、広がりを許したのは未適用の SMBv1 だった。

なぜ修正が当たっていなかったか

理由公表資料の記述
当てなかったNHS の感染した端末の多くは、支援の続く Windows 7 で、修正を当てていなかった。XP の端末は少数だった[1]。影響を受けた80の組織のどれも、警告で勧めた修正を当てていなかった[5]。
止める時間が無い地域の NHS の組織の半分を超える数が、診療を止めることを恐れて、要るときに修正を当てなかったと答えた[5]。
当てられない攻撃の日に、NHS の IT の資産の約5%が、まだ XP だった。MRI のように XP を組み込んだ医療機器は、売り手が管理しており、トラストは自分で更新できない[1]。
確かめる仕組みが無い攻撃の前、保健省と関連の機関は、警告に従ったかを確かめる正式な仕組みを持たなかった。現地での点検を受けた88のトラストは、1つも合格しなかった[1]。
資産が分からない中央は、トラストのウイルス対策や IP アドレスのような資産の情報をほとんど持たず、捜査の機関は全拠点から証拠を集め直した[1]。
警告の日付は資料で違う

NAO は CareCERT の警告を3月17日と4月28日と書く[1]。CIO の点検は、4月24日に通信の事業者から脅威の情報を受け、4月25日の CareCERT の通知で修正を勧めたと書く[5]。表と図は NAO による。

対応で詰まった所

  • 国全体のサイバーの攻撃を想定した計画は、地域の水準で試されていなかった。誰が率いるかがすぐには決まらず、組織ごとに別々の相手へ届け出た[1]。
  • 感染したか用心でメールを止めた組織とは、メールで連絡が取れなかった。職員は私物の端末とメッセージの道具で情報を回した[1]。
  • 感染していない46のトラストの乱れは、中央からの指示が早く届かず、自分の判断で機器を止め、網から切り離したことでも起きた[1]。
  • NHS England は、感染した組織が北部と中部と東部に集まったのは、停止の仕掛けが働く前の早い時間に襲われたためと見ている[1]。広がりが止まったのは守りの結果ではなかった。

どこで止められたか

修正の適用、SMBv1、境界、網の中、更新できない機器の5つの段に、それぞれ止める所を置く 修正の適用 SMBv1 境界の防火壁 網の中の分け方 更新できない機器 1 期限を決めて当て、当たったか確かめる 59日あった。警告を出すだけで終えない 2 SMBv1 を止める 弱点のある口そのものを無くす 3 445番を境界で通さない 修正の有無に関わらず、外からの感染を防げた 4 端末どうしの SMB を絞る 1台の感染を、網の全体に広げない 5 切り離して置く XP を組み込んだ機器は、網から隔てる
図4 段ごとの止める所
止める所この件で限り
期限を決めて当てる修正は3月14日に出ており、NHS Digital は2度警告した。従ったかを確かめる仕組みは無かった[1][2]止められない診療の機械には当てにくい。止める時間を前もって決めておく
SMBv1 を止めるMS17-010 は、修正を当てられないときの回避策として SMBv1 の停止を挙げていた[2]SMBv1 しか話せない古い機器との共有が切れる。先に使っている所を洗い出す
445番を境界で通さないNAO は、修正の有無に関わらず、外に向いた防火壁の管理で感染を防げたと書く[1]。US-CERT も境界での SMB の遮断を求めた[4]N3 のような組織をまたぐ広域の網も境界として扱わないと、隣の組織から入る
端末どうしの SMB を絞る規模の大きい Windows の網を持つ組織ほど被害が大きく、感染したトラストは職員の多い所に偏った[1]ファイルの共有の口は残る。共有のサーバーへの道だけを開ける
切り離して置くXP を組み込んだ医療機器は、網から隔てれば守れた。代わりに手作業が要る[1]隔てても、機器の画面を見る端末が感染すれば使えない[5]

守り方

根本の直し方
  • 修正の適用を、出たら期限内に当て、当たったことを台帳で確かめる仕事にする。警告を配るだけで終えない。この件で NHS が後から全組織に求めたのも、警告への対応の確認だった[1]。
  • SMBv1 を止め、入れておかない。Windows 10 の1709版と Windows Server の1709版から、SMBv1 は既定で入っていない[7]。古い版から上げた端末と、SMBv1 しか話せない機器が残っていないかを見る。
  • インターネットと、組織の外とつながる広域の網との境界で、TCP の445番と139番、UDP の137番と138番を通さない[4]。持ち出しの端末のように、境界の外で直にインターネットにつながる端末は、端末の防火壁で同じことをする[6]。
  • 支援の切れた OS を、移す期限を決めて無くす。移せない機器は、決まった相手としか話せない区画に置く[1]。
  • 端末の台帳を持つ。どの端末がどの版で、どの修正が当たっているかが分からないと、適用も隔離もできない。

SMBv1 の有無を確かめて止める 管理者の PowerShell

Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

# 出力
EnableSMB1Protocol : True
State : Enabled

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol   # 再起動で外れる

境界の防火壁で SMB と NetBIOS を通さない 架空の拠点 198.51.100.0/24 の nftables

table inet edge {
  chain forward {
    type filter hook forward priority 0; policy drop;
    iifname "wan" tcp dport { 139, 445 } drop
    iifname "wan" udp dport { 137, 138 } drop
    oifname "wan" tcp dport { 139, 445 } drop   # 中から外へも出さない
    ct state established,related accept
    iifname "lan" ip saddr 198.51.100.0/24 accept
  }
}
  • 境界の遮断は、修正を待つ間の守りでもあり、修正が漏れた端末の守りでもある。ただし中に入った後の広がりは止めない。網の中の端末どうしの 445番は、共有のサーバーへの道だけに絞る。
  • SMB を遮ると、共有のファイルや機器が使えなくなる。US-CERT も、効果と業務の乱れを比べて決めるよう書く[4]。先に、誰が SMB で何に話しているかを記録で見る。
緩和の策
  • 網の外にあり、暗号化の届かない場所に控えを置き、そこから戻す練習をする[4]。身代金を払っても、ファイルが戻る保証は無く、感染も消えない[4]。
  • サイバーの攻撃を想定した対応の計画を、地域や拠点の水準で試しておく。誰が率い、どこへ届け出るかを決める[1]。
  • メールが止まったときの連絡の道を、前もって決めておく。NHS Digital は、メールが使えないときに経営層と CIO へ文字の通知を送る手立てを整えた、と CIO の点検は書く[5]。
  • 停止の仕掛けのように、マルウェアの側の都合で被害が止まることもある。止まったことを守りの成果と数えず、どこで止められたはずかを振り返る。

修正を当て続ける考え方と、更新できない部品を仮想の当て布で見張る考え方は A03 ソフトウェアサプライチェーンの不備 の型1にある。記録から警告と対応までが途切れる所は A09 セキュリティログとアラートの不備 で扱う。

参照

  1. Investigation: WannaCry cyber attack and the NHS National Audit Office、2017年10月27日
  2. Microsoft Security Bulletin MS17-010 - Critical Microsoft、2017年3月14日
  3. Customer Guidance for WannaCrypt attacks Microsoft Security Response Center、2017年5月13日の日付
  4. Indicators Associated With WannaCry Ransomware TA17-132A US-CERT、現 CISA、2017年5月12日、2018年6月7日改訂
  5. Lessons learned review of the WannaCry Ransomware Cyber Attack Chief Information Officer for Health and Social Care、2018年2月1日
  6. ランサムウエア "WannaCrypt" に関する注意喚起 JPCERT/CC、2017年5月14日、5月17日更新
  7. SMBv1 Not Installed by Default in Windows Server and Windows Microsoft Learn