等保门户网: 专家专栏 > 专家专栏

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

来源:admin 发布日期:2020-09-04

近年来,大量的0day漏洞出现在全国及各省市的网络安全攻防演练活动中。没有补丁的新漏洞往往让厂商和用户措手不及,唯一的方法就是应急响应,提前做好“救火”准备。
 值得注意的是,0day在日常安全工作中并不多见,但在每年的大型攻防演练中却被大量爆出。因此,供应商和甲方都应清醒地认识到,漏洞是广泛存在的,只是平时可能非常隐蔽。
 以下是今年全国网络安全攻防演练期间出现的部分0day漏洞:
o        通达OA v11.6版本RCE漏洞
o        致远OA-A8-V5最新版未授权getshell
o        锐捷smartweb任意文件读取
o        Apache Shiro权限绕过漏洞(CVE-2020-13933)
o        Apache Dubbo Provider 远程代码执行漏洞 (CVE-2020-1948)
o        宝塔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和SDL管理体系,分析SDL如何帮助企业在开发阶段降低0day风险。
01事 前 预 防
  • 威胁建模与安全设计 
在软件开发的需求分析和设计阶段,应该对业务场景可能面临的威胁进行分析,并通过合理的安全设计规避风险。
以最近爆出的宝塔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评为十大信息安全技术之一。
通过开展持续化的开发安全规范和安全知识培训,不断提升人员安全能力。配合先进的安全工具进行漏洞检测发现,能够大幅缩减发生0day的概率,防范于未然。 

02事 中 响 应
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处置的同时,应将其加入安全开发知识库,通过日常的培训学习,避免后续发生类似的安全问题。如果漏洞可以通过安全工具检测,则需要供应商及时更新漏洞库版本。

【关闭】 【打印】

您是第 37468203 位访问者
沪ICP备 12039260号 京公网安备 11010802025578号