KR20210001057A - 랜섬웨어 탐지 및 차단 방법 - Google Patents

랜섬웨어 탐지 및 차단 방법 Download PDF

Info

Publication number
KR20210001057A
KR20210001057A KR1020190076521A KR20190076521A KR20210001057A KR 20210001057 A KR20210001057 A KR 20210001057A KR 1020190076521 A KR1020190076521 A KR 1020190076521A KR 20190076521 A KR20190076521 A KR 20190076521A KR 20210001057 A KR20210001057 A KR 20210001057A
Authority
KR
South Korea
Prior art keywords
ransomware
processor
hash value
encryption
new process
Prior art date
Application number
KR1020190076521A
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 KR1020190076521A priority Critical patent/KR20210001057A/ko
Publication of KR20210001057A publication Critical patent/KR20210001057A/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

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

Abstract

본 명세서는 랜섬웨어를 탐지하고 차단할 수 있는 방법을 개시한다. 본 명세서에 따른 랜섬웨어 탐지 및 차단 방법은 신규 프로세스가 실행될 때 해당 프로세스의 실행파일의 해쉬값 생성하고, 생성된 해쉬값이 미리 저장된 랜섬웨어 실행파일의 해쉬값과 동일한지 여부를 통해 탐지 및 차단할 수 있다. 또한, 신규 프로세스를 후킹하여 암호화 관련 함수가 실행될 경우, 해당 프로세스가 화이트 리스트에 미리 등록되어 암호화 관련 함수를 실행시킬 수 있는 프로세스인지 판단한다. 만약 화이트 리스트에 포함되지 않은 프로세스가 암호화 관련 함수를 실행시킬려고 한다면, 해당 프로세스를 랜섬웨어로 판단하여 강제로 종료시킬 수 있다.

Description

