KR20190106544A - Data availability ssd architecture for providing user data protection - Google Patents

Data availability ssd architecture for providing user data protection Download PDF

Info

Publication number
KR20190106544A
KR20190106544A KR1020180028172A KR20180028172A KR20190106544A KR 20190106544 A KR20190106544 A KR 20190106544A KR 1020180028172 A KR1020180028172 A KR 1020180028172A KR 20180028172 A KR20180028172 A KR 20180028172A KR 20190106544 A KR20190106544 A KR 20190106544A
Authority
KR
South Korea
Prior art keywords
ssd
data
user
ssd device
block
Prior art date
Application number
KR1020180028172A
Other languages
Korean (ko)
Other versions
KR102106689B1 (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 KR1020180028172A priority Critical patent/KR102106689B1/en
Publication of KR20190106544A publication Critical patent/KR20190106544A/en
Application granted granted Critical
Publication of KR102106689B1 publication Critical patent/KR102106689B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/3236Cryptographic 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 using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

For providing data availability, which preserves user data from malicious attack, a solid state drive (SSD) device may be operated as an independent block storage device in which a security function is separated from a host system, and the SSD device may include a data versioning process storing data with a plurality of versions for the user data and not interrupted by operating system (OS).

Description

사용자 데이터 보호를 제공하는 데이터 가용성 SSD 아키텍처{DATA AVAILABILITY SSD ARCHITECTURE FOR PROVIDING USER DATA PROTECTION}DATA AVAILABILITY SSD ARCHITECTURE FOR PROVIDING USER DATA PROTECTION}

아래의 설명은 데이터 가용성(user availability)을 위한 SSD(solid state drive) 아키텍처에 관한 것이다.The description below relates to a solid state drive (SSD) architecture for user availability.

스토리지에 데이터의 기밀성과 무결성을 제공하는 것이 연구되고 있으며, 아래 논문 등에 관련 기술이 개시되어 있다.Providing confidentiality and integrity of data to storage has been studied, and related technologies are disclosed in the following paper.

[1] Trusted Computing Group. TCG Storage Security Subsystem Class:Opal, 2015. Ver. 2.01, Rev. 1.0.[1] Trusted Computing Group. TCG Storage Security Subsystem Class: Opal, 2015. Ver. 2.01, Rev. 1.0.

[2] Intel. Intel Solid-State Drive Pro 2500 Series: Opal Compatibility Guide, August 2014. Ver 1.0.[2] Intel. Intel Solid-State Drive Pro 2500 Series: Opal Compatibility Guide, August 2014.Ver 1.0.

최근 랜섬웨어(ransomware)에 대한 새로운 유형의 보안 문제가 대두되고 있다. 랜섬웨어는 대상 시스템에 침투하여 스토리지의 사용자 데이터를 암호화하여 저장된 데이터를 비밀 키 없이는 사용할 수 없게 만든다. 스토리지의 데이터 기밀성 및 무결성에 대한 이전 지원 기술로는 데이터 가용성에 대한 새로운 유형의 공격으로부터 사용자 데이터를 보호할 수 없다.Recently, a new type of security problem for ransomware has emerged. Ransomware infiltrates the target system and encrypts the user data on the storage, making the stored data unusable without the secret key. Previous support for data confidentiality and integrity of storage does not protect user data from new types of attacks on data availability.

랜섬웨어 공격에 대해 사용자 데이터의 가용성을 보호하기 위한 SSD를 제안한다.We propose an SSD to protect the availability of user data against ransomware attacks.

사용자 데이터 가용성을 보호하기 위해 소프트웨어 기반 접근 방식을 제안한 기존 연구와는 달리, 저장 장치에 보호 메커니즘을 구현하는 새로운 하드웨어 기반 솔루션을 제안한다.Unlike previous studies that proposed a software-based approach to protecting user data availability, we propose a new hardware-based solution for implementing protection mechanisms on storage devices.

운영체제가 손상되었을 때도 사용자 데이터 가용성을 유지할 수 있는 SSD를 제안한다.We propose SSDs that can maintain user data availability even when the operating system is corrupted.

SSD(solid state drive) 장치에 있어서, 악의적인 공격으로부터 사용자 데이터를 보존하는 데이터 가용성(data availability)을 제공하기 위해, 보안 기능이 호스트 시스템과 분리된 독립적인 블록 저장 장치로 동작하고, 상기 사용자 데이터에 대해 복수 개의 버전의 데이터를 저장하고 운영체제(OS)에 의해 중단되지 않는 데이터 버전 관리(versioning) 프로세스를 포함하는 SSD 장치를 제공한다.In solid state drive (SSD) devices, the security function operates as an independent block storage device separate from the host system to provide data availability that preserves user data from malicious attacks, and the user data. The present invention provides an SSD device including a data versioning process for storing a plurality of versions of data and not interrupted by an operating system (OS).

일 측면에 따르면, 상기 SSD 장치는 상기 호스트 시스템의 네트워크 인터페이스를 사용하여 외부와 통신함에 있어 SSD에 고유한 개인 및 공개 키 쌍이 할당되어 외부와의 보안 통신을 지원하고 SSD의 무결성 점검 결과를 포함한 알림을 외부로 제공하는 신뢰 루트(root-of-trust)를 포함할 수 있다.According to one aspect, the SSD device is assigned a unique private and public key pair to the SSD in communication with the outside using the network interface of the host system to support secure communication with the outside and the notification including the result of the integrity check of the SSD It can contain a root-of-trust that provides externally.

다른 측면에 따르면, 상기 SSD 장치는 SSD 인증을 위해 SSD에 고유한 개인 및 공개 키 쌍이 존재하는 플랫폼 모듈이 내장될 수 있다.According to another aspect, the SSD device may be embedded with a platform module in which a unique private and public key pair is present in the SSD for SSD authentication.

또 다른 측면에 따르면, 상기 SSD 장치는 SSD 공급 업체나 서드파티(3rd party)의 원격 서버에서 제공하는 메시지 릴레이 서비스를 통해 SSD와 사용자 간의 통신 기능을 제공할 수 있다.According to a further aspect, the SSD unit may provide the communication between the SSD and the user through a message relay service provided by the vendor or a remote server SSD of the third-party (3 rd party).

또 다른 측면에 따르면, 상기 SSD 장치는 SSD에서 주기적으로 생성된 하트비트(heartbeat) 메시지를 상기 원격 서버로 전송하고 상기 원격 서버로부터의 상기 하트비트 메시지에 대한 응답 메시지의 유무를 감지할 수 있다.According to another aspect, the SSD device may transmit a heartbeat message periodically generated in the SSD to the remote server and detect the presence or absence of a response message to the heartbeat message from the remote server.

또 다른 측면에 따르면, 상기 SSD 장치는 상기 하트비트 메시지가 상기 원격 서버로 전송되지 않고 상기 원격 서버로부터 상기 응답 메시지가 없음이 감지되면 SSD에서 운영체제에 의해 네트워크 접근이 제한되고 있는 것으로 판단할 수 있다.According to another aspect, the SSD device may determine that network access is restricted by the operating system in the SSD when the heartbeat message is not transmitted to the remote server and the absence of the response message is detected from the remote server. .

또 다른 측면에 따르면, 상기 SSD 장치는 SSD에서 운영체제에 의해 네트워크 접근이 제한되고 있는 것으로 판단되면 현재 상태의 스냅 샷을 생성할 수 있다.According to another aspect, if it is determined that network access is restricted by the operating system in the SSD, the SSD device may generate a snapshot of the current state.

또 다른 측면에 따르면, 상기 SSD 장치는 디스크의 블록(block)에 포함된 파티션 테이블 정보를 이용하여 각 파티션의 블록을 읽어오고 해당 블록에 인코딩된 파일 시스템 유형에 기반하여 주어진 파일을 구성하는 블록을 찾을 수 있다.According to another aspect, the SSD device reads a block of each partition using partition table information included in a block of a disk, and selects a block constituting a given file based on the file system type encoded in the block. You can find it.

또 다른 측면에 따르면, 상기 SSD 장치는 블록이 주어지면 파일 이름으로 역방향 조회(reverse lookup)를 수행할 수 있다.According to another aspect, the SSD device may perform reverse lookup with a file name given a block.

또 다른 측면에 따르면, 상기 SSD 장치는 쓰기 요청에 대해 스냅 샵 메커니즘을 이용한 데이터 버전 관리를 수행할 수 있다.According to another aspect, the SSD device may perform data version management using a snap mechanism for a write request.

또 다른 측면에 따르면, 상기 SSD 장치는 플래시 변환 레이어(flash translation layer) 구조를 이용하여 원본 데이터의 스냅 샷을 만든 후 새로운 쓰기를 SSD에 기록할 수 있다.According to another aspect, the SSD device may take a snapshot of the original data by using a flash translation layer structure and then write a new write to the SSD.

또 다른 측면에 따르면, 상기 SSD 장치는 상기 쓰기 요청에 대해 긍정 오류(false positive) 가능성이 있는 요청을 식별하여 데이터 버전 관리를 수행할 수 있다.According to another aspect, the SSD device may perform data version management by identifying a request having a false positive possibility for the write request.

또 다른 측면에 따르면, 상기 SSD 장치는 엔트로피 기반 탐지 방식을 이용하여 상기 쓰기 요청 중에서 악의적인 쓰기를 식별하여 데이터 버전 관리를 수행할 수 있다.According to another aspect, the SSD device may perform data version management by identifying malicious writes among the write requests using an entropy-based detection scheme.

SSD 장치에 있어서, NAND 플래시 칩을 스토리지로 사용하여 데이터를 저장하는 SSD; 및 상기 SSD에 결합되는 컨트롤러를 포함하고, 상기 컨트롤러는, 악의적인 공격으로부터 상기 데이터를 보존하는 데이터 가용성을 제공하기 위해, 상기 SSD를 보안 기능이 호스트 시스템과 분리된 독립적인 블록 저장 장치로 동작하도록 제어하고 상기 데이터를 복수 개의 버전으로 저장하고 운영체제에 의해 중단되지 않는 데이터 버전 관리 프로세스를 포함하는, SSD 장치를 제공한다.An SSD device comprising: an SSD storing data using a NAND flash chip as storage; And a controller coupled to the SSD, the controller configured to operate the SSD as an independent block storage device having security functions separate from the host system to provide data availability that preserves the data from malicious attacks. An SSD device is provided that includes a data version management process that controls and stores the data in multiple versions and is not interrupted by an operating system.

SSD의 제어 동작을 위한 방법에 있어서, 상기 방법은, 악의적인 공격으로부터 사용자 데이터를 보존하는 데이터 가용성을 제공하기 위해, 상기 SSD를 보안 기능이 호스트 시스템과 분리된 독립적인 블록 저장 장치로 동작하도록 제어하고 상기 사용자 데이터에 대해 복수 개의 버전의 데이터를 저장하고 운영체제에 의해 중단되지 않는 데이터 버전 관리를 수행하는 단계를 포함하는, 방법을 제공한다.A method for the control operation of an SSD, wherein the method controls the SSD to operate as an independent block storage device whose security function is separate from the host system to provide data availability that preserves user data from malicious attack. And storing a plurality of versions of data for the user data and performing data version management that is not interrupted by an operating system.

도 1은 본 발명의 일실시예에 있어서 어드레스 매핑을 설명하기 위한 예시 도면이다.
도 2는 본 발명의 일실시예에 있어서 데이터 가용성을 위한 SSD(DA-SSD)와 호스트 시스템을 포함하는 전체 개요도를 도시한 것이다.
도 3은 본 발명의 일실시예에 있어서 데이터 가용성을 위한 SSD(DA-SSD)의 전체 구조를 도시한 것이다.
도 4는 본 발명의 일실시예에 있어서 사용자 데이터 보호를 위한 데이터 버전 관리를 설명하기 위한 예시 도면이다.
도 5는 본 발명의 일실시예에 있어서 파일 유형 별 엔트로피를 설명하기 위한 도면이다.
1 is an exemplary diagram for describing an address mapping according to an embodiment of the present invention.
FIG. 2 illustrates an overall schematic diagram including an SSD (DA-SSD) and a host system for data availability according to an embodiment of the present invention.
3 illustrates the overall structure of an SSD (DA-SSD) for data availability according to an embodiment of the present invention.
4 is an exemplary diagram for explaining data version management for protecting user data according to an embodiment of the present invention.
FIG. 5 is a diagram for describing entropy for each file type according to an embodiment of the present invention. FIG.

이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명에서는 손상된 운영체제에서 데이터 가용성을 제공하기 위해 신뢰할 수 있는 도메인으로서 독립적으로 존재하는 새로운 SSD 구조를 가지는 데이터 가용성을 위한 SSD(이하, 'DA-SSD'라 칭함)를 제안한다. DA-SSD는 자체적인 신뢰 루트를 가지며 자동적으로 사용자 데이터의 여러 버전을 저장하여 가능한 랜섬웨어 공격에 대비한다.The present invention proposes an SSD for data availability (hereinafter referred to as 'DA-SSD') having a new SSD structure independently existing as a trusted domain to provide data availability in a corrupted operating system. DA-SSD has its own root of trust and automatically saves multiple versions of user data to guard against possible ransomware attacks.

파일 시멘틱(semantic) 추론 기능은 저장 장치에서 파일 시멘틱을 획득하기 위해 적용될 수 있다. 본 발명에서는 랜섬웨어 공격으로부터 사용자 데이터를 보호하는 효율적인 버전관리(versioning) 메커니즘을 제안하고 진행중인 랜섬웨어 공격을 탐지하는 방법을 제공한다.The file semantic inference function may be applied to obtain file semantics in the storage device. The present invention proposes an efficient versioning mechanism for protecting user data from ransomware attacks and provides a method for detecting an ongoing ransomware attack.

DA-SSD는 정상적인 블록 스토리지로 작동하여 운영체제의 요청을 수락한다. 그러나 독립적인 스토리지로서 DA-SSD 내의 데이터 버전 관리 프로세스는 운영체제에 의해 중단될 수 없다.DA-SSD works with normal block storage to accept operating system requests. However, as independent storage, the data versioning process within the DA-SSD cannot be interrupted by the operating system.

이러한 중단 없는 버전관리 가능하게 하기 위해 DA-SSD는 몇 가지 기술적 과제를 해결해야 한다. 첫째, DA-SSD는 운영체제가 손상되더라도 사용자와 안전하게 통신할 수 있어야 한다. 둘째, DA-SSD는 블록 장치인 SSD가 운영체제에서 전송된 블록 수준의 데이터 트래픽만 관찰할 수 있을지라도 파일 시스템의 상위 수준 시멘틱을 추론할 수 있어야 한다. 셋째, DA-SSD는 데이터 버전을 효율적으로 생성할 수 있어야 한다. 이러한 버전관리 프로세스는 디스크의 일반적인 사용을 지연시켜서는 안 된다. 마지막으로 용량 오버 헤드는 가능한 감소되어야 한다.To enable this uninterrupted versioning, DA-SSD has to solve some technical challenges. First, DA-SSD must be able to communicate safely with users even if the operating system is damaged. Second, the DA-SSD must be able to infer the high-level semantics of the file system, even though the SSD as a block device can only observe block-level data traffic transmitted from the operating system. Third, the DA-SSD must be able to efficiently generate data versions. This versioning process should not delay the normal use of the disk. Finally, the capacity overhead should be reduced as much as possible.

사용자에게 안전한 통신 경로를 제공하기 위해, DA-SSD에는 고유한 개인/공개 키 쌍이 존재하는 신뢰할 수 있는 플랫폼 모듈(Trusted Platform Module, TPM)이 내장되어 있다. DA-SSD는 TPM 지원을 통해 디스크 장치의 유효성 외에도 DA-SSD의 컨트롤러 및 펌웨어가 사용자 응용 프로그램에서 증명될 수 있다. 또한 DA-SSD는 중간의 운영체제가 사용자와의 실제 통신을 처리하는 경우에도 해당 데이터에 대한 의심스러운 활동을 사용자에게 안전하게 알릴 수 있다.To provide a secure communication path for the user, the DA-SSD has a Trusted Platform Module (TPM) with a unique private / public key pair. In addition to the validity of disk devices, the DA-SSD supports TPM support so that the DA-SSD's controller and firmware can be demonstrated in user applications. In addition, DA-SSD can safely notify users of suspicious activity on the data even when an intermediate operating system handles the actual communication with the user.

그러나, 이전 버전의 모든 데이터가 스토리지에 존재해야 하기 때문에 모든 쓰기(write)에 대해 여러 버전의 데이터를 작성하면 유효 저장 용량을 상당히 감소시킬 수 있다. 이러한 용량 오버 헤드를 감소시키기 위해 DA-SSD는 랜섬웨어 탐지 알고리즘을 사용하여 디스크에서 의심되는 활동을 식별한다. DA-SSD는 특정 중요 사용 사례에 대해 디스크가 꽉 찰 때까지 모든 이전 버전의 데이터를 생성하도록 구성될 수 있지만, 본 발명에서는 일반적인 사용에서 용량 오버 헤드를 감소시키기 위해 긍정 오류(false positive) 가능성이 있는 탐지 메커니즘을 사용한다.However, since all data from previous versions must exist in storage, writing multiple versions of data for every write can significantly reduce the effective storage capacity. To reduce this capacity overhead, DA-SSD uses a ransomware detection algorithm to identify suspicious activity on disk. The DA-SSD can be configured to generate all previous versions of data until the disk is full for certain critical use cases, but in the present invention there is a possibility of false positives to reduce capacity overhead in normal use. Use detection mechanisms.

본 발명의 주요 내용은 다음과 같다.The main contents of the present invention are as follows.

- 본 발명에서는 운영체제가 안전하지 않은 경우 신뢰할 수 있는 플랫폼 모듈(TPM)을 사용하여 원격 증명 및 인증된 알림을 제공하는 새로운 SSD 설계를 제안한다.The present invention proposes a new SSD design that provides remote attestation and authenticated notification using a trusted platform module (TPM) when the operating system is not secure.

- 파일 시스템 시멘틱이 없는 블록 장치의 한계를 극복하기 위해 DA-SSD는 리버스 엔지니어링 방식을 사용하여 SSD로 파일 시스템 구조를 재구성한다.To overcome the limitations of block devices without file system semantics, DA-SSD uses reverse engineering to reconstruct file system structures into SSDs.

- 본 발명은 SSD의 플래시 변환 레이어(flash translation layer, FTL) 구조를 활용하여 효율적인 버전관리 메커니즘을 제공한다.The present invention provides an efficient version control mechanism utilizing the flash translation layer (FTL) structure of the SSD.

- 용량 오버 헤드를 감소시키기 위해 DA-SSD는 운영체제를 대상으로 한 엔트로피 기반 멀웨어 탐지 방식을 사용한다. 본 발명은 블록 스토리지 내에 엔트로피 기반 멀웨어 탐지 방식이 적용될 수 있음을 보여준다.To reduce capacity overhead, DA-SSD uses entropy-based malware detection for operating systems. The present invention shows that entropy-based malware detection can be applied within block storage.

먼저, 스토리지 및 SSD 아키텍처의 보안에 대해 먼저 설명하기로 한다.First, the security of storage and SSD architectures will be discussed first.

데이터는 컴퓨팅의 중요한 부분 중 하나로, 데이터 보안에는 세 가지 필수 보안 속성(기밀성(confidentiality), 무결성(integrity) 및 가용성(availability))이 필요하다.Data is an important part of computing, and data security requires three essential security attributes: confidentiality, integrity, and availability.

스토리지를 위한 데이터 보안Data Security for Storage

기밀성은 공격자가 사용자 데이터를 읽지 못하게 하는 것을 목표로 하며, 이러한 목표는 암호화를 통해 지원된다. 사용자 데이터를 암호화하는 소프트웨어 및 하드웨어 기술이 존재한다. 소프트웨어 솔루션에는 전체 디스크 암호화 및 개별 파일 암호화가 포함된다. 하드웨어 솔루션은 오팔(Opal) 스토리지 사양과 같은 전체 디스크 암호화로 제공되며 상업용 SSD는 오팔 스토리지 사양의 요구 사항을 구현한다.Confidentiality aims to prevent attackers from reading user data, which is supported by encryption. Software and hardware technologies exist that encrypt user data. Software solutions include full disk encryption and individual file encryption. Hardware solutions are provided with full disk encryption, such as the Opal storage specification, and commercial SSDs implement the requirements of the Opal storage specification.

무결성은 사용자의 의도 없이 사용자 데이터가 수정될 때마다 이를 통지하는 것을 목표로 한다. 무결성을 제공하는 것은 의도하지 않은 사용자 데이터 수정을 탐지하기가 어렵기 때문에 어려운 작업이다. 사용자가 실행하는 프로그램은 사용자가 소유한 모든 파일을 수정할 수 있다. 악의적인 프로그램이 사용자 ID로 실행되면 파일을 수정할 수 있다. 이러한 공격을 방지하기 위해 데이터를 수정할 수 있도록 허용된 화이트리스팅(whitelisting) 응용 프로그램이 소프트웨어 보호를 제공하며, 화이트리스팅이 아닌 응용 프로그램은 탐지되어 파일을 수정할 수 없게 된다.Integrity aims to notify you whenever user data is modified without your intention. Providing integrity is a difficult task because it is difficult to detect unintended user data modifications. The program you run can modify any file you own. If a malicious program runs under a user ID, the file can be modified. To prevent this attack, whitelisting applications that are allowed to modify the data provide software protection, and non-whitelisting applications are detected and unable to modify the file.

마지막으로, 가용성은 서비스 중단 없이 사용자에게 데이터에 대한 액세스를 제공하는 것을 목표로 한다. 안타깝게도 위협 모델에 손상된 운영체제가 포함되어 있는 경우 불가능하지는 않더라도 데이터 가용성을 제공하는 것은 어렵다. 손상된 운영체제는 매우 일반적인 가정이므로 가용성을 제공하는 것은 어렵다.Finally, availability aims to provide users with access to data without disrupting service. Unfortunately, if the threat model includes a corrupted operating system, it is difficult to provide data availability, if not impossible. A broken operating system is a very common assumption, so providing availability is difficult.

최근 랜섬웨어 공격이 크게 증가하고 있으며, 랜섬웨어는 일반적으로 사용자 데이터를 암호화하고 사용자 데이터를 해독하기 전에 돈을 요구하거나, 사용자 데이터를 유출하는 다른 유형의 공격도 존재한다. 랜섬웨어 공격은 기밀성, 무결성 및 데이터 가용성 보호를 통해 데이터 보호의 필요성을 강조한다.Recently ransomware attacks have increased significantly, and ransomware generally requires money before encrypting and decrypting user data, or other types of attacks that leak user data. Ransomware attacks emphasize the need for data protection through confidentiality, integrity and data availability protection.

사용자 데이터를 보호하기 위해 많은 연구들이 존재한다. 기존의 안티 바이러스는 알려진 위협으로부터 보호하기 위해 알려진 랜섬웨어 패턴을 추가하고, 일부 안티 바이러스는 동작 기반 탐지 메커니즘을 추가한다. 더 나아가, 안티 바이러스 회사는 사용자 지정 디렉토리 내의 파일에 대한 액세스를 엄격하게 제어하여 랜섬웨어 방지 솔루션을 도입하고 있다.Many studies exist to protect user data. Traditional antivirus adds known ransomware patterns to protect against known threats, and some adds behavior-based detection mechanisms. Furthermore, antivirus companies are introducing ransomware protection solutions by tightly controlling access to files in custom directories.

관련하여 시스템의 하부(lower part)에서 멀웨어 탐지에 접근하려는 시도 또한 존재한다. 열기, 생성, 삭제 등과 같은 파일 작업의 패턴을 검사함으로써 알려지거나 알려지지 않은 랜섬웨어를 성공적으로 탐지할 수 있다.Relatedly, there are also attempts to access malware detection at the lower part of the system. By examining patterns in file operations such as open, create, and delete, you can successfully detect known or unknown ransomware.

그러나 상기한 접근 방식들은 모두 제대로 작동하는 운영체제에 의존하고 있다. 손상된 운영체제는 프로세스를 탐지하는 멀웨어를 단순히 중지 시키거나, 랜섬웨어 증명 솔루션이 설정한 액세스 제어를 무시할 수 있다. 여기서 공격자에게 권한을 부여하는 취약점이 존재하며, 공격자는 탐지 및 보호 소프트웨어를 무효화하기 위한 조치를 취할 수 있다.However, all of these approaches rely on operating systems to work properly. A compromised operating system can simply stop the malware detecting the process or bypass the access control set by the ransomware proof solution. There are vulnerabilities that authorize attackers, who can take steps to invalidate detection and protection software.

그러므로, 사용자 공간 및 권한이 부여된 소프트웨어에 대한 모든 공격으로부터 사용자 데이터를 보호하는 수단이 필요하다.Therefore, there is a need for a means of protecting user data from all attacks on user space and authorized software.

SSDSSD

SSD는 랜섬웨어에 대한 안전 조치를 탐지하고 취하기에 훌륭한 장치이다. SSD는 NAND 플래시 칩을 스토리지로 사용하여 데이터를 저장한다. SSD는 기존 하드 디스크 드라이브를 교체하거나 이와 함께 이용되고 있으며, 플래시 변환 레이어(FTL)는 SSD와 기존 HDD 사이에 필요한 호환성을 제공하기 위해 이용되고 있다. NAND 플래시는 페이지를 '쓰기'할 수 있는 특성이 있지만, 일단 쓰기가 수행되면 다시 쓰기가 수행되기 전에 지워져야 한다. 삭제 프로세스는 블록 단위로 이루어지며 페이지의 쓰기 단위보다 훨씬 더 크다. 이러한 NAND 플래시의 특징은 SSD에서 기존 데이터의 쓰기, 새 영역의 쓰기, 나중에 삭제될 데이터 일련의 수집을 필요로 한다. 또한, NAND 스토리지는 제한된 쓰기 횟수를 가지며 쓰기를 균등하게 평준화하기 위해 쓰기 평준화(write-leveling)가 통합된다. 이러한 특성 모두는 어드레스 재매핑 기능이 필요하다.SSDs are great devices for detecting and taking safety measures against ransomware. SSDs use NAND flash chips as storage to store data. SSDs are used to replace or be used with existing hard disk drives, and the Flash Translation Layer (FTL) is used to provide the necessary compatibility between SSDs and traditional HDDs. NAND flash has the ability to 'write' a page, but once written, it must be erased before it can be rewritten. The delete process is in blocks and is much larger than the write units of a page. These features of NAND flash require the writing of existing data on the SSD, the writing of new areas, and the collection of data to be deleted later. In addition, NAND storage has a limited number of writes and write-leveling is integrated to equalize the writes evenly. All of these features require address remapping.

SSD는 논리적 주소를 물리적인 NAND 주소에 매핑하기 위해 주소 매핑 테이블을 통한 간접 지정이 필요하다. 도 1은 어드레스 재매핑을 설명하기 위한 예시 도면이다. 호스트가 SSD의 물리적 레이아웃을 인식하지 못하기 때문에 호스트에서 SSD로 전송되는 모든 어드레스는 논리적 어드레스이다. SSD 내부 매핑 테이블은 룩업되어(looked up) 논리적 어드레스를 물리적 어드레스로 변환한다(①). 물리적 어드레스가 발견되면 실제 물리적 NAND 페이지가 액세스된다(②).SSDs require indirection through the address mapping table to map logical addresses to physical NAND addresses. 1 is an exemplary diagram for describing an address remapping. Since the host does not know the physical layout of the SSD, every address sent from the host to the SSD is a logical address. The SSD internal mapping table is looked up to convert logical addresses into physical addresses (1). If a physical address is found, the actual physical NAND page is accessed (2).

쓰기가 수행되는 경우 데이터는 실제 물리적으로 쓰여지지 않고 다른 물리적 페이지에 쓰여지며 매핑 테이블은 새 데이터를 표시하도록 업데이트된다. 매핑된 테이블이 업데이트됨에 따라 쓰여진 데이터에 대한 이후의 모든 액세스는 ① 단계와 ② 단계를 따르고 새 데이터로 종료된다. 이전 데이터가 존재하는 페이지는 유효하지 않은 것으로 표시되고 나중에 가비지(garbage)로 수집된다.When a write is performed, the data is not actually written physically, but is written to another physical page, and the mapping table is updated to show the new data. As the mapped table is updated, all subsequent accesses to the written data follow steps ① and ② and terminate with the new data. Pages with previous data are marked invalid and are later collected in garbage.

매핑, 가비지 수집, 웨어 레벨링 등을 가능하게 하기 위해 SSD는 이러한 작업을 처리하는 컨트롤러를 갖추고 있다. 이 컨트롤러는 계산 기능을 가지고 있는데, 최근 SSD 제조업체에서 SSD에서 일부 추가 하드웨어 로직과 함께 이러한 계산 기능을 사용하여 데이터를 처리할 것을 제안하고 있다.To enable mapping, garbage collection, and wear leveling, SSDs have controllers to handle these tasks. The controller has computational capabilities, and SSD manufacturers have recently suggested using SSDs to process data with some additional hardware logic.

SSD에 필요한 어드레스 재매핑 및 계산 기능을 사용하여 데이터 가용성을 강화할 수 있다. 따라서 본 발명에서는 전체 소프트웨어가 손상된 경우에도 신뢰할 수 있는 루트 역할을 수행하며 사용자 데이터 보호에 적극적인 역할을 수행하는 새로운 종류의 스토리지인 데이터 가용성을 위한 SSD 즉, DA-SSD를 제안한다.Address remapping and calculations required for SSDs can be used to enhance data availability. Accordingly, the present invention proposes a SSD for data availability, a DA-SSD, which is a new type of storage that plays a role of being a reliable root even when the entire software is damaged and plays an active role in protecting user data.

이하에서는 데이터 가용성을 정의하고 데이터 가용성을 지원하기 위한 SSD의 설계 목표 및 과제를 제시한다.The following describes the design goals and challenges of SSD to define data availability and support data availability.

데이터 가용성Data availability

데이터 가용성은 새로운 보안 요구 사항으로, 이는 저장 시스템에 대한 가용성의 하위 분야이며 랜섬웨어 공격이 있는 경우에도 데이터 보존을 목표로 한다.Data availability is a new security requirement that is a subfield of availability for storage systems and aims to preserve data even in the event of ransomware attacks.

데이터 가용성에 대한 본 발명에서의 정의는 다음과 같다: 데이터는 보존되며 시스템이 안전한 상태에 있을 때, 즉 클린 룸 환경에서 또는 악성 코드와 같은 악의적인 공격으로부터 복구된 경우 액세스 될 수 있다. 저장 시스템의 일반적인 가용성은 스토리지가 정확하게 요청된 데이터를 제공하면서 항상 액세스 가능하도록 요구한다. 일반 가용성과는 달리, 데이터 가용성은 클린 시스템에 연결되면 복구될 수 있는 스토리지의 데이터 보존 범위를 제한한다.The definitions in the present invention for data availability are as follows: Data is preserved and can be accessed when the system is in a safe state, ie in a clean room environment or when recovered from malicious attacks such as malicious code. The general availability of storage systems requires storage to be always accessible while providing the exact data requested. Unlike general availability, data availability limits the data retention range of storage that can be recovered when connected to a clean system.

최근 데이터 가용성을 지원하기 위한 많은 솔루션이 제안되고 있다. 연속 데이터 보호(CDP) 솔루션은 자동으로 시스템의 변경 사항에 대한 백업 사본을 작성하고, 이러한 솔루션을 통해 시스템 관리자는 이전 버전의 데이터로 데이터를 복원할 수 있다. 그러나 CDP 솔루션은 악의적인 관리자나 손상된 운영체제에 의해 방해받을 수 있다. 관리자는 그러한 소프트웨어 기반 보호 메커니즘을 비활성화 할 수 있으며, 운영체제 커널은 백업 복사본을 만들지 않을 수 있으므로 사용자 데이터는 안전하지 않게 된다.Many solutions have recently been proposed to support data availability. The Continuous Data Protection (CDP) solution automatically creates a backup copy of changes made to the system, which allows the system administrator to restore data to previous versions of the data. However, CDP solutions can be hindered by malicious administrators or compromised operating systems. Administrators can disable such software-based protection mechanisms, and the operating system kernel may not make backup copies, making user data insecure.

설계 목표Design goals

본 발명에서는 취약한 운영체제에서도 데이터 가용성을 제공하기 위해 데이터 가용성을 위한 SSD(DA-SSD)를 제안한다. DA-SSD는 SSD의 처리 기능을 사용하여 저장된 데이터를 안전하게 보존한다. NDP(Near Data Processing)의 형태로 SSD에 존재하는 데이터를 계산하기 위해 SSD 내의 처리 장치를 사용하는 연구가 존재한다. 본 발명에서는 데이터 처리에 가능한 계산을 사용하는 대신, 계산 기능을 사용하여 SSD에 저장된 데이터에 대한 추가적인 보안 레이어를 제공하는 방법을 제안한다.The present invention proposes an SSD (DA-SSD) for data availability in order to provide data availability even in a weak operating system. DA-SSD uses SSD's processing function to keep stored data safe. There is a study using processing devices in SSDs to calculate data present in SSDs in the form of Near Data Processing (NDP). The present invention proposes a method of providing an additional layer of security for data stored in an SSD by using a calculation function instead of using calculations possible for data processing.

DA-SSD는 랜섬웨어가 존재하는 상태에서 사용자 데이터의 데이터 가용성을 보호한다. DA-SSD는 디스크 쓰기 작업과 같은 잠재적인 랜섬웨어를 탐지하고 데이터 가용성을 보호하기 위한 방어 조치를 취한다. 사용자 데이터는 안전하게 백업/버전되며 사용자는 의심스러운 활동에 대해 안전하게 통보 받고 의심스러운 활동이 악의적인지 또는 양성인지에 대한 결정을 요청 받는다. 악의적인 경우, 백업/버전된 데이터는 올바른 상태로 롤백되는데 사용된다. DA-SSD는 경보가 발령된 후 실제 악의적인 활동에 의해 경보가 발생하는지 여부를 결정하기 위해 사용자 조치를 필요로 할 수 있다.DA-SSD protects the data availability of user data in the presence of ransomware. DA-SSD detects potential ransomware such as disk writes and takes protective measures to protect data availability. User data is safely backed up / versioned and the user is safely notified of the suspicious activity and asked to determine whether the suspicious activity is malicious or benign. In the malicious case, the backup / versioned data is used to roll back to the correct state. The DA-SSD may require user action to determine whether the alert is caused by actual malicious activity after the alert is issued.

DA-SSD의 중요한 목표는 운영체제가 손상된 경우에도 데이터 가용성 보호를 제공하는 것이다. 이러한 자율적인 데이터 보호를 가능하게 하기 위해 DA-SSD의 데이터 보호 기능은 SSD 경계 내에서만 실행되며 악의적인 운영체제에 의해 중단될 수 없다.An important goal of DA-SSD is to provide data availability protection even if the operating system crashes. To enable this autonomous data protection, DA-SSD's data protection functions run only within SSD boundaries and cannot be interrupted by malicious operating systems.

도 2는 DA-SSD와 호스트 시스템의 전체 개요도를 도시한 것이다.2 shows an overall schematic diagram of a DA-SSD and a host system.

도 2에 도시한 바와 같이 DA-SSD는 시스템의 주변 장치이며 PCIe 또는 SATA 버스를 통해 호스트 시스템에 연결된다. DA-SSD는 작업을 실행하고 SSD 성능을 향상시키기 위해 컨트롤러가 사용하는 NAND 플래시 칩, SSD 컨트롤러 및 DRAM으로 구성된다.As shown in FIG. 2, the DA-SSD is a peripheral device of the system and is connected to the host system through a PCIe or SATA bus. The DA-SSD consists of a NAND flash chip, an SSD controller, and a DRAM that the controller uses to run tasks and improve SSD performance.

기밀성 및 무결성 지원은 기존 방법을 채택함으로써 달성될 수 있으므로 본 발명에서는 데이터 가용성에 대한 지원에 중점을 둔다. 예를 들어, 스토리지는 사용자 응용 프로그램에서 생성된 메시지 인증 코드(MAC)와 함께 암호화된 파일을 수동적으로 저장할 수 있다. 최근의 하드웨어 기반 TEE(Trusted Execution Environment)는 권한이 부여된 소프트웨어에 의해 손상될 수 없는 사용자 응용 프로그램에 대한 격리된 실행을 제공할 수 있다. 사용자 레벨 응용 프로그램 또는 라이브러리 파일 시스템은 TEE 내의 파일을 암호화하여 스토리지에 저장할 수 있다. 그러나, 종래의 방식은 데이터가 실제로 스토리지에 기록되거나 저장된 데이터가 운영체제에 의해 수정되지 않도록 하는 어떠한 메커니즘도 제공하지 않는다.Since confidentiality and integrity support can be achieved by adopting existing methods, the present invention focuses on support for data availability. For example, the storage can manually store encrypted files with a message authentication code (MAC) generated by a user application. Modern hardware-based Trusted Execution Environments (TEEs) can provide isolated execution for user applications that cannot be compromised by authorized software. User-level application or library file systems can encrypt files in the TEE and store them in storage. However, the conventional approach does not provide any mechanism by which the data is actually written to storage or stored data is not modified by the operating system.

위협 모델(Threat Model)Threat Model

본 발명에서는 전체 소프트웨어 스택이 손상될 수 있는 위협 모델을 가정한다. 운영체제 및 응용 프로그램은 원격 코드 실행 및 권한 상승 공격(privilege escalation attacks)과 같은 모든 유형의 소프트웨어 공격에 취약하다. 운영체제와 응용 프로그램 모두는 사용자 데이터에 대한 공격의 근원이 될 수 있다. 도 2에서 호스트 시스템에 속하는 영역은 신뢰할 수 없다.The present invention assumes a threat model in which the entire software stack can be compromised. Operating systems and applications are vulnerable to all types of software attacks, such as remote code execution and privilege escalation attacks. Both operating systems and applications can be the source of attacks on user data. In FIG. 2, an area belonging to the host system is not reliable.

본 발명에서는 랜섬웨어 공격이 시작되기 전에 DA-SSD와 호스트가 초기에 설정되어 있고 사용자 데이터의 상태가 올바른 것으로 가정한다. DA-SSD와 호스트가 설정되고 올바른 사용자 데이터가 DA-SSD에 저장되면 DA-SSD는 손상된 호스트에서 발생한 모든 데이터 수정 공격으로부터 보호할 수 있다.In the present invention, it is assumed that the DA-SSD and the host are initially set before the ransomware attack is started, and the state of the user data is correct. Once the DA-SSD and host are configured and the correct user data is stored on the DA-SSD, the DA-SSD can protect against any data modification attacks from the compromised host.

본 발명에서는 데이터 가용성 이외에 일반적인 가용성 공격에 대한 보호를 제공하지 않는다. 운영체제는 DA-SSD를 차단하고 DA-SSD의 읽기 및 쓰기가 서비스 거부, 가용성 공격을 일으키는 것을 막을 수 있다. 시스템이 안전한 상태로 복귀할 때 데이터 가용성을 보장한다. SSD에 대한 직접적인 물리적 공격을 가정하지는 않지만, 보안 컴퓨팅 장치에서 사용되는 SSD 장치에 대한 적절한 패키징 지원을 통해 물리적 공격으로부터 SSD를 보호할 수 있다.The present invention does not provide protection against general availability attacks other than data availability. The operating system can block the DA-SSD and prevent DA-SSD reads and writes from causing denial of service and availability attacks. Ensure data availability when the system returns to a safe state. Although we do not assume direct physical attacks on SSDs, we can protect them from physical attacks through proper packaging support for SSD devices used in secure computing devices.

SSD 제조업체는 Intel SGX에서 지원하는 DAA(Direct Anonymous Attestation) 방식과 유사하게 각 SSD에 인증 서비스를 제공한다고 가정한다. 사용자 모바일 장치에 대한 보안 통지를 위해 공급 업체는 사용자에게 원격 메시지 릴레이 서비스도 제공한다.SSD makers assume that they provide authentication services for each SSD, similar to the Direct Anonymous Attestation (DAA) approach supported by Intel SGX. For security notifications to users' mobile devices, vendors also provide users with remote message relay services.

DA-DA- SSDSSD

도 3은 DA-SSD의 전체 구조를 도시한 것이다.Figure 3 shows the overall structure of the DA-SSD.

도 3에 도시된 바와 같이, DA-SSD는 여전히 블록 저장 장치로 작동하여 파일 시스템으로부터 블록 읽기/쓰기 요청을 수신한다. 그러나 자체 자율적인 보안 기능을 나머지 시스템과 분리한다. DA-SSD를 설계하고 구현하는 데에는 몇 가지 과제가 존재한다.As shown in Fig. 3, the DA-SSD still operates as a block storage device to receive a block read / write request from the file system. However, it separates its autonomous security from the rest of the system. There are several challenges in designing and implementing DA-SSDs.

DA-SSD 설계를 위해 해결해야 할 다음과 같은 5가지 설계 과제가 존재한다.There are five design challenges to be addressed for DA-SSD design.

① DA-SSD는 각 SSD 내에서 루트 신뢰를 가지고 신뢰할 수 있어야 한다. 고유한 개인 및 공개 키 쌍이 포함된 각 SSD는 사용자로부터 증명되어야 하며 SSD 제조업체는 SSD의 신뢰성을 확인해야 한다.① DA-SSD must be reliable with root trust in each SSD. Each SSD with a unique private and public key pair must be proved by the user and the SSD manufacturer must verify the authenticity of the SSD.

② DA-SSD는 사용자와 SSD간에 명령 또는 메시지를 전달하는 메커니즘을 제공해야 한다. 의심스러운 활동은 운영체제가 손상 되더라도 사용자에게 안전하게 알려져야 한다. 사용자 응용 프로그램이 하드웨어 TEE에서 실행중인 경우, 통신 채널이 설정되면 사용자와 DA-SSD 간의 직접 통신이 가능하다.② DA-SSD must provide a mechanism for transferring commands or messages between the user and SSD. Suspicious activity should be known to the user safely even if the operating system is corrupted. If the user application is running on a hardware TEE, direct communication between the user and the DA-SSD is possible once the communication channel is established.

③ 현재 스토리지 아키텍처에서 DA-SSD는 블록 장치이다. SSD에서 직접 사용할 수 있는 높은 레벨의 파일 시스템 시멘틱이 존재하지 않으면, 호스트에서 블록 장치로 전송되는 내용을 식별하는데 한계가 있다. 이 한계를 극복하기 위해 DA-SSD는 제한된 정보를 사용하여 높은 레벨의 의미를 추론해야 한다.In the current storage architecture, the DA-SSD is a block device. If there is no high level file system semantics available directly on the SSD, there is a limit to identifying what is sent from the host to the block device. To overcome this limitation, DA-SSDs have to deduce a higher level of meaning using limited information.

④ DA-SSD는 데이터 버전을 효율적으로 관리해야 한다. 데이터에 대한 의심스러운 활동이 감지되면 DA-SSD는 중요한 성능 오버 헤드를 발생시키지 않고 나중에 복구될 데이터의 손상되지 않은 버전을 저장해야 한다.④ DA-SSD must manage data version efficiently. If suspicious activity on the data is detected, the DA-SSD must save an undamaged version of the data to be recovered later without incurring significant performance overhead.

⑤ DA-SSD는 사용자 데이터에 대한 랜섬웨어 공격을 탐지하는 메커니즘을 제공해야 한다. 탐지 메커니즘은 데이터 버전 관리를 트리거하여 사용자에게 의심스러운 활동을 경고하는데 가능한 한 거짓 경고를 줄여야 한다.⑤ DA-SSD must provide mechanism to detect ransomware attack on user data. The detection mechanism should trigger data versioning to alert the user to suspicious activity and reduce false alarms as much as possible.

이하에서는 DA-SSD의 5가지 설계 과제에 대한 솔루션에 대해 설명하기로 한다.Hereinafter, solutions for the five design challenges of DA-SSD will be described.

신뢰 루트를 가진 DA-DA- with root of trust SSDSSD

데이터 가용성을 지원하기 위해 DA-SSD는 손상된 운영체제 하에서도 사용자와 안전하게 통신할 수 있어야 한다. 또한, 사용자는 현재 SSD가 데이터 가용성 기능(도 3에서 ①로 표시됨)을 지원하는 신뢰할 수 있는 제조업체의 정품 DA-SSD인지 여부를 확인할 수 있어야 한다. SSD와 사용자 간에 이러한 증명 및 보안 통신을 제공하기 위해 각 DA-SSD에는 개인 및 공개 키 쌍이 할당되어 각 SSD에서 데이터 가용성을 위한 신뢰 루트(root-of-trust)를 구축할 수 있다.To support data availability, DA-SSDs must be able to communicate securely with users under compromised operating systems. In addition, the user should be able to determine whether the current SSD is a genuine DA-SSD from a trusted manufacturer that supports the data availability feature (indicated by ① in FIG. 3). To provide this proof and secure communication between the SSD and the user, each DA-SSD can be assigned a private and public key pair to establish a root-of-trust for data availability on each SSD.

신뢰 루트를 내장하기 위해 DA-SSD는 최근의 신뢰할 수 있는 컴퓨팅 기술에 사용되는 메커니즘을 채택한다. 기존의 신뢰할 수 있는 플랫폼 모듈(TPM)은 DA-SSD에 내장될 수 있으며, SSD 제조업체는 DA-SSD에 대한 인증 서비스를 제공하여 TPM이 정품 SSD에서 사용되는지 확인한다. 또한, DA-SSD가 올바르게 작동하는지를 사용자가 확인하도록 하기 위해 DA-SSD가 변경되지 않았음을 요청자에게 알리는 원격 인증이 요청되고, 실행중인 소프트웨어는 의도된 바이너리이다. TPM이 내장된 DA-SSD 컨트롤러는 BIOS 및 컨트롤러 바이너리의 무결성을 확인하고 원격 요청자와 통신한다.To embed the root of trust, DA-SSD adopts the mechanisms used in recent trusted computing technologies. Existing Trusted Platform Modules (TPMs) can be built into DA-SSDs, and SSD manufacturers provide certification services for DA-SSDs to verify that TPMs are used in genuine SSDs. In addition, remote authentication is required to inform the requester that the DA-SSD has not been altered to allow the user to verify that the DA-SSD is operating correctly, and the running software is the intended binary. DA-SSD controllers with a TPM verify the integrity of the BIOS and controller binaries and communicate with remote requesters.

DA-SSD 내에서 신뢰 루트를 구현함으로써 DA-SSD 내에서 하드웨어 신뢰 루트를 생성한다. DA-SSD는 각 SSD에 할당된 개인/공개 키를 사용하여 사용자와의 안전한 통신을 지원할 수 있고 SSD의 무결성 등을 자체적으로 점검하고 점검 결과를 포함한 알림을 제공할 수 있다. 사용자에 대한 이러한 보안 통신 채널은 의심스러운 활동에 대해 사용자에게 알리거나 사용자로부터 데이터 쓰기를 확인하는데 필수적이다.Create a hardware root of trust in the DA-SSD by implementing a root of trust in the DA-SSD. The DA-SSD can use the private / public key assigned to each SSD to support secure communication with the user, and can check the integrity of the SSD itself and provide a notification including the check result. This secure communication channel to the user is essential for notifying the user of suspicious activity or confirming data writes from the user.

DA-DA- SSD와의With SSD 보안 통신 Secure communication

DA-SSD는 다음과 같은 두 가지 이유로 통신 기능이 필요하다: 첫째, DA-SSD를 신뢰할 수 있게 하기 위하여 원격 인증이 요구되고, 둘째, DA-SSD는 사용자에게 적절한 알림 및 경고를 전송하고 잠재적인 위험 활동을 차단하며, 사용자로부터 명령을 받아 사용자의 의사 결정을 요구하는 상황을 해결하기 위해 사용자와 통신해야 한다. 보안 통신 기능은 도 3에서 ②로 표시된다. 개별 사용자가 DA-SSD와 직접 통신할 수 없기 때문에 공급 업체 또는 서드파티(3rd party)는 각 사용자에게 메시지 릴레이 서비스를 제공한다. 사용자는 DA-SSD를 원격으로 인증하고 신뢰할 수 있는 원격 서버를 통해 알림을 수신한다. 원격은 DA-SSD의 접촉 지점(point of contact)을 유지하고 접촉 정보를 사용하여 릴레이 메시지를 사용자에게 전송한다. 사용자는 다양한 미디어를 사용하여 경고를 수신하고 명령을 전송할 수 있다. 앱이 설치된 휴대 전화 또는 웹 서비스를 사용할 수 있다.The DA-SSD requires communication capabilities for two reasons: first, remote authentication is required to trust the DA-SSD, and second, the DA-SSD sends appropriate notifications and alerts to the user and potential Block dangerous activities and communicate with users to resolve situations that require orders from users and require their decisions. The secure communication function is indicated by ② in FIG. 3. Because individual users to communicate directly with the DA-SSD supplier, or a third party (3 rd party) gives a message relay service to each user. The user remotely authenticates the DA-SSD and receives notifications through a trusted remote server. The remote maintains the point of contact of the DA-SSD and sends a relay message to the user using the contact information. The user can use various media to receive alerts and send commands. You can use a cell phone or web service with the app installed.

DA-SSD의 통신 기능에는 운영체제 측 드라이버의 지원이 필요하다. DA-SSD 드라이버는 DA-SSD와 데이터를 송수신하기 위하여 운영체제에서 구동될 것이며, NIC를 통해 신뢰할 수 있는 원격지로 릴레이한다. DA-SSD는 원격지에 대한 주기적인 하트비트(heartbeat) 메시지를 생성하고, 드라이버는 하트비트 메시지를 주기적으로 발송할 것이다. DA-SSD에서 생성된 다른 경고가 존재하거나 동작에 대해 들어오는 요청이 존재하면 원격지로부터 전송되는 증명 요청 또는 사용자 명령이든 간에 드라이버는 메시지를 적절히 릴레이한다.The communication function of DA-SSD requires the support of an operating system driver. The DA-SSD driver will run in the operating system to send and receive data to and from the DA-SSD and relay it to a reliable remote location through the NIC. The DA-SSD will generate a periodic heartbeat message to the remote, and the driver will send a heartbeat message periodically. If there are other alerts generated by the DA-SSD or there is an incoming request for operation, the driver relays the message as appropriate, whether it is a proof request or a user command sent from a remote location.

통신 기능은 손상된 운영체제에 의한 공격을 견딜 필요가 있다. 본 발명의 위협 모델에는 손상된 시스템이 포함되어 있기 때문이다. 들어오고 나가는 메시지의 기밀성 및 무결성 문제를 해결하기 위해 DA-SSD의 TPM은 암호화하고 무결성 검사를 메시지에 추가한다. 신뢰할 수 있는 원격지 또는 DA-SSD를 떠나는 모든 메시지는 공격자가 위조할 수 없으므로 메시지의 변경은 수신 측에서 탐지될 수 있다.The communication function needs to withstand attacks by a corrupted operating system. This is because the threat model of the present invention includes a compromised system. To address the confidentiality and integrity issues of incoming and outgoing messages, the DA-SSD's TPM encrypts and adds integrity checks to the messages. Any message leaving a trusted remote or DA-SSD cannot be forged by an attacker, so changes in the message can be detected at the receiving end.

가용성은 더 어려운 과제이다. 운영체제가 손상된 경우 운영체제는 DA-SSD에 대해 생성되거나 바인딩된 메시지를 송수신하는 것을 거부하도록 선택할 수 있다. 이 경우 DA-SSD와 원격(remote) 서버는 통신할 수 없다. 원격은 주기적인 하트비트가 거부되고 사용자가 지정한 매체를 통해 사용자에게 경고할 것임을 알린다. 사용자는 시스템이 올바르게 작동하는지 확인해야 하며, 그렇지 않은 경우 시스템을 올바른 상태로 복원하는데 필요한 조치를 취해야 한다. 호스트 시스템의 성공적인 종료와 통신 차단을 구별하기 위해 드라이버는 전원 켜기 및 전원 끄기 관련 메시지를 원격 서버로 전송한다. 전원 끄기 메시지 후에 하트비트가 누락되면 하트비트의 누락은 자연스러운 현상이므로 사용자에게 경고하지 않는다.Availability is a more difficult task. If the operating system is corrupted, the operating system may choose to refuse to send or receive messages generated or bound to the DA-SSD. In this case, the DA-SSD and the remote server cannot communicate. The remote informs the user that periodic heartbeats will be rejected and will alert the user through the user specified medium. The user must verify that the system is functioning correctly, or take the necessary steps to restore the system to its correct state. To distinguish between a successful shutdown of the host system and a loss of communication, the driver sends power-on and power-off messages to the remote server. If the heartbeat is missing after the power off message, the heartbeat is not natural and the user is not alerted.

마지막으로, DA-SSD가 메시지가 원격으로 전송되지 않고 원격에서 응답(ack) 메시지가 없음을 감지하면 DA-SSD는 현재 운영체제에 의해 네트워크 접근을 제한 당하고 있다고(Denial of Service, DoS) 판단할 수 있으며, 이때 네트워크 접근을 제한 당하고 있다고 판단되면 현재 상태의 스냅 샷을 생성하고 정상적으로 기능을 유지한다.Finally, if the DA-SSD detects that a message is not sent remotely and there is no ack message remotely, the DA-SSD may determine that the network is currently restricted by the operating system (Denial of Service (DoS)). If it is determined that network access is restricted, a snapshot of the current state is created and the function is maintained normally.

DA-SSD는 호스트 시스템의 네트워크 인터페이스 카드를 사용하여 외부(사용자 및 신뢰할 수 있는 원격 서버)와 통신한다. DA-SSD 운영체제 드라이버는 DA-SSD와의 메시지 릴레이를 담당한다. 손상된 운영체제는 운영체제 드라이버를 공격할 수 있지만, 본 발명에서는 이러한 공격으로부터 시스템을 보호하는 메커니즘을 도입한다.The DA-SSD communicates with the outside (users and trusted remote servers) using the network interface card of the host system. The DA-SSD operating system driver is responsible for message relay with the DA-SSD. A compromised operating system can attack operating system drivers, but the present invention introduces a mechanism to protect the system from such attacks.

보안 사용자 TEE와 DA-SSD 간의 신뢰 구축: Intel SGX와 같은 신뢰할 수 있는 사용자 실행 환경(TEE)이 지원되는 경우 신뢰할 수 있는 사용자 실행은 DA-SSD와 직접 통신할 수 있다. 인텔 SGX의 용어를 사용하여 보안 실행 환경을 간결하게 'enclave'로 지칭한다. DA-SSD를 사용하여 enclave를 설정할 때, 사용자 공간 enclave와 DA-SSD는 실제로 서로 통신하고 있는지 확인하기 위해 신뢰를 구축해야 한다. 이 단계는 운영체제 중간자 공격(OS-in-the-middle attack)의 가능성을 막으려고 시도한다. enclave와 DA-SSD 사이의 신뢰 설정은 사용자가 DA-SSD 보안 통신에 사용하는 것과 동일한 신뢰할 수 있는 원격 서버를 통해 수행된다.Trust establishment between secure user TEE and DA-SSD: If a trusted user execution environment (TEE) such as Intel SGX is supported, trusted user execution can communicate directly with the DA-SSD. The term Intel SGX is used to refer to the secure execution environment simply as an enclave. When setting up an enclave using a DA-SSD, the user space enclave and the DA-SSD must establish trust to ensure that they are actually communicating with each other. This step attempts to prevent the possibility of an OS-in-the-middle attack. The establishment of trust between the enclave and the DA-SSD is done through the same trusted remote server that the user uses for DA-SSD secure communication.

DA-SSD와의 보안 검증 및 통신 수단을 도입함에 따라 이 통신 채널을 사용하여 키를 교환한다. enclave는 원격 서버의 사전 설치된 공개 키를 사용하여 보안 채널을 설정한다. 먼저, 원격 증명 요청이 실행되고, enclave는 원격의 공개 키를 사용하여 증명 요청을 확인한다. Enclave가 원격에서 릴레이된 메시지를 기반으로 DA-SSD가 올바르게 작동하는지 여부를 확인한 후에는 DA-SSD와 키를 교환한다. Enclave의 공개 키와 DA-SSD는 신뢰할 수 있는 원격을 통해 교환된다. 키가 교환되면, enclave와 DA-SSD가 설정되고 보안 채널을 통해 통신할 준비가 된다.This communication channel is used to exchange keys as a means of security verification and communication with the DA-SSD. enclave establishes a secure channel using the remote server's pre-installed public key. First, a remote attestation request is executed, and the enclave confirms the attestation request using the remote public key. After the Enclave verifies whether the DA-SSD is operating correctly based on the remotely relayed message, it exchanges the key with the DA-SSD. The enclave's public key and the DA-SSD are exchanged through a trusted remote. When the key is exchanged, the enclave and DA-SSD are established and ready to communicate over a secure channel.

블록 수준 정보로 파일 정보 도출Derivation of file information with block level information

DA-SSD는 DA-SSD에 저장된 데이터를 기반으로 한 파일의 시멘틱 추론에 의존한다. 이하에서는 의심되는 블록에 의해 작성된 파일의 파일 이름을 수집하기 위해 도 3의 ③에서 사용된 것처럼 지정된 논리 블록 번호가 존재하는 경우 파일 이름을 가져 오는 역방향 조회에 대해 설명한다.DA-SSD relies on semantic inference of files based on data stored in DA-SSD. Hereinafter, a reverse lookup for obtaining a file name when a specified logical block number exists as used in 3 of FIG.

SSD는 블록 장치이며, 블록 장치는 파일 시스템 및 파일 I/O 요청의 시멘틱을 제한적으로 볼 수 있다. SSD는 SSD에서 전송되는 블록이나 SSD로 들어오는 블록만 볼 수 있다. DA-SSD는 오프셋 시의 파일에 대한 읽기/쓰기와 같은 파일 시스템 레벨 시멘틱에 대한 액세스 권한을 가지고 있지 않다.SSDs are block devices, and block devices have a limited view of the semantics of file systems and file I / O requests. An SSD can only see blocks that are sent from or coming into an SSD. DA-SSD does not have access to file system level semantics such as read / write to file at offset.

그러나 DA-SSD가 파일 시스템을 분석하고 필요한 정보를 얻는 것은 가능하므로 결국 실제 데이터는 SSD에 존재한다. 디스크의 슈퍼블록에는 파티션 테이블 정보가 들어 있으며 마스터 부트 레코드(MBR) 또는 GUID 파티션 테이블(GPT) 형식을 사용한다. DA-SSD는 디스크 슈퍼블록의 정보를 사용하여 각 파티션의 슈퍼블록을 읽을 수 있다. DA-SSD는 파티션 슈퍼블록에 인코딩된 파일 시스템 유형에 기반하여 파일을 블록 관계로 획득하기 위한 파일 시스템 아이노드(inode)를 찾을 수 있다. 따라서 파일이 주어지면 사용자는 파일을 구성하는 블록을 알 수 있다.However, since it is possible for DA-SSD to analyze the file system and obtain the necessary information, the actual data resides on the SSD. The superblock on the disk contains partition table information and uses the master boot record (MBR) or GUID partition table (GPT) format. The DA-SSD can read the superblock of each partition using the information of the disk superblock. The DA-SSD may find a file system inode for acquiring a file in a block relation based on the file system type encoded in the partition superblock. Thus, given a file, the user knows the blocks that make up the file.

추가 엔지니어링을 사용하면 DA-SSD가 소유자 파일을 역순으로 조회하거나 파일 이름을 지정하여 블록 목록을 열거할 수 있는 역방향 조회(reverse lookup)를 수행할 수도 있다. 호스트 시스템이 블록을 기반으로 DA-SSD I/O 요청을 전송하면 역방향 조회는 기록중인 파일을 나타낸다. 이 정보는 특정 파일이 업데이트되었음을 사용자에게 알리기 위해 DA-SSD가 사용할 수 있으며 파일이 손상되지 않았는지 사용자에게 확인하도록 요청할 수 있다. 이는 도 3에서 점선 화살표로 나타내고 있다. 이 정보는 또한 사용자가 알지 못하는 업데이트를 사용자가 알 수 있게 해줄 수 있는데, 이는 사용자 데이터에 대한 공격일 수 있다.Additional engineering also allows DA-SSD to perform reverse lookups, which can look up the owner file in reverse order or enumerate the block list by specifying the file name. If the host system sends a DA-SSD I / O request on a block basis, the reverse lookup indicates the file being written. This information can be used by the DA-SSD to inform the user that a particular file has been updated and can ask the user to verify that the file is not corrupted. This is indicated by a dashed arrow in FIG. 3. This information can also allow the user to be aware of updates that the user is not aware of, which can be an attack on user data.

이 기능을 위해 DA-SSD는 파일 시스템의 구성을 알아야 한다. 일례로 NTFS 및 ext4 파일 시스템을 사용하였으나 DA-SSD를 확장하여 더 많은 파일 시스템을 인식할 수 있다. 호환성 문제를 방지하기 위해 파일 시스템의 구조가 거의 변경되지 않기 때문에 널리 사용되는 다양한 파일 시스템으로 DA-SSD를 로드할 수 있다. 특정 파일 시스템을 변경하거나 새로운 파일 시스템을 추가해야 하는 경우 DA-SSD 소프트웨어를 업데이트하여 변경 사항을 인식할 수 있다.For this function, the DA-SSD needs to know the file system configuration. For example, we used NTFS and ext4 file systems, but we can extend DA-SSD to recognize more file systems. Since the structure of the file system is rarely changed to prevent compatibility issues, DA-SSDs can be loaded into a variety of widely used file systems. If you need to change a specific file system or add a new file system, you can update the DA-SSD software to recognize the change.

또한, 효율적인 역방향 조회를 위해 DA-SSD는 별도의 역방향 매핑 트리를 유지해야 할 수 있다. 블록 단위로 역방향 트리를 유지하면 매우 큰 트리가 생성된다. 최근에 파일 시스템은 순차 디스크 액세스 성능을 향상시키기 위해 파일의 데이터를 저장하기 위한 대용량의 연속 디스크를 사용하기 시작하였다. Ext4 파일 시스템에서 블록은 'extents'로 구성된다. 구간 트리와 같은 데이터 구조가 역방향 매핑 트리에 사용될 수 있다. 또한, DA-SSD는 슈퍼 블록과 아이노드 블록에 대한 수정 사항을 감시할 수 있으며. 수정이 있을 때마다 DA-SSD는 내부적으로 유지 관리되는 데이터 구조로 변경 사항을 업데이트한다.In addition, for efficient reverse lookup, the DA-SSD may need to maintain a separate reverse mapping tree. Maintaining a reverse tree on a block basis creates a very large tree. Recently, file systems have begun to use large continuous disks to store data in files to improve sequential disk access performance. In the Ext4 file system, blocks are composed of 'extents'. A data structure such as an interval tree can be used for the reverse mapping tree. In addition, DA-SSD can monitor modifications to super blocks and inode blocks. Each time a modification is made, the DA-SSD updates the change with an internally maintained data structure.

DA-SSD는 블록 장치이며, 블록 장치로서의 DA-SSD는 파일 시스템의 시멘틱을 제한적으로 볼 수 있다. 그러나 DA-SSD는 데이터를 보유하고 있는 실제 데이터 저장소이기 때문에 DA-SSD의 계산 단위를 확장하여 DA-SSD에 보관된 데이터를 분석할 수 있다. 기존 체계를 기반으로 데이터가 구조화되어 있기 때문에 DA-SSD는 내부에 저장된 데이터로 파일 시스템을 이해할 수 있다.DA-SSD is a block device, DA-SSD as a block device can see the semantics of the file system limited. However, since the DA-SSD is the actual data store that holds the data, the DA-SSD can be extended to analyze the data stored in the DA-SSD. Since the data is structured based on the existing system, DA-SSD can understand the file system with the data stored internally.

공격에 따른 데이터 보호Data protection following an attack

DA-SSD는 도 3의 ④와 같이 공격이 진행되는 동안 사용자 데이터를 보호하기 위한 메커니즘을 제공해야 한다. 데이터에 대한 공격은 데이터 버전을 생성하거나 주어진 지점에서 제시간에 데이터의 스냅 샷을 만들어 방어될 수 있다. 본 명세서에서는 버저닝과 스냅 샷이라는 용어를 같은 의미로 사용한다. 공격 탐지 메커니즘의 신뢰도에 따라 취해지는 조치는 다를 수 있다. 몇 가지 다른 상황을 살펴보고 나서 마지막으로 사용자 데이터를 보호하는 버저닝 기반 보호 방식을 설명한다.The DA-SSD must provide a mechanism for protecting user data during the attack as in ④ of FIG. 3. Attacks on data can be defended by creating a data version or by taking a snapshot of the data in time at a given point. In this specification, the terms versioning and snapshot are used interchangeably. The action taken depends on the reliability of the attack detection mechanism. Let's look at some other situations, and finally discuss a versioning-based approach to protecting user data.

첫째, 스토리지에 저장된 데이터를 주기적으로 버전 관리하는 것이다. 정기적인 버전 관리는 주어진 간격으로 스냅 샷을 만들고, 보다 빈번한 스냅 샷은 스냅 샷 저장 용량 오버 헤드에서 더 높은 안전성을 제공한다. 용량이 부족한 상태에서 저장이 시작되면 이전 스냅 샷은 새 스냅 샷과 들어오는 디스크 쓰기를 위한 공간을 확보하기 위해 폐기된다. 이 방법은 사용자가 임의의 랜섬된 데이터를 식별하고 이전 버전의 데이터를 복원하는 것에 의존한다. 그러나 암호화된지 오랜 시간이 흐른 후에 사용자가 파일에 액세스하려고 하면 암호화되기 전에 파일을 보유한 버전이 폐기될 가능성이 있다. 또 다른 방법은 디스크를 멈추고 이전 버전을 폐기하겠다는 확인을 사용자에게 요청하는 것이다. 이를 위해서는 사용자가 업데이트된 모든 파일을 살펴보고 예외를 선별해야 하므로 확인해야 할 엄청난 양의 파일로 인해 사용자에게 너무도 큰 부담이 될 수 있다.The first is to periodically version the data stored in the storage. Regular versioning creates snapshots at given intervals, and more frequent snapshots provide higher safety at snapshot storage capacity overhead. If storage starts when there is insufficient capacity, the old snapshot is discarded to make room for new snapshots and incoming disk writes. This method relies on the user identifying any ransomized data and restoring previous versions of the data. However, if a user tries to access a file after a long time since it was encrypted, the version holding the file may be discarded before it is encrypted. Another way is to stop the disk and ask the user to confirm that they want to discard the previous version. This requires the user to look at all the updated files and screen for exceptions, which can be too much of a burden on the user due to the huge amount of files to check.

데이터에 대한 잠재적인 위협을 식별할 수 있는 탐지 메커니즘이 있는 경우 데이터 보호 기능을 향상시킬 수 있다. 다음으로 탐지 메커니즘을 소개한다.If you have a detection mechanism that can identify potential threats to your data, you can improve data protection. Next, we introduce a detection mechanism.

둘째, 공격 탐지 메커니즘이 긍정 오류를 생성할 경우 이하에서 설명하게 될 메커니즘과 마찬가지로 DA-SSD에는 충분한 지식이 없으며 의심스러운 이벤트를 악성 또는 양성으로 판단하지 않는다. 따라서 DA-SSD는 가능한 모든 공격으로부터 사용자 데이터를 보호해야 하며 동시에, 사용자에게 결정을 요청해야 한다. 사용자는 의심스러운 쓰기 엔트로피로 수정된 파일에 대한 알림을 받고 파일을 확인하며 쓰기를 판단하도록 요청 받는다. 따라서, 사용자가 판단을 요구받는 시간 동안 DA-SSD에 대한 데이터 보호가 요구된다.Second, if the attack detection mechanism generates a false positive, the DA-SSD does not have sufficient knowledge and does not judge a suspicious event as malicious or benign, as will be described below. Therefore, DA-SSD must protect user data from all possible attacks and at the same time request the user to make a decision. The user is notified of a file modified with suspicious write entropy, asked to check the file, and determine the write. Therefore, data protection for the DA-SSD is required for a time when the user is requested to make a decision.

사용자가 쓰기가 악의적이라고 결정하면 DA-SSD는 쓰기를 거부하고 사용자는 손상된 시스템을 안전한 상태로 복원하기 위해 조치를 취해야 한다. 또한 사용자는 시스템이 손상되는 동안 읽기 전용 모드에서 DA-SSD의 데이터를 읽을 수 있는 옵션을 갖게 된다. 문제를 해결한 후 사용자가 DA-SSD에 시스템의 안전 상태를 알리면 DA-SSD는 정상적으로 작동할 것이다.If the user decides that the write is malicious, the DA-SSD will refuse to write and the user should take action to restore the compromised system to a safe state. The user also has the option to read data from the DA-SSD in read-only mode while the system is compromised. After fixing the problem, if the user informs the DA-SSD of the system's safety status, the DA-SSD will operate normally.

셋째, 탐지 메커니즘이 많은 샘플을 필요로 한다면 DA-SSD는 검출기가 샘플을 수집하는 동안 데이터를 안전하게 유지할 필요가 있다. 이러한 경우, DA-SSD가 제공하는 데이터 보호가 필수적이다.Third, if the detection mechanism requires many samples, the DA-SSD needs to keep the data safe while the detector collects the sample. In this case, data protection provided by the DA-SSD is essential.

마지막으로, 탐지 메커니즘이 데이터가 공격 받고 있다고 확신한다면 DA-SSD는 모든 쓰기 요청이 NAND 스토리지에 기록되는 것을 중지할 수 있다. 또한, DA-SSD는 호스트 시스템에 I/O 오류를 전송하도록 선택할 수 있으며, 앞에서 설명된 대역 외 통신을 통해 사용자에게 경고 메시지를 전송한다. 이러한 경우 DA-SSD는 악성으로 분류된 쓰기 요청을 거부하여 사용자 데이터를 보호한다.Finally, if the detection mechanism is certain that data is under attack, DA-SSD can stop all write requests from being written to NAND storage. The DA-SSD can also choose to send an I / O error to the host system and send a warning message to the user via the out-of-band communication described above. In this case, DA-SSD protects user data by rejecting write requests classified as malicious.

DA-SSD의 데이터 보호 기능을 사용하는 네 가지 상황은 위에서 설명한 바와 같다. 전반적으로, 데이터 보호는 랜섬웨어로부터 데이터를 보호하기 위해 필수적이다. DA-SSD에는 두 가지 보호 기능이 요구된다. 첫 번째는 쓰기 요구가 NAND 스토리지에 기록되는 것을 거부하는 것이다. 이것은 I/O 스토리지 장치 인터페이스가 호스트 시스템에 I/O 오류를 알리는 기능을 갖추고 있기 때문에 쉬운 부분이다. 두 번째는 잠재적으로 위험한 데이터 업데이트를 허용하면서 데이터를 보호하는 것이다. 본 발명에서는 스냅 샷 및 복구 기반 보호 방법을 사용하여 원본 데이터의 스냅 샷을 만든 후 나중에 들어오는 새로운 쓰기를 DA-SSD에 기록하는 방법을 제안한다.The four situations in which the DA-SSD's data protection feature is used are described above. Overall, data protection is essential to protect data from ransomware. DA-SSD requires two protection functions. The first is to refuse write requests to be written to NAND storage. This is easy because the I / O storage device interface has the ability to notify the host system of I / O errors. The second is to protect the data while allowing potentially dangerous data updates. The present invention proposes a method of taking a snapshot of original data using a snapshot and recovery-based protection method and then recording a new write later on the DA-SSD.

