Skip to content

安全评估

简述

有了前⾯的基础,我们就可以正式开始分析并解决安全问题了。⼀个安全评估的过程,可以简单分为4个阶段:资产等级划分、威胁分析、⻛险分析、确认解决⽅案。

一般来说,按照这个过程来实施安全评估,在结果上不会出现较⼤的问题。这个实施的过程是层层递进的,前后之间有因果关系。

img.png

资产等级划分

资产等级划分是所有⼯作的基础,这项⼯作能够帮助我们明确⽬标是什么,要保护什么。

在互联⽹的基础设施已经比较完善的今天,互联⽹的核⼼其实是由用户数据驱动的——用户产⽣业务, 业务产⽣数据。所以——互联⽹安全的核⼼问题,是数据安全的问题。项⽬应该基于对业务不同数据重 要性的理解,划分不同的信用域和信用边界。

与普通项⽬不同,H0是⼀个技术框架,更多时候是从项⽬结构上去分析从⽽得到需要进⾏安全处理的节 点,并提供这些节点所需的安全⼯具或安全解决⽅案。

客户端

Bootx是⼀个web应用脚手架,在这里的客户端我们⼀般是指浏览器这个与用户交互的⼯具,所以浏览器 所⾯临的安全问题也是我们系统所要⾯临的安全问题,虽然⼤部分的问题由浏览器的默认设置解决,但 部分构建浏览器安全基础技术所引发的安全问题,需要我们注意与避免,比如XSS、跨域等问题。

认证服务

认证服务主要用于识别当前操作者是谁,正确识别当前操作者是保证系统安全的前提条件,确对用户与用户权限的识别是保证系统安全的基础

授权服务

授权服务主要是用于标识认证实体所拥有的权限。

其他服务

其他服务⽀持系统的运转,是系统存在的意义,对于这些服务中的相关安全问题,需要提供统⼀的⼯具 和⽅案。

数据库

数据库是系统最为重要的基础,保证数据库中的数据安全需要格外注意。

威胁分析

信任域划分好之后,我们如何才能确定危险来⾃哪里呢?在安全领域里,我们把可能造成危害的来源称为威胁(Threat),⽽把可能会出现的损失称为⻛险(Risk)。 ⻛险⼀定是和损失联系在⼀起的。

那什么是威胁分析呢?威胁分析就是把所有的威胁都找出来。那怎么找呢?⼀般是采用头脑⻛暴法。当 然,也有⼀些比较科学的⽅法, 比如使用⼀个模型,帮助我们去想,在哪些方面有可能会存在威胁,这 个过程能够避免遗漏,这就是威胁建模。

STRIDE模型

下⾯,我们使用⼀种威胁建模的⽅法,它最早是由微软提出的,叫做STRIDE模型,STRIDE是6个单词的⾸字⺟缩写,我们在分析威胁时,可以从以下6个方面去考虑。

威胁定义对应的安全属性
Spoofing(伪装)冒充他人身份认证
Tampering(篡改)修改数据或代码完整性
Repudiation(抵赖)否认做过的事情不可抵赖性
InformationDisclosure(信息泄露)机密信息泄露机密性
Denial of Service(拒绝服务)拒绝服务可用性
Elevation of Privilege(提升权限)未经授权获得许可授权

威胁模型

在进⾏威胁分析时,要尽可能地不遗漏威胁,头脑⻛暴的过程可以确定攻击⾯(Attack Surface)。 我们使用该模型分析得到的威胁模型如下:

威胁编码威胁描述威胁编码威胁类型
SPO-001系统用户设置的密码过于简单SPO伪装
SPO-003恶意用户穷举试探系统用户密码SPO伪装
SPO-004恶意用户窃取系统用户密码登⼊系统SPO伪装
SPO-005恶意用户⼿机验证码登录试探系统⼿机号信息SPO伪装
SPO-006恶意用户穷举试探系统用户信息SPO伪装
SPO-007恶意用户抓包解析系统用户密码SPO伪装
SPO-008恶意用户窃取系统用户token访问系统SPO伪装
SPO-009恶意用户伪造登录界⾯让系统用户登录后跳转到恶意地址截取token信息SPO伪装
TAM-001恶意用户CSRF攻击SPO伪装
TAM-002恶意用户篡改系统数据TAM篡改
TAM-003恶意用户对系统进⾏SQL注⼊攻击TAM篡改
TAM-004恶意用户XXS攻击TAM篡改
REP-001恶意用户对系统做了未知的操作TAM篡改
IDS-001恶意用户窃取界⾯敏感信息IDS信息泄露
IDS-002恶意用户窃取界⾯关键信息IDS信息泄露
IDS-003恶意用户操作数据库获取系统关键信息IDS信息泄露
IDS-004恶意用户跨域访问IDS信息泄露
DOS-001恶意用户故意发起⼤量请求破坏系统可用性DOS拒绝服务
EOP-002恶意用户垂直越权EOP提升权限
EOP-003恶意用户⽔平越权EOP提升权限
EOP-004恶意用户上传有害⽂件EOP提升权限
OTH-001系统使用的三⽅组件漏洞OTH其他

⻛险分析

⻛险由以下因素组成:Risk = Probability * Damage Potential

影响⻛险⾼低的因素,出了造成损失的⼤⼩外,还需要考虑到发⽣的可能性,我们在考虑安全问题时, 要结合具体情况,权衡事件发⽣的可能性,才能正确地判断出⻛险。

如何更科学地衡量⻛险呢?我们使用DREAD模型来科学的衡量⻛险,该模型也是微软提出的。DREAD 也是⼏个单词的⾸字⺟缩写,它指导我们应该从哪些方面去判断⼀个威胁的⻛险程度。

等级高(3)中(2)低(1)
DamagePotential(危害程度)获取完全验证权限:执行管理员操作;非法上传文件泄露敏感信息泄露其他信息
Reproducibility(可复现性)攻击者可以随意再次攻击攻击者可以重复攻击,但有时间限制攻击者很难重复攻击过程
Exploitability(利用难度)初学者在短期内能掌握攻击方法熟练的攻击者才能完成这次攻击漏洞利用条件非常苛刻
Affected users(影响面)所有用户,默认配置,关键用户部分用户,非默认配置极少数用户,匿名用户
Discoverability(发现难度)漏洞很显眼,攻击条件很容易获得在私有区域,部分人能看到,需要深入挖掘漏洞发现该漏洞极其困难

在DREAD模型中,每⼀个因素都可以分为⾼、中、低三个等级。在上表中,⾼、中、低三个等级分别以 3、2、1的分数代表其权重值,因此,我们可以具体计算出某⼀个威胁的⻛险值。

对于我们系统:

威胁编码威胁描述D-危害程度R-可复现性E-利用难度A-影响面D-发现难度风险分值
SPO-001系统用户设置的密码过于简单2233313
SPO-003恶意用户穷举试探系统用户密码2233313
SPO-004恶意用户窃取系统用户密码登⼊系统2123210
SPO-005恶意用户⼿机验证码登录试探系统⼿机号信息2233313
SPO-006恶意用户穷举试探系统用户信息1233312
SPO-007恶意用户抓包解析系统用户密码2223211
SPO-008恶意用户窃取系统用户token访问系统212128
SPO-009恶意用户伪造登录界⾯让系统用户登录后跳转到恶意地址截取token信息2321210
TAM-001恶意用户CSRF攻击3313111
TAM-002恶意用户篡改系统数据1333313
TAM-003恶意用户对系统进⾏SQL注⼊攻击3323213
TAM-004恶意用户XXS攻击3313111
REP-001恶意用户对系统做了未知的操作2233212
IDS-001恶意用户窃取界⾯敏感信息2233313
IDS-002恶意用户窃取界⾯关键信息2233313
IDS-003恶意用户操作数据库获取系统关键信息211318
IDS-004恶意用户跨域访问3313111
DOS-001恶意用户故意发起⼤量请求破坏系统可用性112329
EOP-002恶意用户垂直越权3323112
EOP-003恶意用户⽔平越权3323213
EOP-004恶意用户上传有害⽂件311319
OTH-001系统使用的三⽅组件漏洞xxxxxx

通过对威胁的⻛险分析,我们可以得到⼀个威胁分值表,我们可以通过对威胁最终的分值,来决定需要 对哪些威胁场景进⾏处理。我们做出以下的规定:

⾼危:12~15分

中危:8~11分

低危:0~7分

在⼀般情况下,我们需要处理掉所有⾼危和中危的威胁,处理部分低危的威胁。以上的威胁和⻛险分析是在H0本身的⻆度,可能与实际的项⽬会有⼀定的偏差, 再考虑到H0是⼀个技术平台,所以我们尽可能的提供了所有已分析到的威胁的处理⽅案,后期如有新的威胁加⼊威胁清单中,可基于现有的结构 和逻辑进⾏功能的迭代与完善。

设计安全⽅案

安全评估的产出物,就是安全解决⽅案。解决⽅案⼀定要有针对性,这种针对性是由资产等级划分、威胁分析、⻛险分析等阶段的结果给出的。

⼀个优秀的安全⽅案应该具备以下特点:

  • 能够有效解决问题
  • 用户体验好
  • ⾼性能
  • 低耦合
  • 易于扩展与升级

对于以上分析出来的威胁和⻛险,做了对应的处理办法:

威胁编码威胁描述处理方案
SPO-001系统用户设置的密码过于简单密码安全策略
SPO-003恶意用户穷举试探系统用户密码登录安全策略
SPO-004恶意用户窃取系统用户密码登⼊系统多因素认证(⼆次校验)
SPO-005恶意用户⼿机验证码登录试探系统⼿机号信息增加图像验证码
SPO-006恶意用户穷举试探系统用户信息所有用户登录时系统表现⼀致
SPO-007恶意用户抓包解析系统用户密码登录/注册/修改密码时密码加密传输
SPO-008恶意用户窃取系统用户token访问系统token失效时间、令牌管理、在线用户、登录⽇志
SPO-009恶意用户伪造登录界⾯让系统用户登录后跳转到恶意地址截取token信息客户端配置重定向后允许重定向的地址
TAM-001恶意用户CSRF攻击API防重放、access_token
TAM-002恶意用户篡改系统数据数据防篡改
TAM-003恶意用户对系统进⾏SQL注⼊攻击预编译SQL语句与参数填充
TAM-004恶意用户XXS攻击设置httpOnly解决cookie劫持问题、输⼊/输出检测
REP-001恶意用户对系统做了未知的操作数据审计、单据审计
IDS-001恶意用户窃取界⾯敏感信息敏感字段脱敏、敏感字段隐藏
IDS-002恶意用户窃取界⾯关键信息关键信息不展示,比如密码信息等
IDS-003恶意用户操作数据库获取系统关键信息密码加密存储、关键数据加密存储
IDS-004恶意用户跨域访问配置跨域策略
DOS-001恶意用户故意发起⼤量请求破坏系统可用性⿊⽩名单、限流、API访问控制、API统计
EOP-002恶意用户垂直越权访问权限控制
EOP-003恶意用户⽔平越权主键加密、雪花主键、数据权限控制、字段权限控制
EOP-004恶意用户上传有害⽂件⽂件上传配置, 文件隔离
OTH-001系统使用的三⽅组件漏洞关注业界发布的漏洞信息,及时修复与更新
本文档内容版权属于济南易杯光年软件技术有限公司,保留所有权利