百家讲坛 | 裴伟伟:企业中安全团队应当如何反馈漏洞

news2024/11/16 7:34:24

作者简介:裴伟伟,洞源实验室创始人,国家网安基地网络安全行业专家,网安加社区特聘专家,持有CISSP、PMP证书,曾在HITCON、可信云大会、开源产业大会等安全论坛发表演讲。曾任国内某安全实验室负责人、某互金企业安全负责人、某头部SaaS企业首席信息官,负责安全合规、IT审计、软件安全、基础安全、数据安全、安全运维和安全研发等工作,擅长企业安全建设与运营、软件安全开发以及技术团队建设与管理。

无论是做漏洞研究还是做安全测试,最终都需要以文本和图片的方式将安全漏洞的信息呈现给需要理解漏洞的人,这个人可能是漏洞相关产品所在机构的审核人员,也可能是漏洞所属产品的研发人员,或者是产品经理之类的决策或管理人员。

在企业的安全管理中,无论是通过自动化漏洞扫描,还是通过人工安全测试,再或者是和相关团队就安全漏洞进行反馈,安全部门都需要将安全漏洞的信息传递给业务部门进行修复。

但往往出于自身的便捷以及专业理解的偏差,安全团队提交的漏洞信息往往是安全产品原生的报告,或者是略加修饰的报告,从安全人员角度可以很容易理解的报告。对于业务方的产品经理、研发人员、运维人员,在庞杂的工作压力之余查看漏洞信息就像从100份简历中用5分钟筛选值得面试的候选人,“简历”的清晰、简单、易懂成为首选,加之专业名词的应用,使得查看漏洞信息的人可能会对这些专业的漏洞信息有一种莫名其妙、不知所云的感觉。

当然会有技术人员可以很容易,或者稍加注意可以通过漏洞报告发现程序中的漏洞或缺陷,但通用型的漏洞修复方案会增加漏洞修复人员的学习成本和修复成本,不得不花时间和精力就漏洞修复方式进行二次沟通,或者自我学习,倘若是自我学习之后“发现”的修复方式,可能会又会面临漏洞修复不彻底,或者漏洞根本未被修复的尴尬。

笔者曾经遇到某客户的副总看着产品漏洞报告,一脸疑惑的询问漏洞描述中的某专业术语是什么含义,并随口问了与会的研发人员,对方也支支吾吾,而从安全人员的角度这个名词早已众人皆知。

因此,在安全工作中,安全团队反馈给其他团队或部门的漏洞信息如果足够的详实,能够减少很多安全人员与非安全人员之间的沟通成本,尤其是复杂的漏洞或者是危害性高但又从业务角度体现不明显的漏洞,安全人员与非安全人员之间常常会对于漏洞定级产生分歧和争议,比如研发人员认为是低危,安全人员认为是高危,又或者研发人员不认为是漏洞,需要安全人员展示漏洞的危害性,比如安全人员反馈的漏洞是关于SSL/TLS协议的漏洞,或者是HTTP请求中使用了PUT/DELETE等不安全的请求方法,这时安全团队面对研发人员关于漏洞危害性的反问,会陷入无法自证的尴尬局面。

对于企业安全工作,漏洞报告或漏洞信息的根本目的是方便漏洞修复人员理解漏洞,并制定策略、确定优先级、执行修复、排查漏洞和预防同类漏洞再次发生,将内部的协作效率尽可能提升,并降低不必要的内部沟通成本,以及不必要的矛盾,就像用户开着车辆去4S店进行车辆保养,4S店的工作人员找到用户反馈车辆保养中发现的车辆维修或配件问题,用户大概会考虑:

1. 怎么理解这个问题?听不懂的问题没有办法判断要不要解决,可能会白花钱;

2. 理解问题之后,问题能有多严重?不严重的问题可能不用处理,可能会白花钱;

3. 如果问题严重,怎么证明问题的存在,而不是4S店瞎编?只是理论上的严重也可以不用处理,可能会白花钱;

4. 如果问题存在且严重,需要什么代价,用什么方式处理?如果代价过高可能不如过段时间换一辆新车,否则会白花钱。

根据笔者在企业安全建设过程中做安全建设的经验,以及和白帽子对漏洞进行沟通和评估的经验,笔者认为,无论是在企业内部的漏洞信息呈现,还是安全人员作为乙方提供漏洞信息至漏洞平台或甲方公司,漏洞信息或安全报告中的漏洞详情的部分需要体现以下内容:

▪ 漏洞名称:即简洁、清晰、易懂的标题

