wakatonoの戯れメモ

はてなダイアリーから引っ越してきました。

「Zoom」のその後

IPAから続報が出ていたので、ちょっと見てみました。

www.ipa.go.jpそこには、「どうやったら警告が出てくるのか?」の解説がありました。

なんだ、インストールした後に「買う」とすると、あの警告が出てくるのね。ということで、またまた検証してみました。いろいろと釈然としないのもあるので、とりあえずスッキリするために。

なお、同じことやってマシン壊れたとか調子悪くなったとか言われても、こちらで責任取れないので、試すときは自己責任で。

まずは「Zoom」を起動して「Purchase」を選ぶ

これは、上記のIPAのページでも紹介しているものですが、とりあえず「Zoom」を起動して出てくる画面から「Purchase」を選びます。

f:id:wakatono:20200429033807p:plain

「Zoom」を起動した時の画面

一番上を選ぶと、「警告画面」が出てくるはず…なので、確かに警告画面は出てきたのですが、ウチでは違うものが出てきました。

f:id:wakatono:20200429033946p:plain

我が家の検証で出てきた「警告」画面

これ、使用しているセキュリティソフトウエアの警告画面です。

この検証自体は、VMware上にインストールしたWindowsで実施しているのですが、VMware - ホストOS - インターネット と出て行く前に、セキュリティソフトウエアが通信を見て、ヤバいURLにアクセスしようとしたら「ここ危険だからとりあえず止めてます」という画面を見せるようになっている、というわけです。

 

「Zoom」でPurchase押した後は、どんな通信が走っているのか?

簡単に言うと、Webブラウザを起動して、特定のURLにアクセスしようとしています。

見たところ、「Zoom」を開発・販売している会社のWebサイトの"/buy.html"というページにアクセスしようとしているのですが、見たところ、その会社のWebサイトはすでに存在せず、そのかわりに別のサイトにリダイレクトされます。

f:id:wakatono:20200429035240p:plain

キャプチャした通信の様子(黒くマークされたところが関連する通信)

/buy.htmlにアクセスした際のレスポンスが、「302 Found」なのですが、Webブラウザは、レスポンスに含まれるLocationヘッダで示されたURLにさらにアクセスに行きます。

これ以降、ずっとHTTPSアクセスなので、その中で何が起こっているのか?までは推し量れないのですが、アクセスする中でセキュリティソフトウエアが「危険」とみなしているサイトにアクセスしようとしたため、セキュリティソフトウエアからの「警告メッセージ」が表示された、というのが私のところで起こったことです。

 

今回「Purchaseボタンを押しちゃった時の対処」=「ウィンドウを消す」は正しい

今回、不幸にしてさまざまな脅しメッセージを表示されちゃった人もいらっしゃると思いますが、落ち着いてみれば「ブラウザの画面に警告入れたり派手な表示にしたりして、恐怖を煽っている」だけです。

なので、その時になんかのソフトウエアをインストールしたとかなければ、新しく表示されたおどろおどろしいWebブラウザのウィンドウを「ウィンドウの右上にあるバツ印のボタン」をクリックして消せば、さっぱり消えます。

仮に何かプログラムの実行を促されても、決してやっちゃいけません。それは最初に「Zoom」をインストールした時と同じかそれ以上に危険な行為です。

 

これはZoomだけどZoomじゃない!(意味不明)

みんな大好き&私も大好きなZoomですが、最近偽物が増えてるという噂を聞きます。

 

japanese.engadget.com

で、我らがにゃん☆たく先生も検証されている。

ただ、にゃん☆たく先生の検証範囲は、「これは僕が使いたいリモート会議のZoomじゃない!」という結論で終わっているように見えるので、じゃあそのZoomはどのZoomじゃい?というのを確認してみました。

なお、本稿では以降、、いわゆるリモート会議サービス「じゃない」Zoomを「Zoom」と称します

 

まずはかの「Zoom」をインストール

「Zoom」をどうやってインストールしたか?はおいときます。同じことやって「PCが壊れたどうしてくれる」と因縁つけられても嫌なんで。

