KR20090051956A - 악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법 - Google Patents

악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법 Download PDF

Info

Publication number
KR20090051956A
KR20090051956A KR1020070118434A KR20070118434A KR20090051956A KR 20090051956 A KR20090051956 A KR 20090051956A KR 1020070118434 A KR1020070118434 A KR 1020070118434A KR 20070118434 A KR20070118434 A KR 20070118434A KR 20090051956 A KR20090051956 A KR 20090051956A
Authority
KR
South Korea
Prior art keywords
dynamic link
link library
information
malicious
operating system
Prior art date
Application number
KR1020070118434A
Other languages
English (en)
Other versions
KR100938672B1 (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 KR1020070118434A priority Critical patent/KR100938672B1/ko
Priority to US12/262,745 priority patent/US20090133126A1/en
Priority to EP08168999A priority patent/EP2065825A1/en
Priority to JP2008294358A priority patent/JP2009129451A/ja
Publication of KR20090051956A publication Critical patent/KR20090051956A/ko
Application granted granted Critical
Publication of KR100938672B1 publication Critical patent/KR100938672B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Abstract

본 발명은 운영체제를 기반으로 하는 운영시스템에서 악성코드에 의해 삽입된 동적 연결 라이브러리를 판단하는 장치 및 방법에 관한 것이다. 이를 위하여 본 발명의 바람직한 실시 예에 따른 운영체제를 기반으로 하는 운영시스템에서의 명시적 동작 연결 라이브러리 추출 방법은, 적어도 하나의 대상 프로세스가 실행되기 전에 상기 적어도 하나의 대상 프로세스에 대응하여 기록매체에 임포트되어 있는 이미지 파일로부터 동적 연결 라이브러리 정보를 수집하는 단계; 상기 적어도 하나의 대상 프로세스가 실행됨에 따라 메모리로 로딩되는 동적 연결 라이브러리 정보를 수집하는 단계; 상기 수집된 두 가지의 동적 연결 라이브러리 정보들을 비교하여 명시적 동적 연결 라이브러리 정보를 추출하는 단계; 및 상기 획득된 명시적 동적 연결 라이브러리 정보에 대해 악의적 목적에 의해 삽입된 동적 연결 라이브러리 정보인지를 판단하는 단계를 포함한다. 그럼으로써 악의적 목적에 의해 삽입된 동적 연결 라이브러리 정보를 피해 시스템을 위한 분석 도구로써 유용하게 활용할 수 있다.
DLL 삽입, 악성코드, 탐지, 프로파일링, 휴리스틱

Description

운영체제를 기반으로 하는 운영시스템에서 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단 장치 및 방법{THE METHOD AND APPARATUS FOR JUDGING DLL INSERTED BY MALICIOUS CODE IN AN OPERATION SYSTEM}
본 발명은 운영체제를 기반으로 하는 운영시스템에서의 악성 코드를 추출하는 방법에 관한 것으로, 특히 악성코드에 의해 삽입된 동적 연결 라이브러리 (Dynamic Link Library, 이하 "DLL"이라 칭함)를 판단하는 장치 및 방법에 관한 것이다.
통상적으로 컴퓨터 등의 운영시스템은 각종 하드웨어가 운영체제를 기반으로 구동되는 구조를 가진다. 상기 운영체제는 시스템으로 전원이 공급될 시 구동되어 사용자와 하드웨어간의 인터페이스(interface) 기능을 수행한다. 상기 운영체제의 종류로는 솔라리스 (Solaris), 리눅스 (Linux), 윈도즈 (Windows) 등이 존재한다. 이중 윈도즈는 가상 메모리(Virtual Memory)를 지원하는 운영체제로써, 가장 대중적으로 사용되고 있다.
상기 윈도즈를 기반으로 하는 운영시스템은 가상 메모리 관리 및 효과적인 메모리 사용을 위해 실행되는 일부분의 내용만을 메모리에 올려놓고 그렇지 않은 부분의 내용은 파일에서 필요할 때 읽어 들이고 있다.
한편 상기 운영시스템에는 유선 뿐만 아니라 무선 통신 산업의 발달로 인해 통신 기능을 사용하는 것이 일반화되고 있다. 하지만 통신 기능의 사용이 일반됨으로 인해 사용자에게는 편의성을 제공하고는 있으나 외부로부터 악성코드의 침입이 빈번하게 발생하고 있다. 상기 악성코드로는 바이러스, 웜, 스파이웨어 등으로 구분된다.
상기 악성코드는 윈도즈 환경에서 일반적으로 사용되는 DLL 삽입 기술을 악용하여 운영시스템에 침입한다. 이와 같이 악성코드를 운영시스템으로 전파하기 위해 사용되는 DLL 삽입 기술은 다양하다.
따라서 악성코드에 의해 삽입되는 DLL을 탐지하기 위한 방안이 다양한 관점에서 모색되고 있다. 예를 들어 DLL 삽입과 관련된 응용 프로그램 인터페이스 (Application Program Interface, 이하 "API"라 칭함) 들을 감시하다가 API를 사용하는 순간 알람 경고를 내는 형태나, 프로세스에 로딩된 DLL을 분석하는 기법이 있다. 그리고 알려진 시스템 DLL의 목록 및 해쉬 값을 사전에 추출하여 이를 의심이 가는 악성 DLL과 비교하는 기법 등이 존재한다.
전술한 종래의 DLL 탐지 방안에서는 미리 설치된 탐지 도구에 의해 악성 코드에 의해 삽입되는 DLL을 탐지하거나 사용자의 경험적 지식에 의해 악의적인 목적으로 삽입된 DLL을 판단하는 방법을 사용되고 있다. 따라서 종래에는 악성 코드에 의해 악의적인 목적으로 삽입되는 DLL을 탐지하기 위해서는 별도의 탐지 도구를 미리 설치하거나 사용자의 경험적 지식이 반드시 전제되어야 하였다.
따라서 사용자에 대한 편의를 제공하기 위해서는 악성코드에 의해 악의적 목적으로 삽입되는 DLL을 자동으로 탐색하고, 자동 탐색된 DLL 정보를 시스템 분석 도구로써 활용하는 방안 마련이 시급하다 할 것이다.
본 발명에서는 특정 프로세스의 메모리 영역 내에 삽입된 DLL이 악의적인 목적으로 개발된 DLL인지를 판단하는 장치 및 방법을 제공한다.
또한, 본 발명에서는 윈도즈를 기반으로 하는 운영시스템에서 악성코드에 의해 삽입된 DLL을 프로파일링 및 휴리스틱 판단 기법에 의해 탐지하는 장치 및 방법을 제공한다.
또한, 본 발명에서는 피해 시스템에서 해킹이 일어난 후 프로세스를 검사하여 악의적인 목적에 의해 삽입된 DLL을 프로파일링을 이용한 휴리스틱 기법을 기반으로 실시간 검색하는 장치 및 방법을 제공한다.
그 외의 본 발명에서 제공하고자 하는 목적은 하기의 설명 및 본 발명의 바람직한 실시 예에 의하여 파악될 수 있다.
본 발명의 바람직한 실시 예에 따른 운영체제를 기반으로 하는 운영시스템에서의 명시적 동적 연결 라이브러리 추출 장치는, 적어도 하나의 대상 프로세스가 실행되기 전에 상기 적어도 하나의 대상 프로세스에 대응하여 기록매체에 임포트되어 있는 이미지 파일로부터 동적 연결 라이브러리 정보를 수집하고, 상기 적어도 하나의 대상 프로세스가 실행됨에 따라 메모리로 로딩되는 동적 연결 라이브러리 정보를 수집하는 동적 연결 라이브러리 정보 수집부와, 상기 수집된 두 가지의 동 적 연결 라이브러리 정보들을 비교하여 명시적 동적 연결 라이브러리 정보를 추출하고, 상기 획득된 명시적 동적 연결 라이브러리 정보에 대해 악의적 목적에 의해 삽입된 동적 연결 라이브러리 정보인지를 판단하는 악의적 동적 연결 라이브러리 정보 검출부를 포함한다.
또한, 본 발명의 바람직한 실시 예에 따른 운영체제를 기반으로 하는 운영시스템에서의 명시적 동작 연결 라이브러리 추출 방법은, 적어도 하나의 대상 프로세스가 실행되기 전에 상기 적어도 하나의 대상 프로세스에 대응하여 기록매체에 임포트되어 있는 이미지 파일로부터 동적 연결 라이브러리 정보를 수집하는 단계와, 상기 적어도 하나의 대상 프로세스가 실행됨에 따라 메모리로 로딩되는 동적 연결 라이브러리 정보를 수집하는 단계와, 상기 수집된 두 가지의 동적 연결 라이브러리 정보들을 비교하여 명시적 동적 연결 라이브러리 정보를 추출하는 단계, 및 상기 획득된 명시적 동적 연결 라이브러리 정보에 대해 악의적 목적에 의해 삽입된 동적 연결 라이브러리 정보인지를 판단하는 단계를 포함한다.
본 발명에서는 피해시스템 분석 관점에서 피해 시스템에서 해킹이 일어난 후 프로세스를 검사하여 악의적인 목적으로 삽입된 DLL을 DLL 프로파일링 및 휴리스틱 판단 기법을 이용하여 자동으로 찾는 방법을 제시하였다. 이러한 방법을 이용하여 피해 시스템 분석 도구로 활용하는데 효과적이다.
하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술 되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명에 따른 바람직한 실시 예에 관해 구체적으로 설명하기에 앞서 윈도즈 환경에서 사용되는 DLL 삽입 기술에 대해 정리하면 다음과 같다.
일반적으로 윈도즈 환경에서 사용되는 DLL 삽입 기술은 접근 방식에 의해 윈도즈 훅을 이용하는 기법과, CreateRemoteThread를 이용하는 기법 및 디버깅 API를 이용하는 기법으로 분류할 수 있다.
상기 윈도즈 훅을 이용한 기법은 DLL에 코드를 삽입한 후 윈도즈 훅 (Windows Hook)을 통해서 원격 프로세스에 DLL을 로딩하는 기술이다. 상기 윈도즈 훅은 운영체제와 응용 프로그램, 또는 응용 프로그램 간에 많은 메시지를 주고 받게 되는 운영시스템에서 메시지 사이에 위치하여 감시와 조작을 가능하도록 하는 프로시저이다. 또한, 상기 윈도즈 훅은 메시지를 감시 또는 변경하거나 전달을 차단하는 것도 가능하다. 따라서 훅 프로시저가 어떤 메시지를 받을 것인가는 훅 타입과 훅의 범위에 따라 달라진다. 상기 훅 타입은 WH_로 시작하는 매크로 상수로 정의된다. 예를 들면, WH_KEYBOARD는 키보드 메시지를 감시하고, WH_CALLWNDPROC는 SendMessage 함수로 메시지를 보내기 전에 처리하며, WH_CALLWNDPROCRET는 윈도우 프로시저가 메시지를 처리한 후에 호출되는 훅 프로시저이다. 한편, 상기 윈도즈 훅을 이용한 방법은 키로거와 같은 악성코드에 많이 사용된다.
상기 CreateRemoteThread를 이용한 기법은 최근 악성코드에서 가장 많이 사용하는 기법 중 하나이다. 상기 CreateRemoteThread를 이용한 기법은 DLL을 동적으로 대상 프로세스에서 실행시키는 것이 가능하며, 사용자 레벨 루트킷과 같은 악성코드에 많이 사용된다.
마지막으로 디버깅 API를 이용한 기법은 윈도즈에서 제공하는 강력한 디버깅 API를 이용하는 기법이다. 상기 디버깅 API를 이용한 기법은 악의적인 의도보다 프로그램을 디버깅하는 용도로 만들어놓은 것이지만 메모리를 다룰 수 있는 방법 중의 하나가 된다. 윈도즈 환경에서 대표적인 API로는 ReadProcessMemory와 WriteProcessMemory가 존재한다. 상기 디버깅 API를 이용한 기법의 일 예로써, CreateProcess의 인자인 dwCreationFlag에서 DEBUG_ONLY_THIS_PROCESS와 DEBUG_PROCESS를 선택하여 생성시키면, 상기 CreateProcess를 부른 프로세스가 디버거가 된다. 이는 WaitForDebugEvent를 통해 디버그 이벤트를 받을 수 있다.
한편, 전술한 기법들을 이용할 시, 이미 컴파일된 프로그램들을 통해 악성코드에 의한 DLL 삽입이 발생할 수 있다. 그러므로 LoadLibrary API를 이용한 명시적 로딩을 이용한다. 상기 명시적 로딩은 DLL의 로딩 여부가 링크 시에 결정되는 것이 아니라 사용자가 원할 때 해당 DLL을 로드하여 원하는 함수를 사용할 수 있게 하는 방법이다.
따라서 본 발명에서는 해당 프로세스들이 실행 전에 임포트하고 있는 DLL 정보와 실행 후 명시적으로 로딩되는 정보를 확보하고, 상기 확보한 정보를 비교하여 악성코드에 의해 악의적 목적으로 삽입되는 DLL을 분석하기 위한 범위를 줄일 수 있도록 하는 방안을 마련하고자 한다.
이를 위해서는 하기의 본 발명의 바람직한 실시 예에서는 적어로 하나의 대상 프로세스가 실행되기 전의 메모리에 기록된 이미지 파일을 통해 DLL 정보를 수집하기 위한 동작과, 상기 적어도 하나의 대상 프로세스가 실행됨으로 인해 로딩되는 DLL 정보를 수집하는 동작에 대해 설명하도록 한다. 또한, 상기 수집된 두 가지의 DLL 정보를 비교하여 명시적 DLL 정보를 획득하고, 상기 획득한 명시적 DLL 정보로부터 악성코드에 의한 악의적 목적으로 삽입된 DLL 정보를 검출하기 위한 동작에 대해서도 설명하도록 한다. 또한, 본 발명의 바람직한 실시 예에서는 명시적 DLL 정보로부터 악의적인 목적으로 삽입된 DLL 정보를 검사하기 위해 특정 회사별로 개발한 DLL을 프로파일링한 DB를 이용한 휴리스틱 기법을 적용하는 것을 전제로 한다.
이하 본 발명의 바람직한 실시 예를 첨부된 도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 바람직한 실시 예에 따른 윈도즈를 기반으로 하는 운영시스템에서 악의적으로 삽입된 DLL을 추출하기 위한 장치의 구성을 보이고 있다.
도 1을 참조하면, DLL 정보 수집부(110)는 악의적으로 삽입된 DLL을 추출하기 위해 적어도 하나의 대상 프로세스에 대한 DLL 정보를 수집한다. 상기 DLL 정보 수집부(110)는 수집하고자 하는 DLL 정보의 종류에 따라 복수의 DLL 정보 수집 모듈로 구성된다. 도 1에서는 두 개의 DLL 정보 수집 모듈로 구성된 예를 보이고 있다.
상기 DLL 정보 수집부(110)를 구성하는 제 1DLL 정보 수집 모듈(112)은 적어도 하나의 대상 프로세스가 실행되기 전에 상기 적어도 하나의 대상 프로세스에 대응하여 기록매체에 임포트되어 있는 이미지 파일로부터 DLL 정보를 수집한다. 즉 상기 제 1DLL 정보 수집 모듈(112)은 윈도즈에서 사용되는 바이너리 파일의 이식 가능 프로그램 (Portable Executable, 이하 "PE"라 칭함) 파일 형식을 추적하여 임포트 테이블 (Import table)의 위치를 확인하고, 상기 확인된 위치의 임포트 테이블을 통해 심볼을 임포트하는 DLL 정보를 수집한다.
통상적으로 윈도우 실행 파일 및 DLL, 그리고 드라이버 파일 등은 PE 파일 형태를 따르고 있다. 상기 PE 파일 형태는 크게 헤더, 섹션, 데이터의 세 부분으로 나누어진다. 그리고 상기 PE 파일 형태는 기존 DOS 환경에서 사용하던 COFF(Common Object File Format)과 거의 비슷한 구조를 가지며 기본 뼈대에서 확장된 형태를 가진다. 따라서 PE 실행 파일이 가지고 있는 헤더를 분석함으로써, 실제 데이터가 존재하는 위치를 찾아 해당 영역을 분석할 수 있다.
그리고 상기 IMPORT table은 해당 프로그램이 사용하고 있는 외부 함수의 위치 및 이름을 저장한다. 예컨대 listbox.exe의 경우, 내부적으로 kernel32.dll과 user32.dll 에 있는 다수의 함수를 사용하고 있다. 이러한 함수들의 이름은 이미 실행 파일 내에 저장되어 있고, 그 저장된 위치를 알려주는 것이 IMPORT table이 다. 한편, 상기 IMPORT table이 지시하는 위치에는, 여러 개의 Image Import Descriptor들이 묶여있다. 상기 Image Import Descriptor 각각은 20 바이트(bytes)의 구조체로 정의되며, 하나의 Image Import Descriptor는 하나의 함수를 나타낸다.
상기 제 1DLL 정보 수집 모듈(112)에서 이미지 파일로부터 DLL 정보를 수집하는 동작에 대해 보다 구체적으로 설명하면, 우선적으로 PE 헤더의 위치를 확인한다. 그리고 상기 확인된 PE 헤더로부터 임의 간격만큼 떨어져 있는 IMPORT table의 위치 확인하고, 상기 IMPORT table의 값을 참고하여 Image Import Descriptor의 위치 확인한다. 그 후 상기 확인된 위치에 존재하는 Image Import Descriptor의 내용을 분석함으로써, 호출되고 있는 DLL 및 함수를 확인할 수 있다.
상기 DLL 정보 수집부(110)를 구성하는 제 2DLL 정보 수집 모듈(114)은 적어도 하나의 대상 프로세스가 실행됨에 따라 메모리로 로딩되는 DLL 정보를 수집한다. 상기 제 2DLL 정보 수집 모듈(114)은 PSAPI(Process Status Application Programming Interface) 라이브러리 또는 ToolHelper API 중 하나를 이용하여 현재 실행중인 프로세스에 대응한 DLL 정보를 수집할 수 있다.
상기 PSAPI 라이브러리 파일에는 윈도즈의 응용 프로그램이 시스템에서 실행 중인 프로세스 및/또는 장치 드라이버에 대한 정보를 검색하는 데 사용되는 프로그램 코드가 들어 있다. 그러므로 상기 PSAPI 라이브러리에 의해 윈도즈를 기반으로 하는 운영시스템에서 제공하는 프로세스 목록에 관한 정보를 제공받을 수 있다.
따라서 상기 제 2DLL 정보 수집 모듈(114)은 상기 PSAPI 라이브러리를 이용 하는 경우, 상기 PSAPI 라이브러리의 API들 중 현재 실행중인 프로세스 목록에 대한 정보를 얻을 수 있는 API를 사용한다. 또한, 상기 제 2DLL 정보 수집 모듈(114)은 ToolHelper API을 이용하여 현재 실행 중인 프로세스에 대응한 DLL 정보를 수집할 수 있다.
상기 제 1DLL 정보 수집 모듈(112)에 의해 수집된 DLL 정보와 상기 제 2DLL 정보 수집 모듈(114)에 의해 수집된 DLL 정보는 악의적 DLL 정보 검출부(120)로 제공된다.
상기 악의적 DLL 정보 검출부(120)는 상기 제 1 및 제 2DLL 정보 수집 모듈(112, 114)에 의해 수집된 두 가지의 DLL 정보들을 비교하여 명시적 DLL 정보를 추출한다. 상기 명시적 DLL 정보는 상기 적어도 하나의 대상 프로세스가 실행될 시, 추가로 로딩되는 DLL에 관한 정보이다. 이와 같이 명시적 DLL 정보를 추출하는 것은 악성코드에 의해 삽입되는 DLL이 명시적 DLL인 경우가 대부분이기 때문이다. 즉 악성코드에 의해 DLL을 삽입하는 DLL 삽입 기술을 분석하여 보면, 악의적인 DLL을 사용하기 위해 대상 프로세스의 메모리 영역 내에서 명시적으로 DLL을 로딩하는 특성이 있을 확인할 수 있다.
따라서 상기 악의적 DLL 정보 검출부(120)는 프로파일링 DB를 이용하여 상기 획득된 명시적 DLL 정보에 대해 악의적 DLL이 존재하는 지를 판단한다. 상기 프로파일링 DB는 특정 회사에서 제작한 DLL 파일의 PE 헤더 및 구조 특성을 추출하여 생성한다. 이때 상기 프로파일링 DB에 저장된 요소별로 악의적인 DLL일 가능성에 대한 가중치를 부여한다. 즉 악의적인 DLL일 가능성이 클 수로 높은 가중치를 부여 하고, 가능성이 작을수록 낮은 가중치를 부여할 수 있다. 상기 가중치를 부여할 수 있는 것은, 특정 회사에서 제작한 DLL 파일은 PE 헤더에 기록된 정보 및 그 구조적인 면에서 악의적인 목적으로 개발된 DLL 파일과 차이를 보이기 때문이다. 상기 DLL 파일과 PE 헤더 및 그 구조적인 특성의 예로는 VERSIONINFO, PE_IMAGE_OPTIONAL_HEADER, SECTION 구조 및 그 값 등이 있다.
따라서 상기 악의적 DLL 정보 검출부(120)는 상기 프로파일링 DB에 저장된 가중치를 고려하여 검사하고자 하는 임의의 명시적 DLL에 대한 가중치를 부여하며, 상기 명시적 DLL 별로 부여된 최종 가중치에 의해 악의적인 목적으로 개발된 DLL인지를 판단한다.
상기 악의적 DLL 정보 검출부(120)는 명시적 DLL로부터 검출된 악의적인 목적에 의해 삽입된 DLL에 관한 정보를 획득할 수 있으며, 필요에 따라 상기 획득한 DLL 정보를 요구하는 기능 블록으로 제공한다.
도 2는 본 발명의 바람직할 실시 예에 따라 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단하기 위해 운영시스템에서 수행되는 제어 흐름을 보이고 있다.
도 2를 참조하면, 운영시스템은 단계(210)에서 프로세스의 이미지 파일로부터 DLL 정보를 수집한다. 즉 상기 운영시스템은 적어도 하나의 대상 프로세스가 실행되기 전에 상기 적어도 하나의 대상 프로세스에 대응하여 기록매체에 임포트되어 있는 이미지 파일로부터 DLL 정보를 수집한다.
상기 이미지 파일로부터 DLL 정보를 수집하는 동작에 대해 보다 구체적으로 설명하면, 운영시스템은 윈도즈에서 사용되는 바이너리 파일의 PE 파일 형식을 추적하여 임포트 테이블 (Import table)의 위치를 확인한다. 그리고 상기 확인된 위치의 임포트 테이블을 통해 심볼을 임포트하는 DLL 정보를 수집한다. 상기 PE 파일 형식의 일 예는 도 3에서 보이고 있는 바와 같다. 도 3에서 보이고 있는 바와 같이 상기 PE 파일은 "DOS MZ header" 영역, "DOS stub" 영역, "PE header" 영역, "Section table" 영역 및 복수의 "Section" 영역들로 구성된다.
상기 DOS MZ header 영역은 PE 파일의 처음에 위치하며, MAGIC Number와 다음에 오는 IMAGE_NT_HEADER의 위치를 표시한다. 상기 DOS stub 영역은 DOS에서 실행했을 때, 에러 메시지를 표시하는 스텁(Stub) 코드를 포함하고 있다. 상기 PE header 영역은 PE 파일 포맷에 대한 정보를 포함하고 있으며, 섹션의 수 및 속성과 같은 정보를 포함하는 IMAGE_FILE_HEADER 영역과, PE 파일에 대한 속성 또는 이미지 베이스와 같은 정보를 포함하는 IMAGE_OPTIONAL_HEADER 영역을 포함한다. 그리고 상기 Section table 영역은 섹션에 대한 실질적인 정보를 포함하며, 상기 Section 영역은 실제 데이터가 위치하는 영역이다. 한편, 상기 DLL 정보는 상기 PE 파일 내에 섹션 영역에 "idata"라는 이름으로 지정된다.
앞에서도 밝힌 바와 같이 임포트 섹션은 IMAGE_IMPORT_DESCRIPTOR라는 구조체의 배열로 시작하여 링크된 DLL 개수 +1 만큼의 IMAGE_IMPORT_DESCRIPTOR 구조체가 연속적으로 존재하며 마지막은 NULL로 채워져 있다. 상기 IMAGE_IMPORT_DESCRIPTOR 구조체의 "DWORD Name" 변수는 임포트된 DLL의 이름을 담고 있는 NULL로 끝나는 아스키 문자열에 대한 RVA(Relative Virtual Address) 값을 가진다. 상기 RVA는 실행 파일이 메모리에 로드되었을 때, 그 시작 주소를 0으로 하여 계산한 주소이다. 즉 상기 RVA는 실행파일 시작 위치를 0으로 하는 상대적 주소에 해당한다. 예컨대 RVA의 값이 0x40이고 실행 파일이 로드되었을 때, 그 시작 위치가 0x1000이라 가정하면, 실제 해당 영역이 메모리에 로드되었을 때의 위치는 0x1040이 된다. 
그리고 실제 파일을 덤프해보면 각 DLL에 따른 IMAGE_IMPORT_DESCRIPTOR 구조체가 각각 존재함을 알 수 있다. 뿐만 아니라 NAME의 RVA 값을 파일 오프셋으로 변환하면 실제 임포트하는 DLL 정보를 찾을 수 있다. 이와 같이 추출된 DLL들에서 모두 임포트하는 정보를 추출하면 해당 프로세스의 PE 이미지에서 임포트하는 DLL의 정보를 모두 추출할 수 있다.
그리고 상기 운영시스템은 단계(212)에서 적어도 하나의 대상 프로세스가 실행됨에 따라 메모리로 로딩되는 DLL 정보를 수집한다. 즉 상기 운영시스템은 PSAPI 라이브러리를 이용하여 현재 실행중인 프로세스에 대응한 DLL 정보를 수집할 수 있다. 상기 PSAPI 라이브러리는 윈도즈를 기반으로 하는 운영시스템에서 제공하는 프로세스 목록에 관한 정보를 제공한다. 따라서 상기 운영시스템은 상기 PSAPI 라이브러리를 이용하는 경우, 상기 PSAPI 라이브러리의 API들 중 현재 실행중인 프로세스 목록에 대한 정보를 얻을 수 있는 API를 사용한다. 또한, 상기 운영시스템은 ToolHelper API을 이용하여 현재 실행 중인 프로세스에 대응한 DLL 정보를 수집할 수도 있다.
상기 운영시스템은 DLL 정보 수집을 완료할 시, 단계(214)로 진행하여 앞에 서 수집된 두 가지의 DLL 정보들을 비교하여 명시적 DLL 정보를 추출한다. 상기 명시적 DLL 정보는 상기 적어도 하나의 대상 프로세스가 실행될 시, 추가로 로딩되는 DLL에 관한 정보이다. 이와 같이 명시적 DLL 정보를 추출하는 것은 악성코드에 의해 삽입되는 DLL이 명시적 DLL인 경우가 대부분이기 때문이다. 즉 악성코드에 의해 DLL을 삽입하는 DLL 삽입 기술을 분석하여 보면, 악의적인 DLL을 사용하기 위해 대상 프로세스의 메모리 영역 내에서 명시적으로 DLL을 로딩하는 특성이 있을 확인할 수 있다.
따라서 상기 운영시스템은 이미지 파일로부터 수집한 DLL 정보에는 존재하지 않으나 프로세스의 로딩에 의해 수집된 DLL 정보에는 존재하는 DLL 정보를 명시적 DLL 정보로 간주할 수 있을 것이다. 즉 적어도 하나의 대상 프로세스를 로딩함으로 인해 추가로 로딩되는 DLL 정보를 확인하고, 상기 확인된 DLL 정보를 명시적 DLL 정보로 정의하도록 한다.
상기 운영시스템은 명시적 DLL 정보의 획득이 이루어지면, 단계(216)에서 상기 획득한 명시적 DLL 정보로부터 악의적 DLL 여부를 검사한다. 상기 운영시스템은 상기 획득된 명시적 DLL 정보에 대해 악의적 DLL이 존재하는 지를 판단하기 위해 프로파일링 DB를 이용한다. 상기 프로파일링 DB는 특정 회사에서 제작한 DLL 파일의 PE 헤더 및 구조 특성을 추출하여 생성할 수 있다. 이때 상기 프로파일링 DB에 저장된 요소별로 악의적인 DLL일 가능성에 대한 가중치를 부여한다. 즉 악의적인 DLL일 가능성이 클 수로 높은 가중치를 부여하고, 가능성이 작을수록 낮은 가중치를 부여할 수 있다. 상기 가중치를 부여할 수 있는 것은, 특정 회사에서 제작한 DLL 파일은 PE 헤더에 기록된 정보 및 그 구조적인 면에서 악의적인 목적으로 개발된 DLL 파일과 차이를 보이기 때문이다. 상기 DLL 파일과 PE 헤더 및 그 구조적인 특성의 예로는 VERSIONINFO, PE_IMAGE_OPTIONAL_HEADER, SECTION 구조 및 그 값 등이 있다.
따라서 상기 운영시스템은 상기 프로파일링 DB에 저장된 가중치를 고려하여 검사하고자 하는 임의의 명시적 DLL에 대한 가중치를 부여하며, 상기 명시적 DLL 별로 부여된 최종 가중치에 의해 악의적인 목적으로 개발된 DLL인지를 판단한다.
전술한 바와 같이 본 발명의 바람직한 실시 예에서는 운영시스템이 프로파일링 DB를 이용하여 휴리스틱(heuristic) 기법을 이용하여 악의적 목적에 의해 삽입된 DLL을 실시간으로 검출하도록 한다. 그리고 앞에서는 언급하고 있지 않으나 명시적 DLL로부터 검출된 악의적인 목적에 의해 삽입된 DLL에 관한 정보를 필요에 따라 다양하게 활용할 수 있다. 그 대표적인 예로써 악의적 목적으로 삽입된 DLL 정보를 피해 시스템의 분석 도구로써 활용할 수 있도록 한다.
한편, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어 져서는 안 될 것이다.
예컨대 전술한 본 발명의 바람직한 실시 예에서는 윈도즈 환경을 기반으로 하는 운영시스템에 한정하여 설명하였으나 윈도즈 환경에서의 DLL 정보와 유사한 정보를 정의하고 있는 운영시스템에 대해서도 본 발명을 용이하게 적용할 수 있을 것이다.
도 1은 본 발명의 바람직한 실시 예에 따른 윈도즈를 기반으로 하는 운영시스템에서 악의적으로 삽입된 DLL을 추출하기 위한 장치의 구성도,
도 2는 본 발명의 바람직한 실시 예에 따라 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단하기 위해 운영시스템에서 수행되는 제어 흐름도,
도 3은 본 발명의 바람직한 실시 예를 적용하기 위한 윈도즈 환경에서 이식 가능 프로그램 파일 형식의 일 예를 보이고 있는 도면.

Claims (14)

  1. 적어도 하나의 대상 프로세스가 실행되기 전에 상기 적어도 하나의 대상 프로세스에 대응하여 기록매체에 임포트되어 있는 이미지 파일로부터 동적 연결 라이브러리(Dynamic Link Library : DLL) 정보를 수집하는 단계;
    상기 적어도 하나의 대상 프로세스가 실행됨에 따라 메모리로 로딩되는 동적 연결 라이브러리 정보를 수집하는 단계;
    상기 수집된 두 가지의 동적 연결 라이브러리 정보들을 비교하여 명시적 동적 연결 라이브러리 정보를 추출하는 단계; 및
    상기 추출된 명시적 동적 연결 라이브러리 정보에 대해 악의적 목적에 의해 삽입된 동적 연결 라이브러리 정보인지를 판단하는 단계
    를 포함하는 운영시스템에서 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단방법.
  2. 제 1항에 있어서,
    상기 이미지 파일로부터 동적 연결 라이브러리 정보의 수집은, 윈도즈 환경에서의 바이너리 파일이 가지는 이식 가능 프로그램(Portable Executable : PE) 파일 형식에 대한 추적에 의해 이루어지는
    운영시스템에서 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단방법.
  3. 제 1항에 있어서,
    상기 메모리로 로딩되는 동적 연결 라이브러리 정보의 수집은, 상기 운영시스템의 프로세스 목록에 관한 정보를 제공하는 PSAPI(Process Status Application Programming Interface) 라이브러리를 활용하여 이루어지는
    운영시스템에서 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단방법.
  4. 제 1항에 있어서,
    상기 명시적 동적 연결 라이브러리 정보는, 상기 이미지 파일로부터 수집한 동적 연결 라이브러리 정보에는 존재하지 않으나 상기 메모리로 로딩되는 동적 연결 라이브러리 정보에는 존재하는 동적 연결 라이브러리에 관한 정보인
    운영시스템에서 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단방법.
  5. 제 1항에 있어서,
    상기 악의적 목적에 의해 삽입된 동적 연결 라이브러리 정보인지에 대한 판단은, 특정 회사별로 생성된 프로파일링 데이터 베이스를 이용하여 휴리스틱(heuristic) 기법에 의해 이루어지는
    운영시스템에서 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단방법.
  6. 제 5항에 있어서,
    상기 특정 회사별로의 프로파일링 데이터 베이스는, 각 특정 회사에서 제작한 동적 연결 라이브러리 파일의 이식 가능 프로그램(Portable Executable : PE) 헤더 및 그 구조 특성을 추출하여 생성되는
    운영시스템에서 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단방법.
  7. 제 5항에 있어서, 상기 악의적 목적에 의해 삽입된 동적 연결 라이브러리 정보인지를 판단하는 단계는,
    상기 프로파일링 데이터 베이스에 저장된 요소별로 악의적 동적 연결 라이브러리일 가능성에 대한 가중치를 부여하고;
    상기 부여된 가중치를 고려하여 상기 명시적 동적 연결 라이브러리 각각에 대한 최종 가중치 점수를 산출하며;
    상기 산출된 최종 가중치 점수에 의해 각 명시적 동적 연결 라이브러리가 악의적인 목적에 의해 삽입된 동적 연결 라이브러리 정보인지를 판단하는
    운영시스템에서 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단방법.
  8. 적어도 하나의 대상 프로세스가 실행되기 전에 상기 적어도 하나의 대상 프로세스에 대응하여 기록매체에 임포트되어 있는 이미지 파일로부터 동적 연결 라이브러리(Dynamic Link Library : DLL) 정보를 수집하고, 상기 적어도 하나의 대상 프로세스가 실행됨에 따라 메모리로 로딩되는 동적 연결 라이브러리 정보를 수집하는 동적 연결 라이브러리 정보 수집부; 및
    상기 수집된 두 가지의 동적 연결 라이브러리 정보들을 비교하여 명시적 동적 연결 라이브러리 정보를 추출하고, 상기 획득된 명시적 동적 연결 라이브러리 정보에 대해 악의적 목적에 의해 삽입된 동적 연결 라이브러리 정보인지를 판단하는 악의적 동적 연결 라이브러리 정보 검출부
    를 포함하는 운영시스템에서 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단장치.
  9. 제 8항에 있어서,
    상기 동적 연결 라이브러리 정보 수집부를 구성하는 제 1동적 연결 라이브러리 정보 수집 모듈은, 윈도즈 환경에서의 바이너리 파일이 가지는 이식 가능 프로그램(Portable Executable : PE) 파일 형식에 대한 추적을 통해 상기 이미지 파일로부터의 동적 연결 라이브러리 정보를 수집하는
    운영시스템에서 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단장치.
  10. 제 8항에 있어서,
    상기 동적 연결 라이브러리 정보 수집부를 구성하는 제 2동적 연결 라이브러리 정보 수집 모듈은, 상기 운영시스템의 프로세스 목록에 관한 정보를 제공하는 PSAPI(Process Status Application Programming Interface) 라이브러리를 활용하여 상기 메모리로 로딩되는 동적 연결 라이브러리 정보를 수집하는
    운영시스템에서 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단장치.
  11. 제8항에 있어서,
    상기 악의적 동적 연결 라이브러리 정보 검출부는, 상기 이미지 파일로부터 수집한 동적 연결 라이브러리 정보에는 존재하지 않으나 상기 메모리로 로딩되는 동적 연결 라이브러리 정보에는 존재하는 동적 연결 라이브러리 정보를 상기 명시적 동적 연결 라이브러리 정보로 추출하는
    운영시스템에서 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단장치.
  12. 제8항에 있어서,
    상기 악의적 동적 연결 라이브러리 정보 검출부는, 특정 회사별로 생성된 프 로파일링 데이터 베이스를 이용하여 휴리스틱(heuristic) 기법에 의해 상기 악의적 목적에 의해 삽입된 동적 연결 라이브러리 정보인지를 판단하는
    운영시스템에서 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단장치.
  13. 제 12항에 있어서,
    상기 특정 회사별로 생성된 프로파일링 데이터 베이스는, 각 특정 회사에서 제작한 동적 연결 라이브러리 파일의 이식 가능 프로그램(Portable Executable : PE) 헤더 및 그 구조 특성을 추출하여 생성되는
    운영시스템에서 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단장치.
  14. 제 12항에 있어서, 상기 악의적 동적 연결 라이브러리 정보 검출부는,
    상기 프로파일링 데이터 베이스에 저장된 요소별로 악의적 동적 연결 라이브러리일 가능성에 대한 가중치를 부여하고, 상기 부여된 가중치를 고려하여 상기 명시적 동적 연결 라이브러리 각각에 대한 최종 가중치 점수를 산출하며, 상기 산출된 최종 가중치 점수에 의해 각 명시적 동적 연결 라이브러리가 악의적인 목적에 의해 삽입된 동적 연결 라이브러리인지를 판단하는
    운영시스템에서 악성 코드에 의해 삽입된 동적 연결 라이브러리 판단장치.
KR1020070118434A 2007-11-20 2007-11-20 악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법 KR100938672B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020070118434A KR100938672B1 (ko) 2007-11-20 2007-11-20 악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법
US12/262,745 US20090133126A1 (en) 2007-11-20 2008-10-31 Apparatus and method for detecting dll inserted by malicious code
EP08168999A EP2065825A1 (en) 2007-11-20 2008-11-13 Apparatus and method for detecting DLL inserted by malicious code
JP2008294358A JP2009129451A (ja) 2007-11-20 2008-11-18 悪性コードによって挿入されたダイナミックリンクライブラリ検出装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070118434A KR100938672B1 (ko) 2007-11-20 2007-11-20 악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20090051956A true KR20090051956A (ko) 2009-05-25
KR100938672B1 KR100938672B1 (ko) 2010-01-25

Family

ID=40350224

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070118434A KR100938672B1 (ko) 2007-11-20 2007-11-20 악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법

Country Status (4)

Country Link
US (1) US20090133126A1 (ko)
EP (1) EP2065825A1 (ko)
JP (1) JP2009129451A (ko)
KR (1) KR100938672B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110084775A (ko) * 2010-01-18 2011-07-26 삼성전자주식회사 동적 링크 라이브러리 삽입 공격을 방지하는 컴퓨터 시스템 및 방법
KR101056283B1 (ko) * 2009-10-29 2011-08-11 주식회사 반딧불소프트웨어 악성코드 검출 장치 및 그 방법
US8615806B2 (en) 2010-01-15 2013-12-24 Samsung Electronics Co., Ltd. Apparatus and method for detecting a code injection attack
US10372444B2 (en) 2017-03-03 2019-08-06 Foundation Of Soongsil University-Industry Cooperation Android dynamic loading file extraction method, recording medium and system for performing the method

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9077715B1 (en) 2006-03-31 2015-07-07 Symantec Corporation Social trust based security model
US8255902B1 (en) 2008-03-17 2012-08-28 Symantec Corporation Systems and methods for determining and quantifying the impact of an application on the health of a system
US8219983B1 (en) 2008-03-31 2012-07-10 Symantec Corporation Systems and methods for providing guidance on the potential impact of application and operating-system changes on a computing system
US8181251B2 (en) * 2008-12-18 2012-05-15 Symantec Corporation Methods and systems for detecting malware
US8225406B1 (en) * 2009-03-31 2012-07-17 Symantec Corporation Systems and methods for using reputation data to detect shared-object-based security threats
US8572739B1 (en) * 2009-10-27 2013-10-29 Trend Micro Incorporated Detection of malicious modules injected on legitimate processes
KR101122650B1 (ko) * 2010-04-28 2012-03-09 한국전자통신연구원 정상 프로세스에 위장 삽입된 악성코드 탐지 장치, 시스템 및 방법
KR101182346B1 (ko) 2010-06-10 2012-09-20 성균관대학교산학협력단 동적 코드 분석 장치 및 방법
US9832221B1 (en) 2011-11-08 2017-11-28 Symantec Corporation Systems and methods for monitoring the activity of devices within an organization by leveraging data generated by an existing security solution deployed within the organization
US8627469B1 (en) 2012-03-14 2014-01-07 Symantec Corporation Systems and methods for using acquisitional contexts to prevent false-positive malware classifications
US9734333B2 (en) 2012-04-17 2017-08-15 Heat Software Usa Inc. Information security techniques including detection, interdiction and/or mitigation of memory injection attacks
US9286047B1 (en) 2013-02-13 2016-03-15 Cisco Technology, Inc. Deployment and upgrade of network devices in a network environment
US9043922B1 (en) * 2013-04-19 2015-05-26 Symantec Corporation Systems and methods for determining malicious-attack exposure levels based on field-data analysis
WO2015045043A1 (ja) * 2013-09-25 2015-04-02 三菱電機株式会社 プロセス検査装置、プロセス検査プログラムおよびプロセス検査方法
TWI553503B (zh) * 2014-02-27 2016-10-11 國立交通大學 產生候選鈎點以偵測惡意程式之方法及其系統
CN104679561B (zh) * 2015-02-15 2018-07-06 福建天晴数码有限公司 一种动态链接库文件加载的方法及系统
US10374904B2 (en) 2015-05-15 2019-08-06 Cisco Technology, Inc. Diagnostic network visualization
US9800497B2 (en) 2015-05-27 2017-10-24 Cisco Technology, Inc. Operations, administration and management (OAM) in overlay data center environments
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US9967158B2 (en) 2015-06-05 2018-05-08 Cisco Technology, Inc. Interactive hierarchical network chord diagram for application dependency mapping
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
KR101688632B1 (ko) * 2015-07-31 2016-12-22 한국전자통신연구원 라이브러리 적재 탐지를 위한 방법 및 장치
CN105117644B (zh) * 2015-08-26 2018-08-28 福建天晴数码有限公司 采集Android外挂程序方法及系统
US10171357B2 (en) 2016-05-27 2019-01-01 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US10931629B2 (en) 2016-05-27 2021-02-23 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US10289438B2 (en) 2016-06-16 2019-05-14 Cisco Technology, Inc. Techniques for coordination of application components deployed on distributed virtual machines
US10708183B2 (en) 2016-07-21 2020-07-07 Cisco Technology, Inc. System and method of providing segment routing as a service
CN106295342B (zh) * 2016-08-19 2019-02-01 北京金山安全管理系统技术有限公司 检测和清除可移植可执行文件中感染型病毒的方法及装置
GB2554390B (en) * 2016-09-23 2018-10-31 1E Ltd Computer security profiling
US10972388B2 (en) 2016-11-22 2021-04-06 Cisco Technology, Inc. Federated microburst detection
US10708152B2 (en) 2017-03-23 2020-07-07 Cisco Technology, Inc. Predicting application and network performance
US10523512B2 (en) 2017-03-24 2019-12-31 Cisco Technology, Inc. Network agent for generating platform specific network policies
US10250446B2 (en) 2017-03-27 2019-04-02 Cisco Technology, Inc. Distributed policy store
US10594560B2 (en) 2017-03-27 2020-03-17 Cisco Technology, Inc. Intent driven network policy platform
US10764141B2 (en) 2017-03-27 2020-09-01 Cisco Technology, Inc. Network agent for reporting to a network policy system
US10873794B2 (en) 2017-03-28 2020-12-22 Cisco Technology, Inc. Flowlet resolution for application performance monitoring and management
US10680887B2 (en) 2017-07-21 2020-06-09 Cisco Technology, Inc. Remote device status audit and recovery
US10783138B2 (en) * 2017-10-23 2020-09-22 Google Llc Verifying structured data
US10554501B2 (en) 2017-10-23 2020-02-04 Cisco Technology, Inc. Network migration assistant
US10523541B2 (en) 2017-10-25 2019-12-31 Cisco Technology, Inc. Federated network and application data analytics platform
US10594542B2 (en) 2017-10-27 2020-03-17 Cisco Technology, Inc. System and method for network root cause analysis
US11233821B2 (en) 2018-01-04 2022-01-25 Cisco Technology, Inc. Network intrusion counter-intelligence
US11765046B1 (en) 2018-01-11 2023-09-19 Cisco Technology, Inc. Endpoint cluster assignment and query generation
US10798015B2 (en) 2018-01-25 2020-10-06 Cisco Technology, Inc. Discovery of middleboxes using traffic flow stitching
US10826803B2 (en) 2018-01-25 2020-11-03 Cisco Technology, Inc. Mechanism for facilitating efficient policy updates
US10917438B2 (en) 2018-01-25 2021-02-09 Cisco Technology, Inc. Secure publishing for policy updates
US10574575B2 (en) 2018-01-25 2020-02-25 Cisco Technology, Inc. Network flow stitching using middle box flow stitching
US10999149B2 (en) 2018-01-25 2021-05-04 Cisco Technology, Inc. Automatic configuration discovery based on traffic flow data
US10873593B2 (en) 2018-01-25 2020-12-22 Cisco Technology, Inc. Mechanism for identifying differences between network snapshots
US11128700B2 (en) 2018-01-26 2021-09-21 Cisco Technology, Inc. Load balancing configuration based on traffic flow telemetry
CN109254990A (zh) * 2018-09-11 2019-01-22 北京唐冠天朗科技开发有限公司 一种信息源采集和动态分析的方法和系统
CN110348214B (zh) * 2019-07-16 2021-06-08 电子科技大学 对恶意代码检测的方法及系统
US11522891B2 (en) * 2019-11-26 2022-12-06 Micro Focus Llc Machine learning anomaly detection of process-loaded DLLs
US11232199B2 (en) * 2019-12-27 2022-01-25 Mcafee, Llc Methods and apparatus to defend against DLL side-loading attacks
CN111797393B (zh) * 2020-06-23 2023-05-23 安天科技集团股份有限公司 基于gpu恶意挖矿行为的检测方法与装置
CN111797408B (zh) * 2020-09-09 2020-12-29 北京志翔科技股份有限公司 基于linux系统的可信计算方法及装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7650504B2 (en) * 1999-07-22 2010-01-19 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
EP1303802B1 (en) * 2000-07-25 2013-01-16 Rovi Solutions Corporation System and method of verifying the authenticity of dynamically connectable executable images
US7263616B1 (en) * 2000-09-22 2007-08-28 Ge Medical Systems Global Technology Company, Llc Ultrasound imaging system having computer virus protection
US7487544B2 (en) * 2001-07-30 2009-02-03 The Trustees Of Columbia University In The City Of New York System and methods for detection of new malicious executables
US7418729B2 (en) * 2002-07-19 2008-08-26 Symantec Corporation Heuristic detection of malicious computer code by page tracking
US7305564B2 (en) * 2002-12-19 2007-12-04 International Business Machines Corporation System and method to proactively detect software tampering
US20050108562A1 (en) * 2003-06-18 2005-05-19 Khazan Roger I. Technique for detecting executable malicious code using a combination of static and dynamic analyses
JP2005196286A (ja) * 2003-12-26 2005-07-21 Okuma Corp リアルタイムアプリケーションプログラムを動作可能なオペレーティングシステム及びその制御方法、共有ライブラリをロードする方法
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
US7631360B2 (en) * 2004-06-12 2009-12-08 Microsoft Corporation Hardware protection
JP4411173B2 (ja) * 2004-09-30 2010-02-10 富士通株式会社 コンピュータシステムの管理方法およびコンピュータ管理システムおよびコンピュータ管理プログラム
KR100745640B1 (ko) * 2005-08-11 2007-08-02 주식회사 웨어플러스 커널 메모리를 보호하는 방법 및 그 장치
KR100832074B1 (ko) * 2006-01-20 2008-05-27 엔에이치엔(주) 은닉 프로세스 모니터링 방법 및 모니터링 시스템
AU2006100099A4 (en) * 2006-02-08 2006-03-16 Pc Tools Technology Pty Limited Automated Threat Analysis System
US8020001B2 (en) * 2006-02-23 2011-09-13 Qualcomm Incorporated Trusted code groups
KR101253161B1 (ko) 2006-06-12 2013-04-10 엘지전자 주식회사 이동 단말기의 메시지 전송 방법 및 이를 위한 이동 단말기

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101056283B1 (ko) * 2009-10-29 2011-08-11 주식회사 반딧불소프트웨어 악성코드 검출 장치 및 그 방법
US8615806B2 (en) 2010-01-15 2013-12-24 Samsung Electronics Co., Ltd. Apparatus and method for detecting a code injection attack
KR20110084775A (ko) * 2010-01-18 2011-07-26 삼성전자주식회사 동적 링크 라이브러리 삽입 공격을 방지하는 컴퓨터 시스템 및 방법
US10372444B2 (en) 2017-03-03 2019-08-06 Foundation Of Soongsil University-Industry Cooperation Android dynamic loading file extraction method, recording medium and system for performing the method

Also Published As

Publication number Publication date
EP2065825A1 (en) 2009-06-03
JP2009129451A (ja) 2009-06-11
KR100938672B1 (ko) 2010-01-25
US20090133126A1 (en) 2009-05-21

Similar Documents

Publication Publication Date Title
KR100938672B1 (ko) 악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법
JP5087661B2 (ja) 正常プロセスに偽装挿入された悪性コード検出装置、システム及びその方法
KR101554633B1 (ko) 악성 코드 검출 장치 및 그 방법
Alazab et al. Towards understanding malware behaviour by the extraction of API calls
CN102664875B (zh) 基于云模式的恶意代码类别检测方法
Canfora et al. Acquiring and analyzing app metrics for effective mobile malware detection
US20090133125A1 (en) Method and apparatus for malware detection
EP2975873A1 (en) A computer implemented method for classifying mobile applications and computer programs thereof
CN106709325B (zh) 一种监控程序的方法及装置
KR101043299B1 (ko) 악성 코드 탐지 방법, 시스템 및 컴퓨터 판독 가능한 저장매체
CN104182688A (zh) 基于动态激活及行为监测的Android恶意代码检测装置和方法
KR20160046640A (ko) 시각화 유사도 기반 악성 어플리케이션 감지 장치 및 감지 방법
CN105095759A (zh) 文件的检测方法及装置
KR101816751B1 (ko) 하이퍼바이저 기반의 가상머신 모니터링 장치 및 방법
CN103390130A (zh) 基于云安全的恶意程序查杀的方法、装置和服务器
JP6000465B2 (ja) プロセス検査装置、プロセス検査プログラムおよびプロセス検査方法
NL2028230A (en) Methods and systems for preventing malicious activity in a computer system
KR101256468B1 (ko) 악성 파일 진단 장치 및 방법
CN108090352B (zh) 检测系统及检测方法
CN104598287A (zh) 恶意程序的检测方法、装置和客户端
Sihag et al. Opcode n-gram based malware classification in android
CN106302531B (zh) 安全防护方法、装置及终端设备
CN112632547A (zh) 一种数据处理方法和相关装置
CN116595523A (zh) 基于动态编排的多引擎文件检测方法、系统、设备及介质
KR101530530B1 (ko) 모바일단말의 악성 프로세스 실행 탐지 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121130

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141224

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151224

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160726

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180112

Year of fee payment: 9