CN117331838A - 一种渗透测试方法及装置 - Google Patents

一种渗透测试方法及装置 Download PDF

Info

Publication number
CN117331838A
CN117331838A CN202311355693.1A CN202311355693A CN117331838A CN 117331838 A CN117331838 A CN 117331838A CN 202311355693 A CN202311355693 A CN 202311355693A CN 117331838 A CN117331838 A CN 117331838A
Authority
CN
China
Prior art keywords
software
code
penetration test
difference information
test result
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
Application number
CN202311355693.1A
Other languages
English (en)
Inventor
方海波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Geely Holding Group Co Ltd
Zhejiang Zeekr Intelligent Technology Co Ltd
Original Assignee
Zhejiang Geely Holding Group Co Ltd
Zhejiang Zeekr Intelligent Technology Co Ltd
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 Zhejiang Geely Holding Group Co Ltd, Zhejiang Zeekr Intelligent Technology Co Ltd filed Critical Zhejiang Geely Holding Group Co Ltd
Priority to CN202311355693.1A priority Critical patent/CN117331838A/zh
Publication of CN117331838A publication Critical patent/CN117331838A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本说明书提供一种渗透测试方法及装置。该方法包括:获取第一软件的第一代码,以及第二软件的第二代码;其中,所述第一软件为已通过渗透测试的软件,所述第二软件为待测试的软件;对比所述第一代码和所述第二代码,并基于对比结果确定所述第一代码和所述第二代码之间的差异信息;基于所述差异信息,生成针对所述第二软件的渗透测试结果。

Description

