Active Directory CS の脆弱性を分解/整理する:最も危険な権限昇格に注目すべき理由は?

Breaking Down AD CS Vulnerabilities: Insights for InfoSec Professionals

2024/08/30 TheHackerNews — サイバー・セキュリティの世界では、きわめて多くの脆弱性が存在する。しかも、それらが高い確率で発見されるため、対応が追いつかないという事態にいたっている。脆弱性の中には、セキュリティ・ツール内のアラートに引き起こすものもある。しかし、ここ問題となるのは、はるかに微妙なものであっても、危険な脅威になるものもあることだ。今日は、これらの微妙な脆弱性の1つについて解説していく。この脆弱性は、おそらくあなたの環境に潜んでいて、悪用されるのを待っている。それは、Active Directory Certificate Services (AD CS) の脆弱性である。


最近のことだが、Vonahi Security の vPenTest が、この隠れた AD CS の脅威を特定して軽減するために設計された、攻撃ベクターの実装に成功した。しかし、まずは、AD CS の脆弱性が、なぜそれほど危険なのか、そして、どのように機能するのかを見る必要がある。

Active Directory Certificate Services (AD CS) とは?

Microsoft の定義によると、Active Directory Certificate Services (AD CS) は、「安全な通信および認証プロトコルで使用される、公開キー・インフラ (PKI) 証明書を、発行/管理するための Windows Server のロール」となる。 AD CS に依存する、一般的な機能とサービスは次のとおりである。

  • The Windows Logon Process
  • Enterprise VPN and Wireless Networks
  • Email Encryption and Digital Signatures
  • Smart Card Authentication

ユーザー組織内で利用されるテクノロジの種類を増え続けるにつれて、AD CS は一般的なものとな、その必要性を高めてきた。特に、企業におけるサービスが、クラウド上にホストされる状況が続けると、その傾向が強まっていく。多くの AWS/Azure/GCP などのサービスを機能させるには、証明書ベースの認証が必要となるため、現代のマルチクラウド・ネットワークにおいて、AD CS は重要かつ必須のサービスになると予想される。

隠れた危険

すべてのパワフルなツールと同様に、これらのツールを利用するに際しては、それらを適切に維持する責任が生じる。もし、適切な保護策が講じられないと、そのツールが悪用される可能性が極めて高くなるからだ。それは、AD CS の場合にも当てはまる。現代の Windows/Active Directory において、AD CS は認証/承認フレームワークのコア・コンポーネントであるため、そこに存在する脆弱性は、こうした環境に大きなリスクをもたらす。 6~7 年前に Kerberos で発見されたように、現在も発見され続けているように、キー認証インフラが侵害されると、悪用の可能性が大きく高まる。AD CS のケースでは、それ以上に悪用される可能性がある。

AD CS 攻撃の基本

AD CS 攻撃は、Kerberos サーバなどの ID サーバーと同程度に、ドメインが証明機関 (CA) サーバを信頼しているという事実に起因する。CA サーバをゲート・キーパーだと考えてほしい。ゲート・キーパーが安全な領域へのアクセスを制御するのと同じように、CA サーバは証明書の配布と検証を制御し、信頼できるエンティティのみにアクセスを与える。

ただし、AD CS 攻撃では、この事実が悪用されることで、パスワードや暗号化キーなどの必要性が回避される。AD CS の脆弱性には、以下の4つの主要クラスが存在する。

  • ESC – このクラスの脆弱性により、被害者のネットワーク/ドメイン内において、ある程度の権限昇格が発生する。これらの脆弱性の悪用に成功した攻撃者は、ほとんど手間をかけずに、権限の低いユーザーからドメイン管理者へとアクセスを変換できる。
  • 盗難 – これらの脆弱性は、クライアント・エンドポイントの周囲に、重要なセキュリティ制御が存在しない場合に発生する。それにより、認証証明書が盗まれ、権限のエスカレーションが発生し、環境内での永続化へといたる。
  • 永続化 – この名前が示すように、これらの脆弱性により、ネットワーク環境で攻撃者は、証明書へのアクセスを悪用することで、パスワードを必要とせずに、環境内でアクセスを永続化するという状況へいたる。
  • CVE – 上記の3つのクラスとは別種のものだが、AD CS 内のパッチ未適用の脆弱性を悪用することで、危機的な状況へといたる。

Microsoft は常に、CVE が割り当てられた AD CS の脆弱性を追跡し、パッチをリリースしている。つまり、これらの脆弱性の大部分については、修復とセキュリティの責任を消費者に負わせているため、これらの脆弱性が想像する以上に存在しているという点に、注目すべきである。

AD CS の脆弱性カテゴリの中で、最も危険なのは ESC カテゴリ (権限昇格) である。この問題が発生すると、特定の誤ったコンフィグにより、まったくと言ってよいほど権限が必要とされなくなるため、ユーザー環境にとって最大の脅威となる。そのような誤ったコンフィグの1つが ESC2 脆弱性である。それは、特定の状況下においてサーバが、特定のユーザーになりすます必要があるために発生する。

この攻撃により、標準的なユーザーであれば、要求の代理フィールドを介して標的ユーザーになりすまして証明書を登録できる。たとえば、権限の低い標準ユーザーであっても、ドメイン管理者を装って証明書を要求し、その後に NTLM ハッシュを要求できる。その結果として、ドメイン管理者アカウントが侵害され、ドメイン全体が完全に侵害されていく。以下のデモをチェックしてほしい。AD CS ハッキング ツール Certipy を使用する攻撃者が、それを悪用する方法が認識できるだろう。

AD CS Vulnerabilities
何をすべきだろうか?

前述のとおり、これらの脆弱性を、ユーザーが簡単に特定/修正するパッチを、Microsoft は提供できていない。そのため、AD CS のユーザーは、自分のシステムを保護する責任を負うことになるが、困難な場合が多くなるだろう。では、何をすべきだろうか?

この脆弱性クラスの発見者により構築された “https://github.com/GhostPack/PSPKIAudit” は、多くの面倒な作業を実行し、AD CS コンフィグ内の問題となる脆弱性を、特定するように設計された PowerShell フレームワークである。ただし、ある時点で、それらの脆弱性を排除したとしても、環境に新しいツールが追加される度に、再び脆弱性が表面化する可能性がある。そこで、Vonahi Security の vPenTest の出番となる。

vPenTest は、ネットワークを管理し、包括的なセキュリティ評価を自動的に実行する、最先端の自動侵入テスト・ツールである。vPenTest には、AD CS の脆弱性を検出する機能が組み込まれており、ネットワーク内の脆弱性を悪用して影響を実証できるため、それらの脆弱性に注意する必要がある理由を、関係者に対して示すことが可能となる。いま直ぐにでも、vPenTest をチェックしてほしい!

このテーマに関する素晴らしい調査を行った SpecterOps チームと、これらの脆弱性の特定に役立つ素晴らしいツール Certipy を開発した ly4k に感謝する。