首页> 中国专利> 检测软件漏洞的电子装置和操作该电子装置的方法

检测软件漏洞的电子装置和操作该电子装置的方法

摘要

根据一个或多个实施例,一种电子装置包括:显示装置;存储器,存储至少一个源代码和比较文件,所述比较文件包括修正或漏洞中的任一个,其中与所述至少一个源代码对应的补丁文件中包含的至少一个字符串中的每个字符串被分类成所述修正或所述漏洞;以及处理器,在功能上连接至所述存储器和所述显示装置,其中所述处理器能够被设置为加载存储在所述存储器中的所述至少一个源代码,将与所述至少一个源代码对应的所述比较文件中包含的字符串与所述源代码中包含的字符串进行比较,并基于所述比较的结果通过所述输出装置提供所识别的源代码是否已打补丁有关的信息、所述源代码已打补丁的概率有关的信息、或所述源代码中的漏洞有关的信息中的至少一个信息。

著录项

  • 公开/公告号CN112166419A

    专利类型发明专利

  • 公开/公告日2021-01-01

    原文格式PDF

  • 申请/专利权人 三星电子株式会社;

    申请/专利号CN201980035377.1

  • 发明设计人 沈愚哲;金善愚;黄勇皓;

    申请日2019-05-03

  • 分类号G06F11/36(20060101);

  • 代理机构11204 北京英赛嘉华知识产权代理有限责任公司;

  • 代理人王达佐;杨莘

  • 地址 韩国京畿道水原市灵通区三星路129号

  • 入库时间 2023-06-19 09:23:00

说明书

技术领域

本公开涉及检测软件漏洞的电子装置和操作该电子装置的方法。

背景技术

近年来,开发者生成和发布了各种类型的开源,应用(或程序)开发者使用开源开发应用。开源可能包含漏洞。在国际标准化组织(ISO)27005中,漏洞被定义为一个资产或一组资产中的可被一个或多个威胁利用的弱点。IETF RFC2828将漏洞定义成管理、操作、实现或设计中的可被利用以违反系统安全策略的弱点。

漏洞可能是由不充分的测试或不充分的检查跟踪造成的。漏洞可由各种原因(诸如,设计缺陷、软件错误和错的源代码编写)引发。近些年,已经分析和公开了各种源的漏洞。例如,通用漏洞披露或通用漏洞列表(CVE)提供了漏洞及其修正有关的信息。另外,相应的开源提供者或其他提供者提供了应对漏洞的补丁文件。

发明内容

技术问题

如上所述,随着漏洞及其修正有关的信息被提供,应用开发者可使用所提供的信息来识别他们开发的应用中包括的开源中是否存在任何漏洞。此外,应用开发者可用补丁文件对具有漏洞的源进行修正。然而,当创建了包括大规模源代码的应用时,应用中可能包括多个开源。由此,应用开发者面临手动识别每个开源是否包括漏洞或开源是否是已打补丁版本的局限性。而且,自动识别应用中包括的开源是否是已打补丁版本的技术尚未开发。

各种实施例旨在解决上面的问题或其他的问题并且可提供一种电子装置和操作该电子装置的方法,其中该电子装置通过将从收集的补丁文件获得的漏洞或修正的比较文件与应用的源代码进行比较来提供指示应用中包括的软件是否包含漏洞的信息、指示软件是否已打补丁的信息和软件中的漏洞有关的信息。

技术方案

根据各种实施例,一种电子装置包括:输出装置;存储器,存储至少一个源代码和比较文件,所述比较文件包括修正或漏洞中的至少一个,其中与所述至少一个源代码对应的补丁文件中包含的至少一个字符串中的每个字符串被分类成所述修正或所述漏洞;以及处理器,在操作上耦合于所述存储器和所述输出装置。所述处理器被配置为加载存储在所述存储器中的所述至少一个源代码,将与所述至少一个源代码对应的所述比较文件中包含的字符串与所述源代码中包含的字符串进行比较,并通过所述输出装置提供指示基于所述比较的结果识别的所述源代码是否已打补丁的信息、所述源代码已打补丁的概率、或所述源代码中的漏洞有关的信息中的至少一个。

根据各种实施例,一种操作电子装置的方法包括:存储至少一个源代码和比较文件,所述比较文件包括修正或漏洞中的至少一个,其中与所述至少一个源代码对应的补丁文件中包含的至少一个字符串中的每个字符串被分类成所述修正或所述漏洞;加载存储在所述电子装置的存储器中的所述至少一个源代码;将与所述至少一个源代码对应的所述比较文件中包含的字符串与所述源代码中包含的字符串进行比较;以及通过所述电子装置的输出装置提供指示基于所述比较的结果识别的所述源代码是否已打补丁的信息、所述源代码已打补丁的概率、或所述源代码中的漏洞有关的信息中的至少一个。

根据各种实施例,一种电子装置包括:通信电路;存储器,存储至少一个源代码;以及处理器,在操作上耦合于所述存储器和所述通信电路。所述处理器被配置为:通过通信电路接收与所述至少一个源代码的至少部分对应的补丁文件;识别文件识别信息,所述文件识别信息识别应用了所述补丁文件的源代码;将至少一个字符串中的每个分类成修正或漏洞;生成将与所述源代码比较的比较文件,所述比较文件包括所述文件识别信息、所述修正或所述漏洞中的至少一个;以及将所述比较文件存储到所述存储器中。

技术效果

根据各种实施例,可提供一种电子装置和操作该电子装置的方法,其中该电子装置通过将从收集的补丁文件获得的漏洞或修正的比较文件与应用的源代码进行比较来提供指示应用中包括的软件是否包含漏洞的信息、指示软件是否已打补丁的信息和软件中的漏洞有关的信息。

