연구 소식

경쟁 조건 (Race condition)에 의해 발생하는 보안 취약점 검출 자동화 기법 개발: Linux 운영체제의 알려지지 않은 보안 취약점 다수 발견
작성일2020-10-06 04:39:20

운영체제란 Windows, MacOS, Linux 등 모든 하드웨어와 소프트웨어를 관리하는 소프트웨어로, 사용자의 모든 하드웨어를 조작하고 데이터를 보호하는 매우 강력하고 중요한 소프트웨어이다. 만약 운영체제의 보안 취약점이 해커에게 노출되면 사용자의 모든 데이터의 안전이 위협받기 때문에 운영체제의 보안 취약점을 미리 발견하여 제거하는 것은 매우 중요한 연구 분야이다.

 

우리 전산학부 신인식 교수 연구팀은 서울대학교, purdue university와 공동연구를 진행하여, 경쟁 조건 (race condition)에 의해 발생할 수 있는 운영 체제 보안 취약점을 자동으로 검출하는 기법을 새로이 개발하고, 기존에 알려지지 않았던 약 30개의 새로운 (zero-day) 보안 취약점들을 발견하여 큰 주목을 받았다.

[그림1]

 

그림 1은 경쟁 조건 때문에 보안 취약점이 발생하는 이유에 대한 간략한 설명을 나타낸다.
쓰레드 (Thread)1은 정상적인 실행환경에서는 보안 취약점 (BUG())을 노출하지 않지만 쓰레드 2와 동시에 실행될 때 명령어들이 실행되는 순서에 따라 BUG() 명령어를 실행하게 된다.

 

 

[그림2]

 

그림 2은 개략적인 RAZZER의 설명한다. RAZZER는 먼저 커널의 소스코드를 정적 분석 (Static analysis)하여 경쟁 조건 (race condition)이 발생할 수 있는 명령어들을 파악한다. Fuzzing 단계에서는 가상 머신 (Hypervisor)의 도움을 받아, 정적 분석의 결과에 따라 명령어들의 실행 순서를 조작하면서 경쟁 조건에 의해 발생할 수 있는 취약점들을 발견한다.

 

신인식 교수와 정대룡 박사과정 학생은 RAZZER를 활용하여 최신 버전의 Linux에서 알려지지 않았던 30개의 새로운 보안 취약점을 발견한 후, Linux 운영 체제의 개발자들과 협업을 통해 발견된 보안 취약점들을 제거하여 Linux의 안정성 향상에 기여했다.

 

이러한 성과를 인정받아 이 논문은 보안분야 4대 학회중 하나인 IEEE S&P 2019에 게재되었으며 전체 논문은 이 링크(https://lifeasageek.github.io/papers/jeong:razzer.pdf)를 통해 확인할 수 있다.