Cellular basebands play a critical role in mobile communication. However, because of the complexity and obscurity of the baseband software, it is significantly challenging to assess their security. Therefore, most previous approaches dynamically analyzed the security of smartphones while assuming the baseband software as a black box. As a result, such approaches may suffer from a lack of implementation details and cannot efficiently generate test cases, resulting in a potential miss of bugs.
In this dissertation, we present a novel baseband analysis approach that compares baseband software implementation and cellular specifications. Our key intuition is that the baseband software may embed parts of cellular specifications in a form of machine-friendly data structures to process cellular protocols; hence, we can statically extract the data structures and compare them with the specification. Leveraging this approach, we analyze two essential parts of baseband software: message decoding and handling routines. Through a manual yet one-time analysis of the baseband software, we first pinpoint the routines from the software. Then, for the decoder routine, we extract the embedded message structures, used for parsing incoming messages, and compare them with the specification. In the case of the handling routine, we extract the message dispatch table and state variables, which are used for selecting proper handler functions for incoming messages, and compare them with the specification. Consequently, we discovered 15 erroneous cases from the baseband software, including three critical 0-days. We believe that our findings demonstrate the significance of software analysis for baseband security.
이동 통신 기술은 일상적으로 사용하는 스마트폰뿐만 아니라 IoT 기기, 자율 주행 자동차와 같은 다양한 시스템에 무선 통신을 제공하기 위해 널리 활용되고 있다. 이 과정에서 베이스밴드 소프트웨어는 이동 통신의 다양한 프로토콜을 처리하는 중요한 역할을 한다. 하지만 이에 대해 공개된 정보가 부족하고 복잡한 구조로 되어 있어서 베이스밴드 소프트웨어의 보안에 대한 연구는 대부분 실제 구현에 대한 분석보다는 동적 분석이 주를 이루었고, 수동 분석에 기반한 단편적인 결과는 있었으나 체계적인 방법에 대한 연구는 부족했다.
본 연구에서는 베이스밴드 소프트웨어의 취약점을 찾기 위한 새로운 분석 방법을 제시한다. 이 방법은 표준에 기반한 개발 과정에서 표준의 일부가 정형화된 데이터로 구현된다는 점에 착안하여 베이스밴드 소프트웨어의 구현과 이동 통신 표준을 비교하여 잘못된 구현을 찾아낸다. 이는 직접 분석을 통해 베이스밴드 소프트웨어의 구조를 파악한 후 적용 가능하며, 이를 베이스밴드 소프트웨어가 이동통신 프로토콜 메시지를 해석하는 과정과 메시지를 상황에 맞게 처리하는 과정의 분석에 적용하였다. 그 결과, 동적 분석에서 발견하지 못했던 3개의 치명적인 취약점을 포함한 15개의 문제점을 발견하였다. 그리고 이러한 분석 결과를 통해 이동 통신 보안 연구에서의 소프트웨어 분석 기술의 필요성을 보여준다.