Skip to main content
QUICK REVIEW

[논문 리뷰] Towards a Fully Abstract Compiler Using Micro-Policies: Secure Compilation for Mutually Distrustful Components

Yannis Juglaret, Cătălin Hriţcu|arXiv (Cornell University)|2015. 10. 02.
Security and Verification in Computing참고 문헌 1인용 수 10
한 줄 요약

이 논문은 마이크로 정책—태그 기반 하드웨어 강제 보안 모니터—를 사용하여 상호 신뢰할 수 없는 컴포넌트를 위한 안전하고 완전히 추상화된 컴파일러를 제시한다. 이러한 보안 모니터는 클래스 격리, 메서드 호출 규칙, 타입 안전성과 같은 고수준 추상화를 임의의 저수준 공격자로부터 보호한다. 이 접근법은 검증된 하드웨어 최적화된 모니터링 프레임워크를 통해 효율적이고 투명하게 강력한 보안 보장을 달성한다.

ABSTRACT

Secure compilation prevents all low-level attacks on compiled code and allows for sound reasoning about security in the source language. In this work we propose a new attacker model for secure compilation that extends the well-known notion of full abstraction to ensure protection for mutually distrustful components. We devise a compiler chain (compiler, linker, and loader) and a novel security monitor that together defend against this strong attacker model. The monitor is implemented using a recently proposed, generic tag-based protection framework called micro-policies, which comes with hardware support for efficient caching and with a formal verification methodology. Our monitor protects the abstractions of a simple object-oriented language---class isolation, the method call discipline, and type safety---against arbitrary low-level attackers.

연구 동기 및 목표

  • 상호 신뢰할 수 없는 컴포넌트 상황에서 보안 컴파일링의 완전한 추상화의 한계를 해결하기 위해, 저수준 공격자가 고수준 추상화를 뒤흔들 수 있는 상황을 고려한다.
  • 모든 보안 추상화가 임의의 저수준 공격 상황에서도 유지되도록 보장하는 컴파일러 체인(컴파일러, 링커, 로더)을 설계한다.
  • 클래스 격리, 메서드 호출 규칙, 타입 안전성을 투명하게 강제하는 하드웨어 가속화되고 형식적으로 검증된 보안 모니터(마이크로 정책)를 통합한다.
  • 최소한의 성능 오버헤드로 태그 기반 보호 프레임워크를 활용하여 효율적이고 투명하며 안전한 컴파일링을 달성한다.

제안 방법

  • 컴파일러는 고수준 객체 지향 언어를 중간 스택 기반 머신을 거쳐, 마이크로 정책 모니터링 기능이 확장된 타겟 심볼릭 마이크로 정책 머신으로 변환한다.
  • 마이크로 정책은 지시어 실행 중 하드웨어 모니터가 전파하는 워드 크기의 메타데이터 태그를 통해 보안을 강제하며, 세밀한 액세스 제어를 가능하게 한다.
  • 클래스 격리는 각 객체가 자체 메모리 세그먼트에 격리되고 태그 기반 체크를 통해 크로스 컴partments 액세스를 제한함으로써 구현된다.
  • 메서드 호출 규칙은 메서드 엔트리 포인트, 선형 리턴 능력, 레지스터 정리 기법을 통해 강제되며, 불법적인 제어 흐름 이동을 방지한다.
  • 타입 안전성은 메서드 인수 및 반환 값에 대한 태그 체크를 동적으로 수행함으로써 런타임에 타입 일관성을 보장한다.
  • 계속성 기반 의미 체계를 사용하여 프로그램 실행을 모델링하고, 모니터링 하에서 정확한 상태 전이를 보장한다.

실험 결과

연구 질문

  • RQ1상호 신뢰할 수 없는 컴포넌트가 존재하는 모델로 완전한 추상화를 확장할 수 있는가? 이는 임의의 저수준 공격자에 대한 보호가 필요하다.
  • RQ2강력한 저수준 공격자가 존재하는 상황에서 보안 컴파일러가 어떻게 클래스 격리, 메서드 호출 규칙, 타입 안전성을 강제할 수 있는가?
  • RQ3태그 기반 하드웨어 모니터(마이크로 정책)를 사용하여 이러한 추상화를 효율적이고 투명하게 컴iles된 시스템에서 강제할 수 있는가?
  • RQ4보안 컴파일레이션 파이프라인에서 마이크로 정책을 사용할 경우의 성능 및 투명성의 상충 관계는 무엇인가?
  • RQ5고수준 추상화를 유지하면서 효율적이고 모니터링된 타겟 코드를 생성할 수 있도록 컴파일러 체인을 어떻게 구성할 수 있는가?

주요 결과

  • 제안된 컴파일러 체인은 컴포넌트 간 상호 불신뢰를 고려하는 새로운 공격자 모델 하에서 완전한 추상화를 달성하며, 저수준 공격자가 고수준 추상화를 뒤흔들 수 없음을 보장한다.
  • 마이크로 정책 모니터는 객체의 격리와 태그 기반 체크를 통해 크로스 컴파트먼트 액세스를 제한함으로써 클래스 격리를 성공적으로 강제한다.
  • 엔트리 포인트와 선형 리턴 능력을 통해 메서드 호출 규칙이 유지되며, 공격자가 런타임 환경을 제어하더라도 제어 흐름 탈취가 방지된다.
  • 런타임에 태그 전파를 통해 동적으로 타입 안전성이 강제되어, 메서드에 정확한 타입의 값만 전달됨을 보장한다.
  • 시스템은 투명성을 보이며, 양호한 저수준 환경이 수정 없이 컴파일된 코드와 정상적으로 상호작용할 수 있다.
  • 하드웨어 가속화된 태그 기반 모니터링을 사용함으로써 높은 성능를 확보하였으며, 소프트웨어 전용 바이너리 리라이팅이나 무작위화 기법에서 흔히 발생하는 오버헤드를 피했다.

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

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

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

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