0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【セキュリティ】Privilege Escalation(権限昇格)とは

Posted at

概要

Privilege Escalation(権限昇格) は、攻撃者(あるいはテスター)が元々持っている低い権限(普通ユーザー)から、より高い権限(管理者/ルートなど)を不正に取得する行為を指す。これは単なる「アカウント乗っ取り」ではなく、システムやアプリの設計欠陥・設定ミス・既知の脆弱性を突いて権限を引き上げるプロセスを含む。

初期アクセスで管理者権限を得られることは稀なので、実際の侵入検査や攻撃シナリオでは極めて重要な技術領域である。


権限昇格が重要な理由

  • 管理者権限を得るとシステム全体を掌握できる(パスワードリセット、アクセス制御のバイパス、設定変更、永続化など)。
  • データ盗難・サービス停止・横展開(他ホストへの侵入)に直結する。
  • 初期権限のままでは検知・対処が容易でも、昇格後は隠蔽や対抗が格段に難しくなる。

主なタイプ(分類)

  1. 垂直権限昇格(Vertical Privilege Escalation)
    → 低権限ユーザー → 管理者(例:一般ユーザーから root)
  2. 水平権限昇格(Horizontal Privilege Escalation)
    → 同レベルの別ユーザーへ不正アクセス(例:ユーザーA がユーザーB のデータへアクセス)
  3. ローカル vs リモート
    • ローカル(Local):すでにシステムにアクセスできる場合の昇格(SUIDバイナリ、弱いファイル権限等)
    • リモート(Remote):リモートサービスの脆弱性で高権限を奪う場合
  4. カーネル/ドライバ脆弱性
    → カーネルの脆弱性(CVE)を利用して root 権限を直接取得

よく使われる攻撃ベクトル(実務的)

  • 誤ったファイル/ディレクトリ権限(world-writable な設定)
  • SUID/SGID ビットが付いたバイナリ(不適切実装の SUID バイナリは危険)
  • 脆弱な sudo 設定sudo で限定コマンド実行が許されているが、それを悪用できる場合)
  • ハードコードされた/弱い資格情報(設定ファイルやスクリプトに平文パスワード)
  • 古い/未パッチのカーネルやサービス(既知のローカルエクスプロイト)
  • Cron, systemd タイマー, 起動スクリプトの誤設定(任意コマンド実行に繋がる)
  • ライブラリやPATHの汚染(DLL/LD_PRELOAD, PATH hijack)
  • 未保護の備品(バックアップ/スナップショット)に含まれる資格情報

攻撃の典型的流れ(ペネトレーション・テスト観点)

  1. 列挙(Enumeration)
    • sudo -lidgroupsenvps auxcrontab -lls -la /etc /tmpfind / -perm -4000 -type f 2>/dev/null などで手がかりを集める。
  2. 脚本的確認/PoC作成
    • 発見したミスコンフィグやソフトのバージョンで既知のエクスプロイトが存在するか確認。
  3. 昇格実行
    • SUID バイナリの誤用、sudo の回避、サービスの脆弱性利用、カーネルエクスプロイトなど。
  4. 永続化と隠蔽
    • 管理者権限取得後にバックドア設置、ログ改ざん、証跡隠滅などを行う(テスターは注意して行動する)。

実務でよく見る具体例

  • sudo の設定で NOPASSWD: /usr/bin/vim が許されている → vim から :!sh で root shell を取得可能。
  • SUID のバイナリが存在し、ファイル書き込みやコマンド注入が可能 → root 権限取得。
  • /etc/passwd ではなく /etc/shadow が誤って読み込み可能 → パスワードハッシュを取得してオフラインで解析。
  • 古いカーネルで公開済みのローカル権限昇格 exploit が使用可能。

検出・ログでの兆候(検知観点)

  • 異常な sudo 利用ログ(予期しないユーザーが高権限コマンドを実行)。
  • 不審なプロセスの親子関係(例:シェルが不自然なサービスから spawn)。
  • cron/systemd タイマーに最近追加されたジョブ。
  • auditd / syslog による異常イベント(不可解なファイル操作・権限変更)。
  • EDR/AV のアラート(プロセスの挙動異常、メモリ内実行など)。

防御(Mitigation)ベストプラクティス

  • 最小権限原則(Least Privilege) の徹底。
  • 定期的なパッチ適用(OS・カーネル・主要ソフトウェア)。
  • sudo ポリシーの厳格化(必要最小限のコマンドに限定し、NOPASSWD を避ける)。
  • SUID/SGID バイナリの管理(不要なら削除 or 所有者・権限を見直す)。
  • ファイル/ディレクトリ権限の定期監査(特に /tmp, /var, /home)。
  • Credential 管理(シークレットは Vault 等で管理、平文埋め込みを禁止)。
  • ハードニング(AppArmor/SELinux、CAP_DROP、systemd sandboxing)。
  • 監査とログ収集(Centralized Logging, auditd) と SIEM でのアラート設計。
  • 多要素認証(MFA) とパスワード強度ポリシー。
  • ポリシーと教育:開発者/運用に対する安全なコーディング・設定の教育。

実用コマンド(列挙・検査用) — 管理者が自サイトを監査する際の例

  • SUID ファイル一覧
    find / -perm -4000 -type f 2>/dev/null
  • world-writable ファイル/ディレクトリ
    find / -xdev -type d -perm -0002 2>/dev/null
  • sudo 設定確認(あるユーザーで)
    sudo -l
  • cron タスク確認(ユーザー毎)
    crontab -lls -la /etc/cron.*
  • 最近変更されたセット(24時間)
    find / -mtime -1 2>/dev/null

注意:上記コマンドは管理者が自分の環境で監査するためのもの。攻撃目的での使用は法的・倫理的に問題がある。


監査チェックリスト

  1. SUDO の最小化・NOPASSWD 禁止
  2. SUID/SGID の不要なものを削除 or 監査ログ化
  3. ファイル/ディレクトリ権限の自動監査(CI/定期ジョブ)
  4. 重要ファイル/設定ファイルの整合性監視(AIDE/Tripwire)
  5. ログ収集・アラート(auditd, SIEM)導入
  6. パッチ管理プロセスの確立
  7. シークレットは Vault へ移行、コード内平文排除

まとめ

Privilege Escalation は「初期アクセスを持続可能かつ危険度の高い状態に変える」重要なステップであり、防御側にとっては優先的に防ぐべき領域である。攻撃者は小さな設定ミスや過失を突いて大きな支配力を得るため、設計・設定・運用の各段階での堅牢化継続的な監査・検知が不可欠である。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?