软件和应用安全的六大金科玉律
数字化时代,软件无处不在。软件如同社会中的“虚拟人”,已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成为当今社会的根本性、基础性问题。
随着软件产业的快速发展,软件供应链也越发复杂多元,复杂的软件供应链会引入一系列的安全问题,导致信息系统的整体安全防护难度越来越大。近年来,针对软件供应链的安全攻击事件一直呈快速增长态势,造成的危害也越来越严重。
为此,我们推出“供应链安全”栏目。本栏目汇聚供应链安全资讯,分析供应链安全风险,提供缓解建议,为供应链安全保驾护航。
注:以往发布的部分供应链安全相关内容,请见文末“推荐阅读”部分。
本文旨在简化软件和应用安全的复杂话题。
应用安全保护保护代码和软件的安全,而代码和软件是组织机构使用、创建并向客户提供的应用程序的基础。源代码或以开源软件或以自定义代码的形式存在,而应用开发的快速发展导致代码漏洞增多且恶意软件的潜在攻击面也扩大。Forrester在《2022年应用安全现状》报告中指出,应用程序仍然是外部网络攻击者获得数据和数字化基础设施访问权限的最常见方式,软件漏洞仍然是去年的一大攻击向量,而web应用名列第三。
另外,恶意人员已经意识到,软件供应链是有效的攻击方式,他们能够将恶意代码插入供应商的应用程序、依赖或工具中,之后利用该漏洞。Forrester发布的报告提到,在2020年至2021年间,这种攻击形式造成的事件增长了近7倍;而欧盟网络安全局(ENISA)则预测供应链攻击还将增长4倍,2022年50%软件供应链攻击集中在供应商的代码上。
如何确保自己执行的是健壮且有效的应用安全战略?关键就是遵循如下关于软件和应用安全的六大金科玉律。
持续升级并更新软件组件和依赖,以改进其性能、启用新特性或通过打补丁的方式增强其安全性。总是确保使用的每个组件和依赖都是最新版本,其中识别出的任意漏洞均已修复。
开源软件及其依赖尤其得到非恶意和恶意修改。70%到90%的现代应用中包含免费和开源的软件,而开源软件依赖可能会将安全缺陷引入依赖于它们的应用中,因此持续更新并确保具有最近安全补丁尤为重要。漏洞修复后,通常会发布新的、不太易受影响的依赖版本。因此,定期更新依赖是非常重要的习惯。
软件和应用由关系愈加复杂的多种组件和依赖构成,必须保证这些组件和依赖的安全,才能妥当地保护AppSec的安全。如果不了解组件和依赖在哪里以及它们是什么,则无法保护它们或者检测并修复其中的漏洞。因此,从审计所遇到的问题开始,看自己是否能够回复如下问题:
你最常遇到的问题和漏洞是什么?
其中最严重即对软件、应用、产品和服务带来最大风险的问题和漏洞是什么?
这些问题和漏洞源自哪里?
它们是相同还是不同类型?
某些来源是否更易受攻击?
这些漏洞的共同点是什么?
理清这些问题将有助于你了解你所面临的问题和问题类型。使用具有全面且透明可见性能力的工具。
开源代码库中的每个依赖中都包含许可证及其使用条款。有意或无意地以相悖于这类使用条款的方式使用依赖存在风险且可攻陷你的产品或服务。
开源许可证成百上千,而且使用条款各不相同,使得追踪难以进行,因此确保对许可证的使用符合它们的法律要求。尽管如此,要有信心地交付产品和服务,必须确保你的软件、依赖和应用不会违背许可证及其部署使用条款的要求。
代码库中使用的组件和依赖数量不断增多意味着需要处理、检查和修复大量潜在漏洞。遗憾的是,很多工具生成大量误报结果,雪上加霜。
在软件测试过程中,当扫描工具不正确地识别安全漏洞时就会发生误报。结果导致开发人员和 DevOps 将大量时间和精力浪费在查找和修复这些漏洞上。为此,他们不重视安全扫描,从而为他们所生产的软件的安全性和合规性造成灾难性后果。
解决方案就是使用一款能够符合自定义标准、满足所在组织机构要求的工具,排列检测和修复优先级。对优先级进行评分使得团队能够专注于最需要紧急关注的问题并将有限的修复资源首先投入最关键的问题中。此外,通过这种能力,你可以设立误报基准,作为衡量工具有效性的度量。
软件开发人员并非安全专家,但有必要投入一些精力研究漏洞。通过了解根因并发现相关模式,开发人员可降低重复发生率并跟进最佳实践。为了进一步提高对应用及其核心代码的保护力度,通过在软件开发生命周期早期应用安全功能执行左移的安全战略就变得越来越重要。当开发人员和DevOps 采取这一措施,就拓展DLC中的检测和修复。
自动化不仅减少了开发人员在安全方面花费的时间,同时使得安全进程比任何手动方式更快更全面。同样,自动化解决了检测、诊断和响应方面的需求。
通过部署自动检测和修复漏洞的解决方案,企业可增强 AppSec成果并更简单容易地将应用安全集成到SDLC中。鉴于这些好处的存在,也就不难理解35%的组织机构表示他们将在未来一年内增加在安全自动化方面的投入。
如上所述,软件开发人员并非安全专家,但随着安全越来越多地转向SDLC,开发人员了解应用安全也发挥着重要作用。一个不错的开始是理解OWASP Top 10,该清单列出了被指为web应用所面临的的最严重安全风险。
然而,这只是起点。真正的安全专家就是你的应用安全团队,他们提供专为开发角色准备的培训活动发挥着重要作用。同时,构建协作文化十分重要,开发人员可了解询问安全专家获得意见的价值。渗透测试人员或漏洞奖励计划的最终审计可使企业在发现漏洞时免受潜在威胁。
美国政府发布关于“通过软件安全开发实践增强软件供应链安全”的备忘录(全文)
OpenSSF发布4份开源软件安全指南,涉及使用、开发、漏洞报告和包管理等环节
美国政府发布联邦机构软件安全法规要求,进一步提振IT供应链安全
Apache开源项目 Xalan-J 整数截断可导致任意代码执行
Linux和谷歌联合推出安全开源奖励计划,最高奖励1万美元或更多
开源软件 LibreOffice 修复多个与宏、密码等相关的漏洞
Juniper Networks修复200多个第三方组件漏洞
PyPI 仓库中的恶意Python包将被盗AWS密钥发送至不安全的站点
开源项目 Parse Server 出现严重漏洞,影响苹果 Game Center
奇安信开源软件供应链安全技术应用方案获2022数博会“新技术”奖
热门PyPI 包 “ctx” 和 PHP库 “phpass” 长时间未更新遭劫持,用于窃取AWS密钥
趁机买走热门包唯一维护人员的邮件域名,我差点发动npm 软件供应链攻击
和GitHub 打官司?热门包 SheetJS出走npmjs.com转向自有CDN
不满当免费劳力,NPM 热门库 “colors” 和 “faker” 的作者设无限循环
NPM流行包再起波澜:维护人员对俄罗斯用户发特定消息,谁来保证开源可信?
200多个恶意NPM程序包针对Azure 开发人员,发动供应链攻击
NPM 修复两个严重漏洞但无法确认是否已遭在野利用,可触发开源软件供应链攻击
热门NPM库 “coa” 和“rc” 接连遭劫持,影响全球的 React 管道
速修复!热门npm 库 netmask 被曝严重的软件供应链漏洞,已存在9年
Pwn2Own大赛回顾:利用开源服务中的严重漏洞,攻陷西部数据My Cloud PR4100
热门开源后端软件Parse Server中存在严重的 RCE ,CVSS评分10分
原文链接:
https://www.mend.io/resources/blog/six-golden-rules-for-software-and-application-security/
题图:Pixabay License
转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。