Windowsの信頼されたルートCAで疑わしい証明書を検出する方法

Windows で疑わしいサードパーティの証明書に対処するのは、マルウェアや正規のインストールを装って侵入する可能性があるため、少々厄介です。システムがおかしくなったり、怪しい証明書がないか確認したい場合は、証明書ストアを確認するのが賢明です。ここでの目標は、そこにあってはならないもの、たとえば不正なルート CA や、適切な承認を得ずに管理をすり抜けた自己署名証明書などを見つけることです。sigcheck を使用したこの方法は、インストール済みの証明書を Microsoft の公式の信頼済みルート証明書と比較し、疑わしいものにフラグを付けてくれるので、非常に便利です。セットアップによっては、そのランダムな証明書がマルウェアの兆候であったり、忘れていた社内証明書であったりすることがあります。いずれにせよ、特に新規インストールや OEM インストールの場合は、これを定期的に実行することで、システムの安全性を高めることができます。

Windows で疑わしいサードパーティの証明書を確認する方法

方法1: Sigcheckを使用して信頼できない証明書を見つける

このツールの素晴らしい点は、証明書をMicrosoftの信頼済みリストと照合し、不明な証明書や悪意のある可能性のある証明書をハイライト表示してくれることです。ネットワークの問題やHTTPSエラーが発生する場合、その背後に偽の証明書が潜んでいることがよくあります。多くのマシンでは、マルウェアが中間者攻撃やトラフィック傍受を行うために独自のルートCAをインストールします。少し奇妙ですが、実際に起きています。唯一の難点は、まず管理者権限でツールをダウンロードする必要があることです。

  1. SysinternalsのページからSigcheckユーティリティのアーカイブをダウンロードし、 c:\tools\sigcheckのような場所に解凍してください。このフォルダが存在しない場合は作成してください。Windowsは複雑な設定をしているため、権限が適切でないと解凍に失敗することがあります。そのため、管理者として実行してください。
  2. 管理者としてコマンドプロンプトを開きます。そのためには、 を押し、 と入力して を押しWindows + Rます。cmdCtrl + Shift + Enter
  3. Sigcheck: を解凍したディレクトリに移動しますcd c:\tools\sigcheck。理由は分かりませんが、この操作を行わないとコマンドが認識しない場合があります。
  4. マシンのルートストアをスキャンするコマンドを実行してくださいsigcheck64.exe -tv root。複数の証明書が表示される場合があります。これらの証明書のサムプリントや発行者情報に不審な点がある場合は、さらに詳しく調査する必要があるかもしれません。
  5. すべてのストアを完全にスキャンするには、 を実行します.\sigcheck64.exe -tv *。ユーザー固有の証明書の場合は、 を追加します-u\sigcheck64.exe -tuv *マルウェアは証明書をシステムストアに取得せず、ユーザーストアにこっそりと取得することがあるため、両方を確認することをお勧めします。

ここで何が役に立つのでしょうか?Sigcheckはインストール済みの証明書をMicrosoftの信頼済みリストにある証明書と比較し、一致しない証明書にのみフラグを立てます。オフラインの場合は、もう少し手作業が必要になります。Microsoftのサイト(リンクはこちら)からauthrootstl.cabファイルを取得し、Sigcheckと同じフォルダに配置する必要があります。これによりオフラインチェックを実行できるようになり、エアギャップシステムや簡単なオフライン監査に便利です。

ほとんどの場合、自分でインストールしていないサードパーティの証明書は表示されないはずです。もし、特にルートストアに証明書が存在する場合は、悪意のある証明書や不要な証明書である可能性があります。ドメインに参加しているマシンでは、一部のルート証明書がグループポリシー経由でプッシュされる可能性があるので注意してください。そのため、ITチームがマシンを管理している場合は、見覚えのある証明書が表示されても慌てないでください。

何か怪しいものを見つけた場合は、Sigcheck の出力からサムプリントをコピーし、削除コマンドを実行してください。ビジュアルエディタcertmgr.msccertutil –delstore Root CB19F3F57A4EDB004059DEE436A1989D04275196を使用して削除することもできます。 「信頼されたルート証明機関」 > 「証明書」を展開し、疑わしい証明書を右クリックして「削除」を選択してください。

一部の証明書は自己署名されているか、PowerShell のNew-SelfSignedCertificateコマンドレットで作成されている可能性があります。それらの証明書が何であるかが分かっている場合は問題ありませんが、自分で作成していない場合は削除することをお勧めします。

もちろん、Windowsは必要以上に複雑な仕組みになっているため、こうしたスキャンを常に実施することで、悪意のある攻撃者の侵入を防ぐことができます。特にOEM製品やプリインストールされたソフトウェアを搭載したシステムでは、定期的なチェックが重要です。これらのシステムには、何らかの理由で信頼された証明書が含まれている可能性があります。

まとめ

  • Microsoft のサイトから Sigcheck をダウンロードします。
  • 管理者として実行し、ルートとユーザー ストアを確認します。
  • リストを信頼できる Microsoft ルートと比較します。
  • 疑わしい証明書を拇印で削除します。
  • 必要に応じて、視覚的なクリーンアップのために certmgr.msc を使用します。
  • 特に新しいデバイスや OEM デバイスでは、これを定期的に実行してください。

まとめ

総じて、証明書ストアを常に監視しておくことは悪い考えではありません。マルウェアは多くのセキュリティチェックを回避するため、怪しいルート証明書をインストールするのが得意です。Sigcheckを使えば、使い方さえ覚えてしまえば、かなり簡単にチェックできます。特に新しいソフトウェアやアップデートをインストールした後は、定期的にチェックすることで、後々面倒な事態を防ぐことができます。ただし、社内証明書や企業証明書は問題ないものもあるので、怪しい証明書がいくつか見つかっても慌てる必要はありません。この情報がお役に立てば幸いです。少なくとも、HTTPSやネットワークトラフィックに異常が生じた場合に、何に注意すべきかを知る手がかりになるでしょう。