▪ 漏洞描述:漏洞的上下文关系、漏洞原理以及利用成功后的影响

▪ 漏洞位置:漏洞出现的位置,比如URL、参数、文件或其他资源

▪ 影响范围:漏洞利用成功后受影响的用户、客户或其他目标人群

▪ 漏洞危害:漏洞利用成功后的危害情况简短说明

▪ 漏洞复杂度:漏洞利用的条件和难度的简短说明

▪ 发生概率:发生漏洞被利用的概率,比如:高、中、低

▪ 漏洞严重性:结合漏洞危害和发生概率评估的漏洞严重性,比如:严重、高危、中危、低危 

▪ 复现过程:能够复现漏洞的逐步的操作说明,确保漏洞修复人员可复现漏洞

 修复建议:能够帮助开发者或相关人员修复或缓解漏洞的具体方式

漏洞名称

漏洞名称是对于漏洞信息的简要说明,但不建议在其中使用专业术语或名词,过于简单的漏洞名称和过于专业的漏洞术语对于修复人员而言无法都无法立即了解漏洞的基本情况。

比如,上图中是某漏洞扫描工具导出的扫描报告,其中一个漏洞的名称是:

电话号码

如果将这个漏洞名称进行口头反馈,大概是“您好,我们发现了一个安全漏洞,它的名字叫电话号码”,听到这句话的修复人员大概也会产生一个大大的问号,就像早年有公司宣传的“手机号码中毒”风险。这个漏洞标题过于简单,以至于需要漏洞修复人员仔细查看完整的漏洞描述之后,才能注意到是应用程序的注释或错误信息页面中包含了手机号码信息。

如此,这个漏洞名称应该改为:

XX页面或注释存在电话号码泄露

较为清晰的漏洞名称可以帮助漏洞修复人员在看到漏洞名称后快速初步判断漏洞修复的优先级,并决定是否需要进一步查看该漏洞的后续信息。

漏洞描述

漏洞描述是对于漏洞名称的更加详细的补充,描述用来介绍漏洞的基本原理,以及漏洞在应用程序中的上下文关系,还有一旦漏洞利用成功可能产生的通用的影响(即一般情况下可能会有什么影响)。通过查看详细、精准的漏洞描述,漏洞修复人员能够更准确理解应用程序中的漏洞情况,甚至学习这类漏洞的基本情况,在后续的开放过程中避免类似漏洞的发生。

以上文中的漏洞名称为例,通用的漏洞描述如下:

Web应用程序中错误消息或者代码注释中含有电话号码,可能被用于社会工程学攻击。

这段描述中的“社会工程学”会让多数非安全人员感觉到困惑:什么是社会?还有工程学?是一种学术么?漏洞描述做人人都理解的假设,会让看到漏洞信息的其他技术人员增加漏洞修复的隐性成本。

更为详细的漏洞描述如下:

XX页面路径下包括XX等地址在内的页面注释或页面信息中存在手机号码的泄露,该号码可能会被攻击者用于挖掘、检索更多关于企业和员工的信息,造成更大范围的攻击,或伪装成企业内部人员通过手机通讯诱导企业员工做出符合攻击者意图的操作。

漏洞位置

漏洞位置描述的是发现漏洞的具体位置,包括应用程序中具体的地址、部分以及相应的参数,且能够让修复人员根据位置信息快速定位漏洞。比如:

URL:https://example.com/news (新闻页面)

参数:请求参数page

在安全漏洞响应中,花费时间最多的往往不是漏洞修复方法,而是如何定位漏洞在企业资产中的位置,大到具体的系统,小到具体的代码行,以及相应的责任人,即漏洞响应最终需要将漏洞信息、业务、资产、人员进行关联。因此,详细的漏洞位置也可以帮助技术人员快速应对漏洞的修复。 

影响范围

影响范围是从应用程序的业务角度考虑的,对于安全研究人员或测试人员这通常比较难获取,但对于企业内的安全部门应该是易如反掌的,通常应用的业务影响是由真正使用应用程序的用户或者应用程序的负责人才清除的,这也是为什么安全部门也是业务支撑部门的原因,如果纯粹把部门看作技术部门,那和第三方的安全公司的差异便不大了。另外,从漏洞所在位置的功能也能够了解大概的漏洞影响范围。比如,上文描述的页面或注释信息的电话号码泄露会影响到公司的内部员工或者公司的内部信息保密性。

漏洞危害

漏洞危害是漏洞描述中漏洞利用成功后的影响结合影响范围综合评估的危害程度,需要简单明了说明漏洞一旦被利用成功对于影响范围内的用户、企业或业务的危害情况,危害情况的考虑要分别从以下方面着手:

