KR102170737B1 - 악성 스레드를 추적하는 장치 및 방법 - Google Patents

악성 스레드를 추적하는 장치 및 방법 Download PDF

Info

Publication number
KR102170737B1
KR102170737B1 KR1020200038559A KR20200038559A KR102170737B1 KR 102170737 B1 KR102170737 B1 KR 102170737B1 KR 1020200038559 A KR1020200038559 A KR 1020200038559A KR 20200038559 A KR20200038559 A KR 20200038559A KR 102170737 B1 KR102170737 B1 KR 102170737B1
Authority
KR
South Korea
Prior art keywords
thread
harmful
malicious
determined
unit
Prior art date
Application number
KR1020200038559A
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 KR1020200038559A priority Critical patent/KR102170737B1/ko
Application granted granted Critical
Publication of KR102170737B1 publication Critical patent/KR102170737B1/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
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action

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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 개시는 악성 스레드를 추적하는 장치 및 방법에 관한 것으로, 일 실시예에 따른 악성 스레드를 추적하는 방법은 스레드 및 프로세스의 생성을 추적하는 단계, 스레드 및 프로세스의 연산을 모니터링 하고, 스레드 및 프로세스의 연산 정보를 취합하는 단계, 스레드 및 프로세스에 관한 정보와 스레드 및 프로세스의 연산 정보를 기초로 하여 스레드 및 프로세스의 유해성 여부를 판단하는 단계 및 스레드 또는 프로세스가 유해하다고 판단되는 경우, 유해하다고 판단된 스레드, 유해하다고 판단된 프로세스, 유해하다고 판단된 스레드 또는 프로세스와 연관된 스레드 및 유해하다고 판단된 스레드 또는 프로세스와 연관된 프로세스 중 적어도 하나를 차단하는 단계를 포함함으로써 악성 스레드의 생성을 추적하여 효과적으로 치료할 수 있다.

Description

악성 스레드를 추적하는 장치 및 방법 {APPARATUS AND METHOD FOR TRACKING MALICIOUS THREADS}
본 개시는 악성 스레드를 추적하는 장치 및 방법을 제공한다.
Windows 운영체제 환경 하에서 프로세스 행위를 기반으로 하는 악성코드 탐지 및 차단 시스템은 프로세스 자체가 악성코드인 경우에는 큰 어려움 없이 진단하고 치료할 수 있다.
기존의 연구는 프로세스 행위 기반의 진단방법을 제안하고 있다. 빠르고 정확한 진단을 위해서 악성코드 DB로 1차 확인과정을 거친 다음 악성으로 판별되지 않은 프로세스에 대해서는 행위를 지속적으로 모니터링 하면서 비정상 행위를 수행하는지 지켜보는 것이다.
그러나 악성코드의 동작이 고도화됨에 따라 악의적인 연산을 수행하는 주체가 프로세스가 아닌 스레드로 동작하는 경우가 늘고 있으며, 악의적인 행위를 수행하는 주체가 프로세스가 아니라 정상적인 시스템에서 구동되고 있는 시스템 운영 프로세스 (예를 들어, svchost.exe, csrss.exe, explorer.exe, 등)에 생성된 리모트 스레드에 의한 것이라면 진단 및 치료가 까다롭다.
인젝션 기술을 사용하면 정상적인 프로세스에 리모트 스레드를 생성하여 악성행위를 수행할 수 있다. 더 나아가 리모트 스레드의 파생 스레드에 의해서 악성행위를 수행할 수도 있다. 정상적인 시스템 운영 프로세스에 인젝션 기술을 사용하여 리모트 스레드를 생성하였고, 그 스레드가 악의적인 행위를 한다고 했을 때 프로세스 기준으로만 행위를 취합하고 진단 및 치료하게 되면 시스템에 심각한 영향을 줄 수 있다.
이에 따라, 프로세스를 기준으로 진단하는 것이 아닌 스레드를 기준으로 행위를 취합하여 진단에 활용하는 기술이 요구된다.
KR 10-1444141 KR 10-1775602
악성 스레드를 추적하는 장치 및 방법을 제공하는 데 있다. 또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체를 제공하는 데 있다. 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제 1측면은, 스레드 및 프로세스의 생성을 추적하는 생성 추적부; 상기 스레드 및 상기 프로세스의 연산을 모니터링 하고, 상기 스레드 및 상기 프로세스의 연산 정보를 취합하는 연산 수집부; 상기 생성 추적부 및 상기 연산 수집부와 연계하여 상기 스레드 및 상기 프로세스의 유해성 여부를 판단하는 악성 진단부; 및 상기 악성 진단부에서 상기 스레드 또는 상기 프로세스가 유해하다고 판단되는 경우, 상기 유해하다고 판단된 스레드, 상기 유해하다고 판단된 프로세스, 상기 유해하다고 판단된 스레드 또는 프로세스와 연관된 스레드 및 상기 유해하다고 판단된 스레드 또는 프로세스와 연관된 프로세스 중 적어도 하나를 차단하는 차단부;를 포함하는 악성 스레드 추적 장치를 제공할 수 있다.
또한, 상기 생성 추적부는, 커널 드라이버를 포함하고, 상기 커널 드라이버는 상기 스레드가 생성될 때 마다 상기 스레드의 생성 통지를 수신하는 악성 스레드 추적 장치를 제공할 수 있다.
또한, 상기 생성 추적부는, 프로세스 식별자 및 스레드 식별자를 이용하여 상기 스레드 및 프로세스의 생성을 추적하고 관리하는 악성 스레드 추적 장치를 제공할 수 있다.
또한, 상기 생성 추적부는, 상기 스레드를 생성하는 주체 프로세스 및 주체 스레드, 상기 주체 스레드로부터 생성되는 대상 스레드 및 상기 대상 스레드가 생성되는 대상 프로세스의 정보를 확인하고, 상기 주체 프로세스와 상기 대상 프로세스가 다르고 상기 대상 스레드가 최초로 생성된 스레드가 아닌 경우, 상기 대상 스레드를 리모트 스레드로 판단하는 악성 스레드 추적 장치를 제공할 수 있다.
또한, 상기 생성 추적부는, 상기 리모트 스레드를 생성한 주체 스레드, 상기 리모트 스레드 및 상기 리모트 스레드에 의해 생성된 파생 스레드의 생성을 추적하는 악성 스레드 추적 장치를 제공할 수 있다.
또한, 상기 연산 수집부는, 상기 스레드의 행위에 따라 구분되는 상기 스레드의 연산을 모니터링하고, 기준 식별자를 이용하여 상기 스레드를 기준으로 상기 모니터링 된 연산의 정보를 취합하는 악성 스레드 추적 장치를 제공할 수 있다.
또한, 상기 연산은, 상기 프로세스의 생성 및 종료 연산, 상기 스레드의 생성 및 종료 연산, 파일 연산 및 레지스트리 연산을 포함하는 악성 스레드 추적 장치를 제공할 수 있다.
또한, 상기 악성 진단부는, 상기 생성 추적부로부터 리모트 스레드를 생성한 주체 프로세스에 대한 정보를 확인하고, 상기 주체 프로세스에 대한 상기 유해성 여부를 판단하는 악성 스레드 추적 장치를 제공할 수 있다.
또한, 상기 악성 진단부는, 상기 모니터링 된 연산의 정보를 기초로 하여 리모트 스레드 및 상기 리모트 스레드로부터 생성된 파생 스레드에 대한 상기 유해성 여부를 판단하는 악성 스레드 추적 장치를 제공할 수 있다.
또한, 상기 차단부는, 상기 악성 진단부에서 상기 주체 프로세스가 유해하다고 판단되는 경우, 상기 유해하다고 판단된 주체 프로세스 및 상기 유해하다고 판단된 주체 프로세스와 연관된 스레드를 차단하는 악성 스레드 추적 장치를 제공할 수 있다.
또한, 상기 차단부는, 상기 악성 진단부에서 상기 리모트 스레드가 유해하다고 판단되는 경우, 상기 생성 추적부와 연계하여 상기 유해하다고 판단된 리모트 스레드 및 상기 유해하다고 판단된 리모트 스레드와 연관된 프로세스를 차단하는 악성 스레드 추적 장치를 제공할 수 있다.
또한, 상기 차단부는, 상기 악성 진단부에서 상기 파생 스레드가 유해하다고 판단되는 경우, 상기 유해하다고 판단된 파생 스레드, 상기 유해하다고 판단된 파생 스레드와 연관된 스레드 및 상기 유해하다고 판단된 파생 스레드와 연관된 프로세스를 차단하는 악성 스레드 추적 장치를 제공할 수 있다.
본 개시의 제 2측면은, 악성 스레드 추적 방법에 있어서, 스레드 및 프로세스의 생성을 추적하는 단계; 상기 스레드 및 상기 프로세스의 연산을 모니터링 하고, 상기 스레드 및 상기 프로세스의 연산 정보를 취합하는 단계; 상기 스레드 및 상기 프로세스에 관한 정보 및 상기 스레드 및 상기 프로세스의 연산 정보를 기초로 하여 상기 스레드 및 상기 프로세스의 유해성 여부를 판단하는 단계; 및 상기 스레드 또는 상기 프로세스가 유해하다고 판단되는 경우, 상기 유해하다고 판단된 스레드, 상기 유해하다고 판단된 프로세스, 상기 유해하다고 판단된 스레드 또는 프로세스와 연관된 스레드 및 상기 유해하다고 판단된 스레드 또는 프로세스와 연관된 프로세스 중 적어도 하나를 차단하는 단계;를 포함하는 악성 스레드 추적 방법을 제공할 수 있다.
본 개시의 제 3측면은, 제 2측면에 따른 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체를 제공할 수 있다.
본 개시의 제 4측면은, 악성 스레드 추적 장치에 있어서, 메모리; 및 프로세서;를 포함하고, 상기 프로세서는, 스레드 및 프로세스의 생성을 추적하고, 상기 스레드 및 상기 프로세스의 연산을 모니터링 하고, 상기 스레드 및 상기 프로세스의 연산 정보를 취합하고, 상기 스레드 및 상기 프로세스에 관한 정보 및 상기 스레드 및 상기 프로세스의 연산 정보를 기초로 하여 상기 스레드 및 상기 프로세스의 유해성 여부를 판단하고, 상기 스레드 또는 상기 프로세스가 유해하다고 판단되는 경우, 상기 유해하다고 판단된 스레드, 상기 유해하다고 판단된 프로세스, 상기 유해하다고 판단된 스레드 또는 프로세스와 연관된 스레드 및 상기 유해하다고 판단된 스레드 또는 프로세스와 연관된 프로세스 중 적어도 하나를 차단하는 악성 스레드 추적 장치를 제공할 수 있다.
본 개시는, 악의적인 행위를 수행한 스레드인지 여부를 판단하기 위해 스레드의 행위를 기준으로 유해성 여부를 판단할 수 있고, 유해한 스레드로 판단되면, 이와 관련된 스레드를 차단하여 시스템이 비정상적으로 동작하는 것을 방지할 수 있다.
구체적으로, 시스템 운영 프로세스에 리모트 스레드 방식의 인젝션을 수행하여 악의적인 공격이 행해지고, 치료를 위해 시스템 운영 프로세스를 종료시키게 되면 BSOD(Blue Screen Of Death)등이 발생할 수 있는데, 이를 방지하기 위해 시스템 운영 프로세스에서 동작하는 악의적인 스레드가 확인되면 스레드 생성 체인을 확인하여 스레드 생성 체인과 관련된 스레드를 치료하고, 시스템 운영 프로세스를 종료하지 않아 시스템 운영 프로세스는 치료 후에도 정상적으로 제 기능을 수행할 수 있다.
도 1 및 도 2는 스레드의 생성을 설명하기 위한 예시도들이다.
도 3은 일 실시예에 따른 악성 스레드 추적 장치의 블록도이다.
도 4는 도 3에 도시된 악성 스레드 추적 장치에 구비된 생성 추적부(310)를 설명하기 위한 도면이다.
도 5는 도 3에 도시된 악성 스레드 추적 장치에 구비된 연산 수집부(320)를 설명하기 위한 도면이다.
도 6은 도 3에 도시된 악성 진단부(330)의 동작 방법을 설명하기 위한 흐름도이다.
도 7은 도 3에 도시된 차단부(340)의 동작 방법을 설명하기 위한 흐름도이다.
도 8은 다른 실시예에 따른 악성 스레드 추적 장치의 블록도이다.
본 실시예들에서 사용되는 용어는 본 실시예들에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 실시예들에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 실시예들 전반에 걸친 내용을 토대로 정의되어야 한다.
본 실시예들은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 일부 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 실시예들을 특정한 개시형태에 대해 한정하려는 것이 아니며, 본 실시예들의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 명세서에서 사용한 용어들은 단지 실시예들의 설명을 위해 사용된 것으로, 본 실시예들을 한정하려는 의도가 아니다.
본 실시예들에 사용되는 용어들은 다르게 정의되지 않는 한, 본 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 실시예들에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.
본 개시의 일부 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단” 및 “구성”등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 또한, 명세서에 기재된 "...부", "...모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1 및 도 2는 스레드의 생성을 설명하기 위한 예시도들이다.
도 1을 참조하면, 공격 프로세스(110)의 스레드(130)는 타겟 프로세스(120)에 리모트 스레드(140)를 생성할 수 있다.
프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램으로, 운영체제로부터 시스템 자원을 할당받는 작업의 단위를 의미할 수 있다. 스레드는 프로세스 내에서 실행되는 여러 흐름의 단위로, 프로세스 당 최소 1개의 스레드를 가지고 있으며, 한 프로세스 내 여러 개의 스레드(Thread)가 존재할 수 있다. 악성코드는 프로세스, 스레드 등에서 실행될 수 있고, 악성 스레드는 악의적인 행위를 수행하는 악성코드를 가진 스레드를 의미할 수 있다.
공격 프로세스(110)는 공격을 실행하려는 프로세스를 의미하고, 타겟 프로세스(120)는 공격 프로세스(110)의 공격의 대상이 되는 프로세스를 의미하고, 스레드(130)는 공격 프로세스(110)의 스레드를 의미하고, 리모트 스레드(140)는 인젝션 기술 등에 의해 생성된 스레드를 의미할 수 있다.
일 실시예에서, 공격 프로세스(110)의 스레드(130)는 인젝션 기술을 등을 사용하여 타겟 프로세스(120)에 리모트 스레드(140)를 생성할 수 있다. 인젝션 기술은 프로세스에 리모트 스레드를 생성할 수 있는 기술로, DLL 인젝션, 코드 인젝션 등을 포함할 수 있으나, 이에 제한되지 않는다.
DLL 인젝션은 실행중인 다른 프로세스에 특정 DLL 파일을 강제로 삽입하여 사용자가 원하는 DLL을 로딩하는 것이며, 코드 인젝션은 DLL 인젝션과 유사하나 DLL 파일 대신 직접 실행 가능한 셸 코드(shell code)를 삽입하여 리모트 스레드를 생성하는 것을 의미할 수 있다.
스레드(130)로부터 생성된 리모트 스레드(140)는 별도의 다른 스레드를 생성하지 않고 리모트 스레드(140)가 직접 악의적인 행위를 수행할 수 있다.
도 2를 참조하면, 리모트 스레드(220)는 타겟 프로세스 내부에 파생 스레드를 생성할 수 있다. 도 2의 공격 프로세스, 타겟 프로세스, 스레드 a(210) 및 리모트 스레드(220)는 도 1의 공격 프로세스(110), 타겟 프로세스(120), 스레드(130) 및 리모트 스레드(140)에 대응되므로 중복되는 내용은 생략한다.
스레드 a(210)는 인젝션 기술 등을 이용하여 리모트 스레드(220)를 생성할 수 있고, 리모트 스레드(220)로부터 파생 스레드들이 생성되어 스레드 b(230)를 생성할 수 있고, 스레드 b(230)는 스레드 c(240)을 생성하여 스레드 생성 체인이 만들어질 수 있다.
파생 스레드는 타겟 프로세스 내 리모트 스레드(220)로부터 생성된 스레드를 의미할 수 있고, 스레드 생성 체인은 리모트 스레드에 의해 생성된 스레드들의 생성 과정을 의미할 수 있다.
일 실시예에서, 리모트 스레드(220)는 타겟 프로세스 내 다른 스레드 b(230)를 생성할 수 있고, 스레드 b(230)는 다른 스레드 c(240)를 생성할 수 있으며, 스레드 b(230) 및 스레드 c(240)는 리모트 스레드(220)가 생성한 파생 스레드에 해당할 수 있다. 리모트 스레드(220)가 파생 스레드 b(230)을 생성하고, 파생 스레드 b(230)로부터 다른 파생 스레드 c(240)을 생성하는 과정은 스레드 생성 체인에 해당할 수 있다.
리모트 스레드(220)가 악의적인 행위를 수행하지 않고, 최종적으로 생성된 파생 스레드 c(240)가 악의적인 행위를 수행하는 악성 스레드일 수 있다. 시스템 운영 프로세스에 인젝션을 수행하여 리모트 스레드, 파생 스레드 등이 악의적인 행위를 수행하는 경우 치료하기가 어려운 바, 이하에서는 이와 같은 경우에도 악성 스레드를 진단하고 치료할 수 있는 장치 및 방법에 관하여 상세히 설명한다.
도 3은 일 실시예에 따른 악성 스레드 추적 장치의 블록도이다.
도 3을 참조하면, 악성 스레드 추적 장치(300)는 생성 추적부(310), 연산 수집부(320), 악성 진단부(330) 및 차단부(340)를 포함할 수 있다. 도 3에 도시된 악성 스레드 추적 장치(300)에는 본 실시예와 관련된 구성요소들이 도시되어 있다. 따라서, 도 3에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 악성 스레드 추적 장치(300)에 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
악성 스레드 추적 장치(300)는 생성 추적부(310)에서 스레드 및 프로세스의 생성을 추적할 수 있다. 생성 추적부(310)는 커널 드라이버로 구성될 수 있으며, 생성 추적부(310)는 스레드가 생성될 때 마다 스레드의 생성 통지를 수신하여 스레드의 생성을 추적할 수 있다.
생성 추적부(310)는 주체 프로세스, 주체 스레드, 대상 프로세스 및 대상 스레드의 정보를 확인하고, 리모트 스레드를 판단할 수 있다.
주체 스레드는 임의의 스레드를 생성하는 스레드를 의미하고, 주체 프로세스는 주체 스레드를 가지고 있는 프로세스를 의미하고, 대상 스레드는 주체 스레드로부터 생성되는 스레드이고, 대상 프로세스는 대상 스레드가 생성되는 프로세스를 의미할 수 있다.
일 실시예에서, 생성 추적부(310)는 주체 프로세스, 주체 스레드, 대상 프로세스 및 대상 스레드의 정보를 확인하여, 주체 프로세스와 대상 프로세스가 다르고 대상 스레드가 최초로 생성된 스레드가 아닌 경우, 대상 스레드를 리모트 스레드로 판단할 수 있다. 프로그램 등을 실행하는 경우 스레드가 생성될 수 있는데, 프로세스 생성 과정 중에 생성된 프로세스의 최초 스레드는 리모트 스레드에 해당하지 않을 수 있다. 예를 들어, 탐색기에서 노트패드를 실행하는 경우 주체 프로세스와 대상 프로세스가 다르나, 대상 스레드가 대상 프로세스에서 최초로 생성된 스레드이므로 대상 스레드를 리모트 스레드로 판단하지 않을 수 있다.
생성 추적부(310)는 프로세스 식별자 및 스레드 식별자를 이용하여 스레드 및 프로세스의 생성을 추적하고 관리할 수 있다.
프로세스 식별자(Process ID)는 유닉스 커널과 같은 운영체계에서 각 프로세스를 식별하기 위해 할당하는 고유한 번호로 프로세스의 우선순위를 조정하거나 종료하는 등의 다양한 함수 호출에 사용될 수 있고, 스레드 식별자(Thread ID)는 스레드를 식별하기 위해 할당하는 번호로 스레드의 CPU 사용, 메모리 사용 등 유용한 정보를 얻을 수 있다.
일 실시예에서, 생성 추적부(310)는 프로세스 식별자 및 스레드 식별자를 이용하여 리모트 스레드를 판단할 수 있고, 리모트 스레드를 생성한 주체 스레드 및 리모트 스레드에 의해 생성된 파생 스레드의 생성을 추적할 수 있다.
예를 들어, 프로세스 식별자가 100인 주체 프로세스의 주체 스레드가 프로세스 식별자가 200인 대상 프로세스에 대상 스레드를 생성하였고, 대상 스레드가 프로세스 식별자가 200인 프로세스에 최초로 생성된 스레드가 아닌 경우, 주체 프로세스의 식별자 100 과 대상 프로세스의 식별자 200이 다르므로 생성 추적부(310)는 대상 스레드를 리모트 스레드로 판단할 수 있다. 또한, 스레드 식별자가 220인 스레드가 리모트 스레드를 생성한 경우, 스레드 식별자가 220인 스레드를 리모트 스레드를 생성한 주체 스레드로 추적할 수 있다.
악성 스레드 추적 장치(300)는 연산 수집부(320)에서 스레드 및 프로세스의 연산을 모니터링 하고, 스레드 및 프로세스의 연산 정보를 취합할 수 있다.
일 실시예에서, 연산 수집부(320)는 스레드의 연산을 모니터링하고, 기준 식별자를 이용하여 스레드를 기준으로 연산 정보를 취합할 수 있다.
기준 식별자는 실시간으로 발생하는 모니터링 정보를 누가 수행하고 있는지 구별할 수 있는 식별자로, 기준 식별자를 이용하여 연산정보를 취합하면 기준 식별자 별로 어떠한 연산을 수행하였는지 확인할 수 있다. 기준 식별자는 스레드 생성 시간, 프로세스 생성 시간, 프로세스 식별자, 스레드 식별자 등을 포함할 수 있으나, 이에 제한되지 않는다.
연산 수집부(320)에서 스레드의 연산에 대한 모니터링 정보를 스레드의 생성 시간을 기준으로 취합할 수 있고, 취합된 연산은 스레드의 행위에 따라 구분될 수 있다.
악성 스레드 추적 장치(300)는 악성 진단부(330)에서 스레드 및 프로세스의 유해성 여부를 판단할 수 있다. 악성 진단부(330)는 생성 추적부(310) 및 연산 수집부(320)와 연계하여 주체 프로세스, 리모트 스레드, 파생 스레드 등의 유해성 여부를 판단할 수 있다.
일 실시예에서, 악성 진단부(330)는 생성 추적부(310)로부터 리모트 스레드를 생성한 주체 프로세스에 대한 정보를 확인할 수 있고, 리모트 스레드를 생성한 주체 프로세스의 유해성 여부를 판단할 수 있다.
악성 진단부(330)는 패턴 매칭, 해시값 비교 등을 통해 주체 프로세스의 유해성 여부를 판단할 수 있으나, 이에 제한되지 않는다. 패턴 매칭은 주어진 메시지에서 찾고자 하는 문자열이 존재하는지를 확인하는 작업으로, 네트워크에서 쓰이거나 악성코드를 찾아내는데 사용될 수 있다. 해시값은 디지털 데이터의 동일성 여부를 검사하기 위해 파일에 지정하는 수학적 수치로, 해시값을 비교하여 데이터의 위변조를 확인하거나 악성코드를 검출할 수 있다.
예를 들어, 주체 프로세스 파일의 해시값이 100이고, 개발자로부터 배포된 파일의 해시값이 100이라면, 두 파일의 해시값은 동일하므로 주체 프로세스 파일이 위변조 되지 않았고, 악성 진단부(330)는 주체 프로세스를 유해하다고 판단하지 않을 수 있다. 주체 프로세스 파일의 해시값이 110이고, 개발자로부터 배포된 파일의 해시값이 100이라면, 두 파일의 해시값이 달라 주체 프로세스 파일이 위변조된 것일 수 있으며, 위변조된 주체 프로세스는 악의적인 목적으로 리모트 스레드를 생성할 수 있으므로, 악성 진단부(330)는 리모트 스레드를 생성한 주체 프로세스를 유해하다고 판단할 수 있다.
악성 진단부(330)는 연산 수집부(320)와 연계하여 리모트 스레드 및 파생 스레드의 유해성 여부를 판단할 수 있다.
일 실시예에서, 악성 진단부(330)는 스레드의 실시간 진단을 하지 못하는 경우, 연산 수집부(320)에서 모니터링 된 연산의 정보를 기초로 하여, 리모트 스레드 및 파생 스레드에 대해 유해성 여부를 판단할 수 있다. 실시간 진단이 불가능한 경우 리모트 스레드에 의해서 실행된 스레드 생성 체인이 존재할 수도 있다.
실시간 진단을 하지 못하는 경우는 주체 프로세스에 대한 자체 파일 정보 만으로 실시간 진단이 불가능한 경우를 포함하고, 기존의 백신 제품들은 악성 프로세스, 악성 스레드, 변종 스레드 등이 새로 생성되는 것을 빠르게 업데이트 하지 못하여 변종 스레드 등에 대한 악성 진단을 실시간으로 하지 못할 수 있다. 이에 따라, 백신 프로그램 등에서 정보를 가지고 있지 않은 변종 스레드 등의 경우, 스레드의 행위를 기반으로 빠르게 유해성 여부를 진단하는 것이 필요하므로 악성 진단부(330)는 행위에 따라 구분되는 연산 정보를 기초로 스레드의 유해성 여부를 판단할 수 있다.
예를 들어, 랜섬웨어는 PC에 존재하는 문서 파일등을 암호화하여 사용할 수 없도록 만든 뒤 이를 인질로 하여 PC 사용자에게 금전을 요구하는 악성코드로, 악성 진단부(330)는 연산 수집부(320)에서 취합된 랜섬웨어의 연산 정보를 기초로 하여 암호화된 파일을 발견할 수 있고, 랜섬웨어의 리모트 스레드를 유해하다고 판단할 수 있다.
악성 스레드 추적 장치(300)는 차단부(340)에서 스레드, 프로세스 등을 차단할 수 있다. 차단부(340)는 스레드 또는 프로세스가 유해하다고 판단된 경우, 유해하다고 판단된 프로세스, 유해하다고 판단된 스레드, 유해하다고 판단된 스레드 또는 프로세스와 연관된 스레드, 유해하다고 판단된 스레드 또는 프로세스와 연관된 프로세스를 차단할 수 있다. 차단은 스레드, 프로세스 등을 종료하거나 삭제하는 것을 의미할 수 있으나, 이에 제한되지 않는다.
일 실시예에서, 차단부(340)는 악성 진단부(330)에서 주체 프로세스가 유해하다고 판단되는 경우, 주체 프로세스 및 주체 프로세스와 연관된 스레드를 차단할 수 있고, 주체 프로세스와 연관된 스레드는 주체 스레드로부터 생성된 리모트 스레드를 의미할 수 있다.
또한, 차단부(340)는 악성 진단부(330)에서 리모트 스레드가 유해하다고 판단되는 경우, 생성 추적부(310)와 연계하여 리모트 스레드를 생성한 주체 프로세스에 대한 정보를 확인할 수 있고, 유해하다고 판단된 리모트 스레드 및 이와 연관된 프로세스를 차단할 수 있다. 유해하다고 판단된 리모트 스레드와 연관된 프로세스는, 유해하다고 판단된 리모트 스레드를 생성한 주체 프로세스를 의미할 수 있다.
차단부(340)는 악성 진단부(330)에서 파생 스레드가 유해하다고 판단되는 경우, 실시간 진단이 불가능하여 스레드 생성 체인이 존재할 수 있으므로 생성 추적부(310)와 연계하여 스레드 생성 체인, 파생 스레드를 생성한 리모트 스레드, 리모트 스레드를 생성한 주체 프로세스등의 정보를 확인할 수 있고, 유해하다고 판단된 파생 스레드 뿐만 아니라 파생 스레드를 생성한 리모트 스레드, 스레드 생성 체인과 연관된 스레드, 리모트 스레드를 생성한 주체 스레드 전부 악의적인 행위를 수행한다고 볼 수 있으므로 유해하다고 판단된 파생 스레드, 이와 연관된 스레드 및 프로세스를 차단할 수 있다. 유해하다고 판단된 파생 스레드와 연관된 스레드는, 파생 스레드의 스레드 생성 체인 내에 있는 스레드, 리모트 스레드 등을 의미할 수 있고, 유해하다고 판단된 파생 스레드와 연관된 프로세스는 파생 스레드와 연관된 리모트 스레드를 생성한 주체 프로세스를 의미할 수 있다.
도 4는 도 3에 도시된 악성 스레드 추적 장치에 구비된 생성 추적부(310)를 설명하기 위한 도면이다.
도 4를 참조하면, 생성 추적부는 스레드 및 프로세스의 생성을 추적할 수 있고, 추적 테이블(450)을 이용하여 생성을 추적하고 관리할 수 있다. 한편, 도 4의 생성 추적부는 도 3의 생성 추적부(310)에 대응되고, 도 4의 공격 프로세스, 타겟 프로세스, 스레드 a(410), 스레드 r(420), 스레드 b(430), 스레드 c(440)는 도 2의 공격 프로세스, 타겟 프로세스, 스레드 a(210), 리모트 스레드(220), 스레드 b(230), 스레드 c(240)에 대응되므로 중복되는 내용은 생략한다.
SrcPID는 주체 프로세스의 프로세스 아이디, SrcTID는 주체 스레드의 스레드 아이디, DstPID는 대상 프로세스의 프로세스 아이디, DstTID는 대상 스레드의 스레드 아이디를 의미할 수 있다.
일 실시예에서, #1 과정에서 스레드 a(410)는 스레드 r(420)을 생성하였으므로 주체 스레드에 해당할 수 있고, 스레드 a(410)로부터 생성된 스레드 r(420)은 대상 스레드에 해당할 수 있다. 스레드 a(410)의 SrcTID는 110이고, 스레드 r(420)의 DstTID는 220이고, 스레드 a(410)가 있는 주체 프로세스의 SrcPID는 100이고, 스레드 r(420)이 있는 대상 프로세스의 DstPID는 200일 수 있다. SrcPID와 DstPID가 다르므로, 스레드 r(420)이 프로세스 내에서 최초로 생성된 스레드가 아닌 경우를 가정한다면, 생성 추적부는 스레드 r(420)을 리모트 스레드로 판단할 수 있다.
#2 과정에서, 스레드 r(420)은 스레드 b(430)를 생성할 수 있고, 스레드 r(420)은 스레드 b(430)를 생성한 주체 스레드에 해당할 수 있고, 스레드 r(420)로부터 생성된 스레드 b(430)는 대상 스레드에 해당할 수 있다. 스레드 r(420)의 SrcTID는 220이고, 스레드 b(430)의 DstTID는 230이고, 스레드 r(420)이 있는 주체 프로세스의 SrcPID는 200이고, 스레드 b(430)가 있는 대상 프로세스의 DstPID는 200일 수 있다. SrcPID와 DstPID가 200으로 같으므로, 생성 추적부는 대상 스레드인 스레드 b(430)를 리모트 스레드로 판단하지 않을 수 있다.
#3 과정에서, 스레드 b(430)는 스레드 c(440)를 생성할 수 있고, 스레드 b(430)는 스레드 c(440)를 생성한 주체 스레드에 해당할 수 있고, 스레드 b(430)로부터 생성된 스레드 c(440)는 대상 스레드에 해당할 수 있다. 스레드 b(430)의 SrcTID는 230이고, 스레드 c(440)의 DstTID는 240이고, 스레드 b(430)가 있는 주체 프로세스의 SrcPID는 200이고, 스레드 c(440)가 있는 대상 프로세스의 DstPID는 200일 수 있다. SrcPID와 DstPID가 200으로 같으므로, 생성 추적부는 대상 스레드인 스레드 c(440)를 리모트 스레드로 판단하지 않을 수 있다.
생성 추적부는 추적 테이블(450)을 이용하여, 스레드 c(440)가 악의적인 행위를 수행하는 악성 스레드인 경우 스레드 생성 체인을 확인할 수 있고, 스레드 c(440)는 TID가 230 스레드 b(430)로부터 생성되었으며, 스레드 b(430)는 TID가 220인 리모트 스레드 r(420)로부터 생성되었으며, 리모트 스레드 r(420)은 TID가 110인 스레드 a(410)로부터 생성되었고, 리모트 스레드 r(420)을 생성한 주체 프로세스의 PID는 100임을 추적할 수 있다.
도 5는 도 3에 도시된 악성 스레드 추적 장치에 구비된 연산 수집부(320)를 설명하기 위한 도면이다.
도 5를 참조하면, 연산 수집부(520)는 프로세스 및 스레드의 연산을 모니터링 하고, 모니터링 된 연산의 정보를 취합할 수 있다. 도 5의 연산 수집부(520)는 도 3의 연산 수집부(320)에 대응되므로 중복되는 내용은 생략한다.
연산은 파일 연산, 레지스트리 연산, 프로세스의 생성 및 종료 연산, 스레드의 생성 및 종료 연산 등을 포함할 수 있고, 연산 정보(530)는 연산 수집부(520)에서 모니터링 된 파일 연산, 레지스트리 연산, 프로세스의 생성 및 종료 연산, 스레드의 생성 및 종료 연산의 정보를 의미할 수 있고, 모니터링 한 결과, 연산 주체 등을 포함할 수 있으나, 이에 제한되지 않는다.
파일 연산은, 일반적인 프로그램, 악성코드 등의 경우에도 파일을 다룰 때 임시 파일을 생성하고 이름변경 또는 이동연산을 수행하여, 최종적으로 파일 경로를 결정하는 연산이 빈번하게 발생하므로 파일의 경로상의 변경과정을 추적하기 위해 사용될 수 있다. 파일 연산 정보는 파일 연산 주체인 프로세스 및 스레드의 정보, 파일 연산 대상인 파일 경로 정보 등일 수 있다.
레지스트리 연산은 프로세스 및 스레드의 추적을 위해 시스템 재시작 시 자동 실행되는 프로그램 목록에 대한 설정 변경을 모니터링 하기 위해 사용될 수 있다. 레지스트리 연산 정보는 프로세스 및 스레드의 정보, 레지스트리 경로 정보 등일 수 있다.
프로세스의 생성 및 종료 연산, 스레드의 생성 및 종료 연산은 임의의 프로세스가 어떤 프로세스를 생성하는지, 어떤 스레드를 어느 프로세스에 생성하는지 등을 모니터링하기 위해 사용될 수 있다. 프로세스의 생성 및 종료 연산 정보는 프로세스 식별자, 주체 및 대상 프로세스에 관한 정보일 수 있고 , 스레드의 생성 및 종료 연산 정보는 스레드 식별자, 주체 및 대상 스레드에 관한 정보 등일 수 있다.
일 실시예에서, 연산 수집부(520)는 타겟 프로세스(510)의 여러 스레드의 연산을 모니터링 하고, 연산 정보(530)를 취합할 수 있다. 타겟 프로세스(510)에는 여러 개의 스레드가 공존할 수 있고, 정상적인 행위를 수행하는 정상 스레드와 악의적인 행위를 수행하는 악성 스레드가 공존할 수 있다. 스레드의 행위에 따라 연산 정보(530)는 차이가 날 수 있다. 예를 들어, 랜섬웨어는 타겟 프로세스(510)에 악성 스레드를 생성할 수 있다. 연산 수집부(520)에서 악성 스레드의 파일 연산을 모니터링할 수 있고, 랜섬웨어의 파일 연산을 모니터링한 경우, 악성 스레드가 암호화한 파일의 목록과 비트코인 결제 정보를 기록한 노트 파일의 생성이력 등을 확인할 수 있는 연산 정보(530)를 취합할 수 있다.
또한, 연산 수집부(520)는 악성 진단부의 추적 테이블을 이용하여 스레드의 연산을 모니터링 하고, 연산 정보를 취합할 수 있다. 예를 들어, 연산 수집부(520)는 추적 테이블을 이용하여 리모트 스레드와 그 파생 스레드를 구별할 수 있고, 구별된 스레드의 스레드 생성시간을 기준 식별자로 하여 모니터링 된 연산 정보를 취합할 수 있다.
일 실시예에서, 연산 수집부(520)에서 취합된 연산 정보(530)는 생성 추적부에 제공될 수 있다. 예를 들어, 연산 수집부(520)에서 모니터링 된 스레드의 생성 및 종료 연산 정보(530)는 생성 추적부에 제공될 수 있고, 생성 추적부는 스레드의 생성을 확인할 수 있다.
도 6은 도 3에 도시된 악성 진단부(330)의 동작 방법을 설명하기 위한 흐름도이다.
도 6을 참조하면, 악성 스레드 추적 장치의 악성 진단부는 스레드 및 프로세스의 유해성을 판단할 수 있다. 도 6의 악성 진단부는 도 3의 악성 진단부(330)에 대응되므로 중복되는 내용은 생략한다.
단계 610에서, 악성 진단부는 주체 프로세스에 대한 자체 파일 정보 만으로 스레드 및 프로세스의 실시간 진단이 가능한지 여부를 판단할 수 있다. 실시간 진단이 가능한 경우 단계 640을 수행할 수 있고, 실시간 진단이 불가능한 경우 단계 620을 수행할 수 있다.
단계 620에서, 악성 진단부는 연산 수집부로부터 모니터링 된 연산의 정보를 확인할 수 있고, 단계 630에서, 스레드의 유해성 여부를 판단할 수 있다.
악성 진단부는 연산 수집부와 연계하여, 연산 수집부로부터 모니터링 된 파일 연산, 레지스트리 연산, 프로세스의 생성 및 종료 연산 및 스레드의 생성 및 종료 연산의 정보를 확인할 수 있다. 악성 진단부는 스레드의 행위에 따라 구분되는 연산의 정보를 기초로 하여 리모트 스레드 및 리모트 스레드로부터 생성된 파생 스레드에 대한 유해성 여부를 판단함으로써, 실시간 진단이 불가능한 경우에도 빠르게 스레드의 유해성 여부를 진단할 수 있다.
단계 640에서, 악성 진단부는 생성 추적부로부터 주체 프로세스의 정보를 확인할 수 있고, 단계 650에서, 주체 프로세스의 유해성을 판단할 수 있다.
예를 들어, 악성 진단부는 생성 추적부와 연계하여 생성 추적부로부터 주체 프로세스에 대한 정보를 확인할 수 있고, 주체 프로세스에 대한 패턴 매칭, 해시값 비교 등을 통해 주체 프로세스의 유해성 여부를 판단할 수 있다.
도 7은 도 3에 도시된 차단부(340)의 동작 방법을 설명하기 위한 흐름도이다.
도 7을 참조하면, 악성 스레드 추적 장치의 차단부는 유해하다고 판단된 스레드, 프로세스, 이와 연관된 스레드 및 프로세스를 차단할 수 있다. 도 7의 악성 진단부 및 차단부는 도 3의 악성 진단부(330) 및 차단부(340)에 대응되므로 중복되는 내용은 생략한다.
단계 710에서, 차단부는 악성 진단부에서 판단된 결과를 획득할 수 있다. 차단부는 악성 진단부에서 판단된 주체 프로세스, 리모트 스레드, 및 파생 스레드의 유해성 여부 결과를 획득할 수 있고, 획득한 결과를 기초로 차단여부를 판가름할 수 있다.
단계 720에서, 차단부는 악성 진단부에서 유해하다고 판단된 스레드 및 유해하다고 판단된 프로세스를 차단할 수 있다.
일 실시예에서, 차단부는 악성 진단부에서 리모트 스레드를 생성한 주체 프로세스가 유해하다고 판단된 경우, 유해하다고 판단된 주체 프로세스를 차단할 수 있고, 파생 스레드 또는 리모트 스레드가 유해하다고 판단된 경우, 유해하다고 판단된 파생 스레드 또는 리모트 스레드를 차단할 수 있다.
단계 730에서, 차단부는 단계 720에서 유해하다고 판단된 스레드와 연관된 스레드 및 프로세스, 유해하다고 판단된 프로세스와 연관된 스레드 및 프로세스 등을 차단할 수 있다.
일 실시예에서, 악성 진단부에서 주체 프로세스가 유해하다고 판단된 경우, 이와 연관된 스레드에 해당하는 주체 프로세스로부터 생성된 리모트 스레드를 차단할 수 있다.
다른 실시예에서, 악성 진단부에서 리모트 스레드가 유해하다고 판단된 경우, 이와 연관된 프로세스에 해당하는 리모트 스레드를 생성한 주체 프로세스를 차단할 수 있다.
또한, 악성 진단부에서 파생 스레드가 유해하다고 판단된 경우, 차단부에서 유해하다고 판단된 파생 스레드를 차단할 수 있고, 실시간 진단이 불가능하여 스레드 생성 체인이 존재할 수 있으므로 차단부는 생성 추적부와 연계하여 파생 스레드의 스레드 생성 체인을 확인하고, 스레드 생성 체인과 연관된 다른 파생 스레드, 리모트 스레드, 및 리모트 스레드를 생성한 주체 프로세스를 종료할 수 있다. 예를 들어, svchost.exe 프로세스에 리모트 스레드가 생성되었고, 리모트 스레드로부터 생성된 파생 스레드가 악성 진단부에서 유해하다고 판단된 경우, 차단부는 생성 추적부의 추적 테이블을 이용하여 파생 스레드의 스레드 생성 체인을 확인하고, svchost.exe 프로세스의 리모트 스레드, 스레드 생성 체인과 관련된 스레드, 리모트 스레드를 생성한 주체 프로세스를 차단할 수 있다. 본 개시에 따른 악성 스레드 추적 장치는 svchost.exe 프로세스와 같은 시스템 운영 프로세스를 차단하지 않음으로써 시스템이 비정상으로 동작하는 것을 방지할 수 있다.
도 8은 다른 실시예에 따른 악성 스레드 추적 장치의 블록도이다.
도 8을 참조하면, 악성 스레드 추적 장치(800)는 메모리(810) 및 프로세서(820)를 포함할 수 있다. 도 8에 도시된 악성 스레드 추적 장치(800)에는 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 8에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다.
메모리(810)는 악성 스레드 추적 장치(800) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어이다. 예를 들어, 메모리(810)는 프로세스 및 스레드에 관한 정보, 추적 테이블, 연산 정보 등을 저장할 수 있다. 메모리(810)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함할 수 있다.
프로세서(820)는 도 1 내지 도 7에서 상술한, 악성 스레드를 추적하고 차단하기 위한 전반적인 기능을 수행한다.
일 실시예에서 프로세서(820)는 스레드 및 프로세스의 생성을 추적하고, 스레드 및 프로세스의 연산을 모니터링하여 연산 정보를 취합할 수 있다. 또한, 프로세서(820)는 스레드 및 프로세스에 관한 정보 및 연산 정보를 기초로 하여 스레드 및 프로세스의 유해성 여부를 판단할 수 있다. 프로세서(820)는, 유해하다고 판단된 스레드, 유해하다고 판단된 프로세스, 유해하다고 판단된 스레드 또는 프로세스와 연관된 스레드 및 유해하다고 판단된 스레드 또는 프로세스와 연관된 프로세스 중 적어도 하나를 차단할 수 있다.
본 실시예들은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 프로그램을 기록한 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈과 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
또한, 본 명세서에서, "부"는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
전술한 본 명세서의 설명은 예시를 위한 것이며, 본 명세서의 내용이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
상술한 실시예들에 대한 설명은 예시적인 것에 불과하며, 당해 기술 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서 발명의 진정한 보호 범위는 첨부된 청구범위에 의해 정해져야 할 것이며, 청구범위에 기재된 내용과 동등한 범위에 있는 모든 차이점은 청구범위에 의해 정해지는 보호 범위에 포함되는 것으로 해석되어야 할 것이다.
110: 공격 프로세스 340: 차단부
120: 타겟 프로세스 410: 스레드 a
130: 스레드 420: 스레드 r
140: 리모트 스레드 430: 스레드 b
210: 스레드 a 440: 스레드 c
220: 리모트 스레드 450: 추적 테이블
230: 스레드 b 510: 타겟 프로세스
240: 스레드 c 520: 연산 수집부
300: 악성 스레드 추적 장치 530: 연산 정보
310: 생성 추적부 800: 악성 스레드 추적 장치
320: 연산 수집부 810: 메모리
330: 악성 진단부 820: 프로세서

Claims (15)

  1. 스레드 및 프로세스의 생성을 추적하는 생성 추적부;
    상기 스레드 및 상기 프로세스의 연산을 모니터링 하고, 상기 스레드 및 상기 프로세스의 연산 정보를 취합하는 연산 수집부;
    상기 생성 추적부 및 상기 연산 수집부와 연계하여 상기 스레드 및 상기 프로세스의 유해성 여부를 판단하는 악성 진단부; 및
    상기 악성 진단부에서 상기 스레드 또는 상기 프로세스가 유해하다고 판단되는 경우, 상기 유해하다고 판단된 스레드, 상기 유해하다고 판단된 프로세스, 상기 유해하다고 판단된 스레드 또는 프로세스와 연관된 스레드 및 상기 유해하다고 판단된 스레드 또는 프로세스와 연관된 프로세스 중 적어도 하나를 차단하는 차단부;를 포함하고,
    상기 연산은,
    상기 프로세스의 생성 및 종료 연산, 상기 스레드의 생성 및 종료 연산, 파일 연산 및 레지스트리 연산을 포함하는, 악성 스레드 추적 장치.
  2. 제 1항에 있어서,
    상기 생성 추적부는,
    커널 드라이버를 포함하고,
    상기 커널 드라이버는 상기 스레드가 생성될 때 마다 상기 스레드의 생성 통지를 수신하는, 악성 스레드 추적 장치.
  3. 제 1항에 있어서,
    상기 생성 추적부는,
    프로세스 식별자 및 스레드 식별자를 이용하여 상기 스레드 및 상기 프로세스의 생성을 추적하고 관리하는, 악성 스레드 추적 장치.
  4. 제 1항에 있어서,
    상기 생성 추적부는,
    상기 스레드를 생성하는 주체 프로세스 및 주체 스레드, 상기 주체 스레드로부터 생성되는 대상 스레드 및 상기 대상 스레드가 생성되는 대상 프로세스의 정보를 확인하고,
    상기 주체 프로세스와 상기 대상 프로세스가 다르고 상기 대상 스레드가 최초로 생성된 스레드가 아닌 경우, 상기 대상 스레드를 리모트 스레드로 판단하는, 악성 스레드 추적 장치.
  5. 제 4항에 있어서,
    상기 생성 추적부는,
    상기 리모트 스레드를 생성한 주체 스레드, 상기 리모트 스레드 및 상기 리모트 스레드에 의해 생성된 파생 스레드의 생성을 추적하는, 악성 스레드 추적 장치.
  6. 제 1항에 있어서,
    상기 연산 수집부는,
    상기 스레드의 행위에 따라 구분되는 상기 스레드의 연산을 모니터링하고,
    기준 식별자를 이용하여 상기 스레드를 기준으로 상기 모니터링 된 연산의 정보를 취합하는, 악성 스레드 추적 장치.
  7. 삭제
  8. 제 1항에 있어서,
    상기 악성 진단부는,
    상기 생성 추적부로부터 리모트 스레드를 생성한 주체 프로세스에 대한 정보를 확인하고, 상기 주체 프로세스에 대한 상기 유해성 여부를 판단하는, 악성 스레드 추적 장치.
  9. 제 1항에 있어서,
    상기 악성 진단부는,
    상기 모니터링 된 연산의 정보를 기초로 하여 리모트 스레드 및 상기 리모트 스레드로부터 생성된 파생 스레드에 대한 상기 유해성 여부를 판단하는, 악성 스레드 추적 장치.
  10. 제 8항에 있어서,
    상기 차단부는,
    상기 악성 진단부에서 상기 주체 프로세스가 유해하다고 판단되는 경우, 상기 유해하다고 판단된 주체 프로세스 및 상기 유해하다고 판단된 주체 프로세스와 연관된 스레드를 차단하는, 악성 스레드 추적 장치.
  11. 제 9항에 있어서,
    상기 차단부는,
    상기 악성 진단부에서 상기 리모트 스레드가 유해하다고 판단되는 경우, 상기 생성 추적부와 연계하여 상기 유해하다고 판단된 리모트 스레드 및 상기 유해하다고 판단된 리모트 스레드와 연관된 프로세스를 차단하는, 악성 스레드 추적 장치.
  12. 제 9항에 있어서,
    상기 차단부는,
    상기 악성 진단부에서 상기 파생 스레드가 유해하다고 판단되는 경우, 상기 유해하다고 판단된 파생 스레드, 상기 유해하다고 판단된 파생 스레드와 연관된 스레드 및 상기 유해하다고 판단된 파생 스레드와 연관된 프로세스를 차단하는, 악성 스레드 추적 장치.
  13. 악성 스레드 추적 방법에 있어서,
    스레드 및 프로세스의 생성을 추적하는 단계;
    상기 스레드 및 상기 프로세스의 연산을 모니터링 하고, 상기 스레드 및 상기 프로세스의 연산 정보를 취합하는 단계;
    상기 스레드 및 상기 프로세스에 관한 정보 및 상기 스레드 및 상기 프로세스의 연산 정보를 기초로 하여 상기 스레드 및 상기 프로세스의 유해성 여부를 판단하는 단계; 및
    상기 스레드 또는 상기 프로세스가 유해하다고 판단되는 경우, 상기 유해하다고 판단된 스레드, 상기 유해하다고 판단된 프로세스, 상기 유해하다고 판단된 스레드 또는 프로세스와 연관된 스레드 및 상기 유해하다고 판단된 스레드 또는 프로세스와 연관된 프로세스 중 적어도 하나를 차단하는 단계;를 포함하고,
    상기 연산은,
    상기 프로세스의 생성 및 종료 연산, 상기 스레드의 생성 및 종료 연산, 파일 연산 및 레지스트리 연산을 포함하는, 악성 스레드 추적 방법.
  14. 제 13항에 따른 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능 저장 매체.
  15. 악성 스레드 추적 장치에 있어서,
    메모리; 및
    프로세서;를 포함하고,
    상기 프로세서는,
    스레드 및 프로세스의 생성을 추적하고,
    상기 스레드 및 상기 프로세스의 연산을 모니터링 하고, 상기 스레드 및 상기 프로세스의 연산 정보를 취합하고,
    상기 스레드 및 상기 프로세스에 관한 정보 및 상기 스레드 및 상기 프로세스의 연산 정보를 기초로 하여 상기 스레드 및 상기 프로세스의 유해성 여부를 판단하고,
    상기 스레드 또는 상기 프로세스가 유해하다고 판단되는 경우, 상기 유해하다고 판단된 스레드, 상기 유해하다고 판단된 프로세스, 상기 유해하다고 판단된 스레드 또는 프로세스와 연관된 스레드 및 상기 유해하다고 판단된 스레드 또는 프로세스와 연관된 프로세스 중 적어도 하나를 차단하고,
    상기 연산은,
    상기 프로세스의 생성 및 종료 연산, 상기 스레드의 생성 및 종료 연산, 파일 연산 및 레지스트리 연산을 포함하는, 악성 스레드 추적 장치.
KR1020200038559A 2020-03-30 2020-03-30 악성 스레드를 추적하는 장치 및 방법 KR102170737B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200038559A KR102170737B1 (ko) 2020-03-30 2020-03-30 악성 스레드를 추적하는 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200038559A KR102170737B1 (ko) 2020-03-30 2020-03-30 악성 스레드를 추적하는 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102170737B1 true KR102170737B1 (ko) 2020-10-27

Family

ID=73136308

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200038559A KR102170737B1 (ko) 2020-03-30 2020-03-30 악성 스레드를 추적하는 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102170737B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2619314A (en) * 2022-05-31 2023-12-06 Withsecure Corp Arrangement and method of threat detection in a computer or computer network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101444141B1 (ko) 2013-05-03 2014-09-26 주식회사 잉카인터넷 악성스레드 처리 시스템 및 방법
KR101685014B1 (ko) * 2016-02-19 2016-12-12 주식회사 블랙포트시큐리티 컴퓨터 시스템의 랜섬웨어 행위에 대한 선제적인 탐지 차단 방법 및 그 장치
KR101775602B1 (ko) 2015-09-16 2017-09-07 주식회사 안랩 인젝션 탐지 방법 및 이에 적용되는 장치
US20180052720A1 (en) * 2016-08-18 2018-02-22 Crowdstrike, Inc. Tracing System Operations Across Remote Procedure Linkages to Identify Request Originators

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101444141B1 (ko) 2013-05-03 2014-09-26 주식회사 잉카인터넷 악성스레드 처리 시스템 및 방법
KR101775602B1 (ko) 2015-09-16 2017-09-07 주식회사 안랩 인젝션 탐지 방법 및 이에 적용되는 장치
KR101685014B1 (ko) * 2016-02-19 2016-12-12 주식회사 블랙포트시큐리티 컴퓨터 시스템의 랜섬웨어 행위에 대한 선제적인 탐지 차단 방법 및 그 장치
US20180052720A1 (en) * 2016-08-18 2018-02-22 Crowdstrike, Inc. Tracing System Operations Across Remote Procedure Linkages to Identify Request Originators

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2619314A (en) * 2022-05-31 2023-12-06 Withsecure Corp Arrangement and method of threat detection in a computer or computer network

Similar Documents

Publication Publication Date Title
JP6829718B2 (ja) 複数のソフトウェアエンティティにわたって悪意あるビヘイビアを追跡するためのシステムおよび方法
US7895448B1 (en) Risk profiling
RU2571723C2 (ru) Система и способ для снижения нагрузки на операционную систему при работе антивирусного приложения
US10235520B2 (en) System and method for analyzing patch file
US8181247B1 (en) System and method for protecting a computer system from the activity of malicious objects
US20130247193A1 (en) System and method for removal of malicious software from computer systems and management of treatment side-effects
US20190147163A1 (en) Inferential exploit attempt detection
JP7537661B2 (ja) 高度なランサムウェア検出
US8910283B1 (en) Firmware-level security agent supporting operating system-level security in computer system
US10839074B2 (en) System and method of adapting patterns of dangerous behavior of programs to the computer systems of users
US8763129B2 (en) Vulnerability shield system
CN106650438A (zh) 一种恶意程序检测的方法及装置
US11003772B2 (en) System and method for adapting patterns of malicious program behavior from groups of computer systems
CN115840940A (zh) 一种无文件木马检测方法、系统、介质及设备
KR102170737B1 (ko) 악성 스레드를 추적하는 장치 및 방법
EP2584484B1 (en) System and method for protecting a computer system from the activity of malicious objects
US11449610B2 (en) Threat detection system
RU2665909C1 (ru) Способ избирательного использования шаблонов опасного поведения программ
JP2019220132A (ja) プログラムの危険な挙動のパターンをユーザのコンピュータシステムに適応させるシステムおよび方法
RU2652448C1 (ru) Система и способ адаптирования шаблонов опасного поведения программ к компьютерным системам пользователей
US20240111860A1 (en) Systems and methods for preventing hollowing attack
CN117786658A (zh) 非授权应用判定方法、电子设备、计算机可读介质
CN117914582A (zh) 一种进程挖空攻击的检测方法、装置、设备及存储介质
CN117714143A (zh) 一种进程白利用行为检测方法、装置、设备及介质
CN117972683A (zh) 一种内核级安全终端及安装方法

Legal Events

Date Code Title Description
AMND Amendment
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant