KR102393795B1 - 응용프로그램의 실행 흐름 변경을 통한 비실행 파일의 악성 탐지 방법 및 장치 - Google Patents

응용프로그램의 실행 흐름 변경을 통한 비실행 파일의 악성 탐지 방법 및 장치 Download PDF

Info

Publication number
KR102393795B1
KR102393795B1 KR1020210112880A KR20210112880A KR102393795B1 KR 102393795 B1 KR102393795 B1 KR 102393795B1 KR 1020210112880 A KR1020210112880 A KR 1020210112880A KR 20210112880 A KR20210112880 A KR 20210112880A KR 102393795 B1 KR102393795 B1 KR 102393795B1
Authority
KR
South Korea
Prior art keywords
register
application program
execution
executable file
malicious
Prior art date
Application number
KR1020210112880A
Other languages
English (en)
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 KR1020210112880A priority Critical patent/KR102393795B1/ko
Priority to JP2022560981A priority patent/JP7483927B2/ja
Priority to EP21931940.7A priority patent/EP4386596A1/en
Priority to US17/783,154 priority patent/US20240104206A1/en
Priority to PCT/KR2021/012194 priority patent/WO2023027228A1/ko
Priority to CN202180027371.7A priority patent/CN116034363A/zh
Application granted granted Critical
Publication of KR102393795B1 publication Critical patent/KR102393795B1/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
    • 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
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명에 따른 비실행 파일의 악성 탐지 방법은, 가상환경에서, 비실행 파일에 대응하는 응용프로그램을 구동하여 상기 비실행 파일을 실행하는 단계; 상기 응용프로그램의 실행을 모니터링하는 단계; 상기 응용프로그램의 실행의 모니터링 중에, 기 설정된 브레이크포인트에서 상기 응용프로그램의 실행을 브레이크하는 단계; 상기 응용프로그램의 실행의 브레이크 상태에서, 상기 응용프로그램의 실행 흐름이 변경되도록 하고, 상기 응용프로그램의 실행을 재개하는 단계; 상기 응용프로그램의 실행이 재개된 후 실행되는 악성 행위를 탐지하는 단계를 포함한다.

Description

응용프로그램의 실행 흐름 변경을 통한 비실행 파일의 악성 탐지 방법 및 장치{APPARATUS AND METHOD FOR DETECTING MALICIOUSNESS OF NON-PE FILE THROUGH CHANGE OF EXECUTION FLOW OF APPLICATION}
본 발명은 비실행 파일의 악성 탐지 방법 및 장치에 관한 것으로, 보다 상세하게는 행위 기반 검사 방법에 의해 비실행 파일의 악성을 탐지하는 방법 및 장치에 관한 것이다.
광범위한 인터넷 및 무선통신 기기의 보급에 따라 악성 소프트웨어 또는 악성 코드(malicious code)의 전염경로가 다양해지고 있으며, 이로 인한 피해 정도가 매년 증가하고 있다. 악성 코드란 사용자의 의사와 이익에 반하여 시스템을 파괴하거나 정보를 유출하는 등의 악의적 활동을 수행하도록 의도적으로 제작된 소프트웨어를 말한다. 이러한 악성 코드의 종류로는 바이러스(virus), 웜(worm), 트로이얀(trojan), 백도어(backdoor), 논리폭탄(logic bomb), 트랩도어(trap door) 등의 해킹 툴, 악의적인 스파이웨어(spyware), 애드웨어(ad-ware) 등이 있다. 악성 코드는 자기복제나 자동번식 기능을 통하여, 사용자 식별정보(ID)와 암호 등의 개인정보 유출, 대상 시스템 통제, 파일 삭제/변경, 시스템 파괴, 응용프로그램 /시스템의 서비스 거부, 핵심 자료 유출, 다른 해킹 프로그램 설치 등의 문제를 일으키고 있으며, 그 피해도 매우 다양하고 심각하다.
최근 이슈가 되고 있는 지능형 지속 위협(APT: Advanced Persistent Threat) 공격은 공격자가 특정 타깃을 정하고 목표한 정보를 빼내기 위해 고도의 공격기법을 적용하여 지속적으로 다양한 형태의 악성 코드를 활용한다. 특히 APT 공격은 초기 침입단계에서 탐지하지 못하는 경우가 많으며, 주로 악성 코드를 포함하는 비실행((Non-PE: Non-Portable Executable) 파일을 이용하는 경우가 많다. 이는 비실행 파일을 실행하는 프로그램(예: 문서작성 또는 이미지 프로그램)이 기본적으로 어느 정도의 보안 취약성을 가지고 있을 뿐만 아니라, 악성 코드를 비실행 파일에 포함시키면 파일 변경에 따라 손쉽게 변종 악성 코드를 만들 수 있기 때문이다. 여기서, "비실행 파일"이란 실행(PE: Portable Executable) 파일 또는 실행 가능한 파일과 반대되는 개념으로서 자체적으로 실행되지 않는 파일을 의미한다. 예를 들어, 비실행 파일은 PDF 파일, 한글 파일, 워드 파일, 엑셀 파일과 같은 문서 파일, JPG 파일과 같은 이미지 파일, 동영상 파일, 자바 스크립크 파일, HTML 파일 등이 될 수 있다.
종래 기술에 따른 비실행 파일의 악성 여부 검사 방법으로, 시그니처 기반의 검사 방법이 있다. 이것은 비실행 파일이 악성 코드의 시그니처를 포함하는지를 검사하는 방법이다. 그런데 대부분의 악성 비실행 파일은 악성 코드를 자바스크립트나 매크로스크립트와 같은 스크립트에 포함시키거나 경우에 따라서는 스크립트를 인코딩하여 이러한 진단을 회피하는데, 비실행 파일 자체로는 그 안에 어떤 스크립트가 존재하는지 알기 어렵다. 따라서 기존의 시그니처 기반 검사 방법으로는 비실행 파일의 악성 여부를 제대로 검사하는 것이 거의 불가능하다.
비실행 파일의 악성 여부 검사를 위한 다른 방법으로, 행위 기반 검사 방법이 있다. 이것은 실제로 비실행 파일을 실행시켜서 악성 행위가 일어나는지를 검사하는 방법이다. 그러나 비실행 파일에 포함된 악성 코드는 특정 조건(예컨대, 응용프로그램의 버전, 운영체제 환경 등)이 만족하지 않으면 아무런 행위가 일어나지 않도록 설계될 수 있다. 따라서 행위 기반 검사 방법의 경우 응용프로그램의 모든 버전과 다양한 운영체제 환경에서 비실행 파일을 실행시켜 보고 행위를 관찰해야 하기 때문에 분석 시간이 오래 걸리고 악성 여부를 정확히 판별하기 어려운 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는, 응용프로그램의 버전이나 운영체제 환경 등의 특정 조건이 만족하지 않으면 악성 행위가 일어나지 않도록 설계된 비실행 파일의 악성을 효과적으로 탐지할 수 있는 비실행 파일의 악성 탐지 방법 및 장치를 제공하는 데 있다.
본 발명의 해결하고자 하는 과제는 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 비실행 파일의 악성 탐지 방법은, 가상환경에서, 비실행 파일에 대응하는 응용프로그램을 구동하여 상기 비실행 파일을 실행하는 단계; 상기 응용프로그램의 실행을 모니터링하는 단계; 상기 응용프로그램의 실행의 모니터링 중에, 기 설정된 브레이크포인트에서 상기 응용프로그램의 실행을 브레이크하는 단계; 상기 응용프로그램의 실행의 브레이크 상태에서, 상기 응용프로그램의 실행 흐름이 변경되도록 하고, 상기 응용프로그램의 실행을 재개하는 단계; 상기 응용프로그램의 실행이 재개된 후 실행되는 악성 행위를 탐지하는 단계를 포함한다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 비실행 파일의 악성 탐지 장치는, 가상환경에서, 비실행 파일에 대응하는 응용프로그램을 구동하여 상기 비실행 파일을 실행하는 응용프로그램 구동부; 상기 응용프로그램의 실행을 모니터링하고, 상기 응용프로그램의 실행의 모니터링 중에, 기 설정된 브레이크포인트에서 상기 응용프로그램의 실행을 브레이크하고, 상기 응용프로그램의 실행의 브레이크 상태에서, 상기 응용프로그램의 실행 흐름이 변경되도록 하고, 상기 응용프로그램의 실행을 재개하는 응용프로그램 실행 흐름 변경부; 및 상기 응용프로그램의 실행이 재개된 후 실행되는 악성 행위를 탐지하는 악성 행위 탐지부를 포함한다.
상기된 본 발명에 의하면, 응용프로그램의 버전이나 운영체제 환경 등의 특정 조건이 만족하지 않으면 악성 행위가 일어나지 않도록 설계된 비실행 파일의 악성을 효과적으로 탐지할 수 있다.
본 발명의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 비실행 파일의 악성 탐지 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 비실행 파일의 악성 탐지 방법의 흐름도이다.
도 3은 HWP 프로그램의 실행 과정에서 플래그를 변경함으로써 실행 흐름을 변경하는 동작의 예를 보여준다.
도 4는 HWP 프로그램이 종료되지 않고 계속 실행되어 악성 행위가 탐지된 결과를 보여준다.
도 5는 실행 중인 가상 환경의 특징 정보를 확인하여 가상 환경인 경우 악성 행위를 하지 않도록 설계된 악성 매크로의 일 예를 나타낸다.
도 6은 레지스터에 저장된 화면 크기 값을 변경하는 예를 보여준다.
도 7은 메모리에 저장된 사운드 드라이버의 유무를 나타내는 값을 변경하는 예를 보여준다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
도 1은 본 발명의 일 실시예에 따른 비실행 파일의 악성 탐지 장치의 블록도이다.
본 실시예에 따른 비실행 파일의 악성 탐지 장치는, 사용자 인터페이스(110), 가상환경 생성부(120), 응용프로그램 저장부(130), 응용프로그램 구동부(140), 응용프로그램 실행 흐름 변경부(150), 및 악성 행위 탐지부(160)를 포함한다.
사용자 인터페이스(110)는 검사하고자 하는 비실행 파일이 저장된 디렉토리 또는 비실행 파일을 선택하기 위한 인터페이스를 제공한다.
가상환경 생성부(120)는 본 발명의 실시예에 따른 비실행 파일의 악성 탐지 장치가 구현되는 컴퓨터 환경 내에 가상환경(180)을 생성한다. 가상환경(180)은 예컨대 잘 알려진 바와 같은 샌드박스(Sandbox)일 수 있다. 가상환경(180)은, 프로세스 상태를 나타내는 플래그, 레지스터, 메모리를 가진다.
응용프로그램 저장부(130)는 검사하고자 하는 비실행 파일을 실행시키기 위한 다양한 형식의 응용프로그램을 저장하고 있다. 응용프로그램 저장부(130)는 예컨대, 아크로뱃 리더, MS Word, 파워포인트, 엑셀, 아래한글, 이미지 뷰어 프로그램, 동영상 뷰어 프로그램, 인터넷 익스플로러 등의 응용프로그램을 저장하고 있다.
응용프로그램 구동부(140)는 사용자 인터페이스(110)를 통해 선택된 비실행 파일의 형식을 판단하고, 응용프로그램 저장부(130)에서 비실행 파일의 형식에 대응하는 응용프로그램을 선택한다. 그리고 응용프로그램 구동부(140)는 선택된 응용프로그램을 가상환경(180)에서 구동하여 비실행 파일을 실행시킨다.
본 실시예에 따른 비실행 파일의 악성 탐지 장치는, 응용프로그램의 버전이나 운영체제 환경 등의 특정 조건과 무관하게 비실행 파일의 악성을 탐지할 수 있도록 하는 응용프로그램 실행 흐름 변경부(150)를 포함한다.
악성 비실행 파일은 응용프로그램의 버전이나 운영체제 환경 등의 특정 조건이 만족하지 않으면 응용프로그램을 종료하거나 아무런 악성 행위가 발생하지 않는 흐름으로 분기하는 분기 지점들을 가질 수 있다. 비실행 파일은 사전에 분석가에 의해 분석되어 이러한 가능성을 가지는 분기 지점에 브레이크포인트가 설정될 수 있다. 해당 분기 지점과 연관되어, 응용프로그램을 종료하지 않고 계속 실행하거나 악성 행위가 발생할 수 있는 흐름으로 유도할 수 있는 조건이 설정될 수 있다.
응용프로그램 실행 흐름 변경부(150)는, 응용프로그램의 실행을 모니터링하고, 응용프로그램의 실행의 모니터링 중에, 브레이크포인트로 설정된 분기 지점에서 응용프로그램의 실행을 브레이크한다. 그리고 응용프로그램 실행 흐름 변경부(150)는, 설정된 조건을 이용하여, 응용프로그램이 계속 실행되거나 악성 행위가 발생할 수 있도록 응용프로그램의 실행 흐름이 변경되도록 한 다음, 응용프로그램의 실행을 재개한다. 응용프로그램 실행 흐름 변경부(150)는 분기 지점에서 응용프로그램의 실행 흐름이 변경되도록 하기 위해, 프로세스 상태를 변경하거나, 레지스터의 값을 변경하거나, 메모리의 특정 주소의 값을 변경할 수 있다.
악성 행위 탐지부(160)는 응용프로그램의 실행 과정을 모니터링하여 통상의 행위 기반 검사 방법을 통해 악성 행위를 탐지한다. 응용프로그램의 실행 흐름 변경이 없었다면 탐지되지 않았을 악성 행위가, 응용프로그램 실행 흐름 변경부(150)를 통해 응용프로그램의 실행 흐름이 변경됨에 따라 나타나게 되므로 악성 행위 탐지부(160)에 의해 탐지될 수 있다.
도 2는 본 발명의 일 실시예에 따른 비실행 파일의 악성 탐지 방법의 흐름도이다.
210단계에서, 응용프로그램 구동부(140)가 가상환경(180)에서 비실행 파일에 대응하는 응용프로그램을 구동하여 비실행 파일을 실행한다.
220단계에서, 응용프로그램 실행 흐름 변경부(150)는 응용프로그램의 실행을 모니터링하기 시작한다.
250단계에서, 응용프로그램 실행 흐름 변경부(150)는 설정된 브레이크포인트에서 응용프로그램의 실행을 브레이크한다.
260단계에서, 응용프로그램 실행 흐름 변경부(150)는 응용프로그램의 실행 흐름이 변경되도록, 프로세스 상태, 레지스터 값, 또는 메모리의 특정 주소의 값을 변경한다.
270단계에서, 응용프로그램 실행 흐름 변경부(150)는 응용프로그램의 실행을 재개하고, 계속 응용프로그램의 실행을 모니터링한다.
한편, 응용프로그램의 실행이 모니터링되는 동안, 230단계에서 악성 행위가 발생하면, 240단계에서 악성 행위 탐지부(160)는 해당 악성 행위를 탐지한다.
악성 행위 탐지부(160)에 의해 악성 행위가 탐지되면, 비실행 파일의 악성 탐지 장치는 해당 비실행 파일이 악성이라는 탐지 결과를 출력하고 탐지 과정을 종료할 수 있다.
설정된 모든 브레이크포인트에서 분기 가능한 모든 실행 흐름을 따라 응용프로그램이 실행되었으나 악성 행위 탐지부(160)에 의해 악성 행위가 탐지되지 않으면, 비실행 파일의 악성 탐지 장치는 해당 비실행 파일이 악성이 아니라는 탐지 결과를 출력하고 탐지 과정을 종료할 수 있다.
응용프로그램 실행 흐름 변경부(150)가 프로세스 상태를 변경하여 응용프로그램의 실행 흐름을 변경하는 실시예를 설명하면 다음과 같다.
프로세스는 실행 과정에서 데이터 연산에 의한 프로세스 상태를 플래그(eflag)라는 스위치의 조합 형태의 정보로 관리한다. 플래그들은 각각 0 또는 1의 값을 가져 스위치와 같은 역할을 수행한다. 프로세스 실행 과정에서 분기 지점을 만나면 명령어에서 확인되는 스위치의 값(0 또는 1)에 따라 분기가 수행된다. 예를 들어, 어떤 두 개의 값을 비교하여 값이 같다면 Zero Flag(ZF)가 1로 설정되고, 어떤 두 개의 값을 더했을 때 4바이트(32비트 운영체제 기준)를 넘는 값이 나오면 Overflow Flag(OF)가 1로 설정된다. 이후 조건 점프 명령을 사용하여, 예컨대 ZF가 0이면 점프(JE, Jump if Equal)하거나 ZF가 1이면 점프(JNE, Jump if Not Equal)하는 형태로 실행 흐름이 분기될 수 있다.
도 3은 HWP 프로그램의 실행 과정에서 플래그를 변경함으로써 실행 흐름을 변경하는 동작의 예를 보여준다. 도 3을 참조하면, 0283C769 번지의 주소에서, al 레지스터의 값과 10이라는 값이 비교되고, 두 값이 같은지 같지 않은지의 프로세스 상태를 나타내는 ZF(같다면 1, 같지 않다면 0)의 값이 0으로 설정된다. 0283C76B 번지의 주소에서, 앞에서의 비교 결과가 같다면 지정된 주소(283C825)로 점프하라는 명령을 실행하는데, 이때 ZF의 값을 확인하여 점프 여부를 결정한다. 여기서 비교 결과가 같다면 주소 283C825로 점프하여 응용프로그램은 계속 실행된다. 그러나 비교 결과가 같지 않다면 다음 명령어가 실행되어, 결과적으로 응용프로그램의 버전이 맞지 않아 응용프로그램은 강제로 종료된다. 따라서, 응용프로그램의 실행 흐름을 변경하지 않고 그대로 둔다면, ZF의 값은 0이므로 응용프로그램은 종료하게 된다.
본 발명의 실시예에서는, 분기 지점인 0283C76B 번지의 주소에 브레이크포인트가 설정되고, ZF의 값이 1로 변경되도록 설정된다. 브레이크 상태에서 ZF의 값이 1로 변경되고 응용프로그램의 실행이 재개되면, 조건 점프 명령에 따라 주소 283C825로 점프하여 응용프로그램은 계속 실행되어, 응용프로그램의 계속 실행 중에 악성 행위가 발생하게 된다. 그러면 악성 행위는 악성 행위 탐지부(160)에 의해 탐지된다. 도 4는 HWP 프로그램이 종료되지 않고 계속 실행되어 악성 행위 탐지부(160)에 의해 악성 행위가 탐지된 결과를 보여준다. ZF의 값의 변경이 없었다면, 응용프로그램은 강제로 종료되므로 악성 행위는 탐지되지 못할 것이다.
본 실시예에서 ZF를 변경하여 프로세스 상태를 변경하는 경우를 예로 들었으나, ZF 뿐만 아니라 Sign Flag(SF), Overflow Flag(OF), Auxiliary Carry Flag(AC), Carry Flag(CF) 등의 다양한 플래그를 변경하여 프로세스 상태를 변경할 수 있음은 물론이다.
본 발명의 실시예에 따르면, 악성 행위가 동작하기 위한 조건(예컨대 응용프로그램의 버전)이 맞지 않아 응용프로그램을 종료하는 로직을 비실행 파일이 가지는 경우, 분기 지점에서 프로세스 상태를 변경하여 응용프로그램이 계속 실행되도록 함으로써 악성 행위가 동작하는 것을 정확하게 탐지할 수 있다.
응용프로그램 실행 흐름 변경부(150)가 레지스터 값을 변경하여 응용프로그램의 실행 흐름을 변경하는 실시예를 설명하면 다음과 같다.
비실행 파일을 실행하여 악성으로 의심되는 행위를 탐지하는 행위 기반 검사 방법은 악성 코드를 실행하기 위해 격리된 가상 환경에서 분석을 수행한다. 가상 환경은 고유한 특징 정보를 가지는데, 고도로 제작된 비실행 파일 형태의 악성 코드는 가상 환경의 특징 정보를 확인하여 악성 행위를 발생시키지 않도록 설계될 수 있다. 예를 들면, 디스플레이 크기가 정해진 크기보다 작은 경우 가상 환경으로 판단하여 악성 행위를 하지 않도록 설계되거나, 메모리 크기가 정해진 크기보다 작은 경우 가상 환경으로 판단하여 악성 행위를 하지 않도록 설계될 수 있다.
도 5는, 엑셀 4.0 매크로를 사용하여, 실행 중인 가상 환경의 특징 정보를 확인하여 실행 중인 환경이 가상 환경이 아닌 경우에 악성 행위를 실행하고 가상 환경인 경우 악성 행위를 하지 않도록 설계된 악성 매크로의 일 예를 나타낸다.
도 5를 참조하면, 2번째 셀과 4번째 셀의 명령은 다음과 같다.
A2 = GET.WORKSPACE(13)
A4 = IF(A2<770,CLOSE(FALSE),)
위 명령은, A2 셀에 GET.WORKSPACE(13) 명령을 실행하여 화면의 크기(가로 크기)를 가져와 저장하고, A4 셀에서 A2 값이 770보다 작으면 CLOSE 명령에 의해 매크로를 종료한다. A2 값이 770보다 작지 않으면 다음 명령을 계속해서 실행된다. 가상 환경의 화면의 크기는 통상적으로 770보다 작으므로, 가상 환경의 경우 A4 셀에서의 비교 결과에 따라 매크로가 종료되므로 기존의 행위 기반 검사 방법으로는 악성을 판별할 수 없다.
본 발명의 실시예에서는, A4 셀에 해당하는 분기 지점의 주소에 브레이크포인트가 설정되고, 레지스터에 저장된 화면의 크기 값을 변경함으로써, 매크로가 종료되지 않고 계속 실행되어 악성 행위가 발생할 수 있도록 유도한다.
도 6은 본 발명의 실시예에 따라, 레지스터에 저장된 화면 크기 값을 변경하는 예를 보여준다. GET.WORKSPACE(13) 명령을 통해 가져온 화면의 크기는 EAX 레지스터에 저장된다. 도 6을 참조하면, 실행 중인 가상 환경에서의 화면의 크기인 0x380이 저장된다. 여기서 EAX 레지스터의 값을 충분히 큰 값인 0x9999로 변경하면, A4 셀의 비교 결과 A2 값이 770보다 크므로 다음 명령이 계속해서 실행되고 악성 행위가 일어날 수 있게 된다.
본 실시예에서는 EAX 레지스터의 값을 변경하여 응용프로그램의 실행 흐름을 변경하는 경우를 예로 들었으나, EAX 레지스터 뿐만 아니라 EBX 레지스터, ECX 레지스터, EDX 레지스터, ESI 레지스터, EDI 레지스터, EBP 레지스터, ESP 레지스터 등의 다양한 레지스터의 값을 변경하여 응용프로그램의 실행 흐름을 변경할 수 있음은 물론이다.
본 발명의 실시예에 따르면, 실행 환경을 파악하여 조건에 맞지 않으면 매크로를 종료하는 로직의 악성 매크로를 포함하는 비실행 파일의 경우, 분기 지점에서 레지스터에 저장된 값을 변경하여 매크로가 종료되지 않고 계속 실행되도록 함으로써 악성 행위가 동작하는 것을 정확하게 탐지할 수 있다.
응용프로그램 실행 흐름 변경부(150)가 메모리의 특정 주소의 값을 변경하여 응용프로그램의 실행 흐름을 변경하는 실시예를 설명하면 다음과 같다.
다시 도 5를 참조하면, 1번째 셀의 명령은 다음과 같다.
A1 = IF(GET.WORKSPACE(42),,CLOSE(TRUE))
위 명령은, 사운드 드라이버의 유무를 확인하는 GET.WORKSPACE(42) 명령의 실행 결과 사운드 드라이버가 있다면 다음 명령을 계속해서 실행하고 사운드 드라이버가 없다면 CLOSE 명령에 의해 매크로를 종료한다. 가상 환경의 경우 사운드 드라이버가 없으므로, GET.WORKSPACE(42) 명령의 실행 결과에 따라 매크로가 종료되므로 기존의 행위 기반 검사 방법으로는 악성을 판별할 수 없다.
본 발명의 실시예에서는, A1 셀에 해당하는 분기 지점의 주소에 브레이크포인트가 설정되고, 메모리의 특정 주소에 저장된 사운드 드라이버의 유무를 나타내는 값을 변경함으로써, 매크로가 종료되지 않고 계속 실행되어 악성 행위가 발생할 수 있도록 유도한다.
GET.WORKSPACE(42) 명령은, 해당 반환값을 가져와 EAX 레지스터에 저장하고, EAX 레지스터에 저장된 값에 소정의 연산(shr eax,1, and eax,1)을 수행하여 사운드 드라이버의 유무를 불리언(boolean) 값으로 나타내 EDI 레지스터가 가리키는 메모리 주소에 저장한다. 도 7은 EDI 레지스터가 가리키는 주소 001335A8에 사운드 드라이버가 '없음'을 나타내는 '0'이 저장된 것을 나타낸다. 주소 001335A8에 저장된 값이 0이라면 사운드 드라이버가 없는 것으로, 1이라면 사운드 드라이버가 있는 것으로 판단할 수 있다. EDI 레지스터가 가리키는 주소 001335A8의 값을 '0'에서 '1'로 변경하면 다음 명령이 계속해서 실행되고 악성 행위가 일어날 수 있게 된다.
본 실시예에서는 EDI 레지스터가 가리키는 주소의 값을 변경하여 응용프로그램의 실행 흐름을 변경하는 경우를 예로 들었으나, EDI 레지스터 뿐만 아니라, EAX 레지스터, EBX 레지스터, ECX 레지스터, EDX 레지스터, ESI 레지스터, EBP 레지스터, ESP 레지스터 등의 다양한 레지스터가 가리키는 주소의 값을 변경하여 응용프로그램의 실행 흐름을 변경할 수 있음은 물론이다.
이와 같이 본 발명의 실시예에 따르면, 실행 환경을 파악하여 조건에 맞지 않으면 매크로를 종료하는 로직의 악성 매크로를 포함하는 비실행 파일의 경우, 분기 지점에서 메모리의 특정 주소에 저장된 값을 변경하여 매크로가 종료되지 않고 계속 실행되도록 함으로써 악성 행위가 동작하는 것을 정확하게 탐지할 수 있다.
상술한 본 발명의 실시예들에 의하면, 실행 조건이 맞지 않은 경우 악성 행위가 일어나지 않도록 설계된 악성 비실행 파일의 경우에도 프로세스 상태, 레지스터의 값, 또는 메모리에 저장된 값을 조작하여 악성 행위가 일어날 수 있도록 유도함으로써 악성을 정확하게 탐지할 수 있다.
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (18)

  1. 행위 기반 검사 방법에 의해 비실행 파일의 악성을 탐지하는 방법에 있어서,
    가상환경에서, 비실행 파일에 대응하는 응용프로그램을 구동하여 상기 비실행 파일을 실행하는 단계 - 여기서, 상기 비실행 파일은 화면의 크기를 소정 값과 비교하는 조건문 또는 사운드 드라이버 유무에 따른 조건문을 포함하는 매크로를 포함함 - ;
    상기 응용프로그램의 실행을 모니터링하는 단계;
    상기 응용프로그램의 실행의 모니터링 중에, 상기 조건문에 해당하는 분기 지점에 설정된 브레이크포인트에서 상기 응용프로그램의 실행을 브레이크하는 단계;
    상기 응용프로그램의 실행의 브레이크 상태에서, 레지스터에 저장된 화면 크기 값을 특정 값으로 변경하거나 메모리의 특정 주소에 저장된 사운드 드라이버 유무를 나타내는 값을 사운드 드라이버 있음을 나타내는 값으로 변경함으로써, 상기 응용프로그램의 실행 흐름이 변경되도록 하고, 상기 응용프로그램의 실행을 재개하는 단계;
    상기 응용프로그램의 실행이 재개된 후 상기 매크로에 의해 실행되는 악성 행위를 탐지하는 단계를 포함하는, 행위 기반 검사 방법에 의해 비실행 파일의 악성을 탐지하는 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 제1항에 있어서,
    상기 레지스터는 EAX 레지스터, EBX 레지스터, ECX 레지스터, EDX 레지스터, ESI 레지스터, EDI 레지스터, EBP 레지스터, ESP 레지스터 중 적어도 하나를 포함하는, 행위 기반 검사 방법에 의해 비실행 파일의 악성을 탐지하는 방법.
  8. 삭제
  9. 제1항에 있어서,
    상기 메모리의 특정 주소는 EAX 레지스터, EBX 레지스터, ECX 레지스터, EDX 레지스터, ESI 레지스터, EDI 레지스터, EBP 레지스터, 또는 ESP 레지스터가 가리키는 주소인, 행위 기반 검사 방법에 의해 비실행 파일의 악성을 탐지하는 방법.
  10. 행위 기반 검사 방법에 의해 비실행 파일의 악성을 탐지하는 장치에 있어서,
    가상환경에서, 비실행 파일에 대응하는 응용프로그램을 구동하여 상기 비실행 파일을 실행하는 응용프로그램 구동부 - 여기서, 상기 비실행 파일은 화면의 크기를 소정 값과 비교하는 조건문 또는 사운드 드라이버 유무에 따른 조건문을 포함하는 매크로를 포함함 - ;
    상기 응용프로그램의 실행을 모니터링하고, 상기 응용프로그램의 실행의 모니터링 중에, 상기 조건문에 해당하는 분기 지점에 설정된 브레이크포인트에서 상기 응용프로그램의 실행을 브레이크하고, 상기 응용프로그램의 실행의 브레이크 상태에서, 레지스터에 저장된 화면 크기 값을 특정 값으로 변경하거나 메모리의 특정 주소에 저장된 사운드 드라이버 유무를 나타내는 값을 사운드 드라이버 있음을 나타내는 값으로 변경함으로써, 상기 응용프로그램의 실행 흐름이 변경되도록 하고, 상기 응용프로그램의 실행을 재개하는 응용프로그램 실행 흐름 변경부; 및
    상기 응용프로그램의 실행이 재개된 후 상기 매크로에 의해 실행되는 악성 행위를 탐지하는 악성 행위 탐지부를 포함하는, 행위 기반 검사 방법에 의해 비실행 파일의 악성을 탐지하는 장치.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 제10항에 있어서,
    상기 레지스터는 EAX 레지스터, EBX 레지스터, ECX 레지스터, EDX 레지스터, ESI 레지스터, EDI 레지스터, EBP 레지스터, ESP 레지스터 중 적어도 하나를 포함하는, 행위 기반 검사 방법에 의해 비실행 파일의 악성을 탐지하는 장치.
  17. 삭제
  18. 제10항에 있어서,
    상기 메모리의 특정 주소는 EAX 레지스터, EBX 레지스터, ECX 레지스터, EDX 레지스터, ESI 레지스터, EDI 레지스터, EBP 레지스터, 또는 ESP 레지스터가 가리키는 주소인, 행위 기반 검사 방법에 의해 비실행 파일의 악성을 탐지하는 장치.
KR1020210112880A 2021-08-26 2021-08-26 응용프로그램의 실행 흐름 변경을 통한 비실행 파일의 악성 탐지 방법 및 장치 KR102393795B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020210112880A KR102393795B1 (ko) 2021-08-26 2021-08-26 응용프로그램의 실행 흐름 변경을 통한 비실행 파일의 악성 탐지 방법 및 장치
JP2022560981A JP7483927B2 (ja) 2021-08-26 2021-09-08 応用プログラムの実行流れ変更を通じた非実行ファイルの悪性探知方法及び装置
EP21931940.7A EP4386596A1 (en) 2021-08-26 2021-09-08 Method and device for detecting malignancy of non-portable executable file through execution flow change of application program
US17/783,154 US20240104206A1 (en) 2021-08-26 2021-09-08 Method and apparatus for detecting maliciousness of non-portable executable file by changing executing flow of application program
PCT/KR2021/012194 WO2023027228A1 (ko) 2021-08-26 2021-09-08 응용프로그램의 실행 흐름 변경을 통한 비실행 파일의 악성 탐지 방법 및 장치
CN202180027371.7A CN116034363A (zh) 2021-08-26 2021-09-08 通过改变应用程序的执行流来探测非可执行文件的恶意的方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210112880A KR102393795B1 (ko) 2021-08-26 2021-08-26 응용프로그램의 실행 흐름 변경을 통한 비실행 파일의 악성 탐지 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102393795B1 true KR102393795B1 (ko) 2022-05-03

Family

ID=81591188

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210112880A KR102393795B1 (ko) 2021-08-26 2021-08-26 응용프로그램의 실행 흐름 변경을 통한 비실행 파일의 악성 탐지 방법 및 장치

Country Status (6)

Country Link
US (1) US20240104206A1 (ko)
EP (1) EP4386596A1 (ko)
JP (1) JP7483927B2 (ko)
KR (1) KR102393795B1 (ko)
CN (1) CN116034363A (ko)
WO (1) WO2023027228A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102472523B1 (ko) * 2022-05-26 2022-11-30 시큐레터 주식회사 리버싱 엔진 기반의 문서 행위를 판단하기 위한 방법 및 이를 위한 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090065277A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 특정 이벤트/조건에서 동작하는 윈도우용 악성 코드탐지를 위한 프로그램 자동 분석 장치 및 방법
KR101646096B1 (ko) * 2016-01-21 2016-08-05 시큐레터 주식회사 메모리 분석을 통한 비실행 파일의 악성 여부 검사 방법 및 장치

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409717B1 (en) * 2002-05-23 2008-08-05 Symantec Corporation Metamorphic computer virus detection
KR100516304B1 (ko) * 2003-05-16 2005-09-26 주식회사 안철수연구소 프로세스메모리의 악성코드 검출기 및 그 방법
US8195953B1 (en) * 2005-10-25 2012-06-05 Trend Micro, Inc. Computer program with built-in malware protection
US20100146589A1 (en) * 2007-12-21 2010-06-10 Drivesentry Inc. System and method to secure a computer system by selective control of write access to a data storage medium
US9058483B2 (en) * 2008-05-08 2015-06-16 Google Inc. Method for validating an untrusted native code module
US8424082B2 (en) * 2008-05-08 2013-04-16 Google Inc. Safely executing an untrusted native code module on a computing device
US20100095281A1 (en) * 2008-10-14 2010-04-15 Riverside Research Institute Internal Function Debugger
US10943030B2 (en) * 2008-12-15 2021-03-09 Ibailbonding.Com Securable independent electronic document
KR101060596B1 (ko) * 2009-07-09 2011-08-31 한국전자통신연구원 악성 파일 탐지 시스템, 악성 파일 탐지 장치 및 그 방법
US9678747B2 (en) * 2011-02-08 2017-06-13 Openspan, Inc. Code injection and code interception in an operating system with multiple subsystem environments
US8650642B2 (en) * 2011-03-31 2014-02-11 Mcafee, Inc. System and method for below-operating system protection of an operating system kernel
US20120255031A1 (en) * 2011-03-28 2012-10-04 Mcafee, Inc. System and method for securing memory using below-operating system trapping
US9329887B2 (en) * 2011-10-19 2016-05-03 Hob Gmbh & Co. Kg System and method for controlling multiple computer peripheral devices using a generic driver
US9424427B1 (en) * 2012-03-16 2016-08-23 Bitdefender IPR Management Ltd. Anti-rootkit systems and methods
KR101265173B1 (ko) * 2012-05-11 2013-05-15 주식회사 안랩 비실행 파일 검사 장치 및 방법
US9384349B2 (en) * 2012-05-21 2016-07-05 Mcafee, Inc. Negative light-weight rules
US9536091B2 (en) * 2013-06-24 2017-01-03 Fireeye, Inc. System and method for detecting time-bomb malware
US10133863B2 (en) * 2013-06-24 2018-11-20 Fireeye, Inc. Zero-day discovery system
US8930916B1 (en) * 2014-01-31 2015-01-06 Cylance Inc. Generation of API call graphs from static disassembly
US9330028B2 (en) * 2014-03-27 2016-05-03 Intel Corporation Instruction and logic for a binary translation mechanism for control-flow security
US9223972B1 (en) * 2014-03-31 2015-12-29 Fireeye, Inc. Dynamically remote tuning of a malware content detection system
US9390260B2 (en) * 2014-06-09 2016-07-12 Lehigh University Methods for enforcing control flow of a computer program
US9824214B2 (en) * 2014-08-15 2017-11-21 Securisea, Inc. High performance software vulnerabilities detection system and methods
US10599852B2 (en) * 2014-08-15 2020-03-24 Securisea, Inc. High performance software vulnerabilities detection system and methods
CN104484599B (zh) * 2014-12-16 2017-12-12 北京奇虎科技有限公司 一种基于应用程序的行为处理方法和装置
US10650140B2 (en) * 2015-03-27 2020-05-12 Intel Corporation Control-flow integrity with managed code and unmanaged code
US9516055B1 (en) * 2015-05-29 2016-12-06 Trend Micro Incorporated Automatic malware signature extraction from runtime information
US20160357958A1 (en) * 2015-06-08 2016-12-08 Michael Guidry Computer System Security
EP3121749B1 (en) * 2015-07-22 2019-06-26 Nxp B.V. Method and apparatus for ensuring control flow integrity
US9898605B2 (en) * 2015-12-24 2018-02-20 Mcafee, Llc Monitoring executed script for zero-day attack of malware
US10204219B2 (en) * 2017-06-05 2019-02-12 Karamba Security In-memory protection for controller security
US10460108B1 (en) * 2017-08-16 2019-10-29 Trend Micro Incorporated Method and system to identify and rectify input dependency based evasion in dynamic analysis
US10360134B2 (en) * 2017-10-31 2019-07-23 Commissariat A L'energie Atomique Et Aux Energies Alternatives System, method and computer program product for detecting infeasible events in dynamic programs
US10795998B2 (en) * 2018-03-02 2020-10-06 Cisco Technology, Inc. Dynamic routing of files to a malware analysis system
US11574051B2 (en) * 2018-08-02 2023-02-07 Fortinet, Inc. Malware identification using multiple artificial neural networks
EP3877874A1 (en) * 2018-11-06 2021-09-15 Dover Microsystems, Inc. Systems and methods for stalling host processor
US11714905B2 (en) * 2019-05-10 2023-08-01 Sophos Limited Attribute relevance tagging in malware recognition
US11689561B2 (en) * 2019-11-11 2023-06-27 Microsoft Technology Licensing, Llc Detecting unknown malicious content in computer systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090065277A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 특정 이벤트/조건에서 동작하는 윈도우용 악성 코드탐지를 위한 프로그램 자동 분석 장치 및 방법
KR101646096B1 (ko) * 2016-01-21 2016-08-05 시큐레터 주식회사 메모리 분석을 통한 비실행 파일의 악성 여부 검사 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102472523B1 (ko) * 2022-05-26 2022-11-30 시큐레터 주식회사 리버싱 엔진 기반의 문서 행위를 판단하기 위한 방법 및 이를 위한 장치
WO2023229066A1 (ko) * 2022-05-26 2023-11-30 시큐레터 주식회사 리버싱 엔진 기반의 문서 행위를 판단하기 위한 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
CN116034363A (zh) 2023-04-28
EP4386596A1 (en) 2024-06-19
US20240104206A1 (en) 2024-03-28
WO2023027228A1 (ko) 2023-03-02
JP7483927B2 (ja) 2024-05-15
JP2023547969A (ja) 2023-11-15

Similar Documents

Publication Publication Date Title
Afianian et al. Malware dynamic analysis evasion techniques: A survey
KR101265173B1 (ko) 비실행 파일 검사 장치 및 방법
Carlini et al. {ROP} is still dangerous: Breaking modern defenses
JP5908132B2 (ja) プログラムの脆弱点を用いた攻撃の探知装置および方法
KR102307534B1 (ko) 다수 소프트웨어 개체들에 걸쳐서 악성 행동을 트래킹하기 위한 시스템들 및 방법들
KR101212553B1 (ko) 악성 파일 검사 장치 및 방법
RU2531861C1 (ru) Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
EP2756366B1 (en) Systems, methods, and media for detecting return-oriented programming payloads
CN110048997B (zh) 处理故障注入攻击的安全系统和方法
US20160224789A1 (en) System and method for hypervisor-based security
CN102043915B (zh) 一种非可执行文件中包含恶意代码的检测方法及其装置
KR101646096B1 (ko) 메모리 분석을 통한 비실행 파일의 악성 여부 검사 방법 및 장치
CN108319850B (zh) 沙箱检测的方法、沙箱系统和沙箱设备
KR101244731B1 (ko) 디버그 이벤트를 이용한 악성 쉘 코드 탐지 장치 및 방법
Zhang et al. Identifying and analyzing pointer misuses for sophisticated memory-corruption exploit diagnosis
KR102393795B1 (ko) 응용프로그램의 실행 흐름 변경을 통한 비실행 파일의 악성 탐지 방법 및 장치
KR100745640B1 (ko) 커널 메모리를 보호하는 방법 및 그 장치
KR100745639B1 (ko) 파일 시스템 및 레지스트리를 보호하는 방법 및 그 장치
Laurén et al. An interface diversified honeypot for malware analysis
KR100666562B1 (ko) 커널 드라이버 및 프로세스 보호 방법
Grill et al. “Nice Boots!”-A Large-Scale Analysis of Bootkits and New Ways to Stop Them
KR101908517B1 (ko) 스트링과 코드 시그니처를 이용한 악성코드 탐지 및 패커 해제 방법
Kim et al. Defeating anti-debugging techniques for malware analysis using a debugger
Joy et al. A host based kernel level rootkit detection mechanism using clustering technique
WO2008036665A2 (en) Methods, media, and systems for detecting attack on a digital processing device

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant