开发 + 安全:网络安全的协作方法
开发团队和安全团队之间由来已久的紧张关系一直是组织内部摩擦的根源。开发人员优先考虑速度和效率,旨在通过快节奏、迭代的开发周期快速交付功能和产品并高效前进。另一方面,安全团队努力平衡风险和创新,但必须专注于使用护栏保护敏感数据和系统,并确保遵守严格的法规。
这些截然不同的优先事项和沟通鸿沟导致的分歧不仅仅是内部竞争,它还会产生切实的影响。如果一个组织中的开发人员和安全人员认为他们的目标相互矛盾,甚至更糟的是,他们完全停止合作,那么他们可能会面临发布延迟、系统停机和成本增加的问题,更不用说工作环境恶劣、士气低落和安全风险不断增加的问题。
这种分歧的根源在于误解以及缺乏沟通和背景。在许多组织中,安全和开发团队各自为政。安全性通常被视为开发过程中的“最终检查”,安全团队完全脱离开发人员的工作流程,直到出现问题。安全团队通常使用与开发人员缺乏相关性或适应性的安全工具,这使得两个团队无法合作。
没有人喜欢改变,尤其是当他们不真正理解改变背后的原因时。因此,克服这些文化和实践挑战的唯一真正方法是创建一种协作的网络安全方法。
协作文化始于高层。安全传统上被视为一项必要的学科,但它是公司核心业务之外的学科,而不是公司所有流程(包括开发)的集成元素。
如果您的组织一直都是这种情况,那么您的成功指标很可能不包括安全性。在衡量“功能数量”、“交付速度”、“客户满意度”等目标时,安全性通常被视为事后考虑或次要考虑。然而,正如许多伤痕累累的公司所证明的那样,一次违规就足以重新调整业务目标,包括强大而安全的组织态势。安全和业务领导者必须从最高层协调两个团队的指标和目标。
将安全功能、护栏、优先事项和实用步骤嵌入并集成到开发生命周期的每个阶段,从规划到生产。
通过采用左移工作流程,两个团队按设计进行协作,从一开始就将安全性集成到开发流程中。这确保所有团队都有背景和共同目标,并使用开发人员友好的工具 - 最大限度地减少警报数量,推动自动化并提供可操作的见解和反馈。
使用专为开发人员(而不仅仅是安全专业人员)设计的工具,可以确保安全性是一个固有问题,而且是开发人员工作流程的一部分,而不是外部的(令人讨厌的)事后想法。
这种协作方法必须扩展到所有安全和开发任务。必须将安全性视为一种推动因素,确保客户收到的产品既具有创新性,又具有安全性和弹性。
开发人员最主要的烦恼之一是收到大量安全发现,却没有充分的背景或优先级。为了解决这个问题,安全团队应该将发现直接与潜在的业务或技术影响联系起来,使开发人员能够了解特定问题的紧迫性。
此外,实施基于风险的优先级系统可以帮助过滤掉不太重要的漏洞,让开发人员专注于最紧迫的问题。通过提供明确的建议和必要的资源,安全团队可以让开发人员高效、有效地解决问题,从而建立更具协作性和生产力的关系。
安全团队和开发人员必须认识到,他们为同一支队伍效力,肩负相同的责任,面临相同的挑战,最终目标也相同——提供安全、一流的产品。这种共同的责任感是激励这些团队采取行动的核心。
联合会议、培训课程和透明沟通的整体文化将有助于建立相互理解和信任,以及共同的尊重感。一旦开发人员愿意分享他们对警报疲劳的担忧,并且安全团队描述了开发人员方面的主动安全措施,他们就可以在最早的阶段共同识别阻碍因素和潜在问题,以免这些问题变得无法解决。