审计渗透测试方法、测试节点服务器、管理服务器及系统
技术领域
本发明涉及软件渗透测试技术领域,具体涉及一种审计渗透测试方法、测试节点服务器、管理服务器及系统。
背景技术
众测与渗透测试是企业对网站进行风险评估及发现网站漏洞的常用方式,通过专业人员以黑客的方式进行模拟攻击来执行。出于专业性考虑,需求方通常会通过购买专职信息安全公司的服务进行测试。由于此类测试通常会涉及到敏感信息,包括公司秘密、客户隐私以及对系统可用性与完整性造成的潜在影响,需求方对测试会产生多种方面顾虑。因此对网站进行众测或渗透测试过程中受测方需要对测试过程进行监管。现有测试方案为虚拟专用网络(VPN)方案,所有测试人员通过由测试组织方提供的VPN进入测试环境中,通过对VPN数据包的记录实现对测试过程的监管。
现有方法中通过VPN受测目标时,测试者访问与接收的内容均为原始目标,因此无法阻止测试者获取受测方的敏感数据,也就无法隐藏受测目标身份,且若受测方因某些原因想要阻止测试者测试时,只能通过阻止访问干预测试人员。
发明内容
有鉴于此,本发明的目的在于克服现有技术的不足,提供一种审计渗透测试方法、测试节点服务器、管理服务器及系统。
为实现以上目的,本发明采用如下技术方案:
一种审计渗透测试方法,应用于测试节点服务器,所述方法包括:
接收测试者向预设的虚拟域名发出的测试请求;
根据所述测试请求对所述测试者进行身份及合规性验证;
若验证通过,发送所述测试请求至所述虚拟域名对应的真实的受测目标并接收所述受测目标的测试反馈信息;
对所述测试反馈信息进行脱敏隐藏变形处理,得到变形后测试反馈信息;
发送所述变形后测试反馈信息至所述测试者。
可选的,所述根据所述测试请求对所述测试者进行身份及合规性验证,包括:
对所述测试请求进行解析,得到测试者身份信息、受测目标、请求频率和测试提交内容;
根据预设的权限规则判断所述测试者身份信息是否有权访问所述受测目标;
若有权访问所述受测目标,根据预设的合规规则对所述请求频率和所述测试提交内容进行合规性检测。
可选的,所述对所述测试反馈信息进行脱敏隐藏变形处理,得到变形后测试反馈信息,包括:
根据预设敏感标准判断所述测试反馈信息是否包含敏感信息;
若所述测试反馈信息包含敏感信息,利用预设的脱敏规则对所述测试反馈信息进行脱敏处理,得到脱敏后反馈信息;
利用预设的信息隐藏规则对所述脱敏后反馈信息进行数据隐藏处理,得到所述变形后测试反馈信息。
可选的,还包括:
根据所述测试请求生成日志;
根据预设标记规则对所述日志设置标签及请求属性;
发送带有标签及属性的所述日志至数据整理服务器进行存储。
一种审计渗透测试方法,应用于管理服务器,所述方法包括:
接收管理员的操作指令,根据所述操作指令判断是否执行受测目标创建操作;
若是,创建受测目标;
生成虚拟域名并发送至测试节点服务器。
可选的,还包括:
根据所述操作指令判断是否进行审计规则添加操作;
若是,接收所述管理员输入的审计规则,并发送至所述测试节点服务器;所述审计规则包括:权限规则和合规规则。
可选的,还包括:
接收所述管理员发送的数据查看请求指令;
根据所述数据查看请求指令调取数据整理服务器内存储的日志;所述日志包括标签及请求属性。
一种测试节点服务器,包括:
第一处理器,以及与所述第一处理器相连接的第一存储器;
所述第一存储器用于存储计算机程序,所述计算机程序至少用于执行上述所述的审计渗透测试方法;
所述第一处理器用于调用并执行所述第一存储器中的所述计算机程序。
一种管理服务器,包括:
第二处理器,以及与所述第二处理器相连接的第二存储器;
所述第二存储器用于存储计算机程序,所述计算机程序至少用于执行上述所述的审计渗透测试方法;
所述第二处理器用于调用并执行所述第二存储器中的所述计算机程序。
一种审计渗透测试系统,包括:
如上述所述的测试节点服务器,与所述测试节点服务器通信连接的如上述所述的管理服务器,和分别与测试节点服务器、所述管理服务器通信连接的数据整理服务器;
所述数据整理服务器用于接收所述测试节点服务器发送的日志,进行日志存储,并根据所述管理服务器的日志调取指令发送所述日志至所述管理服务器。
本申请提供的技术方案可以包括以下有益效果:
本申请中公开了一种审计渗透测试方法,该方法应用于测试节点服务器,具体包括:接收测试者向预设的虚拟域名发出的测试请求;根据测试请求对测试者进行身份及合规性验证;若验证通过,发送测试请求至虚拟域名对应的真实的受测目标并接收受测目标的测试反馈信息;对测试反馈信息进行脱敏隐藏变形处理,得到变形后测试反馈信息;发送变形后测试反馈信息至测试者。上述方法中测试者向虚拟域名发送测试请求,利用反向代理实现众测或渗透测试过程,同时还对测试过程中的测试反馈信息进行脱敏隐藏处理,能够达到将网站A伪装成网站B的效果,使测试人员无法获知受测目标的真实身份,极大地保护了受测方的隐私性及信息安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的审计渗透测试方法的流程图;
图2是本发明另一实施例提供的审计渗透测试方法的流程图;
图3是本发明一实施例提供的测试节点服务器的结构图;
图4是本发明一实施例提供的管理服务器的结构图;
图5是本发明一实施例提供的审计渗透测试系统的结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
随着众测与渗透测试的市场需求增多,对测试的功能需要也日益严格。现有的VPN方案中所有测试人员通过由测试组织方提供的VPN进入测试环境中,通过对VPN数据包的记录实现对测试过程的监管。
数据包是通过网络传递信息的最小单位,通常所说的对网站的访问是通过用户向网站所在服务器发送HTTP请求实现的,服务器收到请求后将请求的内容通过数据包响应给用户,数据包的内容通过浏览器转化为用户可阅读的内容。前述请求与响应的数据包均为在IP数据包基础上再次封装的应用层数据包,其中请求数据包含有用户提交的内容(如用户名、密码)、请求目标的位置信息(IP地址、HOST)等内容,测试行为通常通过修改请求数据包中的内容造成服务器执行非计划的行为达到攻击目的(获取未授权信息、篡改信息、破坏系统可用性)。现有渗透测试过程中的VPN技术记录的是IP包,并未按照应用层进行解析,虽然包括应用层数据包的全部信息,但是未对其进行结构化处理。同时VPN对访问频率的控制基于对账号发起的所有请求的统计,以账号为单位进行频次限制。
现通过实施例详细介绍本申请中的渗透测试方法,下述实施例公开了一种审计渗透测试方法,该实施例中的方法应用于测试节点服务器中,具体情况如下:
图1是本发明一实施例提供的审计渗透测试方法的流程图。参见图1,一种审计渗透测试方法,包括:
步骤101:接收测试者向预设的虚拟域名发出的测试请求。具体的,虚拟域名负责解析并将我们的节点IP告知测试者进行测试时使用的浏览器,该浏览器向测试节点的IP发送请求。虚拟域名是由管理服务器端生成的,然后提交给DNS解析服务器生效。
步骤102:根据所述测试请求对所述测试者进行身份及合规性验证。具体的:对测试请求进行解析,得到测试者身份信息、受测目标、请求频率和测试提交内容;根据预设的权限规则判断测试者身份信息是否有权访问受测目标;若有权访问受测目标,根据预设的合规规则对请求频率和测试提交内容进行合规性检测。
其中,预设的权限规则由管理员通过管理服务器进行预先设定,例如只允许有身份密码的测试人员可以进行测试,此处的身份密码可以为管理员预先提供,也可以为测试人员自身设定,但此身份密码需是只有测试人员和受测方可知。当然,此处的权限规则的具体形式并不固定唯一,可根据测试方的实际需求设定。
更详细地,此实施例中的合规规则包括频率标准和内容标准。频率标准即为进行测试请求的频率,内容标准即为测试过程中的测试内容的标准。本实施例中在进行频率判断时,可根据接口的访问频率来限制测试人员的测试请求。例如:能够进行渗透测试的端口A在一个小时内已经被访问过10次,而受测方设定的访问频率为一小时11次,此时端口A则只会允许测试人员再访问一次。同样的,内容标准对应的是测试人员发生的测试提交内容的判定,例如:测试人员进行测试时,向测试节点服务器发送的测试提交内容包含调取公司B数据,此时经与预设的内容标准进行比较,确定B数据的内容属于受测方设定的违规数据,此时则会驳回此次测试人员的测试请求。需要注意的是,此实施例中的合规规则的具体含义并不局限于此处提到的频率标准和内容标准,可以包含多种其他方向的标准规则,具体视受测方的需求而定。更进一步地,此处的频率标准和内容标准的具体形式也不固定,不局限于此处所列举的实现方式,具体的标准设定可根据行业不同,受测方需求不同进行相应调整。
本实施例中是通过解析Http协议来工作,Http是应用层协议,例如测试请求中的数据,如post data、query string、请求的地址等,这些数据都是应用层的内容。
步骤103:若验证通过,发送所述测试请求至所述虚拟域名对应的真实的受测目标并接收所述受测目标的测试反馈信息。当对测试人员的测试请求进行验证后,测试节点服务器将此测试请求发送到真实的受测目标上,并等待受测目标发送的反馈信息。
步骤104:对所述测试反馈信息进行脱敏隐藏变形处理,得到变形后测试反馈信息。接收到受测目标发送的反馈信息后,对反馈信息进行变形处理,具体如:根据预设敏感标准判断所述测试反馈信息是否包含敏感信息;若所述测试反馈信息包含敏感信息,利用预设的脱敏规则对所述测试反馈信息进行脱敏处理,得到脱敏后反馈信息;利用预设的信息隐藏规则对所述脱敏后反馈信息进行数据隐藏处理,得到所述变形后测试反馈信息。此处的数据变形使可通过定制规则替换原响应请求中的HTML结构与内容,只保留管理员计划保留的部分,使受测目标看上去与原目标存在巨大差异,达成隐藏身份的效果。
此处的预设敏感规则为受测方设定,可根据受测方的公司性质和需求设定敏感数据。同样的信息隐藏规则也由受测方设定,可以指定生效地址。例如将反馈信息中的哪些数据进行隐藏,进行哪种形式的隐藏。需要注意的是,此处的预设敏感规则和信息隐藏规则均不固定唯一,可根据受测方的改变该改变,具体视情况而定。信息隐藏的目的是更改网页上的代码使其外观发生变化,数据脱敏的目的是对局部数据做修改,只要是能够实现此功能即可。
步骤105:发送所述变形后测试反馈信息至所述测试者。
上述方法中通过虚拟域名隐藏真实的受测目标,保护了受测方的身份信息。同时对测试过程中的反馈信息进行了脱敏隐藏处理,使受测目标看上去与真实受测目标存在巨大差异,达到了隐藏身份的效果。同时本实施例中数据包按照网站应用层协议解析规则进行结构化处理,能够支持针对应用层具体功能字段的处理。
在上述实施例的基础上,更进一步地,本申请渗透测试方法还包括:根据所述测试请求生成日志;根据预设标记规则对所述日志设置标签及请求属性;发送带有标签及属性的所述日志至数据整理服务器进行存储。此处可将测试请求保存到数据整理服务器中,以供后续管理员或其他人员进行查阅。
为了更全面的介绍本申请中的审计渗透测试过程,在上述实施例的基础上还提供另外一种实施例,该实施例中的审计渗透测试方法应用于管理服务器,具体情况如下:
图2是本发明另一实施例提供的审计渗透测试方法的流程图。参见图2,一种审计渗透测试方法,包括:
步骤201:接收管理员的操作指令,根据操作指令判断是否执行受测目标创建操作;
步骤202:若是,创建受测目标;
步骤203:生成虚拟域名并发送至测试节点服务器。受测目标创建完成后生成虚拟域名,此虚拟域名由域名系统(Domain Name System,DNS)指向测试节点,是面向测试者的测试目标,测试节点会将测试者的请求转发到此虚拟域名所对应的真实受测目标。
更进一步地,在上述实施例的基础上,本申请中还公开了:根据操作指令判断是否进行审计规则添加操作;若是,接收管理员输入的审计规则,并发送至测试节点服务器;审计规则包括:权限规则和合规规则。
接收管理员发送的数据查看请求指令;根据数据查看请求指令调取数据整理服务器内存储的日志;日志包括标签及请求属性。
上述实施例中通过管理服务器创建受测目标,并生成虚拟域名,实现了隐藏受测目标的效果,保护了受测方的隐私。
为了更全面地介绍实现本发明实施例的硬件环境,对应于本发明实施例提供的一种审计渗透测试方法,本发明实施例还提供一种测试节点服务器。请参见下文实施例。
图3是本发明一实施例提供的测试节点服务器的结构图。参见图3,一种测试节点服务器,包括:第一处理器301,以及与所述第一处理器相连接的第一存储器302,
所述第一存储器302用于存储计算机程序,所述计算机程序至少用于执行上述应用在测试节点服务器的方法实施例所述的审计渗透测试方法;
所述第一处理器301用于调用并执行所述第一存储器302中的所述计算机程序。
为了更全面地介绍本申请中硬件系统,现提供一种服务器的实施例,具体情况如下:
图4是本发明一实施例提供的管理服务器的结构图。参见图4,一种管理服务器,包括:第二处理器401,以及与所述第二处理器401相连接的第二存储器402,
所述第二存储器402用于存储计算机程序,所述计算机程序至少用于执行上述应用在管理服务器的方法实施例所述的审计渗透测试方法;
所述第二处理器401用于调用并执行所述第二存储器402中的所述计算机程序。
上述实施例中通过生成虚拟域名,构建虚拟目标,同时将反馈信息进行脱敏隐藏处理,在不干扰测试的情况下达到避免信息泄漏及隐藏受测目标的作用。
为了更详细地介绍本申请中的硬件系统,现提供一种渗透测试系统实施例,具体如下:
图5是本发明一实施例提供的审计渗透测试系统的结构图。参见图5,一种审计渗透测试系统,包括:
如上述所述的测试节点服务器501,与所述测试节点服务器501通信连接的如上述所述的管理服务器502,和分别与测试节点服务器501、所述管理服务器502通信连接的数据整理服务器503;
所述数据整理服务器503用于接收所述测试节点服务器501发送的日志,进行日志存储,并根据所述管理服务器502的日志调取指令发送所述日志至所述管理服务器502。
其中,管理服务器为管理人员提供系统管理接口,将制定的策略规则等数据推送到各个测试节点服务器;测试节点服务器直接面向测试者,根据接收到的策略对测试者的请求进行审计及管理(放行或拦截),并将放行的请求转发给受测目标,同时根据策略处理受测目标响应回来的信息后返回给测试者。将本节点自身的必要信息发送给数据整理服务器汇总。数据整理服务器接收来自各节点服务器的数据,结构化后存储至数据库。在多节点模式下,此服务器需要对各节点的数据汇总之后作为整体数据使用策略进行审计。
在上述实施例的基础上,本申请还公开一种数据库,该数据库用于存储审计日志(测试者的请求记录、各种策略的触发记录)、审计策略与系统运行所需的其他配置及数据。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。