🛡️

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