一种渗透测试方法及装置
技术领域
本申请涉及软件测试技术领域,尤其涉及一种渗透测试方法、装置、电子设备及机器可读存储介质。
背景技术
随着信息技术的不断发展,软件应用程序已经广泛应用于各个领域。网络安全问题也随之日益凸显,黑客攻击、数据泄漏等安全问题时有发生。渗透测试可以帮助企业发现软件应用系统中的安全漏洞和弱点,及时修补并加强安全防护措施,从而提高企业的安全性和保障业务顺利运行。
然而,传统的渗透测试方法多采用模拟黑客攻击的方式来寻找软件应用系统的漏洞,但这种方法存在着一定的安全风险和法律风险,同时对测试人员的技术水平和经验要求较高,操作复杂繁琐,费时费力,不利于软件工程师快速发现和修复软件系统的安全问题。
发明内容
第一方面,本申请提供了一种渗透测试方法,包括:
获取第一软件的第一代码,以及第二软件的第二代码;其中,所述第一软件为已通过渗透测试的软件,所述第二软件为待测试的软件;
对比所述第一代码和所述第二代码,并基于对比结果确定所述第一代码和所述第二代码之间的差异信息;
基于所述差异信息,生成针对所述第二软件的渗透测试结果。
可选的,所述第一软件运行在第一系统上,所述第二软件运行在第二系统上,所述第一系统和所述第二系统为配置相同的两个系统;所述第一软件和所述第二软件为同一款软件的两个版本。
可选的,所述差异信息包括以下示出的一个或多个:
所述第一代码和所述第二代码中包含的文件的文件名称之间的差异信息;
所述第一代码和所述第二代码中包含的文件的文件内容之间的差异信息;
所述第一代码和所述第二代码中包含的文件的文件大小之间的差异信息。
可选的,所述第一软件和所述第二软件为采用java编程语言编写的软件;所述第一代码和所述第二代码中包含的文件包括:由所述第一软件和所述第二软件的源代码编译成的class文件。
可选的,所述方法还包括:基于所述渗透测试结果,对所述第二软件进行优化处理。
可选的,所述渗透测试结果包括所述第二软件存在的至少一个安全问题;所述基于所述渗透测试结果,对所述第二软件进行优化处理,包括:
基于所述渗透测试结果中包括的所述至少一个安全问题,生成针对所述第二软件的修改建议,并基于所述修改建议,修改所述第二软件中与所述至少一个安全问题相关的部分代码。
可选的,所述对比所述第一代码和所述第二代码,包括:
利用预先配置的代码对比工具,对比所述第一代码和所述第二代码;所述代码对比工具包括WinMerge、Beyond Compare、Kdiff3中的任意一个。
第二方面,本申请提供了一种渗透测试装置,所述装置包括:
代码获取单元,用于获取第一软件的第一代码,以及第二软件的第二代码;其中,所述第一软件为已通过渗透测试的软件,所述第二软件为待测试的软件;
代码对比单元,用于对比所述第一代码和所述第二代码,并基于对比结果确定所述第一代码和所述第二代码之间的差异信息;
测试结果生成单元,用于基于所述差异信息,生成针对所述第二软件的渗透测试结果。
本申请还提供了一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述第一方面所述的渗透测试方法。
本申请还提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述第一方面所述的渗透测试方法。
本申请提供的技术方案至少可以包括以下有益效果:
通过以上实施例,本申请可以获取第一软件的第一代码,以及获取第二软件的第二代码。其中,第一软件可以是已经通过渗透测试的软件,第二软件可以是待测试的软件。进一步地,本申请可以对比上述第一代码和第二代码,并基于对比结果确定该第一代码和第二代码之间的差异信息。进一步地,本申请可以基于确定出的代码之间的差异信息,生成针对该第二软件的渗透测试结果。如此,本申请通过对比已通过渗透测试的软件与待测试的软件的代码之间的差异,进而找出待测试的软件可能存在的安全问题,实现了更加简单、快捷的渗透测试,且适用性较强,可以适用于各种软件应用系统的安全性检测。此外,本申请提供的基于代码对比的渗透测试方法不需要利用黑客攻击技术进行模拟攻击,不仅可以显著降低渗透测试的成本,而且不会对系统造成不必要的损害,实现了更加安全和低成本的渗透测试。
附图说明
图1是一示例性的实施例示出的一种渗透测试的系统架构图。
图2是一示例性的实施例示出的一种渗透测试方法的流程图。
图3是一示例性的实施例示出的一种渗透测试装置所在电子设备的硬件结构图。
图4是一示例性的实施例示出的一种渗透测试装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
如上所述,随着信息技术的不断发展,软件应用程序已经广泛应用于各个领域。网络安全问题也随之日益凸显,黑客攻击、数据泄漏等安全问题时有发生。渗透测试可以帮助企业发现软件应用系统中的安全漏洞和弱点,及时修补并加强安全防护措施,保证软件的安全性,从而提高企业的安全性和保障业务顺利运行。
然而,传统的渗透测试方法多采用模拟黑客攻击的方式来寻找软件应用系统的漏洞,但这种方法存在着一定的安全风险和法律风险,同时对测试人员的技术水平和经验要求较高,操作复杂繁琐,费时费力,不利于软件工程师快速发现和修复软件系统的安全问题。
有鉴于此,本申请旨在提出一种渗透测试方法。该方法通过将待测试软件的代码与已通过渗透测试的软件的代码进行对比,基于对比结果查找待测试软件中潜在的安全问题,从而实现渗透测试,更加简单便捷,显著降低了渗透测试的成本。
在实现时,可以获取第一软件的第一代码,以及第二软件的第二代码;其中,所述第一软件为已通过渗透测试的软件,所述第二软件为待测试的软件。
进一步地,可以对比所述第一代码和所述第二代码,并基于对比结果确定所述第一代码和所述第二代码之间的差异信息。
进一步地,基于所述差异信息,生成针对所述第二软件的渗透测试结果。
通过以上实施例,本申请可以获取第一软件的第一代码,以及获取第二软件的第二代码。其中,第一软件可以是已经通过渗透测试的软件,第二软件可以是待测试的软件。进一步地,本申请可以对比上述第一代码和第二代码,并基于对比结果确定该第一代码和第二代码之间的差异信息。进一步地,本申请可以基于确定出的代码之间的差异信息,生成针对该第二软件的渗透测试结果。如此,本申请通过对比已通过渗透测试的软件与待测试的软件的代码之间的差异,进而找出待测试的软件可能存在的安全问题,实现了更加简单、快捷的渗透测试,且适用性较强,可以适用于各种软件应用系统的安全性检测。此外,本申请提供的基于代码对比的渗透测试方法不需要利用黑客攻击技术进行模拟攻击,不仅可以显著降低渗透测试的成本,而且不会对系统造成不必要的损害,实现了更加安全和低成本的渗透测试。
下面通过具体实施例,并结合具体的应用场景对本申请进行描述。
请参见图1,图1是一示例性的实施例示出的一种渗透测试的系统架构图。本说明书提供的一个或多个实施例可以在图1所示的系统架构或者类似的系统架构中具体实施。如图1所示,该系统架构中包括第一系统10、第二系统20和测试系统30。其中,测试系统30可以通过任何可能的方式分别与第一系统10、第二系统20建立通信连接。在一示出的实施方式中,测试系统30可以通过有线或者无线网络的方式分别与第一系统10、第二系统20建立通信连接。
在一示出的实施方式中,第一系统10中可以运行有第一软件,第二系统20中可以运行有第二软件。其中,第一软件和第二软件可以是两款不同的软件,或者,第一软件和第二软件也可以是同一款软件的两个不同版本,本说明书对此不做具体限定。在一示出的实施方式中,第一软件可以是已经通过渗透测试的软件,而第二软件可以是待进行渗透测试的软件。
需要说明的是,本申请对第一软件和第二软件的具体类型不作特别限定。在一示出的实施方式中,第一软件和第二软件可以是视频软件、购物软件、音乐软件、阅读软件、绘图软件和社交软件等中的任意一种,本说明书对此不做具体限定。
在一示出的实施方式中,第一系统10和第二系统20可以是配置相同的两个系统,例如包括硬件配置(例如CPU、内存等)和软件配置(例如操作系统等)均相同的两个系统。
在一示出的实施方式中,测试系统30可以基于预先建立的通信连接获取第一系统10上运行的第一软件的第一代码,以及获取第二系统20上运行的第二软件的第二代码。
进一步地,测试系统30可以对比获取到的第一代码与第二代码,并基于对比结果,确定出第一代码与第二代码之间的差异信息。
在一示出的实施方式中,测试系统30中可以预先安装有相应的代码对比工具,相应的,测试系统30具体可以利用该代码对比工具来对比上述第一代码与第二代码。
需要说明的是,本申请对代码对比工具的具体类型不作特别限定。在一示出的实施方式中,该代码对比工具可以是WinMerge、Beyond Compare、Kdiff3等中的任意一种,本说明书对此不做具体限定。
在一示出的实施方式中,该差异信息例如可以包括以下示出的一个或多个:第一代码和第二代码中包含的文件的文件名称之间的差异信息;第一代码和第二代码中包含的文件的文件内容之间的差异信息;第一代码和第二代码中包含的文件的文件大小之间的差异信息,等等,本说明书对此不做具体限定。
进一步地,测试系统30可以基于该确定出的差异信息,查找第二软件可能存在的安全问题,进而得到针对第二软件的渗透测试结果。
进一步地,测试系统30可以通过预设界面向测试人员输出显示该渗透测试结果,以使测试人员可以基于该渗透测试结果针对该第二软件中可能存在的安全问题进行修复,进而保证第二软件的安全性。
在一示出的实施方式中,本申请也可以通过第一系统10或者第二系统20本身来实现对第二软件的渗透测试。相应的,第一系统10和第二系统20之间也可以通过有线或者无线网络的方式建立通信连接。
在一示出的实施方式中,第一系统10可以通过上述通信连接获取第二系统20上运行的第二软件的第二代码,并将本地运行的第一软件的第一代码与获取到的第二代码进行对比,并基于对比结果确定出第一代码与第二代码之间的差异信息,并进一步基于差异信息生成针对第二软件的渗透测试结果。如此,本申请也可以通过第一系统10实现对第二软件的渗透测试。
相类似的,在一示出的实施方式中,第二系统20也可以通过上述通信连接获取第一系统10上运行的第一软件的第一代码,并将本地运行的第二软件的第二代码与获取到的第一代码进行对比,并基于对比结果确定出第一代码与第二代码之间的差异信息,并进一步基于差异信息生成针对第二软件的渗透测试结果。如此,本申请也可以通过第二系统20实现对第二软件的渗透测试。
在一示出的实施方式中,第一软件和第二软件均可以运行在第一系统10或者第二系统20中,相应的,第一系统10或者第二系统20可以直接获取本地运行的第一软件的第一代码以及第二软件的第二代码,并进行对比,以生成针对第二软件的渗透测试结果,等等,本说明书对此不做具体限定。
在一示出的实施方式中,第一系统10、第二系统20和测试系统30中均可以包括一个或多个电子设备,该电子设备可以是具备上述功能的平板电脑、笔记本电脑、台式电脑、服务器,或者由多个服务器构成的服务器集群,等等,本说明书对此不做具体限定。
应理解,图1所示的系统架构仅做示例性说明,在一些可能的实施方式中,上述系统架构中还可以包括比图1所示更多或者更少的设备,例如可以不包括测试系统30,而是通过第一系统10和第二系统20中的任意一个来实现基于代码对比的渗透测试,等等,本说明书对此不做具体限定。
请参见图2,图2是一示例性的实施例示出的一种渗透测试方法的流程图。该方法可以应用于图1所示的系统架构中,具体可以应用于图1所示的测试系统、第一系统和第二系统中的任意一个。如图2所示,该方法具体可以包括如下步骤S202-步骤S206。
步骤202,获取第一软件的第一代码,以及第二软件的第二代码;其中,所述第一软件为已通过渗透测试的软件,所述第二软件为待测试的软件。
在一示出的实施方式中,第一系统中可以运行有第一软件,第二系统中可以运行有第二软件。
其中,第一软件和第二软件可以是两款不同的软件。示例性的,第一软件和第二软件可以是两款不同的游戏软件,或者,第一软件可以是一款社交软件,第二软件可以是一款视频软件,等等,本说明书对此不做具体限定。
或者,在一示出的实施方式中,第一软件和第二软件也可以是同一款软件的两个不同版本,本说明书对此不做具体限定。
在一示出的实施方式中,第一软件可以是已经通过渗透测试的软件。示例性的,第一软件可以是已经发行并稳定运行了较长时间(例如半年、1年、2年甚至更久)的旧版本。
在一示出的实施方式中,第二软件可以是待进行渗透测试的软件。示例性的,第二软件可以是在第一软件基础上增加了新功能或者修改了某些功能的还未正式发行的升级版本。
在一示出的实施方式中,第一软件和第二软件可以是基于Java编程语言编写的软件(或者说应用程序)。应理解,计算机源码文件一般都不能直接执行,第一软件和第二软件的Java源代码在经过编译之后会生成字节码(.class文件),而字节码则是Java虚拟机所能够理解和执行的代码格式。因此,第一软件和第二软件运行时需要依赖于class文件,相应的,上述获取到的第一软件的第一代码和第二软件的第二代码中可以包括与软件运行时的class文件相关的代码。
步骤204,对比所述第一代码和所述第二代码,并基于对比结果确定所述第一代码和所述第二代码之间的差异信息。
进一步地,在一示出的实施方式中,在获取到第一软件的第一代码和第二软件的第二代码后,本申请可以对比该第一代码和第二代码,并基于对比结果确定该第一代码和第二代码之间的差异信息。
在一示出的实施方式中,本申请可以利用预设的代码对比工具来对比第一代码和第二代码。如上所述,该代码对比工具例如可以是WinMerge、Beyond Compare、Kdiff3等中的任意一种,本说明书对此不做具体限定。其中,WinMerge具有文本对比、文件对比和文件夹对比等。其中,文本对比是指WinMerge可以比较两个文本文件之间的差异,通过高亮显示不同之处,并在左右两个显示区域中显示详细的差异报告。用户可以通过上下文菜单或热键进行各种操作(如复制、粘贴、插入行等)。其中,文件夹对比是指WinMerge可以比较两个文件夹之间的差异,查找出不同之处,并提供文件层次结构的视图,以便用户浏览和比较文件夹中的所有文件。其中,三方文件夹对比是指WinMerge也可以比较三个文件夹之间的差异,这可以很方便地处理来自不同版本控制分支的文件夹,或者与不同构建之间的文件夹进行比较,等等,此处不再展开详述,本申请可以根据实际情况和需求选择合适的代码对比工具以及对比方式,本说明书对此不做具体限定。
在一示出的实施方式中,如上所述,第一代码和第二代码之间的差异信息例如可以包括以下示出的一个或多个:第一代码和第二代码中包含的文件的文件名称之间的差异信息;第一代码和第二代码中包含的文件的文件内容之间的差异信息;第一代码和第二代码中包含的文件的文件大小之间的差异信息,等等,本说明书对此不做具体限定。其中,上述文件可以是class文件。
可以理解的是,以第二软件是第一软件的升级版本为例,上述差异信息可以表示第二软件相较于第一软件发生改动的部分。
步骤206,基于所述差异信息,生成针对所述第二软件的渗透测试结果。
进一步地,在一示出的实施方式中,本申请可以基于第一软件和第二软件的代码之间的差异信息,对第二软件中与第一软件存在差异的部分进行详细检查,以发现其可能存在的至少一个安全问题,进而实现针对第二软件的渗透测试。
示例性的,第二软件的第二代码中的目标文件的文件内容/文件名称/文件大小可能与第一软件中的目标文件不同,则本申请可以进一步检查该目标文件对应的软件功能是否存在漏洞或数据泄漏等安全问题。
示例性的,该目标文件可以为用于进行网络请求的文件,相应的,本申请可以进一步检查第二软件在进行网络切换时(例如由有线网络切换至无线网络,或者由无线网络切换至有线网络),能否正常发起网络请求。示例性的,如果第二软件不能正常发起网络请求,则表明第二软件中与该目标文件对应的网络请求功能存在安全问题。
示例性的,该目标文件可以为用于进行存储的文件,相应的,本申请可以进一步检查第二软件在存储空间已满时,能否正常发起预警,以删除一些文件,释放存储空间。示例性的,如果第二软件不能在存储空间已满时正常发起预警,则表明第二软件中与该目标文件对应的存储功能存在安全问题。示例性的,该存储空间可以是系统中的内存、磁盘或者硬盘等等,本说明书对此不做具体限定。
示例性的,该目标文件可以为用于管理黑名单的文件,相应的,本申请可以进一步检查第二软件能否正常阻止黑名单中的任一对象的请求。示例性的,如果第二软件不能正常阻止黑名单中的任一对象的请求,则表明第二软件中与该目标文件对应的黑名单管理功能存在安全问题。示例性的,该请求可以是读取相册的请求,获取麦克风权限的请求,以及加入网络的请求,等等,本说明书对此不做具体限定。
在一示出的实施方式中,本申请也可以将上述目标文件(class文件)反编译成源代码文件(.java文件),并对该源代码文件进行检查,以发现其可能存在的安全问题,等等,本说明书对此不做具体限定。需要说明的是,本申请对反编译的具体实施方式不作特别限定。
进一步地,本申请可以基于上述检查出的至少一个安全问题,生成针对该第二软件的渗透测试结果。示例性的,该渗透测试结果可以以检查报告的形式面向测试人员进行输出展示。示例性的,该渗透测试结果中可以包括检查出的每个安全问题的详细信息,例如可以包括问题描述、风险评估和修复建议,等等,本说明书对此不做具体限定。
进一步地,在一示出的实施方式中,本申请可以基于上述生成的渗透测试结果,对第二软件进行优化处理,以提升第二软件的安全性。
具体地,在一示出的实施方式中,本申请可以基于渗透测试结果中包括的至少一个安全问题的详细信息,生成针对该第二软件的修改建议。进一步地,本申请可以基于该修改建议,针对该第二软件中与该至少一个安全问题相关的部分代码进行修改,从而加强软件代码中的安全性措施,等等,以最终提高系统的整体安全性,保障业务顺利运行。
综上,本申请可以获取第一系统上运行的第一软件的第一代码,以及获取第二系统上运行的第二软件的第二代码。其中,第一软件可以是已经通过渗透测试的软件,第二软件可以是待测试的软件。进一步地,本申请可以对比上述第一代码和第二代码,并基于对比结果确定该第一代码和第二代码之间的差异信息。进一步地,本申请可以基于确定出的代码之间的差异信息,生成针对该第二软件的渗透测试结果。如此,本申请通过对比已通过渗透测试的软件与待测试的软件的代码之间的差异,进而找出待测试的软件可能存在的安全问题,实现了更加简单、快捷的渗透测试,且适用性较强,可以适用于各种软件应用系统的安全性检测。此外,本申请提供的基于代码对比的渗透测试方法不需要利用黑客攻击技术进行模拟攻击,不仅可以显著降低渗透测试的成本,而且不会对系统造成不必要的损害,实现了更加安全和低成本的渗透测试。
与所述渗透测试方法的实施例对应的,本说明书还提供了一种渗透测试装置的实施例。
请参见图3,图3是一示例性的实施例示出的一种渗透测试装置所在电子设备的硬件结构图。该电子设备可以为上述图1所示的第一系统10中的电子设备,或者第二系统20中的电子设备,又或者测试系统30中的电子设备,本说明书对此不做具体限定。在硬件层面,该设备包括处理器302、内部总线304、网络接口306、内存308以及非易失性存储器310,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器302从非易失性存储器310中读取对应的计算机程序到内存308中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参见图4,图4是一示例性的实施例示出的一种渗透测试装置的框图。装置40可以应用于图3所示的电子设备中,以实现本说明书的技术方案。其中,该装置40可以应用于测试系统、第一系统或者第二系统,该测试系统可以分别与第一系统和第二系统对接,其中,第一系统上运行有已通过渗透测试的第一软件,第二系统上运行有待测试的第二软件;如图4所示,所述装置40可以包括:
代码获取单元402,用于获取第一软件的第一代码,以及第二软件的第二代码;其中,所述第一软件为已通过渗透测试的软件,所述第二软件为待测试的软件;
代码对比单元404,用于对比所述第一代码和所述第二代码,并基于对比结果确定所述第一代码和所述第二代码之间的差异信息;
测试结果生成单元406,用于基于所述差异信息,生成针对所述第二软件的渗透测试结果。
在本实施例中,所述第一软件运行在第一系统上,所述第二软件运行在第二系统上,所述第一系统和所述第二系统为配置相同的两个系统;所述第一软件和所述第二软件为同一款软件的两个版本。
在本实施例中,所述差异信息包括以下示出的一个或多个:
所述第一代码和所述第二代码中包含的文件的文件名称之间的差异信息;
所述第一代码和所述第二代码中包含的文件的文件内容之间的差异信息;
所述第一代码和所述第二代码中包含的文件的文件大小之间的差异信息。
在本实施例中,所述第一软件和所述第二软件为采用java编程语言编写的软件;所述第一代码和所述第二代码中包含的文件包括:由所述第一软件和所述第二软件的源代码编译成的class文件。
在本实施例中,所述装置40还包括软件优化单元,用于:基于所述渗透测试结果,对所述第二软件进行优化处理。
在本实施例中,所述渗透测试结果包括所述第二软件存在的至少一个安全问题;所述软件优化单元,具体用于:
基于所述渗透测试结果中包括的所述至少一个安全问题,生成针对所述第二软件的修改建议,并基于所述修改建议,修改所述第二软件中与所述至少一个安全问题相关的部分代码。
在本实施例中,所述代码对比单元404,具体用于:
利用预先配置的代码对比工具,对比所述第一代码和所述第二代码;所述代码对比工具包括WinMerge、Beyond Compare、Kdiff3中的任意一个。
上述装置40中各个单元的功能和作用的实现过程具体详见所述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
所述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
所述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

