为什么当前的软件安全方法不足?

182 阅读3分钟

安全漏洞通常在开发中不易察觉而在部署应用程序后才出现。许多安全性缺陷和bug本可以在更早的阶段得到解决,并且有适当的方法和工具来发现它们。

bug的真正代价

软件缺陷是不可避免的,然而,代码中任何未修复的缺陷都是攻击者的命脉。如果他们能在系统中找到至少一个可以以正确方式利用的漏洞(即软件漏洞),他们就可以利用该漏洞造成巨大的损失,可能达到数千万美元的规模。

即使修复的漏洞不太严重,修复成本也可能非常昂贵。数据显示如果将问题发现和修复代码移至编码阶段可以为企业节省20%成本,而在产品发布后,修改缺陷成本则将增加五倍。

为什么当前的软件安全方法不足?

安全人员参与度不够

自动化和网络安全工具应该通过扫描、检测和缓解软件漏洞来减少开发人员和应用程序安全人员的工作量,但是工具未发现的问题需要开发人员和安全人员进行补足。

DevSec 断开连接

DevSec 脱节指的是开发团队和安全团队之间的紧张关系,因为在涉及新功能和缺陷修复时优先级不同。

由于这种摩擦,48%的开发人员会最终将易受攻击的代码投入生产。在开发周期后期发现的漏洞通常不会得到缓解,或者最终会产生额外的成本、延迟和进一步的风险。最好从源头上解决问题,而不是在软件开发生命周期的后期花费时间和资源来查找代码缺陷。

监控供应链安全缺忽视自己的软件

另一个常见的错误是只关注软件供应链安全,只处理常见的通用漏洞和暴露数据库或国家漏洞数据库中列出的现有软件产品和包中的已知漏洞。检测第三方组件及依赖项或操作环境中的安全漏洞必不可少,但检测自己代码中的漏洞也十分必要。

让安全编码成为共识

网络安全的强弱取决于最薄弱的环节。开发人员是从源头提高安全的问题解决者,一段代码是否安全开发人员发挥很大作用。但如果开发人员不了解特定类型的不安全实践,他们很可能会继续犯相同的错误(并在开发环境中引入相同类型的漏洞)代码)。

增强安全编码的技巧

新发现的漏洞数量不断增加,恶意网络攻击者所构成的威胁也越来越复杂。大多数组织在事件发生后开始实施安全的开发生命周期,对安全的关注肯定是越早越好。

将安全扩展到开发的早期阶段

通过SAST、IAST、SCA等工具及DAST或渗透测试来全面覆盖开发安全,并将安全问题提前在软件投入生产前。

覆盖整个 IT 生态系统

第三方漏洞给企业的网络安全带来巨大的风险,因此除了检测开发人员可能给应用程序引入的问题,需要能够检测云和第三方环境中的漏洞。

从防御转向预防

将防御性编程概念添加到编码指南中,提高软件自身“免疫”有助于从内部提高网络安全性。

安全代码培训

对开发人员进行安全编码培训,了解安全编码标准、漏洞数据库等信息,帮助开发人员了解安全编码的重要性及安全漏洞危害等,在开发过程中提高编码安全性。