人身安全、业务稳定性、数据安全性、其他资产安全性、无形资产(品牌、声誉、知识产权、商标等等)。

比如,某个应用系统中存在SQL注入漏洞,可以造成数据库拖库,但这些数据均是该系统的测试数据,且应用也只是是所在企业边缘环境的测试应用,虽然通过注入漏洞可能进一步提权,植入后门,进而横向移动产生更大危害,但就这个SQL注入漏洞而言,无论漏洞类型是什么,或者漏洞描述的危害多么严重,即便漏洞利用成功,对于企业的用户、员工、业务、数据、资产影响也会非常有限,因此这个SQL注入漏洞便不能算作高危及以上漏洞。也就是,漏洞的影响和危害应当像刑法中犯罪行为危害的因果关系的判定,不能无限关联,否则每个漏洞都可以说牵扯到企业的生死存亡。

漏洞复杂度

漏洞复杂度是漏洞利用条件和利用难度的说明,尤其是利用条件,所有的受保护对象都存在漏洞,最极端的攻击方式是物理攻击,物理攻击的难度天花板就是热战争,但对于漏洞信息或者漏洞报告而言,显然其复杂度需要考虑漏洞实际的利用条件,这也可以作为漏洞修复人员制定漏洞修复策略的参考之一。比如在诸如Nessus的漏洞扫描工具扫除的漏洞中,常常会看到SSL/TLS的协议漏洞,但这些漏洞基本都是知道是漏洞,又无法有效利用或者利用条件及其苛刻,又或者利用难度及其高,这个适合倘若运维人员收到这样的漏洞信息,一句话就可以回应漏洞的修复:要不然把这个漏洞复现给我们看看?

发生概率

发生概率是对于漏洞复杂度的更加直接表述,即漏洞被利用的可能性有多大,漏洞利用条件越低,利用难度越小,发生概率越大,反之,利用条件越高,利用难度越大,发生概率越小。漏洞是否进行修复根本上在于发生概率的大小和危害的大小,毕竟风险等于概率(Rate Of Occurrence)乘以危害(Single Loss Expectancy)。

以上文漏洞为例,无论是在企业的安全漏洞测试中,还是在渗透测试过程中,电话号码泄露漏洞被利用的发生概率通常是高,但其危害性也需要安全人员的专业能力和经验加以判断,因为对于社工能力不同的安全人员而言,漏洞利用难度会不同,危害性也会不同,因此不同人的判断结果上也可能会不同。因此在风险评估的定性评估方法中,风险结果的大小因人而异。

漏洞严重性

漏洞严重性是结合漏洞危害和漏洞发生概率综合评估的严重性描述,但通常是基于安全研究人员或安全测试人员个人经验判断,也是漏洞报告最容易产生争议的部分,许多安全人员习惯性的按照漏洞类型进行严重性划分,比如命令行执行是严重,信息泄露是低危,如上文漏洞危害部分的描述,直接按照漏洞类型进行漏洞严重性划分并不严谨。倘若如实描述漏洞危害和发生概率,漏洞严重性的描述也会相对客观。所以,为了客观起见,国外许多漏洞报告中需要安全人员填写CVSS评分,通过CVSS评分规则来确保漏洞严重性的客观性。

复现过程

复现过程是漏洞信息中的最重要部分之一,它能够帮助漏洞修复人员按照步骤一步一步重现漏洞发掘的过程,进而确认漏洞的存在(之所以如此说,也是有安全人员曾经伪造漏洞,以获得工作成果或奖金),以及设计合适的漏洞修复方式。复现过程的重点在于描述的步骤和每个步骤的描述。比如:

1. 访问https://example.com/news?page=1。

2. 在页面中点击鼠标右键,选择“查看网页源代码”。

3. 在网页源代码页面的底部,可以看到存在两个企业员工的手机号码。

如果在复现过程的步骤中需要用到截图展示漏洞的证明(PoC),则需要在截图中通过标注等方式提示漏洞复现过程中提及的漏洞位置、请求、响应等信息。

修复建议

修复建议是从安全人员对于应用程序和漏洞信息掌握的情况,对于漏洞解决方法的详细建议(之所以是建议,是修复人员可以不必采纳,仅供参考),漏洞报告中的漏洞解决思路主要包括缓解(Mitigated)和修正(Remediated),前者是降低漏洞被利用的机率,后者则是彻底解决漏洞,大多数情况下的漏洞修复都应该按照后一种思路设计,但有时候会因为业务的约束或者资源的约束,不得不选择前一种办法,比如典型的情况是某个0-day漏洞被曝光后一时没有合适的修复方法,通过设置WAF规则来降低漏洞被利用概率。

修复建议需要根据漏洞严重性、影响范围以及应用程序的业务和功能需要提出,早年间,修复建议编写的一个不良做法是粗暴的写一句“你懂的”,甚至在企业内部也有安全人员习惯性的用这种高傲的语气描述修复建议,又或者根据漏洞类型给出一个通用的修复方式,比如上文漏洞的通用修复建议是“关闭Web服务器错误提示;确保代码注释中不含有电话号码”。

企业官方网站中的电话号码信息可能是用于业务联系的,按照上述的修复方法显然是和企业业务需求冲突。因此,需要结合该业务需要编写修复建议:

建议将页面中的员工个人手机号码修改为企业座机号码。

当安全行业对于行业外的企业、人员对于安全漏洞的不重视痛心疾首的时候,或许漏洞信息或呈现方式也对于安全漏洞的“漠视”有推波助澜作用,就像文章开头的例子,如果用户在4S店中可以很清晰的得到关于更换汽车火花塞的必要性的详细描述,或许对于用户下决心更滑配件有莫大帮助。

问题名称:汽车行驶里程过大需要更换发动机火花塞

问题描述:汽车火花塞的主要作用是将点火线圈产生的高压电引入发动机燃烧室内,在火花塞电极之间产生电火花,点燃混合气体,从而推动发动机正常运转。汽车行驶里程或汽车使用时间增加,火花塞会逐渐老化,影响到发动机正常启动或发动机性能。

问题位置:汽车发动机,同时工作人员应该展示具体位置的照片。

影响范围:汽车发动机启动异常或者发动机性能下降会导致汽车动力不足,并可能会在汽车启动后,在指示灯中提示发动机故障标识。

问题危害:汽车发动时间变长,反复按启动按钮无法启动,或者在汽车行驶过程中,踩油门发现汽车动力不够,或者在汽车处于怠速时明显感觉到汽车的抖动。

问题复杂度:

发生概率:

问题严重性:严重

复现过程:此处应该拍视频显示火花塞的老化情况或问题情况。 

修复建议:花费60元更换发动机火花塞,每颗火花塞15元。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1885039.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3.js - 色调映射(renderer.toneMapping)

// ts-nocheck// 引入three.js import * as THREE from three// 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls// 导入lil.gui import { GUI } from three/examples/jsm/libs/lil-gui.module.min.js// 导入tween import * as TWEEN…

Stable DIffusion 线稿上色+风格迁移教程,建议收藏!

前言 Stable Diffusion 线稿上色与风格迁移教程。 欢迎来到Stable Diffusion的线稿上色与风格迁移教程!在这个教程中,我们将引导你如何使用Stable Diffusion技术,将你的线稿作品进行上色,并迁移到不同的艺术风格。让我们开始吧&a…

双端队列广搜——AcWing 175. 电路维修

双端队列广搜 定义 双端队列广搜(Breadth-First Search with a Deque)是一种图或树的遍历算法变体,它利用了双端队列(Deque,全称Double Ended Queue,允许在其两端进行插入和删除操作)作为数据…

CentOS7源码安装nginx并编写服务脚本

华子目录 准备下载nginx源码包关闭防火墙关闭selinux安装依赖环境 解压编译安装测试编写服务脚本,通过systemctl实现服务启动与关闭测试 准备 下载nginx源码包 在源码安装前,我们得先下载nginx源码包https://nginx.org/download/这里我下载的是nginx-1…

PHP景区旅游多商户版微信小程序系统源码

解锁景区新玩法!​ 引言:一站式旅行新体验 厌倦了传统景区的单调游览?想要一次旅行就能体验多种风情?那么,“景区旅游多商户版”绝对是你的不二之选!这个创新模式将景区内多个商户资源整合,为…

Golang-context理解

golang-context笔记整理 golang为何设计context?代码上理解原理空context类cancelCtx类.withcancelctx方法 timerCtx类valueCtx类 golang为何设计context? 有并发特性的语言中,都会有一种说法:创建异步线程或者携程的时候&#x…

【Altium】如何处理PCB上所有焊盘被误盖油

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决焊盘被误盖油的操作 2、 问题场景 所有焊盘都可以设置为盖油或不盖油,由于焊盘需要用来焊接元器件,所以都不会设置盖油。由于误操作或者创建封装时设置错误,造成一定数量的焊盘…

【GD32】07 - UART串口通信

GD32F407中的UART 今天我用的型号是GD32F407,用其他型号的小伙伴在使用UART的时候注意一下自己手上板子的资源就行,我们使用固件库就算是不同型号其实也是没有什么太大差别的。 我们废话不多说,直接开始讲怎么使用UART。 首先我们先确定串…

【面试干货】Static关键字的用法详解

【面试干货】Static关键字的用法详解 1、Static修饰内部类2、Static修饰方法3、Static修饰变量4、Static修饰代码块5、总结 💖The Begin💖点点关注,收藏不迷路💖 在Java编程语言中,static是一个关键字,它可…

猫头虎博主全栈前沿AI技术领域矩阵社群

猫头虎博主全栈前沿AI技术领域矩阵社群 👋大家好,我是猫头虎!今天我要向大家介绍一个非常重要的社群矩阵——专为全栈前沿AI技术领域的朋友们打造的各种技术交流和资源互助的社群。这些社群不仅能帮助大家快速提升技术水平,还能拓…

深度学习笔记: 最详尽解释混淆矩阵 Confusion Matrix

欢迎收藏Star我的Machine Learning Blog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star, 有问题可以随时与我交流, 谢谢大家! 混淆矩阵 假设我们有包含临床测量数据的医疗数据,例如胸痛、良好的血液循环、动脉阻塞和体重…

LeetCode 子集

原题链接78. 子集 - 力扣(LeetCode) 这是一道暴力搜索问题参考大佬们的题解,对这类题目做出一下总结 1.确定递归参数变量 2.递归结束条件 3.做出选择,递归调用进入下一层 4.回溯,返回到递归前的状态 要完成前面这…

Golang内存分配

Go内存分配语雀笔记整理 Golang内存模型设计理念思考核心代码阅读mspanmcachemcentral中心缓存mheap分配过程 Golang内存模型设计理念思考 golang内存分配基于TCmalloc模型,它核心在于:空间换时间,一次缓存,多次复用;…

重大丨深中通道今通车!继港珠澳大桥后,三思再度点亮世界工程

6月30日下午3时,国家重大工程深中通道正式通车试运营,向世界再次展示中国智慧和基建实力。已承接过包括港珠澳大桥海底隧道在内2500多条隧道照明工程的上海三思电子工程有限公司,为这座超级工程提供了LED隧道照明、东西人工岛照明及显示、管理…

HAP官方力作:MEGA项目管理应用正式上线

开发背景 自2024年3月起,明道云推出了MEGA系列应用,基于MEGA Industrial的经营业务,逐步拓展至企业价值链的各个环节(MEGA Industrial Co 是明道云预设的一家虚拟公司,主要面向工业制造行业客户,提供产线规…

node_modules/@umijs/runtime“ does not exist in container.

近日,在做pro ant react 项目时,遇到了如下这样的错误,开始通过vs code 的通义灵码折腾了一阵子,后面在csdn上一搜索,马上就找到答案了,特记录一下,后面再遇到这样的问题也就有迹可循了。 参考…

强对抗的 SquidLoader 针对中国企业发起攻击

研究人员近期发现了一种高对抗强度的 Loader,其通过钓鱼邮件附件传递给受害者。根据恶意软件所具备的引诱和规避行为,研究人员将其命名为 SquidLoader。SquidLoader 最早在 2024 年 4 月下旬被发现,但研究人员认为其至少已经活跃了一个月以上…

AE射频电源维修PE-II 10K中频电源维修

AE CESAR射频电源维修 PEII-10K镀膜电源;射频电源RF-5S;RFG3000;RFG3001等系列维修。 主要服务于太阳能光伏、PVD镀膜,半导体薄膜、离子注入、刻蚀,平板显示,光盘、光电子LED等制造工艺以及科研院校、技术研…

YOLO在目标检测与视频轨迹追踪中的应用

YOLO在目标检测与视频轨迹追踪中的应用 引言 在计算机视觉领域,目标检测与视频轨迹追踪是两个至关重要的研究方向。随着深度学习技术的飞速发展,尤其是卷积神经网络(CNN)的广泛应用,目标检测与视频轨迹追踪的性能得到…

2024年广东省食品安全管理员考试精选练习题库

76.已具有主体资格的企业申请食品流通可,该企业的()为可申请人。 A.投资者 B.经营负责人 C.本身 答案:C 77.食用亚硝酸盐的销售只面向()。 A.食品生产加工行业 B.餐饮业 C.食品流通单位 答案&…