SoC architectures to efficiently ensure the security of today’s smart computing devices.


오늘날 우리는 IoT의 시대를 맞아 스마트폰이나 스마트 자동차, 스마트 TV와 같은 수많은 smart computing device에 둘러싸여 살고 있다. IoT시대가 갖는 가장 핵심적인 특징은 연결성이다. 모바일 기기, 가전제품, 자동차 등 모든 전자기기는 상호간에 연결됨으로써 이동성 및 휴대성을 보장받게 되며 이를 통해 다양하고 편리한 서비스가 제공될 것이다. 이처럼 장치 간 연결성이 부각되고 이를 통한 서비스가 제공되는 시대에 놓치지 말아야할 핵심 키워드 중에 하나는 보안이다. 현재 스마트폰을 포함한 대부분의 smart computing device 등에 적용되고 있는 보안 기술은 과거 PC시대의 데스크톱에 적용되던 그것을 크게 벗어나지 않고 있다. 그러나 IoT시대에 본격적으로 널리 사용될 차세대 smart computing device 등에 대한 보안 위협은 IoT환경의 연결성을 비롯한 여러 특징으로 인해 더욱 증대될 것이다. 예를들어, 장치들이 상호 연결되어 있기 때문에, 하나의 장치가 공격당했을 때, 이를 기반으로 다른 장치 또한 공격에 쉽게 노출될 수 있으며, 네트워크에 연결된 차세대 자동차의 경우 그 특성상 악성 코드에 의해 장치가 오작동을 일으킬 경우 물리적 피해로 바로 연결될 수도 있다. 이와 같은 점으로부터, 차세대 smart computing device에 기반한 여러 장치들이 대중화 되어 진정한 IoT의 시대를 열기 위해서는 그 환경에 맞는 하드웨어/소프트웨어 보안 기술의 연구 및 개발이 반드시 필요하다는 결론을 얻을 수 있다.

보안 기능이 집적된 차세대 컴퓨터 시스템 구축에 필요한 프로그램 가능한 IP 및 통합 SDK 개발 (미래창조과학부 도약연구)

Contact: Jinyong Lee, Ingoo Heo, Hyungon Moon, Yongje Lee, Kyungmin Kim, Dongil Hwang

본 연구에서는 보안 감시가 원천적으로 가지는 높은 계산 복잡성 문제와 현 시스템의 보안 솔루션이 가지게 되는 성능과 보안 측면의 구조적 문제를 해결하기 위해, 자체대 smart computing device의 설계 단계부터 보안을 고려하고 이를 위한 기능을 시스템 내부에 집적함으로써 감시 성능을 획기적으로 개선하여 IoT환경에서도 강력하고 실시간성을 가지는 보안 기능을 수행하여 시스템 내의 악성 행위 탐지 가능성을 높이도록 할 것이다. 이를 위해 본 연구에서는 과거 관련 연구경험을 바탕으로 하드웨어 아키텍처 설계 및 효율적인 보안 감시를 위한 소프트웨어 통합 설계를 통해 보안 기능이 집적된 smart computing device를 연구/개발할 것이다. 보다 구체적으로, 본 연구 목표 달성을 위해 우리는 크게 다음과 같은 세 가지 방향의 기술 개발을 진행할 것이다.

  • 보안 모니터링과 그에 필요한 정보를 추출하는 기능이 내부에 집적된 보안 하드웨어 플랫폼 설계
  • 새롭게 설계된 보안 아키텍처를 구동하여 호스트 시스템을 감시하는 소프트웨어 시스템 구축
  • 호스트 시스템과 감시 소프트웨어의 통합 코드 생성을 통해 효율적인 보안 감시를 가능하게 하는 통합 소프트웨어 개발 툴(SDK) 개발

아래 그림은 본 연구에서 제안하는 보안 시스템의 구조도를 간략히 나타낸 것이다. 감시 대상 호스트 프로세서는 OS와 응용프로그램 등의 소프트웨어를 수행하고, 보안 하드웨어 플랫폼은 이들의 행위를 외부에서 감시하는 모니터 기능을 수행한다. 보안 하드웨어 플랫폼은 다양한 하드웨어 IP(Intellectual Property)들을 포함하고 있으며 필요에 따라서는 프로그램 가능한(Programmable) 프로세서 형태로 구현되어 소프트웨어를 탑재해서 다양한 보안 알고리즘을 수행하는 감시자 역할을 할 수 있도록 구성된다.

