SELinuxで組み込み機器のセキュリティを高める(前編) ―― SELinuxの概要

中村雄一

tag: 組み込み

技術解説 2008年9月 2日

● enforcingモードとpermissiveモード

 ポリシの設定を便利に行うために,SELinuxには二つのモードが用意されています.一つ目のモードがenforcingモードです.これはSELinuxのアクセス制御が有効になったモードで,通常の動作モードです.二つ目がpermissiveモードです.主にポリシの設定や問題の切り分けに使います.SELinuxによって拒否されるアクセスがあった場合でも,ログだけを残し,アクセスを通すモードです.permissiveモードでアプリケーションを動作させると,通常のLinuxと同じようにアプリケーションは動作します.しかしながら,どんなアクセスがSELinuxによって拒否されるかというログを取ることができます.この拒否されるアクセスを許可する設定を記述しておけば,enforcingモードでもアプリケーションは動作するはずです.

4 SELinuxの実装

 次回の記事では,SELinuxを実際に組み込み機器に移植します.移植項目が何を意味するのかを知るためには,SELinuxの実装をある程度知っておく必要があります.SELinuxの実装を一枚の絵で表すと,図8のようになります.SELinuxはLinuxカーネル内の四つの要素から成り立っています.つまり,(1)LSM,(2)SELinuxモジュール,(3)ファイル・システム内部のxattr,(4)auditサブシステムです.以下では,これら4要素の働きを見ていきます.

zu08_01.gif
図8 SELinuxの実装

● LSM

 SELinuxモジュールは,LSM(Linux Security Modules)という要素から呼び出されています.LSMとSELinuxの関係を図9に示します.動作は以下のとおりです.

zu09_01.gif
図9 SELinuxはLSMを使って実装されている

(1) プロセスが,ファイルなどのリソースにアクセスする際,カーネルに対してアクセス要求を出す.
(2) 通常のLinuxのパーミッション・チェックが行われる.
(3) LSMの関数に処理が移る.LSMとは,セキュリティ用途のために用意された関数ポインタ群のこと.カーネルのコード内の要所要所にLSMの関数ポインタが入っている.
(4) SELinuxを有効にしている場合は,LSMの関数ポインタが,SELinuxのセキュリティ・チェックを指している.
(5) SELinuxによるアクセス権限のチェックが行われる.
(6),(7) チェックが通った場合だけアクセスを通す.

 LSMでは,4)で説明した関数ポインタの指す先を変えることにより,SELinux以外のセキュリティ・モジュールを選択できるようになっています.これは,ユーザにSELinux以外の選択肢を残すためです.あるセキュリティ・モジュールがLinuxカーネル本体に取り込まれるためには,LSMに準拠しておく必要があります.SELinuxもLSMに準拠して実装されているおかげで,Linuxカーネル本体に取り込まれているのです.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日