SPN通信 2019年11月25日

Windows 10「セキュリティの質問」の危険性


みなさん、こんにちは。 SPNの塩月です。

昨年あたりからだと思いますが、Windows 10には「セキュリティの質問」という機能が追加されました。これはローカルアカウントを登録する際に三つの質問(「最初のペットの名前は?」など)とそれに対する答えを設定しておき、パスワードを忘れてしまった際にログオン画面で三つの質問に正しく答えることでパスワードをリセットできるというものです。

このような「セキュリティの質問」を使用したユーザ認証はさまざまなインターネット上のサービスで利用されていますが、この手法自体の安全性についてはいろいろと疑問が呈されています。

  • 秘密の質問(Wikipedia)
    https://ja.wikipedia.org/wiki/ %E7%A7%98%E5%AF%86%E3%81%AE%E8%B3%AA%E5%95%8F

にもかかわらずマイクロソフトがローカルアカウントのパスワードリセット用として「セキュリティの質問」を導入した真意はよくわかりませんが、ここではWindows 10に導入された「セキュリティの質問(以下SQSA: Security Questions & Security Answers)」の機能に関する二つの危険性についてお話しましょう。

■ SQSAの強制設定/変更による永続的バックドアの設置

昨年のBlack Hat Europe 2018で次のような発表がありました。

  • When Everyone's Dog is Named Fluffy: Abusing the Brand New Security Questions in Windows 10 to Gain Domain-Wide Persistence
    https://www.blackhat.com/eu-18/briefings/schedule/index.html#when-everyone39s-dog-is-named-fluffy-abusing-the-brand-new-security-questions-in-windows-10-to-gain-domain-wide-persistence-12863

これはターゲットネットワークに侵入してドメイン管理者の権限を奪ったのち、ドメインメンバーコンピュータのSQSAを強制的に設定あるいは変更することにより、そのローカルアカウントを永続的な隠れたバックドアとして利用できるというものです。手順的には以下のようになります。

(1) ローカルアカウントのSQSAを任意の値に設定(バックドアの設置)
(2) RDPによりパスワードをリセットしてアクセス(バックドアへのアクセス)
(3) ばれないようにパスワードを元へ戻す

以前のバージョン(1809まで)ではSQSAの質問と答えはLSAシークレットに暗号化して保存されていたため、(1)の実行にはやや複雑な手順やツールが必要でした。しかし最近のWindows 10(バージョン1903や1909)ではSAMの中(HKLM\SAM\SAM\Domains\Account\Users\{RID}\ResetData)に平文で格納されているので、設定や変更は前よりも容易になったと言えます。

(2)についてはRDP(リモートデスクトップ)でネットワークレベル認証を使わないようにしてアクセスすればユーザ認証の段階でパスワードリセットが選択できるため、標準機能のみで実現できます。(3)はMimikatzを使って当該ユーザのパスワードハッシュを元の値に書き戻すという手法が紹介されています。

この発表のポイントはあくまでも管理者権限を得たのちの、永続的かつ気づかれにくいバックドア設置手法としてSQSAを利用するというものであり、SQSA自体に脆弱性があると指摘しているわけではありませんのでご注意ください。

■ SQSAの不正取得によるスクリーンアンロック

次に以下のようなシナリオを考えてみましょう。

「SQSAを設定しているユーザでログオンし、休止状態となっているノートPCが盗難にあいました。このPCのCドライブはBitLocker等で暗号化されていません」

このノートPCを入手した攻撃者はハードディスクを取り外したり、USBメモリ等からLinuxを起動したりするなどしてレジストリハイブファイルを抽出し、ログオン中のユーザのSQSAを取得します。その後PCを休止状態から復帰すると、スクリーンロックがかかった状態でパスワードの入力を求められますが、ここでリセットを選択し、入手したSQSAを使用してパスワードをリセット、新しいパスワードでスクリーンロックを解除します。

スクリーンロック解除後のログオンセッションはパスワード変更前の状態が継続していますので、ログオフするまではEFSで暗号化されているファイルへそのままアクセスできますし、保存されているWeb資格情報やWindows資格情報といった他システムへのパスワード等、DPAPIで保護された各種情報へのアクセスが可能になります。

ハードディスクドライブが暗号化されていない場合、盗難によりさまざまな情報漏洩のリスクが存在しますが、スクリーンアンロックによるログオンセッションへのアクセスはさらに保存された資格情報(Webサイト、ファイルサーバ、RDPアクセス先などのパスワード)まで奪われることにつながるため、受ける被害はより大きくなりかねません。スクリーンアンロックについては今までに各種の手法が考案されていますが、SQSAは新たなかつ容易に実行できる手法としてそれらに加わったという感じですね。

Windows 10におけるSQSAはパスワードリセットの利便性のために導入された機能ですが、一方でここに述べた通りこれまでになかった新たな危険性をもたらします。通常のユーザ追加手順に従えば、ユーザ追加の過程において半ば強制的にSQSAを設定させられるという点も問題でしょう。バージョン1903以降はSQSAを使用しないようにグループポリシーで設定できるようになりました。使う/使わないの選択肢が与えられたのは喜ばしいことですので、必要ないという場合は下記設定を行うことをお勧めします。

コンピューターの構成
  管理用テンプレート
    Windowsコンポーネント
      資格情報のユーザーインターフェイス
        ローカルアカウントに関するセキュリティの質問を使用できないようにする

ユーザにとって便利な機能は、時として攻撃者にとっても便利な機能となります。何か便利な機能が追加された際はそれがもたらすリスクについても十分に評価し、天秤にかけたうえで利用するかしないかを判断することが重要だと思われます。

それではみなさん、またお会いしましょう。

合同会社セキュリティ・プロフェッショナルズ・ネットワーク
代表社員 塩月誠人