KR102106689B1 - 사용자 데이터 보호를 제공하는 데이터 가용성 ssd 아키텍처 - Google Patents

사용자 데이터 보호를 제공하는 데이터 가용성 ssd 아키텍처 Download PDF

Info

Publication number
KR102106689B1
KR102106689B1 KR1020180028172A KR20180028172A KR102106689B1 KR 102106689 B1 KR102106689 B1 KR 102106689B1 KR 1020180028172 A KR1020180028172 A KR 1020180028172A KR 20180028172 A KR20180028172 A KR 20180028172A KR 102106689 B1 KR102106689 B1 KR 102106689B1
Authority
KR
South Korea
Prior art keywords
ssd
data
user
block
operating system
Prior art date
Application number
KR1020180028172A
Other languages
English (en)
Other versions
KR20190106544A (ko
Inventor
허재혁
박창현
정준기
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020180028172A priority Critical patent/KR102106689B1/ko
Publication of KR20190106544A publication Critical patent/KR20190106544A/ko
Application granted granted Critical
Publication of KR102106689B1 publication Critical patent/KR102106689B1/ko

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)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

SSD(solid state drive) 장치는, 악의적인 공격으로부터 사용자 데이터를 보존하는 데이터 가용성(data availability)을 제공하기 위해, 보안 기능이 호스트 시스템과 분리된 독립적인 블록 저장 장치로 동작하고, 상기 사용자 데이터에 대해 복수 개의 버전의 데이터를 저장하고 운영체제(OS)에 의해 중단되지 않는 데이터 버전 관리(versioning) 프로세스를 포함할 수 있다.

Description

