Trusted OS

SELinux Config Checker
sod(B3)
親:true
被害の拡大防止という考え方
 セキュリティに万全はない
 危険性を下げる目的
 被害を受けた場合も考えなければならない
 例えば、0-day攻撃などの未知の攻撃
 証拠の保全
 侵入経路の解析
Trusted OSである理由
 脆弱性があった場合、被害を最小限に
 特定のプロセスに与える権限を限定
 apacheの権限ではweb部分のReadに限定
 証拠の保全
 各種ログの改竄防止
 踏み台、なりすまし
Trusted OSの概要
 次の二つの機能を保有
 MAC(強制アクセス制御)
 最小特権
 SELinux
 TE(Type Enforcement)とRBAC(RoleBased Access Control)というMAC
 既存のLinuxの環境をほぼそのまま利用可能
 Kernel2.6よりカーネル自体にマージ
 他にも、Trusted BSD、 PitBull、etc…
SELinuxの設定例
 users
user system_u roles system_r;
user user_u roles user_r;
user root roles { user_r staff_r sysadm_r };
user sod roles { user_r };
 httpd.fc(抜粋)
/usr/sbin/httpd
/var/www/html(/.*)?
 httpd.te(抜粋)
system_u:object_r:httpd_t
system_u:object_r:httpd_sys_contents_t
type http_d;
type httpd_sys_contents_t;
allow httpd httpd_sys_contents_t:dir {read};
アクセスコントロール例
Traditional OS
Trusted OS
/var/log/wtmp
/var/log/wtmp
Append Only
SELinuxの実際
 ポリシー設定が複雑
 多くのサンプルポリシーで修正が必要
 設定には知識と努力が必要
 設定ミスの危険性
 不適切なポリシー設定では効果が薄い
 ポリシー設定の脆弱性を検査する手段の必要性
SELinux Config Checker
検査手順案
1. 動作しているデーモンなどを探査
 一般に、設定は各デーモン毎に必要
2. 保持しているデータベースから、
該当する検査用ルールセットを選択
 データベースは随時更新出来るように
3. ポリシーの脆弱性の検査
 警告という意味で比較的厳しく
SELinux Config Checker
ポリシー設定の脆弱性を検査
 不必要な権限の有無
 例えば、httpd(httpd_t)が
ログを書き換える必要性はない
 不必要なドメインへの遷移の有無
 httpd_t → sysadm_t 不必要
 well-knownな攻撃に対する対策の有無
 SANS top20, etc…
SELinux Config Checker 図
/var/log/wtmp
進捗状況
 作業済み
 SELinuxの導入
 作業中
 SELinuxの設定と動作
 SELinux Config Checkerの仕様決定
 未作業
 SELinux Config Checkerの実装