Skip to main content
QUICK REVIEW

[논문 리뷰] PML: An Interpreter-Based Access Control Policy Language for Web Services

Yang Luo, Qingni Shen|arXiv (Cornell University)|2019. 03. 23.
Access Control and Trust참고 문헌 16인용 수 6
한 줄 요약

이 논문은 웹 서비스를 위한 모델 독립적이고 구현 독립적인 접근 제어를 가능하게 하는 정책 언어 및 인터프리터 기반의 구현 메커니즘(PML-EM)을 제안한다. Lua의 인터프리터-내-인터프리터 실행 방식을 활용함으로써 PML-EM는 다중 프로그래밍 언어 간 호환성을 확보하고 사전에 격리된 보안 환경을 제공하며, Lua JIT를 사용할 경우 요청당 평균 5.9μs 미만의 정책 실행 오버헤드를 달성하여 Intel의 RMD 및 VMware의 Dispatch와 같은 실제 시스템에서 높은 성능과 실용성을 입증한다.

ABSTRACT

Access control is an important component for web services such as a cloud. Current clouds tend to design the access control mechanism together with the policy language on their own. It leads to two issues: (i) a cloud user has to learn different policy languages to use multiple clouds, and (ii) a cloud service provider has to customize an authorization mechanism based on its business requirement, which brings high development cost. In this work, a new access control policy language called PERM modeling language (PML) is proposed to express various access control models such as access control list (ACL), role-based access control (RBAC) and attribute-based access control (ABAC), etc. PML's enforcement mechanism is designed in an interpreter-on-interpreter manner, which not only secures the authorization code with sandboxing, but also extends PML to all programming languages that support Lua. PML is already adopted by real-world projects such as Intel's RMD, VMware's Dispatch, Orange's Gobis and so on, which proves PML's usability. The performance evaluation on OpenStack, CloudStack and Amazon Web Services (AWS) shows PML's enforcement overhead per request is under 5.9us.

연구 동기 및 목표

  • 클라우드 접근 제어 정책 언어의 표준화 부족으로 인해 사용자가 여러 언어를 학습하고 각 플랫폼마다 인증 로직을 다시 구축해야 하는 문제를 해결하기 위해.
  • 다양한 프로그래밍 언어 간에 동일한 정책 실행 메커니즘을 재사용할 수 있도록 함으로써 클라우드 서비스 제공자의 개발 및 유지보수 비용을 줄이기 위해.
  • 사용자가 플랫폼 간에 정책을 재작성하지 않고도 이식할 수 있도록 클라우드 간 정책 이식성을 보장하기 위해.
  • 정책 실행을 호스트 시스템에서 격리하는 보안적이고 사전에 격리된 환경을 제공하기 위해.
  • 실제 시스템 배포 및 OpenStack, CloudStack, AWS에서의 벤치마킹을 통해 제안된 솔루션의 실용성과 높은 성능을 입증하기 위해.

제안 방법

  • ACL, RBAC, ABAC 모델을 추상적 인증 로직을 통해 구체적 정책 규칙과 분리된 고수준 정책 언어인 PML을 설계하여 다양한 접근 제어 모델을 표현할 수 있도록 하였다.
  • PML 인터프리터가 Lua 인터프리터 내부에서 실행되는 인터프리터-내-인터프리터(IoI) 아키텍처를 사용하여 PML-EM를 구현함으로써 사전 격리 및 이식성을 확보하였다.
  • Lua의 경량적이고 임bed 가능한 런타임을 활용하여 PML-EM가 Python, Java, C++ 및 기타 Lua 임베딩을 지원하는 언어로 작성된 시스템에서도 사용 가능하도록 하였다.
  • 성능 최적화를 위해 Lua Just-In-Time(JIT) 컴파일을 활용하여 PML 매칭 로직과 인터프리터 로직을 기계어로 컴파일함으로써 저지연 정책 실행을 달성하였다.
  • OpenStack(Python), CloudStack(Java), AWS IAM(C++/Java)과 같은 실제 플랫폼에서 PML-EM의 성능을 평가하였으며, 현실적인 워크로드 하에서 정책 실행 지연을 측정하였다.
  • 인터프리터 계층의 영향과 JIT 최적화의 효과를 분리하기 위해, 네이티브 실행 메커니즘 및 JIT 비활성화 버전과의 성능 비교를 수행하였다.

실험 결과

연구 질문

  • RQ1동일한 정책 언어로 ACL, RBAC, ABAC와 같은 다양한 접근 제어 모델을 표현할 수 있을까? 이때 표현력이나 성능에 손상이 가지 않는가?
  • RQ2다양한 클라우드 플랫폼과 프로그래밍 언어 간에 모델 독립적이고 구현 독립적인 정책 실행 메커니즘을 어떻게 설계할 수 있는가?
  • RQ3실제 클라우드 시스템에서 정책 실행을 위한 인터프리터-내-인터프리터 방식의 오버헤드는 얼마나 되는가?
  • RQ4Lua JIT의 사용이 인터프리터 계층으로 인한 성능 저하를 상당히 줄일 수 있는가?
  • RQ5실제 클라우드 플랫폼에서 네이티브 실행 메커니즘과 비교해 PML-EM의 지연 시간과 확장성은 어떠한가?

주요 결과

  • Lua JIT를 사용할 경우 PML-EM는 요청당 평균 5.9μs 미만의 정책 실행 오버헤드를 달성하여 저지연 클라우드 워크로드에 적합하다.
  • 인터프리터-내-인터프리터(IoI) 메커니즘 덕분에 PML-EM는 Lua 임베딩을 지원하는 모든 언어로 작성된 시스템에서도 실행 가능하여, 실행 언어 독립성을 확보하였다.
  • Lua JIT를 활성화한 경우, 추가 추상화 계층이 있음에도 불구하고 PML-EM의 성능은 기존 메커니즘 대비 최소 0.32배의 오버헤드로 경쟁력 있는 성능을 보였다.
  • PML-EM의 설계는 인증 로직과 정책 규칙을 성공적으로 분리하여, 다양한 접근 제어 모델 및 플랫폼 간에 재사용 가능성을 확보하였다.
  • PML은 Intel의 RMD, VMware의 Dispatch, Orange의 Gobis와 같이 실제 시스템에 도입되어 실용성과 견고성을 입증하였다.
  • 성능 평가 결과, 인터프리터 계층이 있음에도 불구하고 총 지연 시간은 일반적인 인터넷 라운드트립 타임(30–100ms)의 0.2% 이하로 유지되어 사용자 경험에 거의 영향을 주지 않았다.

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

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

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

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