Claims (10)

1.一种渗透测试方法,包括:
获取第一软件的第一代码,以及第二软件的第二代码;其中,所述第一软件为已通过渗透测试的软件,所述第二软件为待测试的软件;
对比所述第一代码和所述第二代码,并基于对比结果确定所述第一代码和所述第二代码之间的差异信息;
基于所述差异信息,生成针对所述第二软件的渗透测试结果。
2.根据权利要求1所述方法,所述第一软件运行在第一系统上,所述第二软件运行在第二系统上,所述第一系统和所述第二系统为配置相同的两个系统;所述第一软件和所述第二软件为同一款软件的两个版本。
3.根据权利要求1所述方法,所述差异信息包括以下示出的一个或多个:
所述第一代码和所述第二代码中包含的文件的文件名称之间的差异信息;
所述第一代码和所述第二代码中包含的文件的文件内容之间的差异信息;
所述第一代码和所述第二代码中包含的文件的文件大小之间的差异信息。
4.根据权利要求3所述方法,所述第一软件和所述第二软件为采用java编程语言编写的软件;所述第一代码和所述第二代码中包含的文件包括:由所述第一软件和所述第二软件的源代码编译成的class文件。
5.根据权利要求1所述方法,所述方法还包括:基于所述渗透测试结果,对所述第二软件进行优化处理。
6.根据权利要求5所述方法,所述渗透测试结果包括所述第二软件存在的至少一个安全问题;所述基于所述渗透测试结果,对所述第二软件进行优化处理,包括:
基于所述渗透测试结果中包括的所述至少一个安全问题,生成针对所述第二软件的修改建议,并基于所述修改建议,修改所述第二软件中与所述至少一个安全问题相关的部分代码。
7.根据权利要求1-6任意一项所述方法,所述对比所述第一代码和所述第二代码,包括:
利用预先配置的代码对比工具,对比所述第一代码和所述第二代码;所述代码对比工具包括WinMerge、Beyond Compare、Kdiff3中的任意一个。
8.一种渗透测试装置,所述装置包括:
代码获取单元,用于获取第一软件的第一代码,以及第二软件的第二代码;其中,所述第一软件为已通过渗透测试的软件,所述第二软件为待测试的软件;
代码对比单元,用于对比所述第一代码和所述第二代码,并基于对比结果确定所述第一代码和所述第二代码之间的差异信息;
测试结果生成单元,用于基于所述差异信息,生成针对所述第二软件的渗透测试结果。
9.一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1至7任一项所述的方法。
10.一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至7任一项所述的方法。
CN202311355693.1A 2023-10-18 2023-10-18 一种渗透测试方法及装置 Pending CN117331838A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311355693.1A CN117331838A (zh) 2023-10-18 2023-10-18 一种渗透测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311355693.1A CN117331838A (zh) 2023-10-18 2023-10-18 一种渗透测试方法及装置

