Security-Enhanced Linux

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
Security-Enhanced Linux
SELinux logo.svg
SELinux admin.png
Fedora 8でのSELinux管理者GUI
作者 アメリカ国家安全保障局レッドハット
開発元 レッドハット
初版 2000年12月22日(18年前) (2000-12-22[1]
最新版 2.9 / 2019年3月15日(3か月前) (2019-03-15[2]
リポジトリ github.com/SELinuxProject/selinux
プログラミング言語 C言語
対応OS Linux
種別 セキュリティ、LSM
ライセンス GNU GPL
公式サイト SELinux Project Wiki
テンプレートを表示

Security-Enhanced Linux (SELinux) は、アメリカ国家安全保障局 (NSA) がGPL下で提供している、Linuxカーネル強制アクセス制御 (MAC) 機能を付加するモジュールの名称。名前から勘違いされることが多いが、Linuxディストリビューションの一つではない。

概要[編集]

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 はこの事実に注目し、セキュリティの対象に応じてHTTPFTPといったプロセスごとにアクセス制限をかける Type Enforcement (TE)と、rootも含む全てのユーザに関して制限をかけるロールベースアクセス(RBAC)などで制御し、rootに権限が集中することを防いでいる。

TE[編集]

TE では全てのプロセスに対して「ドメイン」と呼ばれるラベルを付加する。またリソースに対しても同じく「タイプ」と呼ばれるラベルを付与する。さらに各リソースには「アクセス・ベクタ」が割り当てられる。アクセス・ベクタとは「読み込み」、「書き込み」といったリソースに対して行える操作の種類のことである。 これにより各ドメインとタイプに対して許可されるアクセス・ベクタを、セキュリティーポリシーとして設定可能にしている。

RBAC[編集]

RBAC は「ロール」と呼ばれるいくつかのドメインを束ねたものを設定し、それをユーザに付与する仕組みである。ユーザは付与されたロール内のドメインの権限でのみファイルにアクセス可能である。この機能により各ユーザ毎に細かく権限を付与、制限することが可能である。このため例えば Web管理者には Web管理に必要なファイルのみにアクセス可能にする、という風にユーザに応じて権限の役割分担が行える。このことにより仮にあるユーザのパスワードが漏洩しても、被害を受けるのはそのユーザが持つ権限に対してのみであり、被害を最小限に押さえることができる。

脚注[編集]

[ヘルプ]
  1. ^ Loscocco, Pete (2000年12月22日). “Security-enhanced Linux available at NSA site”. linux-kernel mailing list.. https://marc.info/?l=linux-kernel&m=97749381725894 2019年3月8日閲覧。 
  2. ^ SELinux userspace release 20190315 / 2.9”. GitHub. 2019年3月17日閲覧。

関連項目[編集]

外部リンク[編集]