차세대 smart computing device를 위한 보안 시스템 구조

하드웨어 수준의 보안 기능 집적화로 데이터 추출 및 분석의 효율성 및 정확도가 높아졌다고 해도 감시자와 피 감시자 프로세스들 간의 실행 환경의 유기적인 공유가 이루어지지 않는 다면 하드웨어 수준의 지원만으로는, 피 감시자의 악성 행위 탐지가 효과적으로 이루어 지지 않을 수 있다. 이에 대응하기 위해 우리는 코드 분석 기법을 활용하여 피 감시자 코드 제작 단계에서 해당 코드의 전체 구조 및 의미 정보를 파악하고 요약하여 해당 코드 실행 시 감시자들에게 전달될 수 있도록 할 것이다. 이를 실현하기 위해 우리는 감시자와 피 감시자 소프트웨어 간에 효과적인 통합 코드 생성이 가능하도록 지원하는 SDK를 개발할 것이다. 이 SDK는 호스트 상에서 수행하는 감시 대상 프로세스의 기계어 코드 생성될 때 해당 코드의 분석 정보또한 생성하고, 그 코드가 실행 시 그 추가된 분석 정보가 외부의 감시자 프로세스에 시큐리티 채널을 통해 전달될 수 있도록 코드를 생성하게 할 것이다. 이와 같이 프로세서들 상에서 수행되는 코드들이 서로 협력하여 통합 코드를 생성하는 기법은 이전 연구주제였던 이종 멀티프로세서 SoC (MPSoC)용 통합 코드 생성 기법과 개념적 유사성을 갖기 때문에 지난 연구 경험을 적극 활용할 수 있을 것으로 보인다.

통합 SDK 를 통한 감시자 피감시자 코드 생성 과정

관련 연구과제: 미래창조과학부 도약 연구 (Dec 2014 - Nov 2016)

Dynamic Information Flow Tracking

Contact: Jinyong Lee, Ingoo Heo, Yongje Lee

스마트폰의 사용이 증가함에 따라, 기기 내에서의 정보 유출 문제 역시 심각성이 증가하면서, 이에 대응하기위한 Data Leakage Prevention (DLP) 기술의 필요성이 커지고 있다. 이와 같은 DLP 기술의 예로 특정 데이터의 시스템 내 흐름을 추적하여 그 누출을 탐지하는 Dynamic Information Flow Tracking (DIFT)가 있는데, 기존의 DIFT 기술들은 최소 수 배에서 수십 배 가량의 성능 오버헤드를 보이는 것으로 알려져 있다. 대표적으로 데스크탑 PC용으러 널리 쓰이는 x86시스템에서 개발된 TaintCheck, LIFT와 같은 기술들이 소개된 바 있는데, 이러한 기술들의 오버헤드는 4배에서 최대 37배에 이른다. 이는 DIFT 기술 자체가 기계어 코드 하나하나마다 tag라 불리우는 메타데이터를 관리하도록 추가적인 코드를 요구하는 특성을 가지고 있기 때문이다. 이를 극복하기 위해 본 프로젝트에서는 DIFT에 최적화된 코프로세서를 개발하고, 기존의 소프트웨어 솔루션들에서 호스트 프로세서가 담당하던 DIFT 연산들을 이 코프로세서에 처리하도록함으로써, 성능 향상을 꾀하는 기술을 연구한다.

협력기관: 삼성전자

Hardware-based Kernel Integrity Monitoring

Contact: Jinyong Lee, Hyungon Moon

감시 대상 시스템 (호스트 시스템)과 분리된 별도의 HW 시스템을 새로운 trusted computing base (TCB)로 하는 보안 감시 연구인 Vigilare Project를 진행 중이다. 본 연구팀이 디자인한 Vigilare 시스템은 리눅스 커널의 정적 영역과 동적 영역에 대한 루트킷 공격을 탐지함으로써, 기존 SW 기반 보안 감시 방법들이 탐지하지 못하거나, 탐지하는 데 큰 성능 오버헤드를 일으키는 것에 비해 안전하고 효율적인 대안을 내 놓았다. 이러한 연구의 독창성을 인정 받아 2012년 CCS와 2013 Usenix Security에 논문이 게제된 바 있다. 현재는 보다 다양한 공격을 방어하기 위한 HW 및 기반 SW 확장 연구를 진행 중에 있다.

협력기관: 삼성전자

Vigilare prototype 구조