CN104995630B - 用于安全性测试的计算系统和方法 - Google Patents

用于安全性测试的计算系统和方法 Download PDF

Info

Publication number
CN104995630B
CN104995630B CN201280076097.3A CN201280076097A CN104995630B CN 104995630 B CN104995630 B CN 104995630B CN 201280076097 A CN201280076097 A CN 201280076097A CN 104995630 B CN104995630 B CN 104995630B
Authority
CN
China
Prior art keywords
module
weakness
dynamic stain
application
attack
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.)
Active
Application number
CN201280076097.3A
Other languages
English (en)
Other versions
CN104995630A (zh
Inventor
M.马多
山姆·沈吴明
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.)
Weifosi Co., Ltd
Original Assignee
Antite Software 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 Antite Software Co Ltd filed Critical Antite Software Co Ltd
Publication of CN104995630A publication Critical patent/CN104995630A/zh
Application granted granted Critical
Publication of CN104995630B publication Critical patent/CN104995630B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Abstract

本文公开的示例实施例涉及基于动态污点模块来生成扫描策略。使得与应用相关联的动态污点模块启动以用于安全性测试的爬行阶段。从动态污点模块接收报告。动态污点模块被约束。扫描策略是基于报告的。

Description

用于安全性测试的计算系统和方法
背景技术
软件安全性测试用来标识应用(诸如网络应用)中的弱点。针对基于网络软件的传统黑盒安全性测试通过使用安全性测试应用来工作,安全性测试应用通常被称为扫描器,其装作是攻击者。在黑盒方法中,扫描器通过作出超文本传输协议(HTTP)请求并且评估HTTP响应或者其不足来探索被测试应用(AUT)以便发现其中该AUT接受输入的所有URL。其中AUT接受输入的URL可以被称为AUT的攻击面(attack surface)。扫描器随后基于攻击面和可能的弱点类别来创建攻击。扫描器通过评估程序的HTTP响应来应用攻击以诊断弱点的存在或者不存在。在黑盒方法中,扫描器无法洞悉AUT的内部工作。
附图说明
以下的具体描述参考各图,其中:
图1是按照一个示例的能够基于来自动态污点模块的弱点列表来执行安全性攻击的系统的方框图;
图2A和2B是按照各种示例的能够基于由动态污点模块生成的弱点列表来攻击应用的应用安全性扫描器的方框图;
图3是按照一个示例的被测试应用的网络应用接口的图;
图4是按照一个示例的用于基于扫描策略来攻击应用的方法的流程图,其中扫描策略是基于由动态污点模块生成的弱点列表的;以及
图5是按照一个示例的能够基于弱点列表来生成对网络应用的攻击的计算设备的方框图。
具体实施方式
本文描述的实施例提供用于执行对应用(诸如网络应用)进行测试的技术。当一个公司希望知道该公司正投入生产的或者将要投入生产的网络应用有多么安全时,该公司通常使用安全性测试解决方案,诸如穿透测试解决方案(例如,扫描器的使用)。公司可能希望将投入生产的应用的副本用作是被测试的应用(AUT)。在质量保证阶段使用将投入生产的应用的AUT确保了生产中使用的应用已经被测试过。
网络应用安全性扫描器是用于找到应用(诸如网络应用)中的安全性弱点的方法。在一些场景下,爬行器(crawler)首先人工地或者自动地确定攻击面。对一些应用而言,攻击面可以是大的。
随后,扫描器仔细检查攻击面列表,并且对于在攻击面列表中的每个入口(entry),可以执行扩展的大量攻击来确定是否会有弱点发生。从攻击面中确定弱点是有挑战性的,因为扫描器可能对在应用中执行的代码具有有限的能见度(visibility)。由于有限的能见度,所以对每个攻击面入口执行一组攻击。进一步地,在某些场景中,被执行的少数攻击发现了弱点。照此,执行了许多攻击而只有少数攻击是成功的。这导致扫描器测试是耗费时间的。对于大型网站,扫描可能会花费数小时或者甚至数天来完成。用户和顾客可能希望较快速的扫描时间。
关于应用的附加洞察力信息可以帮助扫描器作出更加智能的决策,其关于应该执行什么攻击以及哪些攻击是不值得考虑的。降低攻击的数量直接改进了扫描时间。
相应地,提供方法来通过使用动态污点分析以向扫描器报告可能的弱点类别从而加速扫描过程。随后,扫描器可以基于由动态污点分析所确定的弱点类别来选择性地扫描应用。因此,可以通过将攻击面上的扫描限制为基于动态污点分析所确定的特定弱点来降低将被实行的测试数量。照此,总体的扫描可以比不使用来自动态污点分析的信息要更快。
图1是按照一个示例的能够基于来自动态污点模块的弱点列表来执行安全性攻击的系统的方框图。系统100可以包括应用安全性扫描器102和被测试应用(AUT)104。AUT 104可以在一个或者多个计算设备上实施,诸如服务器(例如,Java2平台、企业版本(J2EE)应用服务器、互联网信息服务器等等)。进一步地,AUT 104可以包括动态污点模块110。
AUT 104可以以任何适当的基于网络的计算机语言(除了别的之外,诸如JAVA或者.NET)来编码。AUT 104可以在适当的软件框架内操作,除了别的以外,诸如Struts、Struts2、ASP.NET MVC、甲骨文应用服务器(Oracle WebLogic)和Spring MVC。软件框架包括提供泛化的功能性的一组共用代码模块,其可以选择性地被用户代码覆盖(override)或者专门化以提供具体的功能性。AUT 104可以被配置用来执行Java虚拟机(JVM)、共用语言运行时间(CLR)和/或用于处理来自扫描器102的请求的其它运行时间中的一个或者多个实例。由软件框架或者运行时间的共用代码模块提供的编程指令可以被称为容器代码。特定于AUT 104的定制的编程指令可以被称为用户代码。
扫描器102可以被认为是可由计算设备执行的程序,该计算设备通过诸如网络接口那样的前端与AUT 104进行通信以便例如通过执行黑盒测试来标识AUT 104的潜在安全性弱点和架构劣势。
AUT 104包括用于使能通过网络在扫描器102和AUT 104之间进行通信的网络接口(未示出)。当AUT 104是可得到的以用于一般使用时,网络接口暴露了AUT 104的攻击面并且是将最终被用来提供对AUT 104的访问的相同接口。通过网络接口在扫描器102和AUT104之间的通信可以通过从扫描器102发布给AUT 104的应用(例如,经由HTTP)请求和从AUT104发布给扫描器102的HTTP响应来实行。针对AUT 104的请求可以被称为应用请求,而从AUT 104接收的响应可以被称为应用响应。由扫描器102所生成的应用请求可以被配置成暴露AUT 104的潜在弱点、响应于由AUT 104所引起的测试等等。
网络可以包括例如公共数据网络,诸如互联网、局域网(LAN)、广域网(WAN)、城域网(MAN)、电缆网络、光纤网络、其组合等等。在某些示例中,无线网络可以包括蜂窝网络、卫星通信、无线LAN等等。
在一种用于对AUT 104实行安全性测试的方法中,扫描器102可以在安全性测试的爬行阶段期间从动态污点模块110接收信息。在一个示例中,动态污点模块110是特殊的运行时间模块,用来在AUT 104的程序执行期间监测安全性弱点。动态污点模块110类似于程序调试器一样工作,其在预定义的程序点(例如,与调试器中的断点相似)处截获程序的执行并且执行安全性检查。动态污点分析发现安全性弱点,其通过以下完成:首先将不受信任的用户输入标记为可能的污点源并且随后跟踪用户输入来确定来自用户输入的任何数据是否可能被用在任何危险的功能调用中。危险的功能调用的示例包括直接数据库查询(例如,直接结构化查询语言(SQL)查询、文件打开、文件删除、向超文本标记语言响应流的写入功能、壳(shell)命令执行、直接可扩展标记语言(XML)查询、用来向日志文件写入错误消息的功能、直接用户目录查询等等。可以通过用特殊库编译AUT 104来将动态污点模块110添加到应用或者通过直接编写或者修改AUT 104的二进制代码来将动态污点模块110添加到应用。
在测试期间,扫描器102可以发送消息来打开120动态污点模块110。AUT 104接收该消息并且确定动态污点模块110是否存在。如果存在动态污点模块110,则扫描器102可以发送消息来使能动态污点模块110和/或AUT 104可以基于扫描器的先前消息来使能它。
扫描器102可以随后执行爬行阶段122。扫描器102例如经由网站接口来爬行AUT104。当爬行发生时,执行动态污点分析。当扫描器102爬行应用时,扫描器102可以一次或者多次地访问一个或者多个入口点(例如,输入字段)。在测试期间,扫描器102可以通过作出HTTP请求和评估HTTP响应或者其不足来探索AUT 104以便发现其中AUT 104接受输入的URL。在一些示例中,扫描器102可以经由通过终端用户所提供的预先记录的网络过程流来获取AUT 104的攻击面或者通过使用安装在AUT 104中的另一个运行时间模块来自动发现攻击面从而获取AUT 104的攻击面。访问相应的入口点可以触发动态污点分析。
动态污点模块110可响应于爬行阶段122(例如在爬行阶段122结束时)向扫描器102提供报告124。报告可以包括在爬行阶段122期间所检测的一列弱点的候选。
在一些示例中,爬行和报告124可以迭代地或者递增地执行。例如,可以接收针对爬行阶段122的一部分的报告。照此,例如,在一个网络应用中,报告可以被拆分成数份,可以发送针对网站所爬行的每一页的报告。进一步地,在其它示例中,可以在整个网站的爬行阶段结束时发送报告。
扫描器102随后可以发送消息来关闭126或者禁用AUT 104的动态污点模块110。在一些示例中,替代于被完全禁用,动态污点模块110被部分地禁用。例如,扫描器102可以使得动态污点模块110禁用污点源的每一个,但除了扫描器102希望依据其来收集数据的攻击向量的污点源。禁用动态污点模块110允许扫描器102来攻击AUT 104,而动态污点模块110的附加代码没有执行。进一步地,因为附加代码没有执行,所以完成测试的时间可以减少。
在128,扫描器102按照从报告中获取的信息来调整和/或生成用于AUT 104的扫描策略。这可以是基于扫描政策的。在一个示例中,扫描器102创建策略来发动与由动态污点模块110预先筛选的可能弱点有关的攻击。照此,测试的总体持续时间可以被缩短,因为其它的测试被过滤掉了。在另一个示例中,在报告124中的一列弱点的候选可以在攻击策略中被提供较高的优先级,以使得更多的、很可能的弱点可以在攻击中被较早地发现。在某些示例中,调整128可以例如在接收部分报告时动态地或者递增地发生。
在130,扫描器102按照攻击策略来攻击AUT 104。如所记录的,攻击策略可以与报告中的一列弱点相联系或者其可以基于报告中的一列弱点而被优先化。照此,无用的或者不可能的攻击可以从攻击130中过滤,因此降低总体安全性扫描花费的时间量。
图2A和2B是按照各种示例的能够基于由动态污点模块所生成的弱点列表来攻击应用的应用安全性扫描器的方框图。应用安全性扫描器200a、200b包括可以被用来基于由动态污点模块所生成的弱点列表来攻击应用的组件。相应的扫描器200a、200b可以是笔记本计算机、台式计算机、服务器、工作站、或者能够访问被测试的应用并且可以执行测试的任何其它计算设备。在一个示例中,应用安全性扫描器200a可以包括通信模块210、爬行器212和调整模块214。在另一个示例中,应用安全性扫描器200b进一步包括攻击模块216、处理器230、存储器232、和/或可以使用输入设备240和/或输出设备242的输入/输出接口234。
通信模块210可以被用来与其它设备(例如,包括被测试应用的设备)通信。被测试的应用也可以包括动态污点模块。在某些示例中,具体地,通信模块210可以被配置用于与动态污点模块通信。在一些示例中,通信模块210可以经由网络接口(例如,无线网络接口、有线网络接口)、经由互联网、经由内联网、经由到托管被测试应用的服务器的直接连接等等来通信。在某些示例中,通信模块210可以连接到网络中的其它设备。
应用安全性扫描器200可以经由通信模块210向被测试的应用发送消息来打开AUT的动态污点模块。照此,应用安全性扫描器200可以使得与AUT相关联的动态污点模块启动该动态污点模块以用于安全性测试的爬行阶段。在一个示例中,启动动态污点模块意味着激活该动态污点模块的功能性从而协助应用安全性扫描器200。安全性测试可以经由应用安全性扫描器200来被协调。
爬行器212可以被用来访问AUT。在一个示例中,爬行器可以在爬行阶段期间获取AUT的攻击入口点。如在下文中进一步详述的,动态污点模块可以打开并且生成提供关于可能的安全性弱点的信息的一份报告或者多份报告。例如,报告可以包括在爬行阶段期间由动态污点模块所确定的AUT的一个或者多个可能弱点的弱点候选列表。
随后,应用安全性扫描器200可以使得对动态污点模块的约束。在一个示例中,使得对动态污点模块的约束可以意味着禁用被使能的功能性。在一些示例中,可以禁用功能性的一部分。在某些示例中,当动态污点模块启动时,爬行阶段可以开始,并且当动态污点模块被约束时,爬行阶段可以结束。在另一个示例中,爬行阶段可以持续与应用安全性扫描器200寻找附加入口点一样长的时间。
调整模块214可以基于报告来生成扫描策略。在一个示例中,扫描策略的生成可以包括基于弱点候选列表来修改针对AUT的另一个扫描策略。例如,扫描策略可以通过使由攻击模块216实行的攻击中的弱点候选列表优先化来确定。去优先化的攻击可以是来自其它扫描策略中的提醒。在另一个示例中,调整模块214可以通过确定聚焦于弱点候选列表的攻击来确定扫描策略。例如,基于由动态污点模块针对相应的入口点所记录的可访问的可能弱点,可以针对每个攻击入口点确定攻击。照此,可以基于由动态污点模块所确定的弱点候选来过滤针对攻击入口点的攻击。
攻击模块216可以基于攻击策略来执行针对AUT的攻击。在一些示例中,攻击模块216使用一个或者多个通信模块210来实施该攻击。
在一个示例中,动态污点模块和/或AUT可以从应用安全性扫描器200接收消息。动态污点模块可以响应于该消息而被启动。进一步地,动态污点模块可以在爬行阶段期间生成报告。报告可以包括经由动态污点分析所确定的一列弱点的候选。报告可以被发送给应用安全性扫描器200。应用安全性扫描器200可以接收报告并且发送第二消息来禁用动态污点模块的至少一部分。动态污点模块可以接收第二条消息并且禁用该动态污点模块和/或禁用该动态污点模块的一部分。禁用动态污点模块的一部分可以包括例如在限制或者禁用与攻击向量无关的部分的同时,使能可能与将由应用安全性扫描器200使用的特定攻击向量有关的动态污点分析。随着攻击向量改变,消息可以被发送和接收从而禁用动态污点模块的其它部分。
如上文讨论的,动态污点模块在爬行阶段期间截获AUT的程序执行从而通过将一个或者多个不受信任的用户输入标记为污点源来确定安全性弱点的候选。对用户输入执行跟踪来确定相应的用户输入是否导致危险的功能调用。如上文记录的,危险的功能调用可以包括以下的至少一个:直接数据库查询、文件打开、文件删除和向超文本标记语言响应流的写入功能。进一步地,弱点的示例包括SQL注入(例如,直接数据库查询)、路径操纵(例如,文件打开、文件删除等等)、跨站点脚本(例如,向HTML响应流的写入功能)、命令注入(例如,壳命令执行)、XPath注入(例如,直接XML查询)、日志伪造(例如,用来向日志文件写入错误消息的功能)、和轻量目录访问协议(LDAP)注入(例如,直接用户目录查询)。
处理器230(诸如适用于指令和/或电子电路的检索和执行的中央处理单元(CPU)或者微处理器)可以被配置成执行本文描述的爬行器或者模块210、214、216中的任一个的功能性。在某些场景中,诸如扫描策略、报告或者弱点候选列表那样的指令和/或其它信息可以被包括在存储器232或者其它存储器中。输入/输出接口234可以附加地由应用安全性扫描器200b来提供。例如,输入设备240(诸如键盘、传感器、触摸界面、鼠标、话筒等等)可以被用来从包围应用安全性扫描器200b的环境接收输入。进一步地,输出设备142(诸如显示器)可以被用来向用户展现信息。输出设备的示例包括扬声器、显示设备、放大器等等。而且,在某些环境中,一些组件可以被用来实施本文描述的其它组件的功能性。
模块210、214、216和/或爬行器212中的每个可以包括例如硬件设备,其包括用于实施本文描述的功能性的电子电路。除此之外或者作为可替换方案,每个模块210、214、216和/或爬行器212可以被实施为被编码在计算设备的机器可读存储介质中并且可由处理器230执行的一系列指令。应该注意的是,在一些实施例中,一些模块被实施为硬件设备,而其它模块被实施为可执行指令。
图3是按照一个示例的被测试应用的网络应用接口的图。这个示例图示出了网络页面300,其可以由AUT提供为针对扫描器的界面。在爬行阶段期间,扫描器可以确定从页面接收用户输入的入口点。在爬行阶段期间,动态污点模块可以针对AUT的给出页面的每个输入字段来确定预先筛选的弱点。动态污点模块可以例如基于网络页面300上的可得到的字段来确定表1的弱点候选列表。
表1——示例弱点候选列表
页面 字段名称 预先筛选的弱点候选
搜索.jsp 搜索 跨站点脚本
登陆.jsp 用户名 SQL注入、LDAP注入
位置.jsp ATM_位置 SQL注入
网络页面300可以包括针对用户名302、密码304、发现位置306、网站搜索308以及附加内容310的字段。用户名302和密码304可以被用于一种类型的登陆,发现位置306可以被用来发现项目或者服务的位置,诸如ATM的位置,而网站搜索308可以被用来搜索应用的网络页面。在一个示例中,弱点由动态污点模块通过以下来确定:标记为针对字段的受污染的不受信任用户输入并且随后跟踪可以被调用的功能。在这个示例中,用户名302字段可能是易受SQL注入和/或LDAP注入攻击的。发现位置306字段可以与对于SQL注入攻击的弱点相关联,而网站搜索308易受跨站点脚本的攻击。动态污点模块可以创建包括弱点候选列表的报告并将其发送给扫描器。扫描器可以随后基于所提供的信息攻击应用,例如基于弱点候选列表使用过滤攻击和/或使攻击优先化。
图4是按照一个示例的用于基于扫描策略来攻击应用的方法的流程图,其中该扫描策略是基于由动态污点模块所生成的弱点列表的。方法400可以使用适当的组件来实施,例如扫描器102、应用安全性扫描器200或者计算设备500。附加地,用于执行方法400的组件可以在多个设备中分散。方法400可以以存储在机器可读存储介质(诸如存储介质520)中的可执行指令的形式和/或以电子电路的形式来实施。
在402,扫描器使得与被测试应用相关联的动态污点模块启动以用于安全性测试的爬行阶段。应用可以使得对动态污点模块的初始化。初始化可以包括确定动态污点模块是否被包括在应用中并且打开动态污点模块的一个或者多个特征。进一步地,初始化可以包括将一个或者多个变量或者设置设定为预定值。扫描器可以使得对应用进行爬行。在爬行阶段,动态污点模块对由扫描器发现的输入执行分析。如上文记录的,分析可以产生包括一列弱点候选列表的报告。应用和/或动态污点模块可以将该报告发送给扫描器。
在404,扫描器从动态污点模块和/或应用接收到报告。该报告可以包括弱点候选列表。随后,在406,扫描器使得对动态污点模块的约束。在一个示例中,约束是通过向应用和/或动态污点模块发送消息而导致的。
在408,扫描器可以基于报告的弱点候选列表来生成扫描策略。扫描策略也可以是基于另一个扫描策略的,例如预先做的、默认的、或者动态创建的扫描策略。在一个示例中,扫描策略包括使弱点候选列表针对应用上的攻击优先化。在另一个示例中,攻击策略可以由与弱点候选列表上的弱点有关的攻击组成。在其它示例中,攻击策略可以包括与弱点有关的攻击。在410,扫描器可以在被测试的应用上实施攻击策略。
采用上文的方法,应用的扫描时间可以被减少,而不会丢失安全性弱点发现。进一步地,在某些场景中,将动态污点模块与应用安全性扫描器进行整合可以帮助扫描器发现不能由扫描器单独检测到的或者可能很难被扫描器单独检测到的安全性弱点,诸如持续跨站点脚本(PXSS)或者盲(Blind)SQL注入。在一些示例中,弱点的候选可以被列为弱点。例如,替代于将某些弱点报告为弱点的候选,动态污点模块可以直接将由动态污点模块所报告的PXSS或者盲SQL注入标记为弱点。而且,扫描器可以将在弱点候选列表上的这样的弱点读取为弱点。
图5是按照一个示例的能够基于弱点列表来生成对网络应用的攻击的计算设备的方框图。计算设备500包括例如处理器510和机器可读存储介质520,其包括指令522、524、526以用于基于弱点候选列表来生成对网络应用的攻击。计算设备500可以是例如笔记本计算机、服务器、工作站、台式计算机或者任何其它计算设备。
处理器510可以是至少一个中央处理单元(CPU)、至少一个基于半导体的微处理器、至少一个图形处理单元(GPU)、适用于对存储在机器可读存储介质520中的指令进行检索和执行的其它硬件设备、或者其组合。例如,处理器510可以包括芯片上的多个核、包括跨多个芯片的多个核、跨多个设备的多个核(例如,如果计算设备500包括多个节点设备的话)或者其组合。处理器510可以提取、解码、和执行指令522、524、526来实施方法400。作为可替换方案或者除了检索和执行指令之外,处理器510可以包括至少一个集成电路(IC)、其它控制逻辑、其它电子电路、或者其包括多个用于执行指令522、524、526的功能性的电子组件的组合。
机器可读存储介质520可以是任何电、磁、光、或者含有或者存储可执行指令的其它物理存储设备。因此,机器可读存储介质可以是例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储驱动器、光盘只读存储器(CD-ROM)等等。照此,机器可读存储介质可以是非临时性的。如在本文中详细描述的,机器可读存储介质520可以以一系列可执行指令来编码,以用于实施方法400。在某些示例中,另一个计算设备可以被用来实施被测试的应用。
通信指令522可以被用来控制通信硬件来发送消息以使得与应用530相关联的动态污点模块启动以用于安全性测试的爬行阶段。如上文记录的,动态污点模块可以生成一列弱点的候选,其可以被用来针对扫描生成攻击策略。在爬行阶段,计算设备可以获取应用的攻击入口点。
通信指令522也可以被执行用来接收来自动态污点模块的报告。报告可以包括弱点候选列表。如上文记录的,弱点候选列表可以包括攻击入口点的潜在弱点,攻击入口点通过以下来确定:将一个或者多个不受信任的用户输入标记为污点源并且跟踪用户输入来确定相应的用户输入是否导致危险的功能调用。危险的功能调用可以基于对代码的分析和/或基于预定的列表来确定。
计算设备500随后生成消息来使得对动态污点模块进行约束。消息可以被发送给应用530来关闭动态污点模块。如上文记录的,约束可以通过限制由应用530和/或执行应用530的计算设备所需要的执行来加速安全性测试。
策略指令524可以被执行以基于弱点候选列表来生成扫描策略。如上文记录的,在一个示例中,扫描策略可以针对弱点候选列表来使攻击优先化。同样,在另一个示例中,扫描策略可以将不与弱点候选列表相关联的攻击过滤掉。采用两种方法,可以由计算设备500通过执行攻击指令526(通过使用相应的扫描策略)来执行可能的攻击。通过限制对应用的攻击或者使其优先化,可以使用较少的时间来获取成功攻击的结果,因为不可能的攻击不被使用。

Claims (15)

1.一种用于安全性测试的计算系统,包括:
应用安全性扫描器,用于:
使得与应用相关联的动态污点模块经由通信模块启动以用于安全性测试的爬行阶段,
从所述动态污点模块接收报告,
使得对所述动态污点模块进行约束,和
基于所述报告来生成扫描策略;
其中使得对动态污点模块进行约束意味着禁用动态污点模块的功能性;并且其中所述约束是通过向动态污点模块发送消息而导致的;
其中,所述报告包括经由动态污点分析所确定的一列弱点的候选。
2.如权利要求1所述的计算系统,进一步包括:
所述动态污点模块,用于:
从所述应用安全性扫描器接收第一消息来启动动态污点模块;
响应于所述第一消息来启动所述动态污点模块;
在爬行阶段期间生成报告;
使得所述报告发送到所述应用安全性扫描器;
接收第二消息来禁用所述动态污点模块;并且
基于所述第二消息来禁用所述动态污点模块的至少一部分。
3.如权利要求2所述的计算系统,其中所述动态污点模块在爬行阶段期间截获所述应用的程序执行以通过将一个或者多个不受信任的用户输入标记为污点源并且跟踪所述用户输入以确定相应的用户输入是否导致危险的功能调用来确定安全性弱点的候选。
4.如权利要求3所述的计算系统,其中所述危险的功能调用包括以下的至少一个:直接数据库查询、文件打开、文件删除和向超文本标记语言响应流的写入功能。
5.如权利要求1所述的计算系统,其中启动意味着激活所述动态污点模块的功能性以便协助所述应用安全性扫描器。
6.如权利要求1所述的计算系统,进一步包括:
爬行器,用来在爬行阶段期间获取所述应用的攻击入口点,
其中所述报告包括在爬行阶段期间由所述动态污点模块确定的所述应用的一个或者多个弱点候选的弱点候选列表。
7.如权利要求6所述的计算系统,进一步包括;
攻击模块;和
调整模块,用来通过使所述弱点候选列表在由所述攻击模块对所述应用实行的攻击中优先化来确定扫描策略。
8.如权利要求6所述的计算系统,进一步包括:
攻击模块;和
调整模块,用来通过确定聚焦于弱点候选列表的攻击来确定扫描策略,
其中所述攻击模块基于扫描策略来攻击所述应用。
9.一种非临时性机器可读存储介质,其存储指令,如果所述指令被计算设备的至少一个处理器执行,则促使所述设备:
使得与应用相关联的动态污点模块启动以用于安全性测试的爬行阶段;
从包括弱点候选列表的所述动态污点模块接收报告;
使得对所述动态污点模块进行约束;和
基于所述弱点候选列表来生成扫描策略;
其中使得对动态污点模块进行约束意味着禁用动态污点模块的功能性;并且其中所述约束是通过向动态污点模块发送消息而导致的;
其中,所述报告包括经由动态污点分析所确定的一列弱点的候选。
10.如权利要求9所述的非临时性机器可读存储介质,其中所述弱点候选列表包括通过将一个或者多个不受信任的用户输入标记为污点源并且跟踪所述用户输入来确定相应的用户输入是否导致危险的功能调用来确定的弱点的候选。
11.如权利要求9所述的非临时性机器可读存储介质,进一步包括指令,如果所述指令被至少一个处理器执行,则促使计算设备:
在爬行阶段期间获取所述应用的攻击入口点;
通过使所述弱点候选列表针对应用上的攻击优先化来确定扫描策略;和
基于所述扫描策略来攻击所述应用。
12.如权利要求9所述的非临时性机器可读存储介质,进一步包括指令,如果所述指令被至少一个处理器执行,则促使计算设备:
在爬行阶段期间获取所述应用的攻击入口点;
通过确定聚焦于所述弱点候选列表的攻击来确定扫描策略;和
基于所述扫描策略来攻击所述应用。
13.一种用于安全性测试的方法,包括:
使得与应用相关联的动态污点模块启动以用于安全性测试的爬行阶段;
从包括弱点候选列表的所述动态污点模块接收报告;
使得对所述动态污点模块进行约束;
基于所述弱点候选列表来生成扫描策略;和
基于所述扫描策略来攻击所述应用;
其中使得对动态污点模块进行约束意味着禁用动态污点模块的功能性;并且其中所述约束是通过向动态污点模块发送消息而导致的;
其中,所述报告包括经由动态污点分析所确定的一列弱点的候选。
14.如权利要求13所述的方法,其中基于所述弱点候选列表将所述攻击优先化。
15.如权利要求13所述的方法,进一步包括:其中所述攻击由与所述弱点候选列表上的弱点有关的攻击组成。
CN201280076097.3A 2012-08-29 2012-08-29 用于安全性测试的计算系统和方法 Active CN104995630B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/052772 WO2014035386A1 (en) 2012-08-29 2012-08-29 Security scan based on dynamic taint

Publications (2)

Publication Number Publication Date
CN104995630A CN104995630A (zh) 2015-10-21
CN104995630B true CN104995630B (zh) 2018-10-12

Family

ID=50184025

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280076097.3A Active CN104995630B (zh) 2012-08-29 2012-08-29 用于安全性测试的计算系统和方法

Country Status (7)

Country Link
US (1) US9558355B2 (zh)
EP (1) EP2891100B1 (zh)
JP (1) JP5982575B2 (zh)
KR (1) KR20150048778A (zh)
CN (1) CN104995630B (zh)
BR (1) BR112015004035A2 (zh)
WO (1) WO2014035386A1 (zh)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9317693B2 (en) * 2012-10-22 2016-04-19 Rapid7, Llc Systems and methods for advanced dynamic analysis scanning
US10237296B2 (en) * 2014-01-27 2019-03-19 Cronus Cyber Technologies Ltd Automated penetration testing device, method and system
US10515219B2 (en) 2014-07-18 2019-12-24 Micro Focus Llc Determining terms for security test
US9781145B2 (en) * 2014-11-25 2017-10-03 International Business Machines Corporation Persistent cross-site scripting vulnerability detection
US10110622B2 (en) 2015-02-13 2018-10-23 Microsoft Technology Licensing, Llc Security scanner
US9998482B2 (en) * 2015-09-18 2018-06-12 International Business Machines Corporation Automated network interface attack response
US9940479B2 (en) * 2015-10-20 2018-04-10 International Business Machines Corporation Identifying and tracking sensitive data
CN105808981B (zh) * 2016-03-10 2018-06-19 西北大学 反污点分析软件保护方法
US11449638B2 (en) * 2016-03-18 2022-09-20 Micro Focus Llc Assisting a scanning session
US10417441B2 (en) * 2016-04-29 2019-09-17 International Business Machines Corporation Effectively validating dynamic database queries through database activity monitoring
CN105827644A (zh) * 2016-05-17 2016-08-03 努比亚技术有限公司 一种实现密码信息处理的方法及终端
US10122750B2 (en) 2017-01-30 2018-11-06 XM Cyber Ltd Setting-up penetration testing campaigns
US10068095B1 (en) * 2017-05-15 2018-09-04 XM Cyber Ltd Systems and methods for selecting a termination rule for a penetration testing campaign
US10686822B2 (en) 2017-01-30 2020-06-16 Xm Cyber Ltd. Systems and methods for selecting a lateral movement strategy for a penetration testing campaign
US10367846B2 (en) 2017-11-15 2019-07-30 Xm Cyber Ltd. Selectively choosing between actual-attack and simulation/evaluation for validating a vulnerability of a network node during execution of a penetration testing campaign
WO2018138608A2 (en) * 2017-01-30 2018-08-02 XM Ltd. Penetration testing of a networked system
US10257220B2 (en) 2017-01-30 2019-04-09 Xm Cyber Ltd. Verifying success of compromising a network node during penetration testing of a networked system
US10581802B2 (en) 2017-03-16 2020-03-03 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for advertising network security capabilities
CN107133180B (zh) * 2017-06-07 2021-03-23 腾讯科技(深圳)有限公司 动态页面的测试方法、测试装置及存储介质
US10534917B2 (en) 2017-06-20 2020-01-14 Xm Cyber Ltd. Testing for risk of macro vulnerability
US10574684B2 (en) 2017-07-09 2020-02-25 Xm Cyber Ltd. Locally detecting phishing weakness
US10783239B2 (en) * 2017-08-01 2020-09-22 Pc Matic, Inc. System, method, and apparatus for computer security
US10412112B2 (en) 2017-08-31 2019-09-10 Xm Cyber Ltd. Time-tagged pre-defined scenarios for penetration testing
US10447721B2 (en) 2017-09-13 2019-10-15 Xm Cyber Ltd. Systems and methods for using multiple lateral movement strategies in penetration testing
JP6928265B2 (ja) * 2018-04-04 2021-09-01 日本電信電話株式会社 情報処理装置及び情報処理方法
US10440044B1 (en) 2018-04-08 2019-10-08 Xm Cyber Ltd. Identifying communicating network nodes in the same local network
US10382473B1 (en) 2018-09-12 2019-08-13 Xm Cyber Ltd. Systems and methods for determining optimal remediation recommendations in penetration testing
US10469521B1 (en) 2018-11-04 2019-11-05 Xm Cyber Ltd. Using information about exportable data in penetration testing
US10574687B1 (en) 2018-12-13 2020-02-25 Xm Cyber Ltd. Systems and methods for dynamic removal of agents from nodes of penetration testing systems
US10462177B1 (en) 2019-02-06 2019-10-29 Xm Cyber Ltd. Taking privilege escalation into account in penetration testing campaigns
US11283827B2 (en) 2019-02-28 2022-03-22 Xm Cyber Ltd. Lateral movement strategy during penetration testing of a networked system
US11206281B2 (en) 2019-05-08 2021-12-21 Xm Cyber Ltd. Validating the use of user credentials in a penetration testing campaign
JP6847460B2 (ja) * 2019-05-27 2021-03-24 可立可資安股▲分▼有限公司 情報セキュリティ攻撃および防御計画を管理するシステム
US11640469B2 (en) 2019-06-21 2023-05-02 Ventech Solutions, Inc. Method and system for cloud-based software security vulnerability diagnostic assessment
US10637883B1 (en) 2019-07-04 2020-04-28 Xm Cyber Ltd. Systems and methods for determining optimal remediation recommendations in penetration testing
US11544385B2 (en) 2019-07-29 2023-01-03 Ventech Solutions, Inc. Method and system for dynamic testing with diagnostic assessment of software security vulnerability
US10880326B1 (en) 2019-08-01 2020-12-29 Xm Cyber Ltd. Systems and methods for determining an opportunity for node poisoning in a penetration testing campaign, based on actual network traffic
US11533329B2 (en) 2019-09-27 2022-12-20 Keysight Technologies, Inc. Methods, systems and computer readable media for threat simulation and threat mitigation recommendations
US11005878B1 (en) 2019-11-07 2021-05-11 Xm Cyber Ltd. Cooperation between reconnaissance agents in penetration testing campaigns
US11575700B2 (en) 2020-01-27 2023-02-07 Xm Cyber Ltd. Systems and methods for displaying an attack vector available to an attacker of a networked system
US11221855B2 (en) * 2020-03-06 2022-01-11 International Business Machines Corporation Transformation of an enterprise application into a cloud native application
US11582256B2 (en) 2020-04-06 2023-02-14 Xm Cyber Ltd. Determining multiple ways for compromising a network node in a penetration testing campaign
CN111859375B (zh) * 2020-07-20 2023-08-29 百度在线网络技术(北京)有限公司 漏洞检测方法、装置、电子设备及存储介质
CN112199274B (zh) * 2020-09-18 2022-05-03 北京大学 基于V8引擎的JavaScript动态污点跟踪方法及电子装置
CN112256580B (zh) * 2020-10-23 2024-02-13 济南浪潮数据技术有限公司 一种代码扫描方法、装置、设备及存储介质
CN113220525A (zh) * 2021-04-28 2021-08-06 杭州孝道科技有限公司 一种跨应用的动态污点跟踪方法
US11874932B2 (en) 2021-06-30 2024-01-16 International Business Machines Corporation Managing application security vulnerabilities
CN113886842B (zh) * 2021-12-02 2022-03-08 北京华云安信息技术有限公司 基于测试的动态智能调度方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101616151A (zh) * 2009-07-31 2009-12-30 中国科学院软件研究所 一种自动化的网络攻击特征生成方法
CN102104601A (zh) * 2011-01-14 2011-06-22 无锡市同威科技有限公司 一种基于渗透技术的web漏洞扫描方法和漏洞扫描器

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8091117B2 (en) 2003-02-14 2012-01-03 Preventsys, Inc. System and method for interfacing with heterogeneous network data gathering tools
US20040193918A1 (en) 2003-03-28 2004-09-30 Kenneth Green Apparatus and method for network vulnerability detection and compliance assessment
US20050273859A1 (en) 2004-06-04 2005-12-08 Brian Chess Apparatus and method for testing secure software
US20070240225A1 (en) * 2006-04-10 2007-10-11 Shrader Theodore J L Architecture for automatic HTTPS boundary identification
US8656495B2 (en) 2006-11-17 2014-02-18 Hewlett-Packard Development Company, L.P. Web application assessment based on intelligent generation of attack strings
US20080184208A1 (en) * 2007-01-30 2008-07-31 Sreedhar Vugranam C Method and apparatus for detecting vulnerabilities and bugs in software applications
US8613080B2 (en) 2007-02-16 2013-12-17 Veracode, Inc. Assessment and analysis of software security flaws in virtual machines
US9069967B2 (en) 2007-02-16 2015-06-30 Veracode, Inc. Assessment and analysis of software security flaws
US8321840B2 (en) 2007-12-27 2012-11-27 Intel Corporation Software flow tracking using multiple threads
US8650651B2 (en) * 2008-02-08 2014-02-11 International Business Machines Corporation Method and apparatus for security assessment of a computing platform
US20090282480A1 (en) 2008-05-08 2009-11-12 Edward Lee Apparatus and Method for Monitoring Program Invariants to Identify Security Anomalies
US8713687B2 (en) 2008-12-17 2014-04-29 Symantec Corporation Methods and systems for enabling community-tested security features for legacy applications
US8141158B2 (en) * 2008-12-31 2012-03-20 International Business Machines Corporation Measuring coverage of application inputs for advanced web application security testing
US8365290B2 (en) * 2009-05-15 2013-01-29 Frederick Young Web application vulnerability scanner
US8584246B2 (en) * 2009-10-13 2013-11-12 International Business Machines Corporation Eliminating false reports of security vulnerabilities when testing computer software
CN102081719B (zh) 2009-12-01 2015-05-20 南京翰海源信息技术有限公司 基于动态污染传播的软件安全测试系统及方法
US8615804B2 (en) * 2010-02-18 2013-12-24 Polytechnic Institute Of New York University Complementary character encoding for preventing input injection in web applications
US9747187B2 (en) * 2010-10-27 2017-08-29 International Business Machines Corporation Simulating black box test results using information from white box testing
CA2777434C (en) * 2012-05-18 2019-09-10 Ibm Canada Limited - Ibm Canada Limitee Verifying application security vulnerabilities

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101616151A (zh) * 2009-07-31 2009-12-30 中国科学院软件研究所 一种自动化的网络攻击特征生成方法
CN102104601A (zh) * 2011-01-14 2011-06-22 无锡市同威科技有限公司 一种基于渗透技术的web漏洞扫描方法和漏洞扫描器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Through the Looking-Glass";AppSecInsider;《IBM Rational Application Security Insider》;20111117;第1-4页 *

Also Published As

Publication number Publication date
CN104995630A (zh) 2015-10-21
EP2891100A1 (en) 2015-07-08
KR20150048778A (ko) 2015-05-07
JP2015534155A (ja) 2015-11-26
BR112015004035A2 (pt) 2017-07-04
US20150248559A1 (en) 2015-09-03
JP5982575B2 (ja) 2016-08-31
EP2891100B1 (en) 2017-05-24
WO2014035386A1 (en) 2014-03-06
US9558355B2 (en) 2017-01-31
EP2891100A4 (en) 2016-03-16

Similar Documents

Publication Publication Date Title
CN104995630B (zh) 用于安全性测试的计算系统和方法
US9736177B2 (en) Automated security testing
CN101788982B (zh) 在未修改浏览器上保护Web应用的跨域交互的方法和系统
US8800042B2 (en) Secure web application development and execution environment
US6996845B1 (en) Internet security analysis system and process
US9152795B2 (en) Security vulnerability correction
US8640233B2 (en) Environmental imaging
CN110221977A (zh) 基于ai的网站渗透测试方法
CN107688743A (zh) 一种恶意程序的检测分析方法及系统
CN113342639B (zh) 小程序安全风险评估方法和电子设备
Nagpal et al. SECSIX: security engine for CSRF, SQL injection and XSS attacks
Roy et al. Generating phishing attacks using chatgpt
Li et al. The application of fuzzing in web software security vulnerabilities test
CN113190839A (zh) 一种基于SQL注入的web攻击防护方法及系统
CN110851838A (zh) 一种基于互联网的云测试系统及安全测试方法
CN113190838A (zh) 一种基于表达式的web攻击行为检测方法及系统
Noseevich et al. Detecting insufficient access control in web applications
Long et al. An efficient algorithm and tool for detecting dangerous website vulnerabilities
Dharam et al. Runtime monitoring technique to handle tautology based SQL injection attacks
CN112287349A (zh) 安全漏洞检测方法及服务端
CN115857912A (zh) 一种nasl插件的生成方法及系统
Erturk et al. Web Vulnerability Scanners: A Case Study
Sharma A Study of Vulnerability Scanners for Detecting SQL Injection and XSS Attack in Websites
tul Hassan Analysis of vulnerabilities in system by penetration testing
Dmytro et al. MODERN CLOUD NATIVE INFRASTRUCTURE PROTECTION TOOLS

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20161230

Address after: American Texas

Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: American Texas

Applicant before: Hewlett-Packard Development Company, L.P.

TA01 Transfer of patent application right

Effective date of registration: 20180613

Address after: American California

Applicant after: Antite Software Co., Ltd.

Address before: American Texas

Applicant before: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
CP03 "change of name, title or address"

Address after: Utah, USA

Patentee after: Weifosi Co., Ltd

Address before: California, USA

Patentee before: Antiy Software Co.,Ltd.

CP03 "change of name, title or address"