シートベルトなしの運転のように、セキュリティのないOSは危険だ

By PLURA

🚦 LinuxのSELinuxWindowsのPowerShell Constrained Language Mode(CLM) は、OSセキュリティにおけるシートベルトのような存在です。
しかし現在は、単純な設定変更だけで無効にすることができます。これは「シートベルトを外しても車が出発してしまう状況」と同じです。

もしシートベルトを着用しないと車が出発すらできないなら、交通事故による被害は大幅に減るでしょう。
OSセキュリティも同様に、SELinuxやCLMが無効にできない構造であるべきです。

Security Seatbelt


1. なぜ無効化できる設計になっているのか?

  • 互換性とレガシー対応
    古いアプリケーションとの衝突のため、セキュリティ機能は基本的に強制されませんでした。

  • 運用の利便性
    障害発生時に管理者が最も簡単に選択できる方法が「とりあえず無効化する」ことだったからです。

  • サポート負担の回避
    ベンダーやSI企業は「SELinuxをオフにして使ってください」というガイドでサポートコストを抑える道を選びました。

  • 誤ったオンライン案内
    🚨多くのブログやインストールガイドが、ソフトウェアをインストールする前にSELinuxをデフォルトで無効化(off)するよう案内しています。
    さらに深刻なのは、エラー発生時の事例説明でも**「SELinuxを無効にする」**という解決策を提示している場合が多いことです。
    しかしこれは、セキュリティ機能がどのような問題を解決するのか、なぜ存在するのかを理解しないまま、セキュリティを無力化する習慣をユーザーに学習させているのです。

👉 このような環境では、管理者はもちろん、開発者やユーザーまでもがセキュリティ機能を「邪魔な存在」としか認識できなくなり、結果的に攻撃者にとって侵入の機会がより容易に開かれてしまいます。


2. シートベルトの比喩:警告音だけでは不十分

  • 現在のSELinuxやCLMは、単に警告を発するレベルに過ぎません。
  • しかしセキュリティは、自動車のエンジン始動ロック装置のように、ユーザーが強制的に無効化できないように設計されるべきです。

✅ 「セキュリティシートベルト」は警告ではなく、遮断こそが本質です。


3. オペレーティングシステムが提供すべき強制構造

🛡️ デフォルトで常に有効な状態で配布

  • すべてのLinuxディストリビューションは、SELinux Enforcingモードが無効にできない状態で提供されるべきです。
  • すべてのWindowsは、PowerShell CLMがデフォルトモードであり、ユーザーが任意でFullLanguageに変更できないようにする必要があります。
  • つまり、「セキュリティシートベルト」はスタート地点から着用された状態であり、一般ユーザーや管理者の利便性で外せない構造でなければなりません。

📦 例外は別のディストリビューションとしてのみ提供

  • 互換性や特殊な目的でセキュリティ機能を無効にする必要がある場合、それは**別のディストリビューション(Non-Secure Edition)**として提供されるべきです。

  • このディストリビューションには明確な危険警告が含まれ、

    • “SELinux Off Edition — 運用セキュリティに脆弱性あり”
    • “PowerShell Full Edition — CLM保護が適用されていません” のようなラベルが付けられる必要があります。
  • このバージョンを選択することは、シートベルトなしの車を購入するような責任を負う行為であるべきです。

📢 可視性と警告の強化

  • セキュリティ機能が無効なディストリビューションを使用する場合、起動時点からダッシュボードに至るまで継続的な警告が表示されるべきです。
  • これは単なるオプション変更ではなく、セキュリティレベルが著しく低下した状態であることをすべての管理者が明確に認識できなければなりません。

また、ターミナルでも警告が繰り返し表示される必要があります。

  • ユーザーがコマンドを実行するたびに、システムは次のように案内します:
⚠️ 現在のオペレーティングシステムでは、SELinux(またはCLM)がOFFになっています。
このバージョンは学習・テスト用途に限って使用してください。
実際の運用環境では、必ずセキュリティ機能が有効なディストリビューションを使用してください。
  • こうすることで、管理者が単に getenforcepowershell の状態を確認しなくても、常にリスク状態を認識できるようになります。
  • 最終的には、ユーザーがセキュリティ機能を無効にして「大丈夫だ」と思えないようにし、 学習用と運用用の環境を徹底的に区別できるように強制します。

4. 何を防げるのか?

  • Linux:SELinux Enforcing がデフォルト配布版に適用されていれば、Webサーバーで RCE が発生しても /etc/shadow や SSHキーといった重要なリソースへのアクセスを根本的に遮断できます。
  • Windows:PowerShell CLM がデフォルト配布版であれば、Living off the Land(LOTL)攻撃を抑制し、署名されていないスクリプトの実行を防ぎます。
  • 共通点:ユーザーが任意で機能を無効にできないため、管理者のミスや攻撃者の権限昇格があっても、「セキュリティの基本線」は決して崩れません。

✅ MITRE ATT&CK の 権限昇格(T1548)スクリプト実行(T1059)署名済みバイナリの悪用(T1216) といった戦術は、「セキュリティシートベルトのデフォルト配布」だけでもかなり防ぐことができます。


5. 提案:セキュリティシートベルトの義務化

  1. OSは強制モードのデフォルト配布版のみを提供すべきです。

    • SELinux Enforcing / PowerShell CLM 強制モードが無効にできない状態で出荷
    • ユーザーが特別な操作なしでセキュリティが維持される 安全なデフォルト(Default Secure) の確立
  2. Offモードは別配布版としてのみ提供すべきです。

    • “SELinux Off Edition”、“PowerShell Full Edition” のような 明確な警告ラベル を添付
    • 学習・テスト用途に限り許容され、運用環境では使用できないよう 継続的な警告と制限 を含む
  3. 警告システムの強化

    • Off配布版を選択した場合、起動・ダッシュボード・ターミナル出力 のすべてで「学習用のみ」のメッセージを繰り返し表示
    • 単なる警告音ではなく、シートベルト未装着時に警告灯とアラームが止まらない構造で設計

6. PLURA-XDRが提案する方向性

PLURA-XDR はセキュリティ機能を単に「オン・オフ」の問題とするのではなく、
OS自体がセキュリティシートベルトを強制的に装着した状態で配布されるべきという視点を支持します。

  • 強制化:デフォルト配布版はセキュリティモードでのみ動作し、Offはラベル付きの別配布版としてのみ提供
  • 可視化:Off配布版を選択した場合、ターミナル・ダッシュボード・ログのすべての領域で継続的に警告表示
  • 責任の明確化:Offバージョンは学習・実験用であることを明示し、運用環境での使用によるリスクの責任はユーザーに帰属

✅ これは単なるポリシー提案ではなく、企業運用環境における新たなセキュリティ標準です。
OSが「セキュリティは選択ではなく基本」であるという哲学を実現することで、企業はより安全で持続的な成長を確保できます。


✍️ 結論

  • SELinuxとPowerShell CLMはオプションではなく、企業運用における必須の安全ベルトです。
  • シートベルトを装着しないと車が出発できないように、OSのセキュリティも強制的に装着されるべきです。
  • もはや「利便性のためにオフにする」という選択肢は存在してはなりません。

👉 今こそ、OSが セキュリティシートベルトを強制する時代 に進むべきです。
それこそが、サイバー脅威の時代における本当のデフォルトセキュリティ(Default Security)なのです。


📖 関連記事