KR101825699B1 - Cng를 사용한 프로그램에서 보안 개선 방법 및 이러한 방법을 수행하는 장치 - Google Patents

Cng를 사용한 프로그램에서 보안 개선 방법 및 이러한 방법을 수행하는 장치 Download PDF

Info

Publication number
KR101825699B1
KR101825699B1 KR1020160044999A KR20160044999A KR101825699B1 KR 101825699 B1 KR101825699 B1 KR 101825699B1 KR 1020160044999 A KR1020160044999 A KR 1020160044999A KR 20160044999 A KR20160044999 A KR 20160044999A KR 101825699 B1 KR101825699 B1 KR 101825699B1
Authority
KR
South Korea
Prior art keywords
cng
hooking
program
library
programs
Prior art date
Application number
KR1020160044999A
Other languages
English (en)
Other versions
KR20170117283A (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 KR1020160044999A priority Critical patent/KR101825699B1/ko
Publication of KR20170117283A publication Critical patent/KR20170117283A/ko
Application granted granted Critical
Publication of KR101825699B1 publication Critical patent/KR101825699B1/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
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A40/00Adaptation technologies in agriculture, forestry, livestock or agroalimentary production
    • Y02A40/10Adaptation technologies in agriculture, forestry, livestock or agroalimentary production in agriculture
    • Y02A40/22Improving land use; Improving water use or availability; Controlling erosion

Abstract

CNG를 사용한 프로그램에서 보안 개선 방법 및 이러한 방법을 수행하는 장치가 개시된다. CNG를 사용한 프로그램에서 보안 개선 방법은 실행 중인 모든 프로그램에 대한 리스트를 생성하는 단계, 모든 프로그램 중 CNG(cryptography API(application programing interface) next generation)를 활용하는 응용 프로그램을 검색하는 단계, 응용 프로그램에서 CNG 라이브러리에 대한 후킹 여부를 탐색하는 단계, CNG 라이브러리에 대한 후킹이 발생한 경우, 후킹에 대한 무력화 절차를 수행하는 단계를 포함할 수 있다.

Description

CNG를 사용한 프로그램에서 보안 개선 방법 및 이러한 방법을 수행하는 장치{Method for improving security in program using CNG(cryptography API next generation) and apparatus for using the same}
본 발명은 보안 향상 방법 및 장치에 관한 것으로서, 보다 상세하게는 CNG를 사용한 프로그램에서 보안 개선 방법 및 이러한 방법을 수행하는 장치에 관한 것이다.
최근 다양한 보안 어플리케이션의 구현상 취약점으로 인한 해킹 사고가 잇따르고 있다. 이러한 해킹 사고는 사소하게는 개인 정보의 유출부터 심각하게는 금전적 피해를 동반하는 온라인 사기, 국가 안보를 위협할만한 기밀 시설에 대한 공격 등에 이르기까지 그 치명성이나 규모가 다양하며, 이러한 사이버 위협은 사회 각 구성원 누구나 목표물이 될 수 있다는 점에서 모두가 관심을 가져야 할 사안이다.
보안 어플리케이션에서 암호화/복호화의 중요성은 아무리 강조하여도 지나치지 않다. 그러나 고도의 보안성을 지원하기 위하여 필요한 기반 기술도 구현함에 있어 구조적 또는 기능적 취약점을 포함하고 있을 수 있으며, 이러한 경우, 첨단 보안 어플리케이션도 사이버 위협에 대하여 무용지물이 될 수 있다. 따라서 보안 구조의 가장 기본적인 요소인 암호화 라이브러리의 보안 취약점 분석 및 공격 가능성 진단은 보안 어플리케이션의 개발 및 구현 과정에서 가장 원천적이고 중요한 설계 요소라고 볼 수 있다.
CNG(Cryptography API(application programing interface): Next Generation)는 윈도우 비스타부터 등장하였으며, 윈도우 비스타, 7, 8, 서버 2008, 서버 7, 스토리지 서버 2008 등에 기본으로 제공된다. 특히, 윈도우 8부터는 CNG가 핵심적인 요소 중 하나로 제공하고 있으며, 윈도우 비스타 출시 이후로 윈도우 XP의 점유율이 줄어들고 윈도우 비스타와 7의 점유율이 증가하고 있다. 또한, 마이크로소프트 오피스 2010에서 디지털 서명을 사용한 정보 보안 및 무결성을 향상시키기 위한 방법으로 CNG를 사용하고 있으며, 윈도우 8부터 클라우드 컴퓨팅과 관련된 일환으로 데이터 보호를 위하여 CNG의 DPAPI(Data Protection Application Programming Interface)가 새로이 등장하여 암호 시스템의 핵심 기술로 소개되고 있다. 이는 CNG가 활용되는 환경이 증가하는 것을 의미하므로 이에 대한 연구가 시급한 실정이다.
KR 10-2009-0043878
본 발명의 일 측면은 CNG를 사용한 프로그램에서 보안 개선 방법을 제공한다.
본 발명의 다른 측면은 CNG를 사용한 프로그램에서 보안 개선 방법을 수행하는 장치를 제공한다.
본 발명의 일 측면에 따른 CNG를 사용한 프로그램에서 보안 개선 방법은 실행 중인 모든 프로그램에 대한 리스트를 생성하는 단계, 상기 모든 프로그램 중 CNG(cryptography API(application programing interface) next generation)를 활용하는 응용 프로그램을 검색하는 단계, 상기 응용 프로그램에서 CNG 라이브러리에 대한 후킹 여부를 탐색하는 단계, 상기 CNG 라이브러리에 대한 후킹이 발생한 경우, 상기 후킹에 대한 무력화 절차를 수행하는 단계를 포함할 수 있다.
한편, 상기 후킹 여부에 대한 탐색은 상기 CNG 라이브러리에 포함되는 함수의 첫 바이트가 jmp코드로 변조되었는지 여부를 기반으로 수행되고, 상기 무력화 절차는 상기 jmp 코드를 원래의 코드로 복원할 수 있다.
본 발명의 또 다른 측면에 따른 CNG를 사용한 프로그램에서 보안 개선을 위한 장치는 프로세스를 포함하고, 상기 프로세스는 실행 중인 모든 프로그램에 대한 리스트를 생성하고, 상기 모든 프로그램 중 CNG(cryptography API(application programing interface) next generation)를 활용하는 응용 프로그램을 검색하고, 상기 응용 프로그램에서 CNG 라이브러리에 대한 후킹 여부를 탐색하고, 상기 CNG 라이브러리에 대한 후킹이 발생한 경우, 상기 후킹에 대한 무력화 절차를 수행하도록 구현될 수 있다.
한편, 상기 후킹 여부에 대한 탐색은 상기 CNG 라이브러리에 포함되는 함수의 첫 바이트가 jmp코드로 변조되었는지 여부를 기반으로 수행되고, 상기 무력화 절차는 상기 jmp 코드를 원래의 코드로 복원할 수 있다.
본 발명의 실시예에 따른 CNG를 사용한 프로그램에서 보안 개선 방법 및 이러한 방법을 수행하는 장치는 CNG 라이브러리에 대한 후킹 여부를 탐색하고 후킹이 발생한 경우, 원래 함수로 복원하여 개인 정보의 유출을 막을 수 있다.
도 1은 본 발명의 실시예에 따른 공격 소프트웨어와 취약점 확인 소프트웨어의 CNG 함수 해킹 동작이 개시된다.
도 2는 본 발명의 실시예에 따른 아웃룩 프로그램에 대한 공격 가능성 확인 방법을 나타낸 개념도이다.
도 3은 본 발명의 실시예에 따른 개념 검증 도구를 나타낸 개념도이다.
도 4는 본 발명의 실시예에 따른 메일을 수신시 전송되는 계정 정보를 나타낸 개념도이다.
도 5는 본 발명의 실시예에 따른 계정 정보에 대한 탈취 결과를 나타낸 개념도이다.
도 6은 본 발명의 실시예에 따른 SSL 통신으로 웹 사이트에 접속할 경우 확인되는 입/출력 인자가 개시된다.
도 7은 본 발명의 실시예에 따른 인터넷 익스플로러를 통한 계정 탈취 결과를 나타낸 개념도이다.
도 8은 본 발명의 실시예에 따른 후킹에 대한 대응 방법을 나타낸 개념도이다.
도 9는 본 발명의 실시예에 따른 탐지 및 복원 절차를 나타낸 개념도이다.
도 10은 본 발명의 실시예에 따른 CNG를 사용한 프로그램에서 보안 개선 방법을 수행하는 장치를 나타낸 개념도이다.
도 11은 본 발명의 실시예에 후킹 여부에 대한 탐색 및 복원 절차를 나타낸 개념도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조 부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
현재 CNG가 활용되는 환경의 증가에 따라 CNG의 취약점 분석에 대한 연구가 진행되고 있다. 기존의 CNG에 대한 연구에서는 CNG가 공격적인 요소를 가지므로 방어적인 요소가 요구된다고 서술되었다. 공격적인 요소로 CNG가 민첩성을 제공하기 위하여 많은 부분 보안성을 배제하여야만 했고, 특히, CAPI(Cryptography API)에서 실시되던 CSP(Cryptographic Service Provide)를 마이크로소프트에 서명받는 과정이 배제되면서 보안성을 제공하는 별도의 도구가 필요하게 되었다. 하지만, 현재 보안성을 제공하기 위한 도구가 제공되지 않다는 취약점이 존재한다. 과거 CAPI에 대해 악성 코드가 암호화/복호화 함수를 활용하면서 안티 바이러스 제품의 탐지를 우회하거나 중요한 정보를 암호화하여 금전적인 협박을 하는 등의 문제점이 드러났다. 따라서, 이에 대응하기 위한 방안으로 API 후킹을 이용한 보안 솔루션이 연구되었다.
기존의 보안 솔루션에서는 CAPI 라이브러리 함수를 방어자의 입장에서 후킹하여 악성 코드가 암호화 알고리즘을 사용하여 암호문을 생성할 경우, 보안 솔루션은 악성 코드가 사용된 암호 알고리즘, 암호 키에 대한 정보를 구할 수 있다. 이를 이용하여 복호한다면 악성 코드에 의한 데이터 훼손이나 유출의 피해를 방지할 수 있다는 것이다. 하지만 이러한 기법은 공격자에 의해서도 활용될 수 있기 때문에 선점의 문제가 발생한다. 즉, API 후킹을 공격자가 먼저 수행하는지, 아니면 방어자가 먼저 수행하는지에 따라 그 결과가 달라질 수 있다.
이하, 본 발명의 실시예에서는 API 후킹을 활용하여 CNG에서 발생 가능한 취약점을 도출하고, 도출된 취약점을 활용하는 개념 검증 도구가 개시된다. 또한, 구현된 도구를 기반으로 실제 상용 프로그램에서의 공격 가능성이 확인되었고 이러한 공격 가능성에 대한 대응책이 제안된다.
도 1은 본 발명의 실시예에 따른 공격 소프트웨어와 취약점 확인 소프트웨어의 CNG 함수 해킹 동작이 개시된다.
도 1을 참조하면, 대상 프로그램에 후킹을 위한 악의적인 DLL(dynamic link library)(150)이 인젝션되는 경우, 대상 프로그램은 악의적인 DLL(150)을 로드하고 DLL은 CNG 라이브러리(100)에 포함되는 BCrypt 라이브러리(110)와 NCrypt 라이브러리(120) 내의 모든 함수를 후킹할 수 있다. 함수에 대한 후킹이 완료된 후 대상 프로그램에서 BCrypt 라이브러리(110)와 NCrypt 라이브러리(120) 내의 특정 함수가 호출될 경우, 악의적인 기능을 수행할 수 있으므로 취약점이 존재한다. 또한, 대상 프로그램에서 전달하는 인자나 동작 과정 등이 확인될 수 있기 때문에 취약점을 확인하는 용도로 활용이 가능하다.
구체적으로 정상적인 호출 과정인 경우, 사용자 요청에 따라 CNG 라이브러리(100)에 포함되는 BCrypt 라이브러리 함수(110), NCrypt 라이브러리 함수(120)를 기반으로 정상적인 결과가 유도될 수 있다.
반대로 후킹 후 호출 과정인 경우, 사용자 요청에 따라 악의적인 라이브러리가 로드되고, 악의적인 라이브러리의 로드에 따라 BCrypt 라이브러리(110)와 NCrypt 라이브러리(120) 내의 특정 함수가 호출될 경우, 악의적인 결과가 유도될 수 있다.
컴퓨터에서 많이 활용 중인 아웃룩(outlook)과 인터넷 익스플로러(internet explorer)와 같은 프로그램은 CNG를 활용하고 있다. 이에 본 발명의 실시예에서는 설명의 편의상 아웃룩과 인터넷 익스플로러 프로그램을 토대로 공격 가능성이 분석되었다. 실험 환경은 Intel® Core(TM i5-2410M CPU 2.30GHz, 4GB RAM, Microsoft Windows 7 Home Premium K 운영체제가 설치된 PC를 이용하였으며, CNG를 활용하기 위하여 CNG SDK(software development kit), Windows SDK 7.1과 .NET Framework 4가 설치되었으며, 개념 검증 도구를 구현하기 위하여 Visual Studio 2005가 설치되고, CNG의 샘플 소스 참조를 위하여 CNG Demo Sample Code가 설치되었다.
도 2는 본 발명의 실시예에 따른 아웃룩 프로그램에 대한 공격 가능성 확인 방법을 나타낸 개념도이다.
도 2를 참조하면, 아웃룩 프로그램의 공격 가능성에 대한 확인을 위하여, 우선 동작 과정 및 메커니즘의 분석이 시도되었다. 이를 위하여 아웃룩 프로그램에 악의적인 DLL을 인젝션한 후, BCrypt와 NCrypt 라이브러리에서 활용하는 모든 함수를 후킹하고, 메일을 보낼 경우의 입력/출력 인자를 확인하였다.
입력 인자에 대한 확인 결과, pbInput 인자에서 메일과 관련된 정보를 MIME 포맷으로 전송하는 것을 확인하였으며, 전송되는 메일과 관련된 정보는 보내는 사람, 받는 사람, 제목, 보낸 날짜, 참조, 메일 내용 등을 포함한다.
아웃룩 프로그램은 메일을 전송할 때 SSL(secured socket layer) 통신을 이용하여 메일과 관련된 정보를 암호화하여 메일 서버로 전송할 수 있다. 따라서 공격자는 메일 정보를 암호화하는 SslEncryptPacket 함수를 후킹하여 메일과 관련된 정보를 탈취할 수 있으며, 탈취한 정보를 공격자의 서버로 전송함으로써 자동화된 공격을 시도할 수 있다. 따라서 본 발명의 실시예에서는 아웃룩 프로그램이 메일을 전송할 때, 보내는 사람, 받는 사람, 참조, 제목, 날짜 내용을 탈취하여 공격자에게 전송하고, 공격자는 이를 수신하여 탈취한 정보를 확인하는 공격 시나리오를 토대로 개념 검증 도구를 구현하였다.
도 3은 본 발명의 실시예에 따른 개념 검증 도구를 나타낸 개념도이다.
도 3을 참조하면, 아웃룩을 통해 전송하는 메일의 내용 상에서 메일 정보를 탈취 가능함이 확인될 수 있다.
즉, 도 3에서 개시된 결과를 토대로 아웃룩 프로그램에서 보내는 메일에 대한 공격 가능성이 확인되었으므로 동일한 공격을 통한 받는 메일의 탈취 가능성이 확인되었다.
도 4는 본 발명의 실시예에 따른 메일을 수신시 전송되는 계정 정보를 나타낸 개념도이다.
도 4를 참조하면, 받는 메일의 경우, 설정된 메일 서버로부터 메일을 수신하기 위하여 메일 서버에 접속해야 하므로 계정 정보가 메일 서버로 전송될 수 있다.
도 3 및 도 4에 개시된 결과를 토대로 아웃룩 프로그램이 메일 서버로부터 메일을 수신시 전송하는 계정 정보가 탈취 가능함이 확인된다. 즉, 탈취한 계정 정보가 공격자에게 전송되고 공격자가 탈취한 계정 정보에 대해 확인하는 것으로 공격 가능성이 검증되었다.
도 5는 본 발명의 실시예에 따른 계정 정보에 대한 탈취 결과를 나타낸 개념도이다.
도 5를 참조하면, 아웃룻 프로그램 상에서 악의적인 DLL이 인젝션된 후, BCrypt와 NCrypt 라이브러리에서 활용하는 모든 함수가 후킹되는 경우, 아웃룩 프로그램의 계정이 탈취됨이 확인되었다.
전술한 바와 같이 아웃룩 프로그램에서 공격 가능성에 대한 확인과 마찬가지로, 인터넷 익스플로러 프로그램을 대상으로 동작 과정 및 메커니즘이 분석되었다.
도 6은 본 발명의 실시예에 따른 SSL 통신으로 웹 사이트에 접속할 경우 확인되는 입/출력 인자가 개시된다.
도 6을 참조하면, 입력 인자에 대한 확인 결과, pbInput 인자에 사용자의 계정 정보가 사이트 별로 다르게 전송되는 것이 확인되었다. 아마존(Amazon)의 경우, 이메일(email) 필드에 아이디, 패스워드(password) 필드에 비밀번호, 이베이(E-bay)의 경우, 사용자 ID(userid) 필드에 아이디, 패스워드(pass) 필드에 비밀번호, 구글(Google)의 경우, 이메일(Email) 필드에 아이디, 패스워드(Passwd) 필드에 비밀번호, 페이스북(Facebook)의 경우, 이메일(email) 필드에 아이디, 패스워드(pass) 필드에 비밀번호를 포함할 수 있다.
이는 인터넷 익스플로러 프로그램이 웹 사이트에 접속시 SSL 통신을 이용하여 사용자 계정 정보를 암호화함으로써 계정 정보가 보호될 수 있다. 따라서, 공격자의 경우, 계정 정보를 암호화하는 SslEncryptPacket 함수가 후킹되어 계정 정보가 탈취될 수 있으며, 탈취한 정보가 공격자의 서버로 전송됨으로써 자동화된 공격이 시도될 수 있다.
도 7은 본 발명의 실시예에 따른 인터넷 익스플로러를 통한 계정 탈취 결과를 나타낸 개념도이다.
도 7을 참조하면, 인터넷 익스플로러 프로그램 상에서 악의적인 DLL이 인젝션된 후, BCrypt와 NCrypt 라이브러리에서 활용하는 모든 함수가 후킹되는 경우, 인터넷 익스플로러 프로그램을 통해 방문한 사이트들의 계정이 탈취됨을 확인할 수 있다.
현재까지는 전술한 위와 같은 CNG 프로그램을 사용하는 프로그램에 대한 취약점에 대응하지 못한다. 따라서, 본 발명의 실시예에서는 이러한 함수의 후킹에 대한 대응 방안이 개시된다. 일반적인 후킹 공격에서는 함수의 프리앰블 바이트(preamble bytes)에 대응되는 첫번째 5바이트를 공격자의 함수로 점프하도록 코드(jmp 코드)를 변경하는 방법이 이용될 수 있다. 그러므로 이와 같은 공격에 대응하기 위해서 함수의 첫 5바이트가 jmp 코드로 구성되었다면 후킹된 것으로 판단될 수 있다. 따라서 시스템에 동작 중인 모든 응용 프로그램에 대한 리스트가 구성되고, 구성된 리스트에서 CNG 라이브러리를 사용하는 응용 프로그램에 대한 검색이 수행될 수 있다. 만약 응용 프로그램에서 CNG가 사용되는 경우, 해당 라이브러리의 모든 함수의 첫 5바이트가 jmp 코드로 변조되었는지 여부가 검사될 수 있다.
이러한 방법을 기반으로 시스템에 동작 중인 응용 프로그램의 후킹 공격을 탐지하여 그 결과를 도출하고, 만약 후킹이 탐지되는 경우, 후킹을 무력화시키고 정상적인 시스템으로 동작하도록 할 수 있다. 후킹 공격을 무력화시키는 것은 복원이라는 용어로 표현될 수 있다. 본 발명의 실시예에 따르면 탐지된 프로그램에 로드된 CNG 함수의 첫 5바이트를 jmp 코드가 아닌 원래의 코드로 덮어씌움으로써 후킹 공격에 대응할 수 있다.
도 8은 본 발명의 실시예에 따른 후킹에 대한 대응 방법을 나타낸 개념도이다.
도 8을 참조하면, CNG 보안 프로그램은 시스템에서 실행 중인 모든 프로그램에 대한 리스트를 조사할 수 있다(단계 S800).
이후, CNG 보안 프로그램은 실행 중인 프로그램 중 CNG를 활용하는 응용 프로그램을 검색할 수 있다(단계 S810).
예를 들어, 인터넷 익스플로러, 아웃룩, 한글, 오피스(office), 크롬(chrome) 등이 CNG를 활용하는 응용 프로그램일 수 있다.
CNG를 활용하는 응용 프로그램에서 CNG 라이브러리에 대한 후킹 여부 탐지 및 무력화가 수행될 수 있다(단계 S820).
예를 들어, 악의적인 DLL이 인젝션되고, BCrypt와 NCrypt 라이브러리에서 활용하는 모든 함수가 후킹될 수 있다. 예를 들어, 함수의 첫 5바이트가 jmp 코드로 변조되었는지 여부가 검사될 수 있다.
CNG를 활용하는 응용 프로그램에서 CNG 라이브러리가 후킹된 경우, 후킹 공격에 대한 무력화 절차가 수행될 수 있다.
CNG를 활용하는 응용 프로그램에서 CNG 라이브러리가 후킹된 경우, 후킹 공격에 대한 무력화를 위해 탐지된 프로그램에 로드된 CNG 함수의 첫 5바이트를 jmp 코드가 아닌 원래의 코드로 덮어씀으로써 후킹을 무력화시키고 함수의 호출에 대해 정상적인 결과가 나오도록 설정될 수 있다.
도 9는 본 발명의 실시예에 따른 탐지 및 복원 절차를 나타낸 개념도이다.
도 9의 (a)에서는 CNG를 활용하는 응용 프로그램에서 CNG 라이브러리에 대한 후킹 여부가 수동으로 탐색되는 과정 및 CNG 라이브러리에 대한 후킹이 발생한 경우, 수동으로 복원하는 절차가 개시된다.
도 9의 (b)에서는 CNG를 활용하는 응용 프로그램에서 CNG 라이브러리에 대한 후킹 여부가 자동으로 탐색되는 과정 및 CNG 라이브러리에 대한 후킹이 발생한 경우, 자동으로 복원하는 절차가 개시된다.
도 10은 본 발명의 실시예에 따른 CNG를 사용한 프로그램에서 보안 개선 방법을 수행하는 장치를 나타낸 개념도이다.
도 10에서는 CNG를 사용한 프로그램에서 보안 개선 방법을 수행하는 장치(이하, 후킹 탐지 장치)는 전체 프로그램 조사부(1000), CNG 응용 프로그램 검색부(1010), 후킹 탐지부(1020), 후킹 무력화부(1030) 및 프로세스(1040)를 포함할 수 있다.
전체 프로그램 조사부(1000)는 시스템에서 실행 중인 모든 프로그램에 대한 리스트를 조사하기 위해 구현될 수 있다.
CNG 응용 프로그램 검색부(1010)는 실행 중인 프로그램 중 CNG를 활용하는 응용 프로그램을 검색하기 위해 구현될 수 있다.
후킹 탐지부(1020)는 CNG를 활용하는 응용 프로그램에서 CNG 라이브러리에 대한 후킹 여부가 탐지하기 위해 구현될 수 있다.
후킹 무력화부(1030)는 CNG를 활용하는 응용 프로그램에서 CNG 라이브러리가 후킹된 경우, 후킹 공격에 대한 무력화 절차를 수행하기 위해 구현될 수 있다. CNG를 활용하는 응용 프로그램에서 CNG 라이브러리가 후킹된 경우, 후킹 공격에 대한 무력화를 위해 탐지된 프로그램에 로드된 CNG 함수의 첫 5바이트를 jmp 코드가 아닌 원래의 코드로 덮어씀으로써 후킹을 무력화시키고 함수의 호출에 대해 정상적인 결과가 나오도록 설정될 수 있다.
프로세스(1040)는 전체 프로그램 조사부(1000), CNG 응용 프로그램 검색부(1010), 후킹 탐지부(1020), 후킹 무력화부(1030)의 동작을 제어하기 위해 구현될 수 있다.
도 11은 본 발명의 실시예에 후킹 여부에 대한 탐색 및 복원 절차를 나타낸 개념도이다.
도 11에서는 함수 자체에 대한 변화 여부를 탐색하여 CNG 라이브러리에 대한 후킹 여부를 탐색하는 방법이 개시된다.
도 11을 참조하면, 공격자는 jmp 코드가 아닌 다른 다양한 코드를 통해 CNG 라이브러리에 대한 후킹을 수행할 수 있다.
본 발명의 실시예에 따르면, CNG 라이브러리에 대한 후킹 여부를 탐색하기 위해 다양한 모드가 활용될 수 있다. 제1 모드(1010)는 전술한 바와 같이 jmp 코드로의 변조 여부를 탐색하기 위한 방법으로서 후킹 여부에 대한 간단한 검사를 위한 모드일 수 있다. 제2 모드(1020)는 jmp 코드로의 변조 여부뿐만 아니라 추가적인 함수에 대한 변조 여부를 탐색하기 위한 방법일 수 있다.
예를 들어, 제2 모드(1020)에서는 비트스트림 상에 포함되는 복수의 함수에 대응되는 복수의 비트 그룹 정보를 기반으로 복수의 함수 각각에 대한 변조 여부가 탐색될 수 있다. 예를 들어, 비트스트림이 x 개의 바이트인 경우, x개의 바이트에 대한 파싱시 복수의 함수에 대한 별도의 파싱이 수행될 수 있다. 복수의 함수에 대한 파싱을 통해 복수의 함수 각각에 대한 변화 여부를 탐지하여 함수에 대한 변조 여부가 탐지될 수 있다.
이와 같은 CNG를 사용한 프로그램에서 보안 개선 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
또한, CNG를 사용한 프로그램에서 보안 개선 방법은 CNG를 사용한 프로그램에서 보안 개선 방법을 수행하는 장치에 구현된 프로세스(또는 프로세서)에 의해 수행될 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (4)

  1. 전체 프로그램 조사부는 시스템에서 실행 중인 모든 프로그램에 대한 리스트를 생성하는 단계,
    CNG 응용 프로그램 검색부는 상기 모든 프로그램 중 CNG(cryptography API(application programing interface) next generation)를 활용하는 응용 프로그램을 검색하는 단계,
    후킹 탐지부는 CNG 라이브러리에 포함되는 함수의 첫 바이트가 jmp코드로 변조 여부와 비트스트림 상에 포함되는 복수의 함수에 대응되는 복수의 비트 그룹 정보를 기반으로 복수의 함수 각각에 대한 변조 여부를 탐색하여 상기 응용 프로그램에서 상기 CNG 라이브러리에 대한 후킹 여부를 탐색하는 단계, 그리고
    후킹 무력화부는 상기 CNG 라이브러리에 대한 후킹이 발생한 경우, 상기 후킹에 대한 무력화 절차를 수행하는 단계
    를 포함하는 CNG를 사용한 프로그램에서 보안 개선 방법.
  2. 삭제
  3. 시스템에서 실행 중인 모든 프로그램에 대한 리스트를 생성하는 전체 프로그램 조사부,
    상기 모든 프로그램 중 CNG(cryptography API(application programing interface) next generation)를 활용하는 응용 프로그램을 검색하는 CNG 응용 프로그램 검색부,
    CNG 라이브러리에 포함되는 함수의 첫 바이트가 jmp코드로 변조 여부와 비트스트림 상에 포함되는 복수의 함수에 대응되는 복수의 비트 그룹 정보를 기반으로 복수의 함수 각각에 대한 변조 여부를 탐색하여 상기 응용 프로그램에서 상기 CNG 라이브러리에 대한 후킹 여부를 탐색하는 후킹 탐지부, 그리고
    상기 CNG 라이브러리에 대한 후킹이 발생한 경우, 상기 후킹에 대한 무력화 절차를 수행하는 후킹 무력화부
    를 포함하는 CNG를 사용한 프로그램에서 보안 개선을 위한 장치.
  4. 삭제
KR1020160044999A 2016-04-12 2016-04-12 Cng를 사용한 프로그램에서 보안 개선 방법 및 이러한 방법을 수행하는 장치 KR101825699B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160044999A KR101825699B1 (ko) 2016-04-12 2016-04-12 Cng를 사용한 프로그램에서 보안 개선 방법 및 이러한 방법을 수행하는 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160044999A KR101825699B1 (ko) 2016-04-12 2016-04-12 Cng를 사용한 프로그램에서 보안 개선 방법 및 이러한 방법을 수행하는 장치

Publications (2)

Publication Number Publication Date
KR20170117283A KR20170117283A (ko) 2017-10-23
KR101825699B1 true KR101825699B1 (ko) 2018-02-07

Family

ID=60298736

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160044999A KR101825699B1 (ko) 2016-04-12 2016-04-12 Cng를 사용한 프로그램에서 보안 개선 방법 및 이러한 방법을 수행하는 장치

Country Status (1)

Country Link
KR (1) KR101825699B1 (ko)

Also Published As

Publication number Publication date
KR20170117283A (ko) 2017-10-23

Similar Documents

Publication Publication Date Title
Kolodenker et al. Paybreak: Defense against cryptographic ransomware
Bhat et al. A survey on various threats and current state of security in android platform
Virvilis et al. Trusted Computing vs. Advanced Persistent Threats: Can a defender win this game?
Binsalleeh et al. On the analysis of the zeus botnet crimeware toolkit
Sood et al. An empirical study of HTTP-based financial botnets
Singh et al. Digital forensic readiness framework for ransomware investigation
US10142343B2 (en) Unauthorized access detecting system and unauthorized access detecting method
EP3270318B1 (en) Dynamic security module terminal device and method for operating same
Lee et al. Ransomware prevention technique using key backup
Song et al. Impeding Automated Malware Analysis with Environment-sensitive Malware.
Zheng et al. Security analysis of modern mission critical android mobile applications
Mirza et al. A malware evasion technique for auditing android anti-malware solutions
Atapour et al. Modeling Advanced Persistent Threats to enhance anomaly detection techniques
Mazmudar et al. Mitigator: Privacy policy compliance using trusted hardware
Zakaria et al. Early Detection of Windows Cryptographic Ransomware Based on Pre-Attack API Calls Features and Machine Learning
Mohata et al. Mobile malware detection techniques
Sharma et al. Ransomware detection, prevention and protection in IoT devices using ML techniques based on dynamic analysis approach
Keijzer The new generation of ransomware: an in depth study of Ransomware-as-a-Service
Kaur et al. An empirical analysis of crypto-ransomware behavior
Jarvis et al. Inside a targeted point-of-sale data breach
Khan et al. A malicious attacks and defense techniques on android-based smartphone platform
Sharma et al. Smartphone security and forensic analysis
Adebayo et al. The trend of mobile malwares and effective detection techniques
KR101825699B1 (ko) Cng를 사용한 프로그램에서 보안 개선 방법 및 이러한 방법을 수행하는 장치
Yadav et al. A complete study on malware types and detecting ransomware using API calls

Legal Events

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