KR20230047018A - 플렉서블 용량 특징을 갖는 저장 장치의 보안을 향상시키는 방법 - Google Patents

플렉서블 용량 특징을 갖는 저장 장치의 보안을 향상시키는 방법 Download PDF

Info

Publication number
KR20230047018A
KR20230047018A KR1020220123742A KR20220123742A KR20230047018A KR 20230047018 A KR20230047018 A KR 20230047018A KR 1020220123742 A KR1020220123742 A KR 1020220123742A KR 20220123742 A KR20220123742 A KR 20220123742A KR 20230047018 A KR20230047018 A KR 20230047018A
Authority
KR
South Korea
Prior art keywords
area
data
ssd
security
data area
Prior art date
Application number
KR1020220123742A
Other languages
English (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 고려대학교 산학협력단
Publication of KR20230047018A publication Critical patent/KR20230047018A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)

Abstract

SSD(Solid State Drive) 컨트롤러에 의해 수행되는 SSD의 보안 향상 방법이 개시된다. 상기 SSD의 보안 향상 방법은 호스트(host)로부터 OP 영역(Over-Provisioning area)의 조정을 위한 요청을 수신하는 단계, 상기 요청에 응답하여, 상기 SSD의 OP 영역을 조정하는 단계, 및 OP 영역으로부터 사용자 영역(user area)으로 변경된 무효화 데이터 영역에 대한 보안 삭제 동작을 수행하는 단계를 포함한다.

Description

