图片

需求

安全需求分析

风险评估要基于系统中的信息的价值、业务功能的价值、系统的潜在威胁、恶意***的可能性、系统的故障和被成功***的后果等情况进行评估。

关键目标识别

我们需要从安全角度进行系统的考虑,它是一个安全的软件开发生命周期过程中的一部分。

阅读:

  • 我们要考虑哪些安全问题「http://blog.720ui.com/2017/security_aspect/ 」

设计

威胁模型

威胁建模是一个工程技术,可以帮助我们识别到系统中存在的相关威胁和漏洞,并帮助我们确定安全目标和确定相关的对策进行防范。

后面有时间,我会针对威胁建模进行大致的讲解。

开发

静态代码分析

静态代码分析的好处在于,测试可以完全自动化,使开发人员能够实现安全的编码实践,并在系统发布前,检查并修复存在风险的安全问题。

静态代码分析工具可以帮助开发人员快速查找和防止 SQL 注入、跨站脚本(XSS),跨站请求伪造(CSRF)和其他恶意***。

例如,Sonar (SonarQube)就是一个很好的工具。Sonar 是一个用于代码质量管理平台,管理源代码的质量。Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。

开发安全规范

网络安全

我们经常遇到 Web *** 和网络安全性问题。

阅读:

  • 如何防范常见的Web***「http://blog.720ui.com/2016/security_web/ 」

数据传输安全

当机密或敏感的数据在用户与 Web 服务器之间传递,可能存在数据的安全性问题。

阅读:

  • 服务端通信安全***详解「http://blog.720ui.com/2016/security_data_transmission/ 」

  • HTTPS原理剖析与项目场景「http://blog.720ui.com/2016/security_https/ 」

数据库安全

使用最小权限原则来访问数据库对象,例如表、视图、存储过程等。我举个实际的场景,如果我需要只读访问一个特定的数据库表,因此,数据库权限应该相应设置,而不是将我授予超级管理员权限。

此外,还需要注意数据库中机密或敏感数据的安全性,必要时候可以使用加密技术进行存储,例如针对密码采取MD5基础上的盐值加密。

代码审查

代码审查是计算机源代码的检查。它的目的是发现在最初的开发阶段忽略的错误,提高软件的整体质量。代码审查可以通过交叉编程,非正式的沟通,和正式检查。

阅读:

  • 提高服务端编码质量 - 预防BUG篇「http://blog.720ui.com/2016/bug-prevention/」

测试

安全测试

安全测试是在相同测试环境和预生产环境进行全面测试,尽可能模拟相应的生产环境。这包括硬件,软件,系统配置,控制和任何其他硬件。

在测试过程中,包括回归测试,必须证明所有的安全控制已经适当应用,正确实现,并且工作正常,消灭所预期的威胁和漏洞。

测试过程中还必须包括漏洞测试,并把该系统投入使用之前表现出严重漏洞的修复。

部署

安全评估

安全评估是每一家公司软件开发生命周期的重要组成部分。专家组对系统进行安全评估,分析安全问题,提供评估报告。

这个部分我们经常忽略,之前我参与的一个产品对安全性要求很高,还进行了多轮安全评估。

总结

我们来回顾下,上面讲到的内容。


图片


  • 需求阶段,我们重点要进行安全需求分析和关键目标识别。

  • 设计阶段,我们可以采取威胁建模的方式,帮助我们确定安全目标和确定相关的对策进行防范。

  • 开发阶段,我们采取静态代码分析、开发安全规范的方式,在系统发布前,检查并修复存在风险的安全问题。

  • 测试阶段,不仅要进行功能测试、性能测试,还要考虑安全测试,消灭所预期的威胁和漏洞。

  • 部署阶段,还需要安全评估。



更多相关文章

  1. Linux性能优化(一)——stress压力测试工具
  2. Linux性能优化(二)——sysbench压力测试工具
  3. 一段神奇的监视 DOM 的代码[每日前端夜话0xE4]
  4. SpringBoot结合MyBatis Plus 自动生成代码
  5. 10 行 Java 代码实现最近被使用( LRU )缓存
  6. Java 8 Lambda 表达式和流操作如何让你的代码变慢 5 倍
  7. 没用过这些IDEA插件?怪不得写代码头疼
  8. Java8 Lambda 表达式和流操作如何让你的代码变慢 5 倍
  9. 测试领域,小白问题大集合(适合未入门和入门初级者)

随机推荐

  1. Android下xml中RelativeLayout布局常见属
  2. 好工具推荐系列:跨平台安卓实时投屏软件Qt
  3. Android(安卓)studio 注释模板
  4. Android平台调用WebService详解
  5. Android基础介绍
  6. Android之ConstraintLayout
  7. Android进程与线程基本知识
  8. Android 中使用 Aspectj 限制快速点击
  9. 友盟—安卓巴士【Android开发原创教程大
  10. android 中管理短信