我有一个简单的。net核心应用程序在AWS
ECS-ec2
上运行,我最近做了一个漏洞检查,它给了我结果
私有IP披露GET: https://my-domain.com/docs/swagger-ui-bundle.js
我如何减轻这个漏洞并摆脱它?有什么(头),我可以设置从ecs侧或这应该是始终从应用程序方面做些什么?
或多或少,私有IP地址泄露是一种低临界漏洞。原因是,泄露计算机网络上其他主机的私有IP将允许攻击者扩展攻击面,因为他们现在知道托管在同一网络上的单独设备的连接信息。它不一定是一个重要的安全漏洞的原因是,您可以发现主机以多种方式存在于计算机网络中。然而,服务器的私有IP地址泄露绝对是攻击者能够发现网络上其他主机存在的最常见方式之一。下面展示了一个示例响应,我将看到这些信息泄露,这可能是导致漏洞的原因:
GET / HTTP/1.0
HTTP/1.1 301 Moved Permanently
Cache-Control: no-cache
Pragma: no-cache
Location: https://10.100.1.5/owa/
Server: Microsoft-IIS/8.5
X-Powered-By: ASP.NET
Date: Tue, 20 Feb 2018 15:21:02 GMT
Connection: close
Content-Length: 0
私有IP地址泄露不是一个可以立即被利用的漏洞,因为它实际上只泄露了有关您的环境的细节,这些细节可能会被攻击者用来推进进一步的攻击。是不是很草率,可能不是最佳实践?有些人可能会对这个答案提出异议,但我的回答是肯定的,但事实是,有时web应用程序的功能需要行为才能发挥作用。您是否应该在您的情况下解决这个问题的答案取决于您的业务环境,您是否向托管您最敏感的皇冠宝石的非常敏感的服务器泄露了私有IP ?那么,是的,你不应该披露它,你应该修复它。但如果只是一些不太重要的主机,那么披露私有IP是不敏感的。
作为一个攻击者,我喜欢看到应用程序泄露这类信息,并且知道我可以通过多种方式找到它。但我真正想说的是SSRF漏洞。假设您的应用程序有服务器端请求伪造(SSRF)漏洞,攻击者可以使用此私有IP地址披露来帮助他们将攻击升级为所谓的盲SSRF,因为他们可以与该主机交互,因为他们知道它存在,因为您披露了它存在的事实(除非您欺骗响应以包含假的内部IP,我怀疑考虑到当前的上下文)。
在我过去的工作中,我不得不修正这样一个错误。我放了两层防御。
- 我在IIS服务器上运行了以下命令:
appcmd.exe set config -section:system.webServer/serverRuntime /alternateHostName:"myServer" /commit:apphost
- 我添加了以下内容以防止私有IP地址再次进入响应:
<configuration>
<system.webServer>
<rewrite>
<outboundRules>
<rule name="Remove RESPONSE_Server">
<match serverVariable="RESPONSE_Content-Location" pattern=".+"/>
<action type="Rewrite" value=""/>
</rule>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
如果你有任何问题请告诉我。