一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

通过分析已知和/或未知网络安全威胁的形态来检测数据异常的系统和方法与流程

2021-11-09 17:55:00 来源:中国专利 TAG:
1.本发明涉及用于检测异常数据文件并防止检测到的异常数据文件存储在数据储存设备中的系统和方法。特别地,该系统和方法通过以下方式来检测异常数据文件:将每个数据文件划分为数据块,从而为每个数据块获取熵值,并对这种信息进行整理,然后将其用于机器学习模型中以确定数据文件的安全性水平。
背景技术
::2.在当今的数字时代,计算机系统日益遭受各种形式和类型的恶意网络攻击。这些攻击的目的是非法获得对计算机系统的访问权限,并且通常是通过在系统管理员并不知情的情况下安装在计算机系统中的流氓软件(也称为“恶意软件(malware)”)来进行的。恶意软件可以通过多种方式从计算机网络(例如电子邮件或网站)、通过插入系统的cd‑rom或通过连接到系统的外部存储设备中安装在计算机系统中。一旦恶意软件获得对系统的访问权限,它就会通过损害系统的安全性(例如,通过创建后门)、访问敏感信息、删除关键文件而造成毁灭性破坏,从而导致系统故障。3.通常认为,一旦安装了恶意软件,它将变得更加难以检测,这使得攻击者可以轻松地破坏计算机系统。4.为了解决这个问题,本领域技术人员已经提出在允许恶意软件或数据感染计算机系统之前对其进行识别。一旦被识别,就可以对恶意软件进行分类,以便可以更好地理解和防止恶意软件可能再次造成的损害程度。在已经提出的用于识别恶意软件的各种技术中,包括时间分析方法和实时更新方法,它们随后被用于更新数据库,以便该数据库可用于过滤已知的恶意实体以免影响受保护的计算机系统。5.最初,最明显的方法是让系统管理员在程序运行时手动分析可疑程序。管理员然后观察结果以确定该程序是被视为恶意软件还是受信任的软件。在管理员对程序进行分析期间,管理员可以对程序进行反编译以调查特定的代码行,或特别注意与计算机系统和/或外部联络进行交互的应用程序接口(api)调用,以确定这些调用是否指示恶意行为。尽管这种方法可能是详尽且详细的,但它非常耗时且效率低下。因此,本领域技术人员提出了替代的自动化方法。6.在时间分析方法中,将根据时间对受影响系统中的所有活动进行分类和查看,以便可以仔细检查在特定时间段内发生的可疑事件。此类事件可能包括:在该时间段内,访问/安装/删除/修改的文件、用户条目日志、已启动或终止的进程(包括后台进程)、被远程访问的网络端口等。一旦检测到允许安装恶意软件的事件,便可以相应地更新计算机系统的威胁分类系统,以防止此类事件再次发生。7.查看静态历史数据(例如文件和事件日志)的替代方法是实时更新方法,该方法可在计算机系统使用时检查实时程序、程序运行时的系统内存内容、当前的网络端口活动以及其他类型的元数据,以便识别攻击者如何对其进行了修改。从此方法获得的信息然后可用于更新系统的威胁分类系统。8.然后,更新的威胁分类系统可以用于查看要引入系统的新文件。通过将新文件的特征与其已知的、先前遇到的文件的数据库进行比较来完成此操作。通常通过对要比较的数据进行加密散列(cryptographicallyhash),即通过应用数学函数将数据转换为紧凑的数字表示来完成这种比较。然后假设如果使用相同算法生成的两个哈希值不同,则意味着新文件可能已被破坏。9.上面提出的方法的缺点是它们不能防止零日漏洞类型的恶意软件影响计算机系统,并且仅用于防止先前已检测到的同一恶意软件的再次发生。换句话说,如果对这些恶意软件进行了微小的修改,则很有可能恶意软件会越过系统的防御并影响计算机系统。10.已提出的用于识别潜在受损计算机系统上可疑活动的其他技术通常会生成大量数据,在将其用于更新威胁分类系统之前,必须对所有数据进行查看和解释。更为复杂的是,恶意软件本身也在通过采用各种方法来伪装它们的存在而不断发展、开发出新方法来规避现有的检测方法,从而使计算机安全系统的工作更加困难。其中一些技术包括删除其进入系统的指示符,例如系统的日志文件条目、文件修改/访问日期和系统进程。除上述内容外,还可以通过更改恶意软件的名称或执行配置文件来混淆恶意软件本身的身份,从而使其看起来是非常无害的,从而有效地伪装了恶意软件。11.但是,当对数据进行加密、压缩或混淆(取决于混淆方法)时,其熵值或随机性度量往往会高于“有组织的”数据。换句话说,用户生成的文档和计算机程序通常倾向于以结构化的有组织的方式进行调试,而加密数据倾向于具有很大程度的熵。12.人们普遍认为,熵的度量并不是识别恶意软件或攻击者隐藏数据存储的有保证的方法。有效程序可能具有存储在计算机系统上的加密信息或(更常见的是)压缩信息。但是,从最基本的角度来看,熵的检查确实提供了用于识别潜在有问题的程序的出色的初始过滤器。这样,可以大大减少需要详细分析的数据量。13.但是,由于为数据块生成熵值的方式,当实际上该数据块的某些部分可能包含小的混淆的恶意软件块时,数据块可能会返回较低的熵值。这种情况可能会发生在攻击者将加密的恶意软件以相对较低的熵放置在数据块中,从而有效地掩盖了恶意软件的存在时。14.鉴于上述情况,最希望一种技术来获得可靠的熵度量以便检测计算机系统中恶意软件的存在,同时减少在检测过程中生成的误报数量。15.由于上述原因,本领域技术人员不断地努力提出一种能够为数据文件生成合适的熵值的系统和方法,从而将这些熵值和有关数据文件的其他信息提供给受监督的机器学习模型,以便在将此类文件存储在计算机系统的存储设备中之前检测并识别异常数据文件。技术实现要素:16.通过根据本发明的实施例提供的系统和方法,解决了上述和其他问题,并在本领域取得了进步。17.根据本发明的系统和方法的实施例的第一优点是,可以有效地且高效地识别零日漏洞类型的异常文件。18.根据本发明的系统和方法的实施例的第二优点是,尚未被标记或识别为威胁的异常文件将被阻止,并且该信息将用于训练系统的威胁标识符以防止此类恶意软件的演变。19.根据本发明的系统和方法的实施例的第三优点是,不管引入到系统中的文件的类型如何,都将对文件进行分析以确定其威胁值。20.根据本发明的系统和方法的实施例的第四优点是,不管引入到系统中的文件的类型和/或大小(并且可能不包含任何数据文件)如何,都将对由该文件发起的任何读/写/覆盖命令进行分析,因为数据闪存控制器的前端管理器将被配置为不断采样该文件执行的命令。采样周期可在几百毫秒到几十秒之间变化,这样做可以防止系统受到勒索软件攻击。21.通过以以下方式操作的根据本发明的方法的实施例提供以上优点。22.根据本发明的第一方面,公开了一种用于检测接收到的数据对象中的数据异常的系统,该系统包括:处理单元;以及非暂时性介质,其能由所述处理单元读取,所述介质存储指令,所述指令在由所述处理单元执行时使所述处理单元执行以下操作:基于数字签名和数据对象的文件类型来确定数据对象的安全态势;基于安全态势和与安全态势相关联的数据对象的特征来生成类型安全平台(tsp)查找表,并基于tsp查找表为接收到的数据对象生成混淆值和取证值;为数据对象生成反汇编值或解释值;为接收到的数据对象的每个块计算结果值,从而基于反汇编值或解释值、与接收到的数据对象的块相关联的混淆值和取证值来为每个块生成结果值;基于数据对象的所有结果值创建数据模型;以及使用人工智能(ai)算法处理数据模型,以确定数据对象是否包含数据异常。23.参考第一方面,为接收到的数据对象生成混淆值的指令包括用于指示处理单元执行以下操作的指令:将数据对象划分为数据块;以及为每个数据块计算香农熵值。24.参考第一方面,为接收到的数据对象生成取证值的指令包括用于指示处理单元执行以下操作的指令:将数据对象划分为数据块;以及使用基于频率的相似性哈希算法为每个数据块计算相似性分数。25.参考第一方面,为接收到的数据对象的每个块生成结果值的指令包括用于指示处理单元执行以下操作的指令:为接收到的数据的每个块生成包括三个字节的结果值,从而对于每个块,所述指令指示处理单元:基于数据对象的反汇编值或解释值来设置结果值的第一字节的最高有效位(msb)和第二msb;解析结果值的第一字节的剩余位和第二字节,并基于与该块相关联的混淆值来设置解析结果;以及基于与该块相关联的取证值来设置第三字节的值。26.参考第一方面,基于数据对象的所有结果值来生成数据模型的指令包括用于指示处理单元执行以下操作的指令:生成数据图像模型,从而使数据图像模型中的每个像素与唯一结果值相关联,其中,每个唯一结果值在数据图像模型中由唯一图像表示。27.参考第一方面,用于处理数据模型的ai算法包括:卷积神经网络(cnn)模型、深度神经网络(dnn)模型或递归神经网络(rnn)模型。28.参考第一方面,使用人工智能(ai)算法处理数据模型的指令包括用于指示处理单元执行以下操作的指令:将数据模型与数据库中包含的数据模型进行比较,其中,该比较使用机器学习算法而被执行。29.参考第一方面,介质还包括用于指示处理单元执行以下操作的指令:提供被配置为接收和存储数据对象的虚拟文件系统,从而该虚拟文件系统使处理单元执行虚拟文件系统内的所有步骤。30.参考第一方面,数字签名包括与数据对象相关联的幻数。31.参考第一方面,与安全态势相关联的数据对象的特征包括数据对象的平台类型和文件类型。32.根据本发明的第二方面,公开了一种使用人工智能(ai)模块检测接收到的数据对象中的数据异常的方法,该方法包括以下步骤:利用ai模块内提供的分析器模块,基于数字签名和数据对象的文件类型来确定数据对象的安全态势;利用ai模块内提供的分析器模块和检测器模块,基于安全态势和与安全态势相关联的数据对象的特征来生成类型安全平台(tsp)查找表,并基于tsp查找表为接收到的数据对象生成混淆值和取证值;利用ai模块内提供的反汇编和解释模块,为数据对象生成反汇编值或解释值;利用ai模块内提供的块结构模块,为接收到的数据对象的每个块计算结果值,从而基于反汇编值或解释值、与接收到的数据对象的块相关联的混淆值和取证值为每个块生成结果值;利用ai模块内提供的模型生成器模块,基于数据对象的所有结果值来创建数据模型;以及利用ai模块内提供的ai威胁模块,使用人工智能(ai)算法来处理数据模型以确定数据对象是否包含数据异常。33.参考第二方面,为接收到的数据对象生成混淆值的步骤包括以下步骤:将数据对象划分为数据块;以及为每个数据块计算香农熵值。34.参考第二方面,为接收到的数据对象生成取证值的步骤包括以下步骤:将数据对象划分为数据块;以及使用基于频率的相似性哈希方案为每个数据块计算相似性分数。35.参考第二方面,为接收到的数据对象的每个块生成结果值的步骤包括以下步骤:为接收到的数据的每个块生成包括三个字节的结果值,从而对于每个块,该方法:基于数据对象的反汇编值或解释值来设置结果值的第一字节的最高有效位(msb)和第二msb;解析结果值的第一字节的剩余位和第二字节,并基于与该块相关联的混淆值来设置解析结果;以及根据与该块相关联的取证值来设置第三字节的值。36.参考第二方面,基于数据对象的所有结果值创建数据模型的步骤包括以下步骤:生成数据图像模型,从而数据图像模型中的每个像素与唯一结果值相关联,其中,每个唯一结果值在数据图像模型中由唯一图像表示。37.参考第二方面,用于处理数据模型的ai算法包括:卷积神经网络(cnn)模型、深度神经网络(dnn)模型或递归神经网络(rnn)模型。38.参考第二方面,使用人工智能(ai)算法处理数据模型的步骤包括以下步骤:将数据模型与数据库内包含的数据模型进行比较,其中,该比较使用机器学习算法而被执行。39.结合第二方面,其中,在基于数字签名和数据对象的文件类型确定数据对象的安全态势的步骤之前,该方法还包括以下步骤:利用分析器模块,提供用于接收和存储数据对象的虚拟文件系统,从而虚拟文件系统使该方法的所有步骤在虚拟文件系统内执行。40.参考第二方面,数字签名包括与数据对象相关联的幻数。41.参考第二方面,与安全态势相关联的数据对象的特征包括数据对象的平台类型和文件类型。附图说明42.上述和其他问题通过在详细描述中描述并在以下附图中示出的根据本发明的系统和方法的特征和优点来解决。43.图1示出了根据本发明实施例的可用于实现用于检测和分析异常的方法的模块的框图;44.图2示出了根据本发明实施例的表示提供实施例的处理系统的框图;45.图3是根据本发明实施例的用于检测异常数据文件的过程或方法。46.图4示出了根据本发明实施例的用于利用32位安全性查找表来生成数据模型的过程或方法;47.图5示出了根据本发明实施例的示出熵值相对于为示例性数据对象获得的采样率而绘制的图。48.图6示出了具有x轴和y轴的曲线图,x轴代表操作类型的频率,而y轴代表数据对象被反汇编后的操作类型。49.图7a示出了根据本发明实施例的用于生成数据模型的图像的512×512像素的图;50.图7b示出了根据本发明实施例的生成的数据模型的图像;51.图7c示出了根据本发明实施例的在生成的数据图像模型与先前用于预训练的数据集模型的图像之间的比较;52.图8示出了根据本发明实施例的用于使用机器学习模型基于由图4中示出的过程生成的数据集模型的特征对该数据集模型进行评分从而使用分数来确定数据文件的准确性的过程或方法。具体实施方式53.本发明涉及用于检测异常数据文件并防止检测到的异常数据文件存储在数据储存设备中的系统和方法。特别地,该系统和方法将每个数据文件分为多个数据块,从而为每个数据块获取熵值,并对该信息进行整理,然后将其用于机器学习模型中以确定数据文件的安全级别。然后,隔离被发现为异常的文件,同时将被认为正常的文件继续进行到下一步,以便对可能在后台运行的任何恶意软件和/或勒索软件命令进行分析(即使该文件不包含任何数据部分)。54.现在将参考如附图所示的本发明的几个实施例来详细描述本发明。在以下描述中,阐述了许多特定特征以便提供对本发明的实施例的透彻理解。然而,对于本领域的技术人员将显而易见的是,可以在没有一些或全部特定特征的情况下实施实施例。这样的实施例也应落入本发明的范围内。此外,以下可能不会详细描述某些过程步骤和/或结构,并且读者将被引用到相应的引文,以免不必要地使本发明晦涩难懂。55.此外,本领域技术人员将认识到,在整个说明书中,本说明书中的许多功能单元都被标记为模块。本领域技术人员还将认识到,模块可以被实施为电路、逻辑芯片或任何种类的独立组件。更进一步,本领域技术人员还将认识到,可以在软件中实施模块,然后可以由各种处理器体系结构执行该模块。在本发明的实施例中,模块还可以包括计算机指令或可执行代码,其可以基于接收到的指令来指示计算机处理器执行一系列事件。模块实施方式的选择留给本领域技术人员作为设计选择,并且不以任何方式限制本发明的范围。56.在以下步骤中阐述了根据本发明实施例的用于由ai内核处理器检测、分析和识别异常数据文件的示例性过程或方法。该过程或方法的步骤如下:57.步骤1:基于数字签名和数据对象的文件类型,确定数据对象的安全态势(posture);58.步骤2:基于安全态势和与安全态势相关联的数据对象的特征,生成类型安全平台(tsp)查找表,并为接收到的数据对象生成混淆值和取证值;59.步骤3:为数据对象生成反汇编值或解释值;60.步骤4:为接收到的数据对象的每个块计算结果值,从而基于反汇编值或解释值、与接收到的数据对象的块相关联的混淆值和取证值来为每个块生成结果值;61.步骤5:基于数据对象的所有结果值来创建数据模型;以及62.步骤6:使用人工智能(ai)算法处理数据模型,以确定数据对象是否包含数据异常。63.根据本发明的实施例,上述步骤可以由包含在人工智能(ai)内核模块105中内的模块执行,如图1所示,其中ai内核模块105包括合成模块110、ai高级分析器模块106、ai威胁模块107、验证模块140和存储设备150。64.继而,合成模块110包括以下子模块:分析器111;平台检测器112;反汇编/解释113;以及块结构114,而ai高级分析器模块106包括以下子模块:输出结构块120;特征提取器121;以及模型生成器122。对于ai威胁模块107,该模块包括以下子模块:ai搜索130;数据库131;和经训练的数据库132。65.在本发明的实施例中,数据101可包括所有类型和格式的数据对象,并且这些数据的内容可包括但不限于视频文件、文档、图像、电子表格、应用程序编程接口、可执行文件和具有各种文件扩展名/或虚拟命令字节的所有其他文件类型,例如读/写(擦除)命令。通常,数据101可被划分为多个子对象102,这些子对象在被组合时整体上构成数据101。在本发明的实施例中,数据101被分类为较小的子对象102,从而使得ai内核模块105更容易高效且有效地处理这些较小的子对象中的每一个。66.然后,数据101或对象102(细分的数据101)被合成模块110接收。尽管在此引用了数据101,但是本领域技术人员将认识到,在不脱离本发明的情况下,随后讨论的步骤和过程也可以应用于所有种类的数据对象,甚至应用于子对象102。一旦接收到数据101,分析器模块111分析数据101的数据结构,以获得关于数据101的结构和组成的更多细节和信息。在本发明的实施例中,分析器模块111被配置为通过数字签名查找表、文件查找表或幻数查找表来确定数据101是否是异常文件。在本发明的实施例中,分析器模块111创建可选的虚拟文件系统,其被配置为在沙盒环境中读取文件。然后,分析器模块111为数据101生成适当的安全标志,然后将其用于与数据101相关联的唯一类型安全平台(tsp)查找表的生成。然后,该tsp查找表由合成模块110中的其他模块使用以更详细地分析数据101。67.然后,平台检测器模块112被配置为基于关于数据101的某些关键特征来填充所接收的tsp查找表的其余部分,数据101的关键特征例如,但不限于,其文件类型、其操作平台、以及数据101及其安全态势可能影响和/或改变的计算机体系结构。然后,将由检测器模块112执行的分析结果存储在gv模块112a,并且还将其提供给反汇编/解释模块113。68.在反汇编/解释模块113处,然后将由检测器模块112生成的结果反汇编以生成反汇编的数据集或值,或者将该结果发送到描述(de‑scripting)源以对可识别的ascii术语进行解释,随后,所解译的数据对象及其对应的值被返回到模块113以进一步处理。然后将数据集模型存储在gv模块113a并提供给下一个模块,即块结构模块114。69.在块结构模块114处,可以从简化的数据集中提取混淆数据和/或其他相关特征。在本发明的实施例中,结构模块114识别函数(外部调用函数),与输入/输出端口通信的对象进而将该信息添加到数据集模型中。该数据集模型可以作为复杂的字节表(即输出结构块120)呈现给ai高级分析器模块106。在本发明的实施例中,数据集模型将通过块结构模块114基于模块111、112和113的输出而生成。模块114将从熵/取证/反汇编器过程获得的所有结果解析为具有适当数据结构的数据集模型,以将所有结果统一在一起。在本发明的实施例中,包含在该结构中的解析结果将以前缀命名,由此该前缀将用于指示结果的数据或函数的名称,例如取证表的结果将被命名为“prefix.forensic.typeofforensic.table.result1.result2.result3”。70.一旦将该信息提供给模块106,特征提取器模块121将整理包含在输出结构块120中的信息以及通过gv回调模块117存储在gv模块111a、112a和113a中的输出以及数据101,并将所整理的信息提供给模型生成器模块122。71.然后,模型生成器模块122使用接收到的信息来生成适当的模型。然后将模型提供给数据库131并存储在数据库131中,并由ai搜索模块130与经训练的数据库132结合使用,以确定该模型的威胁评分。72.在本发明的实施例中,模型生成器模块122可以使用从提取器模块121获得的特征来生成数据图像模型,该数据图像模型具有包括512×512个像素的矩阵,其中,每个像素表示数据101的块,并且由3个字节的数据组成。然后将所生成的数据图像模型和/或数据集模型暂时存储在数据库131中。ai搜索模块130随后将运行匹配算法,以将存储在数据库131中的模型与存储在经训练的数据库132中的数据集进行匹配。结果将被标准化为100,然后将经标准化的分数传递给验证模块140。在该模块内,系统的用户可以定义各种评分设置,例如但不限于:73.·分数介于0到50之间可表示“没有威胁”74.·分数介于51到85之间可表示文件类型为“良性”75.·分数介于86到99之间可表示存在“威胁”76.在本发明的实施例中,ai搜索模块130利用监督机器学习算法来将威胁分数分配给数据集模型。在本发明的实施例中,可以使用监督机器学习技术,例如但不限于线性回归、随机森林和/或支持向量机。77.一旦分配了威胁分数,就将这些分数与数据101一起提供给验证模块140。如果验证模型140根据这些分数确定数据101是威胁,则将阻止将数据101安装在存储设备150中,而是将数据101提供给输出160,从而数据101将被隔离或进一步分析。78.相反,如果确定数据101不构成威胁,则将允许将其安装在存储设备150中。为了完整性,存储设备150可包括但不限于任何类型或形式的数据存储设备,例如计算机系统的主存储设备(例如,ram、固态硬盘和/或磁盘)或系统的辅助存储设备(例如,可移动驱动器)。79.根据本发明的实施例,在图2中示出了根据本发明实施例的表示可以在ai内核105(如图1所示)内提供的、用于实现实施例的组件的框图。本领域技术人员将认识到,ai内核105的确切配置不是固定的,并且可以不同且可以变化,并且图2仅作为示例提供。80.本文中,术语“处理器”通常用于指代可以处理此类指令的任何设备或组件,并且可以包括:微处理器、微控制器、可编程逻辑设备或其他计算设备。也就是说,处理器205可以由任何合适的逻辑电路系统提供,用于接收输入、根据存储在存储器中的指令来处理输入并生成输出(即,到存储器组件、安全管理模块280、ai协处理器285、传感器290和/或pcie总线等的输出)。在该实施例中,处理器205可以是具有存储器可寻址空间的单核或多核处理器。在一个示例中,处理器205可以是多核的,包括例如8核cpu。81.在本发明的实施例中,处理器205可以包括闪存控制器252,其被配置为控制可以被电擦除和编程的任何类型的非易失性存储器存储介质。这样的非易失性存储器存储设备的示例是nand或nor型闪速存储器或非闪存eeprom闪速存储器。在图2中,尽管闪存控制器252被布置为控制存储安全启动、固件、ai训练数据、签名数据、哈希表、阈值表、保留区域和用户区域的nand闪存245,但是本领域技术人员将认识到,在不脱离本发明的情况下,其他类型的数据和信息可以存储在nand闪存245中。82.处理器205还包括ddr控制器268,其被配置为控制任何类型的易失性随机存取存储器ram223,诸如静态随机存取存储器(sram)或动态随机存取存储器(dram)。处理器205内还提供了只读存储器(rom)模块rom270,以及i‑d254、a‑d256、体系结构内核258、axi4262和nvme内核276。特别地,i‑d254包括配置为对用于处理器205的指令进行解码的指令解码器,a‑d256包括配置为对芯片组内使用的每个物理外围设备的地址进行解码以便在处理器205内管理所有地址总线的地址解码器,并且体系结构内核258包括处理器205的体系结构内核,例如但不限于,arm体系结构、mips体系结构、risc‑varch体系结构等,从而体系结构类型取决于处理器205正在处理的指令的数量,功耗量等。83.对于axi4262,此组件包括标识为axi4的互连总线连接。axi4262是许多asic制造商经常使用的连接,它广泛地包括slave/master总线和将处理器205与包含在其中的其他组件连接的高速内部通信总线,由此链接到该互连总线的每个组件将具有其自己的地址。84.非易失性存储器express(nvme)内核276包含被配置为处理来自用户主机的所有read/write和admin操作命令的组件,而这是通过axi4262与pcie总线295的直接连接来完成的。这意味着当从主机接收到数据对象或将数据对象发送到主机时,此传输将由nvme内核276控制。应当注意,该组件可被配置为独立于处理器205操作,并且可被用来监视在预定时间范围内执行的所有nvme命令。此外,nvme内核276可配置为在ddr控制器268和闪存控制器252之间同步数据速率的速度,从而将这种操作称为闪存过渡层。85.高速缓存260也被提供在处理器205内,并且被处理器用来减少访问来自各种类型的存储器的数据的平均成本(时间或能量)。86.本领域的技术人员将认识到,上述各种存储器组件包括非暂时性计算机可读介质,并且应被视为包括除了瞬时传播信号以外的所有计算机可读介质。通常,指令作为程序代码存储在存储器组件中,但也可以硬连线。87.外围组件互连express(正式缩写为pcie)控制器274是用于控制在处理器205与能够支持pcie总线协议的各种主机之间的高速串行计算机扩展总线上发生的数据交换的控制器。还提供输入/输出(i/o)接口272,用于与各种类型的用户接口、通信接口和传感器290进行通信。传感器290可包括但不限于运动传感器、温度传感器、冲击传感器,并且这些传感器可配置为经由至其他处理设备的有线或无线网络向外部源发送数据/从外部源接收数据,或经由有线或无线网络接收数据。可以利用的无线网络包括但不限于无线保真(wi‑fi)、蓝牙、近场通信(nfc)、蜂窝网络,卫星网络,电信网络、广域网(wan)等。88.ai协处理器285通过专用总线(未示出)连接到处理器205,并且包括专用硬件加速器,该专用硬件加速器被设计为加速人工智能应用(尤其是机器学习算法),并用于加速特定的计算任务以减轻处理器205的负担。89.图3示出了用于分析接收到的数据对象的过程300,其中过程300可以根据本发明的实施例由ai内核中的模块来实施。过程300通过接收要分析的数据对象而在步骤305开始。如上一节所述,数据对象可以包括文档、图像文件、可执行文件或任何其他类型的文件。在本发明的实施例中,数据对象可以包括字节块,由此这些字节块将被存储在链接到ai内核的存储介质中,例如,但不限于,闪存驱动器芯片组,其被分配为记录其大小的区域、闪存位置扇区以及文件开始(start‑of‑file)和文件结束(end‑of‑file)。90.然后,过程300进行到步骤310,在此,可选地,一旦完全接收到整个数据对象,就初始化虚拟文件系统。在该步骤,过程300创建了能够以与主机驱动器相同的方式读取数据对象的虚拟文件系统。然而,与常规驱动器或文件系统不同,虚拟文件系统没有直接链接到主机驱动器可访问的驱动器,因为虚拟文件系统被配置为完全独立。此外,由于虚拟文件系统被配置为在asic芯片组内部运行,因此它需要较少的硬件资源,并且能够与其他任务并行执行。因此,当在步骤305接收到新对象时,过程300将把这些新数据对象添加到虚拟文件系统中的内部列表中,以排队等待进一步处理。在本发明的实施例中,过程300将连续监视该内部列表,以确保在数据对象已经被分析和保护之前不会被调回。为了做到这一点,内部列表可以包含在临时缓冲区中,该缓冲区可以与主机文件系统隔离并且可以被临时锁定。换句话说,在本发明的一个实施例中,可以说,整个过程300和400发生在虚拟文件系统内,而在本发明的另一实施例中,过程300和400可以发生在虚拟文件系统外。这意味着,如果过程300和400发生在虚拟文件系统外,则过程300将从步骤305进行到步骤315。91.在步骤315,从虚拟文件系统内或在ai内核内,过程300然后检查数据对象的类型。在本发明的实施例中,这可以通过检查其名称来完成。例如,如果数据对象被命名为“xxyyy.pdf”,则过程300然后将该信息存储在临时变量中,该临时变量可以称为扩展名[n‑1]=pdf。[0092]然后将来自步骤315的信息传递到步骤320。在此步骤中,过程300生成对于数据对象而言是唯一的幻数或特殊的标头帧,然后可以将幻数嵌入到数据对象内部,从而可以由主机系统用来标识数据对象的类型。[0093]然后,过程300在步骤325加载预加载的幻数查找表。如本领域技术人员所知,幻数引用可以用于标识特定文件格式或协议的常数数值,也可以引用不可能被误认为其他含义的独特唯一值。预加载的幻数查找表中的每个幻数都引用特定的文件格式或类型,并且查找表可以根据需要定期更新,也可以在发现新文件类型时进行更新。[0094]然后,过程300在步骤330确定所生成的幻数是否与预加载的幻数查找表中的任何幻数匹配。[0095]如果过程300确定不存在匹配,则过程300进行到步骤335。在此步骤中,将生成与即将生成的类型安全平台(tsp)查找表关联的安全标记并将其设置为高级别。然后,过程300进行到步骤340,由此生成类型安全平台(tsp)查找表。[0096]相反,如果过程300在步骤330确定所生成的幻数与预加载的幻数查找表中的幻数匹配,则这意味着该数据对象包括已知文件类型。[0097]然后,过程300在步骤345加载潜在的异常文件类型(例如,存储为数据阵列)的查找表,由此该表中的每个已知的异常文件类型都与幻数相关联。在本发明的该实施例中,异常文件类型表示作为潜在威胁的文件,并且可以在不同平台上执行而不必使用特定工具链编译器(例如,java脚本对象、pdf文件、jpeg(带有嵌入式exe文件并且稍后调用以将其提取)进行编译。[0098]然后,过程300在步骤350确定接收到的数据对象的文件类型是否与在步骤345加载的潜在异常文件类型的查找表中的异常文件类型匹配。[0099]如果过程300确定存在匹配,则过程300进行到步骤355。在此步骤中,将生成与即将生成的类型安全平台(tsp)查找表相关联的安全标记,并将该标记设置为高级别。然后,过程300进行到步骤340,由此生成tsp查找表。[0100]相反,如果过程300在步骤350确定接收到的数据对象的文件类型与异常文件类型不匹配,则过程300进行到步骤360,在此,将生成与即将生成的类型安全平台(tsp)查找表相关联的安全标记并将其设置为正常级别,其指示数据对象可能不是异常文件。然后,过程300进行到步骤340,由此生成tsp查找表。[0101]根据本发明的实施例,tsp查找表包括32位变量,由此前16个最高有效位(msb)(即,位31(msb)至位16)代表各种类型的数据对象,随后的8位(即,位15至位8)代表数据对象的安全态势,并且最后8位(即,位7至位0‑最低有效位(lsb))代表数据对象的平台使用。示例性tsp查找表在下面的表1至表3中列出。[0102][0103]表1[0104][0105]表2[0106][0107]表3[0108]表1给出了如何用tsp查找表中的位31(msb)至位16表示各种文件类型的示例,表2给出了如何用位15至位8表示数据对象的安全态势的示例,并且表3给出了如何用位7至位0表示数据对象使用的各种类型的平台的示例。[0109]在本发明的实施例中,参考表2,“status_1”可表示数据对象的安全标记已被设置为最高级别,并且其数字签名与幻数查找表中的任何幻数都不匹配,“status_2”可表示数据对象的安全标记已被设置为最高级别,并且其数字签名与幻数查找表中的幻数匹配,但数据对象的文件类型与文件查找表中的异常文件类型匹配,并且“status_3”可表示数据对象的安全标记已被设置为正常级别,其数字签名与幻数查找表中的幻数匹配,并且其文件类型与任何已知的异常文件类型都不匹配。本领域技术人员将认识到,在不脱离本发明的情况下,各种类型的状态级别可以用于表示安全态势的其他类型和变化。[0110]在本发明的实施例中,参考表3,位7至位4可以用于表示文件的体系结构、文件的微控制器单元(mcu)执行、操作系统/硬件平台,最低的4位(位3至位0)可表示数据对象可能的操作系统,从而如果lsb被设置为b(或任何其他等效指示符),则意味着该数据对象可在任何类型的操作系统上运行。[0111]一旦已经为数据对象生成了tsp查找表,则如图4所示的过程400被启动。过程400通过检索存储在虚拟文件系统内(如果过程400在虚拟文件系统内发生)或存储在ai内核中的数据对象的位置而在步骤402开始。然后,过程400在下一步骤(步骤405),检索与数据对象相关联的tsp查找表。然后,在步骤410,过程400将tsp查找表中包含的信息解析为它们的相关组。特别是,tsp查找表中与数据对象的安全状态有关的位将被解析为第一组,tsp查找表中与数据对象的类型有关的位将被解析为第二组,而tsp查找表中与数据对象的目标平台有关的位将被解析为第三组。[0112]过程400然后前进到步骤430,其中,过程400将根据第一组解析的位确定安全级别已经被设置为正常级别还是高级别。[0113]如果过程400确定安全级别已被设置为高级别,则过程400将进行到步骤435,其中将从tsp中检索与数据对象的类型有关的信息,然后进行到步骤440,其中将检索与和来自tsp的数据对象相关联的操作平台有关的信息。该信息将包含在tsp中的第二和第三组解析的位中。然后将来自步骤435和440的信息提供给步骤447,过程400进行到步骤445。将信息从步骤435和440提供给步骤447的目的是可以基于来自这两个步骤的信息进行取证分析。[0114]在步骤445,过程400继续,以基于接收到的信息计算整个数据对象(即,整个文件大小)的混淆值。相反,如果过程400确定安全级别已被设置为正常级别,则过程400直接进行到步骤445以计算整个数据对象的混淆值。[0115]作为示例,混淆值的范围可以在0‑255之间,其中较高的混淆值意味着较高的恶意软件或勒索软件风险。[0116]在本发明的实施例中,数据对象的混淆值包括数据对象的熵值。在该实施例中,过程400将继续,以通过首先标准化数据对象的大小来计算数据对象的熵值。例如,如果数据对象包括1mb的数据,则将其除以256以产生43000个块,其中每个块包括256个字节。然后,获得每个块的香农熵值,如下。有几种数学方法可以为数据的熵或数据块的“随机性”表示来生成数值。在本发明的实施例中,使用克劳德·香农(claudeshannon)开创的方法来计算熵值,并且本领域技术人员将其称为香农熵方程:[0117][0118]其中,p(x)是给定离散随机变量x的x的概率。由于x是离散的,因此可以使用以字节(或8位块)组织的二进制数字数据表示的数据代替x。为了使方程正常工作,x必须包含长度至少为256字节的最小数据块。然后将获得的值归一化,使得[0119]ph(x)∈0.0...1.0[0120]其中,ph(x)=h(x)|max(h(x))[0121]简言之,基于上述方程式计算的熵值将包含介于0和1之间的数值,其中,值越接近1则表明在给定的数据块中熵的程度越高。有关香农熵的更详尽讨论,请参考以下出版物:shannon,c.e.“amathematicaltheoryofcommunication.”thebellsystemtechnicalj27,379‑423and623‑656,julyandoctober1948,该出版物通过引用并入本文。本领域技术人员将认识到,在不脱离本发明的情况下,可以使用任何其他类型的熵计算方法。[0122]然后,可以如下面的示例性表4所示,列出针对每个块获得的熵值。[0123][0124]表4[0125]表4示出了针对恶意软件数据对象的示例图。可看出,大多数块表现出高的熵值,因此表明该数据对象极有可能是异常数据对象。从熵计算获得的结果也可以如图5所示进行绘制,其中曲线505和510表示可与异常数据对象(例如,恶意软件)相关联的熵线,而具有较低熵值的曲线515可表示非异常数据对象。在本发明的实施例中,这些图案或曲线可以用作数据对象的数字指纹。然后,该结果将被传递到下一模块,在该模块中,它将被用于选择将由过程400应用的最合适的预定义取证算法。[0126]过程400然后前进到步骤447,其中过程400调用取证分析函数以确定数据对象的数字指纹,即计算出的取证分析值和/或熵图案(例如表4)是否表明数据对象可能包含恶意软件。[0127]如果先前在步骤430处确定数据对象的安全级别已被设置为正常级别,则将仅基于数据对象的块来执行取证分析。但是,如果先前在步骤430确定数据对象的安全级别被设置为高级别,则将基于数据对象的块以及在步骤435和440处针对每个块检索到的类型和平台信息,执行取证分析。[0128]取证模块将生成代表所采用的调查方法和介于1至10之间相似性输出两者的取证值,其中,较低的值表示较低的风险(较低匹配度),较高的值表示较高的风险(较高匹配度)。本领域技术人员将认识到,在不脱离本发明的情况下,可以使用现有的取证分析函数。作为示例,下面阐述的示例性(但不限于)伪代码可以用于取证分析。[0129]用于取证分析的伪代码[0130]forensic_t[0][entropymethod][result][0131]forensic_t[1][fbhash_method][result][0132]forensic_t[n‑1][untiltheavailablemethod][result][0133]enum{method1method2method3......methodn‑1}list;[0134]typedefarray[x][y][z]forensic[0135]declarepointerpdata=dataobject;[0136]declarevariableresult[];[0137]i=array{list}.[0138]对于x=0到x<count(list)[0139]function_forensic(pdata,x,list{x},result[x])(此函数的目的是对列表中的枚举方法进行回调,从而使结果与所使用的方法匹配)[0140]forensic[x],[list{x}],[result[x]];(此缓冲值将用于跟踪所使用的方法、该方法的名称及其自身的结果,该结果将在以后用于特征提取功能)[0141]x=x 1;[0142]function_forensic(pdata,x,list{x},result[x])[0143]declarelocal=sizeof(pdata);[0144]declarelresult=0;[0145]switch(list{x})[0146]casemethod1:[0147]analyse_m1(local,pdata);(每个函数将在语句的情况下被调用)[0148]result[x]=lresult[0149]casemethod2:[0150]analyse_m2(local,pdata)[0151]result[x]=lresult[0152]casemethodn‑1:[0153]analyse_mn‑1(local,pdata);[0154]result[x]=lresult[0155]在本发明的实施例中,可以执行其他类型的取证分析,并且这可以包括使用数字取证中已知的散列方法(例如但不限于基于频率的相似性散列方案(fbhash))对数据对象进行散列的步骤。[0156]本领域技术人员将认识到,在不脱离本发明的情况下可以使用其他类型的调查方法,并且选择权留给本领域技术人员,使得过程400具有在发现并添加新方法时更新其方法的指令表的能力。fbhash方案的示例如下所示:[0157]可以计算相似性分数,其中d1是数据对象,d2是已知恶意软件的数据集。d1和d2的值可以按以下方式获得:[0158]digest(d1)=wd1ch0,wd1ch1,wd1ch2,...wd1ch(n‑1)[0159]digest(d2)=wd2ch0,wd2ch1,wd2ch2,...wd2ch(n‑1)[0160]其中,函数digest()是存储阵列,其中,wd×ch(n‑1)是由fbhashing算法生成的块分数,表示为n:表示使用的块分数的数量(或数据对象的块的数量),而fbhashing算法代表许多数字调查方法之一,其中以下符号表示:[0161]·块:文档的k个连续字节的序列。[0162]·文档d的第i块。[0163]·块频率:在文档d中出现块chi的次数。表示为[0164]·文档频率:包含块ch的文档数。表示为dfch。[0165]·n:表示文档库中文档的总数量。[0166]·rollinghash(chi):chi的滚动哈希值[0167]·chi的块权重[0168]chi的文档权重。[0169]·表示文档d中chi的块分数。[0170]一旦获得了d1和d2的值,就可以使用余弦相似性方法计算出最终相似性分数,similarity(d1,d2),如下所示:[0171][0172]最终相似性分数将介于0到100之间,其中分数100表示d1与d2相同,而分数0表示d1与d2完全不匹配。[0173]然后在步骤450,过程400确定是否要反汇编或解释数据对象。如果过程400确定数据对象包括大量的ascii,则过程400将导致数据对象被解释(步骤460、482、484、486),而如果过程400确定数据对象包括大量的机器语言,则过程400将导致数据对象被反汇编(步骤455、465、470、475)。[0174]如果过程400确定要反汇编数据对象,则该过程400进行到步骤455。在此步骤,过程400对数据对象的tsp查找表执行列出过程。基于列出的平台类型,过程400将在步骤470反编译文件并列出所有内部和外部调用,在步骤465列出所有调用函数,并在步骤475列出所有使用的第三库文件。通过列出常见的恶意软件行为(其通常包括需要访问文件系统、以太网i/o或任何网络访问的命令),进程400能够识别可能构成恶意软件的数据对象部分。[0175]过程400将所有这些信息提供给表阵列,该表阵列包括预定义设置以识别包括正常行为的命令或可能是威胁的命令。例如,记录“dns函数”被调用的次数。然后,基于数据对象的文件类型,过程400确定这种文件类型调用所选择的函数是否普遍,如果其行为异常,则将阻止数据对象执行该函数,数据对象区域将被锁定,并且用户将收到警告。然后,过程400触发计数器1中的数字计数器,指示数据对象已被反汇编,同时重置计数器2中的数字计数器。[0176]换句话说,在反汇编步骤中,将对数据对象进行反编译,以便可以对其行为进行详细分析。在本发明的实施例中,可以获得数据对象的原始二进制,以便可以发现嵌入在数据对象内部的恶意软件,并且在图6中示出了这种反编译数据的示例性图。[0177]图6示出了可以根据操作类型标记不同类型的操作。在此示例图中,x轴表示操作类型的频率,而y轴表示操作的类型,并且可以使用下面的示例伪代码进行绘制[0178]diss_table[0][x1_criterianame][operationtype][0or1]至[0179]diss_table[n‑1][xn‑1_criterianame][operationtypen‑1][0or1][0180]返回图4,如果过程400确定虚拟数据模型将被“解释”,则过程400进行到步骤460,其中在该步骤描述虚拟数据模型并将其划分为各个部分以进一步分析。将经过混淆的字符串/加密块提供给步骤482,将第三方的调用功能提供给步骤484,并将对外部链接的引用提供给步骤486。然后在步骤488存储结果,从而触发计数器2中的数字计数器,指示数据对象已被解释,同时重置计数器1中的数字计数器。[0181]然后,在步骤490处将来自步骤480和步骤488的结果提供给数据模型生成器,该数据模型生成器然后可以将该信息与迄今为止由过程400生成的所有信息一起使用以计算数据集模型a。[0182]根据本发明的实施例,过程400使用到目前为止生成的信息来为数据对象的每个块生成“结果值”,由此每个结果值包括3个字节,从而可以生成数据图像模型。[0183]结果值的第一字节的最高有效位(msb)和第二msb用于指示数据对象的块是否已被反汇编或被解释,而第一字节的其余6位与第二字节一起被解析(产生14位),并用于表示数据对象的块的混淆值(如在步骤445处计算的)。然后,将结果值的第三字节用于表示取证分析值(如在步骤447处计算的)。[0184]根据本发明的其他实施例,对于硬件异常,包括msb的前12位(第一字节 第二字节的一部分)将表示功率监控(将由adc转换的电流/电压),接下来的10位将表示温度值,最后两位将指示cpu负载:(介于1至9之间的值表示低负载,10代表中等负载,而11代表高负载)。[0185]然后,使用512字节的块来指示nand闪存中数据对象的名称/位置,例如其页面/扇区/plane地址/文件状态(如果已锁定或未锁定)/数字签名。[0186]然后,过程400将基于上面提取的适当特征来生成数据模型a。[0187]在本发明的实施例中,数据模型a可以被表示为包括512×512个像素的图像,由此每个像素701表示结果值(其包括3个字节)。这在图7a中进行了说明,其中图像中的每一行代表像素行,并且此图示示出了纯(plain)图像,因为它代表了“空数据对象”。[0188]因此,一旦过程400产生了数据对象的块的结果值,则将这些结果值绘制到512×512画布上以产生如图7b所示的数据图像模型702。在本发明的该实施例中,每个唯一结果值由唯一图像表示(例如但不限于图像702上的相应阴影/彩色像素)来表示。[0189]一旦已经生成图像702,则将图像702提供给过程703,如图7c所示。在步骤705,将目标图像(即图像702)提供给图像分类模型,例如但不限于卷积神经网络(cnn)模型、深度神经网络(dnn)模型或递归神经网络(rnn)模型。为了简洁,省略了这些模型的详细工作。然后,图像分类模型在步骤710和步骤715为图像702生成特征图和校正后的特征图,然后在步骤720继续生成输出。然后将该输出与表示已知恶意软件的输出的数据库进行比较,如果过程703确定步骤720处的输出与已知恶意软件的输出匹配,则确定数据对象是恶意的。[0190]在本发明的另一实施例中,数据集模型a可以包括数据对象的所有块的结果值的集合。参考图8,然后,过程800在预加载的异常数据对象的数据库中进行搜索,以识别与数据集模型a的数据库模型相似的数据库模型。这在步骤805进行。[0191]由于不可能找到完美匹配,因此过程800随后执行机器学习分析,以基于与其最相似的预训练数据集模型来确定要分配给数据集模型a的匹配分数。这在步骤810进行。在本发明的实施例中,适用于该步骤的机器学习算法可包括已经使用一组预训练的数据集模型训练的监督机器学习算法。在本发明的实施例中,可以使用外部处理设备来准备预训练的数据集模型,并将预训练的数据集模型存储在过程800可访问的ssd存储设备中。为了便于访问,过程800可以访问存储在存储设备内的索引文件,其中该索引文件包含有关可以被调用的数据库列表的信息。[0192]然后,过程800在步骤815确定所生成的分数是否超过预定威胁阈值。如果过程800确定所生成的分数暗示数据集模型a不安全,则过程800将前进到步骤820,该步骤820阻止将数据对象安装到系统的数据储存设备中并创建显示该数据对象在隔离区中的位置的日志图,过程800然后结束。替代地,如果过程800根据所生成的分数确定该数据对象是安全的,则过程800在步骤820允许该数据对象通过以被安装在系统的数据储存设备中,然后过程600结束。[0193]在本发明的其他实施例中,过程703和过程800两者可被顺序地或同时地执行,以便使数据对象经过更严格的筛选过程。[0194]本领域技术人员可以确定许多其他改变、替换、变化和修改,并且旨在本发明涵盖落入所附权利要求的范围内的所有这样的改变、替换、变化和修改。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献