Skip to main content
QUICK REVIEW

[論文レビュー] Very Static Enforcement of Dynamic Policies

Bart van Delft, Sebastian Hunt|arXiv (Cornell University)|Jan 12, 2015
Security and Verification in Computing参考文献 8被引用数 5
ひとこと要約

この論文は、各プログラムポイントにおけるデータ依存関係を追跡することで、動的情報フロー政策を静的に強制するためのフローセンシティブ型システムを拡張する。依存関係解析と政策適用を分離することで、一度の静的解析で複数の動的政策を検証可能にし、アクセス制御が変化するプログラムにおけるセキュリティ属性の政策に依存しない検証の再利用可能で整合的な基盤を提供する。

ABSTRACT

Security policies are naturally dynamic. Reflecting this, there has been a growing interest in studying information-flow properties which change during program execution, including concepts such as declassification, revocation, and role-change. A static verification of a dynamic information flow policy, from a semantic perspective, should only need to concern itself with two things: 1) the dependencies between data in a program, and 2) whether those dependencies are consistent with the intended flow policies as they change over time. In this paper we provide a formal ground for this intuition. We present a straightforward extension to the principal flow-sensitive type system introduced by Hunt and Sands (POPL '06, ESOP '11) to infer both end-to-end dependencies and dependencies at intermediate points in a program. This allows typings to be applied to verification of both static and dynamic policies. Our extension preserves the principal type system's distinguishing feature, that type inference is independent of the policy to be enforced: a single, generic dependency analysis (typing) can be used to verify many different dynamic policies of a given program, thus achieving a clean separation between (1) and (2). We also make contributions to the foundations of dynamic information flow. Arguably, the most compelling semantic definitions for dynamic security conditions in the literature are phrased in the so-called knowledge-based style. We contribute a new definition of knowledge-based termination insensitive security for dynamic policies. We show that the new definition avoids anomalies of previous definitions and enjoys a simple and useful characterisation as a two-run style property.

研究の動機と目的

  • 動的情報フロー政策におけるデータ依存関係解析と政策適用の間の明確な分離を形式化すること。
  • 実行中に変化する動的政策(例えば、デクラシフィケーションや権限剥奪)を検証する課題に対処すること。
  • 複数の政策にわたって再利用可能な静的依存関係解析を活用する汎用的かつ政策に依存しない検証フレームワークを提供すること。
  • 従来の定義に起因する異常を回避し、合成的推論を可能にする動的政策における知識ベースのセキュリティのための新たな意味的基盤を構築すること。

提案手法

  • ハントとサーンズ(POPL '06, ESOP '11)の主なフローセンシティブ型システムを拡張し、端末だけでなく各プログラムポイントにおける依存関係を追跡する。
  • チャネルごと、ポイントごとの依存関係集合を導入し、各出力に影響する入力を特定する。
  • 攻撃者が出力をもとに二つの実行を区別できないことを保証する二回走行スタイルの性質を、知識ベースのセキュリティの特徴付けとして採用する。
  • 終了に依存しない知識ベースのセキュリティを示す意味的性質に関して、型システムの整合性を証明する。
  • 推論が政策に依存しない型システムを用いることで、同じ解析を複数の政策に再利用可能にする。
  • 従来の定式化に起因する異常を回避し、合成的推論を可能にする動的政策における知識ベースのセキュリティ条件を新たに定義する。

実験結果

リサーチクエスチョン

  • RQ1同じプログラムに対して複数の動的情報フロー政策を検証するために、一度の静的依存関係解析を再利用可能か?
  • RQ2実行中に変化する動的政策を扱うための形式的で整合的かつ再利用可能な基盤をどのように確立できるか?
  • RQ3既知の異常を回避し、合成的検証を可能にする動的政策における知識ベースのセキュリティの意味的定義は何か?
  • RQ4二回走行スタイルの性質が動的政策の強制の十分かつ特徴付け可能な条件として機能できるか?
  • RQ5権限剥奪やデクラシフィケーションのような複雑な政策行動をサポートしつつ、依存関係解析と政策適用の分離をどのように維持できるか?

主な発見

  • 拡張された型システムは、中間プログラムポイントにおける依存関係の追跡により、動的政策の静的強制を可能にし、各政策に対して再解析を伴わずに検証が可能になる。
  • 依存関係解析は政策に完全に依存せず、一度の解析で複数の政策を検証可能であるため、関心の明確な分離が実現される。
  • 整合性の結果により、プログラムがwell-typedであれば、その政策の具体的な形態に関係なく、意図した動的政策が強制されることを保証する。
  • 新たに定義された知識ベースのセキュリティ定義は、従来の定式化に見られる異常を回避し、単純な二回走行性質によって特徴付けられる。
  • 本アプローチにより、同じプログラムを複数の動的政策に対して、同じ依存関係解析を用いて検証可能な汎用的検証が可能になる。
  • フレームワークは、実行時条件に基づく権限剥奪のような複雑な政策行動をサポートし、条件付き出力が剥奪後に機密情報を露呈するケースを含む。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。