사용자 데이터 보호를 제공하는 데이터 가용성 SSD 아키텍처{DATA AVAILABILITY SSD ARCHITECTURE FOR PROVIDING USER DATA PROTECTION}
아래의 설명은 데이터 가용성(user availability)을 위한 SSD(solid state drive) 아키텍처에 관한 것이다.
스토리지에 데이터의 기밀성과 무결성을 제공하는 것이 연구되고 있으며, 아래 논문 등에 관련 기술이 개시되어 있다.
[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.
최근 랜섬웨어(ransomware)에 대한 새로운 유형의 보안 문제가 대두되고 있다. 랜섬웨어는 대상 시스템에 침투하여 스토리지의 사용자 데이터를 암호화하여 저장된 데이터를 비밀 키 없이는 사용할 수 없게 만든다. 스토리지의 데이터 기밀성 및 무결성에 대한 이전 지원 기술로는 데이터 가용성에 대한 새로운 유형의 공격으로부터 사용자 데이터를 보호할 수 없다.
랜섬웨어 공격에 대해 사용자 데이터의 가용성을 보호하기 위한 SSD를 제안한다.
사용자 데이터 가용성을 보호하기 위해 소프트웨어 기반 접근 방식을 제안한 기존 연구와는 달리, 저장 장치에 보호 메커니즘을 구현하는 새로운 하드웨어 기반 솔루션을 제안한다.
운영체제가 손상되었을 때도 사용자 데이터 가용성을 유지할 수 있는 SSD를 제안한다.
SSD(solid state drive) 장치에 있어서, 악의적인 공격으로부터 사용자 데이터를 보존하는 데이터 가용성(data availability)을 제공하기 위해, 보안 기능이 호스트 시스템과 분리된 독립적인 블록 저장 장치로 동작하고, 상기 사용자 데이터에 대해 복수 개의 버전의 데이터를 저장하고 운영체제(OS)에 의해 중단되지 않는 데이터 버전 관리(versioning) 프로세스를 포함하는 SSD 장치를 제공한다.
일 측면에 따르면, 상기 SSD 장치는 상기 호스트 시스템의 네트워크 인터페이스를 사용하여 외부와 통신함에 있어 SSD에 고유한 개인 및 공개 키 쌍이 할당되어 외부와의 보안 통신을 지원하고 SSD의 무결성 점검 결과를 포함한 알림을 외부로 제공하는 신뢰 루트(root-of-trust)를 포함할 수 있다.
다른 측면에 따르면, 상기 SSD 장치는 SSD 인증을 위해 SSD에 고유한 개인 및 공개 키 쌍이 존재하는 플랫폼 모듈이 내장될 수 있다.
또 다른 측면에 따르면, 상기 SSD 장치는 SSD 공급 업체나 서드파티(3rd party)의 원격 서버에서 제공하는 메시지 릴레이 서비스를 통해 SSD와 사용자 간의 통신 기능을 제공할 수 있다.
또 다른 측면에 따르면, 상기 SSD 장치는 SSD에서 주기적으로 생성된 하트비트(heartbeat) 메시지를 상기 원격 서버로 전송하고 상기 원격 서버로부터의 상기 하트비트 메시지에 대한 응답 메시지의 유무를 감지할 수 있다.
또 다른 측면에 따르면, 상기 SSD 장치는 상기 하트비트 메시지가 상기 원격 서버로 전송되지 않고 상기 원격 서버로부터 상기 응답 메시지가 없음이 감지되면 SSD에서 운영체제에 의해 네트워크 접근이 제한되고 있는 것으로 판단할 수 있다.
또 다른 측면에 따르면, 상기 SSD 장치는 SSD에서 운영체제에 의해 네트워크 접근이 제한되고 있는 것으로 판단되면 현재 상태의 스냅 샷을 생성할 수 있다.
또 다른 측면에 따르면, 상기 SSD 장치는 디스크의 블록(block)에 포함된 파티션 테이블 정보를 이용하여 각 파티션의 블록을 읽어오고 해당 블록에 인코딩된 파일 시스템 유형에 기반하여 주어진 파일을 구성하는 블록을 찾을 수 있다.
또 다른 측면에 따르면, 상기 SSD 장치는 블록이 주어지면 파일 이름으로 역방향 조회(reverse lookup)를 수행할 수 있다.
또 다른 측면에 따르면, 상기 SSD 장치는 쓰기 요청에 대해 스냅 샵 메커니즘을 이용한 데이터 버전 관리를 수행할 수 있다.
또 다른 측면에 따르면, 상기 SSD 장치는 플래시 변환 레이어(flash translation layer) 구조를 이용하여 원본 데이터의 스냅 샷을 만든 후 새로운 쓰기를 SSD에 기록할 수 있다.
또 다른 측면에 따르면, 상기 SSD 장치는 상기 쓰기 요청에 대해 긍정 오류(false positive) 가능성이 있는 요청을 식별하여 데이터 버전 관리를 수행할 수 있다.
또 다른 측면에 따르면, 상기 SSD 장치는 엔트로피 기반 탐지 방식을 이용하여 상기 쓰기 요청 중에서 악의적인 쓰기를 식별하여 데이터 버전 관리를 수행할 수 있다.
SSD 장치에 있어서, NAND 플래시 칩을 스토리지로 사용하여 데이터를 저장하는 SSD; 및 상기 SSD에 결합되는 컨트롤러를 포함하고, 상기 컨트롤러는, 악의적인 공격으로부터 상기 데이터를 보존하는 데이터 가용성을 제공하기 위해, 상기 SSD를 보안 기능이 호스트 시스템과 분리된 독립적인 블록 저장 장치로 동작하도록 제어하고 상기 데이터를 복수 개의 버전으로 저장하고 운영체제에 의해 중단되지 않는 데이터 버전 관리 프로세스를 포함하는, SSD 장치를 제공한다.
SSD의 제어 동작을 위한 방법에 있어서, 상기 방법은, 악의적인 공격으로부터 사용자 데이터를 보존하는 데이터 가용성을 제공하기 위해, 상기 SSD를 보안 기능이 호스트 시스템과 분리된 독립적인 블록 저장 장치로 동작하도록 제어하고 상기 사용자 데이터에 대해 복수 개의 버전의 데이터를 저장하고 운영체제에 의해 중단되지 않는 데이터 버전 관리를 수행하는 단계를 포함하는, 방법을 제공한다.
도 1은 본 발명의 일실시예에 있어서 어드레스 매핑을 설명하기 위한 예시 도면이다.
도 2는 본 발명의 일실시예에 있어서 데이터 가용성을 위한 SSD(DA-SSD)와 호스트 시스템을 포함하는 전체 개요도를 도시한 것이다.
도 3은 본 발명의 일실시예에 있어서 데이터 가용성을 위한 SSD(DA-SSD)의 전체 구조를 도시한 것이다.
도 4는 본 발명의 일실시예에 있어서 사용자 데이터 보호를 위한 데이터 버전 관리를 설명하기 위한 예시 도면이다.
도 5는 본 발명의 일실시예에 있어서 파일 유형 별 엔트로피를 설명하기 위한 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명에서는 손상된 운영체제에서 데이터 가용성을 제공하기 위해 신뢰할 수 있는 도메인으로서 독립적으로 존재하는 새로운 SSD 구조를 가지는 데이터 가용성을 위한 SSD(이하, 'DA-SSD'라 칭함)를 제안한다. DA-SSD는 자체적인 신뢰 루트를 가지며 자동적으로 사용자 데이터의 여러 버전을 저장하여 가능한 랜섬웨어 공격에 대비한다.
파일 시멘틱(semantic) 추론 기능은 저장 장치에서 파일 시멘틱을 획득하기 위해 적용될 수 있다. 본 발명에서는 랜섬웨어 공격으로부터 사용자 데이터를 보호하는 효율적인 버전관리(versioning) 메커니즘을 제안하고 진행중인 랜섬웨어 공격을 탐지하는 방법을 제공한다.
DA-SSD는 정상적인 블록 스토리지로 작동하여 운영체제의 요청을 수락한다. 그러나 독립적인 스토리지로서 DA-SSD 내의 데이터 버전 관리 프로세스는 운영체제에 의해 중단될 수 없다.
이러한 중단 없는 버전관리 가능하게 하기 위해 DA-SSD는 몇 가지 기술적 과제를 해결해야 한다. 첫째, DA-SSD는 운영체제가 손상되더라도 사용자와 안전하게 통신할 수 있어야 한다. 둘째, DA-SSD는 블록 장치인 SSD가 운영체제에서 전송된 블록 수준의 데이터 트래픽만 관찰할 수 있을지라도 파일 시스템의 상위 수준 시멘틱을 추론할 수 있어야 한다. 셋째, DA-SSD는 데이터 버전을 효율적으로 생성할 수 있어야 한다. 이러한 버전관리 프로세스는 디스크의 일반적인 사용을 지연시켜서는 안 된다. 마지막으로 용량 오버 헤드는 가능한 감소되어야 한다.
사용자에게 안전한 통신 경로를 제공하기 위해, DA-SSD에는 고유한 개인/공개 키 쌍이 존재하는 신뢰할 수 있는 플랫폼 모듈(Trusted Platform Module, TPM)이 내장되어 있다. DA-SSD는 TPM 지원을 통해 디스크 장치의 유효성 외에도 DA-SSD의 컨트롤러 및 펌웨어가 사용자 응용 프로그램에서 증명될 수 있다. 또한 DA-SSD는 중간의 운영체제가 사용자와의 실제 통신을 처리하는 경우에도 해당 데이터에 대한 의심스러운 활동을 사용자에게 안전하게 알릴 수 있다.
그러나, 이전 버전의 모든 데이터가 스토리지에 존재해야 하기 때문에 모든 쓰기(write)에 대해 여러 버전의 데이터를 작성하면 유효 저장 용량을 상당히 감소시킬 수 있다. 이러한 용량 오버 헤드를 감소시키기 위해 DA-SSD는 랜섬웨어 탐지 알고리즘을 사용하여 디스크에서 의심되는 활동을 식별한다. DA-SSD는 특정 중요 사용 사례에 대해 디스크가 꽉 찰 때까지 모든 이전 버전의 데이터를 생성하도록 구성될 수 있지만, 본 발명에서는 일반적인 사용에서 용량 오버 헤드를 감소시키기 위해 긍정 오류(false positive) 가능성이 있는 탐지 메커니즘을 사용한다.
본 발명의 주요 내용은 다음과 같다.
- 본 발명에서는 운영체제가 안전하지 않은 경우 신뢰할 수 있는 플랫폼 모듈(TPM)을 사용하여 원격 증명 및 인증된 알림을 제공하는 새로운 SSD 설계를 제안한다.
- 파일 시스템 시멘틱이 없는 블록 장치의 한계를 극복하기 위해 DA-SSD는 리버스 엔지니어링 방식을 사용하여 SSD로 파일 시스템 구조를 재구성한다.
- 본 발명은 SSD의 플래시 변환 레이어(flash translation layer, FTL) 구조를 활용하여 효율적인 버전관리 메커니즘을 제공한다.
- 용량 오버 헤드를 감소시키기 위해 DA-SSD는 운영체제를 대상으로 한 엔트로피 기반 멀웨어 탐지 방식을 사용한다. 본 발명은 블록 스토리지 내에 엔트로피 기반 멀웨어 탐지 방식이 적용될 수 있음을 보여준다.
먼저, 스토리지 및 SSD 아키텍처의 보안에 대해 먼저 설명하기로 한다.
데이터는 컴퓨팅의 중요한 부분 중 하나로, 데이터 보안에는 세 가지 필수 보안 속성(기밀성(confidentiality), 무결성(integrity) 및 가용성(availability))이 필요하다.
스토리지를 위한 데이터 보안
기밀성은 공격자가 사용자 데이터를 읽지 못하게 하는 것을 목표로 하며, 이러한 목표는 암호화를 통해 지원된다. 사용자 데이터를 암호화하는 소프트웨어 및 하드웨어 기술이 존재한다. 소프트웨어 솔루션에는 전체 디스크 암호화 및 개별 파일 암호화가 포함된다. 하드웨어 솔루션은 오팔(Opal) 스토리지 사양과 같은 전체 디스크 암호화로 제공되며 상업용 SSD는 오팔 스토리지 사양의 요구 사항을 구현한다.
무결성은 사용자의 의도 없이 사용자 데이터가 수정될 때마다 이를 통지하는 것을 목표로 한다. 무결성을 제공하는 것은 의도하지 않은 사용자 데이터 수정을 탐지하기가 어렵기 때문에 어려운 작업이다. 사용자가 실행하는 프로그램은 사용자가 소유한 모든 파일을 수정할 수 있다. 악의적인 프로그램이 사용자 ID로 실행되면 파일을 수정할 수 있다. 이러한 공격을 방지하기 위해 데이터를 수정할 수 있도록 허용된 화이트리스팅(whitelisting) 응용 프로그램이 소프트웨어 보호를 제공하며, 화이트리스팅이 아닌 응용 프로그램은 탐지되어 파일을 수정할 수 없게 된다.
마지막으로, 가용성은 서비스 중단 없이 사용자에게 데이터에 대한 액세스를 제공하는 것을 목표로 한다. 안타깝게도 위협 모델에 손상된 운영체제가 포함되어 있는 경우 불가능하지는 않더라도 데이터 가용성을 제공하는 것은 어렵다. 손상된 운영체제는 매우 일반적인 가정이므로 가용성을 제공하는 것은 어렵다.
최근 랜섬웨어 공격이 크게 증가하고 있으며, 랜섬웨어는 일반적으로 사용자 데이터를 암호화하고 사용자 데이터를 해독하기 전에 돈을 요구하거나, 사용자 데이터를 유출하는 다른 유형의 공격도 존재한다. 랜섬웨어 공격은 기밀성, 무결성 및 데이터 가용성 보호를 통해 데이터 보호의 필요성을 강조한다.
사용자 데이터를 보호하기 위해 많은 연구들이 존재한다. 기존의 안티 바이러스는 알려진 위협으로부터 보호하기 위해 알려진 랜섬웨어 패턴을 추가하고, 일부 안티 바이러스는 동작 기반 탐지 메커니즘을 추가한다. 더 나아가, 안티 바이러스 회사는 사용자 지정 디렉토리 내의 파일에 대한 액세스를 엄격하게 제어하여 랜섬웨어 방지 솔루션을 도입하고 있다.
관련하여 시스템의 하부(lower part)에서 멀웨어 탐지에 접근하려는 시도 또한 존재한다. 열기, 생성, 삭제 등과 같은 파일 작업의 패턴을 검사함으로써 알려지거나 알려지지 않은 랜섬웨어를 성공적으로 탐지할 수 있다.
그러나 상기한 접근 방식들은 모두 제대로 작동하는 운영체제에 의존하고 있다. 손상된 운영체제는 프로세스를 탐지하는 멀웨어를 단순히 중지 시키거나, 랜섬웨어 증명 솔루션이 설정한 액세스 제어를 무시할 수 있다. 여기서 공격자에게 권한을 부여하는 취약점이 존재하며, 공격자는 탐지 및 보호 소프트웨어를 무효화하기 위한 조치를 취할 수 있다.
그러므로, 사용자 공간 및 권한이 부여된 소프트웨어에 대한 모든 공격으로부터 사용자 데이터를 보호하는 수단이 필요하다.
SSD
SSD는 랜섬웨어에 대한 안전 조치를 탐지하고 취하기에 훌륭한 장치이다. SSD는 NAND 플래시 칩을 스토리지로 사용하여 데이터를 저장한다. SSD는 기존 하드 디스크 드라이브를 교체하거나 이와 함께 이용되고 있으며, 플래시 변환 레이어(FTL)는 SSD와 기존 HDD 사이에 필요한 호환성을 제공하기 위해 이용되고 있다. NAND 플래시는 페이지를 '쓰기'할 수 있는 특성이 있지만, 일단 쓰기가 수행되면 다시 쓰기가 수행되기 전에 지워져야 한다. 삭제 프로세스는 블록 단위로 이루어지며 페이지의 쓰기 단위보다 훨씬 더 크다. 이러한 NAND 플래시의 특징은 SSD에서 기존 데이터의 쓰기, 새 영역의 쓰기, 나중에 삭제될 데이터 일련의 수집을 필요로 한다. 또한, NAND 스토리지는 제한된 쓰기 횟수를 가지며 쓰기를 균등하게 평준화하기 위해 쓰기 평준화(write-leveling)가 통합된다. 이러한 특성 모두는 어드레스 재매핑 기능이 필요하다.
SSD는 논리적 주소를 물리적인 NAND 주소에 매핑하기 위해 주소 매핑 테이블을 통한 간접 지정이 필요하다. 도 1은 어드레스 재매핑을 설명하기 위한 예시 도면이다. 호스트가 SSD의 물리적 레이아웃을 인식하지 못하기 때문에 호스트에서 SSD로 전송되는 모든 어드레스는 논리적 어드레스이다. SSD 내부 매핑 테이블은 룩업되어(looked up) 논리적 어드레스를 물리적 어드레스로 변환한다(①). 물리적 어드레스가 발견되면 실제 물리적 NAND 페이지가 액세스된다(②).
쓰기가 수행되는 경우 데이터는 실제 물리적으로 쓰여지지 않고 다른 물리적 페이지에 쓰여지며 매핑 테이블은 새 데이터를 표시하도록 업데이트된다. 매핑된 테이블이 업데이트됨에 따라 쓰여진 데이터에 대한 이후의 모든 액세스는 ① 단계와 ② 단계를 따르고 새 데이터로 종료된다. 이전 데이터가 존재하는 페이지는 유효하지 않은 것으로 표시되고 나중에 가비지(garbage)로 수집된다.
매핑, 가비지 수집, 웨어 레벨링 등을 가능하게 하기 위해 SSD는 이러한 작업을 처리하는 컨트롤러를 갖추고 있다. 이 컨트롤러는 계산 기능을 가지고 있는데, 최근 SSD 제조업체에서 SSD에서 일부 추가 하드웨어 로직과 함께 이러한 계산 기능을 사용하여 데이터를 처리할 것을 제안하고 있다.
SSD에 필요한 어드레스 재매핑 및 계산 기능을 사용하여 데이터 가용성을 강화할 수 있다. 따라서 본 발명에서는 전체 소프트웨어가 손상된 경우에도 신뢰할 수 있는 루트 역할을 수행하며 사용자 데이터 보호에 적극적인 역할을 수행하는 새로운 종류의 스토리지인 데이터 가용성을 위한 SSD 즉, DA-SSD를 제안한다.
이하에서는 데이터 가용성을 정의하고 데이터 가용성을 지원하기 위한 SSD의 설계 목표 및 과제를 제시한다.
데이터 가용성
데이터 가용성은 새로운 보안 요구 사항으로, 이는 저장 시스템에 대한 가용성의 하위 분야이며 랜섬웨어 공격이 있는 경우에도 데이터 보존을 목표로 한다.
데이터 가용성에 대한 본 발명에서의 정의는 다음과 같다: 데이터는 보존되며 시스템이 안전한 상태에 있을 때, 즉 클린 룸 환경에서 또는 악성 코드와 같은 악의적인 공격으로부터 복구된 경우 액세스 될 수 있다. 저장 시스템의 일반적인 가용성은 스토리지가 정확하게 요청된 데이터를 제공하면서 항상 액세스 가능하도록 요구한다. 일반 가용성과는 달리, 데이터 가용성은 클린 시스템에 연결되면 복구될 수 있는 스토리지의 데이터 보존 범위를 제한한다.
최근 데이터 가용성을 지원하기 위한 많은 솔루션이 제안되고 있다. 연속 데이터 보호(CDP) 솔루션은 자동으로 시스템의 변경 사항에 대한 백업 사본을 작성하고, 이러한 솔루션을 통해 시스템 관리자는 이전 버전의 데이터로 데이터를 복원할 수 있다. 그러나 CDP 솔루션은 악의적인 관리자나 손상된 운영체제에 의해 방해받을 수 있다. 관리자는 그러한 소프트웨어 기반 보호 메커니즘을 비활성화 할 수 있으며, 운영체제 커널은 백업 복사본을 만들지 않을 수 있으므로 사용자 데이터는 안전하지 않게 된다.
설계 목표
본 발명에서는 취약한 운영체제에서도 데이터 가용성을 제공하기 위해 데이터 가용성을 위한 SSD(DA-SSD)를 제안한다. DA-SSD는 SSD의 처리 기능을 사용하여 저장된 데이터를 안전하게 보존한다. NDP(Near Data Processing)의 형태로 SSD에 존재하는 데이터를 계산하기 위해 SSD 내의 처리 장치를 사용하는 연구가 존재한다. 본 발명에서는 데이터 처리에 가능한 계산을 사용하는 대신, 계산 기능을 사용하여 SSD에 저장된 데이터에 대한 추가적인 보안 레이어를 제공하는 방법을 제안한다.
DA-SSD는 랜섬웨어가 존재하는 상태에서 사용자 데이터의 데이터 가용성을 보호한다. DA-SSD는 디스크 쓰기 작업과 같은 잠재적인 랜섬웨어를 탐지하고 데이터 가용성을 보호하기 위한 방어 조치를 취한다. 사용자 데이터는 안전하게 백업/버전되며 사용자는 의심스러운 활동에 대해 안전하게 통보 받고 의심스러운 활동이 악의적인지 또는 양성인지에 대한 결정을 요청 받는다. 악의적인 경우, 백업/버전된 데이터는 올바른 상태로 롤백되는데 사용된다. DA-SSD는 경보가 발령된 후 실제 악의적인 활동에 의해 경보가 발생하는지 여부를 결정하기 위해 사용자 조치를 필요로 할 수 있다.
DA-SSD의 중요한 목표는 운영체제가 손상된 경우에도 데이터 가용성 보호를 제공하는 것이다. 이러한 자율적인 데이터 보호를 가능하게 하기 위해 DA-SSD의 데이터 보호 기능은 SSD 경계 내에서만 실행되며 악의적인 운영체제에 의해 중단될 수 없다.
도 2는 DA-SSD와 호스트 시스템의 전체 개요도를 도시한 것이다.
도 2에 도시한 바와 같이 DA-SSD는 시스템의 주변 장치이며 PCIe 또는 SATA 버스를 통해 호스트 시스템에 연결된다. DA-SSD는 작업을 실행하고 SSD 성능을 향상시키기 위해 컨트롤러가 사용하는 NAND 플래시 칩, SSD 컨트롤러 및 DRAM으로 구성된다.
기밀성 및 무결성 지원은 기존 방법을 채택함으로써 달성될 수 있으므로 본 발명에서는 데이터 가용성에 대한 지원에 중점을 둔다. 예를 들어, 스토리지는 사용자 응용 프로그램에서 생성된 메시지 인증 코드(MAC)와 함께 암호화된 파일을 수동적으로 저장할 수 있다. 최근의 하드웨어 기반 TEE(Trusted Execution Environment)는 권한이 부여된 소프트웨어에 의해 손상될 수 없는 사용자 응용 프로그램에 대한 격리된 실행을 제공할 수 있다. 사용자 레벨 응용 프로그램 또는 라이브러리 파일 시스템은 TEE 내의 파일을 암호화하여 스토리지에 저장할 수 있다. 그러나, 종래의 방식은 데이터가 실제로 스토리지에 기록되거나 저장된 데이터가 운영체제에 의해 수정되지 않도록 하는 어떠한 메커니즘도 제공하지 않는다.
위협 모델(Threat Model)
본 발명에서는 전체 소프트웨어 스택이 손상될 수 있는 위협 모델을 가정한다. 운영체제 및 응용 프로그램은 원격 코드 실행 및 권한 상승 공격(privilege escalation attacks)과 같은 모든 유형의 소프트웨어 공격에 취약하다. 운영체제와 응용 프로그램 모두는 사용자 데이터에 대한 공격의 근원이 될 수 있다. 도 2에서 호스트 시스템에 속하는 영역은 신뢰할 수 없다.
본 발명에서는 랜섬웨어 공격이 시작되기 전에 DA-SSD와 호스트가 초기에 설정되어 있고 사용자 데이터의 상태가 올바른 것으로 가정한다. DA-SSD와 호스트가 설정되고 올바른 사용자 데이터가 DA-SSD에 저장되면 DA-SSD는 손상된 호스트에서 발생한 모든 데이터 수정 공격으로부터 보호할 수 있다.
본 발명에서는 데이터 가용성 이외에 일반적인 가용성 공격에 대한 보호를 제공하지 않는다. 운영체제는 DA-SSD를 차단하고 DA-SSD의 읽기 및 쓰기가 서비스 거부, 가용성 공격을 일으키는 것을 막을 수 있다. 시스템이 안전한 상태로 복귀할 때 데이터 가용성을 보장한다. SSD에 대한 직접적인 물리적 공격을 가정하지는 않지만, 보안 컴퓨팅 장치에서 사용되는 SSD 장치에 대한 적절한 패키징 지원을 통해 물리적 공격으로부터 SSD를 보호할 수 있다.
SSD 제조업체는 Intel SGX에서 지원하는 DAA(Direct Anonymous Attestation) 방식과 유사하게 각 SSD에 인증 서비스를 제공한다고 가정한다. 사용자 모바일 장치에 대한 보안 통지를 위해 공급 업체는 사용자에게 원격 메시지 릴레이 서비스도 제공한다.
DA- SSD
도 3은 DA-SSD의 전체 구조를 도시한 것이다.
도 3에 도시된 바와 같이, DA-SSD는 여전히 블록 저장 장치로 작동하여 파일 시스템으로부터 블록 읽기/쓰기 요청을 수신한다. 그러나 자체 자율적인 보안 기능을 나머지 시스템과 분리한다. DA-SSD를 설계하고 구현하는 데에는 몇 가지 과제가 존재한다.
DA-SSD 설계를 위해 해결해야 할 다음과 같은 5가지 설계 과제가 존재한다.
① DA-SSD는 각 SSD 내에서 루트 신뢰를 가지고 신뢰할 수 있어야 한다. 고유한 개인 및 공개 키 쌍이 포함된 각 SSD는 사용자로부터 증명되어야 하며 SSD 제조업체는 SSD의 신뢰성을 확인해야 한다.
② DA-SSD는 사용자와 SSD간에 명령 또는 메시지를 전달하는 메커니즘을 제공해야 한다. 의심스러운 활동은 운영체제가 손상 되더라도 사용자에게 안전하게 알려져야 한다. 사용자 응용 프로그램이 하드웨어 TEE에서 실행중인 경우, 통신 채널이 설정되면 사용자와 DA-SSD 간의 직접 통신이 가능하다.
③ 현재 스토리지 아키텍처에서 DA-SSD는 블록 장치이다. SSD에서 직접 사용할 수 있는 높은 레벨의 파일 시스템 시멘틱이 존재하지 않으면, 호스트에서 블록 장치로 전송되는 내용을 식별하는데 한계가 있다. 이 한계를 극복하기 위해 DA-SSD는 제한된 정보를 사용하여 높은 레벨의 의미를 추론해야 한다.
④ DA-SSD는 데이터 버전을 효율적으로 관리해야 한다. 데이터에 대한 의심스러운 활동이 감지되면 DA-SSD는 중요한 성능 오버 헤드를 발생시키지 않고 나중에 복구될 데이터의 손상되지 않은 버전을 저장해야 한다.
⑤ DA-SSD는 사용자 데이터에 대한 랜섬웨어 공격을 탐지하는 메커니즘을 제공해야 한다. 탐지 메커니즘은 데이터 버전 관리를 트리거하여 사용자에게 의심스러운 활동을 경고하는데 가능한 한 거짓 경고를 줄여야 한다.
이하에서는 DA-SSD의 5가지 설계 과제에 대한 솔루션에 대해 설명하기로 한다.
신뢰 루트를 가진 DA- SSD
데이터 가용성을 지원하기 위해 DA-SSD는 손상된 운영체제 하에서도 사용자와 안전하게 통신할 수 있어야 한다. 또한, 사용자는 현재 SSD가 데이터 가용성 기능(도 3에서 ①로 표시됨)을 지원하는 신뢰할 수 있는 제조업체의 정품 DA-SSD인지 여부를 확인할 수 있어야 한다. SSD와 사용자 간에 이러한 증명 및 보안 통신을 제공하기 위해 각 DA-SSD에는 개인 및 공개 키 쌍이 할당되어 각 SSD에서 데이터 가용성을 위한 신뢰 루트(root-of-trust)를 구축할 수 있다.
신뢰 루트를 내장하기 위해 DA-SSD는 최근의 신뢰할 수 있는 컴퓨팅 기술에 사용되는 메커니즘을 채택한다. 기존의 신뢰할 수 있는 플랫폼 모듈(TPM)은 DA-SSD에 내장될 수 있으며, SSD 제조업체는 DA-SSD에 대한 인증 서비스를 제공하여 TPM이 정품 SSD에서 사용되는지 확인한다. 또한, DA-SSD가 올바르게 작동하는지를 사용자가 확인하도록 하기 위해 DA-SSD가 변경되지 않았음을 요청자에게 알리는 원격 인증이 요청되고, 실행중인 소프트웨어는 의도된 바이너리이다. TPM이 내장된 DA-SSD 컨트롤러는 BIOS 및 컨트롤러 바이너리의 무결성을 확인하고 원격 요청자와 통신한다.
DA-SSD 내에서 신뢰 루트를 구현함으로써 DA-SSD 내에서 하드웨어 신뢰 루트를 생성한다. DA-SSD는 각 SSD에 할당된 개인/공개 키를 사용하여 사용자와의 안전한 통신을 지원할 수 있고 SSD의 무결성 등을 자체적으로 점검하고 점검 결과를 포함한 알림을 제공할 수 있다. 사용자에 대한 이러한 보안 통신 채널은 의심스러운 활동에 대해 사용자에게 알리거나 사용자로부터 데이터 쓰기를 확인하는데 필수적이다.
DA- SSD와의 보안 통신
DA-SSD는 다음과 같은 두 가지 이유로 통신 기능이 필요하다: 첫째, DA-SSD를 신뢰할 수 있게 하기 위하여 원격 인증이 요구되고, 둘째, DA-SSD는 사용자에게 적절한 알림 및 경고를 전송하고 잠재적인 위험 활동을 차단하며, 사용자로부터 명령을 받아 사용자의 의사 결정을 요구하는 상황을 해결하기 위해 사용자와 통신해야 한다. 보안 통신 기능은 도 3에서 ②로 표시된다. 개별 사용자가 DA-SSD와 직접 통신할 수 없기 때문에 공급 업체 또는 서드파티(3rd party)는 각 사용자에게 메시지 릴레이 서비스를 제공한다. 사용자는 DA-SSD를 원격으로 인증하고 신뢰할 수 있는 원격 서버를 통해 알림을 수신한다. 원격은 DA-SSD의 접촉 지점(point of contact)을 유지하고 접촉 정보를 사용하여 릴레이 메시지를 사용자에게 전송한다. 사용자는 다양한 미디어를 사용하여 경고를 수신하고 명령을 전송할 수 있다. 앱이 설치된 휴대 전화 또는 웹 서비스를 사용할 수 있다.
DA-SSD의 통신 기능에는 운영체제 측 드라이버의 지원이 필요하다. DA-SSD 드라이버는 DA-SSD와 데이터를 송수신하기 위하여 운영체제에서 구동될 것이며, NIC를 통해 신뢰할 수 있는 원격지로 릴레이한다. DA-SSD는 원격지에 대한 주기적인 하트비트(heartbeat) 메시지를 생성하고, 드라이버는 하트비트 메시지를 주기적으로 발송할 것이다. DA-SSD에서 생성된 다른 경고가 존재하거나 동작에 대해 들어오는 요청이 존재하면 원격지로부터 전송되는 증명 요청 또는 사용자 명령이든 간에 드라이버는 메시지를 적절히 릴레이한다.
통신 기능은 손상된 운영체제에 의한 공격을 견딜 필요가 있다. 본 발명의 위협 모델에는 손상된 시스템이 포함되어 있기 때문이다. 들어오고 나가는 메시지의 기밀성 및 무결성 문제를 해결하기 위해 DA-SSD의 TPM은 암호화하고 무결성 검사를 메시지에 추가한다. 신뢰할 수 있는 원격지 또는 DA-SSD를 떠나는 모든 메시지는 공격자가 위조할 수 없으므로 메시지의 변경은 수신 측에서 탐지될 수 있다.
가용성은 더 어려운 과제이다. 운영체제가 손상된 경우 운영체제는 DA-SSD에 대해 생성되거나 바인딩된 메시지를 송수신하는 것을 거부하도록 선택할 수 있다. 이 경우 DA-SSD와 원격(remote) 서버는 통신할 수 없다. 원격은 주기적인 하트비트가 거부되고 사용자가 지정한 매체를 통해 사용자에게 경고할 것임을 알린다. 사용자는 시스템이 올바르게 작동하는지 확인해야 하며, 그렇지 않은 경우 시스템을 올바른 상태로 복원하는데 필요한 조치를 취해야 한다. 호스트 시스템의 성공적인 종료와 통신 차단을 구별하기 위해 드라이버는 전원 켜기 및 전원 끄기 관련 메시지를 원격 서버로 전송한다. 전원 끄기 메시지 후에 하트비트가 누락되면 하트비트의 누락은 자연스러운 현상이므로 사용자에게 경고하지 않는다.
마지막으로, DA-SSD가 메시지가 원격으로 전송되지 않고 원격에서 응답(ack) 메시지가 없음을 감지하면 DA-SSD는 현재 운영체제에 의해 네트워크 접근을 제한 당하고 있다고(Denial of Service, DoS) 판단할 수 있으며, 이때 네트워크 접근을 제한 당하고 있다고 판단되면 현재 상태의 스냅 샷을 생성하고 정상적으로 기능을 유지한다.
DA-SSD는 호스트 시스템의 네트워크 인터페이스 카드를 사용하여 외부(사용자 및 신뢰할 수 있는 원격 서버)와 통신한다. DA-SSD 운영체제 드라이버는 DA-SSD와의 메시지 릴레이를 담당한다. 손상된 운영체제는 운영체제 드라이버를 공격할 수 있지만, 본 발명에서는 이러한 공격으로부터 시스템을 보호하는 메커니즘을 도입한다.
보안 사용자 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 보안 통신에 사용하는 것과 동일한 신뢰할 수 있는 원격 서버를 통해 수행된다.
DA-SSD와의 보안 검증 및 통신 수단을 도입함에 따라 이 통신 채널을 사용하여 키를 교환한다. enclave는 원격 서버의 사전 설치된 공개 키를 사용하여 보안 채널을 설정한다. 먼저, 원격 증명 요청이 실행되고, enclave는 원격의 공개 키를 사용하여 증명 요청을 확인한다. Enclave가 원격에서 릴레이된 메시지를 기반으로 DA-SSD가 올바르게 작동하는지 여부를 확인한 후에는 DA-SSD와 키를 교환한다. Enclave의 공개 키와 DA-SSD는 신뢰할 수 있는 원격을 통해 교환된다. 키가 교환되면, enclave와 DA-SSD가 설정되고 보안 채널을 통해 통신할 준비가 된다.
블록 수준 정보로 파일 정보 도출
DA-SSD는 DA-SSD에 저장된 데이터를 기반으로 한 파일의 시멘틱 추론에 의존한다. 이하에서는 의심되는 블록에 의해 작성된 파일의 파일 이름을 수집하기 위해 도 3의 ③에서 사용된 것처럼 지정된 논리 블록 번호가 존재하는 경우 파일 이름을 가져 오는 역방향 조회에 대해 설명한다.
SSD는 블록 장치이며, 블록 장치는 파일 시스템 및 파일 I/O 요청의 시멘틱을 제한적으로 볼 수 있다. SSD는 SSD에서 전송되는 블록이나 SSD로 들어오는 블록만 볼 수 있다. DA-SSD는 오프셋 시의 파일에 대한 읽기/쓰기와 같은 파일 시스템 레벨 시멘틱에 대한 액세스 권한을 가지고 있지 않다.
그러나 DA-SSD가 파일 시스템을 분석하고 필요한 정보를 얻는 것은 가능하므로 결국 실제 데이터는 SSD에 존재한다. 디스크의 슈퍼블록에는 파티션 테이블 정보가 들어 있으며 마스터 부트 레코드(MBR) 또는 GUID 파티션 테이블(GPT) 형식을 사용한다. DA-SSD는 디스크 슈퍼블록의 정보를 사용하여 각 파티션의 슈퍼블록을 읽을 수 있다. DA-SSD는 파티션 슈퍼블록에 인코딩된 파일 시스템 유형에 기반하여 파일을 블록 관계로 획득하기 위한 파일 시스템 아이노드(inode)를 찾을 수 있다. 따라서 파일이 주어지면 사용자는 파일을 구성하는 블록을 알 수 있다.
추가 엔지니어링을 사용하면 DA-SSD가 소유자 파일을 역순으로 조회하거나 파일 이름을 지정하여 블록 목록을 열거할 수 있는 역방향 조회(reverse lookup)를 수행할 수도 있다. 호스트 시스템이 블록을 기반으로 DA-SSD I/O 요청을 전송하면 역방향 조회는 기록중인 파일을 나타낸다. 이 정보는 특정 파일이 업데이트되었음을 사용자에게 알리기 위해 DA-SSD가 사용할 수 있으며 파일이 손상되지 않았는지 사용자에게 확인하도록 요청할 수 있다. 이는 도 3에서 점선 화살표로 나타내고 있다. 이 정보는 또한 사용자가 알지 못하는 업데이트를 사용자가 알 수 있게 해줄 수 있는데, 이는 사용자 데이터에 대한 공격일 수 있다.
이 기능을 위해 DA-SSD는 파일 시스템의 구성을 알아야 한다. 일례로 NTFS 및 ext4 파일 시스템을 사용하였으나 DA-SSD를 확장하여 더 많은 파일 시스템을 인식할 수 있다. 호환성 문제를 방지하기 위해 파일 시스템의 구조가 거의 변경되지 않기 때문에 널리 사용되는 다양한 파일 시스템으로 DA-SSD를 로드할 수 있다. 특정 파일 시스템을 변경하거나 새로운 파일 시스템을 추가해야 하는 경우 DA-SSD 소프트웨어를 업데이트하여 변경 사항을 인식할 수 있다.
또한, 효율적인 역방향 조회를 위해 DA-SSD는 별도의 역방향 매핑 트리를 유지해야 할 수 있다. 블록 단위로 역방향 트리를 유지하면 매우 큰 트리가 생성된다. 최근에 파일 시스템은 순차 디스크 액세스 성능을 향상시키기 위해 파일의 데이터를 저장하기 위한 대용량의 연속 디스크를 사용하기 시작하였다. Ext4 파일 시스템에서 블록은 'extents'로 구성된다. 구간 트리와 같은 데이터 구조가 역방향 매핑 트리에 사용될 수 있다. 또한, DA-SSD는 슈퍼 블록과 아이노드 블록에 대한 수정 사항을 감시할 수 있으며. 수정이 있을 때마다 DA-SSD는 내부적으로 유지 관리되는 데이터 구조로 변경 사항을 업데이트한다.
DA-SSD는 블록 장치이며, 블록 장치로서의 DA-SSD는 파일 시스템의 시멘틱을 제한적으로 볼 수 있다. 그러나 DA-SSD는 데이터를 보유하고 있는 실제 데이터 저장소이기 때문에 DA-SSD의 계산 단위를 확장하여 DA-SSD에 보관된 데이터를 분석할 수 있다. 기존 체계를 기반으로 데이터가 구조화되어 있기 때문에 DA-SSD는 내부에 저장된 데이터로 파일 시스템을 이해할 수 있다.
공격에 따른 데이터 보호
DA-SSD는 도 3의 ④와 같이 공격이 진행되는 동안 사용자 데이터를 보호하기 위한 메커니즘을 제공해야 한다. 데이터에 대한 공격은 데이터 버전을 생성하거나 주어진 지점에서 제시간에 데이터의 스냅 샷을 만들어 방어될 수 있다. 본 명세서에서는 버저닝과 스냅 샷이라는 용어를 같은 의미로 사용한다. 공격 탐지 메커니즘의 신뢰도에 따라 취해지는 조치는 다를 수 있다. 몇 가지 다른 상황을 살펴보고 나서 마지막으로 사용자 데이터를 보호하는 버저닝 기반 보호 방식을 설명한다.
첫째, 스토리지에 저장된 데이터를 주기적으로 버전 관리하는 것이다. 정기적인 버전 관리는 주어진 간격으로 스냅 샷을 만들고, 보다 빈번한 스냅 샷은 스냅 샷 저장 용량 오버 헤드에서 더 높은 안전성을 제공한다. 용량이 부족한 상태에서 저장이 시작되면 이전 스냅 샷은 새 스냅 샷과 들어오는 디스크 쓰기를 위한 공간을 확보하기 위해 폐기된다. 이 방법은 사용자가 임의의 랜섬된 데이터를 식별하고 이전 버전의 데이터를 복원하는 것에 의존한다. 그러나 암호화된지 오랜 시간이 흐른 후에 사용자가 파일에 액세스하려고 하면 암호화되기 전에 파일을 보유한 버전이 폐기될 가능성이 있다. 또 다른 방법은 디스크를 멈추고 이전 버전을 폐기하겠다는 확인을 사용자에게 요청하는 것이다. 이를 위해서는 사용자가 업데이트된 모든 파일을 살펴보고 예외를 선별해야 하므로 확인해야 할 엄청난 양의 파일로 인해 사용자에게 너무도 큰 부담이 될 수 있다.
데이터에 대한 잠재적인 위협을 식별할 수 있는 탐지 메커니즘이 있는 경우 데이터 보호 기능을 향상시킬 수 있다. 다음으로 탐지 메커니즘을 소개한다.
둘째, 공격 탐지 메커니즘이 긍정 오류를 생성할 경우 이하에서 설명하게 될 메커니즘과 마찬가지로 DA-SSD에는 충분한 지식이 없으며 의심스러운 이벤트를 악성 또는 양성으로 판단하지 않는다. 따라서 DA-SSD는 가능한 모든 공격으로부터 사용자 데이터를 보호해야 하며 동시에, 사용자에게 결정을 요청해야 한다. 사용자는 의심스러운 쓰기 엔트로피로 수정된 파일에 대한 알림을 받고 파일을 확인하며 쓰기를 판단하도록 요청 받는다. 따라서, 사용자가 판단을 요구받는 시간 동안 DA-SSD에 대한 데이터 보호가 요구된다.
사용자가 쓰기가 악의적이라고 결정하면 DA-SSD는 쓰기를 거부하고 사용자는 손상된 시스템을 안전한 상태로 복원하기 위해 조치를 취해야 한다. 또한 사용자는 시스템이 손상되는 동안 읽기 전용 모드에서 DA-SSD의 데이터를 읽을 수 있는 옵션을 갖게 된다. 문제를 해결한 후 사용자가 DA-SSD에 시스템의 안전 상태를 알리면 DA-SSD는 정상적으로 작동할 것이다.
셋째, 탐지 메커니즘이 많은 샘플을 필요로 한다면 DA-SSD는 검출기가 샘플을 수집하는 동안 데이터를 안전하게 유지할 필요가 있다. 이러한 경우, DA-SSD가 제공하는 데이터 보호가 필수적이다.
마지막으로, 탐지 메커니즘이 데이터가 공격 받고 있다고 확신한다면 DA-SSD는 모든 쓰기 요청이 NAND 스토리지에 기록되는 것을 중지할 수 있다. 또한, DA-SSD는 호스트 시스템에 I/O 오류를 전송하도록 선택할 수 있으며, 앞에서 설명된 대역 외 통신을 통해 사용자에게 경고 메시지를 전송한다. 이러한 경우 DA-SSD는 악성으로 분류된 쓰기 요청을 거부하여 사용자 데이터를 보호한다.
DA-SSD의 데이터 보호 기능을 사용하는 네 가지 상황은 위에서 설명한 바와 같다. 전반적으로, 데이터 보호는 랜섬웨어로부터 데이터를 보호하기 위해 필수적이다. DA-SSD에는 두 가지 보호 기능이 요구된다. 첫 번째는 쓰기 요구가 NAND 스토리지에 기록되는 것을 거부하는 것이다. 이것은 I/O 스토리지 장치 인터페이스가 호스트 시스템에 I/O 오류를 알리는 기능을 갖추고 있기 때문에 쉬운 부분이다. 두 번째는 잠재적으로 위험한 데이터 업데이트를 허용하면서 데이터를 보호하는 것이다. 본 발명에서는 스냅 샷 및 복구 기반 보호 방법을 사용하여 원본 데이터의 스냅 샷을 만든 후 나중에 들어오는 새로운 쓰기를 DA-SSD에 기록하는 방법을 제안한다.
스냅 샷을 사용한 데이터 보호: SSD에는 기존 페이지 장치와의 호환성을 제공하기 위해 페이지 재매핑 기능이 이미 탑재되어 있다. SSD는 NAND 플래시의 쓰기 전 지우기(erase-before-write) 제약으로 인해 기존 페이지에 쓸 수 없다. 따라서 데이터가 제 위치에서 업데이트 될 때마다 데이터는 실제로 다른 빈 페이지에 쓰여지고 매핑 테이블은 페이지의 위치를 새로 작성된 위치로 업데이트한다. 그런 다음 이전 데이터는 유효하지 않은 것으로 표시되고, 후에 가비지 수집 작업에 의해 교정되고 지워진다.
relocate-on-write라고도 불리우는 쓰기 동작은 매우 간단한 스냅 샷 메커니즘을 만들기 위해 활용될 수 있다. 본 발명에서는 스냅 샷 메커니즘을 사용하여 DA-SSD에서 데이터의 버전 관리를 제공한다. DA-SSD는 단조롭게 증가하는 카운터인 글로벌 버전을 유지 관리한다. 매핑 방식이 구현된 DA-SSD의 각 페이지 또는 각 블록에는 작성된 버전과 만료된 버전의 두 가지 버전 번호가 필요하다. DA-SSD에 대한 모든 기록은 현재 글로벌 버전에 기록중인 특정 페이지/블록의 기록된 버전으로 주석을 붙인다. 페이지/블록이 아직 만료되지 않았으므로 만료된 버전은 비어 있다.
작성된 버전은 이 페이지/블록이 유효하게 된 버전 번호를 나타낸다. 만료된 버전은 이 페이지/블록이 무효화 된 버전 번호를 나타낸다. 각 블록의 수명은 작성된 버전과 만료된 버전을 사용하여 표시된다. 본 발명에서는 프로세스 당 두 개의 버전 데이터를 저장하기 위해 16비트 값을 사용하는데, 페이지 당/블록 당 추가로 4B의 저장 공간이 필요하다.
스냅 샷 생성: 글로벌 버전을 증가시키면 현재 데이터 상태가 자동으로 스냅 샷되고, DA-SSD에 대한 향후 모든 기록은 새 버전과 함께 쓰여진다. SSD의 쓰기(relocate-on-write) 동작으로 인해 기존 페이지에 대한 모든 업데이트 기록이 새 페이지에 기록될 것이다. 그러나 일반 SSD 또는 동일한 버전 내에서 작성하는 경우와 달리, 새로 작성된 페이지와 이전 페이지의 버전이 다른 경우 이전 페이지는 유효하지 않은 것으로 표시되지 않는다. 이 동작은 도 4의 (b)에 나타나 있다. 대신 이전 페이지는 페이지의 버전을 유지한다. 이전 페이지는 페이지가 폐기되는 경우에만 무효화된다.
예제를 통해 버전 관리 메커니즘을 설명하면 다음과 같다. 도 4는 다른 I/O 명령에 따른 각 페이지(SSD의 쓰기 단위)의 상태를 나타낸 것으로, 다양한 작업 후 페이지의 변경 사항을 보여준다. 이때, 4개의 페이지 각각은 SSD의 물리적 페이지의 서비스 세트를 나타내고 있다.
도 4의 (a)는 초기 상태를 나타내며, 여기서 논리 페이지(LBA) 2는 좌측 상단의 물리적 페이지에 위치한다. 다른 세 페이지는 프리(free) 페이지이다. DA-SSD는 글로벌 버전을 유지하며 모든 버전은 이 글로벌 버전을 기반으로 한다. 이 예에서 글로벌 버전은 4이다.
다른 버전의 업데이트: LBA 2에 대한 업데이트가 요청되면 도 4의 (b)와 같이 첫 번째 free 페이지가 기록된다. 쓰기는 글로벌 버전이 4일 때 작성되었으므로 작성된 버전은 4이다. 그러나 페이지가 아직 만료되지 않았으므로 만료된 버전은 공백(제로)으로 남게 된다. 이전 LBA 2(왼쪽 상단)는 덮어 쓰여졌기 때문에 만료되며, 글로벌 버전 4에서 만료되었으므로 만료된 버전은 4로 표시된다. 이때 물리적으로 LBA 2가 있는 두 페이지가 존재한다. DA-SSD는 실제로 매핑 테이블의 가장 최근 페이지를 가리키고 있으므로 이 경우, LBA 2에 대해 오른쪽 상단 페이지를 가리키게 된다.
동일한 버전의 업데이트: LBA 2에 대한 다른 업데이트가 동일한 글로벌 버전 4에서 요청되면(도 4의 (c)) 업데이트는 새로운 free 페이지(왼쪽 하단)에 기록된다. 이제 오른쪽 상단 페이지가 음영 처리되어 유효하지 않음을 나타낸다. 동일한 버전으로 페이지를 작성하고 만료된 경우, 페이지는 무효화되고 가비지 수집기가 이 페이지를 수집하여 삭제된다. 이것은 실제로 일반 SSD의 쓰기와 동일한 동작이다.
도 4의 (d)에서는 LBA 2에 대한 또 다른 업데이트가 요청되었지만 글로벌 버전이 5로 증가되었다. free 페이지가 발견되고(우측 하단) 작성된다. 이제 작성된 페이지는 5이고 이전에 가리키는 페이지(하단 좌측)는 버전 5에서 만료된 것으로 표시된다.
폐기 버전: 마지막으로, DA-SSD는 5 이상의 모든 버전을 폐기하라는 명령을 받는다(도 4의 (e)). 이 경우, 버전 5 이전에 작성된 페이지와 버전 5 이전 또는 5에서 만료되는 모든 페이지는 무효화된다. 5보다 오래된 모든 버전이 만료되는 것은 4개 이하의 버전이 더 이상 필요하지 않기 때문이다.
TRIM 작업: SSD의 TRIM 명령을 처리해야 한다. TRIM 명령은 호스트 파일 시스템에서 명령과 함께 전송 된 해당 (논리) 페이지 주소가 더 이상 사용되지 않으며 가비지 수집기가 교정할 수 있음을 SSD에 알리기 위해 사용된다.
일반 SSD에서 TRIM 명령이 실행(출력)될 때 명령과 함께 제공되는 해당 논리 페이지 주소가 조회되고 가비지가 수집되도록 유효하지 않은 것으로 표시된다. 버전 관리가 도입되면 해당 페이지를 유효하지 않은 것으로 표시하지 않고 현재 글로벌 버전으로 페이지를 만료한다. 작성된 버전과 만료된 버전이 동일하면, 이 동작은 일반 SSD의 TRIM 동작과 일치하므로 페이지를 무효화한다.
매핑 테이블 관리: DA-SSD의 매핑 테이블은 항상 특정 LBA의 가장 최근 페이지를 가리킨다. 그러나 데이터 공격이 탐지되면 보호된 파일을 복원하거나 액세스하기 위해 시스템을 제 시간에 되돌리거나 DA-SSD의 특정 상태로 되돌려야 한다. 이러한 경우, DA-SSD는 특정 버전에 대한 매핑 테이블을 재구성해야 한다. DA-SSD는 각 물리적 페이지의 작성된 버전과 만료된 버전을 보관하는 두 개의 테이블을 거치게 된다. 또한, 각 물리적 페이지의 논리적 페이지 주소를 보유하는 기존 테이블도 스캔된다. 특정 버전 또는 대상 버전에 대한 매핑 테이블을 재구성 할 때 페이지의 작성된 버전과 만료된 버전이 조회된다. 대상 버전이 작성된 버전보다 크고 만료된 버전이 대상 버전보다 크거나 페이지가 아직 만료되지 않은 경우 논리 페이지 주소를 조회한다. 마지막으로, 재구성된 매핑 테이블은 인덱스로서의 논리 페이지 주소 및 값으로서의 물리적 페이지 번호로 채워진다. 세 개의 테이블을 검사해야 하지만, 재구성은 사용자가 특정 버전을 복원해야 하는 경우에만 수행된다. 이 액션은 드문 경우이므로 큰 비용을 감수할 수 있다.
제안된 버전 관리 메커니즘은 성능 측면에서 쓰기가 영향을 받지 않으므로 매우 경량이다. 작성된 버전과 만료된 버전 테이블에 대한 두 번의 추가 쓰기가 필요하지만, 이러한 쓰기는 큰 지연을 유발하지 않는다. 이는 페이지에 대한 쓰기가 물리적 페이지 측면에서 공간적인 지역성을 가지며 테이블이 물리적 페이지의 관점에서 인덱싱되어 컨트롤러 캐시 또는 적어도 SSD의 DRAM의 테이블 항목에 대한 빈번한 히트(hits)의 가능성을 제공하기 때문에 테이블이 캐시될 가능성이 높기 때문이다. 특정 버전으로 롤백하려면 약간의 시간이 소요되는 재구성 맵핑 테이블이 필요하다. 그러나 버전 복원은 자주 발생하지 않고 공격이 발생했을 때만 발생한다. 일반적인 페널티 업데이트가 존재하지 않으며, 느리지만 빈번하지 않은 재구성은 실용적인 디자인 설계 선택이라 할 수 있다.
랜섬웨어 활동 감지
DA-SSD는 사용자 데이터에 대한 가능한 공격(도 3의 ⑤)을 식별할 수 있어야 한다. DA-SSD는 블록 장치이며 DA-SSD에 기록될 수신 데이터 블록에 대한 가시성이 제한된다. 따라서 기존 기술을 기반으로 한 DA-SSD에 대한 위협 탐지 기능을 사용한다. 위협 탐지의 목적은 블록 장치에 대한 정상 및 악의적인 활동을 구분하는 것이다.
최근 연구에서는 엔트로피 값을 사용하여 악의적인 쓰기를 발견한다. Shannon 엔트로피는 파일을 나타내는 바이트의 다양성이나 불확실성을 나타낸다. Shannon 엔트로피는 수학식 1을 사용하여 계산된다. 각 바이트가 0과 255 사이의 값을 가질 수 있는 바이트 단위의 엔트로피 계산을 사용한다. 4096B의 페이지 엔트로피를 계산하려면 0에서 255 사이의 값이 나타날 때마다 카운트되며, pi는 값이 나타날 확률을 나타낸다.
[수학식 1]
Figure 112018024130968-pat00001
일반적으로 파일은 바이트 표현의 서브 세트만을 사용하기 때문에 일반적인 파일의 엔트로피는 상대적으로 낮아야 한다. 예를 들어, 텍스트 파일이나 소스 코드는 문자(ASCII)의 하위 집합으로 표현되며 알파 숫자는 256 개의 사용 가능한 바이트 값 중 62개의 문자로 제한된다. 이 특성은 파일 엔트로피를 상대적으로 낮게 한다. 반면에, 암호화된 데이터는 높은 다이버시티(diversity) 데이터를 발생시켜 높은 엔트로피 값을 유도한다.
엔트로피 값의 블록은 잠재적으로 위험한 디스크 활동을 탐지하는데 사용될 수 있다. 엔트로피 값은 기록중인 블록이 큰 엔트로피 값을 갖는 경우 보안 시스템에 경고하기 위해 사용될 수 있다. 도 3에 도시된 바와 같이, 본 발명에서는 잠재적으로 위험한 블록 쓰기가 데이터 보호 메커니즘을 트리거하고(④) 식별될 수 있도록 대기열에 올려진다(③).
본 발명에서는 작성중인 블록의 엔트로피 값을 사용하는 방법을 제안한다. 이전 방법과 달리, 엔트로피 계산기와 감지 메커니즘을 SSD 내부에 구현한다. DA-SSD는 SSD에 쓰여질 호스트 컴퓨터에서 오는 데이터 블록에 액세스한다. 간단한 하드웨어 엔트로피 계산기를 사용하여 비정상적인 기록을 신속하게 감지하고 전력을 효율적으로 소비할 수 있다.
실제 사용자 파일의 엔트로피 값을 연구하기 위해 매일 사용되는 문서, 소스 코드, 미디어 파일 등의 파일 엔트로피를 계산하였다. 도 5는 40,000개 이상의 파일을 분석하고 23,000개가 넘는 파일의 엔트로피 분포를 도시한 것이다. 가정과 달리, Microsoft Office 파일 ppt(x), doc(x), xls(x), pdf 문서, 이미지 파일(png, jpg, gif), 미디어 파일(mp3, wma, mp4), 압축 파일(zip, gz) 등과 같은 일반적인 유형의 파일들은 매우 높은 엔트로피 값을 가지고 있다.
암호화된 파일의 엔트로피는 예상대로 높은 엔트로피 값을 가진다. AES CBC 모드를 사용하여 도 5에 도시된 것과 동일한 파일을 암호화하고 암호화 된 파일의 엔트로피를 이용한다. 암호화된 파일이 7.48과 8.0 사이의 엔트로피를 갖는 것을 알 수 있다. 여기서 8은 최대 값이다. 암호화된 파일 엔트로피의 흥미로운 특징은 파일 엔트로피가 파일 크기에 따라 증가하는 경향이 있다는 것이다. 낮은 엔트로피 값은 512B의 작은 크기의 파일에 대해 발생한다. 1kB보다 큰 파일은 엔트로피가 7.75 이상이었고 2kB 이상의 파일은 7.88 이상을 나타냈다. 마지막으로, 4kB 이상의 파일은 엔트로피가 7.94 이상인 것으로 나타난다, 이러한 결과는 파일 크기가 클수록 암호화에 의해 더 많은 임의성이 생성될 수 있기 때문에 당연한 결과이다. 암호화 된 파일은 도 5에 도시되어 있다.
실제 사용자 데이터의 엔트로피 결과는 엔트로피 값에 대한 가정에 문제가 있음을 보여준다. 정상 파일의 엔트로피 값이 상대적으로 낮다고 가정한다. 실제 사용자 파일의 엔트로피 값을 이용한 결과 이러한 가정이 잘못된 것임을 알 수 있다. 그럼에도 불구하고 긍정 오류를 생성하는 본 발명의 경우에서도 성공적인 데이터 공격이 발생하지 않으며 역순으로 조회할 블록을 더 생성하고 스냅 샷을 더 자주 생성한다.
암호화된 파일의 높은 엔트로피 값을 기반으로 DA-SSD는 엔트로피 기반의 랜섬웨어 탐지기를 사용한다. DA-SSD는 간단한 특수 로직을 사용하여 DA-SSD에 기록될 모든 블록을 계산함으로써 기록될 모든 블록의 엔트로피 검사하고, 의심스러운 블록이 들어오는 경우 경보를 트리거한다. 도 5에 도시한 바와 같이, 엔트로피 값 7.4를 임계 값으로 사용할 수 있다. 경보를 발생시키는 임계 엔트로피 값은 정밀도 또는 긍정 오류에 대해 속임수 블록을 검출하는 리콜과 상충된다.
DA-SSD가 적시에 긍정 오류를 처리할 수 있는 한, 임계 값을 낮추면 더 많은 경고가 발생하지만 리콜이 높아지므로 랜섬웨어 쓰기에 대한 강력한 방어력을 제공한다. 엔트로피 값 7.4를 임계 값으로 사용 가능하나 임계 값은 장치의 기능과 생성된 긍정 오류의 양에 따라 동적으로 조정될 수 있다.
탐지기의 긍정 오류는 데이터 손실을 초래하지 않는다. 그러나 더 빈번한 DA-SSD 방어 메커니즘을 유발하여 공간 오버 헤드를 유발할 수 있다. 엔트로피 값이 높은 일부 일반적인 파일은 쓰기 및 업데이트 시 악의적인 쓰기로 인식되므로 잘못된 경보를 유발한다. 그러나 이미지, 오디오 및 비디오 파일은 대개 일반 사용자가 수정하지 않아 정적이므로 일반적으로 많은 긍정 오류를 유발하지 않아야 한다. 또한, 정상적인 사용자 활동으로 인해 역방향 조회 메커니즘 및 스냅 샷 메커니즘에 과도하게 높은 부하가 발생하지 않을 것으로 판단된다. 그리고, 블록 쓰기에 대해 일정 주기나 특정 기준에 도달하는 시점에 사용자나 공급 업체로 버전의 삭제나 롤백 등 버전 관리에 대한 설정을 요구할 수 있다.
상기에서는 엔트로피를 기반으로 한 위협 탐지 기법을 설명하였으나, 이에 한정되는 것은 아니며, 같은 파일의 같은 블록의 쓰기 전후 값을 비교하는 방법, 그리고 블록의 데이터 값을 분석하여 위협을 탐지하는 방법 등 위협 탐지를 위해 사용되는 다양한 알고리즘의 적용 또한 얼마든지 가능하다.
이와 같이 본 발명의 실시예들에 따르면, 사용자 데이터에 대한 공격이 날로 증가하는 것을 막기 위해 데이터 가용성을 위한 SSD(DA-SSD)을 제공할 수 있으며, SSD에 포함되어 있는 주소 매핑 기능과 컨트롤러 논리를 사용하여 사용자 데이터에 대해 들어오는 공격을 탐지하고 보호할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영체제(OS) 및 상기 운영체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (23)

  1. SSD(solid state drive) 장치에 있어서,
    악의적인 공격으로부터 사용자 데이터를 보존하는 데이터 가용성(data availability)을 제공하기 위해,
    보안 기능이 호스트 시스템과 분리된 독립적인 블록 저장 장치로 동작하고,
    상기 사용자 데이터에 대해 복수 개의 버전의 데이터를 저장하고 운영체제(OS)에 의해 중단되지 않는 데이터 버전 관리(versioning) 프로세스
    를 포함하고,
    상기 SSD 장치는 손상된 운영체제 하에서 사용자를 포함한 외부와의 통신과 SSD 인증을 위해 SSD에 고유한 개인 및 공개 키 쌍이 존재하는 플랫폼 모듈이 내장되어 상기 개인 및 공개 키 쌍을 이용하여 상기 외부와의 보안 통신을 지원하고 SSD의 무결성을 포함한 자체 점검을 통해 SSD의 점검 결과를 포함한 알림을 상기 외부로 제공하는 신뢰 루트(root-of-trust)를 포함하는 것
    을 특징으로 하는 SSD 장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 SSD 장치는 SSD 공급 업체나 서드파티(3rd party)의 원격 서버에서 제공하는 메시지 릴레이 서비스를 통해 SSD와 사용자 간의 통신 기능을 제공하는 것
    을 특징으로 하는 SSD 장치.
  5. 제4항에 있어서,
    상기 SSD 장치는 SSD에서 주기적으로 생성된 하트비트(heartbeat) 메시지를 상기 원격 서버로 전송하고 상기 원격 서버로부터의 상기 하트비트 메시지에 대한 응답 메시지의 유무를 감지하는 것
    을 특징으로 하는 SSD 장치.
  6. 제5항에 있어서,
    상기 SSD 장치는 상기 하트비트 메시지가 상기 원격 서버로 전송되지 않고 상기 원격 서버로부터 상기 응답 메시지가 없음이 감지되면 SSD에서 운영체제에 의해 네트워크 접근이 제한되고 있는 것으로 판단하는 것
    을 특징으로 하는 SSD 장치.
  7. 제6항에 있어서,
    상기 SSD 장치는 SSD에서 운영체제에 의해 네트워크 접근이 제한되고 있는 것으로 판단되면 현재 상태의 스냅 샷을 생성하는 것
    을 특징으로 하는 SSD 장치.
  8. 제1항에 있어서,
    상기 SSD 장치는 디스크의 블록(block)에 포함된 파티션 테이블 정보를 이용하여 각 파티션의 블록을 읽어오고 해당 블록에 인코딩된 파일 시스템 유형에 기반하여 주어진 파일을 구성하는 블록을 찾는 것
    을 특징으로 하는 SSD 장치.
  9. 제8항에 있어서,
    상기 SSD 장치는 블록이 주어지면 파일 이름으로 역방향 조회(reverse lookup)를 수행하는 것
    을 특징으로 하는 SSD 장치.
  10. 제1항에 있어서,
    상기 SSD 장치는 쓰기 요청에 대해 스냅 샵 메커니즘을 이용한 데이터 버전 관리를 수행하는 것
    을 특징으로 하는 SSD 장치.
  11. 제10항에 있어서,
    상기 SSD 장치는 플래시 변환 레이어(flash translation layer) 구조를 이용하여 원본 데이터의 스냅 샷을 만든 후 새로운 쓰기를 SSD에 기록하는 것
    을 특징으로 하는 SSD 장치.
  12. 제10항에 있어서,
    상기 SSD 장치는 상기 쓰기 요청에 대해 긍정 오류(false positive) 가능성이 있는 요청을 식별하여 데이터 버전 관리를 수행하는 것
    을 특징으로 하는 SSD 장치.
  13. 제10항에 있어서,
    상기 SSD 장치는 엔트로피 기반 탐지 방식을 이용하여 상기 쓰기 요청 중에서 악의적인 쓰기를 식별하여 데이터 버전 관리를 수행하는 것
    을 특징으로 하는 SSD 장치.
  14. SSD 장치에 있어서,
    NAND 플래시 칩을 스토리지로 사용하여 데이터를 저장하는 SSD; 및
    상기 SSD에 결합되는 컨트롤러
    를 포함하고,
    상기 컨트롤러는,
    악의적인 공격으로부터 상기 데이터를 보존하는 데이터 가용성을 제공하기 위해,
    상기 SSD를 보안 기능이 호스트 시스템과 분리된 독립적인 블록 저장 장치로 동작하도록 제어하고 상기 데이터를 복수 개의 버전으로 저장하고 운영체제에 의해 중단되지 않는 데이터 버전 관리 프로세스
    를 포함하고,
    상기 SSD 장치는 손상된 운영체제 하에서 사용자를 포함한 외부와의 통신과 SSD 인증을 위해 SSD에 고유한 개인 및 공개 키 쌍이 존재하는 플랫폼 모듈이 내장되어 상기 개인 및 공개 키 쌍을 이용하여 상기 외부와의 보안 통신을 지원하고 SSD의 무결성을 포함한 자체 점검을 통해 SSD의 점검 결과를 포함한 알림을 상기 외부로 제공하는 신뢰 루트(root-of-trust)를 포함하는 것
    을 특징으로 하는, SSD 장치.
  15. SSD의 제어 동작을 위한 방법에 있어서,
    상기 방법은,
    악의적인 공격으로부터 사용자 데이터를 보존하는 데이터 가용성을 제공하기 위해,
    상기 SSD를 보안 기능이 호스트 시스템과 분리된 독립적인 블록 저장 장치로 동작하도록 제어하고 상기 사용자 데이터에 대해 복수 개의 버전의 데이터를 저장하고 운영체제에 의해 중단되지 않는 데이터 버전 관리를 수행하는 단계
    를 포함하고,
    상기 수행하는 단계는,
    손상된 운영체제 하에서 사용자를 포함한 외부와의 통신과 SSD 인증을 위해 하드웨어 신뢰 루트(root-of-trust)로서 내장된, SSD에 고유한 개인 및 공개 키 쌍이 존재하는 플랫폼 모듈을 통해 상기 개인 및 공개 키 쌍을 이용하여 상기 외부와의 보안 통신을 제공하고 SSD의 무결성을 포함한 자체 점검을 통해 SSD의 점검 결과를 포함한 알림을 상기 외부로 제공하는 단계
    를 포함하는, 방법.
  16. 삭제
  17. 제15항에 있어서,
    상기 수행하는 단계는,
    SSD 공급 업체나 서드파티의 원격 서버에서 제공하는 메시지 릴레이 서비스를 통해 SSD와 사용자 간의 통신 기능을 제공하는 단계
    를 포함하는, 방법.
  18. 제17항에 있어서,
    상기 수행하는 단계는,
    SSD에서 주기적으로 생성된 하트비트 메시지를 상기 원격 서버로 전송하고 상기 원격 서버로부터의 상기 하트비트 메시지에 대한 응답 메시지의 유무를 감지하는 단계;
    상기 원격 서버로부터 상기 응답 메시지가 없음이 감지되면 SSD에서 운영체제에 의해 네트워크 접근이 제한되고 있는 것으로 판단하는 단계; 및
    SSD에서 운영체제에 의해 네트워크 접근이 제한되고 있는 것으로 판단되면 현재 상태의 스냅 샷을 생성하는 단계
    를 포함하는, 방법.
  19. 제15항에 있어서,
    상기 수행하는 단계는,
    디스크의 블록에 포함된 파티션 테이블 정보를 이용하여 각 파티션의 블록을 읽어오고 해당 블록에 인코딩된 파일 시스템 유형에 기반하여 주어진 파일을 구성하는 블록을 찾는 단계
    를 포함하는, 방법.
  20. 제19항에 있어서,
    상기 수행하는 단계는,
    블록이 주어지면 파일 이름으로 역방향 조회를 수행하는 단계
    를 포함하는, 방법.
  21. 제15항에 있어서,
    상기 수행하는 단계는,
    쓰기 요청에 대해 스냅 샵 메커니즘을 이용한 데이터 버전 관리를 수행하는 단계
    를 포함하는, 방법.
  22. 제21항에 있어서,
    상기 수행하는 단계는,
    플래시 변환 레이어 구조를 이용하여 원본 데이터의 스냅 샷을 만든 후 새로운 쓰기를 SSD에 기록하는 단계
    를 포함하는, 방법.
  23. 제21항에 있어서,
    상기 수행하는 단계는,
    엔트로피 기반 탐지 방식을 이용하여 상기 쓰기 요청 중에서 악의적인 쓰기를 식별하여 데이터 버전 관리를 수행하는 단계
    를 포함하는, 방법.
KR1020180028172A 2018-03-09 2018-03-09 사용자 데이터 보호를 제공하는 데이터 가용성 ssd 아키텍처 KR102106689B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180028172A KR102106689B1 (ko) 2018-03-09 2018-03-09 사용자 데이터 보호를 제공하는 데이터 가용성 ssd 아키텍처

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180028172A KR102106689B1 (ko) 2018-03-09 2018-03-09 사용자 데이터 보호를 제공하는 데이터 가용성 ssd 아키텍처

Publications (2)

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

Family

ID=68070891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180028172A KR102106689B1 (ko) 2018-03-09 2018-03-09 사용자 데이터 보호를 제공하는 데이터 가용성 ssd 아키텍처

Country Status (1)

Country Link
KR (1) KR102106689B1 (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100404906B1 (ko) * 2001-12-20 2003-11-07 한국전자통신연구원 클러스터 시스템의 고 가용성 구현장치 및 방법
US7743257B2 (en) * 2002-06-27 2010-06-22 Nxp B.V. Security processor with bus configuration
US8055864B2 (en) * 2007-08-06 2011-11-08 International Business Machines Corporation Efficient hierarchical storage management of a file system with snapshots
US8041991B2 (en) * 2008-11-18 2011-10-18 Lsi Corporation System and method for recovering solid state drive data
US8625788B2 (en) * 2011-01-05 2014-01-07 Intel Corporation Method and apparatus for building a hardware root of trust and providing protected content processing within an open computing platform
KR20120082218A (ko) * 2011-01-13 2012-07-23 (주)인디링스 파티션 정보를 기초로 호스트의 요청에 대한 처리 기법을 적응적으로 결정하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법

Also Published As

Publication number Publication date
KR20190106544A (ko) 2019-09-18

Similar Documents

Publication Publication Date Title
Bailleu et al. {SPEICHER}: Securing {LSM-based}{Key-Value} Stores using Shielded Execution
Baek et al. SSD-insider: Internal defense of solid-state drive against ransomware with perfect data recovery
Min et al. Amoeba: An autonomous backup and recovery SSD for ransomware attack defense
US11809605B2 (en) Method and system for storage-based intrusion detection and recovery
US9817582B2 (en) Offload read and write offload provider
US20080046997A1 (en) Data safe box enforced by a storage device controller on a per-region basis for improved computer security
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
US20090150611A1 (en) Management of external memory functioning as virtual cache
TWI610182B (zh) 用於提供儲存裝置上動態檔案系統的察知之系統及方法
US20200089884A1 (en) Method and apparatus for ransomware detection
US20130125237A1 (en) Offline extraction of configuration data
US20240111870A1 (en) Systems and Methods For Protecting Against Malware Attacks
US8307175B2 (en) Data recovery and overwrite independent of operating system
Butler et al. Rootkit-resistant disks
Wang et al. Mimosaftl: adding secure and practical ransomware defense strategy to flash translation layer
US20150074820A1 (en) Security enhancement apparatus
Ahn et al. DiskShield: a data tamper-resistant storage for Intel SGX
KR102106689B1 (ko) 사용자 데이터 보호를 제공하는 데이터 가용성 ssd 아키텍처
Chakraborti et al. Dm-x: protecting volume-level integrity for cloud volumes and local block devices
US10664595B2 (en) Managing reads and writes to data entities experiencing a security breach from a suspicious process
Cui et al. Towards trustable storage using SSDs with proprietary FTL
US20170235953A1 (en) Systems and Methods for Providing Dynamic File System Awareness on Storage Devices
KR102386219B1 (ko) Sgx-ssd를 이용한 정책 기반 버전관리 방법 및 그 시스템
Ahn et al. Sgx-ssd: A policy-based versioning ssd with intel sgx
Ahn et al. A Policy-based Versioning SSD with Intel SGX

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