根据各种实施例的电子装置提供指示应用的开源是否包含任何漏洞的信息。因此,应用开发者不需要手动地识别应用的每个开源是否已打补丁。

附图说明

图1是示出根据各种实施例的包括电子装置和服务器的系统的示图;

图2是示出根据各种实施例的电子装置的框图;

图3是示出根据各种实施例的操作电子装置的方法的流程图;

图4是示出根据各种实施例的生成比较文件的过程的示图;

图5是示出根据各种实施例的操作电子装置的方法的流程图;

图6是示出根据各种实施例的调整漏洞和修正的示图;

图7a是示出根据各种实施例的操作电子装置的方法的流程图;

图7b是示出根据各种实施例的操作电子装置的方法的流程图;

图7c是示出根据各种实施例的操作电子装置的方法的流程图;

图7d是示出根据各种实施例的操作电子装置的方法的流程图;

图8是示出根据各种实施例的比较比较文件与源代码的过程的示图;

图9是示出根据各种实施例的操作电子装置的方法的流程图;

图10a是示出根据各种实施例的补丁文件、比较文件和目标检查文件的示图;

图10b是示出根据各种实施例的补丁文件、比较文件和目标检查文件的示图;

图10c是示出根据各种实施例的补丁文件、比较文件和目标检查文件的示图;

图10d是示出根据各种实施例的补丁文件、比较文件和目标检查文件的示图;

图11a是示出根据各种实施例的由电子装置提供的示例性屏幕的示图;以及

图11b是示出根据各种实施例的由电子装置提供的示例性屏幕的示图。

具体实施方式

根据本公开的各种实施例的电子装置可以是各种电子装置中的一种。本公开的各种实施例和这里使用的术语不意图限制本公开的技术范围,将理解本公开涵盖各种修改形式、等同形式和/或替换形式。关于附图的描述,相似的参考标号可用于指代相似的元件。将理解单数形式包括复数形式,除非上下文中另有明确指示。在本公开中,术语“A或B”、“A和/或B中的至少一个”、“A、B或C”或“A、B和/或C中的至少一个”可涵盖所列出的项的全部可能组合。本公开中使用的术语“第1”、“第2”、“第一”或“第二”可用于各种部件的命名而不管顺序或重要性且不限制这些部件。这些表达用于区分一个部件与另一个部件。当说到一个部件(例如,第一部件)、“在操作上或在通信上与另一部件(例如,第二部件)耦合”、“在操作上或在通信上耦合于另一部件(例如,第二部件)”或“连接至另一部件(例如,第二部件)”时,应该理解一个部件直接连接至另一部件或通过任意其他部件(例如,第三部件)连接至另一部件。

如这里所使用的,术语“模块”可包括以硬件、软件或固件实现的单元,并可与其他术语(例如,“逻辑”、“逻辑块”、“部分”或“电路”)可互换地使用。模块可以是被适配为执行一个或更多个功能的单个集成部件或者是该单个集成部件的最小单元或部分。例如,模块可被实现为专用集成电路(ASIC)。

图1是示出根据各种实施例的包括电子装置和服务器的系统的示图。

如图1所示,电子装置101可与服务器108(例如,资料库)进行通信,外部电子装置102可与服务器108进行通信。电子装置101例如是应用开发者使用的电子装置并可从开放源代码的服务器108接收用于应用创建的至少一个源代码(例如,开源)。服务器108是接收、管理和开放诸如开源等的各种源的源代码库。例如,服务器108可以是诸如sourchforge、rubyforge、tigris和bountysource等的各种源代码库中的任一种,但不限于诸如sourchforge、rubyforge、tigris和bountysource等的各种源代码库。电子装置101可根据用户通过输入装置的操纵执行网页浏览应用,并直接接收用于访问开源服务器的统一资源标识符(URI)、或与URI对应的对象的选项。电子装置101可访问与URI对应的网页(例如,用于开源下载的网页)并下载开源。任意装置都可以是电子装置101只要它能够从服务器108下载开源,并且电子装置101可被实现为诸如个人计算机(PC)、平板PC和智能电话等的各种电子装置中的任一种。

电子装置101可从服务器108下载与开源对应的至少一个补丁文件。电子装置101可检验来自服务器104的漏洞有关的信息,其中服务器104提供开源中的漏洞有关的信息。例如,与通用漏洞披露(CVE)系统对应的服务器104可提供信息安全漏洞披露的引用(例如,序号)和相关内容。例如,可用“CVE-年-序号”的格式配置漏洞有关的识别信息(例如,漏洞的序号),“CVE-2015-8000”可表示2015年第8000次报告的漏洞。与CVE系统对应的服务器104可提供CVE规范,例如与外部指定的序号对应的CVE规范。CVE规范可包括漏洞的描述。CVE仅是示例性的,本领域技术人员将容易理解可使用任意机构只要它能进行漏洞识别。开源开发者或第三方可发现开源中的漏洞,并通过电子装置将漏洞有关的信息发送给与CVE系统对应的服务器104。提供漏洞有关的信息的服务器104可提供所接收的漏洞信息。开源开发者或第三方可识别漏洞有关的信息并创建对漏洞进行修正的补丁文件。例如,开源开发者或第三方可使用外部电子装置102生成补丁文件,并且外部电子装置102可将补丁文件发送给服务器108。

