権限昇格(Privilege escalation)は、今日ほぼすべてのサイバー攻撃に見られる一般的な手口です。悪意のある内部関係者、ランサムウェアの集団、その他の脅威アクターは、被害者のネットワークを横断して機密性の高い IT リソースへの不正アクセスを得るために、これを横方向への移動(lateral movement)と組み合わせて悪用することがよくあります。昇格されたアクセス権は、機密データの窃取、業務運用の妨害、攻撃の今後の段階で使用するバックドアの作成など、悪意のある活動にとって不可欠です。 Active Directory が広く使われているため、Linux の特権奪取(privilege assault)よりも Windows の権限昇格攻撃の方が一般的ですが、どちらも実環境で確認されています。
無料ガイドをダウンロード:
攻撃者にとって昇格された権限が重要な理由
昇格された権限は、脅威アクターがシステムの設定、データの権限、セキュリティ制御を変更するために必要な「王国への鍵」です。攻撃者は通常、侵害された標準ユーザーアカウントを使ってネットワークにアクセスします。権限昇格は、システム管理者または高権限のサービスアカウントの認証情報を盗むことで実現されます。これにより、重要なサーバー、ネットワーク機器、データリポジトリ、バックアップシステムにアクセスできるようになります。
残念なことに、権限を昇格する能力は、多くの組織が適切なセキュリティ対策を欠いているため、あまり高度でないハッカーにとっても簡単に実現できることがよくあります。実際、アクセス制御はあまりにも頻繁に、最小権限の原則の強制よりも、利便性を重視して設定されています。
横方向と縦方向の権限昇格
サイバー攻撃は、未パッチのシステム、不適切な設定、プログラミング上のエラーなど、何らかの脆弱性の悪用を伴うことがよくあります。システムが侵害されると、攻撃者は偵察を行い、侵害対象となる特権ユーザーを特定し、さらにすでに支配下にあるアカウントのアクセス権を増やす方法を探します。
脅威アクターが用いる特権昇格には、2 つの種類があります。
- 水平的な特権昇格(Horizontal privilege escalation) — 攻撃者がアカウントを侵害し、その後、別のシステム上の別のユーザーまたはアプリケーションと同じレベルの特権または権限にアクセスできるようになります。たとえば、あるインターネットバンキング利用者のアカウントを侵害した後、攻撃者がその利用者のIDとパスワードを学習することで、別のユーザーのアカウントにアクセスできる可能性があります。
- 垂直的な特権昇格(aka elevation of privilege または EoP) — 悪意のあるユーザーが下位レベルのアカウントにアクセスし、システムの弱点を悪用して、リソースまたはシステムに対する管理者権限、または root レベルのアクセス権を獲得します。垂直的な特権昇格は、水平的な特権昇格よりも高度な攻撃技術を必要とし、たとえば攻撃者がシステムやデータに対してより高い権限を得るのを助けるハッキングツールなどが挙げられます。
特権昇格はどのように発生しますか?
未授权の操作を行おうとする攻撃者は、特権昇格(privilege escalation)のエクスプロイトをよく使用します。これらのエクスプロイトは、オペレーティングシステム、ソフトウェアコンポーネント、またはセキュリティ設定の誤りに関連する既知または発見された弱点を含みます。攻撃は通常、次の 5 ステップのプロセスを含みます:
- 脆弱性を見つけます。
- 関連する特権昇格のエクスプロイトを作成します。
- システムにエクスプロイトを使用します。
- システムを正常にエクスプロイトできているか確認します。
- 必要に応じて、追加の権限を取得します。
代表的な権限昇格(privilege escalation)手法にはどのようなものがありますか?
攻撃者はさまざまな権限昇格(privilege escalation)手法を使用します。最も一般的なものは次の3つです:
- アクセス トークンの操作
- ユーザー アカウント制御(UAC)の回避
- 有効なアカウントの使用
手口 1:アクセス トークンの操作
アクセス トークンの操作は、Windows が管理者権限を管理する仕組みを悪用します。アクセス トークンは、ユーザーのログイン時に Windows システムによって作成されます。アクセス トークンを変更することで、攻撃者はシステムをだまして、システム タスクを実行したり、昇格された特権を必要とする実行中のプロセスやサービスにアクセスしたりできるようにすることができます。
攻撃者は、次の 3 つの方法のいずれかを使ってアクセス トークンを活用できます。
- トークンをなりすます、または盗む — 攻撃者は DuplicateToken(Ex) 関数を使用して、既存のトークンを複製する新しいアクセス トークンを作成できます。作成したトークンは、ImpersonateLoggedOnUserfunction と組み合わせて使用することで、呼び出しスレッドがログオン済みユーザーのセキュリティ コンテキストになりすませるようにしたり、SetThreadToken 関数と組み合わせて使用することで、なりすましたトークンをスレッドに割り当てたりできます。
- トークンでプロセスを作成する — これは、攻撃者が DuplicateToken(Ex) 関数で新しいアクセス トークンを作成し、それを CreateProcessWithTokenW 関数と組み合わせて使用して、なりすましたユーザーのセキュリティ コンテキストで実行される新しいプロセスを作成するときに発生します。これは、別のユーザーのセキュリティ コンテキストで新しいプロセスを作成するのに役立つ場合があります。
- トークンのなりすまし(impersonation) — ここでは、攻撃者はユーザー名とパスワードを持っているものの、ユーザーはシステムにログオンしていません。攻撃者は LogonUser の助けを借りて、そのユーザーのログオン セッションを作成できます。この関数は新しいセッションのアクセス トークンのコピーを返し、攻撃者は SetThreadToken を使用して、そのトークンをスレッドに割り当てることができます。
この脅威を軽減する方法
アクセス トークンは Windows セキュリティ システムの重要な一部であり、無効にすることはできません。ただし、この手法を十分に活用するには、攻撃者がすでに管理者レベルのアクセス権を持っている必要があります。したがって、最小権限の原則に従ってアクセス権を割り当て、すべてのアクセス権が定期的に見直されていることを確認してください。また、特権アカウントを注意深く監視し、これらのアカウントによって行われる不審な活動の兆候があれば速やかに対応する必要があります。理想的には、ほぼすべての常設(standing)管理者アカウントを just-in-time accessに置き換えられます。
手法 2:ユーザー アカウント制御(User Account Control)の回避
Windows のユーザー アカウント制御(User Account Control:UAC)機能は、一般ユーザーと管理者権限を持つアカウントの間におけるゲートウェイとして機能します。管理者が権限の引き上げを許可するまで、アプリケーション ソフトウェアは標準ユーザー権限に制限されます。また、プロンプトを先に進めるには管理者が自分の認証情報を入力する必要があります。このようにして、ユーザーが信頼するアプリケーションのみが管理者権限を受け取ることになり、マルウェアがオペレーティング システムを侵害するのを防ぎます。
ただし、この仕組みは完璧ではありません。コンピューターの UAC(ユーザー アカウント制御)保護レベルが最高レベル以外に設定されている場合、一部の Windows プログラムは、ユーザーに最初に通知することなく特権を昇格したり、昇格された状態で実行される Component Object Model(COM)オブジェクトを実行したりできます。
この脅威を緩和する方法
定期的に IT 環境を確認し、一般的な UAC バイパス(回避)に関する弱点を洗い出して、必要に応じてリスクに対処する必要があります。もう 1 つの良い実践として、すべての Windows システムでローカルの Administrators(ローカル管理者)グループに含まれているアカウントを定期的に見直し、通常ユーザーをこれらのグループから削除することが挙げられます。これは Group Policy または Intune を使用して行えます。
手法 3:有効なアカウントの使用
攻撃者は、クレデンシャル スタッフィング(credential stuffing)、アカウントの操作(account manipulation)、またはソーシャル エンジニアリングなどの認証情報(credential access)の手法を使って、正当なユーザーの認証情報を侵害することができます。さらに、VPN やリモート デスクトップ接続を利用して、リモート システムやサービスにアクセスすることもあり得ます。主な懸念の 1 つは、ネットワーク全体で認証情報と権限が重複していることです。攻撃者は、アカウントやシステムを切り替えて、Domain Admin や Enterprise Admin のようなより高いレベルのアクセス権に到達できる可能性があるためです。
この脅威を軽減する方法
この脅威を軽減するための最も効果的な方法の1つは、すべてのアカウントに対して強力なpassword policyを強制し、パスワードの長さと複雑性の要件を含めることです。さらに、すべての管理者アカウントのパスワードを定期的に変更し、各システムのローカル管理者アカウントには固有のパスワードを使用してください。これにより、1つのローカル管理者アカウントが侵害されたとしても、攻撃者がネットワーク内で思いのままに横方向へ移動できないようにします。
進行中の脅威を示している可能性のある、不審なユーザー行動についてIT環境を監視することも重要です。早期検知が不可欠です。
権限昇格(Privilege Escalation)への対策方法
ハッカーや権限の昇格を目的とする悪意のある内部者に対して環境を完全に安全にする方法はありませんが、エンドポイントのオペレーティングシステムとソフトウェアの攻撃面を強化し、principle of least privilegeをすべてのリソースに適用することで、権限昇格のリスクを低減できます。さらに、試みている活動に関連するリスクに基づき、必要に応じて多要素認証を要求して、より適切なセキュリティを提供することが重要です。定期的にリスク評価を実施し、機密ファイルに対するリスクを検出・評価したうえで、その価値に応じてデータを保護するための対策を講じてください。
多くの企業は、何らかの privileged access management (PAM) solution を使用しています。 Netwrix Privileged Access Management Solution は、すべてのシステムおよびアプリケーションにまたがる特権の可視性を提供します。新しい特権アカウントが作成または変更されたときに通知し、そもそも存在を知らない可能性のある特権アカウントも検出します。つまり、このソリューションによって IT 環境全体における特権の管理をあなたが主導できるようになります。
PAM ソリューションに加えて、セキュリティのベストプラクティスを遵守することで、特権の昇格や横方向への移動(lateral movement)を阻止し、データ損失、業務の中断、コンプライアンス違反によるペナルティを回避できます。
共有する
もっと詳しく
著者について
Dirk Schrader
セキュリティ リサーチの VP
Dirk Schrader は Netwrix の Resident CISO (EMEA) であり、セキュリティ リサーチの VP です。CISSP (ISC²) および CISM (ISACA) の資格を持つ、IT セキュリティ分野で 25 年のベテランとして、サイバー脅威に取り組むための現代的なアプローチであるサイバー レジリエンスの推進に取り組んでいます。Dirk はキャリアの初期に技術およびサポートの役割からスタートし、その後、大規模な多国籍企業から小さなスタートアップまでで、営業、マーケティング、プロダクト マネジメントのポジションへと移行しながら、世界中のサイバーセキュリティ プロジェクトに携わってきました。彼はサイバー レジリエンスを実現するために、変更管理と脆弱性管理に取り組む必要性について、多数の記事を発表しています。