普通にインストーラをダウンロードして実行することで、普通にインストールされたわけですが、なるほど。インストール直後に以下のような画面が。

 

f:id:wakatono:20200423230542p:plain

インストール後の実行画面(イメージ)

なお、最初にスクリーンキャプチャを取りそこねたんで、「(イメージ)」と書かれてます。上の図は、インストールされた「Zoom」を(わざわざ指定して)起動した図です。Run 3 out of 20 と書かれてるんで、「20回のうち3回起動した」ということで、あと17回起動できます。

 

「Zoom」の開発元Webサイトにアクセスする(失敗)

次にやったのは、Dachshund Softwareという会社のWebサイトを探してアクセスすることですが、これは見事に失敗しました。理由はよくわからね。

 

「Zoom」のヘルプを見る

実行ファイルがあるんだから、ヘルプくらいねえのか?と探したら、ありました。

一緒にインストールされていたので、見たところ、以下のような画面が。まっとうです。

 

f:id:wakatono:20200423231314p:plain

「Zoom」のヘルプ

ちっこくてわからないかもしれませんが、上記は「What is Zoom?」の部分です。

書かれていることは、「Zoomはソフトウエアの起動、再起動、スタンバイ、復帰を高速化する」ということで、「リモート会議には全く役に立たない機能」ということがわかりました。

さっきのうっとおしい画面は「試用中画面」ということで、金払うかどうするか?を問い合わせるだけのものだった、ということで。

 

「Zoom」の消し方

普通にアンインストールすれば消えるようにみえます。

 

f:id:wakatono:20200423231837p:plain

「Zoom」アンインストール前

上記で「Zoom 1.3.1」を選択し、上の「アンインストールと変更」を押して、アンインストールすれば消えます。

 

f:id:wakatono:20200423231942p:plain

「Zoom」アンインストール後

名前がかぶった「Zoom」とZoom(あーまぎらわし)

 

不幸にして名前がかぶった、機能違いの「Zoom」ですが、インストール時のサポートプラットフォームに以下のような一文が(赤字・協調は筆者による)。

Zoom is fully compatible with Windows 95/98/98SE/Me/NT/2000/XP

 ということで、「Zoom」は、リモート会議のZoomよりも、だいぶ古いであろうことが推し量れます(騙りでなければですが)。

 

むすび~ソフトウエアを使う時は正規サイトから&名前だけでなく機能も吟味しましょう

今回検証した結果、「Zoom」は同じ名前でも、機能が異なるソフトウエアというオチでした。しかしこれは、Zoomのサービスをきちんと指定して(今回の場合はリモート会議)検索なりすれば、だいぶリスクは下げられるのではないか?と感じています。

リモート会議のZoomは、自分とこのサービスを紹介するページとかも作っていますし、そもそもZoomを使って開催される会議に参加するだけならば、ソフトウエアをインストールしなくてもいけます

会議に参加する側は、多分「検索→ダウンロード→インストール」とか複雑な手順を踏まなくても、「https://zoom.us」ではじまるURLをクリックすれば参加はできます*1

どうしてもZoomクライアントをインストールしなきゃ、という人は、会議の主催をする人か、Zoomの機能をフルに使いたい人じゃないかと思いますが、そういう人は慌てずに、ちゃんとZoomのサービスサイトにログインして、そこからいろいろと探すのが良いかと思います。

もっとも、Zoom会議の招待メールを模したものが来てる気もするので(私のところには来てませんが)、見に覚えのない会議招待は、招待元に確認するなりスルーするなりしてもいいかなと思います。もしあなたがその会議に必須のメンバなのであれば、別の手段で確認が来ます

Happy Remote Conference!

 

*1: これはこれで危ういのですが

Windows ExplorerはInternet Explorerとは違う(キリ)

またも新たな脆弱性…。

「Type 1 Font Parsing Remote Code Execution Vulnerability」ですか…

この脆弱性は、 Adobe Type Manager Libraryに存在しており、悪意ある細工がなされたファイルが置かれたフォルダをExplorerで開くと、コードが実行される「かも」という剣呑な代物。なぜ「かも」としているのか?については後述する。

 

