CN116436705B - 网络安全检测方法、装置、电子设备及存储介质 - Google Patents
网络安全检测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116436705B CN116436705B CN202310695670.9A CN202310695670A CN116436705B CN 116436705 B CN116436705 B CN 116436705B CN 202310695670 A CN202310695670 A CN 202310695670A CN 116436705 B CN116436705 B CN 116436705B
- Authority
- CN
- China
- Prior art keywords
- network
- server
- cache
- test
- response information
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 43
- 230000004044 response Effects 0.000 claims abstract description 191
- 238000012360 testing method Methods 0.000 claims abstract description 174
- 230000007547 defect Effects 0.000 claims abstract description 68
- 238000004590 computer program Methods 0.000 claims description 15
- 230000027455 binding Effects 0.000 claims description 8
- 238000007689 inspection Methods 0.000 claims 1
- 238000000034 method Methods 0.000 description 41
- 231100000572 poisoning Toxicity 0.000 description 24
- 230000000607 poisoning effect Effects 0.000 description 24
- 238000012545 processing Methods 0.000 description 20
- ZBMRKNMTMPPMMK-UHFFFAOYSA-N 2-amino-4-[hydroxy(methyl)phosphoryl]butanoic acid;azane Chemical compound [NH4+].CP(O)(=O)CCC(N)C([O-])=O ZBMRKNMTMPPMMK-UHFFFAOYSA-N 0.000 description 19
- 230000008569 process Effects 0.000 description 19
- 230000007246 mechanism Effects 0.000 description 11
- 231100000331 toxic Toxicity 0.000 description 10
- 230000002588 toxic effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000010606 normalization Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 4
- 230000009193 crawling Effects 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000002574 poison Substances 0.000 description 2
- 231100000614 poison Toxicity 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009870 specific binding Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000012916 structural analysis Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种网络安全检测方法、装置、电子设备及存储介质。网络安全检测方法包括:获取网络资源地址参数,并判断网络资源地址参数是否包含于缓存键;若是,则发送正常网络请求信息至缓存服务器,并接收缓存服务器返回的正常网络响应信息;然后获取测试网络资源地址参数,并根据测试网络资源地址参数和目标网络资源地址得到第一测试网络请求信息;再发送第一测试网络请求信息至缓存服务器,并接收缓存服务器返回的第一测试网络响应信息;根据正常网络响应信息和第一测试网络响应信息,判断是否存在网络安全缺陷。本发明可以有效的检测出网络安全缺陷,以让技术人员可以及时消除安全缺陷,防止安全缺陷被非法利用,造成网络安全问题。
Description
技术领域
本发明涉及网络安全技术领域,具体而言,涉及一种网络安全检测方法、装置、电子设备及存储介质。
背景技术
当一个用户发起HTTP(Hyper Text Transfer Protocol,超文本传输协议)请求,请求一个URL(Uniform/Universal Resource Locator,统一资源定位符)资源时,WEB(网络)服务器就会直接进行HTTP响应,对用户进行回复。如果用户数量很多,同一时间的HTTP请求数量很大,WEB服务器会对所有的HTTP请求进行排队,然后逐个进行响应,这就导致WEB服务器的压力很大,用户的等待时间就会变长。
为了解决这种问题,WEB服务器发展出了缓存机制,就是在用户和WEB服务器之间增加一个缓存服务器。用户的HTTP请求首先到达缓存服务器,如果缓存服务器发现用户请求的URL资源已经存储在缓存服务器,那么就直接对用户进行HTTP响应;如果发现URL资源不在缓存服务器,则把HTTP请求转发到后台的WEB服务器上,同时对WEB服务器的响应内容进行缓存,后续的用户如果请求同一个URL资源,缓存服务器就可以直接进行响应。
但是,如果WEB服务器或缓存服务器配置不当,就有可能存在安全漏洞或安全缺陷,让不法分子利用漏洞和缺陷,进行WEB缓存投毒(Web Cache Poison),将有害的HTTP响应投递给受害者用户。
发明内容
为了克服上述问题和缺陷,本发明提供一种网络安全检测方法、装置、电子设备及存储介质,可以有效准确的检测网络服务器或缓存服务器是否存在网络安全缺陷。
为实现上述目的,本发明第一方面提供一种网络安全检测方法,包括:
获取网络资源地址参数,并判断网络资源地址参数是否包含于缓存键,缓存键用于识别目标网络资源地址;
若是,则发送正常网络请求信息至缓存服务器,并接收缓存服务器返回的正常网络响应信息;其中,正常网络请求信息包目标括网络资源地址;正常网络响应信息由缓存服务器将正常网络请求信息传输至网络服务器,并由网络服务器根据正常网络请求信息生成;
获取测试网络资源地址参数,并根据测试网络资源地址参数和目标网络资源地址得到第一测试网络请求信息;其中,网络资源地址参数包括测试网络资源地址参数;
发送第一测试网络请求信息至缓存服务器,并接收缓存服务器返回的第一测试网络响应信息;其中,第一测试网络响应信息由缓存服务器将第一测试网络请求信息传输至网络服务器,并由网络服务器根据第一测试网络请求信息生成;
根据正常网络响应信息和第一测试网络响应信息,判断网络服务器或缓存服务器是否存在网络安全缺陷。
可选地,判断网络资源地址参数是否包含于缓存键的步骤,包括:
根据网络资源地址参数和初始网络资源地址,得到第二测试网络请求信息,初始网络资源地址用于生成目标网络资源地址;
发送第二测试网络请求信息至缓存服务器,并接收缓存服务器返回的第二测试网络响应信息,第二测试网络响应信息,由缓存服务器将第二测试网络请求信息传输至网络服务器,并由网络服务器根据第二测试网络请求信息生成;
根据第二测试网络响应信息,判断网络资源地址参数是否包含于缓存键之中。
可选地,在判断网络资源地址参数是否包含于缓存键的步骤之前,还包括:
获取目标网络资源地址对应的网络资源;
判断网络资源是否可缓存至缓存服务器。
可选地,在判断网络资源地址参数是否包含于缓存键的步骤之前,还包括:
获取目标网络资源地址对应的目标域名,及目标域名关联的IP地址;
从IP地址中确定一个目标IP地址;
将目标IP地址与目标域名绑定,以使目标域名对应的请求信息全部发送至目标IP地址。
可选地,根据正常网络响应信息和第一测试网络响应信息,判断网络服务器或缓存服务器是否存在网络安全缺陷的步骤,包括:
获取正常网络响应信息的第一HTTP状态码,和第一测试网络响应信息的第二HTTP状态码;
判断第一HTTP状态码与第二HTTP状态码是否相匹配;
若是,则判定网络服务器或缓存服务器不存在网络安全缺陷。
可选地,在判断第一HTTP状态码与第二HTTP状态码是否相匹配的步骤之后,还包括:
若否,则再次发送正常网络请求信息至缓存服务器,并接收缓存服务器返回的第三测试网络响应信息;
根据第一测试网络响应信息和第三测试网络响应信息,判断网络服务器或缓存服务器是否存在网络安全缺陷。
可选地,根据第一测试网络响应信息和第三测试网络响应信息,判断网络服务器或缓存服务器是否存在网络安全缺陷的步骤,包括:
获取第三测试网络响应信息的第三HTTP状态码;
判断第三HTTP状态码与第二HTTP状态码是否相匹配;
若是,则判定网络服务器或缓存服务器存在网络安全缺陷,反之,则判定不存在网络安全缺陷。
本发明第二方面提供一种网络安全检测装置,包括:
第一判断模块,用于获取网络资源地址参数,并判断网络资源地址参数是否包含于缓存键,缓存键用于识别目标网络资源地址;
第一请求响应模块,用于当网络资源地址参数包含于缓存键时,发送正常网络请求信息至缓存服务器,并接收缓存服务器返回的正常网络响应信息;其中,正常网络请求信息包括目标网络资源地址;正常网络响应信息由缓存服务器将正常网络请求信息传输至网络服务器,并由网络服务器根据正常网络请求信息生成;
获取模块,用于获取测试网络资源地址参数,并根据测试网络资源地址参数和目标网络资源地址得到第一测试网络请求信息;其中,网络资源地址参数包括测试网络资源地址参数;
第二请求响应模块,用于发送第一测试网络请求信息至缓存服务器,并接收缓存服务器返回的第一测试网络响应信息;其中,第一测试网络响应信息由缓存服务器将第一测试网络请求信息传输至网络服务器,并由网络服务器根据第一测试网络请求信息生成;
第二判断模块,用于根据正常网络响应信息和第一测试网络响应信息,判断网络服务器或缓存服务器是否存在网络安全缺陷。
本发明第三方面提供一种电子设备,包括处理器和存储器,存储器上存储有计算机程序,计算机程序被处理器执行时,实现上述的网络安全检测方法。
本发明第四发明提供一种计算机可读的存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现上述的网络安全检测方法。
与现有技术相比,本发明的有益效果包括:本发明首先判断网络资源地址参数是否包含于缓存键,确保网络资源地址参数属于缓存键的情况下,再利用网络资源地址参数进行网络安全检测,避免无效测试;之后,通过发送正常网络请求信息得到正常网络响应信息,然后根据测试网络资源地址参数和目标网络资源地址得到第一测试网络请求信息,再发送第一测试网络请求信息得到第一测试网络响应信息,最后根据正常网络响应信息和第一测试网络响应信息,判断网络服务器或缓存服务器是否存在网络安全缺陷。由此,本发明可以有效准确的检测出网络服务器或缓存服务器存在的安全缺陷,以让技术人员可以及时消除安全缺陷,防止安全缺陷被非法利用,造成网络安全问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例网络安全检测方法的流程示意图一;
图2为本发明实施例网络安全检测方法的流程示意图二;
图3为本发明实施例网络安全检测方法的流程示意图三;
图4为本发明实施例网络安全检测方法的流程示意图四;
图5为本发明实施例网络安全检测装置的架构示意图;
图6为本发明实施例电子设备的计算机系统的架构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络或处理器装置或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
WEB服务器或缓存服务器配置不当,就有可能存在安全漏洞或安全缺陷,让不法分子利用漏洞和缺陷,进行WEB缓存投毒(Web Cache Poison)。WEB缓存投毒的过程如下:首先攻击者构造一个“有毒”的HTTP请求,并发送给目标WEB服务器,目标WEB服务器会生成一个污染的HTTP响应,并返回给攻击者,同时这个被污染的HTTP响应在缓存服务器被缓存。接下来的受害者用户访问同样的URL(Uniform/Universal Resource Locator,统一资源定位符)资源时,WEB缓存识别到受害者的HTTP请求和攻击者的HTTP请求是等效的HTTP请求,所以直接用缓存的已经被污染的HTTP响应回复受害者。
在整个过程中,攻击者发送的HTTP请求的cache key(缓存键)和受害者发送的HTTP请求的cache key必须是相同的,才会被缓存服务器认为是等效的请求,进而才能命中同一个缓存副本;同时攻击者必须保证引起污染的HTTP字段,即“有毒”字段,不能是cachekey的一部分。
下面是一个典型的WEB缓存投毒攻击过程,假设目标域名是“www.example.com”,攻击者控制的域名是“attacker.com”;
1.攻击者向目标域名www.example.com的“/scripts”发送HTTP请求,同时增加一个“有毒”字段“X-Forwarded-Host: attacker.com”;
2.目标WEB服务器返回HTTP响应,同时此HTTP响应被缓存,此响应会把用户重定向到攻击者的服务器上,进而让用户浏览器加载恶意代码;
3.受害者访问“http://www.example.com/scripts”,由于受害者和攻击者访问的Host,URL,User-Agent等字段都相同,那么cache key就相同,所以缓存服务器认为它们是等效的HTTP请求,直接回复缓存副本给受害者,受害者会被重定向到攻击者的服务器上,进而加载恶意代码。
其中,攻击者使用的投毒手段是,增加了一个有毒HTTP头部字段“X-Forwarded-Host: attacker.com”,服务器会使用这个字段的值作为重定向的目标地址,攻击者首先把这个值设置为自己控制的域名地址,然后通过缓存机制投递给其它受害者用户,达到攻击其它用户的目的。需要注意的是,这些HTTP头部字段本身并没有任何问题,在正常的HTTP通信中也被大量使用,只是在特定的WEB服务器配置下被攻击者恶意利用了,所以我们称其为“有毒”的HTTP头部字段。
由此,本发明实施例提供一种网络安全检测方法,如图1所示,包括步骤100、步骤200、步骤300、步骤400及步骤500,具体如下:
步骤100,获取网络资源地址参数,并判断网络资源地址参数是否包含于缓存键,缓存键用于识别目标网络资源地址。具体地,网络资源地址为URL,网络资源地址参数为URL参数,缓存键为cache key。
通过上述步骤,可以确保URL参数属于缓存键的情况下,再利用URL参数进行网络安全检测,避免无效测试。
其中,URL参数可以作为cache buster(缓存破坏器),cache buster的作用是让原始HTTP请求发生变化,达到这样一种效果:对于WEB服务器来说,增加了cache buster的HTTP请求和原始请求是“相同”的请求,会触发相同的处理逻辑,返回相同的HTTP响应;对于缓存服务器来说,增加了cache buster的HTTP请求和原始请求是“不同”的请求,不会共用同样的缓存副本。Cache buster必须属于cache key的一部分,但是又不能影响后台服务器的处理逻辑。cache buster可以采用URL参数,因为WEB服务器遇到自己不认识的URL参数一般会进行忽略处理,但是缓存服务器一般会把URL参数作为cache key, 所以URL参数就非常适合作为cache buster。
例如:原始URL为“https://www.example.com/test.html”,增加了URL参数的URL为“https://www.example.com/test.html?cb=123”,这里的URL参数为字符串“cb=123”,其作用就是cache buster。WEB服务器并不认识这个名叫“cb”的参数,会自动忽略此参数,所以WEB服务器对这两个URL的处理逻辑是一样的,都会返回test.html文件的内容;但是缓存服务器使用完整URL来当作cache key,会得到两个不同的cache key,认为这是两个不同的HTTP请求,需要分别保存各自的HTTP响应作为缓存。
Cache buster并不局限于URL参数,也可以使用其它HTTP头部字段,前提是这个HTTP头部字段必须是cache key的一部分。由于典型的cache key就是HTTP请求方法,HOST,URL这三部分,但是HTTP请求方法和HOST字段是不能随便修改的,会破坏HTTP协议通信规范,所以最适合做cache buster的字段就是URL参数字段。
现有的网络安全检测方法中,一般默认使用URL参数作为cache buster字符串,即向URL上添加一个随机生成的字符串当URL参数,来避免访问到原始URL的缓存副本。这种方法默认URL参数是cache key的一部分,但实际情况并不总是如此,缓存机制可以对cachekey是否包含URL参数进行配置,如果URL参数不是cache key的一部分,那么用URL参数充当cache buster的传统检测方法就失效了。
本实施例增加了判断URL参数是否是cache key的一部分的方法步骤,只有在符合条件的情况下,才使用URL参数充当cache buster进行测试,避免了无效测试,同时使检测更精准。
一种实施例中,步骤100中判断网络资源地址参数是否包含于缓存键的步骤,包括步骤110,步骤120和步骤130。如图2所示:
步骤110,根据网络资源地址参数和初始网络资源地址,得到第二测试网络请求信息。其中,初始网络资源地址用于生成目标网络资源地址。
具体地,首先利用随机算法生成随机字符串,作为URL参数,字符串长度并没有特殊限制,但是为了保证随机性,最好使用长度大于3的字符串。然后分别把随机字符串拼接到初始网络资源地址URL上,组成URL_A。假设随机生成的字符串为“abc”,初始URL为“https://www.example.com/test.js”,这里生成的URL_A形式如下:
https://www.example.com/test.js?abc=1 。
第二测试网络请求信息包含了URL_A,为目标网络资源地址。
步骤120,发送第二测试网络请求信息至缓存服务器,并接收缓存服务器返回的第二测试网络响应信息。其中,第二测试网络响应信息,由缓存服务器将第二测试网络请求信息传输至网络服务器,并由网络服务器根据第二测试网络请求信息生成。
具体地,设第二测试网络响应信息为HTTP响应R_A,第二测试网络请求信息为HTTP请求。本实施例中,发送HTTP请求时对HTTP头部字段并没有特殊要求,可以使用任意的User-Agent字段;HTTP响应R_A记录了HTTP响应状态码,响应头部字段,响应体内容。
步骤130,根据第二测试网络响应信息,判断网络资源地址参数是否包含于缓存键之中。
具体地,检查HTTP响应头部字段和值,来判断本次请求是否命中了一个缓存副本,具体过程是检查头部字段是否出现表示命中缓存的常见字符串,如“X-Cache: Hit”,“Age:10”等。如果命中了缓存,说明步骤110中随机添加的URL参数并不是cache key的一部分,并不能作为cache buster使用;反之进入步骤140。
步骤140,再次发送HTTP请求到至缓存服务器,获取HTTP响应R_B。其中HTTP请求包含了URL_B,URL_B是根据另一个随机字符串“xyz”与初始URL“https://www.example.com/test.js”生成的。这里发送HTTP请求时,HTTP头部字段需要和步骤120中的HTTP头部字段保持一致,这样可以保证不会引入新的cache key字段。
步骤150,检查HTTP响应头部字段和值,来判断步骤140中HTTP请求是否命中了一个缓存副本。具体过程是检查头部字段是否出现表示命中缓存的常见字符串,如“X-Cache:Hit”,“Age: 10”等。如果命中了缓存,说明随机添加的URL参数并不是cache key的一部分,并不能作为cache buster使用;反之说明,添加的URL参数是cache key一部分,可以作为cache buster使用。
通过上述步骤,对目标URL的缓存机制进行探测和确认,只有当URL参数属于cachekey的一部分时,才进行下一步测试,否则的话则认为不存在缺陷。并且,通过两次发送HTTP请求,以进一步检查确认网络资源地址参数是否包含于缓存键之中。
步骤200,若网络资源地址参数包含于缓存键,则发送正常网络请求信息至缓存服务器,并接收缓存服务器返回的正常网络响应信息。其中,正常网络请求信息包括目标网络资源地址;正常网络响应信息由缓存服务器将正常网络请求信息传输至网络服务器,并由网络服务器根据正常网络请求信息生成。
具体地,正常网络请求信息为正常的HTTP请求,指未进行投毒的HTTP请求,比如正常的浏览器HTTP请求,对应的,正常网络响应信息为HTTP响应R1。网络服务器为WEB服务器。缓存服务器可以包括缓存服务模块,它可以是硬件服务器,甚至是多台服务器组成的复杂系统,也可以是软件系统,和WEB服务器部署在同一台服务器上。
步骤200具体为:
发送正常的HTTP请求到URL1,获取HTTP响应R1,例如URL1为“https://www.example.com/abc.js”。 HTTP响应R1记录了HTTP响应的全部内容,包括HTTP状态码,HTTP响应头部,HTTP响应体。
步骤300,获取测试网络资源地址参数,并根据测试网络资源地址参数和目标网络资源地址得到第一测试网络请求信息;其中,网络资源地址参数包括测试网络资源地址参数。
具体地,例如测试网络资源地址参数为随机字符串“xyz”,“xyz”为URL参数,可用作cache buster,目标网络资源地址为URL1“https://www.example.com/abc.js”,URL参数“xyz”与URL1拼接在一起形成URL2,为“https://www.example.com/abc.js?xyz=1”。
步骤400,发送第一测试网络请求信息至缓存服务器,并接收缓存服务器返回的第一测试网络响应信息。其中,第一测试网络响应信息,由缓存服务器将第一测试网络请求信息传输至网络服务器,并由网络服务器根据第一测试网络请求信息生成。
本步骤中,第一测试网络请求信息为投毒的HTTP请求,其中包含了URL2;第一测试网络响应信息为HTTP响应R2。
步骤500,根据正常网络响应信息和第一测试网络响应信息,判断网络服务器或缓存服务器是否存在网络安全缺陷。即对比HTTP响应R2和HTTP响应R1,来判断是否存在网络安全缺陷。
一种实施例中,如图3所示,上述步骤具体包括步骤510,步骤520和步骤530:
步骤510,获取正常网络响应信息的第一HTTP状态码,和第一测试网络响应信息的第二HTTP状态码。
步骤520,判断第一HTTP状态码与第二HTTP状态码是否相匹配。目前,HTTP状态码一般可以包括为200,301,400,404等。具体地,判断第一HTTP状态码为与第二HTTP状态码是或否相等。
步骤530,若是,则判定网络服务器或缓存服务器不存在网络安全缺陷。例如,第一HTTP状态码为200,第二HTTP状态码也为200,那么可以表明WEB服务器处理和缓存服务器,处理HTTP请求的方法和逻辑是统一的,即使攻击者在目标URL中加入cache buster,发送投毒的HTTP请求,WEB服务器处理和缓存服务器处理也都能正确的识别目标URL,并作出正确的HTTP响应。
一种实施例中,在判断第一HTTP状态码与第二HTTP状态码是否相匹配的步骤之后,还包括步骤540和步骤550:
步骤540,若第一HTTP状态码与第二HTTP状态码不相匹配,则再次发送正常网络请求信息至缓存服务器,并接收缓存服务器返回的第三测试网络响应信息。其中,第三测试网络响应信息为HTTP响应R3。
上述步骤中,再次发送的正常网络请求信息中的目标URL,是步骤400中第一测试网络请求信息即投毒的HTTP请求中的URL2。本步骤中,HTTP请求和步骤400中的投毒HTTP请求,拥有相同的cache key,如果步骤400中的HTTP响应R2被缓存在缓存服务器了,那么本步骤会命中步骤400中投毒的HTTP请求所形成的HTTP响应R2的缓存副本,即HTTP响应R3和步骤400中的HTTP响应R2是相同的。
步骤550,根据第一测试网络响应信息和第三测试网络响应信息,判断网络服务器或缓存服务器是否存在网络安全缺陷。具体地,如图4所示,包括步骤551、步骤552和步骤553:
步骤551,获取第三测试网络响应信息的第三HTTP状态码。
步骤552,判断第三HTTP状态码与第二HTTP状态码是否相匹配。具体地,判断第三HTTP状态码与第二HTTP状态码是否相等。
步骤553,若是,则判定网络服务器或缓存服务器存在网络安全缺陷,反之,则判定不存在网络安全缺陷。
例如,第三HTTP状态码为200,第二HTTP状态码为200,第三HTTP状态码与第二HTTP状态码相等,则判定网络服务器或缓存服务器存在网络安全缺陷。
具体地,步骤540中HTTP请求和步骤400中的投毒HTTP请求,拥有相同的cachekey。步骤400中的HTTP响应R2被缓存在缓存服务器了,那么步骤540中的HTTP请求不会投递到WEB服务器,而是在缓存服务器。步骤540中正常的HTTP请求,会命中步骤400中投毒的HTTP请求所形成的HTTP响应R2的缓存副本,从而由缓存服务器直接进行响应,即HTTP响应R3和步骤400中的HTTP响应R2实际是同一分数据,也就是相同的。因此,第三HTTP状态码与第二HTTP状态码相等。那么就可以反推,是因为网络服务器或缓存服务器存在网络安全缺陷,使步骤400中投毒的HTTP请求所形成的HTTP响应R2被缓存了,在缓存服务器上形成了URL2对应的缓存副本,进而导致HTTP响应R3和HTTP响应R2相同。所以,第三HTTP状态码与第二HTTP状态码相等,就能认为网络服务器或缓存服务器上,URL资源的缓存机制存在网络安全缺陷,反之,则认为不存在网络安全缺陷。
一种实施例中,在步骤100中,判断网络资源地址参数是否包含于缓存键的步骤之前,还包括:首先获取目标网络资源地址对应的网络资源;然后判断网络资源是否可缓存至缓存服务器。
上述步骤中,目标网络资源地址具体为目标域名,网络资源具体位置网页资源。通过对目标域名的网页资源进行爬取和解析,最终获取一个存在缓存机制的URL资源。一般来说,只有静态的URL资源会被配置缓存,动态生成的资源一般是不进行缓存的,上述步骤的目的就是找到一个明确配置了缓存策略的URL资源,为本实施例的检测方法提供测试URL。现有技术中,默认使用网站首页来充当测试URL,如果网站首页URL本身不可缓存,那么整个检测过程就无法成功进行。
具体地实现方法如下:
1)爬取目标域名首页内容。此步骤是把目标域名的网站首页作为目标进行内容获取,此处应该首先尝试HTTPS版本的目标域名网站,如果目标域名提供基于HTTPS的访问服务,则应该优先使用HTTPS版本;如果目标域名未提供HTTPS版本访问服务,则只能使用HTTP版本进行测试,而且后续测试步骤都需要保持一致。
2)解析HTML内容,获取所有链接URL资源。此步骤是对爬取到的网页进行内容解析,提取所有的URL链接,形成URL列表。
3)选取一个URL资源进行爬取,获取HTTP响应。此步骤是从步骤2)中的URL列表中选取一个URL进行访问,并记录HTTP响应内容。
4)判断步骤3)中获取的HTTP响应是否可以缓存。具体检查HTTP响应的头部字段是否出现可缓存的标记,具体来说就是查看HTTP响应头部字段是否出现缓存相关的头部,如“Pragma”,“Cache-Control“,”X-Cache”,“Age”等字段,根据这些字段的含义,可以推断出此HTTP响应是否可以被缓存服务器缓存。实际上,缓存机制分为私有缓存和公开缓存,私有缓存是指浏览器缓存,是缓存到用户自己本地的;公开缓存是指CDN,代理,反向代理等中间层缓存,是可以和其他用户共享的缓存。本实施例中提到的缓存都是特指公开缓存,只有公开缓存才存在缓存投毒的问题。
示例性的,下面这些字段值表示不能缓存:
Pragma: no-cache;
Cache-Control: private;
Cache-Control: no-cache, no-store。
下面这些字段值表示可以缓存:
Cache-Control: public;
Cache-Control: max-age=3600;
Cache-Control: s-maxage=604800。
下面这些字段表示此请求未命中缓存:
X-Cache: Miss;
下面这些字段表示此请求命中缓存:
X-Cache: Hit;
Age: 10;
如果我们在HTTP响应头部字段中发现存在“Cache-Control“字段,并且字段值中包含类似“public”,“max-age:3600”等内容,那就说明此HTTP响应可以被缓存,进入下一步;反之如果字段值包含“private”,”no-cache”,“no-store”等内容,则说明此HTTP响应不可以被缓存,需要重新选取一个URL进行测试。
5)选取此URL为目标URL。上述步骤会最终找到一个可以被公开缓存的URL,选择此URL作为用于检测的目标URL。
一种实施例中,在判断网络资源地址参数是否包含于缓存键的步骤之前,还包括以下步骤:
首先获取目标网络资源地址对应的目标域名,及目标域名关联的IP地址;然后从IP地址中确定一个目标IP地址;最后将目标IP地址与目标域名绑定,以使目标域名对应的请求信息全部发送至目标IP地址。
通过上述步骤可以绑定目标域名和IP地址。本实施例中,目标域名是指待测试的域名,IP地址是指目标域名的IP地址,目标域名可能会有多个IP地址,本实施例随机选取一个IP地址即可。此处的绑定,是指在整个检测过程中,把所有对目标域名的请求的流量数据全部发往绑定的IP地址。之所以这样做,是因为如果目标域名使用了CDN、负载均衡等服务的话,解析的IP会有多个,如果我们前后两次发送的HTTP请求被路由到了不同的IP地址,那么就会破坏本实施例的测试逻辑,产生漏报。具体的绑定操作,是指在socket级别把目标域名和IP地址进行绑定,这样的话,在整个测试过程中,凡是发往目标域名的请求都会被路由到绑定的IP地址,相当于排除了多IP地址对检测结果的影响。
本实施例从URL处理流程出发,提出了新的针对缓存机制的网络安全检测方法,即基于URL解码,URL解析,URL归一化形成的WEB缓存投毒缺陷检测方法。当缓存服务器或者WEB服务器接收到一个HTTP请求后,首先都要进行URL处理,处理过程一般包括URL解码,URL解析和URL归一化三个步骤。在这三个步骤的处理上,如果缓存服务器和WEB服务器的处理逻辑不一致,那么就有可能造成WEB缓存投毒的安全缺陷。
URL解码,是指对传输的URL进行解码,得到原始URL字符的过程。根据URL相关规范,组成URL的不同部分都有自己的字符集,不在字符集里面的字符需要进行URL编码之后再进行传输。URL解析,是指依照规范规定的URL组成格式对URL进行结构解析,取得用户名,密码,主机名,路径名,文件名,URL参数等各个字段。URL归一化,是指对URL进行处理,把相对路径URL处理为绝对路径URL。在URL解码,URL解析,URL归一化的处理过程中,如果缓存服务器和WEB服务器的处理逻辑不一致,就有可能造成WEB缓存投毒缺陷。
下面分别针对URL解码,URL解析和URL归一化这三个过程中,URL处理逻辑差异造成的WEB缓存投毒缺陷进行举例。
第一个例子,是因为缓存服务器和WEB服务器有不同的URL解码逻辑,而造成的WEB缓存投毒。首先,假设:
缓存服务器在做URL解码时,会把“%2F”解码为“/”,而WEB服务器并不会做此种解码;
缓存服务器会把URL原样转发给WEB服务器;
在WEB服务器上存在资源”/abc/test.js”;
攻击流程为:
攻击者发送“投毒”HTTP请求“https://www.example.com/abc%2Ftest.js”;
缓存服务器进行URL解码,得到“https://www.example.com/abc/test.js”,并用此URL充当cache key;
缓存服务器把URL请求原样转发到WEB服务器;
WEB服务器,并不会执行“%2F”的解码,以为访问的文件是“/abc%2Ftest.js”,在本地查找此文件,发现不存在,返回HTTP响应“404 Not Found”;
缓存服务器对“404 Not Found”HTTP响应进行了缓存;
受害者发送正常HTTP请求“https://www.example.com/abc/test.js”;
缓存服务器根据URL进行查找,发现本地有缓存的HTTP响应,把“404 Not Found”HTTP响应回复给受害者;
受害者得到了一个“有毒”的HTTP响应“404 Not Found”,导致了针对此URL的拒绝服务攻击。
第二个例子,是因为缓存服务器和WEB服务器有不同的URL解析逻辑,而造成的WEB缓存投毒。URL中如果出现“#”,那么根据HTTP规范,“#”连同此符号之后的内容不会发送到服务器,而是给本地浏览器使用。如果我们强行把“#”部分发往服务器,按照规范服务器应该进行忽略,如果缓存服务器和WEB服务器进行了不同的处理,那么就有可能引起WEB缓存投毒缺陷。首先,假设:
缓存服务器在做URL解码时,会把“#fragment”忽略,而WEB服务器会把“#”进行URL编码;
缓存服务器会把URL原样转发给WEB服务器;
在WEB服务器上存在资源”/abc/test.js”;
攻击流程为:
攻击者发送“投毒”HTTP请求,
“https://www.example.com/abc/test.js#fragment”;
缓存服务器进行URL解析,忽略掉“#fragment”得到“https://www.example.com/abc/test.js”,并用此URL充当cache key;
缓存服务器把URL请求原样转发到WEB服务器;
WEB服务器,并未忽略“#fragment”,而是把“#”编码为“%23”,解析后的URL为”https://www.example.com/abc/test.js%23fragment”,认为访问的文件是“/abc/test.js%23fragment”,在本地查找此文件,发现不存在,返回HTTP响应“404 Not Found”;
缓存服务器对“404 Not Found”HTTP响应进行了缓存;
受害者发送正常HTTP请求“https://www.example.com/abc/test.js”;
缓存服务器根据URL进行查找,发现本地有缓存的HTTP响应,把“404 Not Found”HTTP响应回复给受害者;
受害者得到了一个“有毒”的HTTP响应“404 Not Found”,导致了针对此URL的拒绝服务攻击。
第三个例子,是因为缓存服务器和WEB服务器有不同的URL归一化处理逻辑,而造成的WEB缓存投毒。首先,假设:
缓存服务器在做URL归一化时,会把“\”处理为“/”,而WEB服务器并不会做此种解码,而是把“\”处理为“%5C”;
缓存服务器会把URL原样转发给WEB服务器;
在WEB服务器上存在资源”/abc/test.js”;
攻击流程为:
攻击者发送“投毒”HTTP请求“https://www.example.com/abc\test.js”;
缓存服务器进行URL归一化,得到“https://www.example.com/abc/test.js”,并用此URL充当cache key;
缓存服务器把URL请求原样转发到WEB服务器;
WEB服务器进行URL归一化,得到“https://www.example.com/abc%5Ctest.js”以为访问的文件是“/abc%5Ctest.js”,在本地查找此文件,发现不存在,返回HTTP响应“404Not Found”;
缓存服务器对“404 Not Found”HTTP响应进行了缓存;
受害者发送正常HTTP请求“https://www.example.com/abc/test.js”;
缓存服务器根据URL进行查找,发现本地有缓存的HTTP响应,把“404 Not Found”HTTP响应回复给受害者;
受害者得到了一个“有毒”的HTTP响应“404 Not Found”,导致了针对此URL的拒绝服务攻击。
一种实施例中,本发明的网络安全检测方法具体流程如下:
步骤S1,绑定目标域名和IP地址。这里目标域名是指待测试的域名,IP地址是指目标域名的IP地址,目标域名可能会有多个IP地址,这里随机选取一个IP地址即可。这里的绑定,是指在整个测试过程中,把所有对目标域名的请求的流量全部发往绑定的IP地址。之所以这样做,是因为如果域名使用了CDN、负载均衡等服务的话,解析的IP会有多个,如果前后两次发送的HTTP请求被路由到了不同的IP地址,那么就会破坏的测试逻辑,产生漏报。具体的绑定操作,是指在socket级别把目标域名和IP地址进行绑定,这样的话,在整个测试过程中,凡是发往目标域名的请求都会被路由到绑定的IP地址,相当于排除了多IP地址对测试结果的影响。
步骤S2,获取可缓存的URL,这一步是通过对目标域名的网页资源进行爬取和解析,最终获取一个存在缓存机制的URL资源。一般来说,只有静态的URL资源会被配置缓存,动态生成的资源一般是不进行缓存的,这一步的目的就是找到一个明确配置了缓存策略的URL资源,为下面的测试提供测试URL。传统的测试方法缺少这个步骤,默认使用网站首页来充当测试URL,如果网站首页URL本身不可缓存,那么整个测试就无法成功。
步骤S3,判断URL参数是否cache key的一部分。这个步骤是对目标URL的缓存机制进行探测和确认,只有当URL参数属于cache key的一部分时,才进行下一步测试,否则的话则认为不存在缺陷。本文使用的测试方法是用URL参数充当cache buster,这样做的前提是URL参数必须是cache key的一部分,否则的话测试无法成功,会漏报目标域名。传统的测试方法默认使用URL参数当做cache buster进行测试,并未对此目标域名的缓存机制进行验证,会导致漏报。
步骤S4,发送正常的HTTP请求到URL1,获取HTTP响应R1。这里的URL1就是步骤S2获取到的可以缓存的URL,正常的HTTP请求是指未进行投毒的HTTP请求,比如正常的浏览器HTTP请求。获取HTTP响应R1,表示记录HTTP响应的全部内容,包括HTTP状态码,HTTP响应头部,HTTP响应体。
步骤S5,发送投毒的HTTP请求到URL2,获取HTTP响应R2。这里的URL2是指步骤S4中URL1增加了cache buster之后的形式,这里使用URL参数形式的cache buster,即随机生成一个字符串作为URL参数名,拼接到URL1后面形成URL2。举例来说,如果URL1是“https://www.example.com/abc.js”,生成一个随机字符串“xyz”作为URL参数名和URL1拼接在一起形成URL2,“https://www.example.com/abc.js?xyz=1”,这里的URL参数值是可选的,可以设置为任意值,或者只保留URL参数名。获取HTTP响应R2,表示记录HTTP响应的全部内容,包括HTTP状态码,HTTP响应头部,HTTP响应体。
步骤S6,判断R2状态码是否等于R1状态码。这里R1状态码是指R1响应的HTTP状态码,R2状态码是指R2响应的HTTP状态码,R2是投毒的HTTP请求对应的HTTP响应,它的状态码一般会不同于正常的请求对应的HTTP响应。如果R2状态码和R1状态码相同,则说明不存在WEB缓存投毒缺陷,反之则进入步骤S7。
步骤S7,发送正常的HTTP请求到URL2,获取HTTP响应R3。此步骤使用的目标URL是步骤S5中的URL2。此步骤的HTTP请求和步骤S5的HTTP请求拥有相同的cache key,如果步骤S5的R2被缓存了,那么此步骤会命中步骤S5请求形成的HTTP响应缓存副本,即R3和步骤S5中的R2是相同的。
步骤S8,判断R3状态码是否等于R2状态码。这里R2状态码是指步骤S5中R2响应的HTTP状态码,R3状态码是指步骤S7中R3响应的HTTP状态码。步骤S5和步骤S7拥有相同的cache key,如果步骤S5的HTTP响应R2被缓存了,那么步骤S7中的HTTP请求不会投递到后台WEB服务器,而是在缓存服务器命中步骤S5请求形成的HTTP响应缓存副本,从而由缓存服务器直接进行响应。此时,R3和步骤S5中的R2实际上是同一份数据,它们的HTTP状态码是相同的,所以此步骤判断R3状态码是否等于R2状态码,如果是则认为存在WEB缓存投毒缺陷,否则则认为不存在缺陷。
本实施例通过上述方法步骤,把目标域名和某一个CDN节点IP地址进行绑定,然后进行后续的测试,以此来避免HTTP请求被路由到不同的CDN节点,造成的误报问题。
并且,测试目标URL的选择上,不再使用默认的网站首页,而是爬取所有URL,并选取一个明确可以缓存的URL资源进行测试,避免了无效测试。
本实施例不再直接使用URL参数作为cache buster,而是先对目标域名的缓存策略进行探测,确保URL参数属于cache key的情况下,再使用URL参数进行测试,避免无效测试;
本实施例在WEB缓存投毒手段上,提出了从URL处理流程入手,测试URL解码,URL解析,URL归一化等不同环节产生的WEB缓存投毒缺陷,不再局限于测试HTTP头部字段的字符集,数量,大小等传统手段。
本发明实施例提供一种网络安全检测装置,如图5所示,包括第一判断模块601、第一请求响应模块602、获取模块603、第二请求响应模块604及第二判断模块605。其中:
第一判断模块601,用于获取网络资源地址参数,并判断网络资源地址参数是否包含于缓存键,缓存键用于识别目标网络资源地址;
第一请求响应模块602,用于当网络资源地址参数包含于缓存键时,发送正常网络请求信息至缓存服务器,并接收缓存服务器返回的正常网络响应信息其中,正常网络请求信息包括目标网络资源地址;正常网络响应信息由缓存服务器将正常网络请求信息传输至网络服务器,并由网络服务器根据正常网络请求信息生成;
获取模块603,用于获取测试网络资源地址参数,并根据测试网络资源地址参数和目标网络资源地址得到第一测试网络请求信息;其中,网络资源地址参数包括测试网络资源地址参数;
第二请求响应模块604,用于发送第一测试网络请求信息至缓存服务器,并接收缓存服务器返回的第一测试网络响应信息;其中,第一测试网络响应信息由缓存服务器将第一测试网络请求信息传输至网络服务器,并由网络服务器根据第一测试网络请求信息生成;
第二判断模块605,用于根据正常网络响应信息和第一测试网络响应信息,判断网络服务器或缓存服务器是否存在网络安全缺陷。
本发明实施例的网络安全检测装置,应用上述实施例提供的网络安全检测方法;首先判断网络资源地址参数是否包含于缓存键,确保网络资源地址参数属于缓存键的情况下,再利用网络资源地址参数进行网络安全检测,避免无效测试;之后,通过发送正常网络请求信息得到正常网络响应信息,然后根据测试网络资源地址参数和目标网络资源地址得到第一测试网络请求信息,再发送第一测试网络请求信息得到第一测试网络响应信息,最后根据正常网络响应信息和第一测试网络响应信息,判断网络服务器或缓存服务器是否存在网络安全缺陷。由此,本发明可以有效准确的检测出网络服务器或缓存服务器存在的安全缺陷,以让技术人员可以及时消除安全缺陷,防止安全缺陷被非法利用,造成网络安全问题。
图6示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图6示出的电子设备的计算机系统仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统包括中央处理单元(Central Processing Unit,CPU)1801,其可以根据存储在只读存储器(Read-Only Memory,ROM)1802中的程序或者从存储部分1808加载到随机访问存储器(Random Access Memory,RAM)1803中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1803中,还存储有系统操作所需的各种程序和数据。CPU 1801、ROM 1802以及RAM 1803通过总线1804彼此相连。输入/输出(Input /Output,I/O)接口1805也连接至总线1804。
以下部件连接至I/O接口1805:包括键盘、鼠标等的输入部分1806;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1807;包括硬盘等的存储部分1808;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1809。通信部分1809经由诸如因特网的网络执行通信处理。驱动器1810也根据需要连接至I/O接口1805。可拆卸介质1811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1810上,以便于从其上读出的计算机程序根据需要被安装入存储部分1808。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1809从网络上被下载和安装,或从可拆卸介质1811被安装。在该计算机程序被中央处理单元(CPU)1801执行时,执行本发明的系统中限定的各种功能。
需要说明的是,本发明实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
具体地,通过本实施例的电子设备,首先判断网络资源地址参数是否包含于缓存键,确保网络资源地址参数属于缓存键的情况下,再利用网络资源地址参数进行网络安全检测,避免无效测试;之后,通过发送正常网络请求信息得到正常网络响应信息,然后根据测试网络资源地址参数和目标网络资源地址得到第一测试网络请求信息,再发送第一测试网络请求信息得到第一测试网络响应信息,最后根据正常网络响应信息和第一测试网络响应信息,判断网络服务器或缓存服务器是否存在网络安全缺陷。由此,本发明可以有效准确的检测出网络服务器或缓存服务器存在的安全缺陷,以让技术人员可以及时消除安全缺陷,防止安全缺陷被非法利用,造成网络安全问题。
作为另一方面,本发明还提供了一种计算机可读的存储介质,该存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中提供的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
具体地,通过本实施例的存储介质,首先判断网络资源地址参数是否包含于缓存键,确保网络资源地址参数属于缓存键的情况下,再利用网络资源地址参数进行网络安全检测,避免无效测试;之后,通过发送正常网络请求信息得到正常网络响应信息,然后根据测试网络资源地址参数和目标网络资源地址得到第一测试网络请求信息,再发送第一测试网络请求信息得到第一测试网络响应信息,最后根据正常网络响应信息和第一测试网络响应信息,判断网络服务器或缓存服务器是否存在网络安全缺陷。由此,本发明可以有效准确的检测出网络服务器或缓存服务器存在的安全缺陷,以让技术人员可以及时消除安全缺陷,防止安全缺陷被非法利用,造成网络安全问题。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (7)
1.一种网络安全检测方法,其特征在于,包括:
获取网络资源地址参数,并判断所述网络资源地址参数是否包含于缓存键,所述缓存键用于识别目标网络资源地址;
若是,则发送正常网络请求信息至缓存服务器,并接收所述缓存服务器返回的正常网络响应信息;其中,所述正常网络请求信息包括所述目标网络资源地址;所述正常网络响应信息由所述缓存服务器将所述正常网络请求信息传输至网络服务器,并由所述网络服务器根据所述正常网络请求信息生成;
获取测试网络资源地址参数,并根据所述测试网络资源地址参数和所述目标网络资源地址得到第一测试网络请求信息;其中,所述网络资源地址参数包括所述测试网络资源地址参数;
发送所述第一测试网络请求信息至所述缓存服务器,并接收所述缓存服务器返回的第一测试网络响应信息;其中,所述第一测试网络响应信息由所述缓存服务器将所述第一测试网络请求信息传输至所述网络服务器,并由所述网络服务器根据所述第一测试网络请求信息生成;
根据所述正常网络响应信息和所述第一测试网络响应信息,判断所述网络服务器或所述缓存服务器是否存在网络安全缺陷,具体的:获取所述正常网络响应信息的第一HTTP状态码,和所述第一测试网络响应信息的第二HTTP状态码;判断所述第一HTTP状态码与所述第二HTTP状态码是否相匹配;若是,则判定所述网络服务器或所述缓存服务器不存在网络安全缺陷;若否,则再次发送所述正常网络请求信息至所述缓存服务器,并接收所述缓存服务器返回的第三测试网络响应信息;根据所述第一测试网络响应信息和所述第三测试网络响应信息,判断所述网络服务器或所述缓存服务器是否存在网络安全缺陷;
其中,所述根据所述第一测试网络响应信息和所述第三测试网络响应信息,判断所述网络服务器或所述缓存服务器是否存在网络安全缺陷的步骤,包括:
获取所述第三测试网络响应信息的第三HTTP状态码;
判断所述第三HTTP状态码与所述第二HTTP状态码是否相匹配;
若是,则判定所述网络服务器或所述缓存服务器存在网络安全缺陷,反之,则判定不存在网络安全缺陷。
2.根据权利要求1所述网络安全检测方法,其特征在于,所述判断所述网络资源地址参数是否包含于缓存键的步骤,包括:
根据所述网络资源地址参数和初始网络资源地址,得到第二测试网络请求信息,所述初始网络资源地址用于生成所述目标网络资源地址;
发送所述第二测试网络请求信息至所述缓存服务器,并接收所述缓存服务器返回的第二测试网络响应信息,所述第二测试网络响应信息,由所述缓存服务器将所述第二测试网络请求信息传输至所述网络服务器,并由所述网络服务器根据所述第二测试网络请求信息生成;
根据所述第二测试网络响应信息,判断所述网络资源地址参数是否包含于缓存键之中。
3.根据权利要求1所述网络安全检测方法,其特征在于,在所述判断所述网络资源地址参数是否包含于缓存键的步骤之前,还包括:
获取所述目标网络资源地址对应的网络资源;
判断所述网络资源是否可缓存至所述缓存服务器。
4.根据权利要求1所述网络安全检测方法,其特征在于,在所述判断所述网络资源地址参数是否包含于缓存键的步骤之前,还包括:
获取所述目标网络资源地址对应的目标域名,及所述目标域名关联的IP地址;
从所述IP地址中确定一个目标IP地址;
将所述目标IP地址与所述目标域名绑定,以使所述目标域名对应的请求信息全部发送至所述目标IP地址。
5.一种网络安全检测装置,其特征在于,包括:
第一判断模块,用于获取网络资源地址参数,并判断所述网络资源地址参数是否包含于缓存键,所述缓存键用于识别目标网络资源地址;
第一请求响应模块,用于当所述网络资源地址参数包含于所述缓存键时,发送正常网络请求信息至缓存服务器,并接收所述缓存服务器返回的正常网络响应信息;其中,所述正常网络请求信息包括所述目标网络资源地址;所述正常网络响应信息由所述缓存服务器将所述正常网络请求信息传输至网络服务器,并由所述网络服务器根据所述正常网络请求信息生成;
获取模块,用于获取测试网络资源地址参数,并根据所述测试网络资源地址参数和所述目标网络资源地址得到第一测试网络请求信息;其中,所述网络资源地址参数包括所述测试网络资源地址参数;
第二请求响应模块,用于发送所述第一测试网络请求信息至所述缓存服务器,并接收所述缓存服务器返回的第一测试网络响应信息;其中,所述第一测试网络响应信息由所述缓存服务器将所述第一测试网络请求信息传输至所述网络服务器,并由所述网络服务器根据所述第一测试网络请求信息生成;
第二判断模块,用于根据所述正常网络响应信息和所述第一测试网络响应信息,判断所述网络服务器或所述缓存服务器是否存在网络安全缺陷,具体的:获取所述正常网络响应信息的第一HTTP状态码,和所述第一测试网络响应信息的第二HTTP状态码;判断所述第一HTTP状态码与所述第二HTTP状态码是否相匹配;若是,则判定所述网络服务器或所述缓存服务器不存在网络安全缺陷;若否,则再次发送所述正常网络请求信息至所述缓存服务器,并接收所述缓存服务器返回的第三测试网络响应信息;根据所述第一测试网络响应信息和所述第三测试网络响应信息,判断所述网络服务器或所述缓存服务器是否存在网络安全缺陷;
其中,所述根据所述第一测试网络响应信息和所述第三测试网络响应信息,判断所述网络服务器或所述缓存服务器是否存在网络安全缺陷的步骤,包括:
获取所述第三测试网络响应信息的第三HTTP状态码;
判断所述第三HTTP状态码与所述第二HTTP状态码是否相匹配;
若是,则判定所述网络服务器或所述缓存服务器存在网络安全缺陷,反之,则判定不存在网络安全缺陷。
6.一种电子设备,其特征在于,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现权利要求1至4中任一项所述的网络安全检测方法。
7.一种计算机可读的存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至4中任一项所述的网络安全检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310695670.9A CN116436705B (zh) | 2023-06-13 | 2023-06-13 | 网络安全检测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310695670.9A CN116436705B (zh) | 2023-06-13 | 2023-06-13 | 网络安全检测方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116436705A CN116436705A (zh) | 2023-07-14 |
CN116436705B true CN116436705B (zh) | 2023-08-11 |
Family
ID=87087628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310695670.9A Active CN116436705B (zh) | 2023-06-13 | 2023-06-13 | 网络安全检测方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116436705B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035809A (zh) * | 2009-09-29 | 2011-04-27 | 成都市华为赛门铁克科技有限公司 | 缓存中毒的防护方法和防护设备及防护系统 |
CN102714663A (zh) * | 2010-01-19 | 2012-10-03 | 阿尔卡特朗讯公司 | 用于预防dns缓存投毒的方法和系统 |
CN105827599A (zh) * | 2016-03-11 | 2016-08-03 | 中国互联网络信息中心 | 一种基于dns报文深度解析的缓存中毒检测方法及装置 |
CN115277080A (zh) * | 2022-06-22 | 2022-11-01 | 西安电子科技大学 | 基于默克尔树的内容分发网络缓存污染防御方法 |
CN115941353A (zh) * | 2022-12-30 | 2023-04-07 | 武汉绿色网络信息服务有限责任公司 | 缓存投毒检测方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9762556B2 (en) * | 2015-01-09 | 2017-09-12 | Verisign, Inc. | Registering, managing, and communicating with IOT devices using domain name system processes |
-
2023
- 2023-06-13 CN CN202310695670.9A patent/CN116436705B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035809A (zh) * | 2009-09-29 | 2011-04-27 | 成都市华为赛门铁克科技有限公司 | 缓存中毒的防护方法和防护设备及防护系统 |
CN102714663A (zh) * | 2010-01-19 | 2012-10-03 | 阿尔卡特朗讯公司 | 用于预防dns缓存投毒的方法和系统 |
CN105827599A (zh) * | 2016-03-11 | 2016-08-03 | 中国互联网络信息中心 | 一种基于dns报文深度解析的缓存中毒检测方法及装置 |
CN115277080A (zh) * | 2022-06-22 | 2022-11-01 | 西安电子科技大学 | 基于默克尔树的内容分发网络缓存污染防御方法 |
CN115941353A (zh) * | 2022-12-30 | 2023-04-07 | 武汉绿色网络信息服务有限责任公司 | 缓存投毒检测方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
DNS缓存污染的攻击方式和防御策略;程卫华;;电信快报(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116436705A (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11494460B2 (en) | Internet-based proxy service to modify internet responses | |
US11245662B2 (en) | Registering for internet-based proxy services | |
US10855798B2 (en) | Internet-based proxy service for responding to server offline errors | |
US20090064337A1 (en) | Method and apparatus for preventing web page attacks | |
US8578481B2 (en) | Method and system for determining a probability of entry of a counterfeit domain in a browser | |
WO2006119336A2 (en) | In-line website securing system with html processor and link verification | |
US11503072B2 (en) | Identifying, reporting and mitigating unauthorized use of web code | |
US20100030876A1 (en) | Method, system and apparatus for discovering user agent dns settings | |
Squarcina et al. | Can i take your subdomain? exploring {Same-Site} attacks in the modern web | |
CN109660552A (zh) | 一种将地址跳变和WAF技术相结合的Web防御方法 | |
US10360379B2 (en) | Method and apparatus for detecting exploits | |
CN115941353A (zh) | 缓存投毒检测方法、装置、电子设备及存储介质 | |
CN116436705B (zh) | 网络安全检测方法、装置、电子设备及存储介质 | |
Squarcina et al. | Can i take your subdomain? Exploring related-domain attacks in the modern web | |
KR20140146250A (ko) | 웹사이트에서의 악성 게시물 처리 시스템 및 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |