top of page

LLVM Pass를 통한 Runtime 취약점 탐지



팀명

  트위저

팀원 명단

  노유정 이주영

지도교수

  조은선 교수님

작품 배경 및 목적

  취약점은 시스템 설계, 구현 또는 운영 관리의 결함 또는 약점이다. 이러한 취약점으로 인해 프로그램의 제어 흐름이 변경될 수 있고, 공격자는 이를 이용하여 원하는 코드를 실행하는 것이 가능해지기도 한다. 즉, 단순히 프로그램의 에러로만 남는 것이 아니라 보안 위협을 초래할 수 있다.


C언어 코딩을 하다보면, 메모리 할당과 해제를 할 수 있고, 개발자가 많은 부분을 커스텀하여 개발할 수 있는 언어 특성상 이러한 부분들을 놓쳐서 발생하는 취약점들이 꽤 자주 발생한다. 특히, 버퍼 오버플로(Buffer overflow)는 부적절한 메모리 관리와 관련된 취약점으로, 가장 광범위하고 자주 보고되는 취약점 중 하나이다. CY 2016에서 가장 많이 발생한 취약점 상위 2가지는 CWE-121 (Stack Buffer overflow), CWE-122 (Heap Buffer overflow)이다. FY 2016에서는 Stack 버퍼 오버플로가 가장 빈번한 취약점으로 선정되었으며, Heap 버퍼 오버플로가 4위를 차지했다. 이외에도 Use After Free, Double Free 등 C 코딩에서 특징적으로 자주 발생하는 취약점들이 존재한다.

작품 내용

  버퍼 오버플로를 포함한 취약점을 막기 위하여 메모리 안전성을 보장하는 도구를 제안한다. 코드 조작(code instrumentation)을 통해 각 취약점 탐지를 위한 도구를 원래의 프로그램에 추가하여 메모리 안전성을 보장하여 프로그램 실행 시 버퍼 오버플로가 발생하는 것을 방지한다. 특히, 버퍼 오버플로에 대해서는 메모리의 접근 시 접근 가능한 경계인지 검사하는 도구를 추가한다.

 



조회수 114회댓글 0개

최근 게시물

전체 보기

Comments


bottom of page