なぜこれが「Remote Code Execution」なのか?

「Remote Code Execution」となってはいるが、この脆弱性を悪用しても、リモートから攻撃者が自由に攻撃対象をつっつけるわけではない

何らかのファイルをメールでもWebでもいいから攻撃対象に細工したファイルを保存なりダウンロードさせ、当該ファイルを含むフォルダをWindows Explorerで開かせると攻撃が成立する。

このため攻撃者は、以下の3つの段階を経る必要がある。

  1. 攻撃用ファイルを作成する
  2. 攻撃対象がダウンロードし、ファイルの内容を確認したくなるような場所に配置する
  3. 攻撃対象がWindows Explorerで、当該ファイルの所在を確認するように仕向ける(コマンドプロンプトでdirコマンドなどで確認というのはダメw)

ということで、この脆弱性が使えるようになるためには、必ず「Windows Explorer」が介在する必要がある。

なんか多くの人が使うファイルを(別途)改ざんして、この脆弱性を利用するようなものに仕立て上げ、ダウンロードさせるということができれば、とりあえず成立するようなものなので、そういう観点に立てば「リモートからコードが実行可能である」と言えるのだろう。

 

Windows Explorer」 is not 「Internet Explorer」(!)

上記のアドバイザリを見てると、Mitigationのところに「Windows Explorer」と出てくるが、Windows Explorerは「Internet Explorerとは別物」である*1

Windows Explorerとは、Windowsのシェルの1つである。そう。フォルダアイコンをダブルクリックすると起動するアレである。

そんな勘違いをするドジは自分だけだと信じたいが、そういうわけにもいかないのと、仮に自分がまた間違えそうになった時のために、これを一応残しておく*2

「Type 1 Font Parsing Remote Code Execution Vulnerability」を軽減するための具体的な方法

脆弱性の話を書いて恐怖を煽るのは本意ではないが、2020年3月24日深夜の時点でまだ脆弱性修正がリリースされていないので、軽減策を書いておこう。

上記のリンクは、これを書いている時点で英語版しかなく、しかも「英語版Windows」での対処方法しか書かれていないので(当然)、日本語Windowsでどうすりゃいいの?という読み替えがちょっと面倒。

なので、以下でざざっと書いてみる。

やることは「プレビュー」を無効にし、攻撃者が脆弱性を突く余地をなくすこと

Windowsでファイルのプレビュー*3をしようとすると、脆弱なライブラリを使い、結果コード実行に至る、というのがどうも本質のようなので、プレビューをなくすために何をすればいいのか?というにが「Workaround」に記述されている。

Windows Server 2016, Windows 10, and Windows Server 2019でのWorkaroundで記述されているのは、以下のこと。Windows 8.1とかでは用語が違うので、また確認してから追記してみることにする。

  1. Windows Explorerを起動し、「表示」タブを選択する
  2. 「プレビュー ウィンドウ」と「詳細ウィンドウ」のどちらも選択されない状態にする(clearする)
  3. オプションをクリックし、「フォルダと検索のオプションを変更」を選択する
  4. 「表示」タブを選択する
  5. 「詳細設定」中の「常にアイコンを表示し、縮小版は表示しない」をチェックし、有効にする
  6. Windows Explorerのすべてのインスタンスを閉じて、変更を有効にする

具体的にやる方法は、以下のような感じ。

手元の環境で、Windows 10の場合はこうやるんだな、というのを確認した。

 

f:id:wakatono:20200325021348p:plain

「プレビューウィンドウ」と「ナビゲーションウィンドウ」を使わない設定

f:id:wakatono:20200325021455p:plain

「オプション」をクリックし、「フォルダーオプション」を表示させるまで(フォルダーオプションのウィンドウは下に)

f:id:wakatono:20200325021603p:plain

フォルダーオプションの設定

とりあえず、(Windows 10とかで)やることはこんな感じなので、何かの参考になれば幸いである。

 

Window 8.1とWindows 7の場合(これ以降は、2020年3月25日03:32にまとめて追記)

