Blue Planet-works|Blog

狙われるActive Directory:ペネトレーションテストの実例

Tech Note

 

本ブログは、2022年8月に発行された、「サイバーセキュリティの裏側から 2022」レポートの一部をブログ化したものです。

狙われるActive Directory

Penetration Test(以下、ペネトレーションテスト)とは、システムに残存する脆弱性や設定不備を利用して組織への侵入を試み、侵入された際のリスクを明らかにすることを目的としたテストです。本項では、ストーンビートセキュリティ株式会社が実施した企業Aに対するActive Directoryへのペネトレーションテストの結果から、昨今のサイバー攻撃において被害拡大の要因ともなっているActive Directoryに内在するリスクを紹介します。

ランサムウェアを扱うサイバー攻撃者の多くはランサムウェアを効率的に配布するためにActive Directoryを侵害する傾向が多く見られます。Active DirectoryはWindowsドメインを統合管理する仕組みであるため、管理者権限を奪取された場合にグループポリシーを利用してランサムウェアをドメイン配下の端末に配布されるだけでなく、ドメインに登録されている全てのアカウント情報が攻撃者に窃取されてしまう懸念があります。

本ブログでは組織の内部ネットワークに攻撃者が何らかの方法で侵入した状態を想定し、その状態から内部ネットワークで稼働するActive Directoryを探し出し、管理者権限を奪取するまでの流れを再現することで対策のポイントを導き出していきます。

Active Directoryの管理者権限を奪取するまでの流れ

下図に示されるとおり、ペネトレーションテストの結果として、攻撃者(ペンテスター)は企業Aが運用するActive Directoryに対して「Zerologon(CVE-2020-1472)の脆弱性」と「SMBでの匿名ログイン」の2通りの攻略方法が存在することを確認しています。

図 攻撃者がActive Directoryへ侵入するまでの流れ

 

① ポートスキャンによるActive Directoryの特定

攻撃者(ペンテスター)が対象にポートスキャンを実行することでオープンポートやサービス、ソフトウェア情報を収集することができます。また、オープンポートやサービス名から対象機器のサーバー種別についても推測可能な場合があります。

攻撃者(ペンテスター)の端末からポートスキャンを実行した際に、あるホストからの応答でDNS(53/TCP、UDP)、Kerberos(88/TCP、UDP)、SMB(139/TCP、445/TCP)、LDAP(389/TCP)サービス等が動作していることが確認できました。これらのサービスが動作していたことから、このホストがActive Directoryであると推測することができます。

② Active Directoryの脆弱性調査と侵入の施行

ポートスキャンによってActive Directoryと推測されたホストに対して、今度は専用のツールを使って脆弱性のスキャンを実施したところ「Zerologonの脆弱性」と「SMB(Server Message Block)での匿名ログインが有効」であることが判明しました。

1) Zerologonの脆弱性

Zerologonの脆弱性はCVE-2020-1472として定義され非常に深刻度の高い(CVSS v3 基本値:10.0[緊急])脆弱性として知られています。この脆弱性を悪用することでリモートからActive Directoryの管理者権限を奪取することが可能であり、この攻撃によってドメイン全体を攻撃者に掌握される危険性があります。

 

図 Zerologonを悪用した攻撃の流れ

本項で取り上げているペネトレーションテストでは、対象ホストが企業Aの本番環境で利用されているActive Directoryであるため、Zerologonの脆弱性を悪用してパスワードリセット等を試みて管理者権限を奪取するところまでは攻撃を進めていません。しかし、この脆弱性が残存しているという事実は、攻撃者にとって容易にActive Directoryを掌握できることを意味します。

2) SMBでの匿名ログインが有効化

SMBでの匿名ログインが有効化されている場合、攻撃者は認証情報なしにActive Directoryに対して接続が可能となるため、ドメインに登録されたユーザー名やパスワードポリシー、アカウントロックに関する設定等の様々な情報を取得されてしまう危険性があります。

ポートスキャンによってActive Directoryと推察された対象ホストに対してSMBでの匿名ログインを利用することで、攻撃者(ペンテスター)は約500件のユーザー名やパスワードポリシー、アカウントロックに関する情報を入手することができました。入手したパスワードポリシーから、設定可能なアカウントパスワード要件が脆弱(複雑性の設定要件なし)で文字長は8文字以上であることが判明します。また、アカウントロックに関する情報からは、5回の認証失敗で対象アカウントがロックされることも確認できました。これらの情報を活用することで、攻撃者(ペンテスター)は脆弱な設定となっているアカウントの有無を調査することができます。

一般的に脆弱な設定となっているアカウントを特定する手段として、「ブルートフォース攻撃」と呼ばれる手法が利用されます。「ブルートフォース攻撃」は、特定のユーザー名に対してパスワードを総当りする攻撃ですが、前段の調査によって「5回の認証失敗で対象アカウントがロック」される設定となっていることから、攻撃者は総当りによるアカウントロックを回避するために「パスワードスプレー攻撃」へ切り替える判断が可能となります。

「パスワードスプレー攻撃」とは、少ないパスワードリストを活用して総当りすることで脆弱なアカウントを特定する攻撃手法です。本項で取り上げているペネトレーションテストでは、よく使われるパスワードの中から「password」、「12345678」の2つと「ユーザー名(ユーザー名=パスワード)」の計3つをパスワードリストとして利用しました。

この対象ホストに対しては、アカウントロックされない範囲で約1500回(約500ユーザー×3つのパスワード)の認証試行を行い、脆弱なパスワードを使用しているユーザーを10分弱で約40件も特定することができました。これらのアカウントに対してどういった権限が付与されているのか調査したところ、システム権限を持ち、あらゆるコマンドを実行可能なDomain Adminsグループに所属するアカウントが含まれていました。この時点で攻撃者はActive Directoryの管理者権限を奪取したことになります。

