Skip to main content
QUICK REVIEW

[논문 리뷰] Software Variants for Hardware Trojan Detection and Resilience in COTS Processors

Mahmudul Hasan, Jonathan Cruz|arXiv (Cornell University)|2021. 12. 01.
Physical Unclonable Functions (PUFs) and Hardware Security인용 수 4
한 줄 요약

이 논문은 COTS 프로세서에 내장된 하드웨어 트로이 목마에 대응하기 위한 소프트웨어 기반 런타임 방어 기법을 제안한다. 컴파일러 기반 변환을 통해 기능적으로 동치인 프로그램 버전을 생성하고, 여러 버전을 실행하여 출력을 비교함으로써 하드웨어 변경 없이도 일시적인 오염을 탐지한다. 평가된 벤치마크에서 측정 가능한 그러나 관리 가능한 런타임 및 코드 크기 오버헤드를 기록하며, 이로 인해 런타임에서의 내성 확보가 가능해진다.

ABSTRACT

The commercial off-the-shelf (COTS) component based ecosystem provides an attractive system design paradigm due to the drastic reduction in development time and cost compared to custom solutions. However, it brings in a growing concern of trustworthiness arising from the possibility of embedded malicious logic, or hardware Trojans in COTS components. Existing trust-verification approaches are typically not applicable to COTS hardware due to the absence of golden models and the lack of observability of internal signals. In this work, we propose a novel approach for runtime Trojan detection and resilience in untrusted COTS processors through judicious modifications in software. The proposed approach does not rely on any hardware redundancy or architectural modification and hence seamlessly integrates with the COTS-based system design process. Trojan resilience is achieved through the execution of multiple functionally equivalent software variants. We have developed and implemented a solution for compiler-based automatic generation of program variants, metric-guided selection of variants, and their integration in a single executable. To evaluate the proposed approach, we first analyzed the effectiveness of program variants in avoiding the activation of a random pool of Trojans. By implementing several Trojans in an OpenRISC 1000 processor, we analyzed the detectability and resilience during Trojan activation in both single and multiple variants. We also present delay and code size overhead for the automatically generated variants for several programs and discuss future research directions to reduce the overhead.

연구 동기 및 목표

  • 기본 모델과 설계 접근성이 없는 상황에서 기존 검증 방법이 실패하는 비신뢰할 수 있는 COTS 프로세서 내 하드웨어 트로이 목마 탐지 및 완화라는 핵심 과제를 해결하기 위해.
  • 하드웨어 복제, 아키텍처 변경, 넷리스트 접근이 필요 없는 런타임 방어 메커니즘을 개발하여 기존 COTS 기반 시스템에 원활하게 통합 가능하도록 하기 위해.
  • 생성된 코드 버전 간의 기능적 및 구조적 다양성을 극대화하여, 여러 버전에서 동시에 트로이 목마가 활성화될 가능성을 줄이기 위해.
  • 실제로 OpenRISC 1000 프로세서에 구현된 트로이 목마를 대상으로, 버전 기반 탐지 및 내성 확보의 효과를 평가하고 오버헤드 및 탐지 가능성 측정하기 위해.
  • 실행 및 코드 크기 오버헤드를 최소화하면서도 강력한 트로이 목마 탐지 및 내성 보장을 유지하는 기법 탐색하기 위해.

제안 방법

  • 컴파일러 기반 자동 생성을 통해 코드 세그먼트(비교 블록)를 기능적으로 동치인 소프트웨어 버전 쌍으로 변환함으로써, 의미적 동치성은 유지하되 오브젝트 코드 및 연산자 순서는 다름을 보장한다.
  • 각 비교 블록은 두 번 실행됨: 첫 번째 버전의 상태를 저장하고, 두 번째 버전의 상태를 그와 비교함; 불일치가 발생하면 트로이 목마 활성화 가능성을 시사한다.
  • 첫 번째 두 버전이 일치하지 않으면 제3의 버전을 실행하고, 세 버전 간의 다수결 투표를 통해 한 버전이 손상되어도 정상 출력을 확보한다.
  • 트로이 목마가 동시에 활성화될 가능성을 최소화하기 위해, 구조적 및 행동적 다양성을 측정하는 $VS$ 메트릭을 사용하여 버전 선택을 유도한다.
  • 시스템() 또는 execl() 시스템 호출을 이용해 버전을 단일 실행 가능 파일에 통합함으로써, 다중 코어 시스템에서 순차적 또는 병렬 실행이 가능하게 하여 런타임 오버헤드를 감소시킨다.
  • 실제 트로이 목마를 OpenRISC 1000 프로세서에 적용하고, CRC32, susan, Triple DES 등의 프로그램을 대상으로 오버헤드 및 탐지 능력을 측정함.

실험 결과

연구 질문

  • RQ1컴파일러 기반 변환을 통해 생성된 기능적으로 동치인 소프트웨어 버전이 비신뢰할 수 있는 COTS 프로세서 내 일시적인 하드웨어 트로이 목마의 페이로드를 효과적으로 탐지할 수 있는가?
  • RQ2버전 간의 오브젝트 코드 및 연산자 순서의 다양성이 동시에 트로이 목마가 활성화될 확률에 어떤 영향을 미치는가?
  • RQ3실제 응용 프로그램에 다수의 버전을 통합할 경우, 런타임 및 코드 크기 오버헤드는 어느 정도인가?
  • RQ4이 방법은 지속적인 오염이나 정보 유출과 같은 더 복잡한 트로이 목마 행동을 탐지하는 데 확장 가능한가?
  • RQ5시스템 호출을 통한 병렬 실행이 다중 코어 환경에서 런타임 오버헤드를 어떻게 감소시킬 수 있는가?

주요 결과

  • 제안된 버전 기반 접근법은 기능적으로 동치인 버전 간의 불일치한 프로그램 상태를 식별함으로써, COTS 프로세서 내 일시적인 하드웨어 트로이 목마 페이로드를 성공적으로 탐지한다.
  • 버전 선택에 $VS$ 메트릭을 사용함으로써, 코드 수준의 다양성을 극대화하여 여러 버전에서 동시에 트로이 목마가 활성화될 가능성을 크게 감소시켰다.
  • 런타임 오버헤드는 벤치마크에 따라 다양함: susan과 Triple DES는 코드 변경이 적어 낮은 오버헤드를 기록했고, CRC32는 버전 실행 후 큰 변수 비교로 인해 높은 오버헤드를 보였다.
  • 실행 시간 오버헤드는 최소에서 중간 수준이었으며, 프로그램과 보호된 변수 수에 따라 평균적으로 증가함을 확인하여, 선택적 보호를 통해 성능 민감한 응용 프로그램에 적용 가능함을 시사했다.
  • 두 버전 간의 불일치가 발생했을 때 다수결 투표를 통해 트로이 목마로 인한 오염을 정상적으로 식별하고 견뎌내는 내성 확보가 가능했음을 입증했다.
  • 향후 연구는 순서 없는 실행 및 사전 실행 프로세서를 고려할 때, 더 낮은 코드 및 런타임 오버헤드를 갖는 다양한 버전을 생성하기 위한 컴파일러 단계 최적화에 초점을 맞춰야 한다.

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

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

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

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