《白帽子讲WEB安全》学习笔记之第17章 安全开发流程(SDL)

简介:

第17章 安全开发流程(SDL)

17.1 SDL简介

安全开发是从根源有效地解决安全漏洞问题,而已在软件的生命周期内,这样的开发模式成本更低。

SDL过程:

q  培训

所有的开发人员必须接收适当的安全培训,了解相关的安全知识。

q  安全要求

明确项目的安全要求。

q  质量门/bug

质量门和bug栏相当于确定安全和隐私质量的最低可接受级别。

q  安全和隐私风险评估

评估项目中的安全现状和威胁模型

q  设计要求

在产品设计初期考虑安全问题

q  减小攻击面

减小攻击面通过减少攻击者利用潜在弱点或漏洞的机会来降低风险。减少攻击面包括关闭和限制对系统服务的访问,应用“最小权限原则”,以及尽可能的进行分层防御。

q  威胁建模

建立威胁模型分析项目或产品可能遇到的攻击,以及给出解决方案

q  使用指定的工具

q  弃用不安全函数

q  静态分析

q  动态程序分析

q  模糊测试

模糊测试是一种专门形式的动态分析,它通过故意想应用程序引入不良格式或随即数据诱发程序故障。

q  威胁模型和攻击面评析

需求发生改变时,安全模式也需要相应改变

q  事件响应计划

产品的发布需要留下开发人员的联系方式,以及相应的文档,方便日后解决问题。

q  最终安全评估

q  发布/存档

17.2 敏捷SDL

敏捷sdl的思想其实就是以变化的观点实施安全的工作。需求和功能可能一直在变化,代码可能也在发生变化,这要求实施SDL时需要在每一个阶段更新威胁模型和隐私策略,在必要的环节迭代模糊测试、代码安全分析等工作。

17.3 SDL实战经验

准则:

q  与项目经理进行充分的沟通,排出足够的时间

q  规范公司的立项流程,确保所有项目都能通知到安全团队,避免遗漏

q  树立安全部门的权威,项目必须由安全部门审核后才能发布

q  将技术安放写入开发、测试的工作手册

q  给开发工程师培训安全方案

q  记录所有的安全bug,激励程序员编写安全的代码

 

17.4 需求分析与设计阶段

应该建立安全编程的代码库,以及一些比较常见的安全编码问题。

17.5 开发阶段

Sun 的安全编码指导方针:

q  小心使用 特权代码

q  小心处理 静态字段

q  最小化作用域 (scope)

q  小心选择 公共 (public) 方法和字段

q  适当的  (package) 保护性

q  尽可能使用 不可变 (immutable) 对象

q  永远不要返回对包含敏感数据的内部数组的引用

q  永远不要直接存储用户提供(user-supplied)的数组

q  小心使用序列化(Serialization)

q  小心使用本地方法(native methods)

q  清除敏感信息

 

Java 安全反模式

q  忽略那些全模式的代码不经意间就会造成漏洞

典型的 Java 安全编码反模式(Antipatterns):

忽略语言特性 (例如整数溢出 (Integer Overflow) )

不注意使用序列化不注意使用 特权代码

将字段和方法定义到不适当的可见性作用域

在非终态 (non-final) 静态字段中的隐蔽通道(Covert  Channels)

 

 

17.6 测试阶段

参考资料:http://blog.csdn.net/Test_sunny/article/details/4653783

              http://51CTO提醒您,请勿滥发广告!/ceshi/ceshijishu/aqcs/2013/0715/206456.html

              http://51CTO提醒您,请勿滥发广告!/ceshi/ceshijishu/aqcs/2012/0329/204547.html



本文转自 梦朝思夕 51CTO博客,原文链接:http://blog.51cto.com/qiangmzsx/1859569
相关文章
|
26天前
|
安全
网易web安全工程师进阶版课程
《Web安全工程师(进阶)》是由“ i春秋学院联合网易安全部”出品,资深讲师团队通过精炼的教学内容、丰富的实际场景及综合项目实战,帮助学员纵向提升技能,横向拓宽视野,牢靠掌握Web安全工程师核心知识,成为安全领域高精尖人才。 ## 学习地址
23 6
网易web安全工程师进阶版课程
|
4月前
|
Java Docker 容器
美团大牛精心整理SpringBoot学习笔记,从Web入门到系统架构
近期慢慢复工,为了准备面试,各路码友们都开始磨拳擦脚,背面试题、知识点。小编最近得一良友赠送了一份关于SpringBoot的学习笔记,简直不要好用,理论解析言简意赅,每一步操作都有图片展示。这么好的东西肯定不能私藏,为了感谢大家在2019年里的支持,我现在将这份笔记赠送给大家,祝大家前程似锦,Offer不断!
|
8天前
|
云安全 数据采集 安全
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
阿里云提供两种关键安全产品:Web应用防火墙和云防火墙。Web应用防火墙专注网站安全,防护Web攻击、CC攻击和Bot防御,具备流量管理、大数据防御能力和简易部署。云防火墙是SaaS化的网络边界防护,管理南北向和东西向流量,提供访问控制、入侵防御和流量可视化。两者结合可实现全面的网络和应用安全。
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
|
26天前
|
安全 测试技术 网络安全
Web安全基础入门+信息收集篇
学习信息收集,针对域名信息,解析信息,网站信息,服务器信息等;学习端口扫描,针对端口进行服务探针,理解服务及端口对应关系;学习WEB扫描,主要针对敏感文件,安全漏洞,子域名信息等;学习信息收集方法及实现安全测试,能独立理解WEB架构框架,树立渗透测试开展思路!
18 0
Web安全基础入门+信息收集篇
|
1月前
|
安全 数据库 开发工具
Django实战:从零到一构建安全高效的Web应用
Django实战:从零到一构建安全高效的Web应用
47 0
|
1月前
|
安全 中间件 Go
Go语言Web服务性能优化与安全实践
【2月更文挑战第21天】本文将深入探讨Go语言在Web服务性能优化与安全实践方面的应用。通过介绍性能优化策略、并发编程模型以及安全加固措施,帮助读者理解并提升Go语言Web服务的性能表现与安全防护能力。
|
2月前
|
存储 JSON 安全
解密Web安全:Session、Cookie和Token的不解之谜
解密Web安全:Session、Cookie和Token的不解之谜
68 0
|
2月前
|
虚拟化 开发者 Docker
深入浅出:利用Docker容器化技术加速Web开发流程
在本篇文章中,我们将探讨Docker容器化技术如何为Web开发带来革命性的效率提升。通过具体案例和实操示范,我们不仅会介绍Docker的基本概念和工作原理,还将深入分析如何利用Docker容器化技术简化开发环境的搭建、提高应用的可移植性以及加快部署速度。本文旨在为读者提供一种全新的视角,理解并实践如何通过Docker优化现代Web开发流程,无论是对于个人开发者还是团队项目,都将带来前所未有的便捷和效率。
29 0
|
3月前
|
SQL 安全 Go
跨越威胁的传说:揭秘Web安全的七大恶魔
跨越威胁的传说:揭秘Web安全的七大恶魔
跨越威胁的传说:揭秘Web安全的七大恶魔
|
3月前
|
安全 网络安全 数据安全/隐私保护
探索Web安全:强化防护与漏洞扫描技术
在当今数字化时代,Web安全已经成为企业和个人必须关注的重要问题。本文将介绍Web安全的重要性,以及如何通过强化防护与漏洞扫描技术来保护网站和应用程序的安全。同时,还将探讨一些最新的Web安全威胁和应对策略,帮助读者更好地了解和应对Web安全挑战。
24 0