もともとのアドバイザリは、Windows 8.1のWorkaroundとWindows 7のWorkaroundをまとめているが、Windows 8.1は書かれている方法ではWorkaround適用を行えない。「プレビューウィンドウ」と「詳細ウィンドウ」の無効化をする方法が、Windows 8.1の場合はWindow 10の場合と近いので、留意のこと。

具体的には、以下のような感じ。

f:id:wakatono:20200325025914p:plain

Windows 7は以下のような感じになっている。
こちらは、Windows Explorerを起動後、「整理」→「レイアウト」と進めばOKだが、そもそもEOLなので、とっとと退役させることをおすすめする*4

f:id:wakatono:20200325025958p:plain

他の対策は?~WebDAVクライアントを無効にする、ATMFD.dllをリネームする、etc...

他にも対策はあるが、これは何をどう突っ込んでいいのかという感じ。

  • WebDAVクライアントを無効にする
    これは、WebClientサービスを無効にする、ということと同義。
    でも、プレビューとかさせなければ済むので、フォルダオプションでプレビューウィンドウとか詳細ウィンドウを表示させなければいいようにも見える。
    それ以前に、WebDAVクライアントを使う場合には、相応の理由があるはずなので、業務影響を考慮して無効化する必要がある。使わなきゃならないけど脆弱性は緩和したい場合は、フォルダオプションを変更すればいいはずだけど、もし万全を期してというのであれば、無効化した上で代替策を提示しよう。
    その際には、以下のリンクが参考になる。

    support.kagoya.jp

  • ATMFD.dllをリネームする
    これは、脆弱なAdobe Type Manager Libraryの実体であるATMFD.dllをリネームして、脆弱なライブラリを使わないようにする対策である。
    ある意味本質的(?)とも言えるけど、削除してもいいんじゃないか?とも思うのは気のせいだろうか…。
  • レジストリ編集し、ATMFD.dllを無効にする(Windows 8.1以前で有効らしい)
    有効とあるが、「次のサブキーに移動し」と書かれているにもかかわらず、移動先のサブキーがないので、(試すならば)サブキー作成の上、値を書き込む必要がある。

    f:id:wakatono:20200325032656p:plain

    Windows 8.1の場合のレジストリ(サブキーがない)


Outlookのプレビューには影響するのか?~回答:影響しません

一つだけ気になったけど、影響なしとのことだったので。
Outlookのプレビューは、また別の仕組みを使っているという認識なので、これはまぁ正しいということで。

まとめ~今回の件も、アドバイザリを適切に読み解けば、「何がヤバくて」「どうすればいいか」という正しい恐れ方と当座の対策は見えてくるので落ち着こう

いろいろ書いたが、個人的に思うのは「Remote Code Execution」と書かれているからといって大騒ぎしても下手を打つだけなので、適切に対処したいのであれば、アドバイザリはちゃんと読もう。

 

*1:オレはアドバイザリを読んでてここを勘違いし、「なんでInternet Explorer?」と路頭に迷いかけたw

*2:自分の恥を晒してるだけのような気もするがw、まぁこういうこともある

*3:サムネイル作成もプレビューになるみたい

*4:オレは気になったので、このためだけにWindows 7をインストールしたが、実際に使う気はなし

Windows ServerとSMB ServerとWindows ClientとSMB Clientと(あーまぎらわし!)

月刊マイクロソフトで修正されたCVE2020-0796のWorkaroundに関連した情報が、油断するとわからなくなる書き方になっている*1ので、覚書。
記事自体は後述するが、別にこの記事が悪いというわけではなく、用語自体をきちんと押さえておかないと、一気に混乱する恐れがある、というだけ。

SMBv3 ServerとSMB Client

SMBv3 Serverと書かれているが、別にこれはWindows Serverでしか稼働していないというわけではない。Windows 10などのClient系Windows OSでも普通に動作している「Server」サービスに実装されているのが、SMBv3 Serverだ。

同じようにSMB Clientも、Windows Clientでしか稼働していないというわけではない。「Workstation」サービスに実装されているのがSMB Clientである。

