ラック・セキュリティごった煮ブログ

セキュリティエンジニアがエンジニアの方に向けて、 セキュリティやIT技術に関する情報を発信していくアカウントです。

【お知らせ】2021年5月10日~リニューアルオープン!今後はこちらで新しい記事を公開します。

株式会社ラックのセキュリティエンジニアが、 エンジニアの方向けにセキュリティやIT技術に関する情報を発信するブログです。(編集:株式会社ラック・デジタルペンテスト部)
当ウェブサイトをご利用の際には、こちらの「サイトのご利用条件」をご確認ください。

デジタルペンテスト部提供サービス:ペネトレーションテスト

あなたの端末は大丈夫?無料で出来る Nessus Essentials でセキュリティパッチスキャンをかけてみた!

デジタルペンテスト部の吉原です。

4 月から「セキュリティ診断」の部署が「ペネトレーションテスト(ペンテスト)」の部署に吸収合併され、ごった煮ブログに執筆する機会を頂き、いいネタを思いついたので、記事を書かせていただきました!

私事ですが、4 月から今まで担当してきた「Web アプリケーション診断担当」から「プラットフォーム診断担当」(現 DiaForcePSR グループ)に異動させて頂き、プラットフォーム診断を楽しみながら、お仕事させていただいております、、!

そんな私ですが、先日「クライアント端末設定診断」の案件を担当させていただき、お客様の診断対象端末に対してセキュリティパッチスキャンをかける機会がありました。

そこで診断作業中にふと、「自分の私用デバイスは普段から WindowsUpdate を適用するように心がけてはいるけど、大丈夫かな、、?」と思い、診断作業の練習を兼ねて無償利用可能なスキャンツールである「Nessus Essentials」でセキュリティパッチスキャンをかけてみました。

今回は皆様に「普段 WindowsUpdate を心掛けている人の端末ではどの様な内容が検出されたのか?」、どのようにセキュリティパッチスキャンをかけるのか、 についてご紹介したいと思います。

※ 今回実施する内容については自身が所有する端末以外にはスキャンを実施しないようにお願いします。


Nessus Essentials とは?

「Nessus Essentials」とは Tenable 社が提供する無償で最大 16IP に対してスキャン可能なセキュリティスキャナです。

有料版である「Nessus Professional」と比較すると、一部機能は制限されてしまいますが、今回の目的であるセキュリティパッチスキャンをかける、ということに関しては、そこまで機能差はないため、今回はこのスキャナを使用したいと思います。

参考:https://jp.tenable.com/products/nessus/nessus-essentials


Nessus のセットアップ

アクティベーションコードの取得

tenable 社のページ にアクセスして、Nessus Essentials のアクティベーションコードを取得します。

氏名とメールアドレスを入力すると、下記画像のようなメールが入力したメールアドレスに届き、そこにアクティベーションコードが記載されています。

アクティベーションコードの画像

Nessus のダウンロードとインストール

次に「Download Nessus」を押して、Nessusをインストールします。

Nessusダウンロードサイト

今回は「Windows-X86_64」を選択しました。

Nessus コンソールにアクセス

インストールが完了すると、Nessus コンソールにアクセスが可能となるので、

https://(Nessusを立てたサーバのIP):8834/

にアクセスします。(初回ログインは暫く時間がかかります。)

Nessus コンソール画面

ログインすると、スキャン結果の一覧画面が表示されます。

ログイン後トップページ

スキャンプロファイルの作成

セキュリティパッチスキャン用のスキャンポリシーを作成します。 「RESOURCE」の Policy タブを選択し、New Policy ボタンを押します。 すると、ポリシーのテンプレート選択画面に移動します。

今回はセキュリティパッチスキャンのポリシーを作成したいので、「Credentialed Patch Audit」を選択します。

ポリシーテンプレート選択

余談ですが、Nessus ではセキュリティパッチスキャン以外にも画像の通り様々なスキャンを行うことが可能です。

分類 スキャン名 概要
発見 Host Discovery 稼働中のホストと開いているポートを検出する。
脆弱性 Advanced Dynamic Scan 推奨事項なしの高度なスキャン。特定の脆弱性に合わせてフィルターを行いながらプラグインを含めたり除外したりする。
脆弱性 Web Application Tests 公開された Web Apllication の脆弱性をスキャンする。

「Credentialed Patch Audit」を選択したら、作成するポリシーの名前を入力し、「Credential」のタブに移動します。

ポリシーの名前を入力

Credential タブでは、スキャン対象デバイスの認証情報を入力します。 今回は Windows マシンに対してスキャンを行うので、「Windows」を選択します。 (ドメイン未参加のマシンに対してスキャンをかける場合は、Domain の項目には「.\」を入力します。) また、画像の赤枠で囲われたチェックボックス 4 つををオンにします。

認証情報の入力

上記の入力が完了したら Save を押して、ポリシーを保存します。


スキャン対象デバイスの設定

前準備が長かったですが、ここからはスキャン対象デバイスの設定をしていきます。

SMB を確認する

Nessus のスキャンでは主に SMB を使用した通信でスキャンを行うため、まずスキャン対象デバイスで SMB を有効にする必要があります。 (今回の記事では詳しい設定方法は記載しませんが、下記のページが参考になるかと思います。) 参考:Windows で SMBv1、SMBv2、および SMBv3 を検出、有効化、および無効化する方法