电子装置101可从服务器108接收与所识别的漏洞对应的补丁文件。电子装置101可识别来自与CVE系统对应的服务器104的开源漏洞有关的信息。电子装置101可通过基于所识别的开源漏洞有关的信息访问提供开源的服务器108或另一电子装置来接收用于对开源漏洞进行修正的补丁文件。电子装置101可周期性地或非周期性地从与CVE系统对应的服务器104接收各种开源的漏洞有关的信息。电子装置101可基于从与CVE系统对应的服务器104接收的信息自动地访问服务器108来下载相关的补丁文件,或者可通过用户的操纵访问服务器108来下载相关的补丁文件。电子装置101不仅可访问服务器108来下载补丁文件,还可访问与另一源对应的服务器(未示出)来下载补丁文件。也就是说,电子装置101可收集与各种开源对应的各种补丁文件。电子装置101可基于所识别的漏洞有关的信息通过各种网页爬取方案收集补丁文件。对可爬取补丁文件的爬虫没有限制。在各种实施例中,电子装置101赋予爬取优先权来首先收集补丁文件但同时赋予相对弱的安全性。电子装置101可在不使用从CVE接收的信息的前提下收集补丁文件。电子装置101可通过使用除了从CVE接收的信息以外的各种信息作为种子执行网页抓取来收集补丁文件。

在各种实施例中,电子装置101可从收集的补丁文件中过滤满足特定条件的补丁文件。例如,电子装置101可通过从补丁文件中过滤具有特定扩展名(或识别信息)(例如,“.md”、“.bb”或nix)的补丁文件来存储更有效的补丁文件。也就是说,电子装置101可被配置为仅为作为过滤结果获得的补丁文件生成比较文件。

尽管在图1的实施例中服务器108被显示为存储开源和补丁文件,但是这仅是示例性的,可将开源和补丁文件存储到不同的存储位置(或不同的资料库)。

电子装置101可从所收集的补丁文件生成比较文件。电子装置101可将所生成的比较文件与应用中包含的源代码进行比较。基于比较的结果,电子装置101可提供各种信息,诸如指示源代码是否是已打补丁版本的信息、指示源代码是否需要打补丁的信息、源代码已打补丁的概率、指示源代码中是否存在将要修正的任何字符串的信息和源代码中将要修正的字符串的位置有关的信息。随后将更详细地描述电子装置101生成比较文件的过程和比较过程。一旦电子装置101根据比较的结果识别到需要应用补丁文件,电子装置101可自动对源代码中的至少一个字符串进行修正。

图2是示出根据各种实施例的电子装置的框图。

根据各种实施例,电子装置101可包括处理器120、存储器130、输入装置150、输出装置160和通信电路190。

处理器120可通过运行软件(例如,程序)控制电子装置101的与处理器120耦合的至少一个其他部件(例如,硬件或软件部件)并执行各种数据或计算的处理。根据实施例,作为数据处理或计算的至少部分,处理器120可将从另一部件(例如,存储器130、输入装置150、或通信电路190)接收的命令或数据加载到易失性存储器,处理存储到易失性存储器中的命令或数据,并将将结果数据存储到非易失性存储器中。根据实施例,处理器120可包括主处理器(例如,中央处理单元(CPU)或应用处理器)和独立操作或结合主处理器操作的辅助处理器(例如,图形处理单元、图像信号处理器、传感集线处理器或通信处理器)。另外地或可选择地,辅助处理器可被配置为使用比主处理器低的功率或专用于指定的功能。辅助处理器可与主处理器分离地实现,或作为主处理器的部分实现。

存储器130可存储由电子装置101的至少一个部件(例如,处理器120)使用的各类数据。数据可包括例如软件(例如,程序)和与软件相关的命令的输入数据或输出数据。存储器130可包括易失性存储器或非易失性存储器。根据各种实施例,存储器130可存储源代码、用于验证源代码的比较文件、或补丁文件中的至少一个。存储器130可存储各种指令,诸如用于加载、编辑和提供源代码(程序或应用)的指令、用于比较以验证源代码的指令、用于加载补丁文件的指令和用于从补丁文件生成比较文件的指令。

输入装置150可接收用户输入,将用户输入转换成电信号,并将电信号发送给处理器120。输入装置150可被实现为例如键盘、鼠标或电子笔。然而,任意装置可用作输入装置150,只要它能够从例如麦克风、触摸面板和相机接收外部信息。此外,输入装置150可位于电子装置101的壳体外。根据实现,电子装置101可不包括输入装置150。输入装置150可接收用于执行电子装置101的各种操作的指令。

输出装置160可视觉地、听觉地、触觉地将信息提供到电子装置101外(例如,用户)。输出装置160可包括例如液晶显示器(LCD)面板、全息装置或投影仪和用于控制该装置的控制电路。根据实施例,输出装置160可包括被配置为感测触摸的触摸电路、或被配置为测量通过触摸产生的力的强度的传感器电路(例如,压力传感器)。输出装置160还可位于电子装置101的壳体外。根据实现,电子装置101可不包括输出装置160。

通信电路190可支持在电子装置101与外部电子装置之间创建直接的(例如,有线的)通信信道或无线的通信信道,并且通过所创建的通信信道支持通信。通信电路190可包括独立于处理器120(例如,应用处理器)操作且支持直接的(例如,有线的)通信或无线的通信的一个或多个通信处理器。根据实施例,通信电路190可包括无线通信模块(例如,蜂窝通信模块、短距离无线通信模块、或全球导航卫星系统(GNSS)通信模块)或有线通信模块(例如,局域网(LAN)通信模块或电力线通信模块)。在这些通信模块中,相应的通信模块可通过第一网络(例如,短距离通信网络,诸如蓝牙、无线保真(WiFi)直接、或红外线数据协会(IrDA))或第二网络(例如,蜂窝网络、互联网、或计算机网络(例如,远距离通信网络,诸如LAN或无线LAN(WLAN)))与外部电子装置进行通信。所述各类通信模块可被集成到一个部件(例如,单个芯片)中,或者可被实现为多个分离的部件(例如,多个芯片)。无线通信模块可使用存储在用户识别模块(SIM)中的用户信息(例如,国际移动用户识别码(IMSI))识别和验证通信网络(诸如,第一网络或第二网络)中的通信装置101。

