安全开发实践原则

小明吖_7545

小明吖_7545

2019-11-26

4357人浏览

转载

如今,安全威胁的破坏力正以前所未有的速度随着信息化程度的加深而增长,扩大构建数字化业务通常会导致更大的受攻击面。要应对当前和未来的安全威胁,只依靠传统的安全产品投入已显得力不从心,除了购买安全产品,更重要的是安全意识的增强和安全流程的建设。

在各种安全建设方案中,“安全能力前置”是明显的趋势。就像一幢建造时地基不稳、墙体不牢、地板塌陷的房子无法在建成后依靠几根柱子的支撑屹立不倒,缺少安全开发过程的应用,在后期运营时必然会漏洞百出。

我们认为安全开发实践有以下5条重要的原则:

1、安全培训

安全技能培训对弥补技术能力差距以及管理产品生命周期每一个环节的安全性至关重要。公司需要显性地投资在安全意识和安全技能的培训上,以提高开发人员安全编码的意识和能力,并理解安全部门提出的建议和做出的行为,这对于业务团队与安全团队的高效协作非常重要。

根据SANS研究所的安全状况报告,早在2016年在美国超过一半的调查公司样本已经将安全培训作为了公司主要任务之一。而直到今天,能够懂得安全培训重要性的中国公司也是少数派,能将培训意愿转化为培训行为的企业更是凤毛麟角。

2、安全应用开发

当下,应用程序的安全性已经引起了企业的普遍重视。为了确保开发的安全性,有两个重要的实践方法:

(1)使用以安全性为中心的流程框架。

(2)将安全团队的反馈纳入开发人员的工作流和每个迭代周期的演示评审中。

对于流程框架,我们认为最好根据最佳实践、软件库、标准以及企业的特定行业规定,选择采用经过验证且适当的以安全为重点的框架。以下两个著名的框架都是规则、技术和过程的集合,它们指导开发组织,并提供可应用的资源。虽然有不同的关注点,但从根本上讲都是以安全为导向的。

微软安全开发生命周期(SDL):此过程非常适合现有的DevOps环境,并提供了一个更通用的结构,在整个过程中很好地整合了安全性。根据我们的经验,它并不限于任何特定的代码类型或操作环境。

开源Web应用程序安全项目(OWASP):这个社区网站提供有关漏洞、相关影响和风险的数据;以及开发和检测安全Web应用程序的最佳实践指南。

企业需要积极地将安全团队引入开发过程,以便尽早获取他们的反馈,并在整个开发工作流和迭代原型演示中邀请他们参与。这样做的好处是可以让团队在开发阶段同时处理安全风险,以避免在开发过程中引入代价高昂的风险。

与开发阶段相比,在产品运营和维护阶段消除风险的代价至少会高出数十倍。但是,很多开发团队并不适应与安全团队协作,迈出第一步并坚持不懈是关键,最终基于安全性的开发工作流将成为总体安全策略中的一个巨大优势。

3、Security+DevOps=DevSecOps

腾讯会议AI小助手
腾讯会议AI小助手

腾讯会议AI小助手是一款AI办公效率工具,腾讯会议推出的AI会议内容助理。

下载

DevSecOps是一个正在逐渐形成的趋势,它将安全性完全集成到DevOps工作流中,从而创建了一个统一的过程。正如DevOps提出时,是要同时解决开发和运维问题一样,现在也必须同时解决安全问题。

Security + DevOp或者DevSecOps不仅涉及扩展每个阶段的工作内容以包含安全要素,而且还包括跨阶段,跨部门的培训,以便在开发代码时降低风险。

4、应用安全测试(AST)

持续测试非常重要,应用程序安全测试(AST)工具应该成为每个开发人员工具链的一个必备的组成部分。现在有很多优秀的工具,包括开源工具。在考虑应用程序安全测试工具时,最好预先确定要使用的工具集,以便优化代码检测的步骤和流程。否则,工具可能无法完整且高效地检测代码。

AST工具分为几个基本的类别:

(1)静态应用程序安全测试(SAST)

(2)动态应用程序安全测试(DAST)

(3)交互式应用程序安全测试(IAST)

Gartner在2017年的报告指出,“大多数开发应用程序的企业都已经采用了某种形式的AST,但不同的技术在成熟度上有所不同。DAST和SAST是当前应用最广泛的产品类型,但IAST的市场需求正呈现高速的增长。”

5、持续地监控和分析

持续地监控和分析有助于保护运维阶段的应用。从监控中得到持续的反馈,并将其反哺到开发过程中。监控和分析运维阶段的应用是一种基本的常识性操作,它可以为企业提供有价值的信息和数据,帮助企业拦截潜在的漏洞,降低潜在的风险。

如同运维阶段的安全无法离开开发安全,开发安全也无法脱离运维安全单独实现。一个没有反馈机制的流程肯定不是一个好流程。

推荐相关文章:web安全教程

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

80

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

40

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

40

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

20

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

40

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

20

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

40

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

240

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

20

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程