软件安全最佳实践:首先关注的地方
尽管组织拥有大量可用的工具,但应用程序安全性仍然不足。
最近的数据显示,在过去四到五年中,软件供应链攻击同比增长了 600-700%,超过一半的美国企业在过去 12 个月中遭受过某种形式的软件供应链攻击。
为何应用程序安全工作未能达到预期?
其根源在于:
庞大的软件工厂
开发变得更加复杂,而构建开发人员环境(SCM、CI/CD 工件存储库、云基础设施等)比以往任何时候都更加容易和快速。
随着这种转变,安全部门正在失去对开发环境的可见性,从而导致大量攻击面得不到控制。
孤立的风险识别和分类
多种应用程序安全工具用于评估应用程序中的风险,但每种工具都会查看应用程序的不同区域,并且发现的问题通常没有联系或关联,因此很难在噪音中找到信号。
同时,大多数组织现在都有云安全团队、应用程序安全团队、DevOps 团队等,通常对端到端软件工厂或其中生产的软件的风险没有任何整体了解。
忽略攻击面
现有的应用程序或云安全工具专注于云基础设施和应用程序本身,但在很大程度上忽略了软件工厂。
这些工具没有考虑源代码控制管理系统、CI/CD 系统甚至工件注册表中的风险,恶意攻击者已经意识到了这一点。
弥合 AppSec 差距的重点工作在哪里
你从哪里开始呢?
根据我们最常看到的差距和风险,建议优先考虑以下被忽视的领域:
机密扫描
我们经常看到组织环境中的机密被泄露。机密已成为攻击者的首要切入点。对整个开发环境(而不仅仅是源代码)进行机密扫描是至关重要的第一步。机密可能隐藏在 wiki 文件、Jira 票证、日志文件和容器中,因此在搜索潜在漏洞时必须广撒网。
定期轮换密钥并利用密钥管理系统可以显著降低凭证被盗用的风险。此外,实施蜜罐令牌可以充当预警系统,在发生更严重的攻击之前提醒安全团队注意潜在的漏洞。
最小权限
开发人员在项目间拥有过多权限的情况并不少见,这会不必要地增加攻击面。为了方便起见,构建工具经常配置过多权限,但这些系统通常可以访问敏感 IP,例如代码、生产数据等。
保持可见性和正确配置:安全团队需要实时了解开发人员创建的新建资产或管道。为管道和云基础设施创建“铺平道路”或预配置的安全模板可以显著降低配置错误的风险,并使开发人员更容易采用安全做法。
基于风险的左移
在将漏洞发送给开发人员之前,使用业务背景和基于风险的方法对其进行分类。仅发送关键或高危漏洞可能会忽略高价值资产中非常容易被利用的中等漏洞,而将所有漏洞发送给开发人员只会淹没这些漏洞,并让他们陷入安全债务。
在评估要修复的内容和修复速度时,找到一个折衷方案,考虑诸如暴露、业务影响、可利用性和合规性等因素。
培训
虽然安全编码实践很重要,但组织也应该注重教导开发人员识别网络钓鱼尝试,了解正确的配置管理,并注意依赖混淆和命名空间攻击等威胁。
利用应用程序安全态势管理 (ASPM) 弥补差距
手动实施这些最佳实践可能是一项艰巨的任务,尤其是对于已经超负荷工作的安全和开发团队而言。
这时,应用程序安全态势管理 (ASPM) 工具就可以提供巨大的价值。
ASPM 解决方案提供整个软件供应链的端到端可视性,关联来自多个来源的漏洞,并实现基于风险的安全问题优先级排序。
通过采用这些最佳实践并利用适当的工具,组织可以采取有意义的步骤来保护整个软件开发生命周期 (SDLC) ,降低实际风险并构建更具弹性和可扩展的软件安全程序。