1 / 32

SecurePot: システムコールフックを利用した安全なソフトウェア実行系

SecurePot: システムコールフックを利用した安全なソフトウェア実行系. 大山恵弘 (さきがけ研究21) 加藤和彦 (筑波大学 電子・情報工学系 さきがけ研究21). 背景. 悪意あるコードの氾濫 Code Red, Sircam, Anna Kournikova コードの安全な実行への要請 一つの有効な対策: sandbox システムの使用. Sandbox システム. アプリケーションを「封じ込めて」実行 アプリケーションの挙動を監視 許された操作のみを実行 例: Java 仮想機械を定義、実装 Janus, MAPbox, ASL

floria
Download Presentation

SecurePot: システムコールフックを利用した安全なソフトウェア実行系

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SecurePot: システムコールフックを利用した安全なソフトウェア実行系 大山恵弘 (さきがけ研究21) 加藤和彦 (筑波大学 電子・情報工学系さきがけ研究21) 日本ソフトウェア科学会第18回大会

  2. 背景 • 悪意あるコードの氾濫 • Code Red, Sircam, Anna Kournikova • コードの安全な実行への要請 • 一つの有効な対策:sandboxシステムの使用 日本ソフトウェア科学会第18回大会

  3. Sandboxシステム • アプリケーションを「封じ込めて」実行 • アプリケーションの挙動を監視 • 許された操作のみを実行 • 例: • Java • 仮想機械を定義、実装 • Janus, MAPbox, ASL • 発行されるシステムコールを監視 日本ソフトウェア科学会第18回大会

  4. 本研究の目的 • システムコール監視型のsandboxシステムの使い勝手の向上 • セキュリティポリシーの記述を簡単化 日本ソフトウェア科学会第18回大会

  5. 発表のあらまし • 既存システムの問題 • SecurePotの設計 • SecurePotの実装 • 関連研究 • 今後の課題 日本ソフトウェア科学会第18回大会

  6. システムコールフックを利用したsandboxシステムシステムコールフックを利用したsandboxシステム … … … application システムコール セキュリティポリシー sandbox • 実現方式 • ユーザレベル • Kernel module • Kernel改造 OS 日本ソフトウェア科学会第18回大会

  7. 既存システムの問題 • ポリシー記述が面倒 • 試行錯誤しつつ繰り返しポリシーを書き換えることが必要 • ポリシーの作成、閲覧、編集が直感的でない 日本ソフトウェア科学会第18回大会

  8. 問題1:繰り返されるポリシーの     書き換え ポリシー作成 実行 ポリシー違反 強制終了 ポリシーを緩く 書き換え 日本ソフトウェア科学会第18回大会

  9. 問題2: 直感的でない ポリシー記述 • 例: Janusのポリシーファイルの抜粋 basic putenv display net allow connect display path super-deny read,write,exec */.forward path allow read /dev/zero /dev/null ↑ 何をどうしたいのか??? 日本ソフトウェア科学会第18回大会

  10. SecurePotの設計思想 • ポリシーの記述を極力簡単に! • 実行時の問い合わせ + その答をポリシーファイルに反映 • ポリシー作成用のGUIの導入 日本ソフトウェア科学会第18回大会

  11. SecureFurnace configure generate … policy file … feedback SecurePotの構成 application syscalls X X SecurePot OS 日本ソフトウェア科学会第18回大会

  12. SecurePotの使用例 % securepot tar.plc tar xvf foo.tar x foo.txt, 4 bytes, 1 tape blocks … … ポリシーファイル コマンド列 SecurePot = ユーザ権限で走る一般のプログラム 日本ソフトウェア科学会第18回大会

  13. セキュリティポリシー • 制御対象 • システムコール • 読み書きファイルパス • 通信相手のIPアドレスとポート番号 • 制御の選択肢 • deny: 不許可 • ignore, allow-and-print: 許可 • ask: 問い合わせ 日本ソフトウェア科学会第18回大会

  14. セキュリティポリシーの例 • ファイル読み書きと通信の制限 • … • deny path all • ignore path r /dev/zero • ignore path r /usr/lib/locale/ja/ja.so.1 • ignore path r /usr/lib/locale/ja/methods_ja.so.1 • ignore path r /usr/lib/locale/ja/LC_MESSAGES/… • ignore path r /usr/lib/locale/ja/LC_TIME/… • deny sock all • … 日本ソフトウェア科学会第18回大会

  15. 日本ソフトウェア科学会第18回大会

  16. Incrementalなポリシー作成の概要 • 安全側に振ったポリシーを記述 • 怪しい操作の実行前に問い合わせるよう指示 実行前 • 問い合わせ + 答の入力 • 問い合わせ後すぐポリシーを更新 実行中 • 更新されたポリシーをダンプ • 次回の実行ではダンプされたファイルを使用 実行後 日本ソフトウェア科学会第18回大会

  17. Firewallソフトウェアに学ぶ • 初期設定: 全部(or大半)の通信を禁止 • 通信が試みられる→ その通信を許可するかどうか問い合わせ 日本ソフトウェア科学会第18回大会

  18. 実行前 • ポリシーを安全側に振る • askの使用 # システムコール ask all ignore open, read, close # パス ask path all ignore path r /dev/zero, /dev/null # 通信 ask sock all 日本ソフトウェア科学会第18回大会

  19. 実行中 • 問い合わせに答える open(“/etc/hosts”, O_RDONLY) called. Continue? 1. Yes 2. No 3. Yes. And remove this hook … 8. Yes. And ignore this hook when the arg is the same command? > 最初は多数のfalse alarm → 徐々に減少 日本ソフトウェア科学会第18回大会

  20. 実行後 • 問い合わせの答を反映したポリシーをファイルにダンプ … Policy updated. Update echo.plc? (y/n) > y Updated. % 日本ソフトウェア科学会第18回大会

  21. 更新されたポリシーファイル … # パス ask path all ignore path r /dev/zero, /dev/null ignore path r /etc/hosts … • 次回の実行で使用可 • 広く配布することも可 日本ソフトウェア科学会第18回大会

  22. 日本ソフトウェア科学会第18回大会

  23. SecureFurnace:ポリシーファイル作成、閲覧、編集のためのGUISecureFurnace:ポリシーファイル作成、閲覧、編集のためのGUI • メニュー、テキストボックス、チェックボックスの操作を通じてポリシー作成 • 例: 「ファイル削除不可」ボックスをチェック という行を生成 • cf. visual programming • 現状: どういうGUIがよいかプロトタイプ上で 模作中 deny unlink 日本ソフトウェア科学会第18回大会

  24. SecureFurnaceプロトタイプ • CGI+form 日本ソフトウェア科学会第18回大会

  25. 日本ソフトウェア科学会第18回大会

  26. SecurePotの実装方式 • プロセスを生成 • 子プロセス: アプリケーションを実行 • 親プロセス: 子プロセスを監視 • Solarisの/proc filesystemを利用 • /proc以下の子プロセス用ファイルを読み書き⇔ 子プロセスの状態取得、実行制御 日本ソフトウェア科学会第18回大会

  27. 現在の実行時オーバヘッド • 1MBのファイル一個のコピー • 4% • gcc-3.0.tarの展開 • 41% 類似システム: いずれも数%程度 日本ソフトウェア科学会第18回大会

  28. 他の機能:ライブラリ関数の実行制御 • 例: fprintfの実行を許可/禁止 • より粗粒度の制御が可能に • 関数が「信頼できる」場合に有効 • 実装: ブレークポイントの挿入 日本ソフトウェア科学会第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] • 悪意がない入力でのアプリケーションの挙動を記録。記録をもとにポリシー作成 • プログラムの実行時の挙動を手がかりにポリシーを作る点が共通 日本ソフトウェア科学会第18回大会

  30. 関連研究(2) • Javaのpermission機構 • 宣言的ポリシー • policytool: GUIベースのポリシー編集ツール • システムコールラッパ • GSW [Fraser et al. ’99],SysGuard [榮楽ら ’01] • 操作的なポリシー記述 • 融通 ⇔ 記述量 のトレードオフ 日本ソフトウェア科学会第18回大会

  31. 今後の課題 • SecureFurnace非プロトタイプ版の実装 • 問い合わせの仕方を洗練 • 使い勝手をさらに向上させる機構の提案 日本ソフトウェア科学会第18回大会

  32. まとめ • Sandboxシステムを使いやすくする機構 • インクリメンタルなポリシー作成の機構を提案 • GUIによるポリシー作成支援の構想を提示 • SecurePot HPでソースを公開中 日本ソフトウェア科学会第18回大会

More Related