KR100560166B1 - 실시간 버퍼 오버플로우 해킹 탐지 방법 - Google Patents

실시간 버퍼 오버플로우 해킹 탐지 방법 Download PDF

Info

Publication number
KR100560166B1
KR100560166B1 KR1020010076442A KR20010076442A KR100560166B1 KR 100560166 B1 KR100560166 B1 KR 100560166B1 KR 1020010076442 A KR1020010076442 A KR 1020010076442A KR 20010076442 A KR20010076442 A KR 20010076442A KR 100560166 B1 KR100560166 B1 KR 100560166B1
Authority
KR
South Korea
Prior art keywords
system call
call
hack
determined
list
Prior art date
Application number
KR1020010076442A
Other languages
English (en)
Other versions
KR20030046581A (ko
Inventor
최양서
서동일
손승원
박치항
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020010076442A priority Critical patent/KR100560166B1/ko
Publication of KR20030046581A publication Critical patent/KR20030046581A/ko
Application granted granted Critical
Publication of KR100560166B1 publication Critical patent/KR100560166B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Abstract

본 발명에 따른 실시간 버퍼 오버플로우 해킹 탐지 방법은, 미리 결정된 프로그램 목록에 속하는 프로그램으로부터 시스템 콜이 발생되면, 발생된 시스템의 콜의 발생 위치를 추출하고, 추출된 시스템 콜 발생 위치와 시스템 콜 자체를 이용한 기 결정된 해킹으로 판단될 수 있는 시스템 콜과 비교 분석하여 발생된 시스템 콜이 해킹으로 판단될 수 있는 시스템 콜에 포함되는 경우 해킹으로 판단하여 해당 프로그램을 정지시키고 관리자에게 경보를 보내는 것이다. 따라서, 버퍼 오버플로우 취약점을 가지고 있는 프로그램을 사용하더라도 해킹 시도를 실시간으로 탐지하여 방어할 수 있으며, 알려지지 않은 응용 프로그램에 대한 해킹 역시 스택 영역에서 수행되는 경우 탐지할 수 있어 버퍼 오버플로우 해킹 시도를 효과적으로 방지할 수 있는 것이다.또한, 시스템 해킹시 가장 널리 사용되고 있는 버퍼 오버플로우 해킹을 방지함으로써, 보다 안전하고 높은 수준의 시스템 보안 강도를 유지할 수 있는 것이다.
오버플로우, 버퍼, 실시간, 해킹, 탐지, 시스템콜,컴파일러, 클래스

Description

실시간 버퍼 오버플로우 해킹 탐지 방법{Method for detecting hacking of realtime buffer overflow}
도 1은 일반적인 하드웨어 시스템에 대한 블록 구성을 나타낸 도면.
도 2는 버퍼 오버 플로우 해킹 문제를 설명하기 위한 일반적인 프로그램 수행시 프로그램에 할당되는 메모리 구조를 나타낸 도면.
도 3은 일반적인 버퍼 오버플로우 공격 기법을 설명하기 위한 메모리 구조를 나타낸 도면.
도 4는 본 발명에 따른 실시간 버퍼 오버플로우 해킹 탐지 방법을 구현하기 시스템 상태를 나타낸 도면.
도 5는 본 발명에 따른 실시간 버퍼 오버플로우 해킹 탐지 방법에 동작 플로우챠트를 나타낸 도면.
*도면의 주요 부분에 대한 부호의 설명*
350 : 공격 결정 클래스 360 : 시스템 콜 탐지 엔진
370 : 시스템 콜 주소 추출 모듈
본 발명은 실시간 버퍼 오버플로우 해킹 탐지 방법에 관한 것으로서, 특히 시스템 내부에서 발생되는 시스템 콜의 발생 위치를 실시간으로 분석하고, 알려지지 않은 응용 프로그램에 대해 취약하다고 판단된 시스템 콜을 사용할 경우 탐지가 가능하도록 함으로써, 시스템에 대한 버퍼 오버 플로우 해킹 시도를 탐지하고 방어할 수 있도록 한 실시간 버퍼 오버플로우 해킹 탐지 방법에 관한 것이다.
일반적으로 전산망을 이용하는 모든 이용자들에게는 전산망에 자신이 접근할 수 있는 권한 영역이 정해져 있다. 그러나, 이러한 이용자들이 이용할 수 있도록 허락한 소프트웨어 내부에 버퍼가 오버플로우될 수 있는 결함이 존재하게 되면, 고의로 조작된 값을 결함이 존재하는 소프트웨어에 입력시킴으로서, 권한 밖의 명령을 수행하거나 보다 상위의 이용 권한을 획득하여 허가되지 않은 작업을 수행하여 불법으로 정보를 취득하고 시스템을 파괴 또는 변조할 수 있다.
도 1은 일반적인 하드웨어 시스템에 대한 블록 구성을 나타낸 도면으로서, 중앙 처리 장치(11), 중앙 처리 장치(11)에 연결된 주 기억 장치(12), 주 기억 장치(12)에 연결된 보조 기억 장치(13), 중앙 처리 장치(11)에 연결된 입력 장치(14) 및 출력 장치(15)를 구비한다.
여기서, 하드웨어 시스템은, 컴퓨터의 전체 동작을 제어하고, 관리하는 중앙 처리 장치(11), 상기 중앙 처리 장치(11)에서 수행되는 프로그램을 저장하고 작업 수행 중 이용되는 또는 작업 수행중에 발생되는 각종 데이터를 저장하는 주 기억장치(12)와 보조 기억장치(13) 및 사용자와 데이터 입출력을 위한 입출력장치(14, 15)를 포함한다.
그리고, 보조 기억 장치(13)는 대량의 데이터를 저장하는 역할을 하며, 상기 입출력 장치(14, 15)는 일반적인 키보드, 디스플레이장치 및 프린터 등을 포함한다.
상기와 같은 하드웨어 시스템의 주 기억 장치(12)에는 소프트웨어 내부에 존재하는 버퍼 오버 플로우가 일어날 수 있는 결함을 이용하는 해킹을 막기 위해 버퍼 오버플로우의 결함을 미리 검출하기 위한 프로그램이 저장되어 있으며, 중앙 처리 장치(11)의 제어에 따라 수행된다.
상기한 버퍼 오버 플로우의 결함을 검출하는 기존의 방법에 대해서는 국내특허출원 1999-058299호 상세하게 제시되어 있다.
상기 제시된 종래 기술에 대하여 간단하게 살펴보기로 하자.
먼저, 점검할 소스 파일 이름을 입력 받아 점검할 변수를 리스트로 작성하여 관리하고, 상기 리스트에 있는 변수를 사용하였는지를 검사한다.
그리고, 사용자로 부터 입력된 문자열 변수의 크기를 점검하는지를 추적하여 프로그램 내의 버퍼 오버플로우에 대한 결함 존재 유무를 검출하게 되는 것이다.
이러한 종래의 방법은, 버퍼 오버플로우를 이용한 해킹을 막기 위해 프로그램 제작 후 소스 코드에 대해 고의적 버퍼 오버플로우가 일어날 수 있는 부분을 미리 검출함으로써, 소프트웨어 테스트 단계의 여러 측면에서 치명적인 버퍼 오버플 로우 결함을 미리 찾아내어 이로 인한 패치 비용을 절감하고, 해당 소프트웨어의 이미지 실추를 방지할 수 있는 것이다.
그러나, 이러한 방법은 프로그램 소스 코드를 통해 버퍼 오버플로우 취약점을 가지고 있는 함수의 사용 여부를 확인하여 판단하는 방식으로 버퍼 오버플로우 방지를 수행하기 위해서는 프로그램 소스 코드가 필요하고, 프로그램 수행중에 발생하는 실시간 버퍼 오버플로우 해킹을 방지하는 것이 불가능하다는 문제점을 안고 있다.
따라서, 본 발명은 상기한 종래 기술에 따른 문제점을 해결하기 위하여 안출한 것으로, 본 발명의 목적은, 시스템 내부에서 발생되는 시스템 콜의 발생 위치를 실시간으로 분석하고, 알려지지 않은 프로그램에 대해 버퍼 오버플로우 취약점을 이용한 해킹 탐지가 가능하도록 함으로써, 시스템에 대한 버퍼 오버 플로우 해킹 시도를 탐지하고 방어할 수 있도록 한 실시간 버퍼 오버플로우 해킹 탐지 방법을 제공함에 있다.
특히, 시스템 콜의 메모리상의 위치를 오직 현재 발생한 시스템 콜만을 수집하여 분석하기 때문에 지속적으로 관리해야 하는 시스템 콜의 개수가 단위 시간에 오직 1개 뿐이고 알려지지 않은 버퍼 오버플로우 해킹에 대한 방지가 가능하도록 한 방법을 제공하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 실시간 버퍼 오버플로우 해킹 탐지 방법의 일측면에 따르면, 시스템 콜 호출이 발생한 경우, 발생된 시스템 콜을 입력으로 하여 발생된 시스템 콜의 발생 위치(주소)를 추출하는 단계; 시스템 콜 호출 위치가 추출되면, 추출된 주소(위치)와 정상적인 프로세스 메모리 영역을 비교하여 시스템 콜 호출이 메모리의 스택 영역에서 발생하였는지를 판단하는 단계; 판단 결과, 시스템 콜 호출이 메모리의 스택 영역에서 발생한 경우, 기 설정된 해킹으로 판단할 수 있는 시스템 콜 목록과 비교하여, 해킹으로 판단할 수 있는 시스템 콜 목록에 포함되어 있는 시스템 콜인지를 판단하는 단계; 상기 판단 결과, 시스템 콜이 해킹으로 판단할 수 있는 시스템 콜 목록에 포함되는 경우 시스템 관리자에게 경보를 제공하는 단계를 포함할 수 있다. 여기서, 상기 정상적인 프로세스 메모리영역은, 상기 취약점을 자기고 있을 것으로 판단되는 프로그램 목록에 속하는 각각의 프로그램이 사용하는 메모리 영역이 될 수 있다.
또한, 취약점을 가지고 있을 것으로 판단되는 시스템 프로그램 목록과, 해킹으로 판단할 수 있는 시스템 콜 목록을 각각 결정하여 저장하는 단계를 더 포함할 수 있다.
또한, 본 발명에 따른 실시간 버퍼 오버플로우 해킹 탐지 방법의 다른 측면에 따르면, 취약하다고 판단되는 프로그램 및 서비스 목록을 작성하는 단계; 결정된 프로그램 및 서비스가 사용하는 메모리 주소에 대한 정보를 작성하는 단계; 해킹으로 판단할 수 있는 시스템 콜 목록을 작성하는 단계; 프로그래밍 의해 발생된 시스템 콜로 부터 시스템 콜의 메모리 상에서 위치를 추출하는 기능을 작성하는 단계; 상기 단계들에서 작성한 내용과 시스템 콜 모니터링 엔진을 병합시키는 단계; 병합된 결과를 이용하여 발생된 시스템 콜에 대한 해킹 여부를 탐지하는 단계를 더 포함한다.
한편, 본 발명에 따른 실시간 버퍼 오버플로우 해킹 탐지 방법을 수행하기 위하여 디지털 처리장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 디지털 처리장치에 의해 판독될 수 있는 기록 매체의 일 측면에 따르면, 시스템 콜 호출이 발생한 경우, 발생된 시스템 콜을 입력으로 하여 발생된 시스템 콜의 발생 위치(주소)를 추출하는 단계; 시스템 콜 호출 위치가 추출되면, 추출된 주소와 기 설정된 취약점을 자기고 있을 것으로 판단되는 프로그램 목록에 속하는 각각의 프로그램이 사용하는 메모리 영역을 비교하여 시스템 콜 호출이 메모리의 스택 영역에서 발생하였는지를 판단하는 단계; 판단 결과, 시스템 콜 호출이 메모리의 스택 영역에서 발생한 경우, 기 설정된 해킹으로 판단할 수 있는 시스템 콜 목록과 비교하여, 해킹으로 판단할 수 있는 시스템 콜 목록에 포함되어 있는 시스템 콜인지를 판단하는 단계; 상기 판단 결과, 시스템 콜이 해킹으로 판단할 수 있는 시스템 콜 목록에 포함되는 경우 시스템 관리자에게 경보를 제공하는 단계를 수행한다.
이하, 본 발명에 따른 실시간 버퍼 오버플로우 해킹 탐지 방법에 대한 바람 직한 실시예에 대하여 첨부한 도면을 참조하여 상세하게 살펴보기로 하자.
도 2는 버퍼 오버플로우 해킹 문제를 설명하기 위한 일반적인 프로그램 수행시 프로그램에 할당되는 메모리 구조를 나타낸 도면이고, 도 3은 일반적인 버퍼 오버플로우 공격 기법을 설명하기 위한 메모리 구조를 나타낸 도면이다.
도 2에 도시된 바와같이 프로그램이 메모리에 적재되어 수행되어질 경우, 프로그램의 실행 코드들은, 프로그램 코드 영역 즉, TEXT 영역에 적재되고, 전역 변수 및 상수들은 DATA영역에 적재된다.
또한, 정적 변수들은 BBS 영역에 적재되고, 동적으로 할당되는 변수들은 힙 영역에 할당된다.
스택 영역은 프로그램 수행중에 호출되는 함수들에서 사용되는 지역 변수와 함수 호출 및 복귀에 사용되는 정보들이 저장된다.
프로그램의 실제 수행시 스택 영역 확인을 위한 예제 프로그램은 아래의 알고리즘과 같다.
void function(char *str)
{
char buffer[8];
strcpy(buffer, str);
}
int main(void)
{
char str[512];
gets(str);
function(str);
}
상기한 C 언어 코드의 경우 도 3과 같은 스택 메모리 구조를 갖게 된다.
즉, 도 3에 도시된 바와 같이, main함수의 지역 변수인 char str[512];는 main함수의 스택영역에 저장되어 있다.
그리고, 함수 function이 호출될 때, 함수 function의 인자로서 function 함수의 스택 영역에 str[512] 배열의 주소가 전달된다. 함수 function의 스택 영역에는 char Buffer[8];의 지역 변수가 존재하고 있다. 이때, str의 크기는 512바이트인 반면 buffer의 크기는 8바이트이다.
따라서, 512바이트의 내용이 8바이트의 크기에 덮어 써지게 되는 경우, function함수의 스택 영역에 포함되어 있는 복귀 주소 역시 덮어 써지게 된다.
function함수의 실행이 완료되면, 최초 function 함수가 호출된 곳으로 프로그램의 흐름이 되돌아 가야하는데, 저장되어 있던 복귀 주소가 변경됨으로 해서 정상적인 메모리 영역으로 복귀할 수 없게 된다. 이때, 덮어 쓰게되는 str[512]의 내용 중 복귀 주소를 덮어 쓸 부분을 잘 조정하여 원하는 곳으로 프로그램 흐름이 이동하도록 지정하면, 원하는 명령을 수행할 수 있게 된다.
흔히 공격자들은 수행하고자 하는 명령을 포함하는 쉘 코드(shell code: 공격 코드)를 작성하여 사용자의 입력이 원하는 명령을 수행하도록 한다. 이것이 가 장 전형적인 버퍼 오버플로우 공격 기법이다. 이때 모든 공격자가 삽입하는 명령은 스택 영역에 위치한 변수에 저장된다는 것을 알 수 있다. 따라서, 공격자가 삽입하여 수행하는 명령은 스택 영역상에서 수행되기 때문에 실행되는 명령이 스택 영역에서 수행되는지를 확인할 수 있다면, 버퍼 오버플로우 해킹임을 판단할 수 있게 된다.
이러한 해킹을 탐지하고, 방어하기 위한 본 발명에 따른 실시간 버퍼 오버플로우 해킹 탐지 방법에 대하여 살펴보기로 하자.
도 4는 본 발명에 따른 실시간 버퍼 오버플로우 해킹 탐지 시스템 및 그 방법을 구현하기 시스템 상태를 나타낸 도면이다.
도 4에 도시된 바와 같이, 시스템 콜 탐지 엔진(360)은 네트워크를 통해 시스템 외부에서 내부로 침입할 수 있는 개방된 서비스를 제공하는 데몬(Demon) 프로그램과 기 발표된 버퍼 오버플로우 취약점을 포함하고 있는 취약 판단 프로그램들로 구성된 목록 즉, 취약점을 가지고 있을 것으로 판단되는 프로그램 목록 P(310)와 목록 P에 포함되는 각각의 프로그램들에 대해 실제 실행시 할당되는 메모리 영역을 확인하여 얻어낸 메모리 정보 M 즉, 프로그램 목록 P에 속하는 각각의 프로그램이 사용하는 메모리 영역에 대한 정보(320), 그리고 각종 해킹 코드 및 해킹 문서 등을 통해 얻을 수 있는 해킹에 성공하기 위해 수행되어야만 하는 각종 명령들이 수행되어질 때 발생하는 해킹으로 판단되는 시스템 콜 목록 즉, 해킹으로 판단되는 취약한 시스템 콜 목록 S(330)를 병합하여 공격 결정 클래스(350)를 작성하게 된다.
공격 결정 클래스(350)는 일반 C++ 프로그램에서 사용하는 클래스로 C++ 컴파일러를 통해 컴파일 시킬 수 있는 소스 형태이다.
공격 결정 클래스(350)와 시스템 콜 탐지 엔진 구조(340), 그리고 발생되는 시스템 콜의 호출 위치를 확인할 수 있는 시스템 콜 발생 시스템 콜 주소 추출 모듈(370)을 병합하여 컴파일러를 통해 시스템 콜 탐지 엔진(360)을 구성한다.
이렇게 구성된 시스템 콜 엔진(360)은 온라인 시스템 상에서 버퍼 오버플로우 해킹 탐지의 핵심 모듈이 된다.
이러한 구성을 갖는 시스템을 이용한 본 발명에 따른 실시간 버퍼 오버플로우 해킹 탐지 및 이를 방어하기 위한 방법에 대하여 도 5를 참조하여 단계적으로 설명해 보기로 하자.
도 5는 본 발명에 따른 실시간 버퍼 오버플로우 해킹 탐지 및 이를 방어하기 위한 방법에 동작 플로우챠트를 나타낸 도면이다.
도 5에 도시된 바와 같이, 실시간 버퍼 오버플로우 해킹 탐지 및 이를 방어하기 위한 방법은, 먼저 시스템 콜 호출이 발생하였는지를 판단한다(S401). 즉, 시스템 콜 호출이 발생할 때 까지 시스템 콜 탐지 엔진은 대기한다.
판단 결과, 시스템 콜 호출이 발생한 경우, 발생된 시스템 콜을 입력으로 하여 발생된 시스템 콜의 발생 위치(주소)를 추출한다(S402).
이어, 시스템 콜 호출 위치가 추출되면, 추출된 주소(위치)와 정상적인 프로세스 메모리 영역과 비교한다(S403).
비교 결과, 시스템 콜 호출이 메모리의 스택 영역에서 발생하였는지를 판단 한다(S404).
판단 결과, 시스템 콜 호출이 메모리의 스택 영역에서 발생한 경우, 해킹으로 판단할 수 있는 시스템 콜 목록과 비교하여(S405), 해킹으로 판단할 수 있는 시스템 콜 목록에 포함되어 있는 시스템 콜인지를 판단하게 되는 것이다(S406).
그러나, 상기 S404단계에서, 시스템 콜 호출이 메모리의 스택 영역에서 발생하지 않았을 경우에는 시스템 콜을 정상적으로 처리한다(S407).
상기 판단 결과, 시스템 콜이 해킹으로 판단할 수 있는 시스템 콜 목록에 포함되는 경우 해당 프로세스에 대한 정보를 시스템 관리자에게 전달함으로서 해당 프로세스를 주지시킬 것인지 판단할 수 있도록 한다(S408).
그러나, 상기 S406단계에서 판단 결과, 시스템 콜이 해킹으로 판단할 수 있는 시스템 콜 목록에 포함되지 않는 경우 시스템 콜을 정상적으로 처리하게 되는 것이다.
상기 S408단계의 관리자에게 경보 후에는 다음 시스템 콜을 기다리게 되는 것이다.
결국, 본 발명은, 결정된 프로그램 목록에 속하는 프로그램으로부터 발생하는 시스템 콜의 발생을 감지하고, 발생된 시스템의 콜의 발생 위치를 추출한다.
시스템 콜의 발생 위치가 추출되면, 추출된 시스템 콜 발생 위치와 시스템 콜 자체를 이용한 기 결정된 해킹으로 판단될 수 있는 시스템 콜과 비교 분석하여 발생된 시스템 콜이 해킹으로 판단될 수 있는 시스템 콜에 포함되는 경우 해킹으로 판단하여 관리자에게 경보를 보내 해당 프로그램을 정지시킬 것인지 판단할 수 있도록 하는 것이다.
이러한 프로세스를 처리하기 위해서는 버퍼 오버 플로우 취약점을 이용한 해킹을 검출하는 모듈을 작성하여야 하는데, 이러한 모듈 작성 방법에 대하여 간단하게 살펴보자.
먼저, 취약하다고 판단되는 프로그램 및 서비스 목록을 결정하여 저장하고, 상기 결정된 프로그램 및 서비스가 사용하는 메모리 주소에 대한 정보를 추출하게 된다.
그리고 해킹으로 판단할 수 있는 시스템 콜을 결정하고, 프로그램에 의해 발생된 시스템 콜로부터 시스템 콜의 메모리 상에서 위치(주소)를 추출하게 된다.
상기 과정에서의 내용과 시스템 콜 모니터링 엔진을 병합시킨 후, 병합된 결과를 통해 본 발명에서 활용할 버퍼 오버플로우 탐지 및 방어 시스템을 구성하게 되는 것이다.
이렇게 구성된 버퍼 오버플로우 탐지 시스템을 도 5와 같이 운용하여 버퍼 오버플로우 해킹 시도 여부를 검출 및 판단하게 되는 것이다.
상기한 바와 같이 본 발명에 따른 실시간 버퍼 오버플로우 해킹 탐지 방법은, 버퍼 오버플로우 취약점을 가지고 있는 프로그램을 사용하더라도 해킹 시도를 실시간으로 탐지하여 방어할 수 있으며, 알려지지 않은 응용 프로그램에 대해 취약하다고 판단된 시스템 콜을 사용할 경우 탐지할 수 있어 버퍼 오버플로우 해킹 시도를 효과적으로 방지할 수 있는 것이다.
또한, 시스템 해킹시 가장 널리 사용되고 있는 버퍼 오버플로우 해킹을 방지함으로써, 보다 안전하고 높은 수준의 시스템 보안 강도를 유지할 수 있는 것이다.

Claims (5)

  1. 시스템의 실시간 버퍼 오버플로우 해킹 탐지 방법에 있어서,
    시스템 콜 호출이 발생한 경우, 발생된 시스템 콜을 입력으로 하여 발생된 시스템 콜의 발생 위치를 추출하는 단계;
    시스템 콜 호출 위치가 추출되면, 추출된 위치와 정상적인 프로세스 메모리 영역을 비교하여 시스템 콜 호출이 메모리의 스택 영역에서 발생하였는지를 판단하는 단계;
    판단 결과, 시스템 콜 호출이 메모리의 스택 영역에서 발생한 경우, 기 설정된 해킹으로 판단할 수 있는 시스템 콜 목록과 비교하여, 해킹으로 판단할 수 있는 시스템 콜 목록에 포함되어 있는 시스템 콜인지를 판단하는 단계;
    상기 판단 결과, 시스템 콜이 해킹으로 판단할 수 있는 시스템 콜 목록에 포함되는 경우 해킹으로 판단하여 시스템 관리자에게 경보를 제공하는 단계;를 포함하는 실시간 버퍼 오버플로우 해킹 탐지 방법.
  2. 제1항에 있어서,
    취약점을 가지고 있을 것으로 판단되는 시스템 프로그램 목록과, 해킹으로 판단할 수 있는 시스템 콜 목록을 각각 결정하여 저장하는 단계를 더 포함하는 실시간 버퍼 오버플로우 해킹 탐지 방법.
  3. 제1항에 있어서,
    상기 정상적인 프로세스 메모리영역은,
    상기 취약점을 가지고 있을 것으로 판단되는 프로그램 목록에 속하는 각각의프로그램이 사용하는 메모리 영역인 실시간 버퍼 오버플로우 해킹 탐지 방법.
  4. 제1항에 있어서,
    취약하다고 판단되는 프로그램 및 서비스 목록을 작성하는 단계;
    결정된 프로그램 및 서비스가 사용하는 메모리 주소에 대한 정보를 작성하는 단계;
    해킹으로 판단할 수 있는 시스템 콜 목록을 작성하는 단계;
    프로그래밍 의해 발생된 시스템 콜로 부터 시스템 콜의 메모리 상에서 위치를 추출하는 기능을 작성하는 단계;
    상기 단계들에서 작성한 내용과 시스템 콜 모니터링 엔진을 병합시키는 단계;
    병합된 결과를 이용하여 발생된 시스템 콜에 대한 해킹 여부를 탐지하는 단계를 더 포함하는 실시간 버퍼 오버플로우 해킹 탐지 방법.
  5. 실시간 버퍼 오버플로우 해킹 탐지/방어 방법을 수행하기 위하여 디지털 처리장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 디지털 처리장치에 의해 판독될 수 있는 기록 매체에 있어서,
    시스템 콜 호출이 발생한 경우, 발생된 시스템 콜을 입력으로 하여 발생된 시스템 콜의 발생 주소를 추출하는 단계;
    시스템 콜 호출 주소가 추출되면, 추출된 주소와 기 설정된 취약점을 자기고 있을 것으로 판단되는 프로그램 목록에 속하는 각각의 프로그램이 사용하는 메모리 영역을 비교하여 시스템 콜 호출이 메모리의 스택 영역에서 발생하였는지를 판단하는 단계;
    판단 결과, 시스템 콜 호출이 메모리의 스택 영역에서 발생한 경우, 기 설정된 해킹으로 판단할 수 있는 시스템 콜 목록과 비교하여, 해킹으로 판단할 수 있는 시스템 콜 목록에 포함되어 있는 시스템 콜인지를 판단하는 단계;
    상기 판단 결과, 시스템 콜이 해킹으로 판단할 수 있는 시스템 콜 목록에 포함되는 경우 시스템 관리자에게 경보를 제공하는 단계를 수행하는 기록 매체.
KR1020010076442A 2001-12-05 2001-12-05 실시간 버퍼 오버플로우 해킹 탐지 방법 KR100560166B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010076442A KR100560166B1 (ko) 2001-12-05 2001-12-05 실시간 버퍼 오버플로우 해킹 탐지 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010076442A KR100560166B1 (ko) 2001-12-05 2001-12-05 실시간 버퍼 오버플로우 해킹 탐지 방법

Publications (2)

Publication Number Publication Date
KR20030046581A KR20030046581A (ko) 2003-06-18
KR100560166B1 true KR100560166B1 (ko) 2006-03-13

Family

ID=29573067

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010076442A KR100560166B1 (ko) 2001-12-05 2001-12-05 실시간 버퍼 오버플로우 해킹 탐지 방법

Country Status (1)

Country Link
KR (1) KR100560166B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100586500B1 (ko) * 2004-03-18 2006-06-07 학교법인고려중앙학원 버퍼 오버플로우 공격들을 감지하고 복구하는 방법 및 그장치
KR100951379B1 (ko) * 2008-04-29 2010-04-08 주식회사 안철수연구소 메모리 조작 방지 장치
KR101446525B1 (ko) * 2013-09-27 2014-10-06 주식회사 유라코퍼레이션 차량 해킹 방지 시스템, 방법, 및 상기 방법을 실행시키기 위한 컴퓨터 판독 가능한 프로그램을 기록한 매체

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010040981A (ko) * 1998-02-26 2001-05-15 케네쓰 올센 스택에 기초한 보안 조건
JP2001216161A (ja) * 2000-02-04 2001-08-10 Internatl Business Mach Corp <Ibm> メモリ装置、スタック保護システム、コンピュータシステム、コンパイラ、スタック保護方法、記憶媒体及びプログラム伝送装置
KR20010081692A (ko) * 2000-02-18 2001-08-29 신영현 해킹발견 및 경보방법
KR20010105490A (ko) * 2000-05-10 2001-11-29 이영아 해커감지 및 추적시스템
KR20030033712A (ko) * 2001-10-24 2003-05-01 주식회사 김정훈시큐어 해커 침입에 따른 마스터 및 에이전트 모드의 집단방어 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010040981A (ko) * 1998-02-26 2001-05-15 케네쓰 올센 스택에 기초한 보안 조건
JP2001216161A (ja) * 2000-02-04 2001-08-10 Internatl Business Mach Corp <Ibm> メモリ装置、スタック保護システム、コンピュータシステム、コンパイラ、スタック保護方法、記憶媒体及びプログラム伝送装置
KR20010081692A (ko) * 2000-02-18 2001-08-29 신영현 해킹발견 및 경보방법
KR20010105490A (ko) * 2000-05-10 2001-11-29 이영아 해커감지 및 추적시스템
KR20030033712A (ko) * 2001-10-24 2003-05-01 주식회사 김정훈시큐어 해커 침입에 따른 마스터 및 에이전트 모드의 집단방어 방법

Also Published As

Publication number Publication date
KR20030046581A (ko) 2003-06-18

Similar Documents

Publication Publication Date Title
US7665138B2 (en) Detecting method and architecture thereof for malicious codes
Gao et al. On gray-box program tracking for anomaly detection
US8046592B2 (en) Method and apparatus for securing the privacy of sensitive information in a data-handling system
CN1983296B (zh) 用于防止非法程序窃取用户信息的方法及装置
CN110225029B (zh) 注入攻击检测方法、装置、服务器及存储介质
KR20180032566A (ko) 다수 소프트웨어 개체들에 걸쳐서 악성 행동을 트래킹하기 위한 시스템들 및 방법들
US7607122B2 (en) Post build process to record stack and call tree information
CN106778243A (zh) 基于虚拟机的内核漏洞检测文件保护方法及装置
CN106557701A (zh) 基于虚拟机的内核漏洞检测方法及装置
CN102667794A (zh) 用于保护操作系统免于非授权修改的方法和系统
CN106778244A (zh) 基于虚拟机的内核漏洞检测进程保护方法及装置
JP2006330864A (ja) サーバ計算機システムの制御方法
US8978150B1 (en) Data recovery service with automated identification and response to compromised user credentials
EP4044057B1 (en) Method and system for identifying security vulnerabilities
Awad et al. Volatile Memory Extraction-Based Approach for Level 0‐1 CPS Forensics
CN108763924B (zh) 一种安卓应用程序中不可信第三方库访问权限控制方法
KR100560166B1 (ko) 실시간 버퍼 오버플로우 해킹 탐지 방법
CN111475168B (zh) 一种代码编译方法及装置
CN117081818A (zh) 基于智能合约防火墙的攻击交易识别与拦截方法及系统
JP4643201B2 (ja) バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム
JP4728619B2 (ja) ソフトウェアの改竄検出装置、改竄防止装置、改竄検出方法及び改竄防止方法
EP3754526A1 (en) Method for controlling an execution flow of an application
JP5177206B2 (ja) ソフトウェアの改竄検出装置及び改竄検出方法
CN111177726A (zh) 一种系统漏洞检测方法、装置、设备及介质
KR102618922B1 (ko) 무기체계 임베디드 시스템의 sw 역공학 방지장치 및 그 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20041230

Effective date: 20060131

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090303

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee