Skip to main content
QUICK REVIEW

[論文レビュー] Type-Driven Repair for Information Flow Security

Nadia Polikarpova, Jean Yang|arXiv (Cornell University)|Jul 12, 2016
Security and Verification in Computing参考文献 14被引用数 7
ひとこと要約

Liftyは、型駆動型の修復を通じて情報フローのセキュリティを強制するプログラミング言語である。プログラマーは機密データにリファインメント型を注釈づけ、システムは漏洩を防ぐためにアクセスチェックを自動挿入する。決定可能なリファインメント型を用いて非干渉性を形式化し、安全なコードを合成することで、ポリシーの負担を軽減し、現実世界の情報漏洩を効果的に防止する。

ABSTRACT

We present Lifty, a language that uses type-driven program repair to enforce information flow policies. In Lifty, the programmer specifies a policy by annotating the source of sensitive data with a refinement type, and the system automatically inserts access checks necessary to enforce this policy across the code. This is a significant improvement over current practice, where programmers manually implement access checks, and any missing check can cause an information leak. To support this programming model, we have developed (1) an encoding of information flow security in terms of decidable refinement types that enables fully automatic verification and (2) a program repair algorithm that localizes unsafe accesses to sensitive data and replaces them with provably secure alternatives. We formalize the encoding and prove its noninterference guarantee. Our experience using Lifty to implement a conference management system shows that it decreases policy burden and is able to efficiently synthesize all necessary access checks, including those required to prevent a set of reported real-world information leaks.

研究の動機と目的

  • 情報フローのセキュリティのための手動によるアクセスチェックの実装の負担を軽減すること。
  • 欠落または誤ったアクセス制御チェックによって引き起こされる情報漏洩を排除すること。
  • 実際の現場で情報フローポリシーを完全に自動的かつ検証可能に強制する方法を提供すること。
  • 決定可能なリファインメント型を用いて情報フローのセキュリティを形式化し、自動検証を可能にすること。
  • 不安全なデータアクセスを局所的に修正し、検証可能に安全な代替手段を提供する修復アルゴリズムを開発すること。

提案手法

  • 情報フローのセキュリティを決定可能なリファインメント型としてエンコードし、完全に自動的な検証を可能にする。
  • 機密データのソースにリファインメント型の注釈を付けることで、セキュリティポリシーを指定する。
  • 不安全なアクセスを特定し、安全な代替手段に置き換えるプログラム修復アルゴリズムを適用する。
  • セキュリティモデルを形式化し、エンコードに対する非干渉性の保証を証明する。
  • 修復プロセスをプログラミング言語に統合し、エンドツーエンドの安全な構築開発を支援する。
  • 実用性と有効性を示すために、会議管理システムを対象にアプローチを評価する。

実験結果

リサーチクエスチョン

  • RQ1リファインメント型を用いて、非干渉性を保証する形で情報フローポリシーを自動的に強制できるか?
  • RQ2型駆動型の修復は、手動による介入なしに正しいアクセスチェックを合成するのにどの程度有効か?
  • RQ3欠落したアクセスチェックによって生じる現実世界の情報漏洩を、このシステムは防止できるか?
  • RQ4このアプローチは、セキュリティポリシーの強制におけるプログラマーの負担をどの程度軽減できるか?
  • RQ5この修復プロセスは、実用的なシステムにおいて十分に整合的かつスケーラブルか?

主な発見

  • Liftyは、会議管理システムに対して必要なすべてのアクセスチェックを正しく合成し、既知の現実世界の情報漏洩を防止した。
  • 型注釈によるアクセスチェック挿入の自動化により、ポリシー強制の負担が軽減された。
  • 形式的定式化により非干渉性が保証され、低セキュリティの出力が高セキュリティの入力に依存しないことが保証された。
  • 決定可能なリファインメント型の使用により、セキュリティ特性の完全な自動検証が可能になった。
  • 修復アルゴリズムは不安全なアクセスを局所的に特定し、手動でのコード変更を必要とせずに検証可能に安全な代替手段に置き換えた。
  • このアプローチは、現実的なシステム上で実用的であることが実証され、自動的強制が現実世界のシナリオでも実現可能であることが示された。

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

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

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

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