SMBv3 ServerとSMB Clientという用語が出てきたら、Windows ServerとWindows Clientの両方が影響する、と思って情報を読み解こう。

CVE-2020-0796のあぶねえところ

CVE-2020-0796のあぶねえところは、リモートコード実行につながるという1点であり、「とっとと修正あてろ」というところなのだけど、これを放っておくとそのうち感染を拡大していくWannaCryのようなのが出てくるかも、というのが嫌なところ。それも、SMBv3(のうち、SMB 3.1.1)という(これまた)Windows使ってりゃ避けられないプロトコル(ただし、実装しているのは一部のWindows)の実装にあるのだから、さらに嫌。ただ、新しい機能であるSMBv3 Compressionの実装で出てる脆弱性なので、影響範囲はわりかし限定的。Windows Server, version 1903 (Server Core installation) 、Windows Server, version 1909 (Server Core installation) 、Windows 10 Version 1903(32bit, x64, ARM)、Windows 10 Version 1909(32bit, x64, ARM)だけ*2

これをうまく悪用されると、勝手に拡大感染して、感染先で好き放題やって、さらに感染を広げるというめちゃくちゃ嫌なものの悪夢が再現する、というのが最低のシナリオである。

Workaroundはレジストリ編集(ただしSMBv3 Serverのみ)

修正ファイルを適用出来ない人に対しては、レジスト編集を行うことで適用可能なWorkaroundがあるが、これはSMBv3 Serverのみである。SMB Clientにはこの方法は使えない*3

で、先述のとおり、SMBv3 ServerとSMB Clientという用語は、Windows ServerとかClient系Windows OSとかいうのを区別するものではなく、単純にWindows上の機能を区分するものでしかないので、Workaroundを適用する人は、Windows ServerであろうとClient系Windows OSであろうと該当するものには適用しておこう。

SMB ClientはWorkaroundないけど大丈夫なのか?

大丈夫とは言えないけど、対策されていないSMBv3 Serverほどにはリスクは高くない、という感じ。

脆弱性の説明を読むとわかるけど、脆弱なSMB Clientを落とすには、悪意あるSMBv3 Serverを用意して誘い込む(接続させる)必要があるため、まず手間がかかる。

SMBv3 Serverの場合は、口が空いてれば悪意あるパケットをぶちこまれる懸念があるので、Workaroundを適用するか脆弱性修正を行うか、という話になってくる。

参考情報

*1:オレだけかもしれないけどw

*2:もっとも、今オレが使ってるのは、Windows 10 Version 1909なんだけどw

*3:正確には、使えるという言及がない

テレワークが止まらないので(何)、オンライン会議システムを3つくらい立て続けに使ってみた

私の勤務先もご多分にもれず、原則テレワーク状態に。

そんな中、この短期間に3種類のオンライン会議システムを使うことになったので、個人的な所管ではあるけど書き留めてみようかなと思う。

  • Zoom
    今やオンライン会議サービスの代表的な選択肢になっている感のあるモノ。
    無償で使えるのは40分まで。あとは契約しているサービス内容によって、時間とか付加サービスの内容が変わる風。
    遅延も少ないし、共有画面もきれい。これ使ってから、オンライン会議のイメージがガラッとかわった感。
  • Microsoft Teams
    Microsoftが提供するコミュニケーション基盤。
    Business Chatの分野では比較的新参という印象を受ける。
    これもまた、オンライン会議の機能を持っており、会議へのinviteはOutlook(筆者が仕事で使ってるのは、Outlook 2016)からボタン一発で行えるのが便利(プラグイン使えば、他のものでもできるのかもしれないけど、TeamsもOutlookもMSの製品であることを考えると、最初からこの機能が使えるOutlookを利用していれば、超便利)。
    画面共有はきれいだけど、音声通話は少しラグが生じるところが残念。
  • WebEx
    Ciscoが提供するオンライン会議サービス。
    このサービス領域では、結構老舗の部類に入る。
    ネットワーク屋さんが開発・提供しているサービスだけあって、音声の遅延は小さい。でも(理由はわからんけど)画面共有はあまりきれいではない。

