写点什么

以 Log4j 为例,如何评估和划分安全风险

作者:Owen Garrett

  • 2022-04-28
  • 本文字数:2753 字

    阅读完需:约 9 分钟

以Log4j为例,如何评估和划分安全风险

开源软件支撑着绝大多数面向互联网的应用程序。这类项目的可用性、可获取性和质量提升了企业的创新能力,并帮助它们取得成功。它们是很好的公共产品,应该受到赞美和保护。


开源的普遍存在意味着任何已经被发现的漏洞都会产生深远的影响。攻击者看到了巨大的机会,大量的企业和用户必须快速做出响应,在他们开发的应用程序以及使用的第三方应用程序和组件中识别易受攻击的软件实例。


事实上,软件漏洞是很常见的。那么,安全专业人员如何评估漏洞可能带来的风险,并将组织的精力集中在修复那些最重要的漏洞上呢?


建立全面的可见性——你无法保护你看不到的东西


安全团队负责整个应用程序的完整性,包括所有不是由企业开发人员开发的开源组件和第三方依赖项。人们已经做了很多工作来改进软件开发过程的安全性,并通过“左移”计划和 SBOM(Software Bill of Materials,软件物料清单)来跟踪依赖项,让部署到生产环境中的代码具有高度的安全性。但是,每当有新漏洞被发布时,该如何快速识别已经部署到生产环境中的代码在哪些地方将会出现这些漏洞?安全程序的第一步通常是全面获取整个 CI/CD 管道范围内的应用程序代码安全性的可见性,一直从构建阶段到部署阶段,并跨越所有的应用程序和基础设施,包括运行的容器、Kubernetes、云供应商、虚拟机和/或裸机。消除你的盲点,以便尽早检测到并降低攻击的破坏性。


关注最重要的东西:可利用性与脆弱性


在获得全面的可见性之后,组织经常会看到大型的基础设施中存在数以万计的漏洞。然而,理论上的漏洞列表几乎没有什么实际用途。在企业可以花时间修复的所有漏洞中,最重要的是要找出哪些漏洞对应用程序的安全性影响最大,因此必须首先修复它们。


为了找出这些漏洞,关键在于要了解脆弱性(Vulnerability,在已部署的软件中可被攻击者利用从而产生特定结果的弱点)与可利用性(Exploitability,可被攻击者用于获取利益的攻击路径)之间的区别。


需要高级别和本地访问权限的漏洞通常较少受到关注,因为对于远程攻击者来说要获得攻击路径比较困难(除非攻击者已经获得访问本地主机的高级权限,他们才有机会获得进一步的控制权)。值得关注的是可能由以下因素触发的漏洞,例如,不会被防火墙设备过滤的远程网络流量,以及直接从不可信的网络源接收流量的主机。


评估和划分潜在的漏洞利用


在根据漏洞的可利用性对其进行划分并以此来确定修复优先级时,你需要考虑以下的部分或全部标准:


  • 漏洞的严重程度:CVSS(Common Vulnerability Scoring System,通用漏洞评分系统)分数为漏洞的严重程度提供了一个基线,可用于对漏洞进行比较。然而,CVSS 分数并没有考虑实际的应用程序和基础设施的上下文,所以离获得准确的信息存在一定的差距。

  • 攻击向量——网络与本地系统访问:网络访问漏洞通常是攻击的第一步,而本地系统访问漏洞要在攻击者进入应用程序后才能发挥作用。这意味着你需要立即封掉任何会导致服务受攻击的网络攻击路径,同时找到服务节点上潜在的攻击行为,并采取纠正措施。

  • 贴近攻击表面:是否存在一种攻击路径,攻击者可以通过该路径到达并利用该漏洞?在考虑攻击路径时,需要考虑攻击者可能会绕过防火墙、负载平衡器、代理和其他跳转点,并解决其中的任何一个攻击点,同时让开发人员更新、测试和重新部署易受攻击的应用程序。

  • 网络连接的存在:尽管所有可以从外部触及的漏洞都值得关注,但带有通用网络连接的应用程序的漏洞是最值得关注的。攻击者通常会使用侦察(Recon)技术发现这些漏洞。


这里的关键是将运行时上下文添加到漏洞数据中,这样就能够识别最容易被利用的漏洞,并确定首先要修补哪些漏洞,因为它们对应用程序的安全性构成了最大的危险。


考虑使用开源的ThreatMapper等工具来帮助你识别最容易被利用的漏洞。随着条件发生变化,你需要持续不断地运行这样的工具,将安全工作放在在最需要的地方。


限制侦察活动


攻击者通常会根据事先准备好的剧本,使用在MITRE ATT&CK中记录的战术和技术展开攻击活动。这些战术遵循的是网络杀伤链等模型,从侦察活动开始,然后再进行初步的攻击。最初的攻击通常旨在获得有限的本地控制权,然后攻击者就有了大量的选择来探索、升级特权、安装持久控制系统和侦察邻近的系统,以便横向传播并找到更大的战利品。


要限制侦察活动的有效性,首先要确定攻击者可能采取的攻击路径。为了实现双保险,确保每一条攻击路径都有过滤技术保护:


  • 通过 WAF 捕获并丢弃已知的侦察流量;

  • 使用基于协议和源的过滤技术来限制能够访问这些路径的客户端;

  • 使用额外的应用程序级过滤:

  • 确保事务经过身份验证;

  • 对于 API 流量,确保事务来自可信的客户端。


ThreatMapper 可以可视化最容易被利用的漏洞的攻击路径,这样你就可以确定如何将它们关闭。


收集“攻击指标”和“损害指标”