랜섬웨어 탐지 및 차단 방법{METHOD FOR DETECTING AND BLOCKING RANSOMWARE}
본 발명은 랜섬웨어를 탐지하고 차단할 수 있는 방법에 관한 것이다.
랜섬웨어(Ransomware)는 악성코드의 일종으로 사용자 모르게 컴퓨터 저장장치 내 파일을 암호화하고 이에 대한 복원을 대가로 금액을 지불하면 원본파일들을 제공해주겠다고 협박을 하여 돈을 갈취해가는 일종의 컴퓨터 범죄이다.
종래 랜섬웨어 탐지 및 차단 방법에 대한 기술은 대부분 윈도우 OS를 대상으로 연구되어 왔으며 리눅스 OS 대상에서의 랜섬웨어 탐지 및 차단 방법에 대한 기술은 미비하다. 또한 최근 들어 리눅스 서버 대상으로 랜섬웨어 공격을 통해 돈을 요구하는 사태가 발생하기 때문에, PC를 통한 개인의 손해를 넘어서 기업 차원에서 발생하는 피해의 규모가 점점 커지고 있다.
종래 랜섬웨어 탐지 및 차단 방법에서는 커널단에서 랜섬웨어의 행위를 탐지하는 방법을 대부분 사용하고 있다. 하지만 이 방법은 마이크로소프트의 window7, 8, 10등으로 대상 OS가 한정되어 있다. 또한, 리눅스 OS의 경우는 Ubuntu, CentOS, 수세 리눅스 등 종류가 상당히 많아서 이를 커널 단에서 탐지하려면 각각 커널마다 모듈을 재 컴파일해서 배포해야 하는 문제점이 발생한다.
공개특허공보 제10-2017-0069584호
본 명세서는 랜섬웨어를 탐지하고 차단할 수 있는 방법을 제공하는 것을 목적으로 한다.
본 명세서는 상기 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 명세서에 따른 랜섬웨어 탐지 및 차단 방법은 프로세서 및 적어도 하나 이상의 랜섬웨어 실행파일의 해쉬값을 저장하는 메모리를 이용하여 랜섬웨어를 탐지하고 차단하는 방법으로서, (a) 상기 프로세서가 신규 프로세스의 실행여부를 모니터링하는 단계; (b) 신규 프로세스가 실행될 때, 상기 프로세서가 상기 신규 프로세서의 실행파일의 해쉬값을 생성하는 단계; (c) 상기 프로세서가 상기 생성된 해쉬값과 상기 메모리에 저장된 랜섬웨어 실행파일의 해쉬값과 동일 여부를 판단하는 단계; 및 (d) 상기 생성된 해쉬값과 상기 랜섬웨어 실행파일의 해쉬값이 동일할 때, 상기 프로세서가 상기 신규 프로세스를 종료시키는 단계;를 포함할 수 있다.
이 경우, 상기 메모리는 적어도 하나 이상의 암호화 관련 함수들을 정의한 암호화 함수 라이브러리 및 적어도 하나 이상의 암호화 작업이 허용된 프로세스에 대한 화이트 리스트를 더 저장할 수 있다.
그리고, 상기 (d) 단계는, 상기 생성된 해쉬값과 상기 랜섬웨어 실행파일의 해쉬값이 동일하지 않을 때, 상기 프로세서가 상기 암호화 함수 라이브러리를 이용하여 상기 신규 프로세스 내 암호화 관련 함수의 실행 여부를 더 모니터링하는 단계일 수 있다.
본 명세서에 따른 랜섬웨어 탐지 및 차단 방법은 (e) 상기 신규 프로세스 내 암호화 관련 함수가 실행될 때, 상기 프로세서가 암호화 관련 함수의 실행을 중지시키고 후킹하는 단계;를 더 포함할 수 있다.
본 명세서의 일 실시예에 따르면, 상기 (e) 단계는, 신규 프로세스가 실행될 때, 상기 프로세서가 후킹을 위해 상기 신규 프로세스에 대한 쓰기 및 실행하기 권한을 더 획득하는 단계일 수 있다.
본 명세서에 따른 랜섬웨어 탐지 및 차단 방법은 (f) 상기 프로세서가 상기 신규 프로세스가 상기 화이트 리스트에 포함되었는지 여부를 판단하는 단계;를 더 포함할 수 있다.
본 명세서에 따른 랜섬웨어 탐지 및 차단 방법은 (g) 상기 신규 프로세스가 상기 화이트 리스트에 포함되지 않은 경우, 상기 프로세서가 상기 신규 프로세서를 강제 종료시키는 단계;를 더 포함할 수 있다.
본 명세서의 다른 실시예에 따르면, 상기 (f) 단계 이후에 (g) 상기 신규 프로세스가 상기 화이트 리스트에 포함되지 않은 경우, 상기 프로세서가 상기 신규 프로세스의 실행 여부에 대한 사용자의 입력을 확인하는 단계;를 더 포함할 수 있다.
그리고 본 명세서의 다른 실시예에 따른 랜섬웨어 탐지 및 차단 방법은 (h) 사용자로부터 상기 신규 프로세스를 계속 실행시키도록 입력될 때, 상기 프로세서가 상기 신규 프로세스를 상기 화이트 리스트에 추가하는 단계;를 더 포함할 수 있다.
본 명세서에 따른 랜섬웨어 탐지 및 차단 방법은 컴퓨터에서 상기 랜섬웨어 탐지 및 차단 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램의 형태로 구현될 수 있다.
상기 컴퓨터프로그램은 리눅스 운영체제에서 실행될 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 명세서의 일 측면에 따르면, 랜섬웨어에 의한 피해를 방지할 수 있다.
본 명세서의 다른 측면에 따르면, 리눅스 OS의 종류에 상관없이 적용할 수 있어서 재 컴파일 배포해야 하는 번거러움이 없다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 명세서에 따른 랜섬웨어 탐지 및 차단 방법의 순서도이다.
도 2는 본 명세서의 일 실시예에 따른 랜섬웨어 탐지 및 차단 방법에 순서도이다.
도 3은 본 명세서의 또 다른 실시예에 따른 랜섬웨어 탐지 및 차단 방법의 흐름도이다.
본 명세서에 개시된 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 명세서가 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 명세서의 개시가 완전하도록 하고, 본 명세서가 속하는 기술 분야의 통상의 기술자(이하 '당업자')에게 본 명세서의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 명세서의 권리 범위는 청구항의 범주에 의해 정의될 뿐이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 명세서가 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에 따른 랜섬웨어 탐지 및 차단 방법에 대한 설명함에 있어서, 실시예로서 리눅스 OS에서 실행되는 것을 전제로 설명하겠다. 그러나 본 명세서에 따른 랜섬웨어 탐지 및 차단 방법이 반드시 리눅스 OS에서 실행되는 것으로 제한되는 것은 아니다. 이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
본 명세서에 따른 랜섬웨어 탐지 및 차단 방법은 후킹(hooking)기법을 이용하여 특정 프로세스 내에서의 암호화 행위를 탐지하고 차단할 수 있다. 소프트웨어 공학 용어로서 '후킹(hooking)'이란, 운영 체제나 응용 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생하는 함수 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법, 기술이나 행위를 의미한다. 이때, 이러한 간섭된 함수 호출, 이벤트 또는 메시지를 처리하는 코드를 후크(hook)라고 한다.
일 예로, 리눅스 OS에는 크게 3가지 후킹 방법이 있다.
1) 운영체제 커널(Kernel) 후킹
리눅스 운영체제의 커널에는 시스템콜 테이블(sys_call_table)이 있고 여기에 커널 모듈을 추가하는 기법을 주로 이용한다. 이를 LKM(Loadable Kernel Module) 기법이라고 한다.
2) 라이브러리 후킹
프로세스 실행 과정 중 라이브러리를 로딩할 때, LD_PRELOAD 변수가 설정되어 있으면 해당 변수에 지정된 라이브러리를 먼저 로딩하고, 이중 libc 함수명과 동일한 함수가 있다면 해당 함수를 먼저 호출해 준다.
3) 프로세스 후킹
운영체제상의 프로세스에 Attach하여 후킹을 수행한다. 시스템 인터렙트를 활용하여 프로세스를 멈추게 할 수 있고 ptrace 함수나 프로세스의 메모리를 수정하여 원래의 함수가 아닌 다른 함수를 수행할 수 있도록 후킹한다.
본 명세서에 따른 랜섬웨어 탐지 및 차단 방법은 상기 3) 프로세스 후킹 기법을 이용하여 랜섬웨어에서 사용되는 암호화 행위 등을 탐지할 수 있다.
본 명세서에 따른 랜섬웨어 탐지 및 차단 방법은 프로세서 및 메모리를 이용하여 랜섬웨어를 탐지하고 차단할 수 있다.
상기 프로세서는 이하에서 설명될 랜섬웨어 탐지 및 차단 알고리즘을 실행하기 위해 본 발명이 속한 기술분야에 알려진 마이크로프로세서, ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로, 레지스터, 통신 모뎀, 데이터 처리 장치 등을 포함할 수 있다. 또한, 상술한 랜섬웨어 탐지 및 차단 알고리즘이 소프트웨어로 구현될 때, 상기 프로세서는 프로그램 모듈의 집합으로 구현될 수 있다. 이 때, 프로그램 모듈은 상기 메모리에 저장되고, 프로세서에 의해 실행될 수 있다.
상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C/C++, C#, JAVA, Python, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.
상기 메모리는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 메모리의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.
한편, 상기 메모리는 본 명세서에 따른 랜섬웨어 탐지 및 차단 방법을 실행하기 위해 필요한 각종 데이터를 저장할 수 있다. 실시예에 따라, 상기 메모리는 적어도 하나 이상의 랜섬웨어 실행파일의 해쉬값, 적어도 하나 이상의 암호화 관련 함수들을 정의한 암호화 함수 라이브러리 또는 적어도 하나 이상의 암호화 작업이 허용된 프로세스에 대한 화이트 리스트를 저장할 수 있다.
도 1은 본 명세서에 따른 랜섬웨어 탐지 및 차단 방법의 순서도이다.
도 1을 참조하면, 먼저 단계 S10에서, 상기 프로세서는 신규 프로세스의 실행여부를 모니터링할 수 있다. 리눅스 OS로 운영되는 컴퓨터(또는 서버)에서 신규 실행파일이 실행되는 경우 새로운 프로세스가 생성되며, 해당 프로세스는 가상파일 시스템인 "/proc" 폴더내에 생성된다. 따라서, 상기 프로세서는 "/proc" 폴더를 통해서 상기 프로세스 내에는 실행파일의 메모리, 사용하고 있는 파일 등 다양한 내용을 확인할 수 있다. 만약 신규 프로세스의 실행이 없다면(단계 S10의 NO), 상기 프로세서는 단계 S10을 반복 실행하여 모니터링 작업을 계속 실행할 수 있다. 반면, 신규 프로세스의 실행이 있다면(단계 S10의 YES), 상기 프로세서는 단계 S20으로 이행한다.
다음 단계 S20에서, 상기 프로세서는 상기 신규 프로세서의 실행파일의 해쉬값을 생성할 수 있다. 해쉬는 단방향 파일 코드로 MD5, SHA-256, SHA-512 등의 알고리즘이 있다. 상기 프로세서는 상기 MD5, SHA-256, SHA-512, 본 명세서 출원 시점에 알려진 해쉬함수 및 본 명세서 출원 이후 당업자에 알려진 다양한 해쉬함수 등을 사용하여 상기 상기 신규 프로세서의 실행파일의 해쉬값을 생성할 수 있다.
다음 단계 S30에서, 상기 프로세서는 상기 생성된 해쉬값과 상기 메모리에 저장된 랜섬웨어 실행파일의 해쉬값과 동일 여부를 판단할 수 있다.
만약, 생성된 해쉬값과 랜섬웨어 실행파일의 해쉬값이 동일하지 않다면(단계 S30의 NO), 상기 프로세서는 단계 S40으로 이행할 수 있다. 다음 단계 S40에서, 상기 프로세서는 해당 프로세스를 계속 실행시킬 수 있다.
반면, 생성된 해쉬값과 랜섬웨어 실행파일의 해쉬값이 동일하다면(단계 S30의 YES), 상기 프로세서는 해당 프로세스를 랜섬웨어로 판단하여 단계 S41로 이행할 수 있다. 단계 S41에서 상기 프로세서는 신규 프로세스를 강제로 종료시킬 수 있다. 그리고 상기 프로세서는 단계 S10으로 이행하여, 다시 신규 프로세스의 실행 여부를 모니터링할 수 있다.
도 1에 도시된 랜섬웨어 탐지 및 차단 방법은 실행 파일의 해쉬값을 비교하여 프로세스의 랜섬웨어 여부를 판단하는 방법이다. 상기 방법은 간단하게 랜섬웨어 여부를 판단할 수 있다는 장점이 있다. 한편, 랜섬웨어의 실행 파일에 변형이 있거나, 상기 메모리에 저장되지 않은 랜섬웨어인 경우 랜섬웨어임에도 불구하고 탐지에 실패할 수 있다.
상기 실패 가능성을 보완하기 위해, 프로세스의 암호화 행위 여부를 판단하여 랜섬웨어를 탐지 및 차단할 수 있다. 프로세스의 암호화 행위 여부에 따른 랜섬웨어 탐지 및 차단 방법에 대해서는 도 2를 참조하여 설명하도록 하겠다.
도 2는 본 명세서의 일 실시예에 따른 랜섬웨어 탐지 및 차단 방법에 순서도이다.
도 2를 참조하면, 단계 S10 내지 단계 S40은 도 1에 도시된 것과 동일한 것을 확인할 수 있다. 따라서, 단계 S50부터 설명하도록 하겠다. 상기 단계 S50은 상기 단계 S40 즉, 상기 생성된 해쉬값과 상기 랜섬웨어 실행파일의 해쉬값이 동일하지 않아서 프로세스가 계속 실행된 이후의 단계이다.
본 명세서의 일 실시예에 따르면, 단계 S50에서 상기 프로세서는 상기 프로세서가 상기 암호화 함수 라이브러리를 이용하여 상기 신규 프로세스 내 암호화 관련 함수의 실행 여부를 모니터링할 수 있다. 상기 암호화 함수 라이브러리는 암호화 관련된 함수들을 사전에 정의해 놓은 데이터로서, 예를 들어 리눅스상에서 암호를 하기위한 프로그램의 함수의 경우는 OpenSSL라이브러리 함수 등이 있으며, 암호화 함수는 AES, CBC, RSA, _encrypt, _crypt, _update, _finish 등이 있다. 상기 프로세서는 상기 신규 프로세스에 대한 읽기, 쓰기 및 실행하기 권한을 획득해 놓았기 때문에, 상기 신규 프로세스가 어떠한 함수를 호출하는지 모니터링할 수 있다. 만약 암호화 관련 함수가 실행되지 않으면(단계 S50의 NO), 상기 프로세서는 단계 S50을 반복 실행한다. 반면, 암호화 관련 함수가 실행되면(단계 S50의 YES), 상기 프로세서는 단계 S60으로 이행한다.
단계 S60에서, 상기 프로세서는 암호화 관련 함수의 실행을 중지시키고 후킹할 수 있다. 그리고 상기 프로세서는 단계 S70으로 이행한다.
본 명세서의 일 실시예에 따르면, 상기 프로세서는 상기 단계 S60에서 즉, 신규 프로세스가 실행될 때 즉 상기 프로세서가 후킹을 위해 상기 신규 프로세스에 대한 쓰기 및 실행하기 권한을 더 획득할 수 있다.
단계 S70에서, 상기 프로세서는 상기 신규 프로세스가 상기 화이트 리스트에 포함되었는지 여부를 판단할 수 있다. 만약, 상기 프로세스가 화이트 리스트에 포함되어 있다면(단계 S70의 YES), 상기 프로세서는 상기 프로세스를 계속 실행한다. 반면, 상기 프로세스가 화이트 리스트에 포함되어 있지 않다면(단계 S70의 NO), 상기 프로세서는 상기 프로세스를 강제로 종료시킬 수 있다. 즉, 화이트 리스트에 포함되지 않은 프로세스가 암호화 관련 함수를 사용하는 경우 랜섬웨어로 판단하고 해당 프로세스가 암호화 함수를 실행하기 전에 강제로 종료시키는 것이다.
나아가, 상기 프로세서는 해당 프로세스가 화이트 리스트에 없는 프로세스이며, 해당 프로세스가 랜섬웨어일 가능성이 있다는 알림을 출력할 수 있다. 상기 알림은 디스플레이에 경고 화면을 출력하거나, 스피커를 통해 경고음을 출력하거나, LED 등 발광 소자를 이용하여 경고등을 점등시키는 등 다양한 방법으로 경고 신호를 출력할 수 있다.
한편, 화이트 리스트에 포함되지 않은 프로세스이지만 암호화 관련 함수를 사용한다고 해서 반드시 랜섬웨어에 해당하지 않을 수 있다. 따라서, 화이트 리스트에 포함되지 않았지만, 사용자의 의사에 따라 계속 실행 가능하게 할 필요도 있다.
도 3은 본 명세서의 또 다른 실시예에 따른 랜섬웨어 탐지 및 차단 방법의 흐름도이다.
도 3을 참조하면, 단계 S10 내지 S70은 도 2에 도시된 흐름도와 동일한 것을 확인할 수 있다. 따라서, 단계 S70이후 단계부터 설명하도록 하겠다.
단계 S70에서, 상기 프로세스가 화이트 리스트에 포함되어 있지 않다면(단계 S70의 NO), 상기 프로세서는 단계 S80으로 이행할 수 있다.
단계 S80에서, 상기 프로세서는 사용자로부터 상기 신규 프로세스를 계속 실행시킬 것인지 여부에 대한 입력을 수신할 수 있다. 이를 위해, 상기 프로세서는 해당 프로세스가 랜섬웨어일 가능성이 있다는 알림을 출력하고, 계속 실행할 것인지 여부에 대한 입력을 할 수 있는 입력 인터페이스를 화면에 출력할 수 있다.
만약 사용자로부터 프로세스를 계속 실행시키지 않겠다는 입력이 수신된 경우(단계 S80의 NO), 상기 프로세서는 상기 신규 프로세스를 강제 종료시킬 수 있다. 반면, 사용자로부터 프로세스를 계속 실행시키겠다는 입력이 수신된 경우(단계 S80의 YES), 상기 프로세서는 단계 S90으로 이행할 수 있다.
단계 S90에서 상기 프로세서는 상기 신규 프로세스를 계속 실행시킬 수 있다. 나아가 상기 단계 S90에서 상기 프로세서는 상기 신규 프로세스를 상기 화이트 리스트에 추가할 수도 있다.
한편, 본 명세서에 따른 랜섬웨어 탐지 및 차단 방법에 있어서, 실행파일의 해쉬값을 통해 1차적으로 랜섬웨어를 탐지 및 차단하고, 프로세스가 암호화 관련 함수를 실행시키는지 여부를 통해 2차적으로 랜섬웨어를 탐지 및 차단하는 방식으로 설명되었다. 그러나 본 명세서에 따른 랜섬웨어 탐지 및 차단 방법이 반드시 실행파일의 해쉬값을 통해 1차적으로 랜섬웨어를 탐지 및 차단한 이후에 2차적으로 암호화 관련 함수를 실행해야 하는 것은 아니다. 필요에 따라서, 실행파일의 해쉬값을 이용한 랜섬웨어 탐지 및 차단없이, 암호화 관련 함수의 사용여부를 통해서만 랜섬웨어를 탐지 및 차단하는 방식으로 사용될 수도 있다.
이상, 첨부된 도면을 참조로 하여 본 명세서의 실시예를 설명하였지만, 본 명세서가 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.

Claims (9)

  1. 프로세서 및 적어도 하나 이상의 랜섬웨어 실행파일의 해쉬값을 저장하는 메모리를 이용하여 랜섬웨어를 탐지하고 차단하는 방법으로서,
    (a) 상기 프로세서가 신규 프로세스의 실행여부를 모니터링하는 단계;
    (b) 신규 프로세스가 실행될 때, 상기 프로세서가 상기 신규 프로세서의 실행파일의 해쉬값을 생성하는 단계;
    (c) 상기 프로세서가 상기 생성된 해쉬값과 상기 메모리에 저장된 랜섬웨어 실행파일의 해쉬값과 동일 여부를 판단하는 단계; 및
    (d) 상기 생성된 해쉬값과 상기 랜섬웨어 실행파일의 해쉬값이 동일할 때, 상기 프로세서가 상기 신규 프로세스를 종료시키는 단계;를 포함하는 랜섬웨어 탐지 및 차단 방법.
  2. 청구항 1에 있어서,
    상기 메모리는 적어도 하나 이상의 암호화 관련 함수들을 정의한 암호화 함수 라이브러리 및 적어도 하나 이상의 암호화 작업이 허용된 프로세스에 대한 화이트 리스트를 더 저장하는 랜섬웨어 탐지 및 차단 방법.
  3. 청구항 2에 있어서,
    상기 (d) 단계는,
    상기 생성된 해쉬값과 상기 랜섬웨어 실행파일의 해쉬값이 동일하지 않을 때, 상기 프로세서가 상기 암호화 함수 라이브러리를 이용하여 상기 신규 프로세스 내 암호화 관련 함수의 실행 여부를 더 모니터링하는 단계인 랜섬웨어 탐지 및 차단 방법.
  4. 청구항 3에 있어서,
    (e) 상기 신규 프로세스 내 암호화 관련 함수가 실행될 때, 상기 프로세서가 암호화 관련 함수의 실행을 중지시키고 후킹하는 단계;를 더 포함하는 랜섬웨어 탐지 및 차단 방법.
  5. 청구항 4에 있어서,
    상기 (e) 단계는,
    신규 프로세스가 실행될 때, 상기 프로세서가 상기 신규 프로세스에 대한 쓰기 및 실행하기 권한을 더 획득하는 단계인 랜섬웨어 탐지 및 차단 방법.
  6. 청구항 4에 있어서,
    (f) 상기 프로세서가 상기 신규 프로세스가 상기 화이트 리스트에 포함되었는지 여부를 판단하는 단계;를 더 포함하는 랜섬웨어 탐지 및 차단 방법.
  7. 청구항 6에 있어서,
    (g) 상기 신규 프로세스가 상기 화이트 리스트에 포함되지 않은 경우, 상기 프로세서가 상기 신규 프로세서를 강제 종료시키는 단계;를 더 포함하는 랜섬웨어 탐지 및 차단 방법.
  8. 컴퓨터에서 청구항 1 내지 청구항 7 중 어느 한 청구항에 따른 랜섬웨어 탐지 및 차단 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램.
  9. 청구항 8에 있어서,
    상기 컴퓨터프로그램은 리눅스 운영체제에서 실행되는 것을 특징으로 하는 컴퓨터프로그램.
KR1020190076521A 2019-06-26 2019-06-26 랜섬웨어 탐지 및 차단 방법 KR20210001057A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190076521A KR20210001057A (ko) 2019-06-26 2019-06-26 랜섬웨어 탐지 및 차단 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190076521A KR20210001057A (ko) 2019-06-26 2019-06-26 랜섬웨어 탐지 및 차단 방법

Publications (1)

Publication Number Publication Date
KR20210001057A true KR20210001057A (ko) 2021-01-06

Family

ID=74128562

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190076521A KR20210001057A (ko) 2019-06-26 2019-06-26 랜섬웨어 탐지 및 차단 방법

Country Status (1)

Country Link
KR (1) KR20210001057A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021115489A1 (de) 2020-07-16 2022-01-20 Samsung Electronics Co., Ltd. Kameramodul, bildverarbeitungssystem und bildkomprimierungsverfahren
CN116628693A (zh) * 2023-07-25 2023-08-22 积至网络(北京)有限公司 一种基于预配置信物的勒索软件防御方法
CN117932608A (zh) * 2024-03-21 2024-04-26 广州锦高信息科技有限公司 基于内核的防勒索病毒方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170069584A (ko) 2015-12-11 2017-06-21 소프트캠프(주) 랜섬웨어에 대응한 보안방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170069584A (ko) 2015-12-11 2017-06-21 소프트캠프(주) 랜섬웨어에 대응한 보안방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021115489A1 (de) 2020-07-16 2022-01-20 Samsung Electronics Co., Ltd. Kameramodul, bildverarbeitungssystem und bildkomprimierungsverfahren
CN116628693A (zh) * 2023-07-25 2023-08-22 积至网络(北京)有限公司 一种基于预配置信物的勒索软件防御方法
CN116628693B (zh) * 2023-07-25 2023-09-29 积至网络(北京)有限公司 一种基于预配置信物的勒索软件防御方法
CN117932608A (zh) * 2024-03-21 2024-04-26 广州锦高信息科技有限公司 基于内核的防勒索病毒方法
CN117932608B (zh) * 2024-03-21 2024-06-07 广州锦高信息科技有限公司 基于内核的防勒索病毒方法

Similar Documents

Publication Publication Date Title
US9811479B2 (en) Cryptographic pointer address encoding
CN107690645B (zh) 使用解释器虚拟机的行为恶意软件检测
US20190114401A1 (en) On device structure layout randomization for binary code to enhance security through increased entropy
US8566949B2 (en) Software component, software component management method, and software component management system
US20160110545A1 (en) Code pointer authentication for hardware flow control
US11474954B2 (en) Cache unit useful for secure execution
KR20180032566A (ko) 다수 소프트웨어 개체들에 걸쳐서 악성 행동을 트래킹하기 위한 시스템들 및 방법들
US20140304520A1 (en) Detection of secure variable alteration in a computing device equipped with unified extensible firmware interface (uefi)-compliant firmware
US9600665B2 (en) Monitoring device and monitoring method
JP6370098B2 (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
KR20210001057A (ko) 랜섬웨어 탐지 및 차단 방법
US20170364679A1 (en) Instrumented versions of executable files
CN110334515B (zh) 一种基于可信计算平台生成度量报告的方法及装置
US11170077B2 (en) Validating the integrity of application data using secure hardware enclaves
US11531769B2 (en) Information processing apparatus, information processing method, and computer program product
US20140007248A1 (en) Timer for hardware protection of virtual machine monitor runtime integrity watcher
CN110516445B (zh) 反检测恶意代码的识别方法、装置及存储介质
EP2228722A1 (en) System and method for file integrity monitoring using timestamps
US8925077B2 (en) Mobile devices with inhibited application debugging and methods of operation
US11556645B2 (en) Monitoring control-flow integrity
WO2022093186A1 (en) Code execution using trusted code record
KR102215231B1 (ko) 안드로이드 어플리케이션에 대한 후킹방지 시스템 및 그 방법
US20220407695A1 (en) Electronic device and control method thereof
CN116418593A (zh) 一种动态可信度量方法、电子设备及存储介质
KR101436742B1 (ko) 메모리 해킹 방어 방법 및 시스템

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X601 Decision of rejection after re-examination