CN117473495A - 用于勒索软件和恶意软件保护的存储系统和设备及其方法 - Google Patents
用于勒索软件和恶意软件保护的存储系统和设备及其方法 Download PDFInfo
- Publication number
- CN117473495A CN117473495A CN202310777171.4A CN202310777171A CN117473495A CN 117473495 A CN117473495 A CN 117473495A CN 202310777171 A CN202310777171 A CN 202310777171A CN 117473495 A CN117473495 A CN 117473495A
- Authority
- CN
- China
- Prior art keywords
- storage
- memory
- commands
- data
- storage commands
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 268
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000015654 memory Effects 0.000 claims abstract description 235
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 57
- 238000010801 machine learning Methods 0.000 claims abstract description 33
- 238000001914 filtration Methods 0.000 claims abstract description 13
- 230000008569 process Effects 0.000 claims description 17
- 238000013528 artificial neural network Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 7
- 238000013527 convolutional neural network Methods 0.000 claims description 5
- 238000000513 principal component analysis Methods 0.000 claims description 4
- 238000007637 random forest analysis Methods 0.000 claims description 4
- 230000000306 recurrent effect Effects 0.000 claims description 4
- 239000007787 solid Substances 0.000 claims description 4
- 239000000872 buffer Substances 0.000 description 18
- 238000010586 diagram Methods 0.000 description 18
- 230000000694 effects Effects 0.000 description 17
- 230000004044 response Effects 0.000 description 16
- 239000010410 layer Substances 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000005065 mining Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000012549 training Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 4
- 238000013403 standard screening design Methods 0.000 description 4
- 102100025566 Chymotrypsin-like protease CTRL-1 Human genes 0.000 description 3
- 101150104728 GPR88 gene Proteins 0.000 description 3
- 101000856199 Homo sapiens Chymotrypsin-like protease CTRL-1 Proteins 0.000 description 3
- 102100038404 Probable G-protein coupled receptor 88 Human genes 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 244000292604 Salvia columbariae Species 0.000 description 2
- 235000012377 Salvia columbariae var. columbariae Nutrition 0.000 description 2
- 235000001498 Salvia hispanica Nutrition 0.000 description 2
- 230000002155 anti-virotic effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 235000014167 chia Nutrition 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000009313 farming Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003306 harvesting Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000011241 protective layer Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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
- G06F21/79—Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Virology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Quality & Reliability (AREA)
- Bioethics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种存储系统,包括主机设备;以及包括存储器和被配置为实现存储内部保护(SIP)模块的至少一个处理器的存储设备,其中,该SIP模块被配置为:从主机设备获得与存储器相对应的多个存储命令,过滤多个存储命令以获得经过滤的多个存储命令,将关于经过滤的多个存储命令的信息应用于机器学习勒索软件检测算法,以及基于机器学习勒索软件检测算法指示检测到勒索软件操作,向主机设备提供通知。
Description
技术领域
与实施例一致的装置和方法涉及对存储设备的保护,更具体地,涉及检测恶意勒索软件操作。
背景技术
恶意软件(诸如恶意程序(malware))可以以多种形式出现。一种类型的越来越常见的恶意程序被称为勒索软件(ransomware)。勒索软件可以针对任何类型的计算机系统,例如可以使用操作系统(诸如Microsoft Windows和Apple iOS)的个人计算机、移动设备(诸如智能手机,其可以包括iPhone和基于Android的智能手机)、服务器和任何其他类型的设备。
一般地,勒索软件可以指拒绝用户访问存储在用户设备上的数据,并要求为恢复对数据的访问付款的恶意程序。例如,锁定(locker)勒索软件可以完全锁定用户的设备,并且只有在攻击者收到付款时才会解锁设备。加密勒索软件(Cryptoransomware)可以加密用户设备上存储的部分或全部数据,攻击者可以向用户提供解密密钥以换取付款。其他类型的勒索软件可以从用户的设备中窃取数据,并威胁如果没有收到付款,则将公布数据。可以要求例如使用诸如Paysafecard的预付费在线支付卡或诸如数字货币的加密货币来付款。
近来,加密勒索软件攻击的数量显著增加。加密勒索软件攻击可以分一个或多个阶段进行。例如,勒索软件攻击可以从分发活动开始,该分发活动可以使用例如社会工程技术或武器化网站来分发恶意程序的下载释放器(droper)。与勒索软件相关联的恶意代码然后可以例如通过下载可以安装勒索软件的可执行文件来感染用户的设备。随后可以出现恶意负载分阶段传送(malicious payload staging),其中勒索软件被建立并嵌入到设备中,并且可以持续展现。然后,勒索软件可以扫描设备以定位数据目标,这些数据目标可能存储在本地或在网络可访问的资源中。然后,目标数据可以被加密,并且赎金消息可以被提供给用户,要求付款并将用于提供付款的指令提供给用户。
目标数据可以包括,例如,设备的所有数据、或者可以包括数据的更小子集。例如,勒索软件可以针对特定的文件扩展名(诸如“.doc”、“.jpg”、“.pdf”)或者包含文本文档、演示文稿、图像或任何其他个人数据的文件。目标数据可以包括大量的数据(诸如几千兆字节),并且加密过程可以快速进行,例如仅在几秒或几分钟内。
用于缓解勒索软件的策略可以包括两个主要部分:检测和恢复。一般地,主要集中于恢复的策略可能需要大的存储量和计算能力。主要集中于检测或检测和恢复相组合的策略可以减少缓解勒索软件攻击所需的存储量和计算能力。
此外,当前针对网络攻击的保护主要位于软件层,例如在防病毒或防火墙软件中,其可能不足以保护免受所有恶意攻击,诸如勒索软件攻击。
因此,需要对恶意攻击(诸如勒索软件攻击,其锁定、加密或以其他方式拒绝对受害者的存储设备上存储的数据的访问或控制)的改进的检测的技术。
发明内容
根据本公开的一个方面,一种存储系统包括主机设备;以及包括存储器和被配置为实现存储内部保护(storage internal protection,SIP)模块的至少一个处理器的存储设备,其中该SIP模块被配置为:从主机设备获得与存储器相对应的多个存储命令,过滤该多个存储命令以获得经过滤的多个存储命令,将关于经过滤的多个存储命令的信息应用于机器学习勒索软件检测算法,以及基于机器学习勒索软件检测算法指示检测到勒索软件操作,向主机设备提供通知。
根据本公开的一个方面,一种存储设备包括存储器;以及至少一个处理器,该至少一个处理器被配置为:获得与存储器相对应的多个存储命令,过滤该多个存储命令以获得经过滤的多个存储命令,将关于经过滤的多个存储命令的信息应用于机器学习勒索软件检测算法,以及基于机器学习勒索软件检测算法指示检测到勒索软件操作,向存储设备的用户提供通知。
根据本公开的一个方面,一种控制存储系统的方法,该方法是由存储系统的存储设备中包括的至少一个处理器实现的存储内部保护(SIP)模块来执行的,并且包括:从存储系统中包括的主机设备获得与存储设备的存储器相对应的多个存储命令,过滤该多个存储命令以获得经过滤的多个存储命令,将关于经过滤的多个存储命令的信息应用于机器学习勒索软件检测算法,以及基于机器学习勒索软件检测算法指示检测到勒索软件操作,向主机设备提供通知。
根据本公开的一个方面,一种控制存储设备的方法,该方法是由至少一个处理器来执行的,并且包括:获得与存储设备中包括的存储器相对应的多个存储命令,过滤该多个存储命令以获得经过滤的多个存储命令,将关于经过滤的多个存储命令的信息应用于机器学习勒索软件检测算法,以及基于机器学习勒索软件检测算法指示检测到勒索软件操作,向存储设备的用户提供通知。
附图说明
图1是根据实施例的计算机系统的框图。
图2是根据实施例的主机存储系统的框图。
图3是根据实施例的存储器系统的框图。
图4是根据实施例的存储器设备的框图。
图5是根据实施例的UFS系统的框图。
图6是根据实施例的存储器系统的框图。
图7是根据实施例的存储系统的框图。
图8是根据实施例的勒索软件检测系统的逻辑流程的框图。
图9示出了根据实施例的存储内部保护应用的用户界面屏幕。
图10示出了根据实施例的用于训练和测试勒索软件检测算法的训练环境的框图。
图11是根据实施例的控制存储系统的过程的流程图。
图12是根据实施例的数据中心的框图。
具体实施方式
如上所述,需要保护免受通过锁定存储设备或加密存储在存储设备上的数据来使用受害者的存储设备(例如固态驱动(SSD)存储设备)的网络攻击。相应地,实施例可以涉及包括针对勒索软件攻击的内部保护的SSD。在实施例中,存储设备可以检测使用存储设备执行的潜在勒索软件相关活动,并且可以警告用户,用户然后可以在需要时采取行动。
例如,实施例可以提供保护存储设备免受网络攻击(诸如勒索软件,其可能涉及存储在存储设备上的数据的丢失或被盗)的系统、方法和设备。在实施例中,可以在诸如SSD的存储设备内部添加保护层。该保护层可以基于SSD活动在勒索软件开始采取行动时检测到勒索软件。例如,保护层可以例如使用NVMe协议来嗅探对存储设备的输入和输出命令并分析它们。可以采用机器学习算法来检测针对勒索软件相关活动的存储设备的使用。在实施例中,基于检测到这种勒索软件相关活动,与勒索软件相关活动相对应的警告可以被传递给监视存储设备的软件应用。
因此,可以向存储设备的用户或所有者警告潜在的勒索软件活动在存储设备上发生。然后,例如,如果该活动不是预期的,则用户可以采取行动来停止该活动。对威胁的检测可以例如基于NVMe通信协议来执行。
因此,实施例可以比仅驻留在软件层(例如防病毒或防火墙软件)的保护更有优势。例如,纯软件保护可能需要与多个不同的操作系统或计算机硬件配置相对应的不同实现方式。此外,黑客和其他恶意软件的创建者可能有避开这种纯软件保护的丰富经验。
相反,实施例可以提供跨多个平台兼容的勒索软件保护。此外,实施例可以通过在存储设备中执行原本需要由中央处理单元(CPU)执行的操作来减少主机的CPU的工作负荷。此外,实施例可以访问纯软件保护不可用的信息,例如被逻辑擦除的块中包括的数据,因此可以提供增强的恶意程序检测和数据恢复能力。
此外,实施例可以比基于可疑行为(诸如访问不应该被访问的数据的请求)检测恶意代码的保护更有优势。例如,实施例可以分析存储访问行为以检测存储访问中的模式,例如写入操作、读取操作或擦除操作中的模式,其可以指示诸如勒索软件的恶意程序。
尽管本文与勒索软件检测相关地提供了描述,但实施例不限于此。例如,根据需要,实施例可以提供对任何类型的恶意程序的检测和保护。
例如,几种新的加密货币(例如Filecoin和Chia)使用存储资源进行挖掘,而不是像数字货币那样使用计算资源进行挖掘。基于这种加密货币的加密挖掘(crypto-mining)攻击可能对受害者的存储设备(例如SSD存储设备)带来毁灭性影响。一般地,对SSD的诸如非易失性存储器快速(NVMe)命令的存储命令可以在没有任何监视或过滤的情况下被执行。因此,诸如恶意程序的恶意软件可以执行基于存储的加密货币挖掘,占用SSD上的存储空间,并且通过执行多个编程/擦除(program/erase,P/E)周期来使其运行状况下降。例如,使用受害者的SSD设备来准备Chia挖掘,被称为谋划(plotting)的过程可以显著降低设备的性能,并轻松超过设备的太字节写入规格、或者甚至在几周内完全耗尽设备的太字节写入规格。
相应地,实施例可以用于检测恶意的密码相关(cryptographic)挖掘或加密挖掘,其可以被称为加密劫持。在实施例中,加密挖掘涉及与各种加密货币相关的任何操作,包括但不限于挖掘、执行散列操作、存储用户数据、谋划、收割(farming)等。在实施例中,基于检测到这种加密挖掘,与加密挖掘活动相对应的警告可以被传递给监视存储设备的软件应用。
图1是可以应用实施例的系统1000的图。图1的系统1000可以是例如移动系统,诸如便携式通信终端(例如,移动电话)、智能手机、平板个人计算机(PC)、可穿戴设备、保健设备或物联网(IOT)设备。然而,图1的系统1000不必限于移动系统,并且可以是PC、膝上型计算机、服务器、媒体播放器或汽车设备(例如,导航设备)。
参考图1,系统1000可以包括主处理器1100、存储器(例如,1200a和1200b)和存储设备(例如,1300a和1300b)。此外,系统1000可以包括图像捕获设备1410、用户输入设备1420、传感器1430、通信设备1440、显示器1450、扬声器1460、供电设备1470和连接接口1480中的至少一个。
主处理器1100可以控制系统1000的所有操作,更具体地,可以控制系统1000中包括的其他组件的操作。主处理器1100可以被实现为通用处理器、专用处理器或应用处理器。
主处理器1100可以包括至少一个CPU内核1110,并且进一步包括被配置为控制存储器1200a和1200b和/或存储设备1300a和1300b的控制器1120。在一些实施例中,主处理器1100还可以包括加速器1130,该加速器1130是用于诸如人工智能(AI)数据操作的高速数据操作的专用电路。加速器1130可以包括图形处理单元(GPU)、神经处理单元(NPU)和/或数据处理单元(DPU),并且被实现为与主处理器1100的其他组件物理分离的芯片。
存储器1200a和1200b可以用作系统1000的主存储器设备。尽管存储器1200a和1200b中的每一个可以包括易失性存储器(诸如静态随机访问存储器(SRAM)和/或动态RAM(DRAM)),但是存储器1200a和1200b中的每一个可以包括非易失性存储器,诸如闪存、相变RAM(PRAM)和/或电阻式RAM(RRAM)。存储器1200a和1200b可以与主处理器1100在同一封装中实现。
存储设备1300a和1300b可以用作被配置为在不管是否向其供电的情况下存储数据的非易失性存储设备且相比存储器1200a和1200b具有更大存储容量。存储设备1300a和1300b可以分别包括存储控制器(STRG CTRL)1310a和1310b以及被配置为经由存储控制器1310a和1310b的控制来存储数据的非易失性存储器(NVM)1320a和1320b。尽管NVM 1320a和1320b可以包括具有二维(2D)结构或三维(3D)V-NAND结构的闪存,但是实施例不限于此,并且NVM 1320a和1320b可以包括其他类型的NVM,诸如PRAM和/或RRAM。
存储设备1300a和1300b可以与主处理器1100物理上分离,并且被包括在系统1000中、或者与主处理器1100在同一封装中实现。此外,存储设备1300a和1300b可以具有各种类型的SSD或存储器卡,并且可以通过接口(诸如下面描述的连接接口1480)与系统1000的其他组件可移除地组合。存储设备1300a和1300b可以是应用了诸如通用闪存(UFS)、嵌入式多媒体卡(eMMC)或非易失性存储器快速(NVMe)的标准协议的设备,但不限于此。
图像捕获设备1410可以捕获静止图像或移动图像。图像捕获设备1410可以包括相机、摄像机和/或网络摄像头。
用户输入设备1420可以接收由系统1000的用户输入的各种类型的数据,并且包括触摸板、小键盘、键盘、鼠标和/或麦克风。
传感器1430可以检测可以从系统1000外部获得的各种类型的物理量,并将检测到的物理量转换为电信号。传感器1430可以包括温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪传感器。
通信设备1440可以根据各种通信协议在系统1000外部的其他设备之间发送和接收信号。通信设备1440可以包括天线、收发器和/或调制解调器。
显示器1450和扬声器1460可以用作被配置为向系统1000的用户分别输出视觉信息和听觉信息的输出设备。
供电设备1470可以对嵌入系统1000中的电池(未示出)和/或外部电源供应的电力进行适当转换,并将转换后的电力供应到系统1000的每个组件。
连接接口1480可以在系统1000和外部设备之间提供连接,该外部设备连接到系统1000并且能够向系统1000发送数据和从系统1000接收数据。连接接口1480可以通过使用各种接口方案(诸如高级技术附件(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机小型接口(SCSI)、串行连接SCSI(SAS)、外围组件互连(PCI)、PCI快速(PCIe)、NVMe、IEEE1394、通用串行总线(USB)接口、安全数字(SD)卡接口、多媒体卡(MMC)接口、eMMC接口、UFS接口、嵌入式UFS(eUFS)接口和紧凑闪存(CF)卡接口)来实现。
图2是根据示例实施例的主机存储系统10的框图。
主机存储系统10可以包括主机100和存储设备200。此外,存储设备200可以包括存储控制器210和NVM 220。根据示例实施例,主机100可以包括主机控制器110和主机存储器120。主机存储器120可以用作被配置为临时存储要发送到存储设备200的数据或者从存储设备200接收到的数据的缓冲存储器。
存储设备200可以包括被配置为响应于来自主机100的请求而存储数据的存储介质。作为示例,存储设备200可以包括SSD、嵌入式存储器和可拆卸外部存储器中的至少一个。当存储设备200是SSD时,存储设备200可以是符合NVMe标准的设备。当存储设备200是嵌入式存储器或外部存储器时,存储设备200可以是符合UFS标准或eMMC标准的设备。主机100和存储设备200中的每一个可以根据所采用的标准协议生成分组并发送分组。
当存储设备200的NVM 220包括闪存时,闪存可以包括2D NAND存储器阵列或3D(或垂直)NAND(VNAND)存储器阵列。作为另一个示例,存储设备200可以包括各种其他类型的NVM。例如,存储设备200可以包括磁性RAM(MRAM)、自旋转移矩MRAM、导电桥接RAM(CBRAM)、铁电RAM(FRAM)、PRAM、RRAM和各种其他类型的存储器。
根据实施例,主机控制器110和主机存储器120可以被实现为分离的半导体芯片。在一些实施例中,主机控制器110和主机存储器120可以集成在相同的半导体芯片中。作为示例,主机控制器110可以是应用处理器(AP)中包括的多个模块中的任何一个。AP可以被实现为片上系统(SoC)。此外,主机存储器120可以是AP中包括的嵌入式存储器或位于AP外部的NVM或存储器模块。
主机控制器110可以管理将主机存储器120的缓冲区的数据(例如,写入数据)存储在NVM 220中的操作或将NVM 220的数据(例如,读取数据)存储在缓冲区中的操作。
存储控制器210可以包括主机接口211、存储器接口212和CPU 213。此外,存储控制器210还可以包括闪存转换层(FTL)214、分组管理器215、缓冲存储器216、纠错码(ECC)引擎217和高级加密标准(AES)引擎218。存储控制器210还可以包括其中加载了FTL 214的工作存储器(未示出)。CPU 213可以执行FTL 214来控制NVM 220上的数据写入和读取操作。
主机接口211可以向主机100发送数据分组和从主机100接收数据分组。从主机100发送到主机接口211的分组可以包括要写入NVM 220的命令或数据。从主机接口211发送到主机100的分组可以包括对命令的响应或从NVM 220读取的数据。存储器接口212可以将要写入NVM 220的数据发送到NVM 220、或者接收从NVM 220读取的数据。存储器接口212可以被配置为符合标准协议,诸如翻转(Toggle)或开放NAND闪存接口(ONFI)。
FTL 214可以执行各种功能,诸如地址映射操作、损耗均衡操作和垃圾收集操作。地址映射操作可以是将从主机100接收到的逻辑地址转换为用于在NVM 220中实际存储数据的物理地址的操作。损耗均衡操作可以是通过允许均匀使用NVM 220的块来防止特定块的过度退化的技术。作为示例,损耗均衡操作可以使用平衡物理块的擦除计数的固件技术来实现。垃圾收集操作可以是通过在将现有块的有效数据复制到新块之后擦除现有块来确保NVM 220中的可用容量的技术。
分组管理器可以根据主机100同意的接口协议来生成分组、或者解析从主机100接收到的分组中的各种类型的信息。此外,缓冲存储器216可以临时存储要写入NVM 220的数据或者要从NVM 220读取的数据。尽管缓冲存储器216可以是包括在存储控制器210中的组件,但是缓冲存储器216也可以在存储控制器210外部。
ECC引擎217可以对从NVM 220读取的读取数据执行检错和纠错操作。更具体地,ECC引擎217可以为要写入NVM 220的写入数据生成奇偶校验位,并且所生成的奇偶校验位可以与写入数据一起存储在NVM 220中。在从NVM 220读取数据期间,ECC引擎217可以通过使用与读取数据一起从NVM220读取的奇偶校验位来纠正读取数据中的错误,并输出纠错后的读取数据。
AES引擎218可以通过使用对称密钥算法对输入到存储控制器210的数据执行加密操作和解密操作中的至少一个。
图3是根据实施例的存储器系统15的框图。参考图3,存储器系统15可以包括存储器设备17和存储器控制器16。存储器系统15可以支持多个通道CH1至CHm,并且存储器设备17可以通过多个通道CH1至CHm连接到存储器控制器16。例如,存储器系统15可以被实现为存储设备,诸如SSD。
存储器设备17可以包括多个NVM设备NVM11至NVMmn。NVM设备NVM11至NVMmn中的每一个可以通过与其相对应的路(way)连接到多个通道CH1至CHm中的一个。例如,NVM设备NVM11至NVM1n可以通过路W11至W1n连接到第一通道CH1,并且NVM设备NVM21至NVM2n可以通过路W21至W2n连接到第二通道CH2。在示例实施例中,NVM设备NVM11至NVMmn中的每一个可以被实现为可以根据来自存储器控制器16的单独命令进行操作的任意存储器单元。例如,NVM设备NVM11至NVMmn中的每一个可以被实现为芯片或管芯,但是本发明构思不限于此。
存储器控制器16可以通过多个通道CH1至CHm向存储器设备17发送信号和从存储器设备17接收信号。例如,存储器控制器16可以通过通道CH1至CHm将命令CMDa至CMDm、地址ADDRa至ADDRm和数据DATAa至DATAm发送到存储器设备17、或者从存储器设备17接收数据DATAa至DATAm。
存储器控制器16可以选择NVM设备NVM11至NVMmn中的一个(其连接到通道CH1至CHm中的每一个),并且向所选NVM设备发送信号和从所选NVM设备接收信号。例如,存储器控制器16可以从连接到第一通道CH1的NVM设备NVM11至NVM1n中选择NVM设备NVM11。存储器控制器16可以通过第一通道CH1将命令CMDa、地址ADDRa和数据DATAa发送到所选NVM设备NVM11、或者从所选NVM设备NVM11接收数据DATAa。
存储器控制器16可以通过不同通道并行地向存储器设备17发送信号和从存储器设备17接收信号。例如,存储器控制器16可以通过第二通道CH2向存储器设备17发送命令CMDb,同时通过第一通道CH1向存储器设备17发送命令CMDa。例如,存储器控制器16可以通过第二通道CH2从存储器设备17接收数据DATAb,同时通过第一通道CH1从存储器设备17接收数据DATAa。
存储器控制器16可以控制存储器设备17的所有操作。存储器控制器16可以向通道CH1至CHm发送信号,并且控制连接到通道CH1至CHm的NVM设备NVM11至NVMmn中的每一个。例如,存储器控制器16可以将命令CMDa和地址ADDRa发送到第一通道CH1,并且控制从NVM设备NVM11至NVM1n中选择的一个NVM。
NVM设备NVM11至NVMmn中的每一个可以经由存储器控制器16的控制进行操作。例如,NVM设备NVM11可以基于被提供给第一通道CH1的命令CMDa、地址ADDRa和数据DATAa对数据DATAa进行编程。例如,NVM设备NVM21可以基于被提供给第二通道CH2的命令CMDb和地址ADDb读取数据DATAb,并将读取的数据DATAb发送到存储器控制器16。
尽管图3示出了其中存储器设备17通过m个通道与存储器控制器16通信并且包括n个与通道中的每一个相对应的NVM设备的示例,但通道的数量和连接到一个通道的NVM设备的数量可以不同地改变。
图4是根据示例实施例的存储器设备300的框图。参考图4,存储器设备300可以包括控制逻辑电路320、存储器单元阵列330、页缓冲器340、电压生成器350和行解码器360。尽管未在图4中示出,但是存储器设备300还可以包括图6中示出的存储器接口电路310。此外,存储器设备300还可以包括列逻辑、预解码器、温度传感器、命令解码器和/或地址解码器。
控制逻辑电路320可以控制存储器设备300的所有各种操作。控制逻辑电路320可以响应于来自存储器接口电路310的命令CMD和/或地址ADDR输出各种控制信号。例如,控制逻辑电路320可以输出电压控制信号CTRL_vol、行地址X-ADDR和列地址Y-ADDR。
存储器单元阵列330可以包括多个存储器块BLK1至BLKz(这里,z是正整数),存储器块中的每一个可以包括多个存储器单元。存储器单元阵列330可以通过位线BL连接到页缓冲器340,并且通过字线WL、串选择线SSL和地选择线GSL连接到行解码器360。
在示例实施例中,存储器单元阵列330可以包括3D存储器单元阵列,其包括多个NAND串。NAND串中的每一个可以包括分别连接到垂直堆叠在基板上的字线的存储器单元。美国专利No.7,679,133、8,553,466、8,654,587、8,559,235和美国专利公开No.2011/0233648的公开内容通过引用并入本文。在示例实施例中,存储器单元阵列330可以包括2D存储器单元阵列,其包括沿行方向和列方向排列的多个NAND串。
页缓冲器340可以包括多个页缓冲器PB1至PBn(这里,n是大于或等于3的整数),其可以通过多条位线BL分别连接到存储器单元。页缓冲器340可以响应于列地址Y-ADDR选择位线BL中的至少一条。根据操作模式,页缓冲器340可以作为写入驱动器或感测放大器操作。例如,在编程操作期间,页缓冲器340可以将与要被编程的数据相对应的位线电压施加到所选位线。在读取操作期间,页缓冲器340可以感测所选位线BL的电流或电压,并且感测存储在存储器单元中的数据。
电压生成器350可以基于电压控制信号CTRL_vol来生成用于编程、读取和擦除操作的各种电压。例如,电压生成器350可以生成编程电压、读取电压、编程验证电压和擦除电压作为字线电压VWL。
行解码器360可以响应于行地址X-ADDR选择多条字线WL中的一条,并且选择多条串选择线SSL中的一条。例如,行解码器360可以在编程操作期间将编程电压和编程验证电压施加到所选字线WL,以及在读取操作期间将读取电压施加到所选字线WL。
图5是根据实施例的UFS系统2000的图。UFS系统2000可以是符合由联合电子设备工程委员会(JEDEC)公布的UFS标准的系统,并且包括UFS主机2100、UFS设备2200和UFS接口2300。以上对图1的系统1000的描述也可以在不与以下对图5的描述相冲突的范围内应用于图5的UFS系统2000。
参考图5,UFS主机2100可以通过UFS接口2300连接到UFS设备2200。当图1的主处理器1100是AP时,UFS主机2100可以被实现为AP的一部分。UFS主机控制器2110和主机存储器2140可以分别对应于图1的主处理器1100的控制器1120以及存储器1200a和1200b。UFS设备2200可以对应于图1的存储设备1300a和1300b,并且UFS设备控制器2210和NVM 2220可以分别对应于图1的存储控制器1310a和1310b以及NVM 1320a和1320b。
UFS主机2100可以包括UFS主机控制器2110、应用2120、UFS驱动器2130、主机存储器2140和UFS互连(UFS interconnect,UIC)层2150。UFS设备2200可以包括UFS设备控制器2210、NVM 2220、存储接口2230、设备存储器2240、UIC层2250和调节器2260。NVM 2220可以包括多个存储器单元2221。尽管存储器单元2221中的每一个可以包括具有2D结构或3D结构的V-NAND闪存,但是存储器单元2221中的每一个可以包括另外类别的NVM,诸如PRAM和/或RRAM。UFS设备控制器2210可以通过存储接口2230连接到NVM 2220。存储接口2230可以被配置为符合标准协议,诸如Toggle或ONFI。
应用2120可以指想与UFS设备2200通信以使用UFS设备2200的功能的程序。应用2120可以向UFS驱动器2130发送输入-输出请求(input-output request,IOR),以用于UFS设备2200上的输入/输出(I/O)操作。IOR可以指数据读取请求、数据存储(或写入)请求和/或数据擦除(或丢弃)请求,但不限于此。
UFS驱动器2130可以通过UFS主机控制器接口(UFS-HCI)管理UFS主机控制器2110。UFS驱动器2130可以将由应用2120生成的IOR转换为由UFS标准定义的UFS命令,并将UFS命令发送到UFS主机控制器2110。一个IOR可以被转换为多个UFS命令。尽管UFS命令可以基本上由SCSI标准定义,但UFS命令可以是专用于UFS标准的命令。
UFS主机控制器2110可以通过UIC层2150和UFS接口2300将由UFS驱动器2130转换的UFS命令发送到UFS设备2200的UIC层2250。在UFS命令的传输期间,UFS主机控制器2110的UFS主机寄存器2111可以充当命令队列(command queue,CQ)。
UFS主机2100侧的UIC层2150可以包括移动工业处理器接口(MIPI)M-PHY 2151和MIPI UniPro 2152,并且UFS设备2200侧的UIC层2250也可以包括MIPI M-PHY 2251和MIPIUniPro 2252。
UFS接口2300可以包括被配置为发送参考时钟信号REF_CLK的线路、被配置为发送UFS设备2200的硬件复位信号RESET_n的线路、被配置为发送差分输入信号对DIN_t和DIN_c的线路对以及被配置为发送差分输出信号对DOUT_t和DOUT_c的线路对。
从UFS主机2100向UFS设备2200提供的参考时钟信号REF_CLK的频率可以是19.2MHz、26MHz、38.4MHz和52MHz之一,但不限于此。UFS主机2100可以在操作期间,即,在UFS主机2100和UFS设备2200之间的数据发送/接收操作期间,改变参考时钟信号REF_CLK的频率。UFS设备2200可以通过使用锁相环(phase-locked loop,PLL),根据从UFS主机2100提供的参考时钟信号REF_CLK来生成具有各种频率的时钟信号。此外,UFS主机2100可以通过使用参考时钟信号REF_CLK的频率来设置UFS主机2100和UFS设备2200之间的数据速率。也就是说,可以取决于参考时钟信号REF_CLK的频率来确定数据速率。
UFS接口2300可以支持多个通路(lane),通路中的每一个可以被实现为差分线路对。例如,UFS接口2300可以包括至少一个接收通路和至少一个发送通路。在图5中,被配置为发送差分输入信号对DIN_T和DIN_C的线路对可以构成接收通路,被配置为发送差分输出信号对DOUT_T和DOUT_C的线路对可以构成发送通路。尽管在图5中示出了一个发送通路和一个接收通路,但是发送通路的数量和接收通路的数量可以改变。
接收通路和发送通路可以基于串行通信方案来发送数据。由于接收通路与发送通路分离的结构,因此可以实现UFS主机2100和UFS设备2200之间的全双工通信。也就是说,在通过接收通路从UFS主机2100接收数据时,UFS设备2200可以通过发送通路向UFS主机2100发送数据。此外,从UFS主机2100到UFS设备2200的控制数据(例如,命令)和要由UFS主机2100存储在UFS设备2200的NVM 2220中或要从NVM 2220读取的用户数据可以通过相同的通路传输。因此,在UFS主机2100和UFS设备2200之间,除了接收通路对和发送通路对之外,可以不需要进一步提供用于数据传输的单独的通路。
UFS设备2200的UFS设备控制器2210可以控制UFS设备2200的所有操作。UFS设备控制器2210可以通过使用作为逻辑数据存储单元的逻辑单元(LU)2211来管理NVM 2220。LU2211的数量可以是8,但不限于此。UFS设备控制器2210可以包括FTL,并通过使用FTL的地址映射信息将从UFS主机2100接收到的逻辑数据地址(例如,逻辑块地址(LBA))转换为物理数据地址(例如,物理块地址(PBA))。被配置为在UFS系统2000中存储用户数据的逻辑块可以具有预定范围内的大小。例如,逻辑块的最小大小可以被设置为4K字节。
当来自UFS主机2100的命令通过UIC层2250被应用于UFS设备2200时,UFS设备控制器2210可以响应于该命令执行操作,并在操作完成时向UFS主机2100发送完成响应。
作为示例,当UFS主机2100打算在UFS设备2200中存储用户数据时,UFS主机2100可以向UFS设备2200发送数据存储命令。当从UFS设备2200接收到指示UFS设备2200准备好接收用户数据(准备好传送)的响应(“准备好传送”响应)时,UFS主机2100可以向UFS设备2200发送用户数据。UFS设备控制器2210可以将接收到的用户数据临时存储在设备存储器2240中,并基于FTL的地址映射信息将临时存储在设备存储器2240中的用户数据存储在NVM2220的选定位置。
作为另一个示例,当UFS主机2100打算读取存储在UFS设备2200中的用户数据时,UFS主机2100可以向UFS设备2200发送数据读取命令。已经接收到命令的UFS设备控制器2210可以基于数据读取命令从NVM 2220读取用户数据,并将读取的用户数据临时存储在设备存储器2240中。在读取操作期间,UFS设备控制器2210可以通过使用嵌入其中的ECC引擎(未示出)来检测和纠正读取的用户数据中的错误。更具体地,ECC引擎可以为要写入NVM2220的写入数据生成奇偶校验位,并且所生成的奇偶校验位可以与写入数据一起存储在NVM 2220中。在从NVM 2220读取数据期间,ECC引擎可以通过使用与读取数据一起从NVM2220读取的奇偶校验位来纠正读取数据中的错误,并输出纠错后的读取数据。
此外,UFS设备控制器2210可以将临时存储在设备存储器2240中的用户数据发送到UFS主机2100。此外,UFS设备控制器2210还可以包括AES引擎(未示出)。AES引擎可以通过使用对称密钥算法对发送到UFS设备控制器2210的数据执行加密操作和解密操作中的至少一个。
UFS主机2100可以将要发送到UFS设备2200的命令依次存储在可以用作命令队列的UFS主机寄存器2111中,并将命令依次发送到UFS设备2200。在这种情况下,即使在先前发送的命令仍在被UFS设备2200处理时,即,即使在接收到先前发送的命令已经被UFS设备2200处理的通知之前,UFS主机2100也可以向UFS设备2200发送在CQ中等待(on standby)的下一个命令。因此,UFS设备2200也可以在处理先前发送的命令期间从UFS主机2100接收下一个命令。可以存储在CQ中的命令的最大数量(或队列深度)可以是例如32。此外,CQ可以被实现为循环队列,其中存储在队列中的命令行的开始和结束由头指针和尾指针指示。
多个存储器单元2221中的每一个可以包括存储器单元阵列(未示出)和被配置为控制存储器单元阵列的操作的控制电路(未示出)。存储器单元阵列可以包括2D存储器单元阵列或3D存储器单元阵列。存储器单元阵列可以包括多个存储器单元。尽管存储器单元中的每一个是被配置为存储1位信息的单级单元(SLC),但是存储器单元中的每一个可以是被配置为存储2位或更多位信息的单元,诸如多级单元(MLC)、三级单元(TLC)和四级单元(QLC)。3D存储器单元阵列可以包括垂直NAND串,其中至少一个存储器单元垂直取向并位于另一个存储器单元上。
电压VCC、VCCQ和VCCQ2可以作为电源电压被施加到UFS设备2200。电压VCC可以是用于UFS设备2200的主电源电压,并且在2.4V到3.6V的范围内。电压VCCQ可以是用于主要向UFS设备控制器2210供应低电压的电源电压,并且在1.14V到1.26V的范围内。电压VCCQ2是用于主要向I/O接口(诸如MIPI M-PHY 2251)供应低于电压VCC并高于电压VCCQ的电源电压,并且在1.7V到1.95V的范围内。电源电压可以通过调节器2260被供应给UFS设备2200的各个组件。调节器2260可以被实现为分别连接到上述电源电压中不同的电源电压的一组单位调节器(unit regulator)。
图6是根据实施例的存储器系统20的框图。参考图6,存储器系统20可以包括存储器设备300和存储器控制器400。存储器设备300可以对应于NVM设备NVM11至NVMmn之一,其基于图3的多个通道CH1至CHm之一与存储控制器200通信。存储器控制器400可以对应于图3的存储器控制器200。
存储器设备300可以包括第一引脚P11至第八引脚P18、存储器接口电路310、控制逻辑电路320和存储器单元阵列330。
存储器接口电路310可以通过第一引脚P11从存储器控制器400接收芯片使能信号nCE。响应于芯片使能信号nCE,存储器接口电路310可以通过第二引脚P12至第八引脚P18向存储器控制器400发送信号和从存储器控制器400接收信号。例如,当芯片使能信号nCE处于使能状态(例如,低电平)时,存储器接口电路310可以通过第二引脚P12至第八引脚P18向存储器控制器400发送信号和从存储器控制器400接收信号。
存储器接口电路310可以通过第二引脚P12至第四引脚P14从存储器控制器400接收命令锁存使能信号CLE、地址锁存使能信号ALE和写入使能信号nWE。存储器接口电路310可以通过第七引脚P17从存储器控制器400接收数据信号DQ、或者将数据信号DQ发送到存储器控制器400。命令CMD、地址ADDR和数据可以经由数据信号DQ来发送。例如,数据信号DQ可以通过多条数据信号线路来发送。在这种情况下,第七引脚P17可以包括分别与多个数据信号DQ相对应的多个引脚。
存储器接口电路310可以从数据信号DQ中获得命令CMD,该命令CMD是基于写入使能信号nWE的翻转时间点在命令锁存使能信号CLE的使能部分(例如,高电平状态)中接收到的。存储器接口电路310可以从数据信号DQ中获得地址ADDR,该地址ADDR是基于写入使能信号nWE的翻转时间点在地址锁存使能信号ALE的使能部分(例如,高电平状态)中接收到的。
在示例实施例中,写入使能信号nWE可以保持在静态(例如,高电平或低电平)并在高电平和低电平之间翻转。例如,写入使能信号nWE可以在其中发送了命令CMD或地址ADDR的部分中翻转。因此,存储器接口电路310可以基于写入使能信号nWE的翻转时间点来获得命令CMD或地址ADDR。
存储器接口电路310可以通过第五引脚P15从存储器控制器400接收读取使能信号nRE。存储器接口电路310可以通过第六引脚P16从存储器控制器400接收数据选通信号DQS、或者将数据选通信号DQS发送到存储器控制器400。
在存储器设备300的数据(DATA)输出操作中,存储器接口电路310可以接收读取使能信号nRE,其在输出数据DATA之前通过第五引脚P15翻转。存储器接口电路310可以生成数据选通信号DQS,其基于读取使能信号nRE的翻转而翻转。例如,存储器接口电路310可以基于读取使能信号nRE的翻转开始时间生成数据选通信号DQS,其在预定延迟(例如,tDQSRE)之后开始翻转。存储器接口电路310可以基于数据选通信号DQS的翻转时间点发送包括数据DATA的数据信号DQ。因此,数据DATA可以与数据选通信号DQS的翻转时间点对准,并被发送到存储器控制器400。
在存储器设备300的数据(DATA)输入操作中,当从存储器控制器400接收到包括数据DATA的数据信号DQ时,存储器接口电路310可以与数据DATA一起从存储器控制器400接收数据选通信号DQS(其翻转)。存储器接口电路310可以基于数据选通信号DQS的翻转时间点从数据信号DQ中获得数据DATA。例如,存储器接口电路310可以在数据选通信号DQS的上升沿和下降沿对数据信号DQ进行采样,并获得数据DATA。
存储器接口电路310可以通过第八引脚P18向存储器控制器400发送就绪/忙碌输出信号nR/B。存储器接口电路310可以通过就绪/忙碌输出信号nR/B将存储器设备300的状态信息发送到存储器控制器400。当存储器设备300处于忙碌状态时(即,当正在存储器设备300中执行操作时),存储器接口电路310可以向存储器控制器400发送指示忙碌状态的就绪/忙碌输出信号nR/B。当存储器设备300处于就绪状态时(即,当操作没有在存储器设备300中执行或操作完成时),存储器接口电路310可以向存储器控制器400发送指示就绪状态的就绪/忙碌输出信号nR/B。例如,当存储器设备300响应于页读取命令正从存储器单元阵列330读取数据DATA时,存储器接口电路310可以向存储器控制器400发送指示忙碌状态(例如,低电平)的就绪/忙碌输出信号nR/B。例如,当存储器设备300响应于编程命令正将数据DATA编程到存储器单元阵列330时,存储器接口电路310可以向存储器控制器400发送指示忙碌状态的就绪/忙碌输出信号nR/B。
控制逻辑电路320可以控制存储器设备300的所有操作。控制逻辑电路320可以接收从存储器接口电路310获得的命令/地址CMD/ADDR。控制逻辑电路320可以响应于接收到的命令/地址CMD/ADDR,生成用于控制存储器设备300的其他组件的控制信号。例如,控制逻辑电路320可以生成用于将数据DATA编程到存储器单元阵列330或者从存储器单元阵列330读取数据DATA的各种控制信号。
存储器单元阵列330可以经由控制逻辑电路320的控制存储从存储器接口电路310获得的数据DATA。存储器单元阵列330可以经由控制逻辑电路320的控制将存储的数据DATA输出到存储器接口电路310。
存储器单元阵列330可以包括多个存储器单元。例如,多个存储器单元可以是闪存单元。然而,本发明构思不限于此,存储器单元可以是RRAM单元、FRAM单元、PRAM单元、晶闸管RAM(TRAM)单元或MRAM单元。在下文中,将主要描述存储单元是NAND闪存单元的实施例。
存储器控制器400可以包括第一至第八引脚P21至P28和控制器接口电路410。第一至第八引脚P21至P28可以分别对应于存储器设备300的第一至第八引脚P11至P18。
控制器接口电路410可以通过第一引脚P21向存储器设备300发送芯片使能信号nCE。控制器接口电路410可以通过第二至第八引脚P22至P28向由芯片使能信号nCE选择的存储器设备300发送信号和从由芯片使能信号nCE选择的存储器设备300接收信号。
控制器接口电路410可以通过第二至第四引脚P22至P24将命令锁存使能信号CLE、地址锁存使能信号ALE和写入使能信号nWE发送到存储器设备300。控制器接口电路410可以通过第七引脚P27向存储器设备300发送数据信号DQ或从存储器设备300接收数据信号DQ。
控制器接口电路410可以将包括命令CMD或地址ADDR的数据信号DQ与写入使能信号nWE(其翻转)一起发送到存储器设备300。控制器接口电路410可以通过发送具有使能状态的命令锁存使能信号CLE来将包括命令CMD的数据信号DQ发送到存储器设备300。此外,控制器接口电路410可以通过发送具有使能状态的地址锁存使能信号ALE来将包括地址ADDR的数据信号DQ发送到存储器设备300。
控制器接口电路410可以通过第五引脚P25将读取使能信号nRE发送到存储器设备300。控制器接口电路410可以通过第六引脚P26从存储器设备300接收数据选通信号DQS或将数据选通信号发送到存储器设备300。
在存储器设备300的数据(DATA)输出操作中,控制器接口电路410可以生成读取使能信号nRE(其翻转),并将该读取使能信号nRE发送到存储器设备300。例如,在输出数据DATA之前,控制器接口电路410可以生成读取使能信号nRE,该读取使能信号nRE从静态(例如,高电平或低电平)改变为翻转状态(toggling state)。因此,存储器设备300可以基于读取使能信号nRE生成数据选通信号DQS(其翻转)。控制器接口电路410可以与数据选通信号DQS(其翻转)一起从存储器设备300接收包括数据DATA的数据信号DQ。控制器接口电路410可以基于数据选通信号DQS的翻转时间点从数据信号DQ中获得数据DATA。
在存储器设备300的数据(DATA)输入操作中,控制器接口电路410可以生成数据选通信号DQS(其翻转)。例如,在发送数据DATA之前,控制器接口电路410可以生成数据选通信号DQS,该数据选通信号DQS从静态(例如,高电平或低电平)改变为翻转状态。控制器接口电路410可以基于数据选通信号DQS的翻转时间点将包括数据DATA的数据信号DQ发送到存储器设备300。
控制器接口电路410可以通过第八引脚P28从存储器设备300接收就绪/忙碌输出信号nR/B。控制器接口电路410可以基于就绪/忙碌输出信号nR/B来确定存储器设备300的状态信息。
图7是根据实施例的存储系统7000的示例。存储系统7000可以包括可以用于操作操作系统(OS)7100的CPU 7200,并且可以包括SSD 7300。在实施例中,CPU 7200可以对应于例如主处理器1100、CPU内核1110、主机控制器110、UFS主机控制器2110或上面讨论的任何其他元件。在实施例中,SSD 7300可以对应于存储设备1300a和1300b、存储设备200、存储器系统15、存储器系统20、存储器设备300或上面讨论的任何其他元件。尽管SSD 7300被示为SSD,但是实施例也可以应用于任何其他类型的存储设备,例如诸如UFS设备2200的UFS存储设备、或者诸如eMMC存储设备的任何其他存储设备。在实施例中,CPU 7200可以使用诸如PCIe总线的通信路径与存储设备(例如SSD 7300)通信,然而实施例不限于此,并且CPU7200可以通过任何类型的连接与任何类型的存储设备通信。
SSD 7300可以包括RAM 7310、SSD控制器7320和一个或多个存储器设备,诸如NAND闪存设备NAND1、NAND2、NAND3和NAND4。在实施例中,RAM 7310可以对应于缓冲存储器216、设备存储器2240或上面讨论的任何其他元件。在实施例中,SSD控制器7320可以对应于STRGCTRL 1310a和1310b、STRG CTRL 210、存储器控制器16、UFS设备控制器2210、存储器控制器400或上述任何其他元件。在实施例中,存储器设备NAND1、NAND2、NAND3和NAND4可以对应于NVM 1320a和1320b、NVM 220、NVM设备NVM11-NVMmn、存储器设备300、NVM 2220或上述任何其他元件。
在实施例中,SSD控制器7320可以包括存储内部保护(SIP)模块7330和主机接口7340,但实施例不限于此。在实施例中,SIP模块7330和主机接口7340中的一个或多个可以与SSD控制器7320分开实现。在实施例中,主机接口7340可以对应于主机接口211、UIC层2250或上面讨论的任何其他元件。
在实施例中,SIP模块7330可以用于提供免受恶意勒索软件攻击的保护。在实施例中,SIP模块7330可以包括例如可以执行SIP 7330的一个或多个功能的神经网络(NN)处理器。在实施例中,NN处理器可以是例如可以执行软件代码或固件代码(例如用于提供针对勒索软件或其他恶意程序的保护的固件代码)的通用NN处理器。
在实施例中,可以与从CPU 7200传递到主机接口7340的所有存储命令(其可以是例如NVMe命令)在主机接口7340中的处理并行地在SIP模块7330中嗅探和处理这些存储命令。在实施例中,SIP模块7330可以嗅探NVMe通信并检测勒索软件活动。SIP模块7330可以生成可以被提供给CPU 7200的警告或通知。尽管图7将SIP模块7330示为被包括在SSD 7300中,但是实施例不限于此,并且SIP模块7330可以包括在任何类型的存储设备中。
在实施例中,CPU 7200的用户可以通过存储内部保护应用(Storage InternalProtection Application,SIPA)7110来接收警告或通知、或者关于警告或通知的信息。在实施例中,SIPA 7110还可以允许用户配置或以其他方式修改SIP模块7330的操作。例如,使用SIPA 7110,用户可以指定使用存储系统7000所允许的读取操作、加密操作和写入操作或其组合的类型或量(如果有的话),并且可以指定使用存储系统7000所不允许的、因而可以引起触发警告或通知的读取操作、加密操作和写入操作或其组合的类型或量。
在实施例中,勒索软件操作可以包括读取数据、加密数据和使用加密的数据覆盖原始数据的顺序或模式。然而,有时合法的操作也可能包括这样的顺序。因此,在实施例中,可以针对恶意操作和合法操作两者触发警告或通知,以便向用户提供关于存储设备7000或SSD 7300的运行状况的信息。
在实施例中,SIP模块7330和SIPA 7110中的一个或两个可以允许存储系统7000或SSD 7300的用户或所有者避免恶意勒索软件活动,并因此避免存储在设备上的数据丢失或被盗。
在实施例中,SIP模块7330可以使用存储命令(其可以是例如NVMe命令)的元数据来检测勒索软件活动。例如,SIP模块7330可以分析一个或多个命令的操作码(opcode)、一个或多个存储命令的起始逻辑块地址(SLBA)、与一个或多个存储命令相对应的逻辑块的数量(NLB)以及一个或多个存储命令的队列标识符(QID)。
图8示出了根据实施例的由SIP模块7330使用的勒索软件检测机制的逻辑流程的示例。在实施例中,SIP模块7330可以包括特征提取器7331,其可以接收多个存储命令并且向勒索软件检测算法7332提供多个提取的特征。在实施例中,特征提取器7331可以将包括在全部接收到的存储命令的滑动窗口中的最近(recent)命令的序列作为输入。例如,SIP模块7330可以接收包括NVMe CMD t-k-2至NVMe CMD t+2的多个NVMe命令,并且可以使用滑动窗口800来过滤多个NVMe命令。结果,特征提取器7331可以接收NVMe CMD t-k至NVMe CMD t作为输入,并且可以提取诸如特征1至特征n的特征,以被勒索软件检测算法7332用作输入。在实施例中,特征提取器7331可以执行附加的过滤。例如,基于多个NVMe命令的元数据,特征提取器可以仅提取具有指示特定类型命令的操作码的NVMe命令的特征。在实施例中,特征提取器7331可以接收所有的NVMe命令,并且可以对所有的NVMe命令执行过滤、或者可以对NVMe命令应用滑动窗口和/或提供附加的过滤。
在实施例中,特征提取器7331可以提取可能与勒索软件活动检测相关的特征。在实施例中,特征提取器7331可以对命令块或单个命令(这可以指例如滑动窗口800可以是单个命令)执行特征提取。在实施例中,使用特征提取器7331提取的特征可以涉及多个命令。例如,使用特征提取器7331提取的特征可以涉及命令之间的时间差(例如读取操作、修改操作和写入操作中的一个或多个之间的时间差)、命令中的模式(例如读取操作、加密操作和读取操作的位置处的写入操作的模式)、命令之间存在多长时间,是否以小的时间间隔接收到大的命令块、或者任何其他期望的特征。在实施例中,特征可以对应于读取请求、写入请求的时序和次序,以及对应的命令的SLBA范围。在实施例中,特征可以对应于诸如在读取命令之后出现写入命令的模式的出现、写入命令的写入卷(volume)以及写入命令的序列长度。
在实施例中,勒索软件检测算法7332可以是机器学习勒索软件检测算法,其可以被训练为接收多个特征并输出二进制结果,例如指示是否检测到加密挖掘的信号。在实施例中,勒索软件检测算法7332可以包括神经网络(诸如卷积神经网络(CNN)、循环神经网络(RNN))、经典算法(诸如主成分分析模型、随机森林模型、1+规范算法(algorithm for 1+specification))或任何其他类型的算法。在实施例中,勒索软件检测算法7332可以全部或部分地由包括在SIP模块7330中的NN处理器实现或执行。例如,软件代码或固件代码可以用于对NN处理器进行编程,以实现或执行勒索软件检测算法7332。在实施例中,SIP模块7330可以接收更新,例如软件更新或固件更新,其可以提供勒索软件检测算法7332的更新版本。可以基于新的勒索软件或恶意程序威胁和/或新的勒索软件或恶意程序保护来分发更新,并且更新的勒索软件检测算法7332可以具有检测或以其他方式保护免受新的勒索软件或恶意程序威胁和/或实现新的勒索软件或恶意程序保护的能力。例如,在实施例中,勒索软件检测算法7332可以被训练为检测新的勒索软件或恶意程序威胁。
在实施例中,勒索软件检测算法7332可以基于其内部存储器和从当前在滑动窗口800内的存储命令中提取的特征集来决定是否检测到勒索软件活动,并且可以提供可以用于生成警告或通知的指示。
图9示出了根据实施例的与SIPA 7110相关联的用户界面屏幕的示例。如图9所示,用户界面屏幕可以包括已经检测到恶意程序相关活动(诸如勒索软件操作或加密劫持操作)的指示。此外,在实施例中,用户界面屏幕可以提供附加信息,例如与勒索软件操作或加密劫持操作相关联的概率水平、诸如与SSD 7300相对应的读取流量或写入流量的存储器统计数据、指示与最近命令相关联的NLB的直方图、以及与最近命令相关联的SLBA的访问历史。
图10示出了根据实施例的可以用于训练勒索软件检测算法7332的训练环境10000的框图。在实施例中,勒索软件检测算法7332可以使用可以“在自然环境下(in the wild)”找到的勒索软件变体(例如勒索软件的真实世界示例)来训练。然而,将这种恶意代码引入敏感环境会带来许多风险。因此,训练环境可以包括可以连接到隔离的网络10200的主机10100。在实施例中,主机10100可以包括虚拟机10120,该虚拟机10120可以使用操作系统(OS)10121。在实施例中,OS10121可以是个人计算机OS(例如,Microsoft Windows、AppleiOS或Unix)、诸如Android的移动设备OS、或者根据需要的任何其他OS。在实施例中,OS10121可以用于操作与NVMe驱动10122相关联的固件的模拟版本。在实施例中,主机还可以包括恶意程序检测器10110,该恶意程序检测器10110可以包括与勒索软件检测算法7332相对应的机器学习算法,并且可以通过NVMe trace从NVMe驱动10122接收存储命令,诸如NVMe命令。
在实施例中,训练环境10000可以用于提供训练数据集,该训练数据集可以包括用于训练和测试勒索软件检测算法7332的NVMe日志。例如,训练数据集可以包括两个集合,这两个集合可以被称为勒索软件集和良好软件(goodware)集。勒索软件集可以包括使用真实世界勒索软件示例(诸如REvil、Darkside、DHARMA、Conti、RansomEXX、Maze、CTBLocker和CryptoDefense)生成的NVMe日志。例如,可以通过利用勒索软件示例感染虚拟机10120并读取相关联的NVMe命令来生成勒索软件集。良好软件集可以包括使用不同合法用户场景的示例(诸如秘书工作、文件操作、游戏、网页浏览和编解码)生成的NVMe日志。例如,可以通过使用虚拟机10120执行合法用户场景并读取相关联的NVMe命令来生成良好软件集。在实施例中,训练数据集可以包括勒索软件数据集和良好软件数据集的混合,这可以模拟对不同类型的用户的勒索软件攻击。
图11是根据实施例的控制存储设备的过程11000的流程图。在一些实现方式中,图11的一个或多个过程框可以由SIP模块7330或以上参考图1-图10描述的任何其他元件来执行。
如图11所示,在操作11100,过程11000可以包括从主机设备获得与存储器相对应的多个存储命令。在实施例中,主机设备可以对应于CPU 7200、主机110、UFS主机2100或上面参考图1-图10描述的任何其他元件。
如图11进一步所示,在操作11200,过程11000可以包括过滤该多个存储命令,以获得经过滤的多个存储命令。
如图11进一步所示,在操作11300,过程11000可以包括将关于经过滤的多个存储命令的信息应用于机器学习勒索软件检测算法。在实施例中,机器学习勒索软件检测算法可以对应于勒索软件检测算法7332。
如图11进一步所示,在操作11400,过程11000可以包括,基于机器学习勒索软件检测算法指示检测到勒索软件操作,向主机设备提供通知。
在实施例中,SIP模块还可以包括神经网络(NN)处理器,该NN处理器配置为执行恶意程序保护固件代码,以实现机器学习勒索软件检测算法,并且SIP模块还可以被配置为获得恶意程序保护固件代码的更新;基于该更新来更新恶意程序保护固件代码;将关于新的经过滤的多个存储命令的新信息应用于与更新的恶意程序检测固件代码相对应的更新的机器学习勒索软件检测算法;以及基于更新的机器学习勒索软件检测算法指示检测到新的勒索软件操作,向主机设备提供通知。
在实施例中,存储设备可以SSD,该SSD包括SSD控制器,该SSD控制器被配置为接收多个存储命令,并且基于该多个存储命令对存储器执行操作,其中该SSD控制器包括被配置为执行过程11000的至少一个处理器。在实施例中,过程11000可以由不是处理器的硬件来执行。例如,SIP模块7330可以由不包括处理器的电路或其他硬件来实现,并且过程10000可以由SIP模块7330来执行。
在实施例中,该多个存储命令可以包括至少一个非易失性存储器快速(NVMe)命令。
在实施例中,可以通过将具有预定大小的滑动窗口应用于该多个存储命令来获得经过滤的多个存储命令。
在实施例中,可以通过从与该多个存储命令相对应的元数据中提取多个特征来获得关于经过滤的多个存储命令的信息。
在实施例中,多个特征中的特征可以包括与多个存储命令中的存储命令相对应的操作码、与该存储命令相对应的逻辑块的数量和与该存储命令相对应的队列标识符中的至少一个。然而,实施例不限于此,并且多个特征可以包括任何其他类型的特征。
在实施例中,可以基于提取的多个特征来过滤多个存储命令,并且关于经过滤的多个存储命令的信息可以包括与经过滤的多个存储命令相对应的经过滤的多个特征。
在实施例中,机器学习勒索软件检测算法可以包括卷积神经网络、循环神经网络、主成分分析模型和随机森林模型中的至少一种。
在实施例中,机器学习勒索软件检测算法可以被配置为基于与经过滤的多个存储命令相关联的模式识别勒索软件操作,并且该模式可以和与用于读取数据的读取操作相对应的第一存储命令、与用于加密数据以生成经加密的数据的加密操作相对应的第二存储命令、以及与用于使用经加密的数据覆写数据的写入操作相对应的第三存储命令中的至少一个相关。
在实施例中,主机设备可以被配置为操作与SIP模块相对应的SIP应用(SIPA),并且过程11000还可以包括基于该通知向主机设备的用户提供警告,并接收从用户接收到的用户输入,以及基于用户输入修改SIP模块7330的操作。在实施例中,SIPA可以对应于SIPA7110。
尽管图11示出了过程11000的示例框,但在一些实现方式中,过程11000可以包括比图11所示的附加的框、更少的框、不同的框或不同排列的框。附加地或可替代地,过程11000的两个或更多个框可以以任何次序排列或组合、或者并行执行。
图12是根据实施例的应用了存储器设备的数据中心3000的图。
参考图12,数据中心3000可以是收集各种类型的数据并提供服务的设施,并且可以被称为数据存储中心。数据中心3000可以是用于操作搜索引擎和数据库的系统,并且可以是由公司(诸如银行)或政府机构使用的计算系统。数据中心3000可以包括应用服务器3100至3100n和存储服务器3200至3200m。根据实施例,可以不同地选择应用服务器3100至3100n的数量和存储服务器3200至3200m的数量。应用服务器3100至3100n的数量可以不同于存储服务器3200至3200m的数量。
应用服务器3100或存储服务器3200可以包括处理器3110和3210以及存储器3120和3220中的至少一个。现在将存储服务器3200作为示例进行描述。处理器3210可以控制存储服务器3200的所有操作,访问存储器3220,并执行加载到存储器3220中的指令和/或数据。存储器3220可以是双倍数据速率同步DRAM(DDR SDRAM)、高带宽存储器(HBM)、混合存储器立方体(HMC)、双列直插式存储器模块(DIMM)、Optane DIMM和/或非易失性DIMM(NVMDIMM)。在一些实施例中,可以不同地选择存储服务器3200中包括的处理器3210和存储器3220的数量。在实施例中,处理器3210和存储器3220可以提供处理器-存储器对。在实施例中,处理器3210的数量可以不同于存储器3220的数量。处理器3210可以包括单核处理器或多核处理器。以上对存储服务器3200的描述可以类似地应用于应用服务器3100。在一些实施例中,应用服务器3100可以不包括存储设备3150。存储服务器3200可以包括至少一个存储设备3250。根据实施例,可以不同地选择存储服务器3200中包括的存储设备3250的数量。
应用服务器3100至3100n可以通过网络3300与存储服务器3200至3200m通信。网络3300可以通过使用光纤通道(FC)或以太网来实现。在这种情况下,FC可以是用于相对高速数据传输的介质,并且使用具有高性能和高可用性的光交换机。根据网络3300的访问方法,存储服务器3200至3200m可以被提供为文件存储装置、块存储装置或对象存储装置。
在实施例中,网络3300可以是存储专用网络,诸如存储区域网络(SAN)。例如,SAN可以是FC-SAN,其使用FC网络并且根据FC协议(FCP)来实现。作为另一个示例,SAN可以是互联网协议(IP)-SAN,其使用传输控制协议(TCP)/IP网络,并且根据TCP/IP上的SCSI或互联网SCSI(iSCSI)协议来实现。在另一实施例中,网络3300可以是通用网络,诸如TCP/IP网络。例如,网络3300可以根据诸如以太网FC(FC over Ethernet,FCoE)、网络附加存储(networkattached storage,NAS)和光纤NVMe(NVMe over Fabrics,NVMe-oF)的协议来实现。
在下文中,将主要描述应用服务器3100和存储服务器3200。对应用服务器3100的描述可以应用于另一应用服务器3100n,并且对存储服务器3200的描述可以应用于另一存储服务器3200m。
应用服务器3100可以通过网络3300将用户或客户端请求存储的数据存储在存储服务器3200至3200m之一中。此外,应用服务器3100可以通过网络3300从存储服务器3200至3200m之一获得用户或客户端请求读取的数据。例如,应用服务器3100可以被实现为网络服务器或数据库管理系统(DBMS)。
应用服务器3100可以通过网络3300访问另一应用服务器3100n中包括的存储器3120n或存储设备3150n。可替代地,应用服务器3100可以通过网络3300访问存储服务器3200至3200m中包括的存储器3220至3220m或存储设备3250至3250m。因此,应用服务器3100可以对存储在应用服务器3100至3100n和/或存储服务器3200至3200m中的数据执行各种操作。例如,应用服务器3100可以执行用于在应用服务器3100至3100n和/或存储服务器3200至3200m之间移动或复制数据的指令。在这种情况下,数据可以直接或通过存储服务器3200至3200m的存储器3220至3220m从存储服务器3200至3200m的存储设备3250至3250m移动到应用服务器3100至3100n的存储器3120至3120n。通过网络3300移动的数据可以是为了安全或隐私而加密的数据。
现将存储服务器3200作为示例进行描述。接口3254可以提供处理器3210和控制器3251之间的物理连接以及网络接口卡(NIC)3240和控制器3251之间的物理连接。例如,接口3254可以使用其中存储设备3250直接与专用电缆连接的直接附接存储(DAS)方案来实现。例如,接口3254可以通过使用各种接口方案(诸如ATA、SATA、e-SATA、SCSI、SAS、PCI、PCIe、NVMe、IEEE 1394、USB接口、SD卡接口、MMC接口、eMMC接口、UFS接口、eUFS接口和/或CF卡接口)来实现。
存储服务器3200还可以包括开关3230和NIC(网络互连)3240。开关3230可以经由处理器3210的控制选择性地将处理器3210连接到存储设备3250、或者选择性地将NIC 3240连接到存储设备3250。
在实施例中,NIC 3240可以包括网络接口卡和网络适配器。NIC 3240可以通过有线接口、无线接口、蓝牙接口或光学接口连接到网络3300。NIC 3240可以包括内部存储器、数字信号处理器(DSP)和主机总线接口,并且通过主机总线接口连接到处理器3210和/或开关3230。主机总线接口可以被实现为接口3254的上述示例之一。在实施例中,NIC 3240可以与处理器3210、开关3230和存储设备3250中的至少一个集成。
在存储服务器3200至3200m或应用服务器3100至3100n中,处理器可以向存储设备3150至3150n和3250至3250m或存储器3120至3120n和3220至3220m发送命令,并编程或读取数据。在这种情况下,数据可以是由ECC引擎纠正了错误的数据。数据可以是对其执行了数据总线反转(data bus inversion,DBI)操作或数据掩蔽(data masking,DM)操作的数据,并且可以包括循环冗余码(CRC)信息。数据可以是为了安全或隐私而经加密的数据。
存储设备3150至3150n和3250至3250m可以响应于从处理器接收到的读取命令,向NAND闪存设备3252至3252m发送控制信号和命令/地址信号。因此,当从NAND闪存设备3252至3252m读取数据时,读取使能(RE)信号可以作为数据输出控制信号被输入,因此,数据可以被输出到DQ总线。可以使用RE信号生成数据选通信号DQS。取决于写入使能(WE)信号的上升沿或下降沿,命令和地址信号可以被锁存在页缓冲器中。
控制器3251可以控制存储设备3250的所有操作。在实施例中,控制器3251可以包括SRAM。控制器3251可以响应于写入命令将数据写入NAND闪存设备3252、或者响应于读取命令从NAND闪存设备3252读取数据。例如,可以从存储服务器3200的处理器3210、另一存储服务器3200m的处理器3210m或者应用服务器3100和3100n的处理器3110和3110n提供写入命令和/或读取命令。DRAM 3253可以临时存储(或缓冲)要写入NAND闪存设备3252的数据或从NAND闪存设备3252读取的数据。此外,DRAM 3253可以存储元数据。这里,元数据可以是用户数据或由控制器3251生成的数据,用于管理NAND闪存设备3252。存储设备3250可以包括用于安全或隐私的安全元件(SE)。
按照本领域的传统,根据功能块、单元和/或模块,在附图中描述和示出了实施例。本领域的技术人员将了解,这些块、单元和/或模块是由电子(或光学)电路(诸如逻辑电路、分立组件、微处理器、硬连线电路、存储器元件、布线连接等)物理上实现的,电子(或光学)电路可以使用基于半导体的制造技术或其它制造技术来形成。在块、单元和/或模块由微处理器等实现的情况下,它们可以使用软件(例如,微代码)被编程以执行本文讨论的各种功能,并且可以可选地由固件和/或软件来驱动。可替代地,每个块、单元和/或模块可以由专用硬件来实现、或者被实现为执行一些功能的专用硬件和执行其他功能的处理器(例如,一个或多个经编程的微处理器和关联电路)的组合。此外,实施例的每个块、单元和/或模块可以在物理上分离为两个或更多个相互作用且分立的块、单元和/或模块,而不脱离本公开的范围。此外,实施例的块、单元和/或模块可以物理地组合为更复杂的块、单元和/或模块,而不脱离本公开的范围。
上述方法的各种操作可以由能够执行操作的任何合适的部件(诸如各种硬件和/或软件组件、电路和/或模块)来执行。
软件可以包括用于实现逻辑功能的可执行指令的有序列表,并且可以包含在任何“处理器可读介质”中,以供指令执行系统、装置或设备(诸如单核或多核处理器或者包含处理器的系统)使用或与之结合使用。
可以直接以硬件、由处理器执行的软件模块或两者的组合来实施结合本文公开的实施例描述的方法或算法的框或步骤和功能。如果以软件实现,则这些功能可以作为有形的非暂时性计算机可读介质上的一个或多个指令或代码来存储或传输。软件模块可以驻留在随机访问存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移动磁盘、CD ROM或本领域已知的任何其他形式的存储介质中。
前述内容是对实施例的说明,不得被解释为对实施例的限制。尽管已经描述了若干个实施例,但是本领域技术人员将容易理解,在本质上不脱离本公开范围的情况下,对实施例的多种修改是可能的。
Claims (20)
1.一种存储系统,包括:
主机设备;以及
存储设备,包括存储器和被配置为实现存储内部保护SIP模块的至少一个处理器,
其中,所述SIP模块被配置为:
从所述主机设备获得与所述存储器相对应的多个存储命令,
过滤所述多个存储命令以获得经过滤的多个存储命令,
将关于所述经过滤的多个存储命令的信息应用于机器学习勒索软件检测算法,以及
基于机器学习勒索软件检测算法指示检测到勒索软件操作,向所述主机设备提供通知。
2.根据权利要求1所述的存储系统,其中,所述SIP模块还包括被配置为执行恶意程序保护固件代码以实现所述机器学习勒索软件检测算法的神经网络NN处理器,以及
其中,所述SIP模块还被配置为:
获得针对所述恶意程序保护固件代码的更新;
基于所述更新来更新所述恶意程序保护固件代码;以及
将关于新的经过滤的多个存储命令的新信息应用于与更新的恶意程序检测固件代码相对应的更新的机器学习勒索软件检测算法;以及
基于所述更新的机器学习勒索软件检测算法指示检测到新的勒索软件操作,向所述主机设备提供通知。
3.根据权利要求1所述的存储系统,其中,所述存储设备包括固态驱动SSD,所述SSD包括SSD控制器,所述SSD控制器被配置为接收所述多个存储命令以及基于所述多个存储命令对所述存储器执行操作,
其中,所述至少一个处理器被包括在所述SSD控制器中,以及
其中,所述多个存储命令包括至少一个非易失性存储器快速NVMe命令。
4.根据权利要求3所述的存储系统,其中,所述SSD控制器还包括主机接口,所述主机接口被配置为从所述主机设备接收所述多个存储命令,以及
其中,所述SIP模块和主机接口被配置为并行处理所述多个存储命令。
5.根据权利要求1所述的存储系统,其中,所述经过滤的多个存储命令是通过将具有预定大小的滑动窗口应用于所述多个存储命令来获得的。
6.根据权利要求1所述的存储系统,其中,所述机器学习勒索软件检测算法被配置为基于与所述经过滤的多个存储命令相关联的模式来识别勒索软件操作,以及
其中,所述模式和与用于读取数据的读取操作相对应的第一存储命令、与用于加密所述数据以生成加密的数据的加密操作相对应的第二存储命令、以及与用于使用所述加密的数据覆写所述数据的写入操作相对应的第三存储命令中的至少一个相关。
7.根据权利要求1所述的存储系统,其中,所述机器学习勒索软件检测算法包括卷积神经网络、循环神经网络、主成分分析模型和随机森林模型中的至少一种。
8.根据权利要求1所述的存储系统,其中,所述主机设备被配置为操作与所述SIP模块相对应的SIP应用SIPA,
其中,所述SIPA被配置为基于所述通知向所述主机设备的用户提供警告,以及接收从所述用户接收到的用户输入,以及
其中,所述至少一个处理器还被配置为基于所述用户输入来修改所述SIP模块的操作。
9.一种存储设备,包括:
存储器;以及
至少一个处理器,被配置为:
获得与所述存储器相对应的多个存储命令,
过滤所述多个存储命令以获得经过滤的多个存储命令,
将关于经过滤的多个存储命令的信息应用于机器学习勒索软件检测算法,以及
基于机器学习勒索软件检测算法指示检测到勒索软件操作,向所述存储设备的用户提供通知。
10.根据权利要求9所述的存储设备,其中,所述存储设备包括固态驱动SSD,所述SSD包括SSD控制器,所述SSD控制器被配置为接收所述多个存储命令以及基于所述多个存储命令对所述存储器执行操作,
其中,所述至少一个处理器被包括在所述SSD控制器中,以及
其中,所述多个存储命令包括至少一个非易失性存储器快速NVMe命令。
11.根据权利要求9所述的存储设备,其中,所述经过滤的多个存储命令是通过将具有预定大小的滑动窗口应用于所述多个存储命令来获得的。
12.根据权利要求9所述的存储设备,其中,所述至少一个处理器还被配置为通过从与所述多个存储命令相对应的元数据中提取多个特征来获得关于所述经过滤的多个存储命令的信息。
13.根据权利要求12所述的存储设备,其中,所述多个特征中的特征包括与所述多个存储命令中的存储命令相对应的操作码、与所述存储命令相对应的起始逻辑块地址、与所述存储命令相对应的逻辑块的数量、和与所述存储命令相对应的队列标识符中的至少一个。
14.根据权利要求12所述的存储设备,其中,所述至少一个处理器还被配置为基于提取的多个特征来过滤所述多个存储命令,以及
其中,所述关于经过滤的多个存储命令的信息包括与所述经过滤的多个存储命令相对应的经过滤的多个特征。
15.根据权利要求9所述的存储设备,其中,所述机器学习勒索软件检测算法包括卷积神经网络、循环神经网络、主成分分析模型和随机森林模型中的至少一个。
16.一种控制存储系统的方法,所述方法由存储系统的存储设备中包括的至少一个处理器所实现的存储内部保护SIP模块执行,所述方法包括:
从包括在所述存储系统中的主机设备获得与所述存储设备的存储器相对应的多个存储命令,
过滤所述多个存储命令以获得经过滤的多个存储命令,
将关于经过滤的多个存储命令的信息应用于机器学习勒索软件检测算法,以及
基于机器学习勒索软件检测算法指示检测到勒索软件操作,向所述主机设备提供通知。
17.根据权利要求16所述的方法,其中,所述存储设备包括固态驱动SSD,所述SSD包括SSD控制器,所述SSD控制器被配置为接收所述多个存储命令以及基于所述多个存储命令对所述存储器执行操作,
其中,所述至少一个处理器被包括在所述SSD控制器中,以及
其中,所述多个存储命令包括至少一个非易失性存储器快速NVMe命令。
18.根据权利要求17所述的方法,其中,所述SSD控制器还包括主机接口,所述主机接口被配置为从所述主机设备接收所述多个存储命令,以及
其中,所述方法还包括使用所述SIP模块和所述主机接口并行地处理所述多个存储命令。
19.根据权利要求16所述的方法,其中,所述经过滤的多个存储命令是通过将具有预定大小的滑动窗口应用于所述多个存储命令来获得的。
20.根据权利要求16所述的方法,其中,所述机器学习勒索软件检测算法被配置为基于与经过滤的多个存储命令相关联的模式来识别勒索软件操作,以及
其中,所述模式和与用于读取数据的读取操作相对应的第一存储命令、与用于加密所述数据以生成加密的数据的加密操作相对应的第二存储命令、以及与用于使用所述加密的数据覆写所述数据的写入操作相对应的第三存储命令中的至少一个相关。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/877,435 US20240037233A1 (en) | 2022-07-29 | 2022-07-29 | Ransomware and malicious software protection in ssd/ufs by nvme instructions log analysis based on machine-learning |
US17/877,435 | 2022-07-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117473495A true CN117473495A (zh) | 2024-01-30 |
Family
ID=89626309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310777171.4A Pending CN117473495A (zh) | 2022-07-29 | 2023-06-28 | 用于勒索软件和恶意软件保护的存储系统和设备及其方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240037233A1 (zh) |
KR (1) | KR20240016884A (zh) |
CN (1) | CN117473495A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240045958A1 (en) * | 2022-08-02 | 2024-02-08 | Samsung Electronics Co., Ltd. | Anti-malware algorithm and hw/fw for internal ssd health and storage space protection against cyber-attacks |
-
2022
- 2022-07-29 US US17/877,435 patent/US20240037233A1/en active Pending
-
2023
- 2023-06-28 CN CN202310777171.4A patent/CN117473495A/zh active Pending
- 2023-07-10 KR KR1020230089043A patent/KR20240016884A/ko unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240045958A1 (en) * | 2022-08-02 | 2024-02-08 | Samsung Electronics Co., Ltd. | Anti-malware algorithm and hw/fw for internal ssd health and storage space protection against cyber-attacks |
Also Published As
Publication number | Publication date |
---|---|
US20240037233A1 (en) | 2024-02-01 |
KR20240016884A (ko) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10909238B2 (en) | Storage device and method for protecting against virus/malware thereof and computing system having the same | |
CN113806253A (zh) | 受到损害的存储设备固件的检测 | |
US9529805B2 (en) | Systems and methods for providing dynamic file system awareness on storage devices | |
US11960632B2 (en) | Data attestation in memory | |
US11683155B2 (en) | Validating data stored in memory using cryptographic hashes | |
US11669644B2 (en) | Storage device and data destruction method thereof | |
CN117473495A (zh) | 用于勒索软件和恶意软件保护的存储系统和设备及其方法 | |
Ahn et al. | Forensics and anti-forensics of a NAND flash memory: From a copy-back program perspective | |
KR20240018388A (ko) | 사이버 공격들로부터 내부 ssd 건강 및 저장 공간 보호를위한 멀웨어 방지 알고리즘, 하드웨어 및 소프트웨어 | |
KR20200100309A (ko) | 메모리 장치 및 시스템 | |
US11228443B2 (en) | Using memory as a block in a block chain | |
Ahn et al. | Forensic issues and techniques to improve security in SSD with flex capacity feature | |
CN116126755A (zh) | 存储设备 | |
CN114647374A (zh) | 执行处理代码的存储装置和存储装置的操作方法 | |
US11914879B2 (en) | Storage controller and storage system comprising the same | |
US20220138114A1 (en) | Using memory as a block in a block chain | |
US20170235953A1 (en) | Systems and Methods for Providing Dynamic File System Awareness on Storage Devices | |
US20230144135A1 (en) | Trusted computing device and operating method thereof | |
EP4177758A1 (en) | A storage device and an operating method of a storage controller thereof | |
KR102430219B1 (ko) | 스토리지 장치, 스토리지 장치의 키 생성 방법 및 스토리지 장치의 인증 방법 | |
EP4152333A2 (en) | Operation method of memory controller configured to control memory device | |
KR20230067457A (ko) | 스토리지 컨트롤러, 스토리지 시스템 및 그 동작방법 | |
KR20240009363A (ko) | 보안 삭제 검증 가능한 저장 장치 및 그것의 동작 방법 | |
CN114510752A (zh) | 数据存储装置及操作数据存储装置的方法 | |
CN115910161A (zh) | 存储封装、存储设备和用于操作存储设备的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |