对IBM Data Risk Manager 软件中 4个 0 day 漏洞的分析

0x01 漏洞介绍

IBM Data Risk Manager(IDRM)是IBM的企业安全软件,可以汇总并提供所有企业安全风险的完整视图。

该产品接收来自漏洞扫描工具和其他风险管理工具的信息提要,对其进行汇总,并允许用户对其进行综合分析。

对IDRM Linux虚拟设备进行了分析,发现它包含四个漏洞,三个严重风险和一个高风险:

· 身份验证绕过

· 命令注入

· 不安全的默认密码

· 任意文件下载

此分析描述了四个漏洞以及将前三个漏洞链接为root用户以实现未经身份验证的远程代码执行的必要步骤。此外,两个绕过身份验证并利用远程代码执行任意文件下载功能的Metasploit模块已经发布。

在披露时,尚不清楚最新版本2.0.6是否受这些漏洞影响,奇热但很可能是受此影响,因为在更新日志中均未提及漏洞修复,并且该漏洞是在报告这些漏洞之前发布的到IBM。Agile InfoSec可以访问的最新版本是2.0.3,并且该版本肯定很容易受到攻击。

一堆 0-day 漏洞!

在披露时,这些漏洞为“ 0-day 漏洞”。试图与CERT / CC联系以协调与IBM的披露,但是IBM 拒绝接受漏洞报告,并通过以下方式对CERT / CC做出了回应:

由于该产品仅用于由客户支付的“增强”支持,因此我们评估了此报告,并认为它不在我们的漏洞披露程序的范围之内。我们的政策https://hackerone.com/ibm中对此进行了概述。要参加此计划,你必须在提交报告前的6个月内对IBM Corporation,IBM子公司或IBM客户进行安全性测试。

这是IBM的的回应,IBM是一家市值数十亿美元的公司,正在向全球大型公司出售安全企业产品和安全咨询。他们拒绝在其产品之一上接受免费的高质量漏洞报告。

IBM对其“ bug bounty program”不提供任何奖励,只有致谢

对IBM Data Risk Manager 软件中 4个 0 day 漏洞的分析

我没有要求或期望得到赏金,因为我没有HackerOne帐户,并且我不同意HackerOne或IBM在该处的披露条款。我只是想以负责任的方式向IBM披露这些内容,然后让他们进行修复。

IDRM是一种处理非常敏感信息的企业安全产品。入侵IDRM设备可能会导致公司全面受损,因为它存储用于访问其他安全工具的凭据,更不用说它包含有关影响公司的关键漏洞的信息。

· IBM为什么拒绝接受免费的详细漏洞报告

· 他们只接受客户的漏洞报告吗

· 还是该产品不在支持范围内?如果是这样,为什么仍要出售给新客户

· 在销售企业安全产品时,它们怎么会如此无可厚非

但我至少获得了新技术。

0x02 漏洞详情

1:身份验证绕过

· CWE-287:不正确的身份验证

· CVE-TODO(尚未分配)

· 风险分类:严重

· 攻击媒介:远程

· 限制条件:无

· 受影响的产品/版本:

· IBM Data Risk Manager 2.0.1至2.0.3已确认容易受到攻击

· IBM Data Risk Manager 2.0.4至2.0.6可能容易受到攻击

IDRM在/ albatross / saml / idpSelection有一个API端点,该端点将攻击者提供的ID与系统上的有效用户相关联。处理此端点的方法如下所示

 @RequestMapping(value={"/saml/idpSelection"}, method={RequestMethod.GET})
  public String idpSelection(HttpServletRequest httpRequest, HttpServletResponse httpResponse, Model model, @RequestParam(value="id", required=false) String sessionId, @RequestParam(value="userName", required=false) String userName, RedirectAttributes rattrs) {
   List allUrls = this.a3repository.getA3AllUrlsRepository().findByTypeAndIsDeletedAndGuardiumType(A3Constants.A3_URL_TYPE.MICROSERVICES.getValue(), A3Constants.INT_ZERO, A3Constants.A3_MICROSERVICE_TYPE.IDENTITY_MANAGER.getValue());
   if (allUrls == null || allUrls.size() == 0) {
    rattrs.addAttribute("message", (Object)"Microservice instance is not running or more than one instance is running, please start the microservice and try again");
    return "redirect:/error";
   }
   if (allUrls.size() == 1) {
    A3AllUrls aUrl = (A3AllUrls)allUrls.get(0);
    String url = aUrl.getUrl();
    if (userName == null || userName.equals(""))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值