安全软件开发的三大错误

简介: 本文讲的是安全软件开发的三大错误,许多开发人员如今已经认识到安全软件开发的重要性,但更重要的是,我们必须明白,计划进行安全软件开发和实现它并不是同一回事。

本文讲的是 安全软件开发的三大错误,许多开发人员如今已经认识到安全软件开发的重要性,但更重要的是,我们必须明白,计划进行安全软件开发和实现它并不是同一回事。

image

实际上,一些软件开发公司首先得将安全完全集成到他们的开发过程中来。时间和资金限制是公司面临的常见阻碍,但开发人员的错误同样能造成该集成过程的延迟或错误导向。
下面是开发人员容易犯下的三大错误:

错误 #1:项目最后才匆忙上马安全

公司企业必须在开发过程之初就有一个安全计划。这种前瞻性可以让开发人员采用安全的架构和设计方法,也能更容易地保证代码的整体安全。一个制定良好的安全计划,对今天的软件用户而言尤其重要,他们期望开发人员给他们提供安全的产品。

当你推迟项目某个子系统的安全工作,稍后你将不得不对整个系统的很大一部分进行返工和重新测试。你当然可以延迟日志之类代码库才关心的事,但如果你因为复杂和昂贵而推诿系统访问控制的实现,那你就错过或低估了重要的项目需求。

错误 #2:没能利用好安全软件开发工具和专门技术

公司企业要能经受得住在软件中采用自己的安全方法的引诱。尤其是在身份验证模型、加密和其他复杂功能方面。没必要重新发明轮子。开发人员只要利用好别人经过验证的安全代码和过程就好。时间已经证明了这些解决方案是切实有效的,换句话说就是,这些前人的经验能够帮助开发人员增加对自身项目安全的自信。

从静态代码分析到渗透测试,当今世界有那么多的资源可以利用,我们再没有借口不在产品发布之前搞清它的安全状况了。而且,还有很多诸如OWASP、SAFECode、BSIMM等公司可以帮你理解怎样打造一个安全的程序。
错误 #3:使用带缺陷的库组件,继承了其他开发者的安全漏洞

开发团队需要确保清楚得知道所用的每个库,以及从其他源引入的代码的出处。还需要查明产品用到的任何第三方代码中使用的安全验证、威胁模型和其他安全保障措施。

从安全和缺陷暴露的角度出发,引入第三方库和框架是一项十分危险的操作。开发外包并不能免除你尽职审查和测试所用代码的职责。近期曝出的Java远程方法调用(RMI)反序列化和Apache Commons Collections库的CWE-502问题就是这方面一个很好的例子——在类路径里包含了这个库本身就暴露出了问题,无论这个库是否被调用。

总结

“模糊不清的安全”要不得。有些开发人员要么将安全实现隐藏起来,要么认为非常复杂的实现能让产品更安全。事实上,建立在已证方法基础上的有效安全实现才更能通过同业审查,而同行审查是增加软件交付前安全缺陷检出率和解决率的良好安全的基石。

然而,不幸的是,很多软件开发团队依然试图在开发末端才解决安全问题。这样是不行的。

要想产生预期效果,安全必须融入整个开发过程,从项目计划初期贯穿到产品部署使用。
任何在产品预定发布时间前夕经历过数据泄露,或收到出人意料的渗透测试结果的人,都相当清楚在开发周期末尾添加安全的痛苦。今天,由于物联网设备和无处不在的计算环境,开发人员理解问题和在实际环境中应用安全措施的压力日渐增大。将安全贯彻始终似乎是一项巨大的投入,但第一时间就做对的花费,绝对比问题出现后再补救的代价要小得多。

原文发布时间为:二月 22, 2016
本文作者:nana
本文来自云栖社区合作伙伴安全牛,了解相关信息可以关注安全牛。
原文链接:http://www.aqniu.com/learn/13772.html

相关文章
|
29天前
|
机器学习/深度学习 人工智能 测试技术
软件自动化测试在现代软件开发中的重要性
传统软件测试流程中,手动测试往往耗时且容易出现遗漏,随着软件规模和复杂度的不断提升,自动化测试成为了现代软件开发中不可或缺的一环。本文将探讨软件自动化测试的重要性,介绍其优势以及在现代软件开发中的应用。
11 0
|
1月前
嵌入式软件开发要注意这七中错误事项
嵌入式软件开发要注意这七中错误事项
12 0
|
6月前
|
程序员 开发者
|
9月前
|
JavaScript Java 编译器
90%的Java开发人员都会犯的5个错误
作为一名java开发程序员,不知道大家有没有遇到过一些匪夷所思的bug。这些错误通常需要您几个小时才能解决。当你找到它们的时候,你可能会默默地骂自己是个傻瓜。是的,这些可笑的bug基本上都是你忽略了一些基础知识造成的。其实都是很低级的错误。今天,我总结一些常见的编码错误,然后给出解决方案。希望大家在日常编码中能够避免这样的问题。
|
11月前
|
存储 安全 搜索推荐
详解软件开发的标准过程(生命周期):跟着标准搞,设计没烦恼
详解软件开发的标准过程(生命周期):跟着标准搞,设计没烦恼
|
安全 大数据 程序员
软件开发困难、软件开发困难原因、软件开发困难的根本原因
  软件开发困难   软件开发困难最典型的事件是12360火车票订票,高并发量让初期的12360版本经常崩溃,根本不能用。不能用的软件或平台网站,这样的软件开发困难,难于上青天。   微软在开始组织团队编写Windows操作系统时,也经常遇到软件开发困难,进度迟迟不能更新,产品上线遥遥无期,导致微软领导一个头两个大。
619 0
|
数据管理 项目管理
谈谈实施数据治理时常犯的10大错误
我所见过的最大的错误就是企业没有将文化变革纳为数据治理举措的一部分。到目前为止,这个错误是最大和最常见的错误,它最终可能导致数据治理计划的彻底失败。
|
SQL 存储 XML
面向开发人员的代码安全指南
面向开发人员的代码安全指南
297 0
|
监控 安全 程序员
软件开发的过程
在软件工程中,软件开发方法(也称为系统开发方法,软件开发生命周期,软件开发过程,软件过程)是将软件开发工作划分为包含旨在更好的活动的不同阶段(或阶段)。规划和管理。
3080 0