SMB が有効になっているかを確認します。 (SMBv2、v3 が有効であればスキャンは可能です)

PS C:\Users\XXX> Get-SmbServerConfiguration | Select EnableSMB2Protocol

EnableSMB2Protocol
------------------
              True

PS C:\Users\XXX> Get-SmbServerConfiguration | Select EnableSMB1Protocol

EnableSMB1Protocol
------------------
             False

診断に使用するポートを開放する

次にスキャンに使用する通信ポートを open にします。 と言っても、Windows ファイアウォールの設定を特に変更していない場合は、下記画像の「ファイルとプリンターの共有」をオンにするだけで設定は完了します。

共有の設定

リモートレジストリサービスを有効にする

Nessus スキャンではスキャン対象デバイスの設定値をレジストリから読み取るため、リモートレジストリサービスを有効にする必要があります。 Windows キー+S で「サービス」と検索し、「Remote Registry」の項目を「自動」に設定します。

リモートレジストリサービス

LocalAccountTokenFilterPolicy のレジストリ値を作成する

またスキャン対象デバイスで管理者権限を使用してスキャンを行うために下記のレジストリを REG_DWORD で値を 1 にして作成します。 HKLM\SOFTWARE\Microsoft\ Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy

レジストリ設定

以上で、Windows での基本的なスキャン対象デバイスの設定は完了です。 もしスキャンに失敗してしまう場合は、下記のページを参考に設定を行ってみてください。

参考:Credentialed Checks on Windows


スキャンの実行と結果

今回の環境

  • スキャンをかける側 Windows11 Home 24H2 build 26100.1000 Nessus Essentials ver 10.7.4 (#55) WINDOWS Plugin Set 202407021037 Policy Template Version 202406272016
  • スキャンされる側 Windows11 Pro 24H2 build 26100.1000

スキャンされる側はスキャンのために必要な設定以外は特に変更を加えず、普段と同じ環境でスキャンを実行します。

作成したポリシーを選択してスキャンを実行

上記で作成したポリシーでスキャンを実行します。

「MyScan」タブから New Scan ボタンを押して、「User Defined」で先ほど作成したポリシーを選択します。

作成したポリシーの選択

作成したポリシーを選択したらスキャン設定画面の Target でスキャン対象デバイスの IP を指定します。 (ここで対象の IP を間違えてしまうと別デバイスに診断してしまうことになるため注意)

スキャン設定

入力が完了したら Save を押して、「My Scan」タブからスキャンを実行します。

スキャン結果

スキャンには暫く時間がかかるため、30 分ほど待ちます。 スキャンが完了していた場合、ScanDetail の Status が「Completed」になっています。

スキャンのサマリー

スキャンの結果は Report ボタンより HTML や PDF の形式で出力することができます。

スキャンのレポート

今回の「WindowsUpdate などは最新のものを適用した状態」で、どういった問題が検出されるのか?という疑問に対して何と 2013 年の脆弱性が報告されるという、面白い結果になりました。

その他にも日々アップデートを心掛けていたはずの Office でも脆弱性が検出されてしまいました、、

アップデートとか色々対策する

先ずは検出された Critical・High の内容を確認します。

WinVerifyTrust 署名検証 CVE-2013-3900 Mitigation

この問題点はどうやらレジストリの設定不備によって脆弱な状態にあることを報告しているようなので、See Also に記載のページを参照します。

上記ページによると、どうやら、この問題への対策機能である EnableCertPaddingCheck がWindows10/11 には、元々組み込まれているようですが、オプトイン機能のため、デフォルトで厳密な検証動作をする予定がないことから、セキュリティパッチが配信されておらず、レジストリ値を手動で設定する必要があるようです。

対応策として、下記のようなレジストリ値を設定するファイルを作成しました。 (ファイル名を「enableAuthenticodeVerification.reg」などで保存して、管理者権限で実行します。)

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Wintrust\Config]
"EnableCertPaddingCheck"="1"

[HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Cryptography\Wintrust\Config]
"EnableCertPaddingCheck"="1"

officeアプリの脆弱性

アップデートを心掛けていたはずの Office アプリの問題点はどうやらプリインストールされている Office365 のアプリに関する問題だったようで、ユーザインストールのものをアンインストールしたので、問題ないと思っていたら、どうやらファイルはまだ残っていて完全には消せないようです、、

今回は問題点の修正のために、アプリは使用しませんが Microsoft ストアから最新のものを入れようと思います。

再度スキャン

上記の対策を実施したうえで、本当に修正されたかを確認するために再度スキャンをかけてみます。

再スキャン

再スキャンのレポート
無事に脆弱性が検出されていないことを確認できました。


まとめ

今回は、Nessus Essentials を使用したセキュリティパッチスキャンの方法とその結果を紹介しました。

「普段 WindowsUpdate を心掛けている人の端末ではどの様な内容が検出されたのか?」という疑問に対して 2013 年の脆弱性が検出されるという、とても面白い結果になりました。

日々アップデートを心掛けていても、実は対策が漏れていたりするのだな、ということを体感できる良い機会となりました。

皆さまも機会がありましたら、セキュリティパッチスキャンをかけてみると、意外な問題点が検出されるかも?しれないので、是非実施してみてください。