스냅 샷을 사용한 데이터 보호: SSD에는 기존 페이지 장치와의 호환성을 제공하기 위해 페이지 재매핑 기능이 이미 탑재되어 있다. SSD는 NAND 플래시의 쓰기 전 지우기(erase-before-write) 제약으로 인해 기존 페이지에 쓸 수 없다. 따라서 데이터가 제 위치에서 업데이트 될 때마다 데이터는 실제로 다른 빈 페이지에 쓰여지고 매핑 테이블은 페이지의 위치를 새로 작성된 위치로 업데이트한다. 그런 다음 이전 데이터는 유효하지 않은 것으로 표시되고, 후에 가비지 수집 작업에 의해 교정되고 지워진다.Data protection using snapshots: SSDs already come with page remapping to provide compatibility with existing page devices. SSDs cannot write to existing pages due to the erase-before-write constraints of NAND flash. So whenever data is updated in place, the data is actually written to another blank page, and the mapping table updates the page's position with the newly created position. The previous data is then marked invalid and later corrected and erased by the garbage collection operation.

relocate-on-write라고도 불리우는 쓰기 동작은 매우 간단한 스냅 샷 메커니즘을 만들기 위해 활용될 수 있다. 본 발명에서는 스냅 샷 메커니즘을 사용하여 DA-SSD에서 데이터의 버전 관리를 제공한다. DA-SSD는 단조롭게 증가하는 카운터인 글로벌 버전을 유지 관리한다. 매핑 방식이 구현된 DA-SSD의 각 페이지 또는 각 블록에는 작성된 버전과 만료된 버전의 두 가지 버전 번호가 필요하다. DA-SSD에 대한 모든 기록은 현재 글로벌 버전에 기록중인 특정 페이지/블록의 기록된 버전으로 주석을 붙인다. 페이지/블록이 아직 만료되지 않았으므로 만료된 버전은 비어 있다.Write operations, also called relocate-on-write, can be used to create very simple snapshot mechanisms. The present invention provides version control of data in the DA-SSD using a snapshot mechanism. DA-SSD maintains a global version, a monotonically increasing counter. Each page or block in a DA-SSD that implements the mapping method requires two version numbers: a created version and an expired version. All records for the DA-SSD are annotated with the recorded version of the specific page / block currently being written to the global version. The expired version is empty because the page / block has not yet expired.

작성된 버전은 이 페이지/블록이 유효하게 된 버전 번호를 나타낸다. 만료된 버전은 이 페이지/블록이 무효화 된 버전 번호를 나타낸다. 각 블록의 수명은 작성된 버전과 만료된 버전을 사용하여 표시된다. 본 발명에서는 프로세스 당 두 개의 버전 데이터를 저장하기 위해 16비트 값을 사용하는데, 페이지 당/블록 당 추가로 4B의 저장 공간이 필요하다.The created version indicates the version number on which this page / block is valid. Expired version indicates the version number on which this page / block is invalidated. The lifetime of each block is indicated using the created and expired versions. The present invention uses a 16-bit value to store two version data per process, which requires an additional 4B of storage space per page / per block.

스냅 샷 생성: 글로벌 버전을 증가시키면 현재 데이터 상태가 자동으로 스냅 샷되고, DA-SSD에 대한 향후 모든 기록은 새 버전과 함께 쓰여진다. SSD의 쓰기(relocate-on-write) 동작으로 인해 기존 페이지에 대한 모든 업데이트 기록이 새 페이지에 기록될 것이다. 그러나 일반 SSD 또는 동일한 버전 내에서 작성하는 경우와 달리, 새로 작성된 페이지와 이전 페이지의 버전이 다른 경우 이전 페이지는 유효하지 않은 것으로 표시되지 않는다. 이 동작은 도 4의 (b)에 나타나 있다. 대신 이전 페이지는 페이지의 버전을 유지한다. 이전 페이지는 페이지가 폐기되는 경우에만 무효화된다.Snapshot creation: Increasing the global version automatically snapshots the current data state, and all future records for the DA-SSD are written with the new version. Due to the SSD's relocate-on-write operation, all update records for an existing page will be written to a new page. However, unlike when creating a regular SSD or within the same version, the old page is not marked as invalid if the version of the newly created page and the previous page are different. This operation is shown in Fig. 4B. Instead, the previous page keeps a version of the page. The previous page is only invalidated if the page is discarded.

예제를 통해 버전 관리 메커니즘을 설명하면 다음과 같다. 도 4는 다른 I/O 명령에 따른 각 페이지(SSD의 쓰기 단위)의 상태를 나타낸 것으로, 다양한 작업 후 페이지의 변경 사항을 보여준다. 이때, 4개의 페이지 각각은 SSD의 물리적 페이지의 서비스 세트를 나타내고 있다.An example of the version control mechanism is as follows: 4 shows the state of each page (write unit of SSD) according to another I / O command, and shows changes of pages after various operations. In this case, each of the four pages represents a service set of physical pages of the SSD.

도 4의 (a)는 초기 상태를 나타내며, 여기서 논리 페이지(LBA) 2는 좌측 상단의 물리적 페이지에 위치한다. 다른 세 페이지는 프리(free) 페이지이다. DA-SSD는 글로벌 버전을 유지하며 모든 버전은 이 글로벌 버전을 기반으로 한다. 이 예에서 글로벌 버전은 4이다.4 (a) shows an initial state, where logical page LBA 2 is located on a physical page in the upper left corner. The other three pages are free pages. The DA-SSD maintains a global version, and all versions are based on this global version. In this example, the global version is four.

다른 버전의 업데이트: LBA 2에 대한 업데이트가 요청되면 도 4의 (b)와 같이 첫 번째 free 페이지가 기록된다. 쓰기는 글로벌 버전이 4일 때 작성되었으므로 작성된 버전은 4이다. 그러나 페이지가 아직 만료되지 않았으므로 만료된 버전은 공백(제로)으로 남게 된다. 이전 LBA 2(왼쪽 상단)는 덮어 쓰여졌기 때문에 만료되며, 글로벌 버전 4에서 만료되었으므로 만료된 버전은 4로 표시된다. 이때 물리적으로 LBA 2가 있는 두 페이지가 존재한다. DA-SSD는 실제로 매핑 테이블의 가장 최근 페이지를 가리키고 있으므로 이 경우, LBA 2에 대해 오른쪽 상단 페이지를 가리키게 된다.Update of other versions: When an update to LBA 2 is requested, the first free page is recorded as shown in FIG. The write was made when the global version was 4, so the version created is 4. However, because the page has not yet expired, the expired version is left blank (zero). The old LBA 2 (top left) expired because it was overwritten and expired in global version 4, so the expired version is marked as 4. There are two pages with physical LBA 2. The DA-SSD actually points to the most recent page of the mapping table, so in this case, it points to the top right page for LBA 2.

동일한 버전의 업데이트: LBA 2에 대한 다른 업데이트가 동일한 글로벌 버전 4에서 요청되면(도 4의 (c)) 업데이트는 새로운 free 페이지(왼쪽 하단)에 기록된다. 이제 오른쪽 상단 페이지가 음영 처리되어 유효하지 않음을 나타낸다. 동일한 버전으로 페이지를 작성하고 만료된 경우, 페이지는 무효화되고 가비지 수집기가 이 페이지를 수집하여 삭제된다. 이것은 실제로 일반 SSD의 쓰기와 동일한 동작이다.Updates of the same version: If another update to LBA 2 is requested from the same global version 4 (FIG. 4C), the update is written to a new free page (bottom left). The top right page is now shaded to indicate that it is invalid. If you create a page with the same version and it expires, the page is invalidated and the garbage collector collects it and deletes it. This is actually the same behavior as writing to a regular SSD.

도 4의 (d)에서는 LBA 2에 대한 또 다른 업데이트가 요청되었지만 글로벌 버전이 5로 증가되었다. free 페이지가 발견되고(우측 하단) 작성된다. 이제 작성된 페이지는 5이고 이전에 가리키는 페이지(하단 좌측)는 버전 5에서 만료된 것으로 표시된다.In Figure 4 (d) another update to LBA 2 is requested, but the global version has been increased to 5. The free page is found (bottom right) and written. Now the page created is 5 and the previously pointing page (bottom left) is marked as expired in version 5.

폐기 버전: 마지막으로, DA-SSD는 5 이상의 모든 버전을 폐기하라는 명령을 받는다(도 4의 (e)). 이 경우, 버전 5 이전에 작성된 페이지와 버전 5 이전 또는 5에서 만료되는 모든 페이지는 무효화된다. 5보다 오래된 모든 버전이 만료되는 것은 4개 이하의 버전이 더 이상 필요하지 않기 때문이다.Revocation Version: Finally, the DA-SSD is ordered to retire all five or more versions (Fig. 4 (e)). In this case, pages created before version 5 and all pages that expired before or before version 5 are invalidated. All versions older than 5 expire because no more than four versions are needed anymore.

TRIM 작업: SSD의 TRIM 명령을 처리해야 한다. TRIM 명령은 호스트 파일 시스템에서 명령과 함께 전송 된 해당 (논리) 페이지 주소가 더 이상 사용되지 않으며 가비지 수집기가 교정할 수 있음을 SSD에 알리기 위해 사용된다.TRIM task: Must process TRIM command of SSD. The TRIM command is used to inform the SSD that the corresponding (logical) page address sent with the command in the host file system is no longer used and the garbage collector can correct it.

일반 SSD에서 TRIM 명령이 실행(출력)될 때 명령과 함께 제공되는 해당 논리 페이지 주소가 조회되고 가비지가 수집되도록 유효하지 않은 것으로 표시된다. 버전 관리가 도입되면 해당 페이지를 유효하지 않은 것으로 표시하지 않고 현재 글로벌 버전으로 페이지를 만료한다. 작성된 버전과 만료된 버전이 동일하면, 이 동작은 일반 SSD의 TRIM 동작과 일치하므로 페이지를 무효화한다.When a TRIM command is executed (output) on a regular SSD, the corresponding logical page address provided with the command is queried and marked as invalid for garbage to be collected. When versioning is introduced, the page is expired with the current global version without marking the page as invalid. If the created version and the expired version are the same, this operation matches the TRIM behavior of a regular SSD and invalidates the page.

매핑 테이블 관리: DA-SSD의 매핑 테이블은 항상 특정 LBA의 가장 최근 페이지를 가리킨다. 그러나 데이터 공격이 탐지되면 보호된 파일을 복원하거나 액세스하기 위해 시스템을 제 시간에 되돌리거나 DA-SSD의 특정 상태로 되돌려야 한다. 이러한 경우, DA-SSD는 특정 버전에 대한 매핑 테이블을 재구성해야 한다. DA-SSD는 각 물리적 페이지의 작성된 버전과 만료된 버전을 보관하는 두 개의 테이블을 거치게 된다. 또한, 각 물리적 페이지의 논리적 페이지 주소를 보유하는 기존 테이블도 스캔된다. 특정 버전 또는 대상 버전에 대한 매핑 테이블을 재구성 할 때 페이지의 작성된 버전과 만료된 버전이 조회된다. 대상 버전이 작성된 버전보다 크고 만료된 버전이 대상 버전보다 크거나 페이지가 아직 만료되지 않은 경우 논리 페이지 주소를 조회한다. 마지막으로, 재구성된 매핑 테이블은 인덱스로서의 논리 페이지 주소 및 값으로서의 물리적 페이지 번호로 채워진다. 세 개의 테이블을 검사해야 하지만, 재구성은 사용자가 특정 버전을 복원해야 하는 경우에만 수행된다. 이 액션은 드문 경우이므로 큰 비용을 감수할 수 있다.Mapping Table Management: The DA-SSD's mapping table always points to the most recent page of a particular LBA. However, if a data attack is detected, the system must be returned in time or to a specific state of the DA-SSD to restore or access the protected file. In this case, the DA-SSD must reconstruct the mapping table for the particular version. The DA-SSD goes through two tables that hold the created and expired versions of each physical page. In addition, the existing table holding the logical page address of each physical page is also scanned. When reorganizing the mapping table for a specific version or target version, the created and expired versions of the page are retrieved. If the target version is larger than the created version and the expired version is larger than the target version or the page has not yet expired, the logical page address is queried. Finally, the reorganized mapping table is populated with the logical page address as an index and the physical page number as a value. You need to check three tables, but the reorganization is only performed if you need to restore a particular version. This action is rare and can be expensive.

제안된 버전 관리 메커니즘은 성능 측면에서 쓰기가 영향을 받지 않으므로 매우 경량이다. 작성된 버전과 만료된 버전 테이블에 대한 두 번의 추가 쓰기가 필요하지만, 이러한 쓰기는 큰 지연을 유발하지 않는다. 이는 페이지에 대한 쓰기가 물리적 페이지 측면에서 공간적인 지역성을 가지며 테이블이 물리적 페이지의 관점에서 인덱싱되어 컨트롤러 캐시 또는 적어도 SSD의 DRAM의 테이블 항목에 대한 빈번한 히트(hits)의 가능성을 제공하기 때문에 테이블이 캐시될 가능성이 높기 때문이다. 특정 버전으로 롤백하려면 약간의 시간이 소요되는 재구성 맵핑 테이블이 필요하다. 그러나 버전 복원은 자주 발생하지 않고 공격이 발생했을 때만 발생한다. 일반적인 페널티 업데이트가 존재하지 않으며, 느리지만 빈번하지 않은 재구성은 실용적인 디자인 설계 선택이라 할 수 있다.The proposed versioning mechanism is very lightweight because writing is not affected in terms of performance. Two additional writes to the created and expired version tables are required, but these writes do not cause significant delays. This is because the table is cached because writes to the page are spatially localized in terms of physical pages and the table is indexed in terms of physical pages, providing the possibility of frequent hits to the table entries in the controller cache or at least the DRAM of the SSD. Because it is likely to be. Rolling back to a specific version requires some time-consuming reorganization mapping tables. However, version restoration doesn't happen very often, only when an attack occurs. There is no general penalty update, and a slow but infrequent reconstruction is a practical design design choice.

랜섬웨어Ransomware 활동 감지 Activity detection

DA-SSD는 사용자 데이터에 대한 가능한 공격(도 3의 ⑤)을 식별할 수 있어야 한다. DA-SSD는 블록 장치이며 DA-SSD에 기록될 수신 데이터 블록에 대한 가시성이 제한된다. 따라서 기존 기술을 기반으로 한 DA-SSD에 대한 위협 탐지 기능을 사용한다. 위협 탐지의 목적은 블록 장치에 대한 정상 및 악의적인 활동을 구분하는 것이다.The DA-SSD should be able to identify possible attacks (5 in FIG. 3) on user data. The DA-SSD is a block device and the visibility of the received data block to be written to the DA-SSD is limited. Therefore, the threat detection function for DA-SSD based on the existing technology is used. The purpose of threat detection is to distinguish between normal and malicious activity on block devices.

