연구 소식

SegFuzz: 커널 동시성 버그 탐지를 위한 퍼징 기법
작성일2023-07-03 03:04:22

정보보호대학원 신인식 교수 연구팀과 권영진 교수 연구팀은 커널의 동시성 버그 (예: race condition)를 효과적으로 탐지하기 위한 퍼징 기법인 SegFuzz를 공동 연구 개발했다.

 

해당 연구는 서울대학교와 공동으로 진행되었으며 2023년 5월 컴퓨터 보안분야 최우수 학회 중 하나인 S&P에 발표되었다. 공동 연구진은 본 연구를통해 리눅스 커널에서 21개의 동시성 버그를 탐지하여 리눅스 커널의 보안 및 안정성 향상에 기여하였다.

 


<그림 1: (a) 전체 스레드 인터리빙 (thread interleaving), (b) 인터리빙 조각 (interleaving segment)>


커널 동시성 버그는 잘못된 락 (lock) 사용 등으로 인해 커널의 여러 스레드 또는 프로세스가 예상하지 못한 순서로 공유 리소스에 액세스할 때 발생하며, 커널에서 동시성 버그는 데드락 (dead lock), 데이터 손상 또는 보안 취약점을 유발할 수 있다. 최근 커널의 취약점 탐지 기법으로 매우 각광받고 있는 퍼징 (fuzzing) 기법은 이러한 동시성 버그를 탐지하는데 한계점을 가지고 있었다.


본 연구는 대부분의 동시성 버그들이 4개 이하의 메모리 접근에 의해 발생한다는 기존 연구 결과에 착안할 때, 퍼징 기법이 보다 효과적으로 동시성 버그를 탐지할 수 있음을 보였다. SegFuzz는 수많은 명령어들의 스레드 인터리빙 (스레드 interleaving)을 탐색하는 대신, 3~4개의 명령어들의 작은 인터리빙 조각 (interleaving segment)을 탐색함으로써 탐색 영역의 크기를 효과적으로 줄일 수 있다. 이를 통해 SegFuzz는 기존 연구들보다 4배 이상 빠른 속도로 동시성 버그를 찾을 수 있었다.


해당 논문은 IEEE의 digital library (https://www.computer.org/csdl/proceedings-article/sp/2023/933600c104/1NrbZrWlldK)에서 확인 가능하다.