Skip to main content
QUICK REVIEW

[논문 리뷰] Identifying Cache-Based Side Channels through Secret-Augmented Abstract Interpretation

Shuai Wang, Yuyan Bao|arXiv (Cornell University)|2019. 05. 30.
Security and Verification in Computing참고 문헌 84인용 수 9
한 줄 요약

이 논문은 실세계 암호화 바이너리에서 캐시 기반 사이드 채널을 탐지하기 위해 비밀 정보를 보다 정교하게 추적하고 공개 데이터를 근사적으로 처리하는 데 사용되는 새로운 추상 도메인인 비밀 보강 기반 기호적(Secret-Augmented Symbolic, SAS)을 사용하는 정적 분석 도구인 CacheS를 제안한다. 비밀 정보의 세밀한 추적과 공개 데이터의 거친 과잉 근사화를 조합함으로써 CacheS는 확장성 있고 정밀하며 전역적인 상호프로시저 분석을 가능하게 하여 OpenSSL, Libgcrypt, mbedTLS에서 이전에 알려지지 않은 54개의 정보 유출을 발견한다.

ABSTRACT

Cache-based side channels enable a dedicated attacker to reveal program secrets by measuring the cache access patterns. Practical attacks have been shown against real-world crypto algorithm implementations such as RSA, AES, and ElGamal. By far, identifying information leaks due to cache-based side channels, either in a static or dynamic manner, remains a challenge: the existing approaches fail to offer high precision, full coverage, and good scalability simultaneously, thus impeding their practical use in real-world scenarios. In this paper, we propose a novel static analysis method on binaries to detect cache-based side channels. We use abstract interpretation to reason on program states with respect to abstract values at each program point. To make such abstract interpretation scalable to real-world cryptosystems while offering high precision and full coverage, we propose a novel abstract domain called the Secret-Augmented Symbolic domain (SAS). SAS tracks program secrets and dependencies on them for precision, while it tracks only coarse-grained public information for scalability. We have implemented the proposed technique into a practical tool named CacheS and evaluated it on the implementations of widely-used cryptographic algorithms in real-world crypto libraries, including Libgcrypt, OpenSSL, and mbedTLS. CacheS successfully confirmed a total of 154 information leaks reported by previous research and 54 leaks that were previously unknown. We have reported our findings to the developers. And they confirmed that many of those unknown information leaks do lead to potential side channels.

연구 동기 및 목표

  • 실세계 암호 시스템에서 높은 정밀도, 완전한 커버리지, 확장성을 확보하면서 캐시 기반 사이드 채널을 탐지하는 데 도전하는 것.
  • 낮은 커버리지, 낮은 정밀도 또는 낮은 확장성으로 인해 약점이 있는 기존 정적 및 동적 분석 도구의 한계를 극복하는 것.
  • 대규모이고 프로덕션 수준의 암호 구현에서 사이드 채널 취약점을 실용적으로 탐지할 수 있도록 하는 것.
  • 기본 소스의 비밀 정보 기반 표현을 기반으로 제약 조건 해결을 통해 반례를 생성함으로써 디버깅을 효과적으로 지원하는 것.

제안 방법

  • 비밀 정보와 그 데이터 의존성의 세밀한 추적을 가능하게 하는 비밀 보강 기반 기호적(Secret-Augmented Symbolic, SAS) 추상 도메인을 도입한다.
  • 정밀한 정보 유출 탐지를 위해 추상 값의 기호적 표현을 사용하여 제약 조건 해결을 가능하게 한다.
  • SAS를 사용한 추상 해석을 적용하여 바이너리 코드의 컨텍스트 민감한 상호프로시저 분석을 수행한다.
  • 확장성을 확보하면서도 비밀 정보에 의존하는 경로에서 정밀도를 유지하기 위해 공개 값을 과잉 근사화한다.
  • 성능 최적화를 위해 경량이지만 타당하지 않은 메모리 모델링을 사용하되, 정보 유출 탐지의 타당성은 손상시키지 않는다.
  • 제약 조건 해결을 통합하여 디버깅을 위한 구체적인 반례를 생성함으로써 도구의 사용성을 향상시킨다.

실험 결과

연구 질문

  • RQ1정적 분석 접근 방식이 실세계 암호 시스템에서 캐시 기반 사이드 채널을 탐지할 때 높은 정밀도와 완전한 커버리지 모두를 달성할 수 있는가?
  • RQ2추상 해석은 어떻게 대규모 바이너리에까지 확장되면서도 비밀 정보에 의존하는 동작의 정밀도를 유지할 수 있는가?
  • RQ3추상 도메인 내에서의 기호적 추론은 탐지 외에도 효과적인 디버깅을 위한 반례 생성을 가능하게 할 수 있는가?
  • RQ4SAS와 같은 새로운 추상 도메인이 기존 도메인보다 알려지지 않은 사이드 채널 유출을 탐지하는 데 얼마나 뛰어나게 성능을 발휘할 수 있는가?

주요 결과

  • CacheS는 OpenSSL, Libgcrypt, mbedTLS에서 이전에 보고된 154개의 정보 유출을 성공적으로 확인했다.
  • 연구 공동체가 이전에 알지 못했던 54개의 새로운 정보 유출 지점을 발견했다.
  • 295,000개 이상의 명령어를 포함한 바이너리에서 CacheS는 0.5 CPU 시간 이내에 전체 컨텍스트 민감한 상호프로시저 분석을 수행했다.
  • 모든 208개의 유출 지점에서 유일한 가짜 경고 하나만 보고하여 높은 정밀도를 입증했다.
  • 분석은 실세계 암호 시스템을 처리할 수 있을 정도로 확장성 있었으며, 이전 도구인 CacheAudit와 CacheD보다 커버리지와 성능 면에서 뛰어났다.
  • 영향을 받은 라이브러리 개발자들이 새로 발견된 많은 유출이 실제 사이드 채널 위협을 야기할 수 있음을 확인했다.

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

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

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

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