플렉서블 용량 특징을 갖는 저장 장치의 보안을 향상시키는 방법{METHOD FOR IMPROVING SECURITY IN STORAGE DEVICE WITH FLEXIBLE CAPACITY FEATURE}
본 발명은 저장 장치의 보안을 향상시키는 방법에 관한 것으로, 특히 SSD(Solid State Drive)와 같이 플렉서블 용량 특징(flexible capacity feature)을 갖는 저장 장치의 보안을 향상시키는 방법에 관한 것이다.
일반적으로, NAND 플래시 기반 저장 장치는 페이지(page) 단위로 리드(read) 동작과 프로그램(program) 동작을 수행하고, 블록(block) 단위로 이레이즈(erase) 동작을 수행한다. 여기서, 블록은 복수의 페이지들로 구성된다. 낸드 플래시 메모리의 구조적인 이슈로 인하여, 데이터를 사용하는 단위(data-use unit)와 데이터를 삭제하는 단위(data-erase unit)가 서로 상이하다. 이러한 차이점은 낸드 플래시 메모리 내에서의 데이터 관리를 복잡하게 만든다. 각각이 서로 다른 블록들에 포함된 유효 페이지 데이터들만을 수집하여 새로운 블록을 만드는 가비지 컬렉션(garbage collection)이 필연적이다. 이러한 가비지 컬렉션은 쓰기 증폭(write amplification)을 동반한다. 쓰기 증폭은 저장 장치의 수명(lifetime) 및/또는 내구성(endurance; TBW)에 큰 영향을 주고 있다. 일반적으로 가비지 컬렉션은 리드/프로그램 동작 이외에 백그라운드 동작에서 수행되고 있다. 하지만, 호스트의 쓰기 요청(write request)에 따라 가비지 컬렉션이 방해를 받음(interrupted)으로써, 시스템 성능은 느려진다.
본 발명이 이루고자 하는 기술적인 과제는 플렉서블 용량 특징을 갖는 저장 장치의 보안을 향상시키는 방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 SSD의 보안 향상 방법은 SSD(Solid State Drive) 컨트롤러에 의해 수행되는 SSD의 보안 향상 방법으로서, 호스트(host)로부터 OP 영역(Over-Provisioning area)의 조정을 위한 요청을 수신하는 단계, 상기 요청에 응답하여, 상기 SSD의 OP 영역을 조정하는 단계, 및 OP 영역으로부터 사용자 영역(user area)으로 변경된 무효화 데이터 영역에 대한 보안 삭제 동작을 수행하는 단계를 포함한다.
본 발명의 다른 실시예에 따른 SSD의 보안 향상 방법은 SSD 컨트롤러에 의해 수행되는 SSD의 보안 향상 방법으로서, 상기 SSD 내에서 무효화 데이터 영역의 비율, 유효화 데이터 영역의 비율, 상기 무효화 데이터 영역에 대한 상기 무효화 데이터 영역의 비율, 및 상기 무효화 데이터 영역에 대한 상기 유효화 데이터 영역의 비율 중 어느 하나의 비율을 모니터링하는 단계, 호스트로부터 OP 영역의 조정을 위한 요청을 수신하는 단계, 상기 요청에 응답하여, 상기 SSD의 OP 영역을 조정하는 단계, 및 상기 어느 하나의 비율의 변화가 미리 정해진 임계치를 초과하는 경우, 알림 메시지를 상기 호스트로 전송하는 단계를 포함한다.
본 발명의 실시예에 따른 SSD의 보안 향상 방법에 의할 경우, OP 영역의 조정으로 발생하는 무효화 데이터 영역에 포함된 정보가 유출되는 문제를 해결할 수 있다.
또한, 본 발명의 실시예에 따른 SSD의 보안 향상 방법에 의할 경우, 무효화 데이터 영역 등의 모니터링을 통해 템퍼링 공격(tempering attack) 및/또는 정보 노출 공격(information disclosure attack)을 탐지할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 워크로드(workload)에 따른 가변적인 OP(Over-Provisioning) 사이즈를 도시한다.
도 2는 SSD(Solid State Drive)의 플렉서블 용량 특징(flexible capacity feature)을 설명하기 위한 도면이다.
도 3은 OP 영역에서 포렌식 타겟을 설명하기 위한 도면이다.
도 4는 가변적인 OP 영역을 이용한 정보 노출 공격 모델을 설명하기 위한 도면이다.
도 5는 SSD에서의 프라이버시 데이터에 대한 포렌식 이슈를 설명하기 위한 도면이다.
도 6은 OP 영역의 컨버전을 이용한 멀웨어 코드 주입 프로세스를 도시한다.
도 7은 리드 컨버전 툴(read conversion tool)을 이용한 포렌식 프로세스를 도시한다.
도 8은 3-페이지들을 1-페이지로 변환할 때의 상태 맵핑을 도시한다.
도 9는 본 발명의 실시 예에 따른 저장 장치를 예시적으로 보여주는 도면이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시예들을 상세히 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
데이터-하이딩 어택(data-hiding attacks)은 플래시 기반 저장 장치, 예컨대 USB 장치에 대한 파일 시스템 조작(file system manipulation)에 따라 악의적인 코드(malicious code)를 숨긴다. 이러한 종류의 어택에서, 공격자는 악의적인 코드를 MBR(master boot record, MBR), VBR(volume boot record), 또는 파티션의 외부에 숨겨진 다른 예약된 섹터(reserved sector)에 저장한다. 또한, 공격자는 이러한 코드를 "bad" 또는 "in use" 데이터를 위한 섹터에 저장하고 파일 시스템의 메타데이터를 조작함으로써, OS(operating system)가 저장된 섹터에 억세스하는 것을 차단한다.
NAND 플래시 메모리는 내재적으로 오리지널 데이터(original data)에 대한 잔존 이슈(residual issue)를 갖는다. 이는 프로그램 동작 단위와 이레이즈 동작 단위가 상이하기 때문이다. 예를 들면, 1 보다 큰 WAF(write amplification factor)는 유효 블록(valid block)의 데이터가 사용자에 의해 삭제되나, 무효 블록(invalid block)은 여전히 오리지널 데이터를 포함하고 있음을 의미한다. 이는 스마트폰에서 삭제된 데이터를 고려함으로써 알 수 있다. 실제로, 실제 스마트폰 데이터가 6 개월을 더 경과하여 삭제되지 않고 포렌식에 의해 복구되는 예가 존재한다. 이러한 문제점은 NAND 플래시 메모리에 기반한 저장 장치들에게도 유사하게 존재한다. 따라서, 저장 장치가 데이터베이스에 적용될 때, 개인 정보가 사용자에 의해 삭제되었다 하더라도, 높은 가능성으로 저장 장치의 무효 블록 내에 존재할 수 있다. 데이터베이스 사업자들은 이러한 무효 블록들 내에서의 개인 정보의 완전한 삭제를 보장할 필요가 있다.
본 발명에서는 가변적 오버 프로비저닝(variable over provisioning) 도메인을 이용한 공격 모델을 최초로 제시한다. 특히, 데이터-하이딩 어택(data-hiding attacks)과 개인 정보-획득 어택(personal information-acquiring attacks)을 소개하고, 이에 대하여 보안을 향상시키는 기법을 제안한다.
가변적 오버 프로비저닝(variable over-provisioning)
오버 프로비저닝(Over-Provisioning, OP)은 저장 장치의 일부 공간을 성능을 향상시키기 위한 버퍼로써 사용하는 기능을 의미한다.
오버 프로비저닝(over-provisioning)
오버 프로비저닝은 논리 블록들(logical blocks)의 개수보다 더 많은 물리적인 블록들(physical blocks)을 허용한다. 다시 말하면, SSD 컨트롤러는 특정 퍼센트의 물리 블록을 볼 수 있지만, OS(operating system)나 파일 시스템은 제한된다. 일반적으로, SSD 제조사들은 오버 프로비저닝을 위한 공간으로 7% 내지 25%를 할당한다. 사용자는 단순히 가용의 물리적 공간(available physical space) 보다 더 작은 파티션들을 생성함으로써 더 많은 오버 프로비저닝 공간을 생성할 수 있다. 오버 프로비저닝 공간은 OS 레벨에서 보이지 않지만, SSD 컨트롤러는 여전히 보거나 이를 사용할 수 있다. 오버 프로비저닝 공간이 필요한 주된 이유는 메모리 셀들의 제한된 라이프 사이클(life cycle)을 완화하기 위함이다. 보이지 않는 오버 프로비저닝 블록(invisible over-provisioning block)은 OS가 볼 수 있는 공간 내의 블록들이 수명을 다 했을 때(expire) 자동적으로 교체되고 사용된다.
가비지 컬렉션(garbage collection)은 리드/프로그램 동작 이외에 백그라운드 동작에서 수행된다. 하지만, 호스트의 쓰기 요청(write request)에 따라 가비지 컬렉션이 방해를 받음으로써, 시스템 성능은 느려진다.
오버 프로비저닝은 성능 향상을 위하여 저장 장치의 일부 공간을 버퍼와 같이 사용하는 기능이다. 오버 프로비저닝 공간은 일종의 가비지 컬렉션이 수행되는 전용 버퍼 공간으로 이해될 수 있다. 오버 프로비저닝 공간은 사용자에게 공개되지 않으며, 낸드 플래시 메모리를 제어하는 제어기(SSD 컨트롤러)의 제어를 받는다.
도 1을 참조하면, 오버 프로비저닝 공간은 저장 장치의 성능에 비례한다. 최근에, 데이터 저장 시스템에서 워크로드(workload)에 따라 오버 프로비저닝 공간을 가변하는 기술이 공개되고 있다. 간단하게 말하면, 워크로드에 따라 최적의 성능을 유지하기 위하여 물리적 공간을 조정하는 것이다. 예를 들어, 워크로드의 카테고리에 따라 오버 프로비저닝 공간의 크기가 달라진다. 만일, 랜덤 쓰기 요청(random write requests)에 대응하는 워크로드의 경우에는 오버 프로비저닝 공간이 노멀 쓰기 요청(normal write requests)의 경우보다 커질 것이다. 반면에, 순차 쓰기 요청(sequential write requests)에 대응하는 워크로드의 경우에 오버 프로비저닝 공간은 노멀 쓰기 요청의 경우보다 작을 것이다. 최근에는 채널의 워크로드에 대하여 머신 러닝을 이용하여 카테고리를 결정하는 기술이 소개 되고 있다. 워크로드에 대한 카테고리 및 예상되는 열화에 기초하여 오버 프로비저닝 공간이 최적화 될 수 있다.
플렉서블 용량 특징(flex capacity feature)
마이크론(Micron)사는 최근에 워크로드에 따라 저장 장치의 용량을 변경하는 플렉서블 용량 특징(flexible capacity feature)을 갖는 SSD를 출시했다. 다양한 어플리케이션의 요구를 만족하기 위하여, 플렉서블 용량 특징을 갖는 SSD는 최적의 성능을 발휘할 것으로 기대된다.
도 2에 도시된 모델에는 1TB의 사용 가능한 공간이 존재한다. 도 2의 왼쪽 드라이브는 사용 가능한 960GB 용량을 포함하고 공장에서 구성된 예이다. 960GB에서 이 SSD는 Micron 기본 사용자/시스템 용량, 공장 설정 오버 프로비저닝 및 공장 설정 쓰기 IOPS(Input/Output Operations Per Second) 성능을 제공한다. 초기 설정 용량인 960GB는 좋은 기본 옵션이다.
도 2의 중앙 드라이브는 Micron Flex Capacity 기능을 사용하여 SSD의 쓰기 성능을 개선하고 사용 가능한 용량을 800GB로 약간 줄이는 방법을 보여준다. 800GB 사용자 용량으로 쓰기 IOPS 성능이 향상된다. 또는 800GB SSD를 교체해야 하는 경우 960GB Micron SSD를 사용하여 800GB로 쉽게 재설정할 수 있다.
도 2의 오른쪽에 있는 드라이브는 Micron Flex Capacity 기능을 사용하여 사용자 용량을 480GB로 조정하여 쓰기 성능을 더욱 향상시키는 또 다른 방법을 보여준다. 더 쓰기 집약적인 워크로드에 동일한 예제 SSD를 사용하거나 폐기되었을 수 있는 480GB SSD를 교체하는 데 사용할 수 있다.
실시 예에 있어서, 쓰기 IOPS 성능을 조정하거나 기존 800GB 또는 480GB SSD의 용량과 일치하도록 960GB Micron SSD를 재설정할 수 있다. 그러나 Micron Flex Capacity 기능을 사용하면 Micron SSD를 627GB, 472GB 또는 필요한 용량으로 쉽게 재설정할 수 있다. 공장 및 사용자 용량은 다르지만 Flex Capacity 기능이 있는 다른 Micron SSD에도 동일한 효과를 사용할 수 있다.
Micron Flex Capacity 기능을 사용하면 사용 가능한 기가바이트를 쉽게 변경할 수 있으므로 쓰기 IOPS 성능 및 용량 조정을 영구적으로 또는 일시적으로 수행하도록 선택할 수도 있다. 또한, 알려진 워크로드와 가장 잘 일치하도록 SSD를 설정하거나 예기치 않은 애플리케이션 I/O 수요를 보다 쉽게 관리하도록 특성을 변경할 수 있다. SSD의 쓰기 IOPS 성능을 영구적으로 또는 필요할 때만 필요한 기간 동안만 향상시킬 수도 있다.
서로 다른 애플리케이션과 워크로드는 최상의 결과를 위해 서로 다른 스토리지를 요구하고 있다. 데이터 센터 메인스트림 스토리지가 SSD로 빠르게 이동함에 따라 IOPS 성능과 가용 용량 모두에 대해 정밀하게 최적화된 구성에 대한 수요가 증가하고 있다.
Micron Flex Capacity 기능을 사용하면 계획자, 설계자, 구현자 및 관리자가 더 이상 SSD 구성, 성능 옵션 및 용량의 제한된 수로 인해 타협할 필요가 없다. Micron Flex Capacity 기능을 사용하면 플래시에서 애플리케이션 조정 가능 SSD를 쉽게 생성할 수 있다.
애플리케이션 및 워크로드에 비용 중심의 읽기 중심 워크로드로 더 큰 용량이 필요하든, 쓰기 집약적 워크로드에 대해 더 큰 쓰기 IOPS 성능이 필요하든, 혼합 용도(읽기/쓰기 균형 포함)에 적합한 성능이 필요하든 Flex는 용량 기능을 통해 필요한 정확한 성능과 용량 조정이 가능하고 검증 주기와 비용을 최소화할 수 있다.
포렌식 타겟(forensic target)
펌웨어 매니저(firmware manager)는 SSD의 OP 영역의 크기를 조정할 수 있다. 도 3에 도시된 바와 같이, 포렌식 타겟으로 관심을 갖는 영역은 OP 영역을 가변함으로써 생성된 무효화 데이터 영역이다. 펌웨어 매니저를 통해 OP 영역은 사용자에 의해 자유롭게 가변 될 수 있다. 해커는 펌웨어 매니저를 이용하여 OP 영역의 크기를 작게 변경할 수 있다. 이 과정에서 필연적으로 무효화 데이터 영역이 생성되게 된다. 이렇게 생성된 무효화 데이터 영역에 대한 소거 동작이 즉각적으로 수행되는 것이 데이터 보호 관점에서 바람직하다. 하지만, 저장 장치의 관리 정책에 따라, 일반적으로 무효화 데이터 영역은 상당한 시간 동안 방치될 가능성이 높다. 무효화 데이터 영역에 대한 소거 동작을 수행하는 것보다는, 무효화 데이터 영역으로 방치하는 것이 관리 비용 면에서 유리하다고 판단하기 때문이다.
공격 모델(attack model)
정보-노출 공격 모델(information-disclosing attack model)
최근에, 많은 저장 장치들이 성능의 최적화를 위하여 실시간으로 OP 영역의 크기를 가변하고 있다. 일반적으로, OP 영역의 크기가 크면 클수록 성능이 향상되는 것으로 알려져 있다. 최대 50%로 OP 영역이 설정되는 경우도 존재한다. 포렌식 타겟으로 관심을 갖는 영역은 OP 영역을 가변함으로써 생성된 무효화 데이터 영역이다. 펌웨어 매니저에 의해 OP 영역은 사용자에 의해 자유롭게 가변될 수 있다. 그러나, 해커는, 도 4에 도시된 바와 같이, 펌웨어 매니저를 이용함으로써 OP 영역이 더 작은 사이즈를 갖도록 조정할 수 있다.
이러한 프로세스에서, 무효화 데이터 영역(invalid data area)은 필연적으로 생성된다. 새롭게 생성된 무효화 데이터 영역에 대한 이레이즈 동작이 즉각적으로 실행될 수도 있다. 그러나, 저장 장치의 관리 정책에 따르면, 무효화 데이터 영역은 상당한 기간 동안 방치될 수 있다.
해커가 저장 장치의 관리 테이블(management table)에 접근(access)할 수 있다고 가정할 때, 해커는 이러한 무효화 데이터 영역에 대하여 아무런 제약없이 접근할 수 있다.
종래에도 포렌식 장비를 이용하여 낸드 플래시 메모리의 무효화 데이터 영역에 접근함으로써, 데이터를 확보할 수 있었다. 그러나, OP 영역을 가변하는 저장 장치의 경우는 특별한 포렌식 장비가 없어도, 무효화 데이터 영역의 어드레스를 알고 있다면, 호스트 사용자에 의해 합법적인 리드 동작을 요청할 수 있다. 도 5를 참조하면, 특별한 포렌식 장비를 필요로 하지 않고도, 컴퓨터 사용자로써 해커는 낸드 플래시 메모리의 이러한 무효화 데이터 영역에 접근할 수 있고, 무효화 데이터 영역에 저장되어 있는 정보에 따라 그 심각성은 더욱 커질 수 있다.
템퍼링 공격 모델(tempering attack model)
OP 영역을 가변하는 것은 저장 장치의 히든 영역(hidden area)에 대한 억세스 권한(access rights)을 사용자에게 이양하는 것을 암시한다. OP 영역의 크기를 관리하는 펌웨어를 이용함으로써, 사용자는 히든 영역에 대한 어떠한 동작이라도 수행할 수 있다. 말하자면, OP 영역은 비밀 정보를 숨기기 위하여 사용자의 "secret safe"로써 이용될 수 있다. 사용자는 펌웨어와 플래시 변환 레이어(flash conversion layer) 모두에 대한 권한을 갖는다고 가정할 때, 사용자는 비밀 정보를 사용자 영역에 저장한 후에 저장된 비밀 정보를 무효화할 수 있다. 이러한 무효화 처리 동작에 따르면, 비밀 정보는 사용자 영역으로부터 물리적으로 삭제되지 않고 맵핑 테이블 엔트리(mapping table entry)만이 삭제된다. 그런 다음, 사용자는 펌웨어를 통해 무효화된 비밀 정보가 저장되어 있는 영역을 OP 영역으로 전환한다. OP 영역은 잘 알려진 히든 영역(hidden region)이고, 사용자의 비밀 정보는 이 곳에 숨겨진다.
사용자가 해커라면 어떤 일이 발생할까? 도 6에 도시된 바와 같이, 해커는 악의적인 코드(malicious code), 예컨대 멀웨어 코드(malware code)를 OP 영역에 숨길 수 있다. 도 6에서, 기술의 편의를 위해 두 개의 저장 장치들(SSD1과 SSD2)은 하나의 채널로 연결되어 있는 것으로 가정한다. 각 저장 장치는 50% OP 영역을 갖는다. 해커가 멀웨어 코드를 SSD2에 저장한 후에, 즉시 SSD1의 OP 영역을 25%로 감소시키고 SSD2의 OP 영역을 75%로 확장시킨다. 이 시점에서, 멀웨어 코드는 SSD2의 OP 영역, 즉 히든 영역에 포함된다. SSD에 대한 억세스를 획득한 해커는 OP 영역의 크기를 재조정함으로써 언제든지 임베디드된 멀웨어 코드를 활성화시킬 수 있다. 노멀 사용자들은 100%의 사용자 영역을 유지하기 때문에, 해커들의 이러한 악의적인 행동들을 탐지하는 것은 쉽지 않다. 따라서, 이러한 해커들의 악의적인 은폐(malicious concealment)를 감지하거나 방지할 수 있는 방법이 필요하다.
이러한 템퍼링 공격의 심각성은 노멀 사용자 또는 정당한 DB 관리자가 공격을 인식하지 못하는 데에 있다. 일단 악의적인 코드가 히든 영역으로 삽입되면, 노멀 유저들은 히든 영역에 억세스할 수 없기 때문에 이러한 공격들은 탐지될 수 없다. 게다가, 정당한 DB 관리자에게도, 히든 영역에 삽입된 악의적인 코드는 유효 데이터가 아닌 무효 데이터의 형태로 저장되기 때문에, 탐지의 가능성은 매우 낮다. 따라서, 이러한 템퍼링 공격의 심각성을 고려할 때, 유효 데이터 영역과 무효 데이터 영역에 더해 사용자 영역 뿐만 아니라 히든 영역 내의 악의적인 코드를 탐지할 수 있는 기법이 필요하다.
기존의 NAND 플래시 메모리의 표준 동작은 무효화 데이터 영역에 대한 악의적인 코드 감지 기법을 제공하지 않는다. 다양한 포렌식 장비와 기법들을 통해 감지가 가능하더라도, 이는 매우 많은 시간이 소요되고, 실시간으로 이러한 기법들을 적용하는 것은 DB 운영자에게는 매우 큰 비용을 부담시킨다. 따라서, NAND 플래시 메모리 제공자는, 무효화 데이터 영역에 대한 스캔/리드 동작을 수행하기 위하여 표준 프로토콜을 변화시킬 필요가 있다. 여기서, 스캔/리드 동작은, 호스트의 특별한 요청(special request)에 따른 무효화 데이터 영역에 대한 리드 동작을 포함한다.
사용자가 이러한 특별한 요청을 생성하기 위해서, SSD는 무효 데이터 영역에 대한 유효 데이터 영역의 비율을 모니터링할 필요가 있다. 유효 데이터 영역에 대한 무효 데이터 영역의 비율이 특정 참조 값(reference value)을 초과할 때, SSD는 스페셜 요청에 대하여 호스트에게 경고(주의 또는 알람)할 수 있다. 호스트 또한, 이러한 비율들의 급격한 변화가 발생할 때, 경고를 수신할 수 있다. 템퍼링 공격을 탐지하는 것은 어렵기 때문에, 무효화 데이터 영역과 유효화 데이터 영역의 비율은 실시간으로 모니터링되어야 한다. 따라서, SSD는 이러한 템퍼링 공격들을 예방하기 위한 특별한 프로세서가 탑재될 필요도 있다.
포렌식 프로세스(forensic process)
낸드 제조사들에 따라 OP 영역에 포함된 블록의 메모리 셀의 종류가 다를 수 있다. 일반적으로 낸드 플래시 메모리를 구성하는 메모리 셀의 종류에는 SLC(Single Level Cell), MLC(Multi Level Cell), TLC(Triple Level Cell), QLC(Quad Level Cell), PLC(Penta Level Cell) 등이 존재한다. SLC는 하나의 메모리 셀에 1개의 데이터 비트를 저장하는 것이고, MLC는 메모리 셀에 2개의 비트를 저장하는 것이고, TLC는 하나의 메모리 셀에 3개의 데이터 비트를 저장하는 것이고, QLC는 하나의 메모리 셀에 4개의 데이터 비트를 저장하는 것이다. 하나의 셀에 많은 비트를 저장할수록, 데이터를 쓰거나 읽는데 시간이 많이 소요되고, 관리도 어렵다. SLC를 이용하여 OP 영역을 관리하는 제품도 있고, 사용자 영역의 메모리 블록과 동일한 MLC/TLC/QLC로 OP 영역을 관리하는 제품도 있다. 따라서 OP 영역을 구성하는 메모리 셀의 종류에 따라 포렌식의 과정이 서로 다르다.
SLC OP 영역
SLC로 구성되는 경우, OP 영역에서 사용자 영역으로 변경된 경우 무효화 블록의 용량은 3배의 용량으로 늘어날 것이다. 해커는 하나의 물리 페이지에 대하여 3 페이지(MSB(Most Significant Bits)/CSB(Center Significant Bits)/LSB(Least Significant Bits))에 대한 데이터를 읽을 수 있다. 읽혀진 3 페이지 데이터는 SLC 프로그램에 대응하는 하나의 페이지로 변경될 수 있다. 도 7에 도시된 바와 같이, 이러한 페이지 데이터는 소거 상태와 나머지 상태들의 데이터의 조합으로 이루어 진다.
리드 컨버전 툴(read conversion tool)은 MSB 페이지 데이터, CSB 페이지 데이터, 및 LSB 페이지 데이터를 수신하고, 하나의 SLC 페이지 데이터를 출력할 수 있다. 변환 원리는, 도 8에 도시된 바와 같이, TLC의 8 개의 상태들(E, P1 to P7) 중에서 소거 상태(E)와 나머지 상태들(P1 to P7)을 두 개의 SLC 상태들(E, P)로 치환하는 것이다.
TLC OP 영역
OP 영역이 MLC/TLC/QLC 등으로 구성될 경우, 해커는 OP 영역에서 사용자 영역으로 변경된 무효화 블록에 대한 노멀 리드 동작을 수행할 것이다. 이때, 해커는 변경된 무효화 블록에 대한 정확한 물리적인 어드레스를 알고 있다고 가정한다. 해커는 SSD의 타겟 영역에 대한 읽기 요청을 전송할 수 있다. 이 경우, 읽기 요청은 특정 파일 이름이고, 확장자(extension)는 'txt'일 수 있다. 예컨대, 해커는 타겟 영역에서 'dump.txt'에 대한 읽기 요청을 생성할 수 있다. 'dump.txt'에 대한 읽기 요청에 응답하여, SSD는 무효화 데이터 영역의 타겟 영역에서 읽기 동작을 수행하고 데이터를 해커에게 전송할 수 있다.
이하에서는, 가변 OP 기술에 대한 보안 향상 기법에 대해 설명한다.
상술한 바와 같이, 가변 OP 기술은 포렌식 이슈를 갖는다. 진보된 포렌식 기술이 없더라도, 사용자에 의해 해킹 툴을 통한 포렌식 가능성은 매우 높다. 데이터베이스를 위해 사용되는 저장 시스템에서, 이는 심각한 위협이 될 수 있다. 이러한 위협에 대하여, 아래의 보안 향상 기법들을 제안한다.
데이터 암호화 및 가변 OP 절차 인증
FIPS(연방정부 정보처리 표준) 140-2는 IT 제품이 기밀은 아니지만 민감한 용도로 사용될 때 충족해야 할 암호화 및 관련 보안 요건을 규정한 미정부 표준이다. 일반적으로, 하드웨어에 암호화가 내장된 SSD를 좀 더 일반적으로 자체 암호화 드라이브(self-encryption drives, SED)라고 부른다. SED 기술은 사용자 데이터에 대해 거의 뚫을 수 없는 사전 부팅 액세스 보호 기능을 제공하는, 검증되고 인증된 데이터 보안을 제공한다. 암호화는 드라이브의 컨트롤러의 일부이기 때문에 사전 부팅 데이터 보호를 제공한다. 소프트웨어 유틸리티를 실행하여 인증 코드를 해독하려는 시도는 소프트웨어가 로드되기 전에 암호화가 활성화되기 때문에 불가능하다. 항상 활성화되어 있는 암호화 기능의 다른 장점은 TCG(Trusted Computing Group) Opal 2.0 사양과 IEEE-1667 액세스 인증 프로토콜을 준수하여 드라이브가 뱅킹, 금융, 의료 및 정부 애플리케이션의 데이터에 대한 정부 표준의 규정 준수 요구 사항을 충족하도록 할 수 있다는 것이다. 하지만, 드라이브의 JTAG 디버깅 인터페이스에 연결하고 패스워드 검증 루틴을 수정해 입력한 패스워드와는 상관없이 언제나 성공적으로 인증된 상태를 유지하는 문제점이 공개되었다.
기존의 SSD 내의 보안 기능들은 상술한 SED와 TCG가 주를 이룬다. 이러한 보안 기능들은 데이터 비밀을 보호하는 간단한 기법들이다. 많은 SSD 제조사들과 데이터베이스 소비자들은 앞서 언급한 무효화 데이터 영역들에 대한 포렌식 이슈에 침묵하고 있다. 그러나, 이러한 침묵은 해답이 될 수 없다. 이는, OP 영역의 가변에 따라 심각한 정보 노출이나 정보 하이딩이 발생할 수 있기 때문이다. 예를 들면, 처리되는 모든 데이터가 암호화된다 하더라도, 해커는 언제나 무효화된 영역을 이용하여 데이터를 숨길 수 있다. 게다가, 암호화된 데이터라 하더라도, 양자 컴퓨팅 기술(quantum computing technology)을 가진 해커는 무효화 영역에 대한 읽기 동작을 통해 암호화된 데이터를 확보할 수 있고, 확보한 데이터에 대한 복호화 동작을 수행할 수 있다. 이러한 포렌식 이슈로부터 자유로워지기 위해서, 무효화 영역에 대한 삭제 검증(deletion verification)을 필수적인 프로세스로 의무화 하여야 한다. 따라서, 상술한 문제점들을 근본적으로 차단하기 위해서, OP 영역을 가변하는 펌웨어에 대한 억세스는 보다 강하게 규제되거나 SSD 펌웨어 사용자들을 인증하기 위한 더욱 강력한 기법들이 요구된다.
보안 가비지 컬렉션(secure garbage collection)
기본적으로, 낸드 플래시 메모리는 프로그램/리드 단위와 이레이즈 단위가 다르기 때문에 상당량의 가비지 컬렉션을 야기하고 있다. 이러한 가비지 컬렉션은 필연적으로 낸드 플래시 메모리 내부의 오리지널 데이터의 전파 확산을 뒤따르게 한다. 다시 말하면, 유효화 블록에 오리지널 데이터가 존재한다면, 복수의 무효화 블록들에도 오리지널 데이터가 그대로 방치될 가능성이 매우 높다. 프라이버시 관점에서 가비지 컬렉션은 오리지널 데이터의 확산을 방지하는 방향으로 수행되어야 한다. 보안 카피-백 프로그램을 제안함으로써 오리지널 데이터의 확산을 방지하는 안전한 보안 가비지 컬렉션이 소개되고 있다.
가변 OP 영역 후의 온-더 플라이(on-the-fly) 이레이즈(erase) 동작
데이터베이스 시스템들의 실시간 성능 향상을 위하여, 가변 OP 기능은 필수적이다. 이러한 기능을 탑재한 시스템에서, OP 영역에서 사용자 영역으로 바뀐 블록들에 대하여 (온-더 플라이 방식으로) 이레이즈 동작이 필요하다. 노멀 이레이즈 동작은 비용 및 시간 측면에서 추천되지 않을 것이다. 따라서, 시간 및 비용을 줄이는 유사 이레이즈 동작(pseudo erase operation, 수도 이레이즈 동작)이 요구된다. 유사 이레이즈 동작은 기본적으로 전체 혹은 부분 프로그램 동작을 포함할 것이다.
구체적으로, OP 영역의 변화가 발생한 경우, SSD(SSD의 컨트롤러 또는 프로세서의 동작으로 이해될 수 있음)는 OP 영역에서 사용자 영역으로 변경된 무효화 데이터(또는 무효화 데이터 영역)의 적어도 일부에 대한 보안 삭제 동작을 수행할 수 있다. 실시 예에 있어서, 보안 삭제 동작은 이레이즈 동작을 포함할 수 있다. 이때, 보안 삭제 동작은 온-더 플라이 이레이즈 동작을 의미할 수 있다.
일 실시예에 따르면, OP 기능을 제공하는 SSD는 호스트로부터 OP 영역의 변경을 위한 요청을 수신하고, 수신된 요청에 따라 SSD의 OP 영역을 조절(또는 변경)할 수 있다. 이때, 호스트로부터 수신된 요청은 기존의 OP 영역(의 사이즈) 및/또는 변경할 OP 영역(의 사이즈)에 대한 정보를 포함할 수 있다.
OP 영역의 변경에 따라, OP 영역으로부터 사용자 영역으로 변환된 무효화 데이터 영역이 발생할 수 있다. 이때, SSD(SSD의 컨트롤러 또는 프로세서)는 무효화 데이터 영역의 적어도 일부에 대한 (온-더 플라이 방식)의 이레이즈 동작을 수행함으로써, 무효화 데이터에 포함된 정보의 노출을 차단할 수 있다. 결국, 무효화 데이터 영역에 저장되어 있는 정보의 유출을 차단함으로써 저장 장치의 보안이 향상될 수 있다.
ZNS(Zone Namespace)
일반적으로 가비지 컬렉션을 수행하면, 추가적인 쓰기 동작이 발생한다. 가비지 컬렉션은 기본적으로 쓰기 증폭 계수(Write Amplification Factor, WAF)을 증가시킨다. 일반적인 저장 장치가 복수의 응용 프로그램이 논리적으로 대응하는 타겟 영역에 데이터를 저장하더라도, 실제로는 하나의 낸드 플래시 메모리의 블록에 순차적으로 데이터가 저장된다. 데이터 속성과 상관없이 데이터가 저장되기 때문에, 데이터 변경에 따른 가비지 컬렉션을 발생 가능성이 높다.
ZNS(Zone Namespace) 솔루션은 가비지 컬렉션 가능성을 줄이기 위하여 데이터 속성에 따라 저장되는 영역을 할당하는 기능을 수행한다. 일반적으로 ZNS 솔루션은 다음과 같은 장점을 갖는다. 첫째, 저장 장치의 수명이 늘어난다. 둘째, 가비지 컬렉션의 가능성이 줄어들기 때문에 멀티-유저 환경에서 쓰기 속도가 향상된다. 셋째, 오버 프로비저닝 영역이 줄어든다. 넷째, 맵핑 테이블 관리 사용량을 줄이기 때문에 DRAM이 효율적으로 사용될 수 있다.
데이터 삭제의 검증(verification of data deletion)
SSD 포렌식 이슈는 SSD가 데이터를 완전히 삭제하지 않는 것으로부터 기인한다. NAND 플래시 이레이즈 동작이 존재함에도 불구하고, 효율적인 데이터 영역만이 이레이즈 된다. 무효화 데이터 영역 내에서도, 오리지널 데이터가 삭제되었음을 보장하는 것을 어렵다. 따라서, NAND 플래시 메모리의 보안을 향상시킬 필요가 있다. 이에 따라, 오리지널 데이터에 대한 안전한 삭제가 보장될 수 있다. 이러한 삭제 검증 동작에 대한 논의와 연구가 필요하다. 게다가, 삭제 검증과 관련된 새로운 커맨드의 필요성이 증가되고 있다.
유효/무효 데이터율 모니터링(valid/invalid data rate monitoring)
템퍼링 어택(tempering attacks)과 데이터-노출 공격(data-disclosing attacks)을 감지하는 것을 어렵다. 게다가, 이러한 공격들을 감지하기 위해 요구되는 시간과 비용은 상당하다. 따라서, 이러한 공격으로부터 안전한 SSD를 제공하기 위하여, 실시간으로 SSD 내부의 유효/무효 데이터 비율(valid/invalid data ratio)을 모니터링하는 것이 필요하다. 갑작스런 비율의 변화가 발생할 때 또는 무효화 데이터 비율이 두드러지게 증가할 때, SSD는 템퍼링 공격 도는 데이터-노출 공격이 발생한 것으로 결정할 수 있다.
구체적으로, SSD(SSD 컨트롤러 또는 프로세서)는 유효 데이터의 비율, 무효 데이터의 비율, 유효 데이터에 대한 무효 데이터의 비율, 및 무효 데이터에 대한 유효 데이터의 비율 중 적어도 하나를 모니터링 및/또는 산출할 수 있다. 특히, 무효 데이터의 비율의 증가는 공격의 발생으로 의심할 수 있다.
따라서, SSD는 (실시간으로) 상기 비율을 모니터링하고, 미리 정해진 참조 값(또는 임계값) 이상의 변화가 발생한 경우, 이를 알리는 메시지(알람 메시지, 경고 메시지 등으로 명명될 수도 있음)를 호스트로 전송할 수 있다. 이에 따라, 호스트의 관리자 등은 정상적인 OP 변화인지, 의도적인 OP 변화인지 등을 검토하고, 공격을 검출할 수 있다.
도 9는 본 발명의 실시 예에 따른 저장 장치를 예시적으로 보여주는 도면이다. 도 9를 참조하면, 저장 장치(500)는 적어도 하나의 비휘발성 메모리 장치(NVM(s), 510) 및 제어기(CNTL, 520)를 포함할 수 있다.
적어도 하나의 비휘발성 메모리 장치(510)는 데이터를 저장하도록 구현될 수 있다. 비휘발성 메모리 장치(510)는 낸드 플래시 메모리(NAND flash memory), 수직형 낸드 플래시 메모리, 노아 플래시 메모리(NOR flash memory), 저항성 램(resistive random access memory; RRAM), 상변화 메모리(phase-change memory; PRAM), 자기저항 메모리(magnetoresistive random access memory; MRAM), 강유전체 메모리(ferroelectric random access memory; FRAM), 스핀주입 자화반전 메모리(spin transfer torque random access memory; STT-RAM) 등이 될 수 있다. 또한, 비휘발성 메모리 장치(510)는 3차원 어레이 구조로 구현될 수 있다. 본 발명은 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다. 아래에서는 설명의 편의를 위하여 비휘발성 메모리 장치(510)가 수직형 낸드 플래시 메모리 장치라고 하겠다.
또한, 비휘발성 메모리 장치(510)는 복수의 메모리 블록들(BLK1 ~ BLKz, z는 2 이상의 정수) 및 제어 로직(515)을 포함하도록 구현될 수 있다. 복수의 메모리 블록들(BLK1 ~ BLKz)의 각각은, 복수의 페이지들(Page 1 ~ Page m, m은 2 이상의 정수)를 포함할 수 있다. 복수의 페이지들(Page 1 ~ Page m)의 각각은, 복수의 메모리 셀들을 포함할 수 있다. 복수의 메모리 셀들의 각각은 적어도 하나의 비트를 저장할 수 있다.
비휘발성 메모리 장치는 메모리 셀 어레이, 로우 디코더, 페이지 버퍼 회로, 입출력 버퍼 회로, 제어 로직, 전압 발생기, 및 셀 카운터를 포함할 수 있다. 메모리 셀 어레이는 워드 라인들(WLs) 혹은 선택 라인들(SSL, GSL)을 통해 로우 디코더에 연결될 수 있다. 메모리 셀 어레이는 비트 라인들(BLs)을 통해서 페이지 버퍼 회로에 연결될 수 있다. 메모리 셀 어레이는 복수의 셀 스트링들(cell strings)을 포함할 수 있다. 셀 스트링들의 각각의 채널은 수직 혹은 수평 방향으로 형성될 수 있다. 셀 스트링들의 각각은 복수의 메모리 셀들을 포함할 수 있다. 여기서, 복수의 메모리 셀들은 비트 라인(BLs)이나, 워드 라인(WLs)으로 제공되는 전압에 의해서 프로그램 되거나, 이레이즈 되거나, 읽혀질 수 있다. 일반적으로, 프로그램 동작은 페이지 단위로 수행되고, 이레이즈 동작은 블록단위로 수행되고 있다.
로우 디코더는 어드레스(ADD)에 응답하여 메모리 셀 어레이의 메모리 블록들(BLK1 ~ BLKz) 중 어느 하나를 선택하도록 구현될 수 있다. 로우 디코더는 어드레스(ADD)에 응답하여 선택된 메모리 블록의 워드 라인들 중 어느 하나를 선택할 수 있다. 로우 디코더는 선택된 메모리 블록의 워드 라인에 동작 모드에 대응하는 워드라인 전압(VWL)을 전달할 수 있다. 프로그램 동작시 로우 디코더는 선택 워드 라인에 프로그램 전압과 검증 전압을 인가하고, 비선택 워드 라인에 패스 전압을 인가할 수 있다. 리드 동작시 로우 디코더는 선택 워드 라인에 리드 전압을 인가하고, 비선택 워드 라인에 리드 패스 전압을 인가할 수 있다.
페이지 버퍼 회로는 쓰기 드라이버로 혹은 감지 증폭기로 동작하도록 구현될 수 있다. 프로그램 동작시, 페이지 버퍼 회로는 메모리 셀 어레이의 비트 라인들로 프로그램될 데이터에 대응하는 비트 라인 전압을 인가할 수 있다. 리드 동작 혹은 검증 리드 동작시, 페이지 버퍼 회로는 선택된 메모리 셀에 저장된 데이터를 비트 라인(BL)을 통해서 감지할 수 있다. 페이지 버퍼 회로에 포함되는 복수의 페이지 버퍼들(PB1 ~ PBn, n은 2 이상의 정수)의 각각은 적어도 하나의 비트 라인에 연결될 수 있다.
또한, 복수의 페이지 버퍼들(PB1 ~ PBn)의 각각은 복수의 센싱 동작을 통해서 센싱된 데이터를 각각 저장한 후에, 제어 로직의 제어 아래에서 어느 하나의 데이터를 선택할 수 있다. 즉, 복수의 페이지 버퍼들(PB1 ~ PBn) 각각은 어느 하나의 상태를 식별하기 위하여 복수회의 센싱을 수행할 수 있다. 또한, 복수의 페이지 버퍼들(PB1 ~ PBn)의 각각은 제어 로직(150)의 제어에 따라 센싱된 복수의 데이터 중에서 최적의 데이터를 선택 혹은 출력할 수 있다.
입출력 버퍼 회로는 외부에서 제공되는 데이터를 페이지 버퍼 회로로 제공한다. 입출력 버퍼 회로는 외부에서 제공되는 커맨드(CMD)는 제어 로직(515)에 제공할 수 있다. 입출력 버퍼 회로는 외부에서 제공된 어드레스(ADD)를 제어 로직이나 로우 디코더에 제공할 수 있다. 더불어, 입출력 버퍼 회로는 페이지 버퍼 회로에 의해서 센싱 및 래치된 데이터를 외부로 출력할 수 있다.
제어 로직(515)은 외부로부터 전달되는 커맨드(CMD)에 응답하여 로우 디코더 및 페이지 버퍼 회로를 제어하도록 구현될 수 있다.
전압 발생기는 제어 로직의 제어에 따라 각각의 워드 라인들로 인가될 다양한 종류의 워드 라인 전압들, 메모리 셀들이 형성된 벌크(예를 들어, 웰 영역)로 공급될 웰 전압을 생성하도록 구현될 수 있다. 각각의 워드 라인들로 인가되는 워드 라인 전압들은, 프로그램 전압, 패스 전압, 리드 전압, 리드 패스 전압들 등을 포함할 수 있다. 셀 카운터는 페이지 버퍼 회로에 센싱된 데이터로부터 특정 문턱 전압 범위에 해당하는 메모리 셀들을 카운트하도록 구현될 수 있다. 예를 들어, 셀 카운터는 복수의 페이지 버퍼들(PB1 ~ PBn) 각각에 센싱된 데이터를 처리함으로써, 특정 문턱 전압 범위의 문턱 전압을 갖는 메모리 셀들의 수를 카운트할 수 있다. 제어 로직(515)은 제어기(CNTL; 520)로부터 커맨드 및 어드레스를 수신하고, 수신된 커맨드에 대응하는 동작(프로그램 동작, 리드 동작, 이레이즈 동작 등)을 어드레스에 대응하는 메모리 셀들에 수행하도록 구현될 수 있다.
제어기(CNTL; 520)는 제어 신호들(예를 들어, CLE, ALE, CE(s), WE, RE, 등)을 전송하는 복수의 제어 핀들을 통하여 적어도 하나의 비휘발성 메모리 장치(510)에 연결될 수 있다. 또한, 제어 신호들(CLE, ALE, CE(s), WE, RE 등)을 이용하여 비휘발성 메모리 장치(510)를 제어하도록 구현될 수 있다. 예를 들어, 비휘발성 메모리 장치(510)는 CLE(command latch enable) 신호 및 ALE(address latch enable) 신호에 따라 WE(write enable)/RE(read enable) 신호의 엣지에서 커맨드 혹은 어드레스를 래치 함으로써, 프로그램 동작/리드 동작/이레이즈 동작을 수행할 수 있다. 예를 들어, 리드 동작시 칩 인에이블 신호(CE)는 활성화되고, CLE는 커맨드의 전송 구간에 활성화되고, ALE는 어드레스의 전송 구간에 활성화되고, RE는 데이터 신호 라인(DQ)을 통해 데이터가 전송되는 구간에서 토글링 될 수 있다. 데이터 스트로브 신호(DQS)는 데이터 입출력 속도에 대응하는 주파수로 토글링 할 수 있다. 리드 데이터는 데이터 스트로브 신호(DQS)에 동기화되어 순차적으로 전송될 수 있다.
또한, 제어기(520)는 적어도 하나의 프로세서(CPU(Central Processing Unit)(s); 521), 버퍼 메모리(522) 및 보안 모듈(526)을 포함할 수 있다.
프로세서(521)는 저장 장치(500)의 전반적인 동작을 제어하도록 구현될 수 있다. 프로세서(521)는 캐시/버퍼 관리, 펌웨어 관리, 가비지 컬렉션 관리, 웨어 레벨링 관리, 데이터 중복 제거 관리, 리드 리프레쉬/리클레임 관리, 배드 블록 관리, 멀티-스트림 관리, 호스트 데이터와 비휘발성 메모리의 맵핑 관리, QoS(Quality of Service) 관리, 시스템 리소스 할당 관리, 비휘발성 메모리 큐(queue) 관리, 리드 레벨 관리, 이레이즈/프로그램 관리, 핫/콜드 데이터 관리, 전력 손실 보호 관리, 동적 열관리, 초기화 관리, RAID(Redundant Array of Inexpensive Disk) 관리 등과 같은 다양한 관리 동작들을 수행할 수 있다.
버퍼 메모리(522)는 휘발성 메모리(예를 들어, SRAM(Static Random Access Memory), DRAM(Dynamic RAM), SDRAM(Synchronous RAM) 등) 혹은 비휘발성 메모리 (플래시 메모리, PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM) 등)로 구현될 수 있다.
보안 모듈(526)은 저장 장치(500)의 보안 기능을 수행하도록 구현될 수 있다. 예를 들어, 보안 모듈(526)은 SED(Self Encryption Disk) 기능 혹은 TCG(Trusted Computing Group) 보안 기능을 수행할 수 있다. SED 기능은 암호 알고리즘을 이용하여 비휘발성 메모리 장치(510)에 암호화된 데이터를 저장하거나, 비휘발성 메모리 장치(510)로부터 암호화된 데이터를 복호화 할 수 있다. 이러한 암/복호화 동작은 내부에서 생성된 암호화키를 사용하여 수행될 수 있다. 실시 예에 있어서, 암호 알고리즘은 AES(Advanced Encryption Standard) 암호 알고리즘일 수 있다. 한편, 암호 알고리즘에 여기에 제한되지 않는다고 이해되어야 할 것이다. TCG 보안 기능은 저장 장치(500)의 사용자 데이터에 대한 접근 제어를 가능하게 하는 메커니즘을 제공할 수 있다. 예를 들어, TCG 보안 기능은 외부 장치와 저장 장치(500) 사이의 인증 절차를 수행할 수 있다. 실시 예에 있어서, SED 기능 혹은 TCG 보안 기능은 옵션적으로 선택 가능하다. 또한, 보안 모듈(526)은 동형 암호 연산을 수행하도록 구현될 수 있다. 예를 들어, 보안 모듈(526)은 레벨드 동형암호(leveled homomorphic encryption) 알고리즘에 의거하여 암호문(EDATA)을 생성할 수 있다. 보안 모듈(526)은 호스트 장치로부터 수신된 연산 결과를 수신하여 레벨드 동형암호 알고리즘에 의거하여 복호화할 수 있다. 또한, 보안 모듈(526)은 외부의 저장 장치 혹은 외부의 서버와 다자간 연산(MPC)를 수행할 수 있다.
또한, 제어기(520)는 호스트의 보안 삭제 요청(예를 들어, trim command)에 따라 실시간 트림 동작을 수행하고, 실시간(real-time) 트림 동작에 대한 실시간 검증 동작을 수행하도록 구현될 수 있다. 제어기(520)는 도 1 내지 도 8에서 설명된 바와 같이 OP 영역 가변 요청을 수신할 때, OP 영역 가변 요청에 대응하는 무효화 영역에 대한 실시간 보안 삭제 동작을 수행할 수 있다. 여기서 실시간 보안 삭제 동작은 이레이즈 동작, 전체 혹은 부분 오버라이트 동작, 삭제 펄스 인가 동작, 혹은 다운-레벨 프로그램 동작을 포함할 수 있다. 이레이즈 동작은 블록 단위의 삭제 동작을 포함한다. 전체 혹은 부분 오버라이트 동작은 페이지 단위 혹은 서브-페이지 단위로 재프로그램 동작을 포함한다. 삭제 펄스 인가 동작은 페이지 단위로 적어도 하나의 삭제 펄스를 인가할 수 있다. 여기서 삭제 펄스는 에러 정정 동작에서 에러 복구 불가능할 정도의 전압 레벨을 가질 것이다. 다운-레벨 프로그램 동작은, 물리적 페이지에 저장되는 논리 페이지들의 개수를 다운시키도록 프로그램 동작을 수행할 수 있다.
이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 집합으로 구현될 수 있다. 예를 들어, 실시 예들에서 설명된 장치 및 구성 요소는, 예를 들어, 프로세서, 콘트롤러, ALU(Arithmetic Logic Unit), 디지털 신호 프로세서(Digital Signal Processor), 마이크로컴퓨터, FPA(Field Programmable array), PLU(Programmable Logic Unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(Operation System, OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술 분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(Processing Element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(Parallel Processor)와 같은, 다른 처리 구성(Processing Configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(Computer Program), 코드(Code), 명령(Instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(Collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성 요소(Component), 물리적 장치, 가상 장치(Virtual Equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(Signal Wave)에 영구적으로, 또는 일시적으로 구체화(Embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-optical Media), 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드 뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성 요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성 요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (5)

  1. SSD(Solid State Drive) 컨트롤러에 의해 수행되는 SSD의 보안 향상 방법에 있어서,
    호스트(host)로부터 OP 영역(Over-Provisioning area)의 조정을 위한 요청을 수신하는 단계;
    상기 요청에 응답하여, 상기 SSD의 OP 영역을 조정하는 단계; 및
    OP 영역으로부터 사용자 영역(user area)으로 변경된 무효화 데이터 영역에 대한 보안 삭제 동작을 수행하는 단계를 포함하는, SSD의 보안 향상 방법.
  2. 제1항에 있어서,
    상기 OP 영역의 조정은 기존의 OP 영역의 크기를 감소시키는 요청인,
    SSD의 보안 향상 방법.
  3. 제1항에 있어서,
    상기 보안 삭제 동작은 온-더 플라이(on-the-fly) 방식의 이레이즈 동작인,
    SSD의 보안 향상 방법.
  4. SSD 컨트롤러에 의해 수행되는 SSD의 보안 향상 방법에 있어서,
    상기 SSD 내에서 무효화 데이터 영역의 비율, 유효화 데이터 영역의 비율, 상기 무효화 데이터 영역에 대한 상기 무효화 데이터 영역의 비율, 및 상기 무효화 데이터 영역에 대한 상기 유효화 데이터 영역의 비율 중 어느 하나의 비율을 모니터링하는 단계;
    호스트로부터 OP 영역의 조정을 위한 요청을 수신하는 단계;
    상기 요청에 응답하여, 상기 SSD의 OP 영역을 조정하는 단계; 및
    상기 어느 하나의 비율의 변화가 미리 정해진 임계치를 초과하는 경우, 알림 메시지를 상기 호스트로 전송하는 단계를 포함하는, SSD의 보안 향상 방법.
  5. 제4항에 있어서,
    상기 어느 하나의 비율은 상기 무효화 데이터 영역의 비율인,
    SSD의 보안 향상 방법.
KR1020220123742A 2021-09-30 2022-09-28 플렉서블 용량 특징을 갖는 저장 장치의 보안을 향상시키는 방법 KR20230047018A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210130272 2021-09-30
KR20210130272 2021-09-30

Publications (1)

Publication Number Publication Date
KR20230047018A true KR20230047018A (ko) 2023-04-06

Family

ID=85918327

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220123742A KR20230047018A (ko) 2021-09-30 2022-09-28 플렉서블 용량 특징을 갖는 저장 장치의 보안을 향상시키는 방법

Country Status (1)

Country Link
KR (1) KR20230047018A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149093A (zh) * 2023-10-27 2023-12-01 四川省华存智谷科技有限责任公司 一种通过ssd缩容提升存储系统可靠性的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149093A (zh) * 2023-10-27 2023-12-01 四川省华存智谷科技有限责任公司 一种通过ssd缩容提升存储系统可靠性的方法
CN117149093B (zh) * 2023-10-27 2024-03-26 四川省华存智谷科技有限责任公司 一种通过ssd缩容提升存储系统可靠性的方法

Similar Documents

Publication Publication Date Title
US10503934B2 (en) Secure subsystem
JP6298268B2 (ja) セキュリティ管理ユニットとそれを含むホストコントローラインターフェース及びその動作方法、並びにホストコントローラインターフェースを含むコンピュータシステム
US20140032935A1 (en) Memory system and encryption method in memory system
US20180260151A1 (en) Data Storage Device and Operating Method Therefor
CN110046506A (zh) 存储设备和包括存储设备的存储系统及使用其进行操作的方法
TWI711940B (zh) 用於資料儲存設備的安全快照管理的裝置、系統、及方法
US20230032885A1 (en) Mechanism to Support Writing Files Into a File System Mounted in a Secure Memory Device
KR102068485B1 (ko) 불 휘발성 메모리 모듈 및 그것의 동작 방법
KR20230047018A (ko) 플렉서블 용량 특징을 갖는 저장 장치의 보안을 향상시키는 방법
US11269515B2 (en) Secure authentication for debugging data transferred over a system management bus
Ahn et al. Forensic issues and techniques to improve security in SSD with flex capacity feature
US20220083240A1 (en) Memory system and operating method thereof
US11720384B2 (en) Program code protection in a data processing system
KR20240009363A (ko) 보안 삭제 검증 가능한 저장 장치 및 그것의 동작 방법
US20230176767A1 (en) Interfacing with memory devices
US20240037233A1 (en) Ransomware and malicious software protection in ssd/ufs by nvme instructions log analysis based on machine-learning
US20230176746A1 (en) Validity of information stored in memory devices
US11204850B2 (en) Debugging a memory sub-system with data transfer over a system management bus
KR20240038418A (ko) 메모리 컨트롤러 및 이를 포함하는 저장 장치
KR20220007931A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN115408729A (zh) 供应用程序存取安全存储器装置的独立于供应商的设施
KR20150117147A (ko) 타임-아웃 데이터를 관리하는 방법 및 장치