建立开发安全管理体系,按下0day风险防控键

  • A+
所属分类:云安全



0day漏洞,又称“零日漏洞”(zero-day),是已经被发现(有可能未被公开),而官方还没有相关补丁的漏洞。通俗地讲,除了漏洞发现者,没有其他人知道这个漏洞的存在,并且可以有效地加以利用,发起的攻击往往具有很大的突发性与破坏性。


近年来,大量的0day漏洞出现在全国及各省市的网络安全攻防演练活动中。没有补丁的新漏洞往往让厂商和用户措手不及,唯一的方法就是应急响应,提前做好“救火”准备。

 

值得注意的是,0day在日常安全工作中并不多见,但在每年的大型攻防演练中却被大量爆出。因此,供应商和甲方都应清醒地认识到,漏洞是广泛存在的,只是平时可能非常隐蔽。

 

以下是今年全国网络安全攻防演练期间出现的部分0day漏洞:


  • 通达OA v11.6版本RCE漏洞

  • 致远OA-A8-V5最新版未授权getshell

  • 锐捷smartweb任意文件读取

  • Apache Shiro权限绕过漏洞(CVE-2020-13933)

  • Apache Dubbo Provider 远程代码执行漏洞 (CVE-2020-1948)

  • 宝塔Linux面板7.4.2及Windows面板6.8 提权漏洞


除了应急“救火”以外,是否还有让安全厂商和需求方能够从容应对0day的方法?要降低0day产生的可能性或减轻0day带来的危害,需要采用系统化的方法。

 

SDL开发安全管理体系



为了系统化地应对0day,企业需要建立SDL开发安全管理体系,大幅降低漏洞的产生概率。以微软为例,在全面推行SDL后,Windows XP和Windows Vista之间的漏洞报告数量减少了45%,SQL Server 2000和SQL Server 2005之间的漏洞报告数量减少了91%。


SDL的核心理念就是将安全考虑集成在软件开发的每一个阶段,即需求分析、设计、编码、测试和维护。从需求、设计到发布产品的每一个阶段都增加了相应的安全活动,以减少软件中漏洞的数量并将安全缺陷降低到最小程度,默安SDL解决方案为开发的每个阶段都提供了可落地的解决方案。


建立开发安全管理体系,按下0day风险防控键


下面结合本次攻防演练中爆出的两个0day和SDL管理体系,分析SDL如何帮助企业在开发阶段降低0day风险。

 

01


建立开发安全管理体系,按下0day风险防控键

事 前 预 防


  • 威胁建模与安全设计


在软件开发的需求分析和设计阶段,应该对业务场景可能面临的威胁进行分析,并通过合理的安全设计规避风险。


以最近爆出的宝塔Linux面板7.4.2及Windows面板6.8提权漏洞为例:


宝塔Linux面板7.4.2及Windows面板6.8提权漏洞
漏洞
简介

宝塔面板的Linux7.4.2以及Windows6.8版本由于PhpmyAdmin未加签权,通过访问http://ip:888/pma可以直接登录数据库,现已出现漏洞批量利用工具,可通过Zmap扫描全球888端口进行大规模提权。


其实这类问题在威胁建模与安全设计阶段就可以避免,对所有涉及权限划分的操作都应严格检查后再确定用户是否可以操作请求的数据。防止非授权访问及涉及权限的操作,应以会话中保存的用户标识为依据。


默安的SDL安全咨询服务能够提供场景丰富的威胁资源库,帮助产品经理、架构设计人员快速识别业务场景下的常见安全威胁,规划成熟的安全设计方案。


  • 编码安全与开源组件安全


在编码时,开发人员应该具备编码安全意识和安全编码能力,避免因代码不安全导致漏洞发生。


以致远OA-A8-V5最新版未授权getshell为例:


致远OA-A8-V5最新版未授权getshell(任意文件上传)
漏洞
简介

致远A8 OA存在远程任意文件上传文件上传漏洞,无需登录即可利用。攻击者构造恶意文件,成功利用漏洞后可造成getshell。同时该系统的漏洞点在于致远OA-A8系统的Servlet接口暴露,安全过滤处理措施不足,使用户在无需认证的情况下实现任意文件上传。攻击者利用该漏洞,可在未授权的情况下,远程发送精心构造的网站后门文件,从而获取目标服务器权限,在目标服务器上执行任意代码。


在编码阶段,开发人员应采取以下安全措施,降低漏洞发生的概率:

  • 设置权限限制,禁止上传目录的执行权限;
  • 严格限制可上传的文件类型;
  • 严格限制上传的文件路径;
  • 文件扩展名服务端白名单校验;
  • 文件内容服务端校验;
  • 上传文件重命名;
  • 隐藏上传文件路径。


默安在客户现有的开发管理制度和流程基础之上,针对性地优化开发编码安全规范,为不懂安全的开发人员提供系统化的安全参考。同时,默安的雳鉴SAST代码安全检测平台,可以提供代码安全检测能力。


除了代码自身的安全漏洞,软件应用开发过程中难免要引入开源组件。开源组件如果存在安全风险,也会影响整体软件的安全性。雳鉴SAST除了代码漏洞检测能力,还可以对软件应用引入的开源组件进行分析,发现开源组件存在的安全漏洞、版本老旧、开源许可法律风险等问题。在每年的攻防演练中,第三方组件和框架也都会爆出很多0day漏洞,默安都在第一时间进行响应,并对雳鉴SAST作版本更新,帮助用户避免使用有风险的开源组件。


漏洞名称
漏洞编号
发布时间