Domain Adminsグループに所属するアカウントを奪取した攻撃者(ペンテスター)はActive Directoryへ侵入した後、登録されている全アカウントのパスワード情報の抽出を行い、約5000件のパスワードハッシュを取得することに成功しました。

パスワードハッシュとはパスワードの保存形式であり、パスワードはハッシュ関数によりハッシュ化された値(ハッシュ値)で格納されています。ハッシュ化することでActive Directoryで管理されたパスワード情報が漏洩した場合でも、元のパスワードが特定されないようにする利点があります。しかし、脆弱なパスワードを使用していた場合、容易にハッシュ値から元のパスワードを特定することが可能です。本項においても取得した約5000件のハッシュ値に対して、攻撃者(ペンテスター)は約2時間で1000件以上のパスワードをパスワードハッシュから特定することに成功しました。

ペネトレーションテストから読み解くActive Directoryへの配慮

上記で紹介したActive Directoryへのペネトレーションテストの結果からActive Directoryを運用する上で配慮すべき事項と推奨される対策を以下に示します。

「Zerologon(CVE-2020-1472)の脆弱性」の様に、既知の脆弱性を悪用される場合もありますが、SMBサービスの脆弱な仕組みを足掛かりとしてActive Directoryへ侵入し、管理者権限を持つアカウントのパスワード情報を取得されてしまうこともあります。

実際の攻撃者はActive Directoryにバックドア用のアカウントを追加することで、永続的な接続を確保することもあります。また、昨今は「3.実録:ランサムウェアを取り巻く攻撃者の動向」で紹介した事例の様に侵入したシステム内の情報探索や情報窃取後にランサムウェアを実行して業務停止に追い込む事例も数多く確認されています。

本項でご紹介した様に修正パッチの未適用や脆弱なパスワードの使用等、基本的な対策が実施されていないことがシステムへの侵入やアカウントの漏洩につながります。また、適切なパスワードポリシーを設定していたとしても、そのパスワードポリシーを設定する以前の古いアカウントが削除されないまま残っていると、それを悪用されることもあります。

セキュリティ対策を万全に行っている組織やシステムであっても、第三者によるペネトレーションテスト等の棚卸しを定期的に実施し、リスクを可視化して適切な対応を施していくことが重要です。

脆弱性管理プロセスの構築

ストーンビートセキュリティ株式会社が2021年1月から2022年5月までに実施したペネトレーションテストにおいては、全体の約80%以上のシステムで何らかの脆弱性が残存していることが報告されています。その中の約5%がOSやソフトウェアに起因する深刻度の高い脆弱性であり、本項で取り上げた「Zerologon(CVE-2020-1472)の脆弱性」に代表される悪用された場合に深刻な被害に直結するものばかり確認されています。

脆弱性への対策としては主に修正パッチを適用することになりますが、修正パッチを適用する作業は、適用後にシステムの動作に影響を及ぼす懸念があるため事前検証が必要になる等、管理者にとっては手間を要するものではあります。しかしながら、万一、脆弱性が攻撃に悪用されてしまい、ネットワーク内で深刻な被害が生じた場合は緊急対応や復旧作業等で非常に多くの時間を割かざるを得ない状況になります。また、さらに調査・対応をフォレンジック事業者に依頼すると多額の費用も発生します。もし、速やかな修正パッチの適用が難しい場合には、根本対策(修正パッチの適用)を実施するまでの期間は緩和策(例:AppGuardを利用する)を講じる等、計画的かつ柔軟な対応が求められます。

OSやソフトウェアの脆弱性は日々新しいものが公開されており、その中には深刻度の高いものも多数含まれています。また、ユーザーの実環境においては数年前の古い脆弱性が残存しているものや、サーバー機器以外のネットワーク機器(UTM製品やその他アプライアンス製品等)においても深刻な脆弱性が残存しているのが実態です。そのため、管理対象のシステムにおいては、公開された脆弱性情報を定期的に確認し、リスクを評価した上で、脆弱性対策を計画的に実施することが非常に重要となります。また、脆弱性への対応を日々の運用業務に組み込んで、脆弱性対策を着実かつ継続的に実施できるような仕組み(脆弱性管理プロセス)を構築することが推奨されます。

OSやソフトウェアの脆弱性に対応するための脆弱性管理プロセス(脆弱性の識別、優先順位付け、パッチの入手、パッチの適用、パッチ適用状況の検証)は、各組織のシステム環境や運用状況に応じて構築する必要があります。現在、脆弱性管理プロセス構築時の参考となるガイドラインとしては、米国国立標準技術研究所(NIST)が発行する「Guide to Enterprise Patch Management Planning: Preventive Maintenance for Technology(NIST SP800-40 Rev.4)」があります。また、少し古いですが国内でもIPAから日本語訳も公開されています。本書には、脆弱性管理プロセスの各フェーズにおけるベストプラクティスが網羅的に説明されており、本書の内容に沿って脆弱性管理プロセスを構築することが推奨されています。

2022年4月には、「Improving Enterprise Patching for General IT Systems: Utilizing Existing Tools and Performing Processes in Better Ways(NIST SP1800-31)」が発行されています。こちらには、前述の「NIST SP800-40 Rev.4」で説明されている修正パッチ管理プロセスを組織に実装する際、ツールを導入して自動化や省力化を図る方法が詳しく解説されています。脆弱性管理プロセスにおいて、管理対象システムの数が多い場合は管理の手間も増大しますので、プロセスの自動化を進めて省力化を図ることも重要です。

 

 

2023年版セキュリティレポートを公開中!
↓↓↓詳しくはこちらから↓↓↓

 

 

 



ページトップに戻る