🛡️
Linux /proc ファイルシステム セキュリティ強化ポリシー
1.0 ポリシー概要と適用範囲
/proc ファイルシステムは、Linuxカーネルへのインターフェースとして不可欠な役割を果たし、システム診断・パフォーマンス監視・ランタイム設定に大きく貢献しています。しかし、その高い透過性は、プロセスやカーネルの内部情報をローカルユーザーに公開することとなり、セキュリティリスクを招きます。本ポリシーは、組織管理下のLinuxシステムにおいて /proc を強化するための必須基準を定め、これらのリスクを軽減します。
1.1 目的
- 実行中プロセスやカーネル状態に関する機密情報の漏洩リスクを低減する
-
/proc情報を利用した特権昇格やエクスプロイト開発を阻止する - 組織全体で一貫性のあるセキュリティ姿勢を確立する
2.0 リスク分析: /proc における情報漏洩経路
デフォルトでは /proc は、任意のローカルユーザーにプロセス情報やカーネル内部情報を公開します。攻撃者はこれを悪用し、特権昇格やセキュリティ防御の回避に利用できます。
2.1 脅威ベクトル: プロセス情報の漏洩
以下のファイルは、非特権ユーザーに対しても機密情報を晒します。
| 情報源 | 攻撃者が得る知見 |
|---|---|
/proc/[pid]/cmdline |
コマンドライン引数(資格情報やAPIキーなど) |
/proc/[pid]/environ |
環境変数(トークン、サービスアカウント情報など) |
/proc/[pid]/exe |
実行バイナリのパス(バージョン特定 → 既知脆弱性調査) |
/proc/[pid]/fd/ |
ファイルディスクリプタ(IPCやネットワーク接続の可視化) |
2.2 脅威ベクトル: カーネル情報の漏洩
-
/proc/kallsyms: KASLRを無効化し得るカーネルシンボル情報 -
/proc/modules: ロード済みモジュール一覧 → 攻撃対象の特定 -
/proc/config.gz: カーネルビルド時の設定内容 → 有効/無効なセキュリティ機能の把握
2.3 脅威ベクトル: システムプロファイリングとトレース
/proc/[pid]/stack や /proc/[pid]/wchan はカーネル内の処理状況を漏洩し、攻撃者にプロセス挙動やセキュリティソフトの動作パターンを把握させる可能性があります。
3.0 セキュリティコントロール例
3.1 マウントオプションによるアクセス制御
hidepid オプションを用いて /proc を制御します。
proc /proc proc defaults,hidepid=2,gid=proc 0 0
-
hidepid=2: 他ユーザーのプロセスを完全に非表示 -
gid=proc: 特定グループにのみ可視性を許可
3.2 sysctl によるカーネルパラメータ強化
以下のパラメータを設定すること。
| パラメータ | 値 | 理由 |
|---|---|---|
kernel.kptr_restrict |
1 |
/proc/kallsyms によるKASLR回避を防ぐ |
kernel.yama.ptrace_scope |
1 |
任意プロセスへのptraceアタッチを制限 |
4.0 実装と検証ガイド
4.1 永続的な設定適用
/etc/sysctl.d/10-proc-hardening.conf を作成し、必要なパラメータを定義。
設定を即時反映するには以下を実行:
sysctl --system
Discussion