Upload
floria
View
36
Download
3
Embed Size (px)
DESCRIPTION
SecurePot: システムコールフックを利用した安全なソフトウェア実行系. 大山恵弘 (さきがけ研究21) 加藤和彦 (筑波大学 電子・情報工学系 さきがけ研究21). 背景. 悪意あるコードの氾濫 Code Red, Sircam, Anna Kournikova コードの安全な実行への要請 一つの有効な対策: sandbox システムの使用. Sandbox システム. アプリケーションを「封じ込めて」実行 アプリケーションの挙動を監視 許された操作のみを実行 例: Java 仮想機械を定義、実装 Janus, MAPbox, ASL - PowerPoint PPT Presentation
Citation preview
2001/09/19 日本ソフトウェア科学会第18回大会
1
SecurePot: システムコールフックを利用した安全なソフトウェア
実行系
大山恵弘(さきがけ研究21)加藤和彦(筑波大学 電子・情報工学系 さきがけ研究21)
2001/09/19 日本ソフトウェア科学会第18回大会
2
背景 悪意あるコードの氾濫
Code Red, Sircam, Anna Kournikova
コードの安全な実行への要請
一つの有効な対策 : sandbox システムの使用
2001/09/19 日本ソフトウェア科学会第18回大会
3
Sandbox システム アプリケーションを「封じ込めて」実行
アプリケーションの挙動を監視 許された操作のみを実行
例: Java
• 仮想機械を定義、実装 Janus, MAPbox, ASL
• 発行されるシステムコールを監視
2001/09/19 日本ソフトウェア科学会第18回大会
4
本研究の目的 システムコール監視型の sandbox シス
テムの使い勝手の向上 セキュリティポリシーの記述を簡単化
2001/09/19 日本ソフトウェア科学会第18回大会
5
発表のあらまし 既存システムの問題 SecurePot の設計 SecurePot の実装 関連研究 今後の課題
2001/09/19 日本ソフトウェア科学会第18回大会
6
システムコールフックを利用したsandbox システム
………
セキュリティポリシー
OS
sandbox
applicationシステムコール
実現方式• ユーザレベル• Kernel module• Kernel 改造
2001/09/19 日本ソフトウェア科学会第18回大会
7
既存システムの問題 ポリシー記述が面倒
試行錯誤しつつ繰り返しポリシーを書き換えることが必要
ポリシーの作成、閲覧、編集が直感的でない
2001/09/19 日本ソフトウェア科学会第18回大会
8
問題 1: 繰り返されるポリシーの 書き換え
ポリシー作成
実行
ポリシー違反強制終了
ポリシーを緩く書き換え
2001/09/19 日本ソフトウェア科学会第18回大会
9
問題 2: 直感的でない ポリシー記述
例: Janus のポリシーファイルの抜粋
basicputenv displaynet allow connect displaypath super-deny read,write,exec */.forwardpath allow read /dev/zero /dev/null
↑何をどうしたいのか???
2001/09/19 日本ソフトウェア科学会第18回大会
10
SecurePot の設計思想 ポリシーの記述を極力簡単に!
実行時の問い合わせ + その答をポリシーファイルに反映
ポリシー作成用の GUI の導入
2001/09/19 日本ソフトウェア科学会第18回大会
11
SecurePot の構成
OS
SecurePot
applicationconfigure
feedback
syscalls
X X
SecureFurnace
generate
…policy file…
2001/09/19 日本ソフトウェア科学会第18回大会
12
SecurePot の使用例
% securepot tar.plc tar xvf foo.tarx foo.txt, 4 bytes, 1 tape blocks……
ポリシーファイル コマンド列
SecurePot = ユーザ権限で走る一般のプログラム
2001/09/19 日本ソフトウェア科学会第18回大会
13
セキュリティポリシー 制御対象
システムコール 読み書きファイルパス 通信相手の IP アドレスとポート番号
制御の選択肢 deny: 不許可 ignore, allow-and-print: 許可 ask: 問い合わせ
2001/09/19 日本ソフトウェア科学会第18回大会
14
セキュリティポリシーの例•ファイル読み書きと通信の制限
…deny path allignore path r /dev/zeroignore path r /usr/lib/locale/ja/ja.so.1ignore path r /usr/lib/locale/ja/methods_ja.so.1ignore path r /usr/lib/locale/ja/LC_MESSAGES/…ignore path r /usr/lib/locale/ja/LC_TIME/…
deny sock all…
2001/09/19 日本ソフトウェア科学会第18回大会
15
2001/09/19 日本ソフトウェア科学会第18回大会
16
Incremental なポリシー作成の概要
実行前
実行中
実行後
•安全側に振ったポリシーを記述•怪しい操作の実行前に問い合わせるよう指示
•問い合わせ + 答の入力•問い合わせ後すぐポリシーを更新
•更新されたポリシーをダンプ•次回の実行ではダンプされたファイルを使用
2001/09/19 日本ソフトウェア科学会第18回大会
17
Firewall ソフトウェアに学ぶ 初期設定: 全部( or 大半)の通信を禁止 通信が試みられる→ その通信を許可するかどうか問い合わせ
2001/09/19 日本ソフトウェア科学会第18回大会
18
実行前 ポリシーを安全側に振る ask の使用
# システムコールask allignore open, read, close
# パスask path allignore path r /dev/zero, /dev/null
# 通信ask sock all
2001/09/19 日本ソフトウェア科学会第18回大会
19
実行中 問い合わせに答えるopen(“/etc/hosts”, O_RDONLY) called.Continue?1. Yes2. No3. Yes. And remove this hook…8. Yes. And ignore this hook when the arg is the samecommand? >
最初は多数の false alarm → 徐々に減少
2001/09/19 日本ソフトウェア科学会第18回大会
20
実行後 問い合わせの答を反映したポリシーを
ファイルにダンプ
…Policy updated.Update echo.plc?(y/n) > yUpdated.%
2001/09/19 日本ソフトウェア科学会第18回大会
21
更新されたポリシーファイル
…# パスask path allignore path r /dev/zero, /dev/nullignore path r /etc/hosts…
•次回の実行で使用可•広く配布することも可
2001/09/19 日本ソフトウェア科学会第18回大会
22
2001/09/19 日本ソフトウェア科学会第18回大会
23
SecureFurnace: ポリシーファイル作成、閲覧、編集のためのGUI
メニュー、テキストボックス、チェックボックスの操作を通じてポリシー作成 例 : 「ファイル削除不可」ボックスをチェック
という行を生成
cf. visual programming 現状 : どういうGUIがよいかプロトタイプ上
で 模作中
deny unlink
2001/09/19 日本ソフトウェア科学会第18回大会
24
SecureFurnace プロトタイプ CGI+form
2001/09/19 日本ソフトウェア科学会第18回大会
25
2001/09/19 日本ソフトウェア科学会第18回大会
26
SecurePot の実装方式 プロセスを生成
子プロセス : アプリケーションを実行親プロセス : 子プロセスを監視
Solaris の / proc filesystem を利用 / proc以下の子プロセス用ファイルを読み書
き⇔ 子プロセスの状態取得、実行制御
2001/09/19 日本ソフトウェア科学会第18回大会
27
現在の実行時オーバヘッド 1MB のファイル一個のコピー
4% gcc-3.0.tar の展開
41%
類似システム : いずれも数%程度
2001/09/19 日本ソフトウェア科学会第18回大会
28
他の機能 :ライブラリ関数の実行制御
例 : fprintf の実行を許可 /禁止
より粗粒度の制御が可能に
関数が「信頼できる」場合に有効
実装 : ブレークポイントの挿入
2001/09/19 日本ソフトウェア科学会第18回大会
29
関連研究(1) Sandbox システム
Janus [Goldberg et al. ’96], MAPbox [Acharya et al. ’00], ASL [Sekar et al. ’99], SubDomain [Cowan et al. ’00]
ポリシーを incremental に作る機構なし
FMAC tools [Prevelakis ’01] 悪意がない入力でのアプリケーションの挙動を記録。
記録をもとにポリシー作成 プログラムの実行時の挙動を手がかりにポリシーを
作る点が共通
2001/09/19 日本ソフトウェア科学会第18回大会
30
関連研究(2) Java の permission 機構
宣言的ポリシー policytool: GUI ベースのポリシー編集ツール
システムコールラッパ GSW [Fraser et al. ’99],
SysGuard [榮楽ら ’ 01] 操作的なポリシー記述融通 ⇔ 記述量 のトレードオフ
2001/09/19 日本ソフトウェア科学会第18回大会
31
今後の課題 SecureFurnace非プロトタイプ版の実
装
問い合わせの仕方を洗練
使い勝手をさらに向上させる機構の提案
2001/09/19 日本ソフトウェア科学会第18回大会
32
まとめ Sandbox システムを使いやすくする機構
インクリメンタルなポリシー作成の機構を提案 GUI によるポリシー作成支援の構想を提示
SecurePot HP でソースを公開中