根据各种实施例,存储器130可存储至少一个源代码和包括修正和漏洞中的任一个的比较文件,其中将与至少一个源代码对应的补丁文件中包含的至少一个字符串的每个分类为修正或漏洞。处理器120可在功能上与存储器130和显示装置160耦合。

根据各种实施例,处理器120可被配置为加载存储在存储器130中的至少一个源代码,将至少一个源代码中包含的字符串与对应于至少一个源代码的比较文件中包含的字符串进行比较,并且将指示源代码已打补丁的信息、源代码已打补丁的概率、或至少一个源代码中的漏洞有关的信息中的至少一个提供给输出装置。

根据各种实施例,作为将至少一个源代码中包含的字符串与对应于至少一个源代码的比较文件中包含的字符串进行比较的操作的至少部分,处理器120可被配置为识别第一匹配率和第二匹配率,其中第一匹配率是源代码中包含的第一字符串的数量与比较文件的漏洞中包含的第一字符串的总数量之比,第二匹配率是源代码中包含的第二字符串的数量与比较文件的修正中包含的第二字符串的总数量之比。

根据各种实施例,作为将至少一个源代码中包含的字符串与对应于至少一个源代码的比较文件中包含的字符串进行比较的操作的至少部分,处理器120可被配置为在识别到第一匹配率大于第一阈值时识别到源代码未打补丁。

根据各种实施例,作为基于比较结果通过输出装置160提供指示源代码是否已打补丁的信息、源代码已打补丁的概率或至少一个源代码中的漏洞有关的信息中的至少一个的操作的至少部分,处理器120可提供第一匹配率作为源代码未打补丁的概率。

根据各种实施例,作为将至少一个源代码中包含的字符串与对应于至少一个源代码的比较文件中包含的字符串进行比较的操作的至少部分,处理器120可被配置为在识别到第二匹配率大于第二阈值时识别到源代码已打补丁。

根据各种实施例,作为基于比较结果通过输出装置160提供指示源代码是否已打补丁的信息、源代码已打补丁的概率或至少一个源代码中的漏洞有关的信息中的至少一个的操作的至少部分,处理器120可被配置为提供第二匹配率作为源代码已打补丁的概率。

根据各种实施例,作为将至少一个源代码中包含的字符串与对应于至少一个源代码的比较文件中包含的字符串进行比较的操作的至少部分,处理器120可被配置为从源代码中包含的字符串中识别与比较文件的漏洞中包含的至少一个第一字符串部分相同的至少一个字符串。

根据各种实施例,作为基于比较结果通过输出装置160提供指示源代码是否已打补丁的信息、源代码已打补丁的概率或指示一个源代码中的漏洞有关的信息中的至少一个的操作的至少部分,处理器120可被配置为提供所识别的部分字符串的位置有关的信息。

根据各种实施例,作为将至少一个源代码中包含的字符串与对应于至少一个源代码的比较文件中包含的字符串进行比较的操作的至少部分,处理器120可被配置为从与至少一个源代码对应的比较文件中包含的字符串中识别与比较文件的漏洞中包含的至少一个第一字符串至少部分相同的至少一个部分字符串。

根据各种实施例,作为基于比较结果通过输出装置160提供指示源代码是否已打补丁的信息、源代码已打补丁的概率或指示一个源代码中的漏洞有关的信息中的至少一个的操作的至少部分,处理器120可被配置为以将所识别的部分字符串与其他字符串区分开来的方式显示源代码。

根据各种实施例,处理器120还可被配置为检验源代码有关的文件识别信息并且识别具有与源代码有关的文件识别信息匹配的文件识别信息的比较文件。

根据各种实施例,处理器可被配置为通过通信电路190接收与至少一个源代码的至少部分对应的补丁文件,检验识别应用了补丁文件的源代码的文件识别信息,将补丁文件中包含的至少一个字符串中的每个分类为修正或漏洞,生成将要与源代码比较的包括文件识别信息、修正或漏洞中的至少一个的比较文件,并将比较文件存储到存储器130中。

根据各种实施例,作为生成将要与源代码比较的包括文件识别信息、修正或漏洞中的至少一个的比较文件的操作的至少部分,处理器120可被配置为识别作为修正和漏洞中共同包含的相同字符串的公共字符串,通过从修正的字符串中去除公共字符串来生成调整后的修正,通过从漏洞的字符串中去除公共字符串来生成调整后的漏洞,并生成包括文件识别信息、调整后的修正或调整后的漏洞中的至少一个的比较文件。

根据各种实施例,处理器120还可被配置为通过通信电路190收集多个补丁文件并为具有信息和扩展名(其中至少一个满足预定的条件)的补丁文件生成比较文件。

根据各种实施例,作为生成将要与源代码比较的包括文件识别信息、修正或漏洞中的至少一个的比较文件的操作的至少部分,处理器120可被配置为从漏洞中包含的至少一个字符串去除指示删除的第一前缀,从修正中包含的至少一个字符串去除指示修正的第二前缀,并生成包括无第一前缀的调整后的漏洞和无第二前缀的调整后的修正中的至少一个的比较文件。

