セキュアOS

システム構成とアプリケーション設定に基づく
セキュリティ・ポリシ自動生成フレームワーク
sod(B4)
親:trueさん
サブ親:yasuさん
背景
‫ ﻪ‬セキュリティの確保が重要な課題に
‫ ﻩ‬インターネットの重要インフラ化
‫ ﻪ‬ホストレベルの対策が重要
‫ ﻩ‬全てのホストがセキュアになれば
多くのセキュリティの問題が解決される
→セキュアOS
セキュアOSの特徴
‫ ﻪ‬脆弱性を狙った攻撃への有効な対策
‫ ﻩ‬ワーム、クラッキングなど様々な攻撃の手段
‫ ﻩ‬未知の脆弱性に対する攻撃にも有効
‫ ﻪ‬特権ユーザへの権限集中の問題を解決
‫ ﻩ‬従来のUnixでは特権ユーザは何でも出来る
‫ ﻩ‬特権ユーザの権限が奪取された場合
セキュアOSの二大機能
‫ ﻪ‬強制アクセス制御
‫ ﻪ‬最小特権
/var/www/
××
×
read
write
attacker
apache
httpd-error.log
Secure write
OS
read/append
MAC
× excute
>_
/bin/sh
セキュアOS導入・運用上の問題点
‫ ﻪ‬アクセス制御ルールの設定
‫ ﻩ‬強制アクセス制御を行うために必要
‫ ﻩ‬粒度が高くなればなるほど設定は複雑に
‫ ﻪ‬設定には知識・経験が必要
‫ ﻩ‬プログラムの動作とシステムの挙動への理解
‫ ﻪ‬本研究では『セキュリティ・ポリシ』と呼ぶ
‫ ﻪ‬セキュアOSとアプリケーションに精通した者
にしか現実的に設定不可能
情報共有モデル
‫ ﻪ‬精通した者が設定したセキュリティ・ポリシを流通
精通した者
精通していない者
精通した者
精通していない者
セキュリティ・ポリシの再利用性
‫ ﻪ‬プログラムの動作はある程度限定可能
‫ ﻩ‬リソースの正当な利用方法を記述
‫ ﻪ‬apache
‫ ﻩ‬/etcへの書込アクセスは不必要
‫ ﻩ‬apacheのプロセスがDocumentRootを読み込む
‫ ﻪ‬shell
‫ ﻩ‬権限が非常に広範囲に渡るが限定可能
再利用上の問題
‫ ﻪ‬必要なアクセス制御の差異
‫ ﻩ‬パターン化が可能
‫ ﻯ‬するする/きつきつ、ある機能が必要/不必要
‫ ﻯ‬ex) apacheはttyを開けるか/開けないか
‫ ﻪ‬環境に関する具体的な値の差異
‫ ﻩ‬ファイルパスやポート番号
‫ ﻩ‬組合せは無数に存在
‫ ﻯ‬ex) apacheの実行バイナリのパス
提案する手法
‫ ﻪ‬自動的にホスト環境に合わせて調整
‫ ﻪ‬必要なアクセス制御の差異
‫ ﻩ‬パターンの選択
‫ ﻪ‬環境に関する具体的な値の差異
‫ ﻩ‬調整段階でホストにおける具体的な値を代入
アプリケーションの設定ファイル
DocumentRoot
/var/www/html
Port
80
httpd.conf
判断材料
‫ ﻪ‬システム構成
‫ ﻩ‬ファイルの有無
‫ ﻪ‬アプリケーションの設定ファイル
‫ ﻪ‬アプリケーションの固定的な値
‫ ﻩ‬ソースコードにハードコーディングされた値
‫ ﻪ‬ユーザの入力した値
‫ ﻩ‬設定ファイルのパスが不明などの場合
フレームワーク
参照
精通した者が
用意する部分
設定
システム構成
セキュリティ
ポリシのベース
調整スクリプト
bool変数 変更
@***@
セキュリティ
ポリシ
実装概要
‫ ﻪ‬Apache用の自動生成を実装
‫ ﻪ‬推測/ユーザからの入力が必要なもの
‫ ﻩ‬実行バイナリ/設定ファイルのパス
‫ ﻪ‬現実的に自動生成不可能なもの
‫ ﻩ‬DocumentRoot外のファイルのアクセス権限
‫ ﻩ‬cgi関連のファイルのアクセス権限
デモ
評価
‫ ﻪ‬アクセス制御設定の正当性
‫ ﻩ‬ユーザが意図した設定に基づく制御を行うか
‫ ﻪ‬アクセス制御設定のセキュリティ強度
‫ ﻩ‬無駄なアクセス権限を付与の有無
‫ ﻪ‬アクセス制御設定の生成工数
‫ ﻩ‬削減出来た設定コストの評価
評価:正当性
‫ ﻪ‬同じ団体によって作られた設定とアクセス定義設定と比較
比較項目
設定
自動生成
デフォルト
Apacheの正常起動の可否
○
○
○
DocumentRoot以下に置かれたhtml等の表示可否
○
○
○
ScriptAlias以下に置かれたcgiの利用可否
○
○
○
cgiからScriptAlias以下ファイルへの読込可否
-
○
○
cgiからScriptAlias以下ファイルへの書込可否
-
×
×
cgiからDocumentRoot以下ファイルへのアクセス可否
-
×
×
Alias以下に置かれたファイルの表示可否
○
○
○
各種ログの出力可否
○
○
○
ユーザディレクトリ以下のhtml等の表示可否
×
×
○
ユーザディレクトリ以下のcgi等の利用可否
×
×
×
cgiのネットワークアクセス利用の可否
-
×
×
評価:生成工数
‫ ﻪ‬最終的に同じアクセス定義設定を設定
‫ ﻩ‬Apacheの構成はapache.org標準
‫ ﻪ‬手動作成/変更は1行15秒として計算
‫ ﻪ‬自動生成は150回試行
手法
自動生成
行数
0
秒数
標準偏差
157.463
7.269
手動変更
73
1095
一から設定
376
5640
まとめ
‫ ﻪ‬アクセス制御設定をホストに合わせて自動
調整
‫ ﻩ‬アプリケーションの設定を判断材料に
‫ ﻩ‬アクセス制御設定の自動生成を実現
‫ ﻪ‬今回の実装ではSELinuxを用いたが
‫ ﻩ‬LIDSでも
‫ ﻯ‬/sbin/lidsconf @APACHE_BIN@ …
‫ ﻪ‬セキュアOSの運用・導入コストを削減
今後の課題
‫ ﻪ‬フレームワークの構築
‫ ﻩ‬調整を行うスクリプトの記述コストの削減
‫ ﻩ‬他アプリケーションへの適用
‫ ﻪ‬定義後のラベル付与の簡易化
any questions?
‫ ﻪ‬ご清聴ありがとうございました