安全开发实践原则
如今,安全威胁的破坏力正以前所未有的速度随着信息化程度的加深而增长,扩大构建数字化业务通常会导致更大的受攻击面。要应对当前和未来的安全威胁,只依靠传统的安全产品投入已显得力不从心,除了购买安全产品,更重要的是安全意识的增强和安全流程的建设。
在各种安全建设方案中,“安全能力前置”是明显的趋势。就像一幢建造时地基不稳、墙体不牢、地板塌陷的房子无法在建成后依靠几根柱子的支撑屹立不倒,缺少安全开发过程的应用,在后期运营时必然会漏洞百出。
我们认为安全开发实践有以下5条重要的原则:
1、安全培训
安全技能培训对弥补技术能力差距以及管理产品生命周期每一个环节的安全性至关重要。公司需要显性地投资在安全意识和安全技能的培训上,以提高开发人员安全编码的意识和能力,并理解安全部门提出的建议和做出的行为,这对于业务团队与安全团队的高效协作非常重要。
根据SANS研究所的安全状况报告,早在2016年在美国超过一半的调查公司样本已经将安全培训作为了公司主要任务之一。而直到今天,能够懂得安全培训重要性的中国公司也是少数派,能将培训意愿转化为培训行为的企业更是凤毛麟角。
2、安全应用开发
当下,应用程序的安全性已经引起了企业的普遍重视。为了确保开发的安全性,有两个重要的实践方法:
(1)使用以安全性为中心的流程框架。
(2)将安全团队的反馈纳入开发人员的工作流和每个迭代周期的演示评审中。
对于流程框架,我们认为最好根据最佳实践、软件库、标准以及企业的特定行业规定,选择采用经过验证且适当的以安全为重点的框架。以下两个著名的框架都是规则、技术和过程的集合,它们指导开发组织,并提供可应用的资源。虽然有不同的关注点,但从根本上讲都是以安全为导向的。
微软安全开发生命周期(SDL):此过程非常适合现有的DevOps环境,并提供了一个更通用的结构,在整个过程中很好地整合了安全性。根据我们的经验,它并不限于任何特定的代码类型或操作环境。
开源Web应用程序安全项目(OWASP):这个社区网站提供有关漏洞、相关影响和风险的数据;以及开发和检测安全Web应用程序的最佳实践指南。
企业需要积极地将安全团队引入开发过程,以便尽早获取他们的反馈,并在整个开发工作流和迭代原型演示中邀请他们参与。这样做的好处是可以让团队在开发阶段同时处理安全风险,以避免在开发过程中引入代价高昂的风险。
与开发阶段相比,在产品运营和维护阶段消除风险的代价至少会高出数十倍。但是,很多开发团队并不适应与安全团队协作,迈出第一步并坚持不懈是关键,最终基于安全性的开发工作流将成为总体安全策略中的一个巨大优势。
3、Security+DevOps=DevSecOps
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中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

作为一款电子邮件管理器应用程序,MicrosoftOutlook允许我们安排活动和约会。它通过提供在Outlook应用程序中创建、管理和跟踪这些活动(也称为事件)的工具,使我们能够保持有序。然而,有时会将不需要的事件添加到Outlook中的日历中,这会给用户造成混乱,并向日历发送垃圾邮件。在本文中,我们将探讨可帮助我们防止Outlook自动将事件添加到我的日历中的各种方案和步骤。Outlook活动-简要概述Outlook事件具有多种用途,并具有许多有用的功能,具体如下:日历集成:在Outlook

织梦CMS站群实践分享近年来,随着互联网的快速发展,网站建设变得越来越重要。在建设多个网站时,站群技术成为了一个非常有效的方法。而在众多网站建设工具中,织梦CMS凭借其灵活性和易用性成为了不少站群爱好者的首选。本文将分享一些关于织梦CMS站群的实践经验,以及一些具体的代码示例,希望能为正在探索站群技术的读者提供一些帮助。1.什么是织梦CMS站群?织梦CMS

Struts框架的原理解析与实践探索Struts框架作为JavaWeb开发中常用的MVC框架,具有良好的设计模式和可扩展性,广泛应用于企业级应用程序开发中。本文将对Struts框架的原理进行解析,并结合实际代码示例进行探索,帮助读者更好地理解和应用该框架。一、Struts框架的原理解析1.MVC架构Struts框架基于MVC(Model-View-Con

PHP编码实践:拒绝使用goto语句的替代方案近年来,随着编程语言的不断更新和迭代,程序员们开始更加注重编码规范和最佳实践。在PHP编程中,goto语句作为一种控制流语句存在已久,但在实际应用中往往会导致代码的可读性和可维护性下降。本文将分享一些替代方案,帮助开发人员拒绝使用goto语句,提高代码质量。一、为什么拒绝使用goto语句?首先,让我们来思考一下为

Golang是一种强大且高效的编程语言,广泛应用于构建网络服务和应用程序。在网络服务中,流量管理是至关重要的一环,它可以帮助我们控制和优化网络上的数据传输,保障服务的稳定性和性能。本文将介绍使用Golang进行流量管理的最佳实践,并提供具体的代码示例。1.使用Golang的net包进行基本的流量管理Golang的net包提供了处理网络数

C++反射机制实践:实现灵活的运行时类型信息导语:C++是一门强类型语言,不像其他语言那样直接提供反射机制以获取类的类型信息。然而,通过一些技巧和技术手段,我们也可以在C++中实现类似的反射功能。本文将介绍如何利用模板元编程和宏定义来实现灵活的运行时类型信息。一、什么是反射机制?反射机制是指在运行时获取类的类型信息,如类的名称、成员函数、成员变量以及其他属性

实战教程:Vue3+Django4全新技术实践引言:随着前端技术的不断发展,Vue.js已经成为了最受欢迎的前端框架之一。而Django作为一个强大而灵活的PythonWeb框架,也备受开发者青睐。本文将带领大家探索如何将Vue3和Django4结合起来,实现一个全新的技术实践。一、环境搭建:首先,我们需要搭建好开发环境。确保你的电脑已经安装了最新版本的N

利用PyCharm进行远程开发是一种高效的方式,可以让开发者们在本地环境中轻松地对远程服务器上的代码进行编辑、调试和运行。本文将介绍如何利用PyCharm进行远程开发实践,并结合具体的代码示例来帮助读者更好地理解和应用这一技术。什么是PyCharmPyCharm是一款由JetBrains公司开发的Python集成开发环境(IDE),提供了丰富的功能和工具来帮