尽管已经尽了最大的努力来保护攻击表面并限制了可见性,但仍然可能由于各种原因发生攻击——零日攻击、蓄意破坏供应链、对影子 IT 和其他非托管资产缺乏可见性,等等。通过NVD发布的 CVE 大约是每天50个,因此在产品中发现新漏洞的可能性非常大。


因此,另一条关键的防线是监控内部网络、主机和工作负载的攻击指标(IoA)和损害指标(IoC)。


IoA 可以包括来自不寻常来源的探测、侦察流量,或者可能表明存在 C2C(容器到容器)网络、远程遥测或泄漏企图的网络流量。IoC 表明主机出现了问题,攻击者已经进入,包括异常的进程行为、文件系统访问或文件系统修改。


建议构建“红色团队”功能,让它定期扫描应用程序,找出攻击信号及其对组织的影响。寻找一些可以帮助你自动化和管理大量 IoA 和 IoC 事件的工具,包括最小化误报、存储事件以供后续的分析,最重要的是将事件关联起来,以便了解攻击特征以及这些攻击对应用程序的渗透情况。有了这些知识,你就可以部署有针对性的对策,阻止来自内部或外部的侦察或攻击流量,并隔离受损的工作负载。


结论


Log4j 告诉我们,漏洞是不可避免的,但这不应该成为阻止组织使用开源代码作为创新和实现其他有价值的目标的障碍。在指导组织开展安全工作时,安全主管们可以获取跨所有基础设施的应用程序流量的全面可见性,结合漏洞可利用性评估和优先级排序的策略,在寻找攻击痕迹时持续保持警惕,降低与 Log4j 和下一个重大漏洞相关的风险。


作者简介


Owen Garrett 是 Deepfence 公司的产品和社区主管,为 Deepfence 的安全技术制定开源战略。他以他在 Riverbed、NGINX 和 F5 等公司 20 年的软件工程和产品领导经验为基础,在 Deepfence 指导公司的路线图,为云原生应用创建一个开源的“安全和可观察性”平台。在加入 Deepfence 之前,Owen 领导 NGINX 的产品开发,让 NGINX 发展成为部署最为广泛的开源项目之一,保护了超过 5 亿个网站,成为无数生态系统项目的核心。Owen 在网络技术方面拥有多项专利,经常在技术会议上发表演讲,是行业活动的思想领袖。


原文链接

Strategies for Assessing and Prioritizing Security Risks Such as Log4j

2022-04-28 09:583188

评论

发布
暂无评论
发现更多内容

别着急摆烂,看看你到底值多少钱?

引迈信息

程序员 软件开发 低代码 IT JNPF

阿里云微服务引擎负责人李艳林:云原生网关当道,会带来哪些改变

阿里巴巴云原生

阿里云 微服务 云原生

Postman 和 GraphQL:最佳实践指南

Liam

Java Postman API graphql 接口工具

华为云 UCS GitOps:轻松交付多集群云原生应用

华为云开发者联盟

华为云 华为云开发者联盟 企业号 6 月 PK 榜

中企出海所面临的几点人力资源挑战

用友BIP

中企出海

面向多告警源,如何构建统一告警管理体系?

阿里巴巴云原生

阿里云 云原生 可观测

Java线程池一、基本概念和原理

echoes

Java 线程池

低代码开发与数智制造:数字转型的无缝结合

加入高科技仿生人

低代码 数智化 数智制造

构建财务共享体系,智能化引领转型升级

用友BIP

财务共享

电源管理IC下游市场向高端工业和汽车领域转型,这家芯片设计厂商值得关注

华秋电子

共享电动单车生产厂家怎么找合适

共享电单车厂家

共享电动车厂家 共享电单车厂商 共享电动车生产 本铯电动车厂家

「悦数图数据库」亮相中国国际信息通信展览会,推进图技术产业化发展

悦数图数据库

通信 图数据库

eosio.system智能合约介绍(一)账户和权限

BSN研习社

云原生中间件套件,如何为企业数字化转型提供支撑

金蝶天燕云

云原生 中间件 信创

微服务高并发概念与核心类:调用链上下文与入口类

互联网架构师小马

「悦数图数据库」亮相中国国际信息通信展览会,推进图技术产业化发展

悦数图数据库

通信 图数据库 运营商

Java线程池二、使用线程池进行任务管理

echoes

了解 Dubbo:分布式服务框架的基础知识

Apifox

程序员 gRPC dubbo RPC 开发

华为云新一代分布式数据库GaussDB,给世界一个更优选择

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

腾讯企点客服赛道国内TOP1!Gartner报告公布最新市场份额

人称T客

浅谈低代码

不叫猫先生

低代码 6 月 优质更文活动

LRU缓存策略

不叫猫先生

LRU 6 月 优质更文活动

javaScript实现动态规划(Dynamic Programming)01背包问题

不叫猫先生

动态规划 JavaScrip 6 月 优质更文活动

实例讲解Flink 流处理程序编程模型

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 6 月 PK 榜

突破创新!Windows主机助你打造独一无二的网站!

一只扑棱蛾子

Windows主机

大模型扎堆「赶考」,语文还是国产AI行,文言文能力超过95%考生

Openlab_cosmoplat

人工智能 机器学习 AI 高考

基于 AIGC,RocketMQ 学习社区探索开源软件学习新范式

阿里巴巴云原生

阿里云 RocketMQ 云原生 AIGC

旭阳数字:让焦化行业供应链更数智

用友BIP

数智平台

生态伙伴 | 中电创新科技集聚示范区携手华秋硬创,加速智能硬件孵化

华秋电子

中移链节点动态管控介绍

BSN研习社

TS中type和interface在类型声明时的区别

不叫猫先生

6 月 优质更文活动

以Log4j为例,如何评估和划分安全风险_语言 & 开发_InfoQ精选文章