视频资料

image.png

  • 应用问题:直接依赖,间接依赖,间接依赖的间接依赖…(是一个调用链路图问题)

image.png

  • 依赖自身可能是恶意的,譬如上面(污染某个恶意组件)

image.png

  • 一般恶意包如何攻击?
    • 写一个相似的名字(打错字)
    • 包负责人直接更新出漏洞版本
    • 同名恶意包…
    • 包攻击并感染…

image.png
image.png

  • 关于同名恶意包的解读;外部仓库搞一个和内部仓库同名的,然后通过引入,系统自动同步外部恶意包到企业内部仓库。

image.png

  • 这个很好理解,就是”包负责人卖控制权“给黑客。

image.png

  • 有的软件动态加载外网URL,然后外网URL被接管后,直接替换成恶意包执行。

image.png

  • 依赖污染问题:如何实现攻击?

image.png

  • 直接提交恶意的包,然后自动化CICD就部署到线上了。

image.png

  • 奈飞的方法论:发现 -> 预警 -> 缓解。

image.png

  • 建设漏洞库。

image.png

  • 爬各种数据源

image.png

  • 各种信息整合成Json,然后可以通过数据驱动决策(该不该升级)

image.png

  • 整成API,可被调用。

image.png

  • 静态正则解析pom.xml ,menifest文件是不够的。

image.png

  • 预存储依赖索引(jar包)

image.png

  • 预存储依赖索引(镜像-操作系统)

image.png

  • 预存出依赖索引(AMI,类似K8S这种)

image.png

  • 运营模式:输入GAV,告诉我那些镜像使用了它。

image.png

  • 漏洞预警也需要分层干(不是所有都升级),分层方式:
    • 严重优先(CVSS评分)
    • 有攻击方法优先
    • 重要应用优先

image.png

  • 一种分层升级的方法

image.png

  • 打分表案例 -> 多个维度决策要不要管。

image.png

  • 关于升级:找到最小升级版本
  • 找到最优先解决的依赖(升级依赖组件也需要顺序)

image.png

  • 升级最小版本

image.png

  • 计算模式(算法)

image.png

  • 找到最优先升级的组件(尤其是依赖图时)

image.png

  • 找到负责人信息,以及包在哪个Git地址。

image.png

  • 风险缓解:Gradle。

image.png

  • 风险缓解:Yarn

image.png

  • 风险缓解:Npm

image.png

  • 开始推升级后,可以看依赖有漏洞应用数会下降,分为Blacklist(卡发布)、Deprecation(提醒)等..

image.png

  • 什么东西比较难?接下来还可以干?
    • 除了看使用了某组件外,也看有没有使用恶意的方法与函数。

image.png

  • 一种可行方案:用IAST /RASP方式,拦截恶意方法?
  • 供应链安全 - 与IAST / RASP 联动。

image.png

  • 用一个机器人来干,不用人工干
    • 避免人工升级,然后发现系统挂了,回滚…
    • 机器人能否自动测试,通过后,人工点确认升级?

image.png

  • 如何向管理层解释干这个事儿的价值,如何衡量‘越来越好’?
    • 看清楚我们一共用了多少开源组件?
    • 看清楚我们通常修复开源漏洞,需要多长时间?
    • 对整体修复时间分阶段分层,看时间主要消耗在哪里?(越来越快)