심볼 테이블을 이용한 펌웨어 리눅스 커널 버전 정적 식별 기법

Vol. 32, No. 1, pp. 67-75, 2월. 2022
10.13089/JKIISC.2022.32.1.67, Full Text:
Keywords: Firmware Kernel Version Identification, Static Analysis, Symbol Table, System map, Kallsyms
Abstract

장비 도입 시 해당 장비에 설치된 커널의 정확한 버전을 식별하는 것은 매우 중요하다. 특정 커널 버전에 취약점 이 발견된 경우 이에 대해 조치 여부를 판단하거나, 특정 커널 버전의 제외 또는 포함 등에 대한 도입 요구 조건이 있는 경우 이를 판단하는데 사용될 수 있기 때문이다. 하지만 많은 시스템 및 네트워크 장비 제조업체들은 공식적으 로 배포되고 있는 리눅스 기저 커널을 그대로 사용하지 않고, 장비에 최적화된 펌웨어를 제작하기 위해 커널을 수정 하여 사용하므로 리눅스 커널 버전을 판단하기 어려운 상황이 발생한다. 또한, 커널의 패치가 공개될 경우 제조사는 수정한 커널에 패치 내용을 반영하므로, 이런 과정이 지속될 경우 커스터마이징된 커널은 리눅스 기저 커널과 매우 다른 형상이 된다. 따라서, 특정 파일 존재 여부 등의 단순한 방법으로는 리눅스 커널을 정확히 식별하기 어렵다. 새 로운 리눅스 커널 버전이 공개될 때는 새로운 함수가 포함되기도 하고 기존 함수가 삭제되기도 한다. 본 논문에서는 심볼 테이블에 저장된 함수명을 이용하여 펌웨어 커널 버전의 정적 식별 방안을 제안하고 실험을 통해 그 실효성을 증명하였다. 100개의 리눅스 펌웨어를 대상으로 한 실험에서 99%의 정확도로 리눅스 커널 버전을 식별할 수 있었 다. 본 연구를 통해 펌웨어 이용 환경의 보안성 향상에 기여할 것으로 기대한다.

Statistics
Show / Hide Statistics

Statistics (Cumulative Counts from December 1st, 2017)
Multiple requests among the same browser session are counted as one view.
If you mouse over a chart, the values of data points will be shown.


Cite this article
[IEEE Style]
김광준, 최여정, 김윤정, 이만희, "심볼 테이블을 이용한 펌웨어 리눅스 커널 버전 정적 식별 기법," Journal of The Korea Institute of Information Security and Cryptology, vol. 32, no. 1, pp. 67-75, 2022. DOI: 10.13089/JKIISC.2022.32.1.67.

[ACM Style]
김광준, 최여정, 김윤정, and 이만희. 2022. 심볼 테이블을 이용한 펌웨어 리눅스 커널 버전 정적 식별 기법. Journal of The Korea Institute of Information Security and Cryptology, 32, 1, (2022), 67-75. DOI: 10.13089/JKIISC.2022.32.1.67.