一个人需要合适的工具来完成工作。例如,没有什么比汽车修理进行到一半,才发现没有完成工作所需的专用工具更令人沮丧的了。同样的道理也适用于开发者:你需要合适的工具来发挥你的最佳水平,而不会因合规性和安全需求而扰乱你的工作流程,这样你才能更快地交付代码。
根据 ActiveState 最近发布的《2018 年开发者调查:开源运行时痛点》,超过一半——具体来说是 51%——的开发者每天只花一到四个小时进行编程。换句话说,大多数开发者花费在编码上的时间不到他们工作时间的一半。调查显示,50% 的开发者表示安全是他们最关心的问题之一,但 67% 的开发者因为企业政策相关的困难而选择不添加新的语言进行编码。
结果是,开发者不得不将时间投入到非编码活动中,例如为软件进行安全性和合规性改造,而这些检查是在软件和语言构建之后进行的。而且,由于企业政策的原因,他们不会选择最适合工作的工具或语言。他们的满意度下降,风险上升。
因此,开发者无法将时间投入到高价值的工作中。这会带来额外的业务风险,因为他们的上市时间被延缓了,而且组织通过不允许开发者在不受企业政策束缚的情况下决定“最佳”技术,从而增加了技术债务。
将安全性和合规性工作流程融入其中
我们如何解决这个问题?一种方法是将安全性和合规性工作流程集成到软件开发过程中,只需四个简单的步骤:
1. 聚集你的力量
获得所有相关人员的支持。这是一个经常被遗忘但至关重要的第一步。确保考虑到广泛的利益相关者,包括:
- DevOps
- 开发者
- 信息安全 (InfoSec)
- 法律/合规
- IT 安全
利益相关者希望了解业务收益,因此要充分说明在软件构建后消除安全性和合规性检查点的理由。在构建你的商业案例时,你可以考虑以下任何一项(或全部):节省时间、机会成本和开发者生产力。通过将安全性和合规性工作流程集成到开发过程中,你还可以避免对语言进行改造。
2. 寻找可信来源
接下来,选择可以使用的可信来源,以及它们的许可证和安全要求。考虑包含以下信息,例如:
- 基于环境或应用程序类型和每个语言的版本控制的使用限制
- 哪些开源组件是允许的,例如,特定软件包
- 哪些许可证可以在哪些类型的环境中使用(例如,研究与生产)
- 安全级别的定义、可接受的漏洞风险级别、哪些风险级别会触发操作、该操作是什么,以及谁将负责其执行
3. 从第一天起就融入安全性和合规性
融入安全性和合规性工作流程的好处是,它最终将安全性和合规性融入到第一行代码中。它消除了企业政策的拖累,因为你是按照规范进行编码,而不是在事后才去修复问题。但是要做到这一点,请考虑在构建代码时自动扫描代码的机制,以及使用无代理监控你的运行时代码。你将解放你的时间,并且还能够以编程方式执行策略,以确保整个组织的合规性。
4. 监控、报告和更新
新的漏洞不断出现,新的补丁和版本也变得可用。因此,在将代码部署到生产环境以及运行代码时,都需要考虑安全性和合规性。你需要知道哪些代码存在风险,以及这些代码在哪里运行。因此,部署和运行代码的过程应包括监控、报告和更新生产环境中的代码。
通过从一开始就将安全性和合规性集成到你的软件开发过程中,你还可以受益于跟踪你的代码在部署后的运行位置,并在新威胁出现时收到警报。你将能够跟踪你的应用程序何时容易受到攻击,并自动执行你的软件策略进行响应。
如果你的软件开发过程融入了安全性和合规性工作流程,你将提高你的生产力。你将能够通过以下方面衡量价值:编码时间的增加;安全性和稳定性的提高;以及维护和发现安全性和合规性威胁方面的成本和时间节省。
通过集成获得幸福感
如果你不开发和更新软件,你的组织就无法前进。开发者是你公司成功的关键,这意味着他们需要工具和自由来快速编写代码。你不能让合规性和安全需求——尽管它们至关重要——拖累你。开发者显然担心安全问题,因此折衷的办法是“左移”并在一开始就集成安全性和合规性工作流程。你将完成更多工作,第一次就做对,并花费更少的时间改造代码。
评论已关闭。