1.2. 例

以下の例は、SELinux がどのようにセキュリティーを向上するかを説明します。
  • デフォルトのアクションは「拒否」です。アクセスを許可する SELinux のポリシールール (ファイルを開くプロセスなど) が存在しない場合は、アクセスが拒否されます。
  • SELinux は Linux ユーザーを制限できます。SELinux ポリシーには、制限のある SELinux ユーザーが多く存在します。Linux ユーザーを制限のある SELinux ユーザーにマッピングして、これらのユーザーに適用されているセキュリティールールとメカニズムを活用することができます。たとえば、ある Linux ユーザーを SELinux user_u ユーザーにマッピングすると、この Linux ユーザーは sudosu といったセットユーザー ID (setuid) アプリケーションを (実行可能と設定されている場合以外は) 実行できず、ホームディレクトリーにあるファイルやアプリケーションも実行できません。この設定では、ユーザーが悪意のあるファイルを自身のホームディレクトリーから実行することを防ぎます。詳細は「制限のあるユーザーおよび制限のないユーザー」を参照してください。
  • プロセスとデータの分離が向上します。プロセスは自身のドメインで実行するため、その他のプロセスが使用するファイルにアクセスしたり、他のプロセスからアクセスされることはありません。たとえば、SELinux を実行している場合に、(許可が設定されていない限り) 攻撃者は Samba サーバーを危険にさらすことはできず、その Samba サーバーを攻撃ベクトルとして使用して、その他のプロセス (MariaDB など) が使用するファイルの読み書きを行うことはできません。
  • SELinux は、設定ミスによる破損の軽減に役立ちます。ドメインネームシステム (DNS) サーバーは、ゾーン転送と呼ばれる DNS サーバー間での情報複製を頻繁に行います。攻撃者は、ゾーン転送を使用して、DNS サーバーを偽の情報で更新できます。Red Hat Enterprise Linux で BIND (Berkeley Internet Name Domain) を DNS サーバーとして稼働している場合は、ゾーン転送を実行できるサーバーの制限を管理者が忘れても、デフォルトの SELinux ポリシーは、ゾーンファイル[1]が BIND named デーモン自体や他のプロセスによってゾーン転送で更新されることを防ぎます。
  • SELinux についてのバックグラウンド情報と SELinux が防いだ多種のエクスプロイトについての情報は、NetworkWorld.com の記事、「A seatbelt for server software: SELinux blocks real-world exploits」[2]を参照してください。


[1] IP アドレスマッピングへのホスト名などの情報を含むテキストファイルで、DNS サーバーが使用するもの
[2] Don Marti 著「A seatbelt for server software: SELinux blocks real-world exploits」2008 年 2 月 24 日公開、2009 年 8 月 27 日アクセス (http://www.networkworld.com/article/2283723/lan-wan/a-seatbelt-for-server-software--selinux-blocks-real-world-exploits.html)

このページには機械翻訳が使用されている場合があります (詳細はこちら)。