TPM을 도입한 프로그램 카운터 인코딩의 구현

An Implementation of Program Counter Encoding with TPM
  • 박수현
  • 표창우
  • 김선일
  • 이경호

초록

프로그램 카운터 인코딩은 스택 스매슁을 비롯한 아직 알려지지 않은 코드 포인터에 대한 공격까지도 막을 수 있는 방법으로서, 코드 포인터 값을 저장할 때에는 암호화 하고, 프로그램 카운터 값이 프로그램 카운터로 적재되기 직전에는 복호화 하는 방식이다. 프로그램 카운터 인코딩의 신뢰도는 암호화 할 때 사용하는 키 값과 키 저장 위치의 안전성에 의해 결정된다. 본 논문에서는 프로그램 카운터 인코딩의 키의 신뢰성을 강화하기 위해 신뢰성 컴퓨팅 그룹(Trusted Computing Group)의 TPM(Trusted Platform Module)을 도입한 구현 사례를 제시하고, 평가하였다. 스택과 힙에서 버퍼 오버플로우나 포맷 스트링을 이용한 반환 주소에 대한 모의 공격은 모두 방어할 수 있음이 검증되었다. 본 논문에서 구현한 방법은 SPEC CPU2006을 사용한 성능 시험에서는 3% 정도의 과부하를 보였다. 구현 방법은 TPM의 성능 부담과 보안 신뢰성을 고려하여 제안하였다.

키워드

프로그램 카운터 인코딩TPM코드포인터컴파일러Program counter encodingTPMcode pointercompiler
제목
TPM을 도입한 프로그램 카운터 인코딩의 구현
제목 (타언어)
An Implementation of Program Counter Encoding with TPM
저자
박수현표창우김선일이경호
발행일
2011
저널명
정보과학회 컴퓨팅의 실제 논문지
17
1
페이지
13 ~ 19