Skip to main content
QUICK REVIEW

[논문 리뷰] Very Static Enforcement of Dynamic Policies

Bart van Delft, Sebastian Hunt|arXiv (Cornell University)|2015. 01. 12.
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권한 취소 및 탈기밀정보화와 같은 복잡한 정책 행동을 지원하면서도, 의존성 분석과 정책 강제 사이의 분리를 유지할 수 있는가?

주요 결과

  • 확장된 타입 시스템은 중간 프로그램 점에서의 의존성 추적을 통해 유동적 정책의 정적 강제를 지원하며, 각 정책에 대해 재분석 없이도 검증이 가능하다.
  • 의존성 분석은 정책과 완전히 독립되어 있어, 한 번의 분석으로 여러 정책을 검증할 수 있으며, 이는 책임 분리의 명확한 실현을 보여준다.
  • 타당성 결과는 프로그램이 잘 타입화되어 있다면, 정책의 구체적 형태에 관계없이 의도한 유동적 정책을 강제함을 보장한다.
  • 새로운 지식 기반 보안 정의는 이전 정의에서 발생하던 이상 현상을 피하고, 단순한 두 런 성질로 특성화된다.
  • 이 방법은 일반적 검증을 가능하게 하여, 동일한 프로그램을 동일한 기반 의존성 분석을 사용해 다양한 유동적 정책에 대해 검증할 수 있다.
  • 이 프레임워크는 런타임 조건에 따라 기반으로 하는 권한 취소와 같은 복잡한 정책 행동을 지원하며, 조건부 출력이 권한 취소 후에도 민감한 정보를 드러내는 경우에도 대응할 수 있다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.