최근 연구에서는 엔트로피 값을 사용하여 악의적인 쓰기를 발견한다. Shannon 엔트로피는 파일을 나타내는 바이트의 다양성이나 불확실성을 나타낸다. Shannon 엔트로피는 수학식 1을 사용하여 계산된다. 각 바이트가 0과 255 사이의 값을 가질 수 있는 바이트 단위의 엔트로피 계산을 사용한다. 4096B의 페이지 엔트로피를 계산하려면 0에서 255 사이의 값이 나타날 때마다 카운트되며, pi는 값이 나타날 확률을 나타낸다.Recent research uses entropy values to detect malicious writes. Shannon entropy represents the diversity or uncertainty of the bytes that represent a file. Shannon entropy is calculated using equation (1). Use entropy calculations in bytes, where each byte can have a value between 0 and 255. To calculate the page entropy of 4096B, each time a value between 0 and 255 is encountered, p i is the probability of the value appearing.

[수학식 1][Equation 1]

Figure pat00001
Figure pat00001

일반적으로 파일은 바이트 표현의 서브 세트만을 사용하기 때문에 일반적인 파일의 엔트로피는 상대적으로 낮아야 한다. 예를 들어, 텍스트 파일이나 소스 코드는 문자(ASCII)의 하위 집합으로 표현되며 알파 숫자는 256 개의 사용 가능한 바이트 값 중 62개의 문자로 제한된다. 이 특성은 파일 엔트로피를 상대적으로 낮게 한다. 반면에, 암호화된 데이터는 높은 다이버시티(diversity) 데이터를 발생시켜 높은 엔트로피 값을 유도한다.In general, files use only a subset of byte representations, so the entropy of a typical file should be relatively low. For example, a text file or source code is represented by a subset of characters (ASCII), and alpha numbers are limited to 62 characters out of the 256 available byte values. This property makes file entropy relatively low. On the other hand, encrypted data generates high diversity data resulting in high entropy values.

엔트로피 값의 블록은 잠재적으로 위험한 디스크 활동을 탐지하는데 사용될 수 있다. 엔트로피 값은 기록중인 블록이 큰 엔트로피 값을 갖는 경우 보안 시스템에 경고하기 위해 사용될 수 있다. 도 3에 도시된 바와 같이, 본 발명에서는 잠재적으로 위험한 블록 쓰기가 데이터 보호 메커니즘을 트리거하고(④) 식별될 수 있도록 대기열에 올려진다(③).Blocks of entropy values can be used to detect potentially dangerous disk activity. The entropy value can be used to alert the security system if the block being written has a large entropy value. As shown in Fig. 3, in the present invention, potentially dangerous block writes are triggered (4) and queued to be identified (3).

본 발명에서는 작성중인 블록의 엔트로피 값을 사용하는 방법을 제안한다. 이전 방법과 달리, 엔트로피 계산기와 감지 메커니즘을 SSD 내부에 구현한다. DA-SSD는 SSD에 쓰여질 호스트 컴퓨터에서 오는 데이터 블록에 액세스한다. 간단한 하드웨어 엔트로피 계산기를 사용하여 비정상적인 기록을 신속하게 감지하고 전력을 효율적으로 소비할 수 있다.The present invention proposes a method of using the entropy value of the block being prepared. Unlike the previous method, the entropy calculator and detection mechanism are implemented inside the SSD. The DA-SSD accesses data blocks from the host computer that will be written to the SSD. A simple hardware entropy calculator can be used to quickly detect abnormal records and consume power efficiently.

실제 사용자 파일의 엔트로피 값을 연구하기 위해 매일 사용되는 문서, 소스 코드, 미디어 파일 등의 파일 엔트로피를 계산하였다. 도 5는 40,000개 이상의 파일을 분석하고 23,000개가 넘는 파일의 엔트로피 분포를 도시한 것이다. 가정과 달리, Microsoft Office 파일 ppt(x), doc(x), xls(x), pdf 문서, 이미지 파일(png, jpg, gif), 미디어 파일(mp3, wma, mp4), 압축 파일(zip, gz) 등과 같은 일반적인 유형의 파일들은 매우 높은 엔트로피 값을 가지고 있다.To study the entropy values of real user files, we calculated the file entropy of documents, source code, media files, and so on. 5 analyzes over 40,000 files and shows the entropy distribution of over 23,000 files. Unlike home, Microsoft Office files ppt (x), doc (x), xls (x), pdf documents, image files (png, jpg, gif), media files (mp3, wma, mp4), compressed files (zip, gz Common types of files, such as), have very high entropy values.

암호화된 파일의 엔트로피는 예상대로 높은 엔트로피 값을 가진다. AES CBC 모드를 사용하여 도 5에 도시된 것과 동일한 파일을 암호화하고 암호화 된 파일의 엔트로피를 이용한다. 암호화된 파일이 7.48과 8.0 사이의 엔트로피를 갖는 것을 알 수 있다. 여기서 8은 최대 값이다. 암호화된 파일 엔트로피의 흥미로운 특징은 파일 엔트로피가 파일 크기에 따라 증가하는 경향이 있다는 것이다. 낮은 엔트로피 값은 512B의 작은 크기의 파일에 대해 발생한다. 1kB보다 큰 파일은 엔트로피가 7.75 이상이었고 2kB 이상의 파일은 7.88 이상을 나타냈다. 마지막으로, 4kB 이상의 파일은 엔트로피가 7.94 이상인 것으로 나타난다, 이러한 결과는 파일 크기가 클수록 암호화에 의해 더 많은 임의성이 생성될 수 있기 때문에 당연한 결과이다. 암호화 된 파일은 도 5에 도시되어 있다.The entropy of an encrypted file has a high entropy value as expected. Encrypt the same file as shown in Figure 5 using AES CBC mode and use the entropy of the encrypted file. You can see that the encrypted file has entropy between 7.48 and 8.0. Where 8 is the maximum value. An interesting feature of encrypted file entropy is that file entropy tends to increase with file size. Low entropy values occur for small files of 512B. Files larger than 1 kB had entropy greater than 7.75 and files greater than 2 kB showed greater than 7.88. Finally, files larger than 4kB appear to have entropy greater than 7.94. This is a natural result because larger files can produce more randomness by encryption. The encrypted file is shown in FIG.

실제 사용자 데이터의 엔트로피 결과는 엔트로피 값에 대한 가정에 문제가 있음을 보여준다. 정상 파일의 엔트로피 값이 상대적으로 낮다고 가정한다. 실제 사용자 파일의 엔트로피 값을 이용한 결과 이러한 가정이 잘못된 것임을 알 수 있다. 그럼에도 불구하고 긍정 오류를 생성하는 본 발명의 경우에서도 성공적인 데이터 공격이 발생하지 않으며 역순으로 조회할 블록을 더 생성하고 스냅 샷을 더 자주 생성한다.The entropy result of the actual user data shows that there is a problem with the assumption of entropy values. Assume that the entropy value of a normal file is relatively low. Using the entropy value of the actual user file, we can see that this assumption is wrong. Nevertheless, even in the case of the present invention which generates a positive error, a successful data attack does not occur, and more blocks to be queried in reverse order and snapshots are generated more frequently.

암호화된 파일의 높은 엔트로피 값을 기반으로 DA-SSD는 엔트로피 기반의 랜섬웨어 탐지기를 사용한다. DA-SSD는 간단한 특수 로직을 사용하여 DA-SSD에 기록될 모든 블록을 계산함으로써 기록될 모든 블록의 엔트로피 검사하고, 의심스러운 블록이 들어오는 경우 경보를 트리거한다. 도 5에 도시한 바와 같이, 엔트로피 값 7.4를 임계 값으로 사용할 수 있다. 경보를 발생시키는 임계 엔트로피 값은 정밀도 또는 긍정 오류에 대해 속임수 블록을 검출하는 리콜과 상충된다.Based on the high entropy value of the encrypted file, DA-SSD uses an entropy-based ransomware detector. The DA-SSD uses simple special logic to calculate all the blocks to be written to the DA-SSD, checking the entropy of all the blocks to be written, and triggering an alarm when a suspicious block comes in. As shown in FIG. 5, an entropy value 7.4 may be used as the threshold value. The threshold entropy value that triggers an alert conflicts with a recall that detects a trick block for precision or false positives.

DA-SSD가 적시에 긍정 오류를 처리할 수 있는 한, 임계 값을 낮추면 더 많은 경고가 발생하지만 리콜이 높아지므로 랜섬웨어 쓰기에 대한 강력한 방어력을 제공한다. 엔트로피 값 7.4를 임계 값으로 사용 가능하나 임계 값은 장치의 기능과 생성된 긍정 오류의 양에 따라 동적으로 조정될 수 있다.As long as the DA-SSD can handle false positives in a timely manner, lowering the threshold will cause more warnings but higher recall, providing strong defense against ransomware writes. An entropy value of 7.4 can be used as the threshold, but the threshold can be dynamically adjusted according to the device's capabilities and the amount of false positives generated.

탐지기의 긍정 오류는 데이터 손실을 초래하지 않는다. 그러나 더 빈번한 DA-SSD 방어 메커니즘을 유발하여 공간 오버 헤드를 유발할 수 있다. 엔트로피 값이 높은 일부 일반적인 파일은 쓰기 및 업데이트 시 악의적인 쓰기로 인식되므로 잘못된 경보를 유발한다. 그러나 이미지, 오디오 및 비디오 파일은 대개 일반 사용자가 수정하지 않아 정적이므로 일반적으로 많은 긍정 오류를 유발하지 않아야 한다. 또한, 정상적인 사용자 활동으로 인해 역방향 조회 메커니즘 및 스냅 샷 메커니즘에 과도하게 높은 부하가 발생하지 않을 것으로 판단된다. 그리고, 블록 쓰기에 대해 일정 주기나 특정 기준에 도달하는 시점에 사용자나 공급 업체로 버전의 삭제나 롤백 등 버전 관리에 대한 설정을 요구할 수 있다.The false positives of the detector do not result in data loss. However, it can induce more frequent DA-SSD defense mechanisms, leading to spatial overhead. Some common files with high entropy values are recognized as malicious writes during writes and updates, causing false alarms. However, image, audio, and video files are usually static, not modified by the end user, and should generally not cause many positive errors. In addition, it is determined that the normal user activity does not cause excessively high load on the reverse lookup mechanism and the snapshot mechanism. When a block write is reached at a certain period or when a specific criterion is reached, a user or a supplier may request a version management setting such as deleting or rolling back a version.

상기에서는 엔트로피를 기반으로 한 위협 탐지 기법을 설명하였으나, 이에 한정되는 것은 아니며, 같은 파일의 같은 블록의 쓰기 전후 값을 비교하는 방법, 그리고 블록의 데이터 값을 분석하여 위협을 탐지하는 방법 등 위협 탐지를 위해 사용되는 다양한 알고리즘의 적용 또한 얼마든지 가능하다.In the above description, a threat detection technique based on entropy has been described. However, the present invention is not limited thereto. Threat detection includes a method of comparing before and after writing of the same block of the same file, and a method of detecting a threat by analyzing data values of the block. It is also possible to apply various algorithms used for.

이와 같이 본 발명의 실시예들에 따르면, 사용자 데이터에 대한 공격이 날로 증가하는 것을 막기 위해 데이터 가용성을 위한 SSD(DA-SSD)을 제공할 수 있으며, SSD에 포함되어 있는 주소 매핑 기능과 컨트롤러 논리를 사용하여 사용자 데이터에 대해 들어오는 공격을 탐지하고 보호할 수 있다.As described above, according to embodiments of the present invention, an SSD (DA-SSD) for data availability may be provided to prevent an increase in attacks on user data, and an address mapping function and a controller logic included in the SSD may be provided. You can use it to detect and protect incoming attacks against user data.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영체제(OS) 및 상기 운영체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the devices and components described in the embodiments may include a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable PLU (programmable). It can be implemented using one or more general purpose or special purpose computers, such as logic units, microprocessors, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications executed on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to the execution of the software. For convenience of explanation, one processing device may be described as being used, but one of ordinary skill in the art will appreciate that the processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device. The software and / or data may be embodied in any type of machine, component, physical device, computer storage medium or device in order to be interpreted by or provided to the processing device or to provide instructions or data. have. The software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.The method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. In this case, the medium may be to continuously store a program executable by the computer, or to temporarily store for execution or download. In addition, the medium may be a variety of recording means or storage means in the form of a single or several hardware combined, not limited to a medium directly connected to any computer system, it may be distributed on the network. Examples of the medium include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, And ROM, RAM, flash memory, and the like, configured to store program instructions. In addition, examples of another medium may include a recording medium or a storage medium managed by an app store that distributes an application, a site that supplies or distributes various software, a server, or the like.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and the drawings as described above, various modifications and variations are possible to those skilled in the art from the above description. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different form than the described method, or other components. Or even if replaced or substituted by equivalents, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the claims that follow.

Claims (23)

