セキュアOS紹介(3)〜 SELinux

SELinuxの歴史SELinux(Security-Enhanced Linux)は、米国国家安全保障局(NSA)を中心に開発されたオープンソースのセキュアOSです。

才所 秀明

2005年3月23日 20:00

SELinuxの歴史

SELinux(Security-Enhanced Linux)は、米国国家安全保障局(NSA)を中心に開発されたオープンソースのセキュアOSです。

2000年にはじめて公開され、当初はLinux Kernel 2.2用のカーネルパッチ方式でした。しかし、Linux Kernel 2.6でLSM(第2回を参照)が採用されたことにより、Linux Kernel 2.6用からLSM方式となり、標準添付されるようになりました。その後、カーネルパッチ方式であったLinux Kernel 2.4用のSELinuxは開発が停止し、現在はLinux Kernel 2.6用の開発のみが継続されています。

SELinuxの概要

それでは、SELinuxの概要を説明します。SELinuxの機能の基本的な考え方を理解していただき、その長所、短所をみてみましょう。

SELinuxの機能と特徴

SELinuxは、「プロセスに対するアクセス制御」と「ユーザに対するアクセス制御」を実現しています。前者はTE(Type Enforcement)とドメイン遷移と呼ばれるもので実現され、後者はRBAC(Role Based Access Control)と呼ばれるもので実現されています。また、監査ログ機能を備え、システムコールレベルでのログ取得が可能になっています。

アクセス制御設定の基本的な考え方

SELinuxでは、プロセスにドメインと呼ばれるラベルを、リソースにタイプと 呼ばれるラベルを付けます。WebサーバアプリケーションであるApacheを例にすると、図1のように、httpdプロセスに「httpd_t」という ドメインを、コンテンツを置く/var/www/ディレクトリ以下に「httpd_sys_content_t」というタイプを付けるようなものです。

アクセス制御設定の基本
図1:アクセス制御設定の基本

そして、ドメインとタイプの間にアクセスベクタと 呼ばれるパーミッションを設定します。図1では、読み込みのための「read」というアクセスベクタを設定しています。このような設定を行うことで、やっ とhttpdプロセスがコンテンツにreadのアクセスができるようになります。仮に、書き込みも必要であれば、「write」というアクセスベクタを追 加して設定する必要があります。

詳細なアクセス制御

SELinuxでは、ファイルやディレクトリだけでなく、通信ソケットやメモリなど、約30種類のリソースに対してアクセス制御が可能です。当然リソースの種類によって、設定するアクセスベクタの種類や数が異なります。

ファイルやディレクトリに対しては、readやwriteだけでなく、追記のためのappendや名前変更のためのrenameなど、約20種類のアクセスベクタが存在します。TCP通信ソケットの場合は、bindなど約30種類のアクセスベクタが存在します。

このため、リソースごとに詳細なアクセス制御が可能となっています。

SELinux設定の特徴

SELinuxは、設定されてないアクセスはすべて拒否する仕様で、一つひとつ許可設定を与えていくことでアクセス制御設定を行います。このため、アクセス制御設定をしていないアプリケーションは、動作しない、もしくは、動作しても何もできない状態となり、安全サイドに倒れるようになっています。

SELinuxの長所と短所

SELinuxの長所は、権限分割の粒度が細かく、一つひとつ許可設定を与えるため、非常にセキュアなシステム構築が可能な点です。

しかし、あるアプリケーションを動作させるためには、多種多様なリソースに対し、多数の許可設定を行う必要があります。設定にはマクロなどが用意さ れていますが、ライブラリファイルへのアクセスなど、通常はあまり考慮しない動作についても設定を行う必要があり、設定は非常に大変です。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30