Struts2远程命令执行

CVE-2019-0230

2020.8

Node.js Locutus远程命令执行

CVE-2020-13619

2020.7

Apache Spark远程命令执行

CVE-2020-9480

2020.6

Dubbo反序列化漏洞

CVE-2020-1948

2020.6

Tomcat反序列化漏洞

CVE-2020-9484

2020.5

Jackson-databind远程代码执行

CVE-2019-12384

2019.6

Weblogic远程命令执行

CVE-2019-2725

2019.4
历年攻防演练中爆出的部分开源组件漏洞

  • IAST灰盒安全测试


除了前期的设计和编码问题,在最终测试环节,还应该采用先进IAST安全测试技术,来发现更多的安全问题。IAST技术结合SAST和DAST的优点,做到检出率极高且误报率极低,被Gartner评为十大信息安全技术之一。


默安科技的雳鉴IAST支持SQL注入、XSS、登录爆破等56大类常见通用漏洞检测,全面覆盖高中低危常见漏洞,漏洞检测精准度高,同时可定位到API接口和代码片段。提供漏洞修复建议和示例代码,部分漏洞提供安全组件快速修复漏洞,在系统上线前做强有力的安全保障。可与Jenkins、Jira等DevOps工具无缝集成,构建DevSecOps自动安全测试流程。


通过开展持续化的开发安全规范和安全知识培训,不断提升人员安全能力。配合先进的安全工具进行漏洞检测发现,能够大幅缩减发生0day的概率,防范于未然。

   

02


建立开发安全管理体系,按下0day风险防控键

事 中 响 应


SDL体系建设完善的企业,除了做开发过程的安全管控,还会包含针对0day的应急机制,通常在管理规范和流程中体现,主要包含以下内容:


  • 漏洞信息监测收集和危害判断的负责部门,通常为安全部门。

  • 根据危害等级和危害范围,确立响应的等级、需要哪些部门(厂商)参与以及漏洞修复时效。

  • 按照流程快速响应,推动0day的缓解处理和后续补丁修复,最大化减少0day的影响。


以Apache Shiro权限绕过漏洞为例,典型的响应流程如下:


(1)安全部门:收集漏洞情报,分析漏洞危害,给出修复方案。漏洞简报示例如下: 


Apache Shiro权限绕过漏洞
CNNVD
编号
CNNVD-202008-870 CVE
编号
CVE-2020-13933
发布
时间
2020-08-17 漏洞
等级
高危
漏洞
简介

Apache Shiro是美国阿帕奇(Apache)软件基金会的一套用于执行认证、授权、加密和会话管理的Java安全框架。Apache Shiro 1.6.0之前版本中存在安全漏洞。攻击者可借助特制的HTTP请求利用该漏洞绕过身份验证。

修复
方案
目前厂商已发布升级补丁以修复漏洞,补丁获取链接:
https://lists.apache.org/thread.html/r539f87706094e79c5da0826030384373f0041068936912876856835f%40%3Cdev.shiro.apache.org%3E
漏洞修复前,应做好系统和数据备份工作。安全部门会在测试环境做好升级测试,测试验证无害后,将完整修复方案交付给运维部门。


(2)运维部门:通过资产管理平台或相关检测工具,确定受该漏洞影响的资产范围,再按照资产价值(重要程度)和网络暴露情况确定漏洞修复的优先级。


(3)业务归属部门:做好内部的漏洞修复通知和外部的业务升级暂停公告,要求运维部门协助做好系统备份工作,并且在非业务时间段实施升级。漏洞修复后,业务归属部门自行检查业务功能是否受影响,校验数据是否丢失。


如果0day影响的是自主研发或外部购买的产品,以上过程中还需召集开发部门或软件供应商,共同商讨可行的漏洞缓解和修复方案。


0day披露后的应急处置,最重要的是具备内部响应机制,做到快速反应处理,降低0day的杀伤力。默安已经协助众多客户建立了0day应急响应机制,并基于默安的0day监测能力,为客户提供第一时间的漏洞信息和情报。

 

03


建立开发安全管理体系,按下0day风险防控键

事 后 总 结


完成0day处置的同时,应将其加入安全开发知识库,通过日常的培训学习,避免后续发生类似的安全问题。如果漏洞可以通过安全工具检测,则需要供应商及时更新漏洞库版本。

 

写 在 最 后



安全建设重在平日,虽然无法做到与0day完全绝缘,但是可以通过体系化的开发安全管理,有效减少0day的发生,遇到0day也能够快速响应,将影响降到最低,避免造成品牌形象或者经济上的损失。



拓展阅读

“上医治未病”是默安科技开发安全产品线的主要理念。漏洞是整个安全博弈的核心,默安科技的体系化产品能够帮助客户在应用上线前消灭高危漏洞、业务安全风险等在内的安全问题,做到应用不带病上线,从源头上根治安全问题。


默安科技的雳鉴SDL解决方案是一套拥有完整自研“服务+工具+平台”的SDL全流程方案。基于微软经典的SDL模型,将赋能服务贯穿需求分析、架构设计、研发、测试回归以及发布迭代全流程。通过赋能将专业安全能力赋予研发各环节人员,并为STAC、SAST、IAST、常态化安全运营等各环节提供不同工具,确保赋能得以真实应用落地。以统一平台展示、分析、回归、闭环安全问题,并向安全部门提供SIEM,根据各流程频现的漏洞类型、研发人员知识盲区等再次提供针对性培训,助力SDL全流程精准落地。



建立开发安全管理体系,按下0day风险防控键

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: