KR101859823B1 - 키 백업을 사용한 랜섬웨어 방지 시스템 및 방법 - Google Patents

키 백업을 사용한 랜섬웨어 방지 시스템 및 방법 Download PDF

Info

Publication number
KR101859823B1
KR101859823B1 KR1020160084034A KR20160084034A KR101859823B1 KR 101859823 B1 KR101859823 B1 KR 101859823B1 KR 1020160084034 A KR1020160084034 A KR 1020160084034A KR 20160084034 A KR20160084034 A KR 20160084034A KR 101859823 B1 KR101859823 B1 KR 101859823B1
Authority
KR
South Korea
Prior art keywords
encryption key
encryption
key
library
generated
Prior art date
Application number
KR1020160084034A
Other languages
English (en)
Other versions
KR20180004462A (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 KR1020160084034A priority Critical patent/KR101859823B1/ko
Publication of KR20180004462A publication Critical patent/KR20180004462A/ko
Application granted granted Critical
Publication of KR101859823B1 publication Critical patent/KR101859823B1/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

Abstract

일 실시예에 따른 랜섬웨어를 방지하는 방법은, 암호 라이브러리가 로드된 프로그램을 탐지하거나 상기 암호 라이브러리가 로드될 때의 프로그램을 추적하는 단계; 상기 암호 라이브러리 내에 생성된 암호화 키를 백업하기 위한 함수의 제어권을 조작하는 단계; 상기 랜섬웨어의 상기 암호화 키의 생성 여부에 기초하여 상기 암호화 키를 각기 다른 방식으로 저장하는 단계; 및 상기 암호화 키의 백업을 통하여 암호화된 프로그램을 복구하는 단계를 포함할 수 있다.

Description

키 백업을 사용한 랜섬웨어 방지 시스템 및 방법{RANSOMWARE PREVENTION TECHNIQUE USING KEY BACKUP}
아래의 설명은 랜섬웨어 방지 기술에 관한 것으로, 키 백업을 사용한 랜섬웨어 방지 방법 및 시스템에 관한 것이다.
랜섬웨어는 악성코드(Malware)의 일종으로, 몸값(ransom)과 제품(ware)의 합성어로서, 사용자 단말에 침투하여 중요 파일에 대한 접근을 차단하고 금품을 요구하는 악성 프로그램이다.
도 1을 통하여 랜섬웨어의 개괄적인 동작을 설명하기로 한다. 랜섬웨어에 감염된 단말은 시스템에 대한 접근이 제한되며, 이를 해제하기 위해서는 공격자에게 대가(예를 들면, 금전, 금품, 비트코인 등)을 제공해야 한다. 랜섬웨어가 공격자의 주요 수익원이 되면서 유포 방식과 파일 형태도 다양해지고 있다. 이메일 첨부파일, 메신저 등을 통해 주로 유포되던 랜섬웨어는 앱(Application), 운영체제(OS), 웹 취약점, 토렌트, 웹 사이트와 연계된 광고 사이트 등의 다양한 방법으로 전파되고 있다. 또한, 유포 파일의 형태도, 주로 문서 파일(doc, pdf)로 위장하거나 화면보호기 파일(src)로 유포되던 것이 매크로와 자바 스크립트 활용까지 활용되어 첨부파일을 변종시키는 형태로도 발견되고 있다.
랜섬웨어의 프로세스는 크게 (a) 내지 (c)가 수행될 수 있다. 공격자(예를 들면, 해커)가 스팸 메일을 통하여 또는 서버를 해킹하여 서버에 악성 코드를 삽입함으로써 사용자 단말에 랜섬웨어가 자동으로 전파될 수 있다. 이때, 사용자들은 스팸 메일을 확인하거나, 해킹된 서버로부터 정보가 제공되는 웹 사이트를 방문하였을 경우, 사용자 단말의 파일 프로그램 등에 피해를 입게된다. 사용자는 암호화된 파일 프로그램을 복호화하기 위하여 복호화 키가 필요하데, 공격자는 사용자에게 복호화를 위한 금전을 요구하게 된다. 이에 따라 사용자는 공격자가 요구하는 금전을 지불할 경우, 공격자로부터 복호화 키를 수신할 수 있으며, 때에 따라 금전을 지불하여도 공격자가 복호화 키를 전달하지 않을 경우, 사용자는 복호화를 수행하지 못하고 피해를 입게 된다.
랜섬웨어의 피해를 줄이기 위하여 복호화 키를 공유하는 방법이 존재한다. 공격자는 다수의 키를 관리하는데 어려움으로 인하여 각각의 복호화 키를 생성하지 않고, 보통 하나의 키로 암/복호화를 수행한다. 이러한 이유로 사용자(예를 들면, 피해자) 중 한 명이 정당하게 금전을 지불하여 복호화 키를 수신하면, 다른 피해자들과 수신한 복호화 키를 공유하여 지불하지 않은 피해자의 시스템 및 파일을 복구하는 것이 가능하다. 하지만 공격자가 복수의 그룹 키를 활용하여 배포할 경우에는 키를 공유하더라도 복구가 어려운 문제점이 존재한다.
일 실시예에 따른 랜섬웨어 방지 장치는 키 백업을 통하여 암호화된 파일을 복구하는 방법을 제공할 수 있다.
일 실시예에 따르면, 랜섬웨어를 방지하는 방법은, 암호 라이브러리가 로드된 프로그램을 탐지하거나 상기 암호 라이브러리가 로드될 때의 프로그램을 추적하는 단계; 상기 암호 라이브러리 내에 생성된 암호화 키를 백업하기 위한 함수의 제어권을 조작하는 단계; 상기 랜섬웨어의 상기 암호화 키의 생성 여부에 기초하여 상기 암호화 키를 각기 다른 방식으로 저장하는 단계; 및 상기 암호화 키의 백업을 통하여 암호화된 프로그램을 복구하는 단계를 포함할 수 있다.
일측에 따르면, 상기 랜섬웨어를 방지하는 방법은, 상기 랜섬웨어가 파일을 암호화하기 위하여 암호화 기능을 실행함에 따라 암호 라이브러리를 로드하는 단계; 및 상기 랜섬웨어가 상기 암호 라이브러리 내에 상기 암호화를 위한 암호화 키를 생성하고, 반입 함수를 호출하는 단계를 더 포함할 수 있다.
또 다른 일측에 따르면, 상기 암호 라이브러리 내에 생성된 암호화 키를 백업하기 위한 함수의 제어권을 조작하는 단계는, 상기 암호 라이브러리 내에 생성된 비밀키 및 공개키의 쌍을 생성하기 위한 함수를 후킹하여 백업하는 단계를 포함할 수 있다.
또 다른 일측에 따르면, 상기 랜섬웨어의 상기 암호화 키의 생성 여부에 기초하여 상기 암호화 키를 각기 다른 방식으로 저장하는 단계는, 상기 랜섬웨어에서 상기 암호화 키를 생성함에 따라 상기 제어권이 조작된 코드가 수행되어 상기 암호화 키를 저장하고, 상기 랜섬웨어가 이미 암호화 키를 보유하고 있어 상기 암호화 키를 생성하지 않을 경우 반입하는 암호화 키를 저장하는 단계를 포함할 수 있다.
또 다른 일측에 따르면, 상기 랜섬웨어의 상기 암호화 키의 생성 여부에 기초하여 상기 암호화 키를 각기 다른 방식으로 저장하는 단계는, 상기 암호화 키의 생성 여부와 관계없이 상기 암호화 키를 확보하지 못한 경우, 암호화 시점에서의 암호화 키를 확보하는 단계를 포함할 수 있다.
또 다른 일측에 따르면, 상기 백업된 암호화 키는, 사용자 단말의 내부 또는 외부의 인증 서버(certificate server)로 전달되어 외부에 의하여 노출되지 않도록 사용자가 등록한 비밀번호 기반, 혹은 인증서 기반으로 안전하게 저장되고, 상기 암호화 키의 백업을 통하여 암호화된 프로그램을 복구하는 단계는, 수사 기관 또는 인증 기관과 협조하여 상기 백업된 암호화 키를 상기 기관의 키로 재암호화하고, 상기 사용자 단말이 랜섬웨어에 감염되어 파일이 암호화된 경우, 상기 수사 기관 또는 인증 기관으로부터 상기 암호화 키를 정상적으로 복호화함으로써 암호화된 파일을 복구하는 단계를 포함할 수 있다.
일 실시예에 따르면, 랜섬웨어를 방지하는 장치에 있어서, 암호 라이브러리가 로드된 프로그램을 탐지하거나 상기 암호 라이브러리가 로드될 때의 프로그램을 추적하는 추적부; 상기 암호 라이브러리 내에 생성된 암호화 키를 백업하기 위한 함수의 제어권을 조작하는 조작부; 상기 랜섬웨어의 상기 암호화 키의 생성 여부에 기초하여 상기 암호화 키를 각기 다른 방식으로 저장하는 저장부; 및 상기 암호화 키의 백업을 통하여 암호화된 프로그램을 복구하는 복구부를 포함할 수 있다.
일측에 따르면, 상기 랜섬웨어가 파일을 암호화하기 위하여 암호화 기능을 실행함에 따라 암호 라이브러리를 로드하고, 상기 암호 라이브러리 내에 상기 암호화를 위한 암호화 키를 생성하고, 반입 함수를 호출할 수 있다.
또 다른 일측에 따르면, 상기 조작부는, 상기 암호 라이브러리 내에 생성된 비밀키 및 공개키의 쌍을 생성하기 위한 함수를 후킹하여 백업할 수 있다.
또 다른 일측에 따르면, 상기 저장부는, 상기 랜섬웨어에서 상기 암호화 키를 생성함에 따라 상기 제어권이 조작된 코드가 수행되어 상기 암호화 키를 저장하고, 상기 랜섬웨어가 이미 암호화 키를 보유하고 있어 상기 암호화 키를 생성하지 않을 경우 반입하는 암호화 키를 저장할 수 있다.
또 다른 일측에 따르면, 상기 저장부는, 상기 암호화 키의 생성 여부와 관계없이 상기 암호화 키를 확보하지 못한 경우, 암호화 시점에서의 암호화 키를 확보할 수 있다.
또 다른 일측에 따르면, 상기 백업된 암호화 키는, 사용자 단말의 내부 또는 외부의 인증 서버(certificate server)로 전달되어 외부에 의하여 노출되지 않도록 사용자가 등록한 비밀번호 기반, 혹은 인증서 기반으로 안전하게 저장되고, 상기 복구부는, 수사 기관 또는 인증 기관과 협조하여 상기 백업된 암호화 키를 상기 기관의 키로 재암호화하고, 상기 사용자 단말이 랜섬웨어에 감염되어 파일이 암호화된 경우, 상기 수사 기관 또는 인증 기관으로부터 상기 암호화 키를 정상적으로 복호화함으로써 암호화된 파일을 복구할 수 있다.
일 실시예에 따른 랜섬웨어 방지 장치는 랜섬웨어에 의하여 암호화된 파일 및 시스템을 복구하기 위하여 암호화에 활용되는 암호화 키를 안전한 저장소에 백업함으로써 감염된 파일 및 시스템을 복구할 수 있다.
도 1은 랜섬웨어의 개괄적인 동작을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 랜섬웨어 방지 장치의 내부 구성을 설명하기 위한 블록도이다.
도 3은 일 실시예에 따른 랜섬웨어 방지 장치의 랜섬웨어 방지 방법을 설명하기 위한 흐름도이다.
도 4는 일 실시예에 따른 암호 라이브러리를 활용하는 랜섬웨어의 구조를 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 키 보관을 활용한 랜섬웨어 방지 장치의 랜섬웨어 방지 동작을 설명하기 위한 도면이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
도 2는 일 실시예에 따른 랜섬웨어 방지 장치의 내부 구성을 설명하기 위한 블록도이고, 도 3은 일 실시예에 따른 랜섬웨어 방지 장치의 랜섬웨어 방지 방법을 설명하기 위한 흐름도이다.
랜섬웨어 방지 장치의 프로세서(200)는 추적부(210), 조작부(220), 저장부(230) 및 복구부(240)를 포함할 수 있다. 랜섬웨어 방지 장치의 프로세서(200) 및 프로세서(200)의 구성요소들은 도 3의 정보 제공 방법이 포함하는 단계들(310 내지 340)을 수행할 수 있다.
프로세서(200) 및 프로세서(200)의 구성요소들은 메모리가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서의 구성요소들은 랜섬웨어 방지 장치에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서(200)에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다.
단계(310)에서 추척부(210)는 암호 라이브러리가 로드된 프로그램을 탐지하거나 암호 라이브러리가 로드될 때의 프로그램을 추적할 수 있다.
단계(320)에서 조작부(220)는 암호 라이브러리 내에 생성된 암호화 키를 백업하기 위한 함수의 제어권을 조작할 수 있다. 조작부(220)는 암호 라이브러리 내에 생성된 비밀키 및 공개키의 쌍을 생성하기 위한 함수를 후킹하여 백업할 수 있다.
단계(330)에서 저장부(230)는 랜섬웨어의 암호화 키의 생성 여부에 기초하여 암호화 키를 각기 다른 방식으로 저장할 수 있다. 저장부(230)는 랜섬웨어에서 암호화 키를 생성함에 따라 제어권이 조작된 코드가 수행되어 암호화 키를 저장하고, 랜섬웨어가 이미 암호화 키를 보유하고 있어 암호화 키를 생성하지 않을 경우 반입하는 암호화 키를 저장할 수 있다. 저장부(230)는 암호화 키의 생성 여부와 관계없이 암호화 키를 확보하지 못한 경우, 암호화 시점에서의 암호화 키를 확보할 수 있다.
단계(340)에서 복구부(240)는 암호화 키의 백업을 통하여 암호화된 프로그램을 복구할 수 있다. 이때, 백업된 암호화 키는 사용자 단말의 내부 또는 외부의 인증 서버(certificate server)로 전달되어 외부에 의하여 노출되지 않도록 사용자가 등록한 비밀번호 기반, 혹은 인증서 기반으로 안전하게 저장될 수 있다. 복구부(240)는 수사 기관 또는 인증 기관과 협조하여 백업된 암호화 키를 기관의 키로 재암호화하고, 사용자 단말이 랜섬웨어에 감염되어 파일이 암호화된 경우, 수사 기관 또는 인증 기관으로부터 암호화 키를 정상적으로 복호화함으로써 암호화된 파일을 복구할 수 있다.
도 4는 일 실시예에 따른 암호 라이브러리를 활용하는 랜섬웨어의 구조를 설명하기 위한 도면이다.
아래의 설명에서는 랜섬웨어를 동작시키기 위한 몇 가지의 조건이 전제될 수 있다. 첫째, 랜섬웨어가 올바르게 침투하는 방법이 필요하다. 사용자는 사용자의 단말을 안전하게 보호하기 위하여 안티 바이러스 프로그램을 설치할 수 있다. 사용자 단말은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 사용자 단말의 예를 들면, 스마트폰(smart phone), 휴대폰, 내비게이션, 컴퓨터, 노트북, 디지털 방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 이에 따라 랜섬웨어는 안티 바이러스 프로그램에 의하여 탐지되지 않도록 알려진 제로-데이(Zero-day) 또는 알려지지 않은 취약점을 이용하여 사용자 단말에 침투해야 한다.
둘째, 침투한 랜섬웨어가 암호화 같은 악의적인 기능을 수행하는 동안 안티 바이러스 프로그램에 의하여 탐지되지 않아야 한다. 침투된 이후 암호화를 수행하지 못할 경우, 금전을 요구할 수 없으므로 은폐적인 작업(예를 들면, 루트킷 기법)이 요구될 수 있다.
셋째, 암호 기능을 정상적으로 동작시키기 위하여 직접 제작하거나 사용자 단말에서 제공하는 라이브러리를 활용할 수 있다. 암호화 기능은 랜섬웨어의 핵심적인 부분 중 하나이므로 암호화 기능이 정상적으로 동작하지 않을 경우 또는 정상적으로 설계되지 않은 경우, 정상적으로 암호화가 이루어지지 않아 복구가 불가능하거나 키가 노출되는 문제점이 있다. 암호 기능을 제작하는 경우 사용자 단말마다 정상적으로 동작하지 않을 수 있기 때문에 암호화 라이브러리를 활용하여 안정성을 확보할 수 있다.
넷째, 암호화에 필요한 키는 감염된 사용자 단말의 수만큼 생성되어야 한다. 감염된 사용자 단말의 수만큼 암호화 키가 생성될 경우 공격자 역시 키를 관리하기 때문에 일괄적으로 키를 생성하여 안정성을 높일 수 있다.
시스템에 침투한 랜섬웨어(410)는 파일을 암호화하기 위하여 암호 기능을 실행할 수 있다(441). 랜섬웨어(410)는 암호 기능을 실행하기 위하여 CNG 라이브러리(420)를 로드할 수 있으며, CNG 라이브러리(420)에서 암호화를 위한 암호화 키를 생성할 수 있다(442). 암호화 키가 정상적으로 생성될 경우, 파일을 복구하기 위하여 사용자가 금전을 지불하도록 하기 위하여 생성된 암호화 키를 공격자에게 제공할 수 있다.
랜섬웨어는 암호화 키가 생성됨에 따라 파일 시스템(430)에 존재하는 파일, 예를 들면, JPG, DOC, PPT, XML, MP3 등의 파일을 대상으로 암호화를 수행할 수 있다(443).
이와 같은 구조를 지닌 랜섬웨어는 비밀키를 생성하기 위하여 CNG 라이브러리의 BCryptGenerateSymmetricKey 함수를 호출하며, 공개키 쌍을 생성하기 위하여 BCryptGenerateKeyPair 함수를 호출할 수 있다.
랜섬웨어 제작자는 암호 기능의 경우에 직접 제작하는 것보다 사용자 단말에서 제공하는 암호 라이브러리를 활용하여 안정성을 높일 수 있다. 이에 따라 랜섬웨어 방지 장치는 암호 라이브리러를 활용하여 랜섬웨어 방지를 수행하는 방법을 제안할 수 있다. 예를 들면, 윈도우 시스템의 경우, 상용화된 암호 라이브러리를 제공할 수 있다. 암호 라이브러리의 예로서 CNG 라이브러리를 예를 들어 설명하기로 한다. 아래의 설명에서는 랜섬웨어 내부 혹은 외부의 서버로부터 CNG 라이브러리를 활용하여 암호화하는 코드를 다운로드한 후, 상기 코드에서 파일을 암호화하는 것으로 가정하기로 한다.
CNG 라이브러리에서 암호화를 수행할 때 활용되는 함수는 키 생성 및 반입 함수로서, 예를 들면, 키 생성을 위한 BCryptGenerateSymmetricKey와 BCryptGenerateKeyPair 함수, 키 반입을 위한 BCryptImportKey와 BCryptImportKeyPair 함수가 사용될 수 있고, 암/복호화 연산을 수행하는 함수로서, 예를 들면, BCryptEncrypt와 BCryptDecrypt 함수가 사용될 수 있다.
랜섬웨어가 CNG 라이브러리를 활용하여 파일을 암호화하기 때문에, 랜섬웨어 방지 장치는 암호화 키를 백업하기 위하여 키 생성 및 반입 함수의 제어권을 조작하고, 확보한 키를 저장공간 혹은 인증 서버로 전달하여 저장할 수 있다. 이때, 제어권을 조작하는 예로서, 이하, 후킹(Hooking)을 예를 들어 설명하기로 한다.
방지 프로그램은 CNG 라이브러리가 로드된 프로그램을 탐색하거나 또는 CNG 라이브러리가 로드될 때의 프로그램을 추적한 후, 비밀키를 백업하기 위하여 BCryptGenerateSymmetricKey 함수, 공개키 쌍을 백업하기 위하여 BCryptGenerateKeyPair 함수를 후킹할 수 있다. 이후, 랜섬웨어에서 암호화 키를 생성한다면, 방지 프로그램에 의하여 후킹된 코드가 수행됨으로써 암호화 키를 안전하게 저장할 수 있다. 이때, 방지 프로그램은 랜섬웨어가 내부에 이미 암호화 키를 가지고 있어 암호화 키를 생성하지 않을 경우, 반입하는 암호화 키를 보관할 수 있다. 암호화 키를 반입하기 위해서는 비밀키의 경우 BCryptImportKey 함수, 공개키의 경우 BCryptImportKeyPair 함수를 호출하므로 상기 함수를 후킹한 후, 반입되는 키를 안전하게 보관할 수 있다. 만약 상기 과정에서도 암호화 키를 확보하지 못한 경우, 암호화 시점에서의 암호화 키를 확보할 수 있다. 암호화를 위해서는 BCryptEncrypt 함수를 호출하므로 상기 함수를 후킹한 후, 암호화에 활용되는 암호화 키를 안전하게 보관할 수 있다.
도5를 참고하면, 키 보관을 활용한 랜섬웨어 방지 장치의 랜섬웨어 방지 동작을 설명하기 위한 도면이다. 랜섬웨어 방지 장치는 방지 프로그램에 의하여 동작될 수 있으며, 안티 바이러스 제품의 하나의 모듈이 될 수 있다.
시스템에 침투한 랜섬웨어(510)는 파일을 암호화하기 위하여 암호 기능을 실행할 수 있다(541). 방지 프로그램은 암호화 기능을 수행하는 프로그램이 정상 프로그램인지 랜섬웨어인지 검증하기 어렵기 때문에 암호 기능을 정상적으로 수행하도록 할 수 있다(544).
랜섬웨어(510)는 암호 기능을 실행하기 위하여 CNG 라이브러리(520)를 로드할 수 있으며, CNG 라이브러리(520)에서 암호화를 위한 암호화 키를 생성할 수 있다(552). 랜섬웨어에서 암호 기능이 실행됨에 따라 CNG 라이브러리(520) 내에 암호화 키 생성 및 반입 함수가 호출될 수 있다. CNG 라이브러리(520)는 생성된 암호화 키를 방지 프로그램으로 전달할 수 있다.
랜섬웨어(510)는 암호화 키가 생성됨에 따라 파일 시스템(530)에 존재하는 파일, 예를 들면, JPG, DOC, PPT, XML, MP3 등의 파일을 대상으로 암호화를 수행할 수 있다(553).
방지 프로그램은 CNG 라이브러리(520)로부터 전달된 암호화 키를 안전하게 저장할 수 있다(555). 이때, 방지 프로그램은 암호화 키를 확보하지 못한 경우, 암호화 시점에서 암호화 키를 확보할 수 있다.
방지 프로그램에 저장되는 암호화 키는 사용자 단말의 내부 또는 외부의 인증 서버로 전달되어 안전하게 백업될 수 있다. 이때, 저장된 키는 외부에 의하여 쉽게 노출되지 않도록 예를 들면, 기 설정된 비밀번호, 인증서 기반으로 안전하게 저장할 수 있다. 추가적으로 안정성을 더욱 높이기 위하여 수사 기관 또는 인증 기관과 연동하여 암호화 키를 상기 기관의 키로 재암호화할 수도 있다(556). 사용자가 랜섬웨어에 감염되어 파일이 암호화된 경우, 수사 기관 또는 인증 기관에 의뢰하여 암호화 키를 복호화함으로써 암호화된 파일을 복구할 수 있게 된다.
일 실시예에 따른 랜섬웨어 방지 장치는 랜섬웨어에 의해 암호화된 시스템 및 파일을 복구하기 위하여 암호화에 활용되는 암호화 키를 안전한 저장소에 백업함으로써 랜섬웨어에 감염된 파일 및 시스템을 복구하는 것이 가능하게 된다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (12)

  1. 랜섬웨어를 방지하는 방법에 있어서,
    암호 라이브러리가 로드된 프로그램을 탐지하거나 상기 암호 라이브러리가 로드될 때의 프로그램을 추적하는 단계;
    상기 암호 라이브러리 내에 생성된 암호화 키를 백업하기 위한 함수의 제어권을 조작하는 단계;
    상기 랜섬웨어의 상기 암호화 키의 생성 여부에 기초하여 상기 암호화 키를 각기 다른 방식으로 저장하는 단계; 및
    상기 암호화 키의 백업을 통하여 암호화된 프로그램을 복구하는 단계
    를 포함하고,
    상기 랜섬웨어의 상기 암호화 키의 생성 여부에 기초하여 상기 암호화 키를 각기 다른 방식으로 저장하는 단계는,
    상기 랜섬웨어에서 상기 암호화 키를 생성함에 따라 상기 제어권이 조작된 코드가 수행되어 상기 암호화 키를 저장하고, 상기 랜섬웨어가 이미 암호화 키를 보유하고 있어 상기 암호화 키를 생성하지 않을 경우 반입하는 암호화 키를 저장하는 단계
    를 포함하고,
    상기 암호화 키의 백업을 통하여 암호화된 프로그램을 복구하는 단계는,
    수사 기관 또는 인증 기관과 협조하여 상기 백업된 암호화 키를 상기 기관의 키로 재암호화하고, 사용자 단말이 랜섬웨어에 감염되어 파일이 암호화된 경우, 상기 수사 기관 또는 인증 기관으로부터 상기 암호화 키를 정상적으로 복호화함으로써 암호화된 파일을 복구하는 단계
    를 포함하는 랜섬웨어 방지 방법.
  2. 제1항에 있어서,
    상기 랜섬웨어가 파일을 암호화하기 위하여 암호화 기능을 실행함에 따라 암호 라이브러리를 로드하는 단계; 및
    상기 랜섬웨어가 상기 암호 라이브러리 내에 상기 암호화를 위한 암호화 키를 생성하고, 반입 함수를 호출하는 단계
    를 더 포함하는 랜섬웨어 방지 방법.
  3. 제1항에 있어서,
    상기 암호 라이브러리 내에 생성된 암호화 키를 백업하기 위한 함수의 제어권을 조작하는 단계는,
    상기 암호 라이브러리 내에 생성된 비밀키 및 공개키의 쌍을 생성하기 위한 함수를 후킹하여 백업하는 단계
    를 포함하는 랜섬웨어 방지 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 랜섬웨어의 상기 암호화 키의 생성 여부에 기초하여 상기 암호화 키를 각기 다른 방식으로 저장하는 단계는,
    상기 암호화 키의 생성 여부와 관계없이 상기 암호화 키를 확보하지 못한 경우, 암호화 시점에서의 암호화 키를 확보하는 단계
    를 포함하는 랜섬웨어 방지 방법.
  6. 제1항에 있어서,
    상기 백업된 암호화 키는,
    사용자 단말의 내부 또는 외부의 인증 서버(certificate server)로 전달되어 외부에 의하여 노출되지 않도록 사용자가 등록한 비밀번호 기반, 혹은 인증서 기반으로 안전하게 저장되는
    랜섬웨어 방지 방법.
  7. 랜섬웨어를 방지하는 장치에 있어서,
    암호 라이브러리가 로드된 프로그램을 탐지하거나 상기 암호 라이브러리가 로드될 때의 프로그램을 추적하는 추적부;
    상기 암호 라이브러리 내에 생성된 암호화 키를 백업하기 위한 함수의 제어권을 조작하는 조작부;
    상기 랜섬웨어의 상기 암호화 키의 생성 여부에 기초하여 상기 암호화 키를 각기 다른 방식으로 저장하는 저장부; 및
    상기 암호화 키의 백업을 통하여 암호화된 프로그램을 복구하는 복구부
    를 포함하고,
    상기 저장부는,
    상기 랜섬웨어에서 상기 암호화 키를 생성함에 따라 상기 제어권이 조작된 코드가 수행되어 상기 암호화 키를 저장하고, 상기 랜섬웨어가 이미 암호화 키를 보유하고 있어 상기 암호화 키를 생성하지 않을 경우 반입하는 암호화 키를 저장하고,
    상기 복구부는,
    수사 기관 또는 인증 기관과 협조하여 상기 백업된 암호화 키를 상기 기관의 키로 재암호화하고, 사용자 단말이 랜섬웨어에 감염되어 파일이 암호화된 경우, 상기 수사 기관 또는 인증 기관으로부터 상기 암호화 키를 정상적으로 복호화함으로써 암호화된 파일을 복구하는
    랜섬웨어 방지 장치.
  8. 제7항에 있어서,
    상기 랜섬웨어가 파일을 암호화하기 위하여 암호화 기능을 실행함에 따라 암호 라이브러리를 로드하고, 상기 암호 라이브러리 내에 상기 암호화를 위한 암호화 키를 생성하고, 반입 함수를 호출하는 것
    을 더 포함하는 랜섬웨어 방지 장치.
  9. 제7항에 있어서,
    상기 조작부는,
    상기 암호 라이브러리 내에 생성된 비밀키 및 공개키의 쌍을 생성하기 위한 함수를 후킹하여 백업하는
    것을 특징으로 하는 랜섬웨어 방지 장치.
  10. 삭제
  11. 제7항에 있어서,
    상기 저장부는,
    상기 암호화 키의 생성 여부와 관계없이 상기 암호화 키를 확보하지 못한 경우, 암호화 시점에서의 암호화 키를 확보하는
    것을 특징으로 하는 랜섬웨어 방지 장치.
  12. 제7항에 있어서,
    상기 백업된 암호화 키는,
    사용자 단말의 내부 또는 외부의 인증 서버로 전달되어 외부에 의하여 노출되지 않도록 사용자가 등록한 비밀번호 기반, 혹은 인증서 기반으로 안전하게 저장되는
    것을 특징으로 하는 랜섬웨어 방지 장치.
KR1020160084034A 2016-07-04 2016-07-04 키 백업을 사용한 랜섬웨어 방지 시스템 및 방법 KR101859823B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160084034A KR101859823B1 (ko) 2016-07-04 2016-07-04 키 백업을 사용한 랜섬웨어 방지 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160084034A KR101859823B1 (ko) 2016-07-04 2016-07-04 키 백업을 사용한 랜섬웨어 방지 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20180004462A KR20180004462A (ko) 2018-01-12
KR101859823B1 true KR101859823B1 (ko) 2018-06-28

Family

ID=61001086

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160084034A KR101859823B1 (ko) 2016-07-04 2016-07-04 키 백업을 사용한 랜섬웨어 방지 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101859823B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10447671B1 (en) * 2017-03-29 2019-10-15 Symantec Corporation Systems and methods for recovering encrypted information
WO2021172765A1 (ko) * 2020-02-24 2021-09-02 삼성전자주식회사 전자 장치 및 그 제어 방법
US11227053B2 (en) 2019-12-10 2022-01-18 Micro Focus Llc Malware management using I/O correlation coefficients

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4115759B2 (ja) * 2002-07-01 2008-07-09 株式会社東芝 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
KR101623096B1 (ko) 2015-05-13 2016-05-23 주식회사 에스이웍스 안드로이드 플랫폼에서의 apk 파일 관리 장치 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100985071B1 (ko) * 2008-02-01 2010-10-05 주식회사 안철수연구소 스크립트 언어를 사용한 취약점 공격 코드의 실시간 탐지및 차단 방법, 및 그 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4115759B2 (ja) * 2002-07-01 2008-07-09 株式会社東芝 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
KR101623096B1 (ko) 2015-05-13 2016-05-23 주식회사 에스이웍스 안드로이드 플랫폼에서의 apk 파일 관리 장치 및 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10447671B1 (en) * 2017-03-29 2019-10-15 Symantec Corporation Systems and methods for recovering encrypted information
US11227053B2 (en) 2019-12-10 2022-01-18 Micro Focus Llc Malware management using I/O correlation coefficients
WO2021172765A1 (ko) * 2020-02-24 2021-09-02 삼성전자주식회사 전자 장치 및 그 제어 방법

Also Published As

Publication number Publication date
KR20180004462A (ko) 2018-01-12

Similar Documents

Publication Publication Date Title
CN112074836B (zh) 通过可信执行环境保护数据的设备和方法
US9852289B1 (en) Systems and methods for protecting files from malicious encryption attempts
US9888032B2 (en) Method and system for mitigating the effects of ransomware
JP6352332B2 (ja) 変更されたデータを復元するシステム及び方法
Altuwaijri et al. Android data storage security: A review
US7975308B1 (en) Method and apparatus to secure user confidential data from untrusted browser extensions
JP6789308B2 (ja) トリップワイヤファイルを生成するためのシステム及び方法
JP6196393B2 (ja) プリインストールアプリケーションのスキャンを最適化するためのシステム及び方法
JP6227772B2 (ja) 動的ライブラリを保護する方法及び装置
US9338012B1 (en) Systems and methods for identifying code signing certificate misuse
US8181028B1 (en) Method for secure system shutdown
CN103827881A (zh) 用于设备操作系统中的动态平台安全的方法和系统
US20090282265A1 (en) Method and apparatus for preventing access to encrypted data in a node
US10250588B1 (en) Systems and methods for determining reputations of digital certificate signers
Lee et al. Ransomware prevention technique using key backup
US9529733B1 (en) Systems and methods for securely accessing encrypted data stores
Popoola et al. Ransomware: Current trend, challenges, and research directions
US10262131B2 (en) Systems and methods for obtaining information about security threats on endpoint devices
KR101859823B1 (ko) 키 백업을 사용한 랜섬웨어 방지 시스템 및 방법
US10447671B1 (en) Systems and methods for recovering encrypted information
US10169584B1 (en) Systems and methods for identifying non-malicious files on computing devices within organizations
US10192056B1 (en) Systems and methods for authenticating whole disk encryption systems
US11411968B1 (en) Systems and methods for protecting a cloud computing device from malware
US11003746B1 (en) Systems and methods for preventing electronic form data from being electronically transmitted to untrusted domains
Müller et al. Stark: Tamperproof Authentication to Resist Keylogging

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