Open mylamour opened 5 years ago
:triangular_flag_on_post:记录昨天安全设计评审的过程,当然这也是第一次进行安全评审。因此做一个总结。安全设计评审应该是SDL落地安全人员参与过程中首当其冲的地方。仅指安全人员自身的功用。如果按照SDL流程来讲,最前期应该是进行安全培训。我们可以看两个微软SDL官方给出的流程图。
SDL
那么在安全设计评审这一阶段,应该怎么去做。我们可以先看下唯品会的SDL中在落地安全设计这一块怎么做的。
就我自身而言。是按照以下这个流程进行的。
看着一大堆乱七八糟,自上而下的流程,但是做起来其实很快的。此处默认安全人员熟悉各种基本的开发过程中的安全规范以及一些Checklist(必须要了解公司开发语言对应的安全开发规范),举例: web安全开发规范,Python安全编码规范,Flask安全, Django安全,常用的安全配置,面临哪些攻击点等等。 ps: 明确逻辑是非常重要的,可以说最为重要,如果连逻辑都不明白,谈什么设计评审。
Checklist
web
Python
Flask
Django
一些比较基础的:
下面以C2C平台交易部分为例进行说明,可以简单的想一下,在智联买一张火车票,打开了支付宝进行支付。:
C2C
然后,你知道数字签名当然是很基础的部分了。那么接下来,你就要细化支付流程过程中出现哪些操作,针对这些操作需要做什么样的防护措施。下图是针对用户商户支付方之间的流程:
原文件在此(0.1版本),使用draw.io绘制 针对每个输入点,自身可控的输入输出的地方,进行过滤,校验等操作。
draw.io
所以那么问题来了,如果只单单是用户和支付方之间的呢?
你也可以思考一下如何进行:musical_keyboard:
并且在OWASP应用安全设计中,详细指出了其他一些问题(中文版 Version 1.0 5):
OWASP
下图(来自OWASP官方文档)详列上述条目以及其他需要检查的地方。
但是其实并不需要按照上述所有清单做自检,或者说是当你和开发团队在讨论的过程中不需要涉及全部的checklist,可能只需要在架构上,设计上进行检验,以及身份验证和数据检验上。当然,都是需要根据自己的业务场景去实现,因地制宜。
:triangular_flag_on_post:记录昨天安全设计评审的过程,当然这也是第一次进行安全评审。因此做一个总结。安全设计评审应该是SDL落地安全人员参与过程中首当其冲的地方。仅指安全人员自身的功用。如果按照![image](https://user-images.githubusercontent.com/12653147/45536074-ee425400-b832-11e8-9ca7-442923291a3f.png)
SDL
流程来讲,最前期应该是进行安全培训。我们可以看两个微软SDL官方给出的流程图。那么在安全设计评审这一阶段,应该怎么去做。我们可以先看下唯品会的SDL中在落地安全设计这一块怎么做的。
就我自身而言。是按照以下这个流程进行的。
看着一大堆乱七八糟,自上而下的流程,但是做起来其实很快的。此处默认安全人员熟悉各种基本的开发过程中的安全规范以及一些
Checklist
(必须要了解公司开发语言对应的安全开发规范),举例:web
安全开发规范,Python
安全编码规范,Flask
安全,Django
安全,常用的安全配置,面临哪些攻击点等等。 ps: 明确逻辑是非常重要的,可以说最为重要,如果连逻辑都不明白,谈什么设计评审。一些比较基础的:
下面以![image](https://user-images.githubusercontent.com/12653147/45537646-67dc4100-b837-11e8-9154-a3f78020d931.png)
C2C
平台交易部分为例进行说明,可以简单的想一下,在智联买一张火车票,打开了支付宝进行支付。:然后,你知道数字签名当然是很基础的部分了。那么接下来,你就要细化支付流程过程中出现哪些操作,针对这些操作需要做什么样的防护措施。下图是针对用户商户支付方之间的流程:
原文件在此(0.1版本),使用
draw.io
绘制 针对每个输入点,自身可控的输入输出的地方,进行过滤,校验等操作。所以那么问题来了,如果只单单是用户和支付方之间的呢?![image](https://user-images.githubusercontent.com/12653147/45539501-88f36080-b83c-11e8-8b18-26a204eaf0a9.png)
你也可以思考一下如何进行:musical_keyboard:
并且在
OWASP
应用安全设计中,详细指出了其他一些问题(中文版 Version 1.0 5):下图(来自OWASP官方文档)详列上述条目以及其他需要检查的地方。
![image](https://user-images.githubusercontent.com/12653147/45603400-47420000-ba5e-11e8-9ac6-07ff0aedcc90.png)
但是其实并不需要按照上述所有清单做自检,或者说是当你和开发团队在讨论的过程中不需要涉及全部的checklist,可能只需要在架构上,设计上进行检验,以及身份验证和数据检验上。当然,都是需要根据自己的业务场景去实现,因地制宜。
Resources