Publications (1)

Publication Number Publication Date
CN117331838A true CN117331838A (zh) 2024-01-02

Family

ID=89295165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311355693.1A Pending CN117331838A (zh) 2023-10-18 2023-10-18 一种渗透测试方法及装置

Country Status (1)

Country Link
CN (1) CN117331838A (zh)

Similar Documents

Publication Publication Date Title
CN113961919B (zh) 恶意软件检测方法和装置
US10241759B2 (en) Detecting open source components built into mobile applications
CN112380401B (zh) 业务数据的核对方法和装置
CN108846129B (zh) 存储数据访问方法、装置及存储介质
JP7119096B2 (ja) ライセンス検証装置
CN117112060A (zh) 组件库构建方法、装置、电子设备及存储介质
CN114329367B (zh) 网盘文件追溯方法、装置、网盘及存储介质
CN110941547B (zh) 自动化测试用例库管理方法、装置、介质及电子设备
CN110826057A (zh) 数据处理路径的分析方法、计算机设备、存储介质
US20080313472A1 (en) Method and apparatus for changing and adding activation keys for functions of digital content without having to change and recompile the digital content
CN114116505A (zh) 代码测试方法及装置
CN109492398A (zh) 一种Android应用程序敏感行为的风险检测方法及装置
Wang et al. Android malware detection model based on lightgbm
CN116302210B (zh) 一种镜像文件的导入方法、装置、电子设备及存储介质
CN112860507A (zh) 分布式链路跟踪系统采样率的控制方法和装置
CN106502707B (zh) 代码生成方法及装置
CN112148709A (zh) 数据迁移方法、系统及存储介质
CN117331838A (zh) 一种渗透测试方法及装置
CN110297625B (zh) 应用的处理方法及装置
CN113342660A (zh) 文件测试方法、装置、系统、电子设备及可读存储介质
CN112631894A (zh) 代码检测方法、装置、存储介质及计算机设备
CN109271756B (zh) 权限控制方法、装置及服务器
CN110275863A (zh) 文件移动方法、装置及存储介质
CN116150768B (zh) Docker容器运行状态下漏洞检测方法、系统及设备
US11940870B2 (en) Method and device for automatically detecting potential failures in mobile applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination