権限昇格とは?
特権昇格とは、システム、ネットワーク、またはアプリケーション内でより高いレベルの権限を取得するプロセスです。これは、ユーザーが特定の種類の情報にアクセスすることを防ぐセキュリティ対策を回避するために脆弱性を悪用することで達成されます。
権限昇格は必ずしも不正な行為とは限らず、場合によっては企業内の公式な業務遂行を支援するために利用されることもあります。許可された権限昇格の例としては、管理者がユーザーアカウントに一時的な昇格アクセス権を付与し、通常の役割範囲外にある特定のタスクを実行できるようにする場合が挙げられます。
権限昇格の重要性、それに伴う脆弱性、そして既知の最小権限の原則を用いて権限昇格を検知と防御する方法について学びましょう。
権限昇格とは?
学ぶ内容
-
権限昇格の仕組みについて――水平方向と垂直方向
-
権限昇格によって悪用され得る脆弱性
-
最小権限の原則による権限昇格の防止方法
攻撃者が権限昇格を選択する理由について
権限昇格は、システム内でより高いアクセス権限を獲得するための効果的な手法です。権限昇格がなければ、攻撃者はアクセス権限が制限され、攻撃を実行できる能力の範囲も限られた一般ユーザーと見なされる可能性が高いでしょう。攻撃を成功させるためには、攻撃者は自身の役割を昇格させ、システムに対するより大きな制御権を獲得する必要があると考えられます。
水平特権昇格と垂直特権昇格の比較
特権昇格は必ずしも直線的な経路とは限りません。攻撃者は機密データへの十分なアクセス権を取得し、攻撃を継続する前に、複数の役割を順に取得する必要がある場合があるためです。この非直線的な経路は、以下で説明する異なる種類の昇格を意味します。
水平特権昇格とは、攻撃者が同一(または類似)の役割を持つユーザー間を横方向に移動するケースを指します。つまり、昇格による「実質的な利益」は生じません。
では、純増がないのに水平的な昇格を行う理由は何でしょうか。これにはいくつかの利点があります:
- 攻撃者がシステムを探査し、利用可能なリソースを確認する手段として機能します(本質的に攻撃の選択肢を広げます)。
- 計画した攻撃を実行するために、適切な役割を持つユーザーを最終的に見つけるために横方向の移動が必要となる場合があります。
一方、垂直的な特権昇格とは、攻撃者が特権的な役割(root権限など)へのアクセス権を獲得することを指します。攻撃者がシステムへのrootアクセス権を獲得した場合、これは「pwned」状態と呼ばれ、システムが乗っ取られたことを意味する俗語です。この状態になると、データは侵害されたとみなされ、セキュリティ対策の対象を完全に制御できなくなる可能性があります。
権限昇格の仕組みについて
権限昇格は、コンピュータシステムに対する攻撃を仕掛け、アクセス権限を昇格させて悪意のある活動を実行するために用いられる数多くの手法の一つです。この攻撃手法は、ソフトウェアの脆弱性を悪用したり、権限を持つユーザーを騙したりするなど、いくつかの方法で実行されます。低権限のユーザーが昇格したアクセス権限を取得すると、機密データにアクセスしたり、攻撃を推進するためのソフトウェアをインストールしたりすることが可能となります。
権限昇格に使用される手法と技術
可視性を得るためには、御社には優れたロギングプラットフォームが必要となります。これにより、システムからのデータ収集やユーザー操作の記録が可能となります。ユーザー操作が可視化された後、通常のユーザー活動を理解し、脅威と見なされる可能性のある異常な振る舞いを検知するためのルールを作成することが可能となります。
しかしながら、ツールだけでは全てをカバーできません。そのため、ツールが使用するルールを定義し、ノイズと真の脅威を区別できる経験豊富なセキュリティチームが不可欠です。その他の手法としては、ネットワークトラフィックの分析、侵入検知システム(IDS)の活用、脆弱性スキャンの実施、アクセス制御ポリシーの継続的な見直しなどが挙げられます。
権限昇格につながり得る脆弱性
権限昇格の脆弱性とは?
権限昇格の脆弱性とは、攻撃者が悪用してシステムへの不正アクセスを得ることを可能にするセキュリティ上の欠陥です。これらの脆弱性は様々な形態で存在しますが、最も一般的なものはオペレーティングシステムまたはアプリケーション内に存在します。
オペレーティングシステムの脆弱性
古いオペレーティングシステムを実行していると、多くの問題が生じる可能性があります。なぜなら、エクスプロイトは新しいリリースノートで既知の問題または修正済みとして公表されるからです。この慣行により脆弱性が公に知られるため、システムが適時に更新されていない場合、攻撃者はこの情報を悪用してアクセスすることが可能となります。
アプリケーションの脆弱性
アプリケーションの脆弱性は少し異なります。この場合、攻撃者はまず御社が運用しているアプリケーションの種類を把握し、悪用可能な脆弱性が存在するかどうかを確認する必要があります。さらに、アプリケーションの脆弱性は欠陥を含む特定のアプリケーションのみに影響する可能性がありますが、OSの脆弱性はオペレーティングシステム全体(つまり、その上で動作するすべてのアプリケーションとデータ)に影響を及ぼす可能性があります。
設定ミス
ポリシーの設定ミスは、権限昇格攻撃で頻繁に悪用されます。これには、特定のロールに対して意図せず過剰なアクセス権を付与してしまうケースも含まれ、そのロールを持つユーザーが想定以上の操作を行える状態を招きます。
権限昇格の検知と防御
権限昇格を利用してシステムを悪用しようとするサイバー攻撃者を完全に排除することは不可能ですが、その活動を遅らせたり、被害範囲を限定したりすることは可能です。
権限昇格の試みの兆候を特定する
権限昇格攻撃を検知する最善の方法は、アクセスログの記録と監視です。ただし、多くのユーザーが正当な理由で権限を昇格させる可能性があるため、大規模な環境での実施は困難かもしれません。それでも、ユーザー活動を監視する優れたログシステムを導入し、脅威の兆候となり得る異常を特定するルールを作成することで、迅速な検知が可能となります。さらに、異常なネットワークトラフィックや、特定のアカウントへのアクセス試行が異常に多い場合も、警戒すべき兆候です。
最小権限の原則の実装
最小権限の原則とは、ユーザーが業務を遂行するために必要な最小限の権限のみを付与するというセキュリティ上のベストプラクティスです。これにより、万が一ユーザーが不正行為に及んだ場合でも、引き起こし得る損害を限定できるため、効果的です。
最小権限の原則を実装することは容易ではなく、継続的な努力が求められます。適切に実施するためには、私たちの環境でユーザーがどのような業務を行っているかを理解し、そのニーズに基づいてロールを設計し、特定のユーザーグループにロールを割り当てることが重要です。ロールを割り当てた後は、業務遂行のために追加アクセスが必要なユーザーも存在するため、一定のサポートやガバナンスを提供する必要があります。また、ポリシーの継続的な見直し、ユーザー権限の定期的なレビューと更新、管理者アクセスの制限も、この取り組みを成功させるために不可欠です。
権限昇格を防止するためのベストプラクティス
特権昇格の防止には、以下の方法が有効です:
- 攻撃の手口についてユーザーを教育すること(これにより攻撃の頻度を減らせます)。
- 特権アカウントへの容易なアクセスを防ぐため、強固なパスワードポリシーを義務付けること。
- 攻撃者が悪用できる脆弱性を制限するため、ソフトウェアを定期的に更新すること。
- ユーザーの特権を、業務遂行に必要な最低限のレベルに制限するアクセス制御プロセスを導入すること。
権限昇格の実例
IAMセキュリティ設定の不備は、たった一つの誤った判断が攻撃者に特権昇格を許し、システムに甚大な被害をもたらす好例です。IAMセキュリティ設定の不備を悪用するというブログ記事が指摘しているように、権限設定の細かい粒度は、ユーザーが業務を遂行するために必要な最小限の権限を正確に実装するのに役立ちます。しかし、単一の誤った権限設定が既存の権限と組み合わさると、ユーザーが意図しない操作を実行できる可能性があります。これが、わずかな設定ミスがアカウント全体にとって重大な問題となり得る理由です。
例えば、サイバーセキュリティ部門に所属していた従業員が、調査活動のために社内の全ユーザー活動に対して広範な権限を保持していたとします。その従業員がクラウドインフラストラクチャ関連の新たな職務に異動した際、サイバーセキュリティチームの一員として付与されていたユーザーロールを保持したままにした場合です。かつてその役割を持つ権限が与えられていたとはいえ、現在の職務を遂行する上で、その役割(およびそれに伴う権限)はもはや必要ありません。これは最小権限の原則に従わなかった典型的な事例です。
結論
権限昇格は、企業にとって重大な結果を招きかねない重大なセキュリティリスクです。これは悪意のある攻撃者が用いる手法であるだけでなく、悪意なくとも実行可能な行為でもあります。いずれにせよ、企業に大きな影響を与える可能性があります。このリスクを軽減するためには、システムの定期的な更新、ユーザー活動の監視、最小権限の原則の遵守、ユーザーロールの権限範囲の継続的な評価と必要最小限のアクセス権限への削減といったベストプラクティスを実践することが重要です。