图3是示出根据各种实施例的操作电子装置的方法的流程图。参照图4更详细地描述图3的实施例。图4是示出根据各种实施例的生成比较文件的过程的示图。

根据各种实施例,电子装置101可在操作301接收与至少一个文件对应的至少一个补丁文件。如之前所描述的,电子装置101可基于从服务器104接收的信息或根据用户的操纵自动地访问与CVE对应的服务器108来下载相关的补丁文件。可选择地,电子装置101可随机地下载补丁文件。电子装置101可访问与另一源对应的服务器(未示出)和服务器108来下载补丁文件。例如,电子装置101可基于所识别的漏洞有关的信息通过各种网页爬取方案收集补丁文件。电子装置101可识别与所存储的源代码对应的漏洞信息并基于所识别的漏洞信息收集与所存储的源代码对应的补丁文件。根据各种实施例,电子装置101还可收集与所存储的源代码对应的补丁文件以外的其他补丁文件。

参照图4,例如,电子装置101可接收补丁文件401、补丁文件402和补丁文件403。第一补丁文件401可包括多个字符串-A、+B、+C、-D、-A、+E、-F和+A。为了方便描述,尽管多个字符串-A、+B、+C、-D、-A、+E、-F和+A中的每个由单个英语大写字母表示,但是单个英语大写字母可表示源代码中的字符串(例如,-for(rc=ldap_get_attribute_ber(li->ld,ent,ber,&bv,bvp);)。补丁文件中包含的“-”是意指从源代码删除“-”后面的字符串的前缀,补丁文件中包含的“+”是意指从将“+”后面的字符串添加到源代码的前缀。

在本公开中,当说到电子装置101执行具体过程时,可表示电子装置101中包括的处理器120执行具体过程或控制其他硬件执行具体过程。可选择地,当说到电子装置101执行具体过程时,可表示特定硬件在无处理器120控制的前提下执行具体过程。可选择地,当说到电子装置101执行具体过程时,例如,可表示随着电子装置101中包括的存储器130中存储的至少一个命令被运行,处理器120执行具体过程或控制其他硬件执行具体过程。

在操作303中,电子装置101可基于至少一个补丁文件对漏洞和修正进行分类。电子装置101可将第一补丁文件401令牌化。例如,电子装置101可使用编译器或汇编器执行词法分析。作为词法分析的结果,电子装置101可从第一补丁文件401分别识别多个字符串-A、+B、+C、-D、-A、+E、-F和+A。本公开不限于任何具体的词法分析工具。电子装置101可将所识别的字符串-A、+B、+C、-D、-A、+E、-F和+A分别分类成修正411和漏洞412。例如,电子装置101可将具有前缀“+”的字符串(例如,+B、+C、+E和+A)分类成修正411,将具有前缀“-”的字符串(例如,-A、-D、-A和-F)分类成漏洞412。

在操作305,电子装置101可存储包括文件识别信息、漏洞或修正中的至少一个的比较文件。文件识别信息可以是识别将用补丁文件补充的文件的信息,并且可以是诸如补丁文件的文件路径或将要打补丁的目标的文件名称的信息。随后可使用文件识别信息识别相应的源是否是检查目标,稍后将对其进行更详细的描述。根据各种实施例,电子装置101可存储与漏洞、修正或二者关联的文件识别信息。例如,电子装置101可如表1所描述地存储比较文件。

[表1]

如表1所示,电子装置101可针对文件识别信息存储修正和漏洞。表1中的“代码#1”、“代码#2”和“代码#3”可以是识别源代码、文件或软件的识别信息,并且可以是文件路径或文件名称但不限于文件路径或文件名称。可分别从第一补丁文件、第二补丁文件和第三补丁文件识别文件识别信息。如之前所描述的,可通过将修正映射到文件识别信息来仅存储修正,或者可通过将漏洞映射到文件识别信息来仅存储漏洞。在各种实施例中,电子装置101可存储来自字符串的无“+”的修正,可存储来自字符串的无“-”的漏洞。例如,在对修正和漏洞进行分类之后,电子装置101可从分类后的字符串删除前缀(例如,“+”和“-”)并将无“+”的字符串(例如,for(rc=ldap_get_attribute_ber(li->ld,ent,ber,&bv,&bvals);)存储为修正和将无“-”的字符串(例如,for(rc=ldap_get_attribute_ber(li->ld,ent,ber,&bv,bvp);)存储为漏洞。

在各种实施例中,电子装置101还可管理一个漏洞中包含的多个字符串的顺序。例如,电子装置101可存储指示以下内容的信息:在“代码#1”的源代码的修正中,“+for(rc=ldap_get_attribute_ber(li->ld,ent,ber,&bv,&bvals);”是第一添加字符、“+(rc==LDAP_SUCCESS)&&bvals;”是第二添加字符和“+rc=ldap_get_attribute_ber(li->ld,ent,ber,&bv,&bvals)){”是第三添加字符的信息。在补丁文件中可根据排列次序来确定字符串的顺序。例如,在第一补丁文件中,第一添加字符串“+for(rc=ldap_get_attribute_ber(li->ld,ent,ber,&bv,&bvals);”可位于第二添加字符串“+(rc==LDAP_SUCCESS).)&&bvals;”的前一行中。电子装置101可为位于补丁文件的较高行中的字符串指定较高的优先级。当按顺序管理字符串时,电子装置101可在比较期间考虑到字符串在将被检查的源代码中的排列顺序的情况下比较将被检查的源代码与比较文件,稍后将对其进行更详细地描述。

相反,根据各种实施例的电子装置101可存储字符串而不考虑字符串在漏洞或修正中的排序次序。

图5是示出根据各种实施例的操作电子装置的方法的流程图。参照图6更详细地描述了图5的实施例。图6是示出根据各种实施例的调整漏洞和修正的示图。

根据各种实施例,电子装置101可在操作501接收与至少一个文件对应的至少一个补丁文件。在操作503,电子装置101可基于至少一个补丁文件对漏洞和修正进行分类。前面已经详细描述了接收补丁文件的过程和对漏洞和修正进行分类的过程,因而这里不再对其进行详细描述。

在操作505中,电子装置101可识别漏洞与修正之间是否具有公共项。例如,如图6所示,电子装置101可根据操作503的分类结果识别修正411和漏洞412。电子装置101可识别到修正411中的字符串+A和漏洞412中的字符串-A具有相同的内容仅前缀不同。在电子装置101在删除前缀“+”和“-”之后存储了字符串的情况中,电子装置101还可识别到修正411中的字符串A与漏洞412中的字符串A相同。

当确定漏洞与修正之间没有公共项时,电子装置101可在操作507存储包括文件识别信息、漏洞或修正中的至少一个的比较文件。例如,当漏洞与修正之间没有具有相同内容且仅前缀不同的字符串时,电子装置101可存储包括所识别的修正或漏洞中的至少一个的比较文件。可选择地,在漏洞与修正没有相同的字符串的情况中,电子装置101可存储包括所识别的修正或漏洞中的至少一个的比较文件。

当确定漏洞与修正之间具有公共项时,电子装置101可在操作509删除公共项。例如,如图6所示,当字符串“+A”和字符串“-A”具有相同内容且仅前缀不同时,电子装置101可通过删除公共的字符串“+A”生成调整后的修正421和通过删除公共的字符串“-A”生成调整后的漏洞422。可选择地,当已删除了前缀时,电子装置101可通过删除修正和漏洞中共同包括的字符串A生成调整后的修正和调整后的漏洞。尽管如图6所示删除了存在于漏洞412中的两个“-A”中的仅第一个“-A”,但是这是示例并且可删除两个“-A”。在操作511,电子装置101可存储包括已经删除了公共项的漏洞或修正中的至少一个的比较文件。

在各种实施例中,电子装置101可通过删除漏洞与修正之间的公共项或不删除公共项来生成比较文件。

在各种实施例中,当漏洞和修正中包含的字符串的长度满足预定条件时,电子装置101可从漏洞或修正中的至少一个删除字符串。例如,当字符串的长度小于阈值时,电子装置101可从漏洞或修正中的至少一个删除该字符串。可选择地,当字符串中包括预定的测试(例如,“返回”)时,电子装置101可从漏洞或修正中的至少一个删除该字符串。

图7a是示出根据各种实施例的操作电子装置的方法的流程图。参照图8更详细地描述图7a的实施例。图8是示出根据各种实施例的比较比较文件与源代码的过程的示图。

根据各种实施例,电子装置101可在操作701加载将被检查的目标文件,即目标检查文件。例如,电子装置101可加载开发中的应用(或完成的应用)作为目标检查文件。目标检查文件可指应用中包括的应用(或程序)或源代码。

在操作703,电子装置将目标检查文件令牌化从而识别多个字符串。例如,如图8所示,电子装置101可将目标检查文件801令牌化,从而识别多个字符串A、B、D、A、F和A。如上所述,尽管为了简化,字符串被显示为英文大写字母A、B、D、A、F和A,但是每个英文大写字母可代表例如源代码中包含的字符串(例如,for(rc=ldap_get_attribute_ber(li->ld,ent,ber,&bv,bvp);),如表1中所列出的。

在操作705,电子装置101可将所识别的字符串与比较文件进行比较。例如,如图8所示,电子装置100可将目标检查文件801的字符串与比较文件中包括的修正411或漏洞412中的至少一个进行比较。如图8所示,当修正411和漏洞412中体现了前缀“+”和“-”时,电子装置101可从修正411或漏洞412中的至少一个的字符串去除前缀,然后识别目标检查文件801的字符串是否与所述字符串相同。例如,如图8所示,电子装置101可获得第一比较结果811,第一比较结果811指示比较文件中的修正411的四个字符串中的字符串“B”和“A”与目标检查文件801中的“B”和第二个“A”相同。尽管目标检查文件801的第一个字符串是“A”且修正411的第四个字符串是“+A”,但是电子装置101可通过在考虑修正411中的字符串顺序和目标检查文件801中的字符串的顺序的前提下执行比较,确定目标检查文件801的第一个“A”与修正411的第四个字符串“+A”不匹配。例如,电子装置101可根据计算修正411的字符串与目标检查文件801的字符串之间的最长公共序列(LCS)的结果来识别匹配率。电子装置101可基于指示修正411的四个字符串中的两个与目标检查文件801的字符串相同的第一比较结果811,识别第一匹配率821为50%。

电子装置101可比较目标检查文件801的字符串与漏洞412的字符串。电子装置101可识别第二比较结果812,第二比较结果812指示目标检查文件801的字符串中的第一个“A”、“D”、第二个“A”和“F”与漏洞412中的字符串相同。此外,电子装置101可基于第二比较结果812识别第二匹配率822为100%,第二匹配率822指示漏洞412的全部四个字符串与目标检查文件801的字符串相同。

在操作707,电子装置101可基于比较结果提供指示目标检查文件是否包括漏洞的信息、或指示目标检查文件是否包括修正的信息中的至少一个。例如,电子装置101可基于第一匹配率821是否超过阈值提供指示检查目标是否包括修正的信息,即检查目标是否是已打补丁版本的信息。例如,电子装置101可基于第二匹配率822是否超过阈值提供指示检查目标是否包括任意漏洞的信息,即目标检查文件是否是打补丁之前的版本的信息。可将与修正的匹配率进行比较的阈值设为等于或不同于与漏洞的匹配率进行比较的阈值。可选择地,可根据修正或漏洞中包含的字符串的数量设置阈值。

在各种实施例中,电子装置101可管理修正411的字符串或漏洞412的字符串而不管它们的顺序,如之前所描述的。电子装置101可识别比较文件的字符串是否与目标检查文件801的字符串匹配而不考虑字符串的排列次序。

图7b、图7c和图7d是示出根据各种实施例的操作电子装置的方法的流程图。前面已经参照图7a描述了图7b、图7c和图7d的操作701至操作705,因而这里不再描述操作701至操作705。在图7b的实施例中,电子装置101可在操作709基于比较结果提供目标检查文件中的漏洞的比例或修正的比例中的至少一个。例如,电子装置101提供图8中的第一匹配率821或第二匹配率822中的至少一个。

在图7c的实施例中,电子装置101可在操作711基于比较结果在目标检查文件的多个字符串中以区别于其他字符串的方式显示与漏洞对应的字符串或与修正对应的字符串中的至少一个。例如,电子装置101可将与修正或漏洞对应的字符串的各种属性(诸如,颜色、尺寸和环境颜色)与整个源代码中的其他字符串的各种属性区分开。

在图7d的实施例中,电子装置101可在操作713基于比较结果提供目标检查文件的多个字符串中与漏洞对应的字符串或与修正对应的字符串中的至少一个的位置有关的信息。例如,电子装置101可提供位置信息,诸如与修正或漏洞对应的字符串在整个源代码中所在的行数。

图9是示出根据各种实施例的操作电子装置的方法的流程图。

根据各种实施例,电子装置101可在操作901加载目标检查文件。在操作903,电子装置101可将目标检查文件有关的识别信息与比较文件有关的识别信息进行比较以基于比较结果确定目标检查文件是否是检查目标。例如,电子装置101可将表1所示的比较文件有关的文件识别信息与目标检查文件有关的文件识别信息进行比较。当根据比较结果识别目标检查文件为检查目标时,电子装置101可在操作905将目标检查文件令牌化以识别多个字符串。在操作907,电子装置101可将所识别的多个字符串与比较文件进行比较。在操作909,电子装置101可基于比较结果提供指示目标检查文件是否包括漏洞的信息或指示目标检查文件是否包括修正的信息中的至少一个。

图10a、图10b、图10c和图10d示出了根据各种实施例的补丁文件、比较文件和目标检查文件。

参照图10a,电子装置101可收集对例如CVE-2016-7167的漏洞进行修正的补丁文件1001。电子装置101可解析补丁文件1001中包含的字符串并将解析后的字符串分类成漏洞1002和修正1003。电子装置101可将漏洞1002的字符串与目标检查文件1004的字符串进行比较,并识别到漏洞1002的全部字符串与目标检查文件1004的字符串的至少部分1005相同。由此,电子装置101可识别到漏洞1002与目标检查文件1004之间的匹配率为100%。电子装置101可以用将与漏洞1002的字符串相同的字符串1005与其他字符串区分开来的方式显示例如目标检查文件1004的源代码。此外,电子装置101可将修正1003与目标检查文件1004的字符串进行比较。电子装置101可识别到目标检查文件1004无字符串与修正1003的字符串匹配。由此,电子装置101可识别到修正1003与目标检查文件1004之间的匹配率为0%。电子装置101可识别到漏洞1002与目标检查文件1004之间的匹配率100%超过阈值,因而提供指示目标检查文件1004需要打补丁或目标检查文件1004是打补丁之前的版本的分析结果。可选择地,电子装置101可提供漏洞1002与目标检查文件1004之间的匹配率100%。

在图10b、图10c和图10d的实施例中,电子装置101可收集补丁文件1011、补丁文件1021和补丁文件1031以分别对CVE-2017-3735的漏洞、CVE-2016-7167的漏洞和CVE-2014-3569的漏洞进行修正。电子装置101可从所收集的补丁文件1011、补丁文件1021和补丁文件1031分类出漏洞1012、漏洞1022、漏洞1032和修正1013、修正1023和修正1033。在图10b、图10c和图10d的实施例的每个中,电子装置101可识别到漏洞1012的全部字符串与目标检查文件1014的部分相同,识别到漏洞1022的全部字符串与目标检查文件1024的部分相同,或识别到漏洞1023的全部字符串与目标检查文件1034的部分相同。因此,可识别到漏洞1012与目标检查文件1014之间的匹配率、漏洞1024与目标检查文件1024之间的匹配率或漏洞1034与目标检查文件1034之间的匹配率为100%。电子装置101可识别到修正1013无字符串与目标检查文件1014的字符串相同、修正1023无字符串与目标检查文件1024的字符串相同或修正1033无字符串与目标检查文件1034的字符串相同,因而识别到修正1013与目标检查文件1014之间的匹配率、修正1023与目标检查文件1024之间的匹配率或修正1033与目标检查文件1034之间的匹配率为0%。根据各种实施例的电子装置101可区别于其他字符串显示与易受攻击的代码对应的字符串1005、字符串1015、字符串1025、字符串1026和字符串1035,如图10a、图10b、图10c和图10d所示。

图11a和图11b是示出根据各种实施例的由电子装置提供的示例性屏幕的示图。

参照图11a,电子装置101可通过例如输出装置160显示第一屏幕1100。第一屏幕1110可意图提供程序A的搜索结果。第一屏幕1100可包括与程序A中包括的至少一个源代码有关的识别信息1101、识别信息1103和识别信息1105。电子装置101可将对应于第一源代码(例如,源a)的比较文件与第一源代码进行比较,并且基于比较结果显示指示第一源代码已打补丁的对象1102。电子装置101可通过将第一比较文件有关的文件识别信息与第一源代码有关的文件识别信息进行比较,识别到第一比较文件用于与第一源代码比较。例如,电子装置101可识别到第一比较文件的修正在第一源代码中体现的比率超过阈值,因而识别到第一源代码已打补丁。电子装置101可在与第一源代码有关的识别信息1101对应的位置处显示指示已对第一源代码打补丁的对象1102。电子装置101可通过使用第二源代码有关的识别信息识别与第二源代码(例如,源b)对应的第二比较文件和通过使用第三源代码有关的识别信息识别与第三源代码(例如,源c)对应的第三比较文件。电子装置101可将第二比较文件与第二源代码进行比较,并且基于比较结果识别到第二源代码包括第二比较文件中包含的漏洞的字符串。电子装置101可在与第二源代码有关的识别信息1103对应的位置处显示未对第二源代码打补丁的对象1104。电子装置101可将第三比较文件与第三源代码进行比较,并且基于比较结果识别到第三源代码包括第三比较文件中包括的修正的字符串且不包括第三比较文件中包括的漏洞的字符串。电子装置101可在与第三源代码有关的识别信息1105对应的位置处显示已对第三源代码打补丁的对象1106。程序A的开发者可从第一屏幕1100识别到程序A的源代码是打补丁之前的版本。程序A的开发者可将电子装置101适配为将补丁文件应用于第二源代码,由此防止在源代码具有未打补丁的漏洞的情况下发布程序A。根据各种实施例,电子装置101可自动地将补丁文件应用于被识别为未打补丁的第二源代码。

参照图11b,电子装置101可显示提供程序A的搜索结果的第二屏幕1110。第二屏幕1110可包括程序A中包括的至少一个源代码有关的识别信息1111、识别信息1113和识别信息1115。电子装置101可在与识别信息1111对应的位置处显示指示对源代码打补丁的概率的对象1112、在与识别信息1113对应的位置处显示指示对源代码打补丁的概率的对象1114和在与识别信息1115对应的位置处显示指示对源代码打补丁的概率的对象1116。由对象1112、对象1114和对象1116指示的概率中的每个例如可被确定为修正和源代码中共同包含的字符串的数量与源代码的比较文件的修正中包含的字符串的总数量之比。

电子装置101可在与识别信息1111对应的位置处显示指示未对源代码打补丁的概率的对象1121、在与识别信息1113对应的位置处显示指示未对源代码打补丁的概率的对象1122和在与识别信息1115对应的位置处显示指示未对源代码打补丁的概率的对象1123。由对象1121、对象1122和对象1123指示的概率中的每个例如可被确定为漏洞和源代码共同包含的字符串的数量与源代码的比较文件的漏洞中包含的字符串的总数量之比。

在此阐述的各种实施例可实现为包括存储在存储介质(例如,内部存储器或外部存储器)中的可由机器(例如,计算机)读取的一个或更多个指令的软件(例如,程序)。所述机器可调用存储在存储介质中的所述一个或更多个指令中的至少一个指令并运行所述至少一个指令。所述机器可包括根据所公开的实施例的电子装置(例如,电子装置101)。当由处理器(例如,处理器120)运行所述指令时,可在处理器的控制下使用其他部件运行与所述指令对应的功能。所述一个或更多个指令可包括由编译器生成的代码或能够由解释器运行的代码。可以以非暂时性存储介质的形式来提供机器可读存储介质。其中,术语“非暂时性”仅意味着所述存储介质是有形装置,并且不包括信号,但是该术语并不在数据被半永久性地存储在存储介质中与数据被临时存储在存储介质中之间进行区分。

根据实施例,可在计算机程序产品中包括和提供根据本公开的各种实施例的方法。计算机程序产品可作为产品在销售者和购买者之间进行交易。可以以机器可读存储介质(例如,紧凑盘只读存储器(CD-ROM))的形式来发布计算机程序产品,或者可经由应用商店(例如,Play StoreTM)在线发布计算机程序产品。如果是在线发布的,则计算机程序产品中的至少部分可以是临时产生的,或者可将计算机程序产品中的至少部分至少临时存储在机器可读存储介质(诸如制造商的服务器、应用商店的服务器或中继服务器的存储器)中。

根据各种实施例,上述部件中的每个部件(例如,模块或程序)可包括单个实体或多个实体。根据各种实施例,可省略上述部件中的一个或更多个部件,或者可添加一个或更多个其他部件。可选择地或者另外地,可将多个部件(例如,模块或程序)集成为单个部件。在这种情况下,根据各种实施例,该集成部件可仍旧按照与所述多个部件中的相应一个部件在集成之前执行一个或更多个功能相同或相似的方式,执行所述多个部件中的每一个部件的所述一个或更多个功能。根据各种实施例,由模块、程序或另一部件所执行的操作可顺序地、并行地、重复地或以启发式方式来执行,或者所述操作中的一个或更多个操作可按照不同的顺序来运行或被省略,或者可添加一个或更多个其他操作。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号