본문 바로가기
KERD
논문KCI 등재

리눅스 커널 변수 취약성에 대한 소스레벨 발견 방법론

A Source-Level Discovery Methodology for Vulnerabilities of Linux Kernel Variables

0

조회

0

다운로드

0

인용

0

참고문헌

주제분류컴퓨터학

초록

오늘날 리눅스 운영체제는 임베디드 시스템, 라우터, 대규모 서버에 이르기까지 다양한 분야에 사용되고 있다. 이는 리눅스 운영체제가 추구하는 커널 소스 공개 정책이 시스템 개발자들에게 여러 가지 이점을 주기 때문이다. 하지만 시스템 보안 측면에서 볼 때, 리눅스 커널 소스 공개는 보안상 문제점을 발생시킬 수 있는데, 만일 누군가가 리눅스 기반의 시스템을 공격하려 한다면 그 공격자는 리눅스 커널의 취약성을 이용하여 쉽게 시스템을 공격할 수 있기 때문이다. 현재까지 소프트웨어의 취약성을 분석하는 방법은 많이 있었지만 기존의 방법들은 방대한 크기의 리눅스 커널 소스에서 취약성을 발견하기에 적합하지 않다. 본 논문에서는 소스레벨 리눅스 커널 변수 취약성을 발견하는 방법론으로 Onion 메커니즘을 제안한다. Onion 메커니즘은 두 단계로 이루어져 있는데, 첫 번째 단계는 패턴매칭 방법을 이용하여 취약 가능성이 있는 변수들을 선정하는 단계이고, 두 번째 단계는 선정된 변수들의 취약 여부를 시스템 콜 트리를 이용해 검사하는 단계이다. 또한 본 논문에서 제안한 방법론을 이미 알려진 두 가지 소스레벨 취약성에 적용한 결과를 보인다.

Abstract

In these days, there are various uses of Linux such as small embedded systems, routers, and huge servers, because Linux gives several advantages to system developers by allowing to use the open source code of the Linux kernel. On the other hand, the open source nature of the Linux kernel gives a bad influence on system security. If someone wants to exploit Linux-based systems, the attacker can easily do it by finding vulnerabilities of their Linux kernel sources. There are many kinds of existing methods for finding source-level vulnerabilities of softwares, but they are not suitable for finding source-level vulnerabilities of the Linux kernel which has an enormous amount of source code. In this paper, we propose the Onion mechanism as a methodology of finding source-level vulnerabilities of Linux kernel variables. The Onion mechanism is made up of two steps. The first step is to select variables that may be vulnerable by using pattern matching mechanism and the second step is to inspect vulnerability of each selected variable by constructing and analyzing the system call trees. We also evaluate our proposed methodology by applying it to two well-known source-level vulnerabilities.

참고문헌 (24)

  1. "“공개된 소스레벨 운영체제 취약성 현황 분석", 11(2) (2004)
  2. "an Infrastructure for Examining Security Properties of Software", pp.18~22 (2002)
  3. "A survey of software fault surveys University of Illinois at Urbana-Chamaign" (1990)
  4. "A Theory of Type Qualifiers", pp.192~203
  5. "The Rising Threat of Vulnerabilities Due to Integer Errors", pp.77~82 (2003)
  6. "Toward a Secure System Engineering Methodology" (1998), New Security Paradigms Workshop,
  7. "Maintainability of the Linux Kernel" (2002)
  8. "Using CQUAL for Static Analysis of Authorization Hook Placement" (2002)
  9. "Methods for The Prevention Detection and Removal of Software Security Vulnerabilities" (2004)
  10. "A Static Vulnerability Scanner for C and C++ Code ”" (2000)
  11. "Checking System Rules Using System-Specific, Programmer- Written Compiler Extensions" (2000)
  12. "Using Programmer-Written Compiler Extensions to Catch Security Holes" (2002)
  13. "Rist Management using Behavior based Attack Graphs" (2004)
  14. "취약 원인에 따른 리눅스 커널 취약성 분류법", 5(2), pp.127~130
  15. "Maintaining Software with a Security Perspective" (2002)
  16. "Experimental Analysis of the Errors Induced into Linux by Three Fault Injection Techniques" (2002)
  17. "Token-Based Scanning of Source Code for Security Problems", 5(3), pp.238~261
  18. "Testing for Software Vulnerability Using Environment Perturbation International Conference on Dependable Systems and Networks", pp.603~612 (2000)
  19. "Operating System Enhancements to Prevent the Misuse of System Calls", pp.174~183 (2000), ACM Press
  20. "A Taxonomy of Computer Program Security Flaws", 26(3), pp.211~254 (1994)
  21. "Understanding the Linux Kernel" (2003), O'Reilly
  22. "Yacc: Yet Another Compiler Compiler" (1975), Murray Hill
  23. "A Critical Analysis of Vulnerability Taxonomies", 11 (1996)
  24. "Consistency Analysis of Authorization Hook Placement in the Linux Security Modules Framework", 7(2), pp.175~205

관련 논문AI추천

이 간행물의 다른 논문 (5건)