写点什么

以 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:582723

评论

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

全球熵ETV系统APP软件开发

系统开发

Java架构速成笔记:七大专题,1425页考点,挑战P8岗

Java架构追梦

Java 学习 面试 java架构

P8架构挑战:七大专题1425页考点,你能成功吗?

小Q

Java 学习 程序员 架构 面试

开发实践丨用小熊派STM32开发板模拟自动售货机

华为云开发者联盟

物联网 小熊派 开发板

可见性是什么?(通俗易懂)

叫练

volatile JMM 多线程 synchronized

人脸识别是如何实现的

anyRTC开发者

ios 音视频 WebRTC 人脸识别 安卓

《算法导论》.pdf

田维常

甲方日常 65

句子

工作 随笔杂谈 日常

没有它你的DevOps是玩不转的,你信不?

华为云开发者联盟

容器 DevOps 微服务

如何预防勒索攻击事件?这份安全自查指南请查收

京东科技开发者

数据安全 数据加密 系统安全

《css大法》之使用伪元素实现超实用的图标库(附源码)

徐小夕

CSS css3 大前端 CSS小技巧

Mybatis 中xml和注解映射,这次终于搞明白了

田维常

mybatis

有钱还APP系统开发|有钱还软件开发(现成)

系统开发

区块链司法存证应用落地应用解决方案

t13823115967

区块链落地开发

业务中台建设-数据

孝鹏

架构 中台 数据 赋能

安装MySQL后,需要调整的10个性能配置项

Simon

MySQL percona server

英特尔携手德晟达、游密,发布云会议终端解决方案,打造视听新体验

E科讯

话题讨论 | 立一个近期的flag,你会想到什么?

xcbeyond

话题讨论

不满意社区的轮子,我们自创了一套 React Hooks 风格的数据加载方案

LeanCloud

API React Hooks

北京奥森小景

小马哥

摄影 美景 奥森 28天写作

话题讨论 | 30 张图解高并发服务模型你必须这些

程序员柠檬

话题讨论

原创 | 使用JPA实现DDD持久化-O/R映射元数据:映射注解分组

编程道与术

Java hibernate 编程 mybatis jpa

原创 | 使用JPA实现DDD持久化-O/R映射元数据:类级映射-实体和值对象

编程道与术

Java hibernate 编程 mybatis jpa

使用JPA实现DDD持久化-O/R映射元数据-特殊属性映射:ID、Version和Transient

编程道与术

Java hibernate 编程 mybatis jpa

一文教你看懂缓存穿透、击穿、雪崩、降级等异常

鄙人薛某

Java 缓存 后端 缓存击穿 缓存雪崩

网咯请求中的 connectTimeout 和 soTimeout

不在调上

话题讨论 | 选择做一个程序员,你后悔过吗?

xcbeyond

话题讨论

情报合成研判系统开发,智慧警务解决方案

t13823115967

智慧公安

原创 | 使用JPA实现DDD持久化-领域模型:对象的世界

编程道与术

Java hibernate 编程 mybatis jpa

operator-sdk & kubebuilder

QiLab

k8s operator-sdk kubebuilder crd

时序数据库DolphinDB与Druid的对比测试

DolphinDB

数据分析 时序数据库 Druid 数据库选择 DolphinDB

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