KR20190140314A - 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법 - Google Patents

악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법 Download PDF

Info

Publication number
KR20190140314A
KR20190140314A KR1020180066968A KR20180066968A KR20190140314A KR 20190140314 A KR20190140314 A KR 20190140314A KR 1020180066968 A KR1020180066968 A KR 1020180066968A KR 20180066968 A KR20180066968 A KR 20180066968A KR 20190140314 A KR20190140314 A KR 20190140314A
Authority
KR
South Korea
Prior art keywords
software
security
hash
recovery
user
Prior art date
Application number
KR1020180066968A
Other languages
English (en)
Other versions
KR102086375B1 (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 KR1020180066968A priority Critical patent/KR102086375B1/ko
Publication of KR20190140314A publication Critical patent/KR20190140314A/ko
Application granted granted Critical
Publication of KR102086375B1 publication Critical patent/KR102086375B1/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법에 관한 것으로, 커널레벨에서의 전자서명을 통한 소프트웨어의 무결성 검증과 해당 소프트웨어의 실행을 제어함으로써, 커널레벨에서 랜섬웨어 등과 같은 악성 소프트웨어의 실행 자체를 원천적으로 차단하고, 커널레벨의 보안 스토리지 영역을 통해 사용자의 중요 보호 데이터를 백업함으로써, 악성 소프트웨어가 실행되더라도 사용자의 중요 보호 데이터를 사후 복구할 수 있도록 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법에 관한 것이다.

Description

악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법{SYSTEM AND METHOD FOR REAL TIME PREVENTION AND POST RECOVERY FOR MALICIOUS SOFTWARE}
본 발명은 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 커널레벨에서의 전자서명을 통한 소프트웨어의 무결성 검증과 해당 소프트웨어의 실행을 제어함으로써, 커널레벨에서 랜섬웨어 등과 같은 악성 소프트웨어의 실행 자체를 원천적으로 차단하고, 커널레벨의 보안 스토리지 영역을 통해 사용자의 중요 보호 데이터를 백업함으로써, 악성 소프트웨어가 실행되더라도 사용자의 중요 보호 데이터를 사후 복구할 수 있도록 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법에 관한 것이다.
최근 산업기술과 정보통신 기술의 급속한 발전으로 인해, 현대 사회가 정보화 사회로 변화하고, 컴퓨팅 환경이 개인중심에서 IoT(internet of things), 클라우드 등과 같은 네트워크 환경으로 다양화되고 있다.
이에 따라, 네트워크를 통해 악성 소프트웨어를 유포하여, 사용자 데이터를 대가로 금전을 요구하는 악성 소프트웨어에 의한 피해가 확산되고 있어, 사용자의 중요 데이터를 보호하는 보안솔루션에 대한 대중의 관심이 급격하게 증가하고 있다.
특히, 랜섬웨어(ransomware)는 몸값(ransom)과 소프트웨어(software)의 합성어로, 이-메일 또는 특정 웹을 통해 사용자 디바이스로 침입해 사용자 디바이스 내에 저장된 사용자 데이터를 암호화하여 해당 데이터를 복호화해주는 대가로 금전적인 대가를 요구하는 악성 소프트웨어를 의미한다.
이러한 랜섬웨어는 의료, 금융 등과 같이 중요하면서도 민감한 데이터를 주요 타깃으로 삼기 때문에 그 피해가 매우 크다.
이러한 피해를 줄이기 위해 최근에는 소프트웨어 위변조 탐지(change detection) 기술, 시그니처 탐지(signature detection) 기술, 비정상 탐지(anomaly detection) 기술 및 데이터 백업 기술과 같은 보안솔루션이 개발되어 상용화되고 있다.
소프트웨어 위변조 탐지 기술은 프로세스의 실행파일에 대한 무결성을 주기적으로 검증하여 위변조를 탐지하는 것으로, 상기 검증은 해시코드를 이용하여 유저레벨에서 수행된다.
그러나 상기 소프트웨어 위변조 탐지 기술은 유저 레벨에서 무결성 검증이 수행되기 때문에, 이미 메모리상에 로드되어 실행 중인 프로세스에 대한 검증밖에 할 수 없다. 즉, 상기 소프트웨어 위변조 탐지 기술은 악성 소프트웨어를 통한 해커(침입자)의 공격이 이미 성공한 시점 이후(즉, 악성 소프트웨어의 실행)에 해당 악성 소프트웨어에 대한 대처를 수행하게 되는 문제점이 있다.
또한 시그니처 탐지 기술은 악성 소프트웨어 특유의 코드 패턴을 인식하여, 침입을 탐지하는 것으로, 정상 소프트웨어를 악성 소프트웨어로 탐지(즉, 오탐(false positive)하거나, 사용자 디바이스의 보안 취약점이 발견된 뒤 이를 막을 수 있는 업데이트가 수행되기 전의 공격 형태인 제로데이(zero day) 공격에 취약한 문제점이 있다.
또한 비정상 탐지 기술은 보호된 영역 안에서 소프트웨어를 동작시키는 샌드박스(sandbox) 기술, 임계값 등을 활용하여 비정상 행동을 수행하는 소프트웨어를 탐지하는 것으로, 정상 또는 비정상을 구분하는 기준을 설정하기가 모호하고, 탐지될 때 까지 소요된 시간동안 발생한 피해를 막을 수 없다는 약점이 있다.
또한 데이터 백업 기술은, 주요 데이터를 별도의 로컬 영역 또는 원격 서버에 보관하는 것으로, 로컬 영역이나 원격 서버 자체도 악성 소프트웨어 공격의 대상이 될 수 있으므로, 사용자 데이터를 안전하게 보호하지 못하는 문제점을 내포하고 있다.
또한 종래의 보안솔루션은 유저 레벨에서의 악성 소프트웨어를 탐지하거나, 별도의 스토리지에 백업하는 정도에만 그치고 있을 뿐이다. 이는 악성 소프트웨어에 대한 사전 대응에 한계가 있다.
이에 본 발명은 커널레벨에서 소프트웨어 실행허가를 위한 전자서명을 통해 해당 소프트웨어에 대한 무결성 검증을 실시간으로 수행함으로써, 악성 소프트웨어 실행자체를 원천적으로 차단하고, 커널레벨에서 보안 스토리지 영역을 통해 사용자의 주요 데이터를 백업할 수 있도록 함으로써, 최악의 경우 악성 소프트웨어에 의해 사용자 중요 데이터들이 침해되더라도, 상기 백업 데이터를 기반으로 사후 복구가 가능하도록 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법을 제공하고자 한다.
다음으로 본 발명의 기술분야에 존재하는 선행기술에 대하여 간단하게 설명하고, 이어서 본 발명이 상기 선행기술에 비해서 차별적으로 이루고자 하는 기술적 사항에 대해서 기술하고자 한다.
먼저 한국등록특허 제10-1768082호(2017.08.08.)는 랜섬웨어에 대응한 보안방법에 관한 것으로, 운영체제의 의해 요청된 함수와 프로세스의 대상 파일 확장자를 확인하고, 해당 함수가 변경함수인 경우 상기 프로세스가 변경을 시도하는 대상 파일을 백업한 후, 해당 백업량이 미리 설정된 임계값 이상이면 해당 프로세스가 랜섬웨어인 것으로 간주하여 상기 프로세스를 중단하도록 하는 랜섬웨어에 대응한 보안 방법에 관한 것이다.
즉, 상기 선행기술은 미리 설정된 임계값과 특정 프로세스가 변경하고자 하는 대상 파일에 대한 백업량을 비교하여 상기 특정 프로세스가 랜섬웨어인지에 대한 여부를 판단하는 것이다. 그러나 상기 선행기술은 랜섬웨어를 판단하는 경우 상기 임계값을 기준으로 하고 있기 때문에 상기 백업량이 상기 임계값 이하인 랜섬웨어를 탐지하지 못하는 경우가 발생할 수 있는 문제점이 있다.
반면에 본 발명은 사용자 디바이스에 구비되는 운영체제의 커널레벨에서 전자서명을 통한 소프트웨어의 무결성 검증을 수행하여, 상기 무결성 검증을 토대로 해당 소프트웨어의 실행을 제어함으로써, 랜섬웨어 등과 같은 악성 소프트웨어의 실행 자체를 원천적으로 차단하고, 커널레벨에서 보호되는 보안 스토리지를 통해 사용자의 중요데이터에 대한 사후 복구가 가능하도록 함으로써, 상기 악성 소프트웨어로부터 사용자 데이터를 보호할 수 있도록 하는 것으로, 상기 선행기술은 이러한 본 발명의 기술적 특징에 대해서는 아무런 기재가 없어, 본 발명과 목적, 구성, 효과에 있어서 명확한 차이점이 있다.
또한 한국등록특허 제10-1828600호(2018.02.06.)는 상황 인식 기반의 랜섬웨어 탐지에 관한 것으로, 프로세스가 대상 파일에 대한 변경을 시도하는 경우, 해당 대상 파일의 헤더 내용의 교체 여부, 대상 파일 본문의 엔트로피에 대한 변화 여부, 상기 대상 파일의 헤더 구조에 대한 변경 여부, 상기 대상 파일을 암호화 알고리즘으로 암호화하였는지에 대한 여부를 포함하여 해당 대상 파일에 대한 무단 변경 행동 여부를 판단함으로써, 랜섬웨어를 탐지하는 상황 인식 기반의 랜섬웨어 탐지에 관한 것이다.
상기 선행기술은 특정 프로세스에 의해 수행되는 대상 파일에 대한 무단 변경 여부를 판단하여, 해당 프로세스가 랜섬웨어인지에 대한 여부를 판단하는 것이다.
즉, 상기 선행기술은 기술은 특정 프로세스가 변경하고자 하는 복수의 파일에 대한 본문, 헤더 등에 대한 변경여부를 일일이 확인하여야 하게 때문에, 랜섬웨어를 탐지하는 데 많은 시간이 소요되는 문제점이 있다.
반면에 본 발명은 사용자 디바이스에 설치되는 모든 소프트웨어에 대해 전자서명을 발급하고, 커널레벨에서 상기 발급한 전자서명을 토대로 실행하고자 하는 소프트웨어의 무결성 검증 및 실행 제어를 수행하여, 랜섬웨어 등과 같은 악성 소프트웨어의 실행 자체를 원천적으로 차단함으로써, 상기 악성 소프트웨어로부터 사용자의 중요 데이터를 실시간으로 보호할 수 있도록 하는 것으로, 상기 선행기술은 이러한 본 발명의 기술적 특징을 기재하거나 시사하고 있지 않다.
이상에서 선행기술들을 검토한 결과 대부분의 선행기술들은 임계값을 이용하거나, 파일에 대한 변경여부를 판단하여 랜섬웨어로부터 사용자 데이터를 보호하는 개념만을 기재하고 있을 뿐, 커널레벨에서 전자서명을 통한 무결성 검증을 수행하여 소프트웨어가 실행되기 전에 해당 소프트웨어에 대한 악성 소프트웨어 여부를 실시간으로 판단하도록 하는 본 발명의 기술적 특징에 대해서는 아무런 기재나 시사 또는 암시도 없다.
즉, 본 발명은 시간비용이 많이 소요되는 특정 소프트웨어의 대상 파일에 대한 변경여부를 일일이 확인하는 것이 아니라, 커널레벨에서 전자서명을 통한 무결성 검증만으로 상기 소프트웨어가 악성 소프트웨어인지에 대한 여부를 간편하고 효율적으로 판단함으로써, 악성 소프트웨어로부터 사용자 데이터를 실시간으로 보호할 수 있도록 하는 것이다.
본 발명은 상기와 같은 문제점을 해결하기 위해 창작 된 것으로서, 사용자 디바이스의 커널레벨에서 랜섬웨어를 포함한 악성 소프트웨어를 탐지하여, 상기 악성 소프트웨어에 대한 실행 자체를 원천적으로 차단함으로써, 사용자 데이터를 상기 악성 소프트웨어로부터 안전하게 보호할 수 있도록 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법을 제공하는 것을 그 목적으로 한다.
또한 본 발명은 운영체제의 커널레벨에서 적어도 하나 이상의 소프트웨어에 대한 실행을 요청하는 시점에서, 상기 각 소프트웨어의 실행 허가를 위한 전자서명을 실시간으로 검증하여 해당 소프트웨어의 실행을 제어함으로써, 악성 소프트웨어의 실행을 원천적으로 차단할 수 있도록 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법을 제공하는 것을 또 다른 목적으로 한다.
또한 본 발명은 상기 전자서명을 위한 데이터(즉, 전자서명 데이터)를 커널레벨에서 보호되는 보안 스토리지 영역에 저장하여, 사용자 디바이스의 외부로부터 시도되는 공격뿐만 아니라 내부 사용자 소프트웨어의 접근도 원천적으로 차단하여, 악성 소프트웨어를 탐지하기 위한 전자서명 데이터를 안전하게 저장할 수 있도록 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법을 제공하는 것을 또 다른 목적으로 한다.
또한 본 발명은 사용자의 중요 데이터를 커널레벨 보안 스토리지 영역에 백업하여 악성 소프트웨어가 실행되어 사용자의 중요 데이터가 침해되더라도 상기 보안 스토리지 영역에 백업된 백업 데이터를 기반으로 사후 복구를 수행할 수 있도록 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법을 제공하는 것을 또 다른 목적으로 한다.
또한 본 발명은 인가된 사용자 또는 시스템만이 상기 커널레벨 보안 스토리지 영역에 엑세스할 수 있도록 함으로써, 상기 백업된 사용자 데이터를 안전하게 보호할 수 있도록 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법을 제공하는 것을 또 다른 목적으로 한다.
본 발명의 일 실시예에 따른 운영체제의 커널 레벨에서 악성 소프트웨어에 대한 보안 서비스를 제공하기 위한 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템은, 사용자 디바이스에 설치되는 모든 소프트웨어에 대한 각각의 전자서명을 순차적으로 발행하여 커널 레벨 보안 스토리지에 저장하는 전자서명 발행부, 상기 발행한 전자서명을 토대로 상기 커널 레벨에 실행 요청된 소프트웨어의 실행 허가를 위한 무결성 검증을 실시간으로 수행하는 소프트웨어 무결성 검증부 및 상기 수행한 무결성 검증에 따라 상기 소프트웨어의 실행을 제어하는 소프트웨어 실행 제어부를 포함하며, 상기 전자서명은 해당 소프트웨어에 대한 해시코드 및 이전에 발행된 전자서명의 소프트웨어에 대한 해시코드를 포함함으로써, 상기 발행된 모든 전자서명은 해시체인으로 연결되는 것을 특징으로 한다.
또한 상기 전자서명 발행부는, 상기 소프트웨어에 대한 실행 파일 또는 동적 라이브러리의 실행 이미지에 대한 안정성을 평가하여, 상기 실행 이미지에 대한 해시코드를 생성함으로써, 해당 소프트웨어에 대한 전자서명을 발행하는 것을 특징으로 한다.
또한 상기 소프트웨어 무결성 검증부는, 상기 실행 요청된 소프트웨어에 대한 해시코드를 생성하고, 상기 커널 레벨 보안 스토리지를 참조하여 상기 생성한 해시코드를 포함한 전자서명의 확인함으로써, 해당 소프트웨어에 대한 무결성 검증을 수행하는 것을 특징으로 한다.
또한 상기 보안 시스템은, 사용자가 선택한 사용자 데이터, 상기 소프트웨어의 대상이 되는 사용자 데이터 또는 이들의 조합을 상기 커널 레벨 보안 스토리지에 백업하고, 상기 백업한 사용자 데이터를 복구하는 사용자 데이터 백업 처리부 및 상기 무결성 검증 결과, 상기 백업되는 사용자 데이터의 수정, 추가, 삭제 및 변경이력 또는 이들의 조합을 포함하는 보안 정보를 생성하여 사용자에게 제공하는 보안 정보 생성부를 더 포함하는 것을 특징으로 한다.
또한 상기 사용자 데이터 백업 처리부는, 악성 소프트웨어의 실행에 의해 사용자 디바이스의 로컬 저장영역에 저장되는 사용자 데이터가 침해당한 경우, 상기 변경이력을 토대로 복구 시점을 선택함으로써, 상기 커넬 레벨 보안 스토리지에 저장된 사용자 데이터에 대한 사후 복구를 수행하는 것을 특징으로 한다.
또한 상기 보안 시스템은, 복수의 소프트웨어에 대한 해시코드를 토대로 복수의 리프노드, 복수의 중간노드 및 루트해시를 포함하는 해시트리를 생성하며, 상기 리프노드는 상기 소프트웨어에 대한 해시코드를 각각 포함하고, 상기 중간노드 및 루트해시는 두 개의 자식노드에 대한 해시코드를 연결하여 생성한 해시코드를 포함하며, 상기 루트해시에 대한 전자서명을 생성함으로써, 소프트웨어의 실행허가를 위한 전자서명을 발행하는 것을 더 포함하는 것을 특징으로 한다.
또한 상기 보안 시스템은, 커널 레벨에 소프트웨어의 실행 요청이 있는 경우, 해당 소프트웨어에 대한 해시코드를 생성한 후, 상기 해시트리를 루트해시로부터 리프노드까지 역방향으로 탐색하여 상기 생성한 해시코드를 가지는 리프노드를 확인함으로써, 해당 소프트웨어에 대한 무결성 검증을 수행하는 것을 더 포함하는 것을 특징으로 한다.
아울러 본 발명의 일 실시예에 따른 운영체제의 커널 레벨에서 악성 소프트웨어에 대한 보안 서비스를 제공하기 위한 보안 방법은, 사용자 디바이스에 설치되는 모든 소프트웨어에 대한 각각의 전자서명을 순차적으로 발행하여 커널 레벨 보안 스토리지에 저장하는 전자서명 발행 단계, 상기 발행한 전자서명을 토대로 상기 커널 레벨에 실행 요청된 소프트웨어의 실행 허가를 위한 무결성 검증을 실시간으로 수행하는 소프트웨어 무결성 검증 단계 및 상기 수행한 무결성 검증에 따라 상기 소프트웨어의 실행을 제어하는 소프트웨어 실행 제어 단계를 포함하며, 상기 전자서명은 해당 소프트웨어에 대한 해시코드 및 이전에 발행된 전자서명의 소프트웨어에 대한 해시코드를 포함함으로써, 상기 발행된 모든 전자서명은 해시체인으로 연결되는 것을 특징으로 한다.
또한 상기 전자서명 발행 단계는, 상기 소프트웨어에 대한 실행 파일 또는 동적 라이브러리의 실행 이미지에 대한 안정성을 평가하여, 상기 실행 이미지에 대한 해시코드를 생성함으로써, 해당 소프트웨어에 대한 전자서명을 발행하는 것을 특징으로 한다.
또한 상기 소프트웨어 무결성 검증 단계는, 상기 실행 요청된 소프트웨어에 대한 해시코드를 생성하고, 상기 커널 레벨 보안 스토리지를 참조하여 상기 생성한 해시코드를 포함한 전자서명의 확인함으로써, 해당 소프트웨어에 대한 무결성 검증을 수행하는 것을 특징으로 한다.
또한 상기 보안 방법은, 사용자가 선택한 사용자 데이터, 상기 소프트웨어의 대상이 되는 사용자 데이터 또는 이들의 조합을 상기 커널 레벨 보안 스토리지에 백업하고, 상기 백업한 사용자 데이터를 복구하는 사용자 데이터 백업 처리 단계 및 상기 무결성 검증 결과, 상기 백업되는 사용자 데이터의 수정, 추가, 삭제 및 변경이력 또는 이들의 조합을 포함하는 보안 정보를 생성하여 사용자에게 제공하는 보안 정보 생성 단계를 더 포함하는 것을 특징으로 한다.
또한 상기 사용자 데이터 백업 처리 단계는, 악성 소프트웨어의 실행에 의해 사용자 디바이스의 로컬 저장영역에 저장되는 사용자 데이터가 침해당한 경우, 상기 변경이력을 토대로 복구 시점을 선택함으로써, 상기 커넬 레벨 보안 스토리지에 저장된 사용자 데이터에 대한 사후 복구를 수행하는 것을 특징으로 한다.
또한 상기 보안 방법은, 복수의 소프트웨어에 대한 해시코드를 토대로 복수의 리프노드, 복수의 중간노드 및 루트해시를 포함하는 해시트리를 생성하며, 상기 리프노드는 상기 소프트웨어에 대한 해시코드를 각각 포함하고, 상기 중간노드 및 루트해시는 두 개의 자식노드에 대한 해시코드를 연결하여 생성한 해시코드를 포함하며, 상기 루트해시에 대한 전자서명을 생성함으로써, 소프트웨어의 실행허가를 위한 전자서명을 발행하는 것을 더 포함하는 것을 특징으로 한다.
또한 상기 보안 방법은, 커널 레벨에 소프트웨어의 실행 요청이 있는 경우, 해당 소프트웨어에 대한 해시코드를 생성한 후, 상기 해시트리를 루트해시로부터 리프노드가지 역방향으로 탐색하여 상기 생성한 해시코드를 가지는 리프노드를 확인함으로써, 해당 소프트웨어에 대한 무결성 검증을 수행하는 것을 더 포함하는 것을 특징으로 한다.
이상에서와 같이 본 발명의 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법은 커널 레벨에서 전사서명을 통한 소프트웨어의 무결성 검증과 해당 소프트웨어에 대한 실행을 제어함으로써, 랜섬웨어를 포함하는 다양한 악성 소프트웨어의 실행을 사전에 차단함으로써, 상기 악성 소프트웨어로부터 사용자 데이터를 실시간으로 안전하게 보호할 수 있도록 하는 효과가 있다.
즉, 본 발명은 사용자 레벨의 공격이 불가능한 커널레벨에서의 보안솔루션을 제공함으로써, 악성 소프트웨어의 실행을 원천적으로 차단할 수 있도록 하는 효과가 있다.
또한 본 발명은 커널레벨 보안 스토리지 영역을 통해 사용자의 중요 보호 데이터를 백업하여, 상기 악성 소프트웨어가 실행되더라도 상기 백업한 백업 데이터를 기반으로 상기 사용자의 중요 보호 데이터를 사후 복구할 수 있도록 하는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법을 개략적으로 설명하기 위해 나타낸 개념도이다.
도 2는 본 발명의 일 실시예에 따른 해시체인을 기반으로 소프트웨어의 실행 허가를 위해 발행되는 전자서명 및 상기 해시체인을 기반으로 소프트웨어의 무결성 검증을 수행하는 방법을 설명하기 위해 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 장치를 개략적으로 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 커널 보안 서비스 제공부의 구성을 나타낸 블록도이다.
도 6은 본 발명의 일 실시예에 따른 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안서비스를 제공하는 절차를 나타낸 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시예를 상세히 설명하기로 한다. 본 발명의 명세서 또는 출원에 개시되어 있는 일 실시예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명에 따른 실시예를 설명하기 위한 목적으로 예시된 것으로, 다르게 정의 되어 있지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 아니한다.
도 1은 본 발명의 일 실시예에 따른 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법을 개략적으로 설명하기 위해 나타낸 개념도이다.
도 1에 도시한 바와 같이, 본 발명의 일 실시예에 다른 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 장치(100)(이하, 보안 장치라 칭함)는 사용자 디바이스(100), 보안 관리서버(300)를 포함하는 네트워크 단말기에 구비된다.
또한 상기 보안 장치(100)는 운영체제의 커널 레벨에서 상기 사용자 디바이스(100) 및 관리 서버(300)에 대해 랜섬웨어를 포함한 다양한 악성 소프트웨어로부터 사용자 데이터를 보호하는 보안 서비스를 사용자에게 제공한다.
즉, 본 발명의 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템(10)(이하, 보안 시스템이라 칭함)은 보안 대상이 되는 사용자 디바이스(200) 및 상기 사용자 디바이스(200)에 구비되어 악성 소프트웨어로부터 사용자 데이터를 보호하는 보안 장치(100)를 포함하여 구성된다. 또한 상기 보안 시스템(10)은 사용자 디바이스(200)를 관리하기 위한 보안 관리서버(300)를 더 포함하여 구성될 수 있다.
한편 상기 사용자 디바이스(200)는 사용자 데이터를 생성, 가공, 저장 등과 같이 상기 사용자 데이터를 처리하는 장치를 의미하는 것으로, 금융, 의료 분야 등과 같이 다양한 분야에서 대규모 데이터를 처리하는 시스템이나, 해당 시스템에서 사용되는 단말, 개인용 PC 또는 모바일 단말일 수 있다.
또한 보안 장치(100)는 상기 사용자 디바이스(200)에 구비되어 사용자 레벨에서의 공격이 불가능한 커널 레벨에서 악성 소프트웨어를 실시간으로 탐지하여 해당 악성 소프트웨어가 실행되는 것을 원천적으로 차단함으로써, 사용자 데이터를 효율적으로 보호할 수 있는 보안 서비스를 사용자에게 제공한다.
이를 위해, 상기 보안 장치(100)는 우선적으로, 상기 사용자 디바이스(200)에 저장되어 있는 모든 소프트웨어에 대한 실행파일이나 동적 라이브러리 등에 대한 안전성을 평가하여, 해당 소프트웨어의 실행 허가를 위한 전자서명을 순차적으로 발행하게 된다.
상기 안정성 평가는, 화이트박스 테스트(white box testing) 또는 블랙박스 테스트(black box testing) 방법을 통해 수행될 수 있다. 화이트박스 테스트 방법은 소프트웨어 실행 없이 소스 코드와 테스트를 위한 분석도구를 통해 소프트웨어의 오류 등을 확인하거나, 버퍼 오버플로 등을 점검하여 소프트웨어가 적절하게 데이터를 처리하는지 점검하는 방식이다.
또한 블랙박스 테스트 방법은 소스 코드와 소프트웨어 실행 없이, 해당 소프트웨어의 완결성, 정확성 또는 일관성 등을 점검하는 방식이다.
한편 상기 안정성 평가는, 소프트웨어의 실행허가를 위한 전사서명을 발행하기 위해 수행되는 것으로써, 화이트박스 테스트 방법, 블랙박스 테스트 방법뿐만 아니라 소프트웨어에 대한 안정성을 평가하기 위한 다양한 방법을 통해 수행될 수 있다.
즉, 안정성 평가는, 사용자가 설치하는 소프트웨어에 대해 수행되는 것으로, 소프트웨어가 설치될 때마다 실시간으로 수행되거나, 사용자가 미리 설정한 주기에 따라 수행되거나, 랜덤하게 수행될 수 있다.
또한 상기 전자서명은 각 소프트웨어에 대해 순차적으로 생성되는 해시코드를 이용하여 발행되는 것으로, 상기 각각의 전자서명은 이전에 발행된 전자서명에 포함된 해시코드를 포함하도록 발행된다. 즉, 상기 각각의 전자서명은 해시체인을 기반으로 상호 연결되어 각 소프트웨어에 대한 무결성을 검증하기 위해 사용된다. 한편 상기 해시체인 및 전자서명에 대한 설명은 도 2를 참조하여 상세히 설명하도록 한다.
또한 상기 보안 장치(100)는 모든 소프트웨어에 대해 운영체제의 커널레벨에 실행을 요청하는 시점에서 상기 생성한 전자서명을 토대로 해당 소프트웨어 실행허가를 위한 전자서명을 실시간으로 검증한다.
또한 상기 보안 장치(100)는 상기 검증한 결과에 따라 상기 실행 요청된 소프트웨어에 대한 실행을 제어(즉, 실행의 허가 또는 거부)한다. 이때, 외부에서 유입된 랜섬웨어를 포함하는 악성 소프트웨어의 경우에는 상기 전자서명이 발행되어 있지 않으므로, 상기 악성 소프트웨어의 실행자체가 원천적으로 차단될 수 있다.
즉, 본 발명의 보안 장치(100)는 소프트웨어가 실행되기 전 커널레벨에서 실행 허가 여부를 결정하게 되며, 전자서명이 발행되어 있지 않은 소프트웨어에 대한 실행은 불가능하므로, 악성 소프트웨어가 사용자 디바이스(200)에서 실행되는 것을 원천적으로 차단할 수 있는 것이다.
한편 상기 보안 장치(100)는 상기 소프트웨어에 대해 생성되는 해시코드를 이용하여 해시트리를 생성할 수 있으며, 해당 해시트리의 루트해시에 대한 전자서명을 발행함으로써 상기 소프트웨어의 실행 허가를 위한 전사서명을 발행하고, 상기 루트해시로부터 역방향 탐색을 통해 상기 소프트웨어의 무결성을 검증할 수 있도록 구현될 수도 있다. 상기 해시트리를 통한 소프트웨어의 무결성 검증은 도 3을 참조하여 상세히 설명하도록 한다.
또한 보안 장치(100)는 사용자의 중요 데이터를 상기 보안 장치(100) 또는 인가된 사용자에 의해 접근 가능한 커널레벨의 보안 스토리지 영역에 백업할 수 있도록 한다.
이를 통해, 최악의 경우 사용자 디바이스(200)의 운영체제에 존재할 수 있는 미지의 취약점으로 인해 사용자 데이터가 악성 소프트웨어에 의해 침해되더라도 상기 보안 스토리지 영역의 백업 데이터를 기반으로 사후 복구가 가능하도록 한다.
또한 사용자 디바이스(200)에 구비되는 보안 장치(100)는 에이전트를 포함하여 구성되며, 상기 보안 장치(100)는 상기 에이전트를 통해 무결성 검증을 통한 특정 소프트웨어의 실행 차단 등을 포함하여 상기 보장 장치(100)의 동작 및 결과에 대한 보안정보를 사용자 디바이스(200)에 구비되는 디스플레이를 통해 출력할 수 있다.
이때, 상기 사용자는 상기 보안정보를 확인하여, 상기 실행이 차단된 소프트웨어에 대한 처리(삭제 등)를 수행할 수 있다.
또한 보안 관리서버(300)는 적어도 하나 이상의 사용자 디바이스(200)에 대한 보안 상태를 점검 및 관리할 수 있도록 하기 위한 것이다.
또한 보안 관리서버(300)는 해당 보안 관리서버(300)에 구비되는 매니저와 상기 보안 장치(100)에 구비되는 에이전트와의 통신을 수행할 수 있다. 이때, 상기 보안 관리서버(300)는 상기 매니저를 통해 상기 에이전트에 보안정보를 요청하여 수신 받거나, 또는 상기 에이전트로부터 상기 보안정보를 실시간으로 수신 받아 사용자 디바이스(200)별로 상기 보안정보를 데이터베이스(400)에 누적하여 저장함으로써, 상기 각 사용자 디바이스(200)에 대한 보안 상태를 점검 및 관리할 수 있도록 한다.
또한 상기 사용자의 중요 데이터가 대용량인 경우에는, 상기 보안 장치(100)는 해당 사용자의 중요 데이터를 상기 보안 관리서버(300)로 전송하여, 사용자 디바이스(300)별로 저장할 수 있도록 한다. 이때, 상기 사용자의 중요 데이터는 암호화되어 전송되며, 상기 보안 관리서버(300)에 저장된다.
한편 상기 매니저와 상기 에이전트는 SNMP(simple network management protocol) 통신방법이나, 레스트풀(RESTful) 통신방법을 이용하여 상기 보안정보, 사용자의 중요 데이터를 포함한 보안 관련 데이터를 송수신할 수 있다.
특히 상기 레스트풀 통신방법은 CORBA(common object request broker architecture), SOAP(simple object access protocol)과 같은 복잡한 방법을 사용하는 대신, 데이터베이스내의 모든 데이터에 고유한 URI를 부여함으로써, HTTP(hypertext transfer protocol)를 이용하여 장비간의 통신을 간편하게 수행할 수 있도록 하는 장점이 있다.
다만 본 발명의 보안 관리서버(300)는 사용자 디바이스(200)별로 보안정보를 누적하여 저장함으로써, 상기 각 사용자 디바이스(200)에 대한 보안 상태를 점검 및 관리할 수 있도록 하는 것으로, 상기 통신방법에 대해서는 그 제한을 두지 아니한다.
한편 이하에서는 설명되는 소프트웨어에 대해 생성되는 해시코드, 해시트리를 위해 생성되는 해시코드 등과 같이 무결성 검증을 위해 생성되는 모든 해시코드는 동일한 해시함수를 통해 생성됨은 당연하다.
이하에서는 도 2를 참조하여 각 소프트웨어에 대해 발행되는 전자서명에 대해서 상세히 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 해시체인을 기반으로 소프트웨어의 실행 허가를 위해 발행되는 전자서명 및 상기 해시체인을 기반으로 소프트웨어의 무결성 검증을 수행하는 방법을 설명하기 위해 나타낸 도면이다.
도 2에 도시한 바와 같이, 본 발명의 일 실시예에 따른 소프트웨어에 대해 발행되는 전자서명은, 우선 보안 장치(100)를 통해 각 소프트웨어에 대해 순차적으로 각각 발행된다.
또한 보안 장치(100)는 상기 복수의 소프트웨어에 대한 안정성 검사를 수행하여, 해당 소프트웨어의 실행 허가를 위한 전자서명을 발행한다.
즉, 상기 보안 장치(100)는 사용자 디바이스(200)에 저장되어 있는 모든 소프트웨어에 대한 실행파일이나 동적 라이브러리의 실행 이미지에 대한 안정성을 평가한다.
다음으로 보안 장치(100)는 해시함수를 사용하여 상기 안정성 평가를 통과한 복수의 소프트웨어에 대한 해시코드를 순차적으로 생성(즉, 소프트웨어의 실행 이미지에 대한 해시코드))하고, 해당 해시코드를 가지는 전자서명을 발행한다.
이때 상기 전자서명은 이전에 발행된(즉, 다른 소프트웨어에 대해 이전에 발행된 전자서명) 전자서명의 해시코드를 포함하여 발행되는 것으로, 상기 각각의 전자서명은 이전에 발행된 전자서명에 참조할 수 있는 해시체인으로 구조로 만들어진다.
예를 들어, 소프트웨어 #1과 소프트웨어 #2에 대한 전자서명을 발행할 때, 소프트웨어 #1에 대한 해시코드(H(1))를 가지는 전자서명을 발행하고, 이후 소프트웨어 #2에 대한 전자서명은, 해당 소프트웨어 #2에 대한 해시코드(H(2))와 상기 소프트웨어 #1에 대한 해시코드(H(1))를 포함하여 발행되는 것이다.
즉, 상기 전자서명은 해시체인으로 연결되며, 특정 전자서명을 위변조하려면 해당 전자서명에 대해 해시체인으로 연결된 모든 전자서명을 위변조해야만 해당 전자서명을 완벽하게 위변조할 수 있기 때문에 특정 전자서명을 위변조하기에는 거의 불가능에 가깝다.
따라서 본 발명의 보안 장치(100)는 상기 발행한 전자서명을 통해 효율적으로 소프트웨어에 대한 무결성을 검증할 수 있으며, 이에 따라 악성 소프트웨어의 실행을 사전에 차단할 수 있도록 한다.
도 3은 본 발명의 일 실시예에 따른 해시트리를 기반으로 소프트웨어의 실행 허가를 위해 발행되는 전자서명 및 상기 해시트리를 기반으로 소프트웨어의 무결성 검증을 수행하는 방법을 설명하기 위해 나타낸 도면이다.
도 3에 도시한 바와 같이, 본 발명의 일 실시예에 따른 보안 장치(100)는 도 2를 참조하여 설명한 것과 같이 안정성 평가를 통과한 복수의 소프트웨어에 대한 해시코드를 순차적으로 생성하여, 상기 생성한 해시코드를 토대로 소프트웨어 무결성 검증을 위한 해시트리를 생성한다.
상기 해시트리는 복수의 리프노드, 복수의 중간노드 및 루트노드인 루트해시로 구성된다.
각각의 리프노드는 상기 생성한 각 소프트웨어에 대한 해시코드를 각각 포함하여 구성되며, 상기 중간노드 및 상기 루트해시는 두 개의 자식노드에 대한 해시코드를 연결하여 해싱한 해시코드를 포함하여 구성된다.
예를 들어, 소프트웨어 #1의 해시코드를 포함하는 리프노드와 소프트웨어 #2의 해시코드를 포함하는 리프노드에 대한 부모노드는 상기 각 리프노드에 대한 해시코드를 연결하여 특정 해시함수를 통해 생성되는 새로운 해시코드를 포함한다. 이러한 과정은 루트해시가 생성될 때까지 반복적으로 수행되며, 이를 통해 상기 보안 장치(100)는 소프트웨어의 무결성 검증을 위한 최종적인 해시트리를 생성하게 된다.
또한 보안 장치(100)는 상기 루트해시에 대한 전자서명을 생성(이때, 상기 전자서명은 상기 루트해시의 해시코드를 포함)함으로써, 소프트웨어의 실행허가를 위한 전자서명을 발행하게 된다.
또한 보안 장치(100)는 사용자 디바이스(200)에 탑재되는 운영체제가 특정 소프트웨어에 대한 실행을 커널레벨에 요청하는 경우, 해상 소프트웨어의 실행 이미지에 대한 해시코드를 생성한다.
또한 보안 장치(100)는 상기 해시트리를 상기 루트해시로부터 리프노드까지 역방향으로 탐색하여, 상기 실행 요청한 소프트웨어에 대해 생성한 해시코드를 확인함으로써, 해당 소프트웨어에 대한 무결성을 검증한다.
이때, 상기 루트해시 및 각각의 중간 노드들은 자신이 가지고 있는 해시코드가 어떠한 자식 노드의 해시코드로부터 생성된 것임을 내부적으로 알고 있으므로, 상기 보안 장치(100)는 상기 루트해시로부터 리프 노드까지 역방향 탐색을 식속하게 수행할 수 있다.
다시 말해, 상기 보안 장치(100)는 해시트리를 통해 소프트웨어 실행 허가를 위한 전자서명을 발행한 경우, 해시트리를 역방향으로 탐색하여 상기 소프트웨어에 대한 해시코드를 확인함으로써, 해당 소프트웨어에 대한 무결성 검증을 수행하며, 상기 무결성 검증결과에 따라 해당 소프트웨어의 실행을 제어한다.
한편, 외부 공격을 통해 상기 전자서명을 위변조하여 악성 프로그램을 실행시키기 위해서는, 상기 해시트리에 대한 루트해시, 중간 노드 및 리프 노드에 대한 모든 해시코드를 위변조해야만 해당 전자서명을 완벽하게 위변조할 수 있으므로, 상기 전자서명을 완벽하게 위변조하기에는 거의 불가능에 가깝다.
따라서 본 발명의 보안 장치(100)는 해시트리를 통해 효율적으로 소프트웨어에 대한 무결성을 검증할 수 있으며, 이에 따라 악성 소프트웨어의 실행을 사전에 차단할 수 있도록 한다.
도 4는 본 발명의 일 실시예에 따른 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 장치를 개략적으로 나타낸 도면이다.
도 4에 도시한 바와 같이, 본 발명의 일 실시예에 따른 보안 장치(100)는 보안 정보를 사용자 디바이스(200)에 구비되는 디스플레이에 출력하는 에이전트(110), 커널 레벨에서 사용자 데이터를 악성 소프트웨어로부터 보호하기 위한 보안 서비스를 제공하는 커널 보안 서비스 제공부(130) 및 상기 에이전트(110)와 상기 커널 보안 서비스 제공부(130)간의 데이터를 송수신하기 위한 보안서비스 인터페이스부(120)를 포함하여 구성된다.
상기 에이전트(110)는 응용프로그램 계층(즉, 유저레벨)에서 동작되며, 상기 커널 보안 서비스 제공부(130)로부터 상기 보안서비스 인터페이스부(120)를 통해 제공되는 보안 정보를 사용자에게 제공하는 기능을 수행한다.
한편 상기 응용프로그램 계층은 일반 사용자 응용프로그램과 같은 다양한 소프트웨어가 실행되는 계층을 의미한다.
상기 보안 정보는 상기 커널 보안 서비스 제공부(130)의 동작 상태, 상기 사용자 중요 데이터의 백업 및 변경이력, 상기 소프트웨어에 대한 무결성 검증 결과, 현재 수행 중인 소프트웨어 또는 이들의 조합을 포함한다.
또한 에이전트(110)는 상기 보안정보에 대한 보안파일을 생성하여 저장할 수 있으며, 해당 보안파일을 사용자에게 제공하거나 상기 보안 정보를 실시간으로 사용자에게 제공할 수 있다.
또한 에이전트(110)는 보안 관리서버(300)의 매니저로부터 보안 정보에 대한 요청이 있거나 또는 실시간으로 상기 보안정보를 상기 보안 관리서버(300)로 전송하여, 사용자 디바이스(200)별 보안 상태를 누적하여 저장할 수 있도록 한다.
또한 커널 보안 서비스 제공부(130)는 운영체제의 커널레벨에서 동작되며, 사용자에게 커널레벨의 보안 서비스를 제공하기 위해 우선적으로, 해시체인을 기반으로 모든 소프트웨어에 대한 전자서명을 발행하거나, 해시트리를 기반으로 소프트웨어 실행허가를 위한 전자서명을 발행한다.
또한 커널 보안 서비스 제공부(130)는 상기 발행한 전자서명을 커널레벨에서 보호되는 파일 시스템(140)에 저장하여, 외부 또는 내부 소프트웨어의 접근을 원천적으로 차단함으로써, 상기 각 전자서명에 대한 위변조를 방지할 수 있도록 한다.
한편 상기 파일 시스템(140)은 커널레벨에서 보호되는 커널 레벨 보안 스토리지를 의미하는 것으로, 상기 커널 레벨 보안 스토리지는 상기 각 소프트웨어에 대해 발행되는 전자서명 및 사용자의 중요 데이터를 저장 및 관리할 수 있도록 한다.
또한 운영체제가 시스템 서비스 인터페이스를 통해 특정 소프트웨어에 대한 실행을 커널레벨에 요청하는 경우, 상기 커널 보안 서비스 제공부(130)는 해당 소프트웨어에 대한 실행 이미지 대한 해시코드를 생성한다.
또한 상기 커널 보안 서비스 제공부(130)는 상기 보안 스토리지를 참조하여 상기 생성한 해시코드를 가지는 전자서명이 있는 경우에는 해당 소프트웨어를 실행할 수 있도록 한다.
이때, 해당 소프트웨어가 해커 등과 외부의 공격자로부터 침입을 당해 변경된 경우, 원래의 소프트웨어와 다른 해시코드를 생성하게 된다. 따라서 해당 소프트웨어에 대한 전자서명은 상기 보안 스토리지 영역에 존재하지 않으므로, 상기 커널 보안 서비스 제공부(130)는 해당 소프트웨어의 실행을 차단한다.
한편 상기 커널 보안 서비스 제공부(130)는 도 3을 참조하여 설명한 것과 같이, 해시트리를 기반으로 전자서명을 발행한 경우에는 상기 해시트리를 역방향으로 탐색하여 상기 생성한 해시코드를 확인함으로써, 해당 소프트웨어를 실행할 수 있도록 구현될 수 있다.
따라서 외부에서 유입된 랜섬웨어 등과 같은 악성 소프트웨어의 경우에는 실행 허가를 위한 전자서명이 발급되어 있지 않으므로, 상기 커널 보안 서비스 제공부(130)를 통해 실행조차 되지 못할 것이다. 즉, 상기 커널 보안 서비스 제공부(130)는 외부에서 악성 소프트웨어를 통한 공격이 실행되기 이전의 시점에서 상기 악성 소프트웨어의 실행을 원천적으로 차단함으로써, 사용자 데이터를 보호할 수 있도록 한다.
상기에서 설명한 것과 같이, 커널 보안 서비스 제공부(130)는 커널 레벨에서 소프트웨어가 실행되기 전에 전자서명을 통한 소프트웨어의 무결성 검증을 수행하여, 해당 소프트웨어(즉, 프로세스)의 실행 및 해당 소프트웨어에 입출력 명령에 따른 디바이스 드라이버를 제어함으로써, 악성 소프트웨어의 공격을 사전에 차단할 수 있다.
또한 커널 보안 서비스 제공부(130)는 인가된 사용자 또는 커널 보안 서비스 제공부(130)를 통해서만 접근 가능한 커널 레벨 보안 스토리지에 사용자의 중요 데이터를 백업할 수 있다.
이를 통해 최악의 경우 상기 악성 소프트웨어가 실행되더라도 해당 커널 레벨 보안 스토리지에 저장되어 있는 백업 데이터를 기반으로 사후 복구를 가능하게 하도록 함으로써, 사용자의 중요 데이터를 안전하게 보호할 수 있도록 한다.
도 5는 본 발명의 일 실시예에 따른 커널 보안 서비스 제공부의 구성을 나타낸 블록도이다.
도 5에 도시한 바와 같이, 본 발명의 일 실시예에 따른 커널 보안 서비스 제공부(130)는 사용자 디바이스(200)에 설치되어 있는 복수의 소프트웨어의 실행허가를 위한 전자서명을 발행하는 전자서명 발행부(131), 상기 발행한 전자서명을 토대로 실행되고자하는 소프트웨어에 대한 무결성을 검증하는 소프트웨어 무결성 검증부(132), 상기 검증결과에 따라 해당 소프트웨어에 대한 실행을 제어하는 소프트웨어 실행 제어부(133), 보안 정보를 생성하는 보안 정보 생성부(133), 사용자의 중요 데이터를 백업하는 사용자 데이터 백업 처리부(134), 상기 사용자 데이터 백업 처리부(134)를 통해 백업되는 사용자의 중요 데이터를 저장하는 커널 레벨 보안 스토리지(140)를 관리하는 커널 레벨 보안 스토리지 관리부(135) 및 상기 커널 보안 서비스 제공부(130)를 전반적으로 제어하기 위한 제어부(136)를 포함하여 구성된다.
전자 서명 발행부(131)는 사용자 디바이스(200)에 설치되어 있거나 설치되는 소프트웨어에 대한 실행파일이나 동적 라이브러리의 실행 이미지에 대한 안정성을 평가한 후, 실행 이미지에 대한 실행 허가를 위한 전자서명을 순차적으로 발행한다.
또한 전자 서명 발행부(131)는 도 2 및 도 3을 참조하여 설명한 것과 같이 해시함수를 이용하여 상기 실행 이미지에 대한 해시코드를 생성하여, 해시체인을 기반으로 소프트웨어의 실행허가를 위한 전자서명을 발행하거나, 또는 상기 생성한 해시코드를 토대로 해시트리를 생성함으로서, 소프트웨어의 실행허가를 위한 전자사명을 발행한다.
한편 상기 해시체인을 기반으로 발행되는 전자서명은 이전에 발행된 전자서명의 해시코드(즉, 이전에 발행된 전자서명에 대한 소프트웨어의 해시코드)를 포함하는 것으로, 상기 소프트웨어에 대해 발행된 모든 전자서명은 해시체인으로 연결됨은 상술한 바와 같다.
전자 서명 발행부(131)는 공공기관(예: 국가정보원)의 검증 암호모듈에서 제공되는 해시함수를 사용할 수 있으며(다만, 본 발명은 이에 한정하지 않음), 상기 해시함수를 통해 소프트웨어에 대한 해시코드를 생성할 수 있으며, 이를 통해 소프트웨어의 실행허가를 위한 전자서명을 발행할 수 있다.
또한 상기 발행된 전자서명은 상기 커널 레벨 보안 스토리지 관리부(135)를 통해 커널 레벨 보안 스토리지(140)에 저장된다.
또한 소프트웨어 무결성 검증부(132)는 운영체제가 커널 레벨에 소프트웨어의 실행을 요청하는 경우, 상기 발행한 전자서명을 기반으로 해당 소프트웨어에 대한 무결성을 검증한다.
한편 커널 레벨에서의 상기 소프트웨어의 실행 파일에 대한 일반적인 실행과정은 소프트웨어의 실행요청, 프로세스 실행 콜백(call back), 파일시스템 필터를 통한 실행 파일(예: EXE 파일 로드) 로드, 상기 로드한 실행 파일 해석, 프로세스 실행 이미지 로드 콜백 및 실행 이미지 실행을 포함한다.
또한 커널레벨에서의 상기 소프트웨어의 동적 라이브러리에 대한 일반적인 실행 과정은, 라이브러리 호출, 파일 시스템 필터를 통한 라이브러리 파일 리드(DLL 파일), 라이브러리 파일 해석, 프로세스 실행 이미지 로드 콜백 및 실행 이미지(DLL 엔트리) 실행을 포함한다.
또한 소프트웨어 무결성 검증부(132)는 소프트웨어의 무결성을 검증하기 위해 상기 실행 파일의 실행 이미지가 실행되기 전, 상기 실행 이미지에 대한 해시코드를 생성한다.
다음으로 상기 소프트웨어 무결성 검증부(132)는 상기 전자서명이 해시체인을 기반으로 발행된 경우, 상기 커널 레벨 보안 스토리지(140)를 참조하여 상기 생성한 해시코드를 가지는 해당 소프트웨어에 대한 전자서명이 발행되어 있는지에 대한 여부를 확인함으로써, 해당 소프트웨어에 대한 무결성을 검증한다.
한편 상기 소프트웨어 무결성 검증부(132)는 상기 전자서명이 해시트리를 토대로 발행된 경우, 상기 해시트리를 역방향으로 탐색하여 상기 생성한 해시코드를 가지는 리프노드가 있는지에 대한 여부를 확인함으로써, 해당 소프트웨어에 대한 무결성을 검증할 수 있다.
즉, 상기 소프트웨어 무결성 검증부(132)는 커널 레벨에서 프로세스 이미지 로트 콜백이 수행될 때, 상기 소프트웨어를 실행하기 위한 실행 이미지가 실행되기 전에 커널 레벨에서 해당 소프트웨어의 실행 허가 여부를 결정할 수 있도록 한다. 이를 통해, 전자서명이 부여되어 있지 않은 소프트웨어에 대한 실행이 불가능하기 때문에 외부의 공격으로부터 변경된 소프트웨어 또는 외부로부터 유입된 악성 소프트웨어의 실행을 사전에 차단할 수 있다.
또한 소프트웨어 실행 제어부(132)는 상기 소프트웨어 무결성 검증부(132)에서 수행한 무결성 검증 결과에 따라 해당 소프트웨어에 대한 실행을 제어한다.
즉, 소프트웨어 실행 제어부(132)는 특정 소프트웨어가 상기 무결성 검증을 통과한 경우, 해당 소프트웨어의 실행 이미지에 대한 실행을 허가함으로써, 해당 소프트웨어가 사용자 레벨에서 실행될 수 있도록 하는 것이다.
또한 사용자 데이터 백업 처리부(134)는 사용자의 중요 데이터를 커널 레벨 보안 스토리지(140)에 백업하는 기능을 수행한다.
상기 백업되는 사용자 중요 데이터는 사용자가 선택하거나, 상기 안정성 평가를 통과한 소프트웨어의 대상이 되는 데이터(즉, 파일) 또는 이들의 조합을 포함한다.
또한 사용자 데이터 백업 처리부(134)는 상기 백업되는 사용자 중요 데이터의 수정, 추가, 삭제 등의 변경이력을 동시에 저장한다.
또한 사용자 데이터 백업 처리부(134)는 인가된 사용자의 요청에 따라 상기 백업된 백업 데이터를 기반으로 상기 사용자 중요 데이터를 백업할 수 있도록 한다.
한편 상기 백업을 수행하는 경우, 상기 커널 레벨 보안 스토리지 관리부(135)는 사용자를 인증하기 위한 인증수단(OTP(one time password), 공인인증서 등)을 구비하여, 상기 인증수단을 통해 사용자를 인증함으로써, 인가된 사용자에 대해서만 상기 백업을 수행할 수 있도록 한다.
즉, 사용자 백업 처리부(134)는 상기 커널 레벨 보안 스토리지 관리부(135)를 통해 인가된 사용자에 대해서만 상기 커널 레벨 보안 스토리지(140)에 대한 일기/쓰기 권한을 부여함으로서, 상기 인가된 사용자만이 상기 커널 레벨 보안 스토리지(140)를 이용할 수 있도록 한다.
또한 사용자 데이터 백업 처리부(134)는 상기 백업 데이터를 기반으로 백업을 수행하는 경우, 상기 저장한 과거의 변경이력을 기반으로 해당 사용자 중요 데이터에 대한 복구 시점을 선택할 수 있도록 한다.
또한 사용자 데이터 백업 처리부(134)는 상기 커널 레벨 보안 스토리지(140)에 백업하고자 하는 사용자 중요 데이터가 대용량인 경우에는, 상기 에이전트(110)를 통해 상기 보안 관리서버(300)에 상기 사용자 중요 데이터를 암호화하여 전송할 수 있도록 함으로써, 상기 관리서버(300)의 데이터베이스(400)에 저장할 수도 있다.
상술한 것과 같이, 상기 사용자 데이터 백업 처리부(134)는 상기 커널 레벨에서 인가된 사용자만이 접근 가능한 커널 레벨 보안 스토리지(140)를 이용할 수 있도록 함으로써, 악성 소프트웨어가 실행되어 로컬 메모리 혹은 데이터베이스에 저장된 사용자 데이터가 침해당한 경우에도 사후 복구를 안정적으로 수행할 수 있도록 한다.
또한 보안 정보 생성부(133)는 상기 사용자 중요 데이터의 백업 및 변경이력, 상기 소프트웨어에 대한 무결성 검증 결과, 현재 수행 중인 소프트웨어를 포함하는 보안 정보를 생성하여, 상기 에이전트(110)를 통해 사용자에게 제공한다.
상기 에이전트(110)는 보안 정보 생성부(133)로부터 수신되는 보안 정보를 파일로 생성하여 사용자에게 제공하거나, 상기 사용자 디바이스(200)에 구비되는 디스플레이에 실시간으로 상기 보안정보를 출력할 수 있다.
또한 상기 에이전트(110)는 실시간으로 또는 상기 보안 관리서버(300)의 요청에 따라 상기 보안 정보를 상기 보안 관리서버(300)로 전송할 수 있음은 상술한 바와 같다.
도 6은 본 발명의 일 실시예에 따른 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안서비스를 제공하는 절차를 나타낸 흐름도이다.
도 6에 도시한 바와 같이, 본 발명의 일 실시예에 따른 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안서비스를 제공하는 절차는 우선, 보안 장치(100)는 사용자 디바이스(200)에 설치되는 모든 소프트웨어 대한 안정성을 평가하여, 소프트웨어 실행허가를 위한 전자서명을 발행한다(S110).
한편 상기 전자서명은 해시체인을 기반으로 각 소프트웨어에 대해 각각 발행되거나, 해시트리를 통해 발행됨은 상술한 바와 같다.
다음으로 상기 보안 장치(100)는 상기 각 소프트웨어의 대상이 되는 데이터를 커널 레벨 보안 스토리지(140)에 백업한다(S120).
이를 통해 상기 보안 장치(100)는 해당 소프트웨어가 악성 소프트웨어에 의해 상기 사용자 데이터가 변경되는 것을 방지되는 것을 차단하고, 상기 악성 소프트웨어가 실행되는 경우에도 상기 백업한 사용자 데이터를 토대로 사후 복구를 수행할 수 있도록 한다.
한편 상기 커널 레벨 보안 스토리지(140)는 커널 레벨에서 보호되는 파일 시스템(저장영역)을 의미하는 것으로, 상기 보안 장치(100)에 의해 인가된 사용자만이 접근할 수 있도록 구현된다.
또한 상기 커널 레벨 보안 스토리지(140)에 백업되는 사용자 데이터는 상기 소프트웨어의 대상이 되는 데이터뿐만 아니라 사용자가 선택한 사용자 중요 데이터를 포함한다.
다음으로 커널 레벨에 소프트웨어의 실행 요청이 있는 경우(S130), 상기 보안 장치(100)는 상기 발행한 전자서명을 토대로 해당 소프트웨어에 대한 무결성을 검증한다(S140).
상기 무결성 검증은, 상기 소프트웨어에 대한 해시코드를 생성하여, 상기 커널 보안 스토리지(140)를 참조하여, 해시체인을 기반으로 전자서명이 발행된 경우, 상기 생성한 해시코드를 가지는 전자서명이 존재하는지에 대한 여부를 판단하거나, 또는 해시트리를 기반으로 전자서명이 발행된 경우, 해당 해시트리를 역방향으로 탐색하여 상기 생성한 해시코드를 포함하는 리프노드를 확인함으로서, 수행된다.
다음으로 상기 보안 장치(100)는 상기 검증한 결과에 따라 해당 소프트웨어의 실행을 제어한다(S150).
즉, 상기 보안 장치(100)는 상기 S140단계에서 수행한 무결성 검증을 토대로, 해당 소프트웨어의 실행허가를 위한 전자서명이 발행되어 있는 경우, 해당 소프트웨어를 실행할 수 있도록 하며, 상기 전자서명이 발행되어 있지 않는 경우, 해당 소프트웨어를 랜섬웨어 등과 같은 악성 소프트웨어로 간주하여, 상기 소프트웨어의 실행을 거부한다.
이상에서 설명한 바와 같이 본 발명의 일 실시예에 따른 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법은 소프트웨어 실행허가를 위해 발행되는 전자서명을 기반으로 상기 소프트웨어가 실행되기 전에 해당 소프트웨어에 대한 무결성을 검증함으로써, 랜섬웨어를 포함한 악성 소프트웨어를 실시간으로 검출하여 상기 악성 소프트웨어의 실행을 원천적으로 차단하여 사용자의 중요 데이터를 보호할 수 있는 효과가 있다.
또한 본 발명은 커널 레벨에서 보호되는 커널 레벨 보안 스토리지에 사용자의 중요 데이터를 백업함으로써, 사용자 디바이스의 로컬 저장영역에 저장되는 사용자 데이터가 악성 소프트웨어에 의해 침입되더라도 안전하게 사후 복구를 수행할 수 있도록 하는 효과가 있다.
상기에서는 본 발명에 따른 바람직한 실시예를 위주로 상술하였으나, 본 발명의 기술적 사상은 이에 한정되는 것은 아니며 본 발명의 각 구성요소는 동일한 목적 및 효과의 달성을 위하여 본 발명의 기술적 범위 내에서 변경 또는 수정될 수 있을 것이다.
아울러 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
10: 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템
100: 보안 장치 110: 에이전트
120: 보안서비스 인터페이스부 130: 커널 보안 서비스 제공부
131: 전자서명 발행부 132: 소프트웨어 무결성 검증부
133: 보안 정보 생성부 134: 사용자 데이터 백업 처리부
135: 커널 레벨 보안 스토리지 관리부 136: 제어부
200: 사용자 디바이스 300: 관리서버
400: 데이터베이스

Claims (14)

  1. 운영체제의 커널 레벨에서 악성 소프트웨어에 대한 보안 서비스를 제공하기 위한 보안 시스템에 있어서, 상기 보안 시스템은,
    사용자 디바이스에 설치되는 모든 소프트웨어에 대한 각각의 전자서명을 순차적으로 발행하여 커널 레벨 보안 스토리지에 저장하는 전자서명 발행부;
    상기 발행한 전자서명을 토대로 상기 커널 레벨에 실행 요청된 소프트웨어의 실행 허가를 위한 무결성 검증을 실시간으로 수행하는 소프트웨어 무결성 검증부; 및
    상기 수행한 무결성 검증에 따라 상기 소프트웨어의 실행을 제어하는 소프트웨어 실행 제어부;를 포함하며,
    상기 전자서명은 해당 소프트웨어에 대한 해시코드 및 이전에 발행된 전자서명의 소프트웨어에 대한 해시코드를 포함함으로써, 상기 발행된 모든 전자서명은 해시체인으로 연결되는 것을 특징으로 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템.
  2. 청구항 1에 있어서,
    상기 전자서명 발행부는,
    상기 소프트웨어에 대한 실행 파일 또는 동적 라이브러리의 실행 이미지에 대한 안정성을 평가하여, 상기 실행 이미지에 대한 해시코드를 생성함으로써, 해당 소프트웨어에 대한 전자서명을 발행하는 것을 특징으로 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템.
  3. 청구항 1에 있어서,
    상기 소프트웨어 무결성 검증부는,
    상기 실행 요청된 소프트웨어에 대한 해시코드를 생성하고, 상기 커널 레벨 보안 스토리지를 참조하여 상기 생성한 해시코드를 포함한 전자서명의 확인함으로써, 해당 소프트웨어에 대한 무결성 검증을 수행하는 것을 특징으로 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템.
  4. 청구항 1에 있어서,
    상기 보안 시스템은,
    사용자가 선택한 사용자 데이터, 상기 소프트웨어의 대상이 되는 사용자 데이터 또는 이들의 조합을 상기 커널 레벨 보안 스토리지에 백업하고, 상기 백업한 사용자 데이터를 복구하는 사용자 데이터 백업 처리부; 및
    상기 무결성 검증 결과, 상기 백업되는 사용자 데이터의 수정, 추가, 삭제에 대한 변경이력 또는 이들의 조합을 포함하는 보안 정보를 생성하여 사용자에게 제공하는 보안 정보 생성부;를 더 포함하는 것을 특징으로 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템.
  5. 청구항 4에 있어서,
    상기 사용자 데이터 백업 처리부는,
    악성 소프트웨어의 실행에 의해 사용자 디바이스의 로컬 저장영역에 저장되는 사용자 데이터가 침해당한 경우, 상기 변경이력을 토대로 복구 시점을 선택함으로써, 상기 커넬 레벨 보안 스토리지에 저장된 사용자 데이터에 대한 사후 복구를 수행하는 것을 특징으로 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템.
  6. 청구항 1에 있어서,
    상기 보안 시스템은,
    복수의 소프트웨어에 대한 해시코드를 토대로 복수의 리프노드, 복수의 중간노드 및 루트해시를 포함하는 해시트리를 생성하며,
    상기 리프노드는 상기 소프트웨어에 대한 해시코드를 각각 포함하고, 상기 중간노드 및 루트해시는 두 개의 자식노드에 대한 해시코드를 연결하여 생성한 해시코드를 포함하며,
    상기 루트해시에 대한 전자서명을 생성함으로써, 소프트웨어의 실행허가를 위한 전자서명을 발행하는 것을 더 포함하는 것을 특징으로 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템.
  7. 청구항 6에 있어서,
    상기 보안 시스템은,
    커널 레벨에 소프트웨어의 실행 요청이 있는 경우, 해당 소프트웨어에 대한 해시코드를 생성한 후, 상기 해시트리를 루트해시로부터 리프노드가지 역방향으로 탐색하여 상기 생성한 해시코드를 가지는 리프노드를 확인함으로써, 해당 소프트웨어에 대한 무결성 검증을 수행하는 것을 더 포함하는 것을 특징으로 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템.
  8. 운영체제의 커널 레벨에서 악성 소프트웨어에 대한 보안 서비스를 제공하기 위한 보안 방법에 있어서, 상기 보안 방법은,
    사용자 디바이스에 설치되는 모든 소프트웨어에 대한 각각의 전자서명을 순차적으로 발행하여 커널 레벨 보안 스토리지에 저장하는 전자서명 발행 단계;
    상기 발행한 전자서명을 토대로 상기 커널 레벨에 실행 요청된 소프트웨어의 실행 허가를 위한 무결성 검증을 실시간으로 수행하는 소프트웨어 무결성 검증 단계; 및
    상기 수행한 무결성 검증에 따라 상기 소프트웨어의 실행을 제어하는 소프트웨어 실행 제어 단계;를 포함하며,
    상기 전자서명은 해당 소프트웨어에 대한 해시코드 및 이전에 발행된 전자서명의 소프트웨어에 대한 해시코드를 포함함으로써, 상기 발행된 모든 전자서명은 해시체인으로 연결되는 것을 특징으로 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 방법.
  9. 청구항 8에 있어서,
    상기 전자서명 발행 단계는,
    상기 소프트웨어에 대한 실행 파일 또는 동적 라이브러리의 실행 이미지에 대한 안정성을 평가하여, 상기 실행 이미지에 대한 해시코드를 생성함으로써, 해당 소프트웨어에 대한 전자서명을 발행하는 것을 특징으로 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 방법.
  10. 청구항 8에 있어서,
    상기 소프트웨어 무결성 검증 단계는,
    상기 실행 요청된 소프트웨어에 대한 해시코드를 생성하고, 상기 커널 레벨 보안 스토리지를 참조하여 상기 생성한 해시코드를 포함한 전자서명의 확인함으로써, 해당 소프트웨어에 대한 무결성 검증을 수행하는 것을 특징으로 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 방법.
  11. 청구항 8에 있어서,
    상기 보안 방법은,
    사용자가 선택한 사용자 데이터, 상기 소프트웨어의 대상이 되는 사용자 데이터 또는 이들의 조합을 상기 커널 레벨 보안 스토리지에 백업하고, 상기 백업한 사용자 데이터를 복구하는 사용자 데이터 백업 처리 단계; 및
    상기 무결성 검증 결과, 상기 백업되는 사용자 데이터의 수정, 추가, 삭제에 대한 변경이력 또는 이들의 조합을 포함하는 보안 정보를 생성하여 사용자에게 제공하는 보안 정보 생성 단계;를 더 포함하는 것을 특징으로 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 방법.
  12. 청구항 11에 있어서,
    상기 사용자 데이터 백업 처리 단계는,
    악성 소프트웨어의 실행에 의해 사용자 디바이스의 로컬 저장영역에 저장되는 사용자 데이터가 침해당한 경우, 상기 변경이력을 토대로 복구 시점을 선택함으로써, 상기 커넬 레벨 보안 스토리지에 저장된 사용자 데이터에 대한 사후 복구를 수행하는 것을 특징으로 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 방법.
  13. 청구항 8에 있어서,
    상기 보안 방법은,
    복수의 소프트웨어에 대한 해시코드를 토대로 복수의 리프노드, 복수의 중간노드 및 루트해시를 포함하는 해시트리를 생성하며,
    상기 리프노드는 상기 소프트웨어에 대한 해시코드를 각각 포함하고, 상기 중간노드 및 루트해시는 두 개의 자식노드에 대한 해시코드를 연결하여 생성한 해시코드를 포함하며,
    상기 루트해시에 대한 전자서명을 생성함으로써, 소프트웨어의 실행허가를 위한 전자서명을 발행하는 것을 더 포함하는 것을 특징으로 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 방법.
  14. 청구항 13에 있어서,
    상기 보안 방법은,
    커널 레벨에 소프트웨어의 실행 요청이 있는 경우, 해당 소프트웨어에 대한 해시코드를 생성한 후, 상기 해시트리를 루트해시로부터 리프노드가지 역방향으로 탐색하여 상기 생성한 해시코드를 가지는 리프노드를 확인함으로써, 해당 소프트웨어에 대한 무결성 검증을 수행하는 것을 더 포함하는 것을 특징으로 하는 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 방법.
KR1020180066968A 2018-06-11 2018-06-11 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법 KR102086375B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180066968A KR102086375B1 (ko) 2018-06-11 2018-06-11 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180066968A KR102086375B1 (ko) 2018-06-11 2018-06-11 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20190140314A true KR20190140314A (ko) 2019-12-19
KR102086375B1 KR102086375B1 (ko) 2020-03-09

Family

ID=69056312

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180066968A KR102086375B1 (ko) 2018-06-11 2018-06-11 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102086375B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220095454A (ko) 2020-12-30 2022-07-07 포항공과대학교 산학협력단 랜섬웨어 피해 복원을 위한 p2p 디스크 복원 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170136406A (ko) * 2016-05-30 2017-12-11 삼성전자주식회사 어플리케이션을 인증하는 전자 장치 및 그것의 동작 방법
KR20180005542A (ko) * 2016-07-06 2018-01-16 주식회사 케이티 데이터 무결성 검증을 위한 장치 및 방법
US20180068118A1 (en) * 2012-03-30 2018-03-08 Irdeto B.V. Method and system for preventing and detecting security threats
US20180091313A1 (en) * 2016-09-26 2018-03-29 Via Alliance Semiconductor Co., Ltd. Apparatuses and methods for trusted module execution

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180068118A1 (en) * 2012-03-30 2018-03-08 Irdeto B.V. Method and system for preventing and detecting security threats
KR20170136406A (ko) * 2016-05-30 2017-12-11 삼성전자주식회사 어플리케이션을 인증하는 전자 장치 및 그것의 동작 방법
KR20180005542A (ko) * 2016-07-06 2018-01-16 주식회사 케이티 데이터 무결성 검증을 위한 장치 및 방법
US20180091313A1 (en) * 2016-09-26 2018-03-29 Via Alliance Semiconductor Co., Ltd. Apparatuses and methods for trusted module execution

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220095454A (ko) 2020-12-30 2022-07-07 포항공과대학교 산학협력단 랜섬웨어 피해 복원을 위한 p2p 디스크 복원 방법 및 장치

Also Published As

Publication number Publication date
KR102086375B1 (ko) 2020-03-09

Similar Documents

Publication Publication Date Title
Alwan et al. Detection and prevention of SQL injection attack: a survey
US9967265B1 (en) Detecting malicious online activities using event stream processing over a graph database
CN110582988A (zh) 安全的系统操作
CN1748203A (zh) 用于检测计算机系统中的安全漏洞的系统和方法
KR101137128B1 (ko) 웜 봉쇄 방법
Just et al. Learning unknown attacks—A start
EP3172692A1 (en) Remedial action for release of threat data
EP3563548B1 (en) Historic data breach detection
Deng et al. Lexical analysis for the webshell attacks
CN108429746B (zh) 一种面向云租户的隐私数据保护方法及系统
KR102086375B1 (ko) 악성 소프트웨어에 대한 실시간 예방 및 사후 복구를 위한 보안 시스템 및 그 방법
Xu et al. DR@ FT: efficient remote attestation framework for dynamic systems
Selvamani et al. A Novel Approach for Prevention of SQL Injection Attacks Using Cryptography and Access Control Policies
US11611570B2 (en) Attack signature generation
Ding et al. Model-Driven Security Analysis of Self-Sovereign Identity Systems
Saeb et al. Protecting mobile agents against malicious host attacks using threat diagnostic and/or tree
KR102211846B1 (ko) 랜섬웨어 탐지 시스템 및 그의 동작 방법
Bhandari et al. A Preliminary Study On Emerging Cloud Computing Security Challenges
US11582248B2 (en) Data breach protection
JP2018136811A (ja) 制御システム
US20240022546A1 (en) Master ledger and local host log extension detection and mitigation of forged authentication attacks
El Emary et al. Machine Learning Classifier Algorithms for Ransomware Lockbit Prediction
Bowles et al. Threat effects analysis: Applying FMEA to model computer system threats
Han et al. HDTSM: Hybrid Dynamic Token-based Security Mechanism for Database Protection in E-Government Service Systems
Alalayah Pattern Image based Dynamic Framework for Security in Web Application

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