分享

软件安全性开发的最佳实践

 东北十三少 2020-10-16

软件的安全性日益重要。

远的不说,就在2018年8月,华住公司旗下的众多酒店包括汉庭、美爵、桔子、全季、海友等大家熟悉的连锁酒店的入住信息数据被泄露,泄露信息包括官网注册资料共53G,约1.23亿条,入住登记身份信息共22.3G,共1.3亿条,酒店开房记录,共66.2G,共2.4亿条。

互联网带来了很多便利,也带来了更多的安全风险。

安全,对于这类商业应用软件已经如此重要,那么,那些关键安全的软件呢?

虽然军用软件早已有了一些软件安全性设计的标准,可是这些标准对于软件安全性提高并没有发挥多大的作用。

有时候,一些事情的解决方案如果太复杂或者不太容易让人着手实施的话,那可能就不会起到任何效果。

前段时间,一位质量专家给出了质量体系实施“退、细、实”的三大要决给我很大启发,对于软件安全性需求的开发也可以从一些能够落地的实践做起。

  1. 培养软件设计师的安全开发意识

软件由人来开发的,如果开发者缺乏安全意识,即便有一系列的安全标准在那里,他也不会重视,也不会做好安全性需求的开发。所以,组织应当培养软件设计师的安全开发意识,特别是对于关键安全软件。

  1. 建立安全标准和安全编码规范

组织应当建立软件安全性需求开发的标准和安全编码规范,以指导设计师的开发行为。

  1. 依据安全规范进行代码走查和静态分析

代码走查和静态分析一直都是提高代码质量的最佳实践。对于软件的安全性需求开发来说,也是如此。代码走查和静态分析要依据编码规范,而在GJB 8114 《C/C++语言编程安全子集》就是这样的一个编码规范,如果组织没有建立自己的安全编码规范,不妨以它为基础,逐渐形成自己的安全规范。

  1. 对安全性编码准则的遵循性进行评价

除了代码走查和静态分析以确保代码质量之外,还应对代码的安全性编码规范的遵循性进行评价,以监督规范的执行情况。

GJB 8114中给出了评估编程安全子集的遵循性的方法。安全准则的遵循性P=违背强制准则的条款总数/代码行总数×1000‰。遵循性的好坏分为6个等级:

  • P≤3%,非常好

  • P介于3%~20%,好

  • P介于20%~40%,较好

  • P介于40%~60%,较差

  • P介于60%~100%,差

  • P>100%,非常差

  1. 建立安全问题库

组织应收集历史项目中出现软件安全问题,纳入软件安全问题的经验教训库,以供软件开发人员借鉴。

  1. 改进安全规范

组织应不断改进软件编码的安全规范,以适应新的软件安全性需求和不断变化的软件环境。

以上是我总结的一些软件安全性开发的实践。虽然不一定就能解决所有的软件安全性问题,但肯定会对软件的安全性需求有帮助。不妨一试!

参考书目:《软件工程最佳实践》

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多