Security-Enhanced Linux
Security-Enhanced Linux (SELinux) は、アメリカ国家安全保障局 (NSA) がGPL下で提供している、Linuxのカーネルに強制アクセス制御 (MAC) 機能を付加するモジュールの名称。名前から勘違いされることが多いが、Linuxディストリビューションの一つではない。
Fedora 8でのSELinux管理者GUI | |
作者 | アメリカ国家安全保障局、レッドハット |
---|---|
開発元 | レッドハット |
初版 | 2000年12月22日[1] |
最新版 |
3.0
/ 2019年12月4日[2] |
リポジトリ | |
プログラミング 言語 | C言語 |
対応OS | Linux |
種別 | セキュリティ、LSM |
ライセンス | GNU GPL |
公式サイト | SELinux Project Wiki |
概要
編集SELinuxは1992年、NSAが主体となってFlukeというOS上におけるMAC機能の研究のために開発された。MAC機能はセキュリティの高いOSの提供を可能にするが、主にMulti Level Securityと呼ばれる機能で提供されている。この機能では、アクセスする対象(サブジェクト)すべてに階層化された権限が与えられる一方、アクセスされる対象(オブジェクト)にもすべて階層化された情報の重要度に応じたラベルを付加する。このことによってアクセス制御を行うものだが、柔軟に実装するには複雑化してしまうという欠点があった。
SELinuxではこの問題点を解決するために、Flaskというベースアーキテクチャを開発し、Flask上でのセキュリティポリシー言語を記述することにより、あらゆるセキュリティモデルに対して柔軟に対応できるように設計された。また、セキュリティポリシー言語とセキュリティチェックの仕組みはそれぞれ独立しており、ポリシーがアーキテクチャに制約されないという特長がある。
2000年12月22日に一般公開され、2003年8月13日にはLinuxカーネル2.6において、新機能であるLinux Security Modules (LSM) の拡張モジュールとしてメインライン化された。
内容
編集従来の Linux(もっと広くいえばUNIX全体)では、ディレクトリやファイルといったリソースに対するアクセス制限は、それぞれの許可情報(パーミッション)に基づいている。
このパーミッションは「オーナー」・「グループ」・「その他のユーザ」に対して、それぞれ「読み込み」・「書き込み」・「実行」の許可を設定するものであり、これらのパーミッションを「無視して」アクセス可能なユーザとして root(スーパーユーザー) が君臨している。 すなわち、すべての権限が root に集中しているため、いちど root のパスワードが漏洩すると、システム全体に致命的な被害を及ぼすという欠点がある。
SELinux はこの事実に注目し、セキュリティの対象に応じてHTTP、FTPといったプロセスごとにアクセス制限をかける Type Enforcement (TE)と、rootも含む全てのユーザに関して制限をかけるロールベースアクセス(RBAC)などで制御し、rootに権限が集中することを防いでいる。
TE
編集TE では全てのプロセスに対して「ドメイン」と呼ばれるラベルを付加する。またリソースに対しても同じく「タイプ」と呼ばれるラベルを付与する。さらに各リソースには「アクセス・ベクタ」が割り当てられる。アクセス・ベクタとは「読み込み」、「書き込み」といったリソースに対して行える操作の種類のことである。 これにより各ドメインとタイプに対して許可されるアクセス・ベクタを、セキュリティーポリシーとして設定可能にしている。
RBAC
編集RBAC は「ロール」と呼ばれるいくつかのドメインを束ねたものを設定し、それをユーザに付与する仕組みである。ユーザは付与されたロール内のドメインの権限でのみファイルにアクセス可能である。この機能により各ユーザ毎に細かく権限を付与、制限することが可能である。このため例えば Web管理者には Web管理に必要なファイルのみにアクセス可能にする、という風にユーザに応じて権限の役割分担が行える。このことにより仮にあるユーザのパスワードが漏洩しても、被害を受けるのはそのユーザが持つ権限に対してのみであり、被害を最小限に押さえることができる。
日本における普及状況
編集セキュリティ面から興味を覚えるユーザは多いものの、日本における利用実績は少ない[3]。とりわけ、ほとんどのSI'erやサービスプロバイダにおいては、OSインストール直後にSELinuxを無効化することが常態化しており、積極的な対応はしていない。このため、IPv6と並んで、対応できる技術者の育成が課題となっている。
脚注
編集- ^ Loscocco, Pete (22 December 2000). "Security-enhanced Linux available at NSA site". linux-kernel (Mailing list). 2019年3月8日閲覧。
- ^ “SELinux userspace release 20191204 / 3.0”. GitHub. 2020年2月19日閲覧。
- ^ “OSSのセキュリティや開発ツール、実行基盤などの最前線の最新情報”. 2021年10月18日閲覧。