20151105

1. AMBA 프로토콜 관련 조사
연구 분야 특성 상 AMBA 프로토콜 이야기를 종종 듣게 되는데, 잘 알지 못해 매번 찾아보게 된다. 저번에 친절한 임베디드 시스템 개발자 되기 강좌 글[2]을 읽은 뒤로는 이해가 훨씬 잘 되었다. 그리고 최근에 조금 더 구체적인 이야기를 할 일이 있었는데, 김동현 박사님의 글[3,4]를 읽고나니 도움이 되었다. [2], [4], [3], [1] 순서로 글을 읽었음. 여전히 대강의 개념만 이해했을 뿐, 잘 와닿지 않는다. 실제로 실습을 하며 사용해보고 싶은데, 어떻게 해야할지 잘 모르겠다.

References:
[1] Advanced Microcontroller Bus Architecture, Wikipedia, https://en.wikipedia.org/wiki/Advanced_Microcontroller_Bus_Architecture
[2] AMBA – SoC안에서 IP끼리의 Bus 규격, 친절한 임베디드 시스템 개발자 되기 강좌, http://recipes.egloos.com/4991780
[3] 김동현, AHB 프로토콜에 대한 간단한 tip – HTRANS 신호의 BUSY 상태가 필요한 이유, http://donghyun53.egloos.com/4077209
[4] 김동현, AHB 대비 AXI 프로토콜의 장점 몇 가지, http://donghyun53.egloos.com/4087409


2. HW 기반 Kernel Integrity Monitor 관련 논문 읽기
[ISCA’10] NoHype: virtualized cloud infrastructure without the virtualization (paper, slides)
NoHype 아키텍쳐는 가상화 레이어에서 하이퍼바이저를 제거하고자 하는 아키텍쳐이다. 기존의 가상화 시스템에서 multi-tenancy로 인해 보안 위협이 증대하고 있다. 악의적인 사용자가 가상화 레이어를 공격해, 시스템을 장악할 수 있다. 이러한 공격 가능성을 근본적으로 제거하고자, NoHype에서는 virtualization layer (hypervisor)를 제거하기를 제안한다. NoHype에서는 아키텍쳐 레벨에서의 지원을 통해, 하이퍼바이저를 대체하고자 한다. 한 개의 VM에 한 개의 코어를 할당하고, 메모리를 파티셔닝하고, 입출력 장치를 각 VM에 할당함으로써 문제를 해결하고자 한다.

[TIFS’13] Monitoring Integrity Using Limited Local Memory (paper)
이 논문에서는 limited local memory(LLM) 아키텍쳐를 사용해 kernel integrity monitor에게 tamper-proof 실행 환경을 제공하는 것을 목적으로 한다. 가상화 기술을 활용해 VMM이 가상 머신의 kernel integrity를 검증하고자 하는 시도도 있었으나, 소프트웨어 기반의 kernel integrity monitor는 그 자체로 보안 취약점이 있다. TCB에 VMM을 포함하는 것이 현실적이지 않다. NoHype에서 하이퍼바이저를 제거함으로써 하드웨어적인 isolation 기법을 제안하였으나, NoHype는 kernel integrity를 확인할 수 있는 인터페이스를 제공하지 않는다. 이 논문에서는 limited local memory (LLM) 아키텍쳐를 활용하여, security monitor를 isolate하는 동시에 다른 VM의 상태를 모니터링하는 기능도 제공하고자 한다.
LLM-based machine은 현재의 multicore machine을 확장한 것이다. 한 개의 코어가 privileged core (core0)가 되고, 다른 코어들은 coreU가 된다. core0는 coreU의 실행을 확인하고 조정할 수 있다. 각 코어들은 자기 고유의 local memory를 가지며, 그 크기는 크지 않다. core0의 신뢰성을 보장하기 위해 core0는 반드시 core0의 local memory 영역만 실행하며, core0의 local memory에 올라오는 모든 정보는 올라오기 전에 검증 과정을 거친다 (secure paging). LLM을 사용하면 TCB를 10KLOC으로 줄일 수 있다. LLM은 LLM hardware platform, BIOS와 bootloader, monitor operating system과 그 process들을 신뢰한다. LLM의 작동을 위해서는 코드 일부와 데이터의 일부가 core0의 local memory에 올라와 있어야 한다. monitor OS의 secure paging mechanism, monitor OS와 프로세스에 대한 해시 값, 하드웨어에 의해 접근 가능한 monitor OS의 자료 구조 등이 core0의 local memory에 올라와 있어야 한다.
LLM에서는 target OS의 kernel integrity를 확인하는 방법에 대한 구체적인 내용은 없는 것 같다. suitable policy가 주어지면, monitor process에서 이를 확인한다고 되어 있음. 그리고 core0는 coreU의 레지스터 정보에 접근하지 못한다.

Advertisements
Tagged with: , , , , , , , , , , , , , , , , ,
Posted in 1) Memo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

누적 방문자 수
  • 98,563 hits
%d bloggers like this: