연구 소식

HFL: Hybrid Fuzzing on the Linux Kernel
작성일2020-02-25 01:07:31

소트프웨어에 존재하는 버그(bug)는 예상치 못 한 문제를 야기할 뿐만 아니라, 심각한 보안 결함으로 이어질 수 있기 때문에 소프트웨어를 배포하기 전에 미리 찾아내어 제거하는것이 매우 중요하다. 특히, 윈도우와 같은 운영체제에 존재하는 버그가 악용될 경우, 운영체제 위에서 동작하는 모든 소프트웨어가 보안 위협에 노출될 수 있기 때문에 많은 연구자들이 효과적으로 운영체제의 버그를 찾기 위한 기술 개발에 노력을 기울이고 있다. 정보보호대학원 소속 신인식 교수의 연구진은 Purdue university, NEC laboratories America, Oregon university, 서울대학교와 공동연구를 진행하여 운영체제에서 자동으로 버그를 찾기 위한 새로운 기술인 HFL을 발표하여 효율성을 입증하였다.

 

 

Hybrid fuzzing 기법은 무작위성 소프트웨어 테스팅 기법인 fuzzing과 조건문을 통과하는 입력을 자동으로 생성하는 symbolic execution의 장점을 취한 기법으로, 다양한 최신 연구를 통해 버그를 자동으로 찾는데 효과적임이 입증되었다. 하지만 hybrid fuzzing을 운영체제에 적용할 경우, 운영체제 특유의 성질과 복잡성때문에 다른 소프트웨어에 적용했을때에 비해서 hybrid fuzzing의 효율성이 저하되는 문제점을 보인다.

 

신인식 교수의 연구진이 참여한 공동 연구진은 운영체제의 특유의 성질인 함수 포인터에 의한 indirect control flow, 시스템 콜 사이의 종속성, 시스템 콜 인자의 중첩 구조를 파악하는 기법을 개발하고, 이를 fuzzing 툴인 Syzkaller, symbolic execution 툴인 S2E와 결합하여 HFL이라는 새로운 hybrid fuzzing 툴을 개발했다. 이를 통해 기존의 hybrid fuzzing의 성능을 저하시키던 문제들을 해결하여 운영체제에서도 hybrid fuzzing의 장점들을 누릴 수 있게 되었다. 

 

또한, 공동 연구진은 HFL 툴을 오픈소스 운영체제인 리눅스에 적용하여 기존에 알려지지 않았던 24개의 새로운 보안 취약점을 찾아내었고, 발견한 취약점들을 리눅스 개발 커뮤니티에 보고, 제거하여 리눅스의 안정성 향상에 기여하였다.

 

본 연구 결과는 컴퓨터 보안 분야의 최고 학회인 NDSS 2020에 논문으로 발표되었고, HFL 툴 또한 github에 공개될 예정이다.