最后更新于2019年5月10日(星期五)16:56:33 GMT

Today (October 29, 2018)我们分享了Rapid7产品和支持服务中已经修复的几个漏洞. 你不需要采取任何行动(除非你有AppSpider Enterprise并且还没有开启) Version 3.8.207,于2018年8月发布),因为所有问题都已得到解决. Rapid7没有证据表明这些漏洞已经被利用. 我们披露这些漏洞是为了保持透明度, 感谢那些花时间负责地报告安全问题的人, 并提供一些安全问题的提醒,您应该在自己的组织中进行审计.

CSRF protection

在AppSpider Enterprise版本3之前.8.197,用户注销时未设置CSRF令牌. 知道AppSpider Enterprise实例的IP地址的恶意行为者可以通过不断地将用户注销来建立拒绝服务. 在用户注销时缺少CSRF令牌设置意味着此类请求没有得到正确验证.

此漏洞可能允许攻击者阻止AppSpider Enterprise的正常使用.g.,以防止在进行另一次攻击时进行扫描.

Rapid7为该漏洞分配了CVE-2017-5265(内部跟踪为R7-2018-38). 它是CSRF (CWE-352), with a base CVSSv3 score of 3.1. 修复了AppSpider企业版CVE-2017-5265 Version 3.8.197,于2018年1月发布.

需要采取的潜在行动:如果你运行的AppSpider Enterprise版本早于3.8.197,你应该升级到 3.8.197 或者在您方便的时候更新.

Rapid7 thanks Hari Namburi 报告此漏洞并在缓解期间与我们合作.

XSS protection

在版本3之前,AppSpider Enterprise中存在几个存储的XSS漏洞.8.207:

  • CVE-2018-5555(内部跟踪为R7-2018-33)
  • CVE-2018-5556(内部跟踪为R7-2018-34)
  • CVE-2018-5558(内部跟踪为R7-2018-36)

它们存在于影响不同功能的不同端点, 但总的来说,它们允许潜在的恶意行为者将JavaScript注入到应用程序的一个部分,然后在另一个部分执行. 它们都是不恰当中和输入的例子(CWE-79), with a base CVSSv3 score of 3.8. 所有这些漏洞都在AppSpider Enterprise中得到了修复 Version 3.8.207,于2018年8月发布.

需要采取的潜在行动:如果你运行的AppSpider Enterprise版本早于3.8.207,你应该升级到 3.8.207 或者在您方便的时候更新.

此外,还发现了一个反射XSS漏洞 http://u6f.theredpillbooks.com/resources 它允许JavaScript包含在URL参数中. 这可能使恶意用户能够窃取会话数据和其他敏感信息. 这种向量在网络钓鱼攻击中也很有用, 因为熟悉的域名和合理的路径会使网络钓鱼URL更难被发现.

Rapid7将R7-2018-11分配给此漏洞. 这是不恰当中和输入(CWE-79), with a base CVSSv3 score of 6.1. R7-2018-11在2018年3月通过对URL参数的额外处理进行了修复. 因为此漏洞是在托管应用程序中发现的, 它不符合CVE分配的条件(参见 inclusion rule 3 CVE计数政策).

Rapid7 thanks Athar Syed 报告此漏洞并在缓解期间与我们合作.

敏感信息处理

Passwords and URLs

在版本3之前,AppSpider Enterprise中检查了密码复杂度.8.207,密码值作为URL参数传递. 捕获此值可能允许恶意行为者以有效用户身份登录, 然后更改该用户的密码以延迟将来的访问.

这个漏洞很难通过两种主要途径利用:攻击者需要能够在用户触发密码复杂度检查(如密码复杂度检查)期间读取对AppSpider Enterprise实例的http加密GET请求.e., 在密码更改/重置期间), 或访问AppSpider Enterprise web服务器日志或本地缓存的浏览器历史记录, 请求参数可能存储在未加密的位置.

Rapid7为该漏洞分配了CVE-2018-5557(内部跟踪为R7-2018-35). 它是GET请求中通过查询字符串暴露信息的一个实例(CWE 598), with a base CVSSv3 score of 4.2. 通过更改密码复杂度检查以使用POST请求修复了CVE-2018-5557. 这是在AppSpider企业版发布的 Version 3.8.207 in August 2018.

需要采取的潜在行动:如果你运行的AppSpider Enterprise版本早于3.8.207,你应该升级到 3.8.207 或者在您方便的时候更新.

密码及更新

在更新过程中,AppSpider Enterprise版本3之前.8.205以纯文本形式公开了AppSpider Enterprise数据库的凭据. 凭据显示在安装程序/更新界面中的用户对话框中. 在AppSpider Enterprise日志文件中没有发现凭证的证据, 所以曝光仅限于运行更新(以及任何自定义修改)的AppSpider Enterprise主机, 例如用户添加的日志).

获取这些凭据将允许恶意行为者访问AppSpider Enterprise DB. Additionally, 访问数据库时使用的帐号可以是域服务帐号, 哪一个可以允许访问同一域中的其他网络系统. 注意,用于使用AppSpider Enterprise测试应用程序的凭据在此场景中不会公开.

因为更新脚本是从主机系统本身运行的, 利用此漏洞需要攻击者对运行AppSpider Enterprise的主机具有本地访问权限, 并且他们观察更新对话框. 仅仅访问AppSpider Enterprise实例web UI是不够的. 要远程利用此漏洞,还存在其他不太可能的要求(即. 攻击者可以通过RDP访问主机, 他们以相同用户登录运行更新对话框), 所以我们不会这样描述它.

Rapid7将R7-2018-48分配给此漏洞. 这是一个不安全储存敏感资料的例子(CWE 922), with a base CVSSv3 score of 7.5. R7-2018-48在AppSpider企业中被修复 Version 3.8.205,于2018年6月发布.

需要采取的潜在行动:如果你运行的AppSpider Enterprise版本早于3.8.205,你应该升级到 3.8.205 或者在您方便的时候更新.

Rapid7 thanks Matt Pardo 报告此漏洞并在缓解期间与我们合作.

Service paths

Before Version 3.8.AppSpider企业调度器服务在注册期间使用了未引用的服务路径. 这意味着放置在适当路径中的可执行文件可能比预期的可执行文件更优先. 这反过来又可能允许恶意行为者升级他们的本地特权, 甚至可以根据配置升级到域帐户.

利用这个漏洞是很困难的,因为它要求恶意行为者已经能够访问AppSpider Enterprise主机, 以及将可执行文件放置在服务路径中所需的文件系统位置的写权限. 如果满足这些条件并且成功放置了恶意可执行文件, 攻击者必须等待服务(或父主机操作系统)重新启动. 这种重新启动将运行恶意的可执行文件,并允许攻击者运行他们选择的操作.

Rapid7将R7-2018-24分配给此漏洞. 它是无引号搜索路径或元素(CWE-428), with a base CVSSv3 score of 7.8. R7-2018-24在AppSpider企业中被修复 Version 3.8.第206部,2018年7月上映.

需要采取的潜在行动:如果你运行的AppSpider Enterprise版本早于3.8.206,你应该升级到 3.8.206 如果可能的话,更新一点.

DNS and CloudFront

正如我们在 2018年第一季度DNS和CloudFront总结部分, CloudFront备选域名和DNS cname之间的差异是有问题的. 它们可能会使您面临以前有效的url被接管并用于恶意目的的风险.

今天,我们必须再次分享这一教训, 因为我们在R7-2017-16中发现了这个问题的另一个实例,这要归功于社区中有人的披露. As before, 一个在新名称投入生产后不再使用的DNS CNAME指向CloudFront, 但CloudFront发行版不再与之关联. 这可能允许恶意行为者创建一个新的CloudFront分发并将其与该CNAME关联, 使他们能够使用他们控制的逼真的url. 值得庆幸的是,我们是由一个善良的漏洞报告者而不是恶意行为者提醒的R7-2017-16, CNAME条目被删除. 有关此类漏洞的更多潜在问题,请查看 2018年第一季度DNS和CloudFront总结部分.

由于CNAME在仍在开发的产品中使用,可能错过了相同问题的新实例. 当项目涉及到新的开发团队时, 提供产品的新方法, 以及新的部署工作流, 像这样的问题很容易被忽略. 部署和验证中的自动化可以提供帮助, 但在不正常的项目中,沟通和审查安全检查和其他卫生步骤也很关键.

Summary: Takeaways

  • CSRF:可以很容易地将易受CSRF攻击的一些端点分类为低优先级, 但是请记住,在适当的情况下,这些仍然可以对攻击者有用. 不要急着把它们推下优先级!
  • XSS: 安全应用程序设计的第一条规则 “不要相信用户控制的输入.而有经验的软件开发人员应该很清楚这一点, 假设机器生成的字符串不是“用户生成的”可能很诱人,” and thus, 无论如何都不是“用户控制”的. 这种诱惑可能就是为什么注射是第一选择. 1 risk in OWASP的应用程序安全性前十名列表.
    • 确定在web应用程序中处理的文本字符串的完整来源,以确保首先对来自用户输入的任何组件进行适当的清理.
  • GET请求参数HTTPS是一种加密网络内容并保护其免受窥探的绝佳方式, 但是GET请求需要特殊处理. GET请求的参数可以通过正常web浏览的工件(如web服务器日志)中的未加密存储暴露, 本地浏览器历史记录, 和引用头(e.g.,如果安全页面请求外部资产)。. 因此,任何敏感信息(如密码)都应该仅作为 POST 参数,这些参数通常不会记录在上面的工件中.
    • HTTPS请求中的POST参数可能在客户端和web服务器之间保密, 而其他的——get参数, path names, 而且域名也可能有漏洞. 看看这篇文章 以获取在各种上下文中公开GET参数的示例.
  • 审计密码使用情况这似乎是显而易见的, 但是值得重复的是——调用密码值的任何地方都是进行审计的好地方. 确保您知道该值将显示在何处以及可能存储在何处. 对于任何这种情况,询问是否真的需要在那里显示或存储它.
  • Quote service paths始终确保可执行文件的路径被正确地引用. 如果在一个或多个名称组件中缺少引号和空格,就有可能放置可执行文件,这些可执行文件将在解析竞赛中获胜,并且在不知道您想要的可执行文件的情况下被调用.
    • 看看这篇文章 有关检查易受攻击的服务路径的示例和方法. Also see this article 有关利用此漏洞的常见困难以及检查此漏洞的更多示例.
  • 审计指向CloudFront的DNS记录:这些必须要么注册到一个活跃的CloudFront发行版,要么删除.
    • Gotcha仍在孵化中的新项目的记录很容易被遗漏! 花点时间与从事非常规项目的团队进行沟通和检查安全检查.

再次感谢所有帮助Rapid7更好地保护我们的产品和服务的社区贡献者——包括上面提到的那些, 还有那些选择匿名的人. 请继续汇报! ☄️