Windows のSMBv3 の脆弱性の危険性 | reverse-eg-mal-memoのブログ

reverse-eg-mal-memoのブログ

サイバーセキュリティに関して、あれこれとメモするという、チラシの裏的存在。
medium(英語):https://sachiel-archangel.medium.com/

今年最悪のセキュリティホールになり得る!?

SMBv3の脆弱性が発見されました。

(2020年3月17日 追記)

対象は

 Windows10 バージョン1903、1909

 Windows Server バージョン1903、1909

→それ以前のバージョンには影響しない見込み。

 

参照:

Microsoft SMBv3 の脆弱性 (CVE-2020-0796) に関する注意喚起

 

 

SMBv3 における脆弱性について

https://www.jpcert.or.jp/newsflash/2020031102.html

 

ADV200005 | Microsoft Guidance for Disabling SMBv3 Compression

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/adv200005

 

原因は、SMBv3の圧縮を用いた接続処理に脆弱性があるとのこと。

これをターゲットに、細工したパケットを送ることでリモートコードを実行できる、というのが今回の問題だそうです。

先日、Microsoftが定期パッチを出したものの、これにはこの対策が含まれていないとのこと。

このため、ポート445をインターネットから直接参照できるようにしないこと、SMBv3の圧縮機能を無効にすることが当面の回避策になるそうです。

PoCはまだ公開されているものはありません。

設定等詳しいことは、JPCERTのHPやIT系のメディア、意識高いIT系ブロガーが詳しく書いてくれてるんで、ウチみたいな過疎ブログでは省略!!www

人間が傾いてるので、ナナメな話題・・・というか個人的な感想だけ書いておきます。

 

 

ところでデフォルトの設定では圧縮有効なの?

わざわざ設定するように記事が出てる段階で、デフォルトで有効なんだろう、なんて名推理はイワナイwww

実際のところ、記事を見てみると、以下のレジストリキーに、以下の値が設定するようになっています。

 

レジストリキー:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

値:

名前:DisableCompression  型:DWORD  データ:1

 
んでは、レジストリエディタで見てみましょう。
ターゲットは Windows 10 Pro バージョン 1909 です。
 
 
・・・はい、「DisableCompression」の値すらありませんね。
ということは、DisableCompression = 0 ってことでしょうから、私のマシン脆弱ですねw
自分がSMBの設定をいじった記憶もないことと、他のマシンもこうなっているので、多分これがデフォルトなんだと思います。
パッチが当たる前のWindowsで読んでいる方は、よく確認してみましょう。
 
 

この脆弱性が危険だと思われる理由

さて、これが危険な理由ですが。

EternalBlueの再来のように警告されている方も多くいると思いますが、2020年3月12日の時点では、ぶっちゃけEternalBlueの時より状況が悪いです。

さらに、悪用された時の深刻度はEternalBlueの時と同様の危険性があると思っています。

(2020年3月17日 修正)

エクスプロイトされた場合、EternalBlueと同様の深刻な被害になることは変わりないと思います。

ただし、EternalBlueのように、比較的古いバージョンから気づかれることなく数年あったものと違い、比較的新しいバージョンのWindows (Windows10 バージョン1903以降)のみターゲットとなるようです。

このため、古いバージョンでひっそり動いているセキュリティの甘いマシンでも、このエクスプロイトは使えないようです(現在の情報では)。

このため、過去の複数のバージョンもターゲットになったEternalBlueほどの脅威にはならないのではないかと考えられます。

 

まず、EternalBlueと今回の比較です。なお、「過去どれくらいの期間脆弱で、それが悪用されていたか」は確かめようがないので、そこは省きます。

(2020年3月17日 修正)

今回の対象は、Windows10 およびServerのバージョン1903以降です。これが悪用されていたかは、Microsoft公式では「確認されていない」という記載がされています。

 

EternalBlue:

  • NSAが把握、公開せず色々利用していた
  • Eternal シリーズのターゲットはSMBv1またはSMBv2 *よく見る解説では、EternalBlueの攻撃はSMBv1って書いてあるけど、MetasproitのエクスプロイトのパケットはSMBv1とv2が混在しているので、多分両方使わないと攻撃は通らない。そのため片方潰せばOKなのだが、EternalRomanceはSMBv1使うし、新しい方がセキュリティ高いのは自明なのでSMBv1潰せって分かってる人は言ってたんだと思う(もう説明面倒なのでソコは匙投げたともいう)。分かってない人はSMBv1だけが問題だったと思い込んでるっぽい。
  • 当時の設定だと、SMBv1がまだ有効なマシンも割とあった
  • スノーデンによりNSAの外に持ち出し、外部の人間に知れ渡る
  • Microsoftがひっそり(?)パッチ(MS17-010)を公開 (2017年3月) *MS的には一応緊急だったのだが特に騒がれなかった
  • ShadowBrokerがコードを公開(2017年4月)
  • EternalBlueを利用したワーム付きランサムウェア WannaCry が猛威を振るう(2017年5月)
  • 流石にみんな懲りてパッチを当てる。MSもサポート終了していたWindows XPのパッチも公開。

 

今回のSMBv3脆弱性:

  • 脆弱性があることは公開
  • PoCは非公開、またはまだ無い
  • パッチはまだ無い
  • 多分デフォルト設定だと被害に遭う設定
  • 最新のSMBバージョンがターゲット

 

とまあ、ここから推察すれば、今回の脆弱性の現在の状況がいかに危険な状況か、推察は難しくないでしょう。

 

あえてツッコむなら、EternalBlueが特に危険になったのは、ShadowBrokerがコードを公開して、サイバー犯罪者がこのコードを悪用できるようになってから。

ただ、この時にはMicrosoftからはパッチは既に出ていました。

また、当時で既にSMBv3はリリース済みでした。

つまり、意識高い系の人や組織は、パッチ適用、あるいはSMBv3を利用しSMBv2、SMBv1をDisableにしていたので被害に遭っていません。(「そもそも、そういう人たちはSMBのポートを外部から見れるようになんてしない。」とかイワナイ)

 

一方、今回はパッチがまだリリースされておらず、OSを最新状態にしていてもデフォルトのままでは被害に遭う状態です。

しかも、最新のSMBv3が対象のため、バージョンを絞ることで回避、というのが原則できません。

PoCはまだ公開されていない・・・っていうか、あってもできないでしょ!

今PoC公開したら、それこそ悪用されまくって洒落じゃない阿鼻叫喚になるわ!!!

(→以下の「2020年3月13日 14:30 追記」に記載したとおり、やはり緊急パッチが出ました。)

 

というわけで、PoCのコードが公開されていないことを除けば、以前は被害に遭わなかったくらいのセキュリティレベルの人達も被害に遭いかねないという状況、だと言えます。

 

また、このリモートコード実行で怖いのは「実行権限」です。

SMBのサービスはSystemで動いていると考えられます。

このため、「SMBでリモートコードが実行されてしまうと、そのコードがSystem権限で動く」ということになります。

これは、実際に確認したことがあります。

Kali LinuxなどのMetasproitには MS17-010 のExploit が入っています。

Windows 7 64bit または Windows 2008 で MS17-010 のパッチが入っていない端末を用意してエクスプロイトしてみてください。システム権限で動作することが確認できると思います。

 

つまり、「SMBでリモートコードを実行できるということは、Windowsで最も高い権限で乗っ取りができる。」ということに他なりません。

 

セキュリティを勉強している人や、そうでなくてもシステムに詳しい人なら、これがいかに脅威であるか分かると思います。

着眼点として、この点を見落としてはいけないと思います。

一番厄介な利用方法は、APT攻撃でのラテラルムーブメントになりそうです。

これの調査案件きたら、ホントどうしようかしらん。

(まあ、私はエンリョなくCyCraft使うからいーけど、他のセキュリティエンジニアは眠れない日々になるのかな?)


多くの記事では、原因、手法と対策ばかりで、コードの実行権限やそれに伴う危険性に触れている記事をあんまり見ないので、個人的にもにょるので書いておいた次第です。(もにょるってなんぞ・・・?)

 

 

パッチが出たらすぐ適用を

ではどうすればいいかって話になりますが、先ほど書いた通り当面は回避策のSMBの圧縮機能停止とSMBポート制限しかありません

(色々エラソーに書いてもオチはこれなんだな。)

その辺りは権威あるHPやエロい人のブログなんかをググってください

でも、レジストリの書き換えとかADサーバとかでばばーんとできるところはいいけど、そういう環境じゃない中小企業とか対策考えても頭痛いだけでいい解決策ないよね・・・。

 

とにかく、パッチが出たら、速やかに適用してください。

あとは・・・それまでにPoC公開するバカがでないことを祈るだけ・・・かな・・・。

今のところ、神に祈るしかないという、コントロールが効かないのが今回の脆弱性の怖いところだと思っています。

 

では、みなさんの幸運を祈る!

(セキュリティ技術のブログのはずなのに最後神頼みとかどんだけ)

 

 

(2020年3月13日 14:30 追記)

2020年3月13日、定例外のパッチが出た模様。

 

Updates a Microsoft Server Message Block 3.1.1 protocol issue that provides shared access to files and printers.

https://support.microsoft.com/ja-jp/help/4551762/windows-10-update-kb4551762

 

CVSSは、JVN iPediaの記載で、CVSS v3 9.8(緊急)、CVSS v2 10.0(危険) (共にJPCERT/CC値)となっています。

https://jvndb.jvn.jp/ja/contents/2020/JVNDB-2020-002334.html

 

速やかなパッチ適用を推奨します。