Zoom、Microsoft Teams、WebExのいずれも有償プランはあるけど、無償でもある程度は利用可能*1。これはありがたい。

いずれのサービスも、プランの選択次第で電話経由でも会議に参加できるようになるが、気をつけないと会議参加用の電話番号がアメリカのものになったりするので注意w。

個人的に一番推したいのは、やっぱZoom

好きに使えばいいという話はあるけど、紹介した3つのサービスの中で、専業でやってるのはZoomだけなんだよね(いずれどこかに買われるのではないか?とも思ってるけど、今のところは専業)。Microsoft TeamsもWebExもいいサービスではあるんだけど、手軽さという点ではZoomが頭一つ抜けている*2。試す敷居も低く、インタフェースも洗練されており、直感的に使用可能。

このところ、世の中いろいろと暗い方向の話が多いけど、こういう時だからこそポジティブに動けるところはそう動いていこう、と思うのでした。まる。

*1:当然制限はつく

*2:あまりこういう方面に明るくない人から相談を受けたら、とりあえずこれ使ってみ?とすすめる程度には出来が良い

VBAマクロについての覚書

VBAでネットワーク使う時に、いろいろと制約事項が出て来やしないか?というので調べてた。

結論は以下のとおり

  • HTTPリクエスト系は、VBAマクロで普通に書ける
  • WinSockを用いたネットワークアプリケーションは、どこでも動くものを書くのは困難(MSWINSCK.OCXが必要だが、このOCXファイルはVB6ランタイムに含まれるらしく、Windows 10で使うのはちと勇気がいる(というか普通には入っていない))。

いろいろと凶悪なBotが出てくる中で、マクロで完結させられるかどうか?の調査をしていたのだけど、とりあえず素の状態でVBAでネットワークを、というのは難しいという結論になりました。

 

ファイルレスマルウエアは「ファイルは作らない」が、何も作らないわけではない

標的型攻撃に「ファイルレスマルウエア」が使われるようになって久しいが、標的型攻撃を仕掛けるモチベーション(きっかけ/やる気の源)は一体何か?を考えてみよう。

  • 仕掛ける相手の持ってる情報が欲しい
  • できれば長い期間、情報を継続的に獲得したい
  • でも、仕掛ける相手に侵入するのは結構手間

となると、何らかの方法で(だいたいはHTTP/HTTPS経由)情報を持ち出す手段を攻撃を仕掛ける相手に仕込みたいとなる。

ファイルレスマルウエアは、単純にファイルをスキャンするツールではみつからない。

しかし、単にメモリ上にしか存在しないマルウエアは、永続性の観点で不安定である。「再起動したら消える」脆弱な存在だ。

それでは、永続化するためにはどうしたらいいのだろうか。Windows上でファイルレスマルウエアを永続化するのは、(わりかし)容易かなと思う。以下、例えばこんな方法がある、ちうのを挙げていく。

別にPowershellに恨みがあるわけではないがw、Powershell上のワンライナースクリプトを用いて外部からプログラムを取得し、それを実行するというのはありうるし、ワンライナーでも結構なことを行える。

さらに、外部に情報を持ち出すときにも(本当にファイルレスならば)一時ファイルを作成せず、「ファイルを読む→HTTPリクエストに読んだ内容を乗せる」という処理を繰り返すし、RATっぽいものも動かして、外部からの制御を受け付けるようC&Cサーバに接続を行わせることも可能だ(今だったらこっちか?)。

ということで、「ファイルを作らない」だけで、痕跡はあちこちに残るため、その痕跡を逃さないために、例えばEDRであったり(端末セントリックだが、ログは集中管理されるのが普通なので、後述するSIEMとも絡んでくる可能性あり)、SIEMであったり(各種ログセントリック)というツールを導入・運用していくという話になってくる。

攻撃者の立場に立って考えると、「永続化」という話は重要なポイントなので、永続化のための手法を押さえておくと、攻撃された痕跡を見つけるのに役立つかもしれない。