SSD(solid state drive) 장치에 있어서,
악의적인 공격으로부터 사용자 데이터를 보존하는 데이터 가용성(data availability)을 제공하기 위해,
보안 기능이 호스트 시스템과 분리된 독립적인 블록 저장 장치로 동작하고,
상기 사용자 데이터에 대해 복수 개의 버전의 데이터를 저장하고 운영체제(OS)에 의해 중단되지 않는 데이터 버전 관리(versioning) 프로세스
를 포함하는 SSD 장치.
In a solid state drive device,
To provide data availability that preserves user data from malicious attacks,
The security function operates as an independent block storage device separate from the host system.
Data versioning process that stores a plurality of versions of data for the user data and is not interrupted by an operating system (OS)
SSD device comprising a.
제1항에 있어서,
상기 SSD 장치는 상기 호스트 시스템의 네트워크 인터페이스를 사용하여 외부와 통신함에 있어 SSD에 고유한 개인 및 공개 키 쌍이 할당되어 외부와의 보안 통신을 지원하고 SSD의 무결성 점검 결과를 포함한 알림을 외부로 제공하는 신뢰 루트(root-of-trust)를 포함하는 것
을 특징으로 하는 SSD 장치.
The method of claim 1,
When the SSD device communicates with the outside using the network interface of the host system, a unique private and public key pair is allocated to the SSD to support secure communication with the outside and provide a notification including an SSD integrity check result to the outside. Containing root-of-trust
SSD device characterized in that.
제1항에 있어서,
상기 SSD 장치는 SSD 인증을 위해 SSD에 고유한 개인 및 공개 키 쌍이 존재하는 플랫폼 모듈이 내장되는 것
을 특징으로 하는 SSD 장치.
The method of claim 1,
The SSD device includes a platform module in which unique private and public key pairs exist in the SSD for SSD authentication.
SSD device characterized in that.
제1항에 있어서,
상기 SSD 장치는 SSD 공급 업체나 서드파티(3rd party)의 원격 서버에서 제공하는 메시지 릴레이 서비스를 통해 SSD와 사용자 간의 통신 기능을 제공하는 것
을 특징으로 하는 SSD 장치.
The method of claim 1,
The SSD device to provide communication between the SSD and the user through a message relay service provided by SSD vendors or third-party remote server (3 rd party)
SSD device characterized in that.
제4항에 있어서,
상기 SSD 장치는 SSD에서 주기적으로 생성된 하트비트(heartbeat) 메시지를 상기 원격 서버로 전송하고 상기 원격 서버로부터의 상기 하트비트 메시지에 대한 응답 메시지의 유무를 감지하는 것
을 특징으로 하는 SSD 장치.
The method of claim 4, wherein
The SSD device transmits a heartbeat message periodically generated in the SSD to the remote server and detects the presence or absence of a response message to the heartbeat message from the remote server.
SSD device characterized in that.
제5항에 있어서,
상기 SSD 장치는 상기 하트비트 메시지가 상기 원격 서버로 전송되지 않고 상기 원격 서버로부터 상기 응답 메시지가 없음이 감지되면 SSD에서 운영체제에 의해 네트워크 접근이 제한되고 있는 것으로 판단하는 것
을 특징으로 하는 SSD 장치.
The method of claim 5,
The SSD device determines that network access is restricted by an operating system in the SSD when the heartbeat message is not transmitted to the remote server and the absence of the response message is detected from the remote server.
SSD device characterized in that.
제6항에 있어서,
상기 SSD 장치는 SSD에서 운영체제에 의해 네트워크 접근이 제한되고 있는 것으로 판단되면 현재 상태의 스냅 샷을 생성하는 것
을 특징으로 하는 SSD 장치.
The method of claim 6,
The SSD device generates a snapshot of the current state when it is determined that network access is restricted by the operating system in the SSD.
SSD device characterized in that.
제1항에 있어서,
상기 SSD 장치는 디스크의 블록(block)에 포함된 파티션 테이블 정보를 이용하여 각 파티션의 블록을 읽어오고 해당 블록에 인코딩된 파일 시스템 유형에 기반하여 주어진 파일을 구성하는 블록을 찾는 것
을 특징으로 하는 SSD 장치.
The method of claim 1,
The SSD device reads a block of each partition using partition table information included in a block of a disk, and finds a block constituting a given file based on the file system type encoded in the block.
SSD device characterized in that.
제8항에 있어서,
상기 SSD 장치는 블록이 주어지면 파일 이름으로 역방향 조회(reverse lookup)를 수행하는 것
을 특징으로 하는 SSD 장치.
The method of claim 8,
The SSD device performs reverse lookup with a file name given a block.
SSD device characterized in that.
제1항에 있어서,
상기 SSD 장치는 쓰기 요청에 대해 스냅 샵 메커니즘을 이용한 데이터 버전 관리를 수행하는 것
을 특징으로 하는 SSD 장치.
The method of claim 1,
The SSD device performs data version control using a snap mechanism for a write request.
SSD device characterized in that.
제10항에 있어서,
상기 SSD 장치는 플래시 변환 레이어(flash translation layer) 구조를 이용하여 원본 데이터의 스냅 샷을 만든 후 새로운 쓰기를 SSD에 기록하는 것
을 특징으로 하는 SSD 장치.
The method of claim 10,
The SSD device uses a flash translation layer structure to take a snapshot of the original data and then write a new write to the SSD.
SSD device characterized in that.
제10항에 있어서,
상기 SSD 장치는 상기 쓰기 요청에 대해 긍정 오류(false positive) 가능성이 있는 요청을 식별하여 데이터 버전 관리를 수행하는 것
을 특징으로 하는 SSD 장치.
The method of claim 10,
The SSD device performs data version management by identifying a request that has a false positive possibility for the write request.
SSD device characterized in that.
제10항에 있어서,
상기 SSD 장치는 엔트로피 기반 탐지 방식을 이용하여 상기 쓰기 요청 중에서 악의적인 쓰기를 식별하여 데이터 버전 관리를 수행하는 것
을 특징으로 하는 SSD 장치.
The method of claim 10,
The SSD device performs data version management by identifying malicious writes among the write requests using an entropy-based detection method.
SSD device characterized in that.
SSD 장치에 있어서,
NAND 플래시 칩을 스토리지로 사용하여 데이터를 저장하는 SSD; 및
상기 SSD에 결합되는 컨트롤러
를 포함하고,
상기 컨트롤러는,
악의적인 공격으로부터 상기 데이터를 보존하는 데이터 가용성을 제공하기 위해,
상기 SSD를 보안 기능이 호스트 시스템과 분리된 독립적인 블록 저장 장치로 동작하도록 제어하고 상기 데이터를 복수 개의 버전으로 저장하고 운영체제에 의해 중단되지 않는 데이터 버전 관리 프로세스
를 포함하는, SSD 장치.
In an SSD device,
An SSD storing data using a NAND flash chip as storage; And
A controller coupled to the SSD
Including,
The controller,
To provide data availability that preserves the data from malicious attacks,
A data version management process that controls the SSD to operate as an independent block storage device having security functions separate from the host system, stores the data in multiple versions, and is not interrupted by an operating system.
Including, SSD device.
SSD의 제어 동작을 위한 방법에 있어서,
상기 방법은,
악의적인 공격으로부터 사용자 데이터를 보존하는 데이터 가용성을 제공하기 위해,
상기 SSD를 보안 기능이 호스트 시스템과 분리된 독립적인 블록 저장 장치로 동작하도록 제어하고 상기 사용자 데이터에 대해 복수 개의 버전의 데이터를 저장하고 운영체제에 의해 중단되지 않는 데이터 버전 관리를 수행하는 단계
를 포함하는, 방법.
In the method for the control operation of the SSD,
The method,
To provide data availability that preserves user data from malicious attacks,
Controlling the SSD to operate as an independent block storage device having a security function separate from the host system, storing a plurality of versions of data for the user data, and performing data version management not interrupted by an operating system
Including, the method.
제15항에 있어서,
상기 수행하는 단계는,
상기 호스트 시스템의 네트워크 인터페이스를 사용하여 외부와 통신함에 있어 SSD에 할당된 고유한 개인 및 공개 키 쌍을 사용하여 외부와의 보안 통신을 제공하고 SSD의 무결성 점검 결과를 포함한 알림을 외부로 제공하는 단계
를 포함하는, 방법.
The method of claim 15,
The step of performing,
In communication with the outside using the network interface of the host system, providing secure communication with the outside using a unique private and public key pair assigned to the SSD and providing a notification including the result of the integrity check of the SSD to the outside.
Including, the method.
제15항에 있어서,
상기 수행하는 단계는,
SSD 공급 업체나 서드파티의 원격 서버에서 제공하는 메시지 릴레이 서비스를 통해 SSD와 사용자 간의 통신 기능을 제공하는 단계
를 포함하는, 방법.
The method of claim 15,
The step of performing,
Providing communication between SSD and user through message relay service provided by SSD vendor or third party remote server
Including, the method.
제17항에 있어서,
상기 수행하는 단계는,
SSD에서 주기적으로 생성된 하트비트 메시지를 상기 원격 서버로 전송하고 상기 원격 서버로부터의 상기 하트비트 메시지에 대한 응답 메시지의 유무를 감지하는 단계;
상기 원격 서버로부터 상기 응답 메시지가 없음이 감지되면 SSD에서 운영체제에 의해 네트워크 접근이 제한되고 있는 것으로 판단하는 단계; 및
SSD에서 운영체제에 의해 네트워크 접근이 제한되고 있는 것으로 판단되면 현재 상태의 스냅 샷을 생성하는 단계
를 포함하는, 방법.
The method of claim 17,
The step of performing,
Transmitting a heartbeat message periodically generated in the SSD to the remote server and detecting the presence of a response message to the heartbeat message from the remote server;
Determining that network access is restricted by an operating system in the SSD when it is detected that the response message is absent from the remote server; And
If the SSD determines that network access is restricted by the operating system, creating a snapshot of the current state
Including, the method.
제15항에 있어서,
상기 수행하는 단계는,
디스크의 블록에 포함된 파티션 테이블 정보를 이용하여 각 파티션의 블록을 읽어오고 해당 블록에 인코딩된 파일 시스템 유형에 기반하여 주어진 파일을 구성하는 블록을 찾는 단계
를 포함하는, 방법.
The method of claim 15,
The step of performing,
Reading the blocks of each partition using partition table information contained in the blocks of the disk and finding the blocks that make up a given file based on the file system type encoded in that block
Including, the method.
제19항에 있어서,
상기 수행하는 단계는,
블록이 주어지면 파일 이름으로 역방향 조회를 수행하는 단계
를 포함하는, 방법.
The method of claim 19,
The step of performing,
Given a block, perform reverse lookup by filename
Including, the method.
제15항에 있어서,
상기 수행하는 단계는,
쓰기 요청에 대해 스냅 샵 메커니즘을 이용한 데이터 버전 관리를 수행하는 단계
를 포함하는, 방법.
The method of claim 15,
The step of performing,
Performing Data Version Control Using the Snapshot Mechanism for Write Requests
Including, the method.
제21항에 있어서,
상기 수행하는 단계는,
플래시 변환 레이어 구조를 이용하여 원본 데이터의 스냅 샷을 만든 후 새로운 쓰기를 SSD에 기록하는 단계
를 포함하는, 방법.
The method of claim 21,
The step of performing,
Taking a snapshot of the original data using the flash translation layer structure and writing a new write to the SSD
Including, the method.
제21항에 있어서,
상기 수행하는 단계는,
엔트로피 기반 탐지 방식을 이용하여 상기 쓰기 요청 중에서 악의적인 쓰기를 식별하여 데이터 버전 관리를 수행하는 단계
를 포함하는, 방법.
The method of claim 21,
The step of performing,
Performing data version management by identifying malicious writes among the write requests using an entropy-based detection scheme
Including, the method.
KR1020180028172A 2018-03-09 2018-03-09 Data availability ssd architecture for providing user data protection KR102106689B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180028172A KR102106689B1 (en) 2018-03-09 2018-03-09 Data availability ssd architecture for providing user data protection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180028172A KR102106689B1 (en) 2018-03-09 2018-03-09 Data availability ssd architecture for providing user data protection

Publications (2)

Publication Number Publication Date
KR20190106544A true KR20190106544A (en) 2019-09-18
KR102106689B1 KR102106689B1 (en) 2020-05-04

Family

ID=68070891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180028172A KR102106689B1 (en) 2018-03-09 2018-03-09 Data availability ssd architecture for providing user data protection

Country Status (1)

Country Link
KR (1) KR102106689B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030051930A (en) * 2001-12-20 2003-06-26 한국전자통신연구원 Apparatus and method for embodying high availability in cluster system
KR20050010967A (en) * 2002-06-27 2005-01-28 코닌클리즈케 필립스 일렉트로닉스 엔.브이. Security processor with bus configuration
KR20100045974A (en) * 2007-08-06 2010-05-04 인터내셔널 비지네스 머신즈 코포레이션 Hierarchical storage management for a file system providing snapshots
KR20110091677A (en) * 2008-11-18 2011-08-12 엘에스아이 코포레이션 System and method for recovering solid state drive data
KR20120082218A (en) * 2011-01-13 2012-07-23 (주)인디링스 Storage device of adaptively determining processing scheme with respect to request of host based on partition information and operating method thereof
KR20130118940A (en) * 2011-01-05 2013-10-30 인텔 코오퍼레이션 Method and apparatus for building a hardware root of trust and providing protected content processing within an open computing platform

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030051930A (en) * 2001-12-20 2003-06-26 한국전자통신연구원 Apparatus and method for embodying high availability in cluster system
KR20050010967A (en) * 2002-06-27 2005-01-28 코닌클리즈케 필립스 일렉트로닉스 엔.브이. Security processor with bus configuration
KR20100045974A (en) * 2007-08-06 2010-05-04 인터내셔널 비지네스 머신즈 코포레이션 Hierarchical storage management for a file system providing snapshots
KR20110091677A (en) * 2008-11-18 2011-08-12 엘에스아이 코포레이션 System and method for recovering solid state drive data
KR20130118940A (en) * 2011-01-05 2013-10-30 인텔 코오퍼레이션 Method and apparatus for building a hardware root of trust and providing protected content processing within an open computing platform
KR20120082218A (en) * 2011-01-13 2012-07-23 (주)인디링스 Storage device of adaptively determining processing scheme with respect to request of host based on partition information and operating method thereof

Also Published As

Publication number Publication date
KR102106689B1 (en) 2020-05-04

Similar Documents

Publication Publication Date Title
Baek et al. SSD-insider: Internal defense of solid-state drive against ransomware with perfect data recovery
US10049215B2 (en) Apparatus and method for preventing access by malware to locally backed up data
US10120572B2 (en) Computing device with a separate processor provided with management functionality through a separate interface with the interface bus
EP2488987B1 (en) Secure storage of temporary secrets
CN107977573B (en) Method and system for secure disk access control
US9165155B2 (en) Protecting the integrity and privacy of data with storage leases
US9396329B2 (en) Methods and apparatus for a safe and secure software update solution against attacks from malicious or unauthorized programs to update protected secondary storage
US20080046997A1 (en) Data safe box enforced by a storage device controller on a per-region basis for improved computer security
US8631203B2 (en) Management of external memory functioning as virtual cache
CN110998582A (en) Secure storage device
KR101476222B1 (en) Storage system having security storage device and managing method thereof
US20130269039A1 (en) Data access control
CN112269547B (en) Active and controllable hard disk data deleting method and device without operating system
US20070250547A1 (en) Log Preservation Method, and Program and System Thereof
US20200089884A1 (en) Method and apparatus for ransomware detection
CN109214204B (en) Data processing method and storage device
US20150074820A1 (en) Security enhancement apparatus
US8307175B2 (en) Data recovery and overwrite independent of operating system
Ahn et al. DiskShield: a data tamper-resistant storage for Intel SGX
KR102106689B1 (en) Data availability ssd architecture for providing user data protection
US12058259B2 (en) Data storage device encryption
KR100948386B1 (en) Apparatus and method for saving original data in computer system
Cui et al. Towards trustable storage using SSDs with proprietary FTL
Ahn et al. Sgx-ssd: A policy-based versioning ssd with intel sgx
KR102386219B1 (en) Method And System for Policy-Based Versioning based on SGX-SSD

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