评论

收藏

[PHP] HZERO企业级数字PaaS平台(三) | 全面安全体系,信息安全重要且必要(一)

开发技术 开发技术 发布于:2022-08-14 15:44 | 阅读数:271 | 评论:0

DSC0000.gif
在我们解决问题前,首先需要明白我们的问题是什么,在明白了问题是什么,我们才能从问题的产生逻辑和问题的运转逻辑中找到问题出现的点和解决的办法。正如《道德经》第十六章所说: 
 致虚极,守静笃,万物并作,吾以观复。夫物芸芸,各归其根。归根曰静,静曰复命。复命曰常,知常曰明,不知常,妄作凶。知常容,容乃公,公乃全,全乃天,天乃道,道乃久,没身不殆。 
 需要“知常",“不知常"最后只能导致“妄作凶",“知常"后才能“容",才能“公",才能“全",最终才能“没身不殆"。 
 安全问题的本质是信任的问题。 
 一切安全方案设计的基础,都是建立在信息关系上的。我们必须相信一些东西,必须有一些最基本的假设,安全方案才能得以建立;如果我们否定一切,安全方案就会如无源之水,无根之木,无法设计,也无法完成。

安全三要素
   机密性、完整性、可用性
要全面地认识一个安全问题,我们有很多种办法,但首先要理解安全问题的组成属性。前人通过无数实践,最后将安全的属性总结为安全三要素,简称CIA
安全三要素是安全的基本组成元素,分别是机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)
机密性要求保护数据内容不能泄露,加密是实现机密性要求的常见手段。
完整性则要求保护数据内容是完整、没有被篡改的。常见的保证一致性的技术手段是数字签名。
可用性要求保护资源是“随需而得",比如拒绝服务攻击(DOS)攻击破坏的就是安全的可用性。

汉得企业级PaaS平台关于安全的设计

HZERO是一个PaaS技术平台,更多时候是从项目结构上去分析从而得到需要进行安全处理的节点,并提供这些节点所需的安全工具或安全解决方案。
对于HZERO,我们基于项目构成结构与部署结构,做出了以下的划分:
DSC0001.png

●   客户端

HZERO是一个Web应用技术平台,在这里的客户端我们一般是指浏览器这个与用户交互的工具,所以浏览器所面临的安全问题也是我们系统所要面临的安全问题,虽然大部分的问题由浏览器的默认设置解决,但部分构建浏览器安全基础技术所引发的安全问题,需要我们注意与避免,比如XSS、跨域等问题。

●   网关服务

网关是HZERO后端与外部沟通的主要节点,在网关正确对用户与用户权限的识别是保证系统安全的基础。
●   认证服务
认证服务主要用于识别当前操作者是谁,正确识别当前操作者是保证系统安全的前提条件。
●   授权服务
授权服务主要是用于标识认证实体所拥有的权限。
●   其他服务
其他服务支持系统的运转,是系统存在的意义,对于这些服务中的相关安全问题,需要提供统一的工具和方案。
●   数据库
数据库是系统最为重要的基础,保证数据库中的数据安全需要格外注意。

HZERO安全体系设计
  HZERO数字平台安全体系结构
根据安全评估的结果,我们对不同资产所划分出来的信任域和信任边界基于威胁分析和风险分析得到的安全方案进行的具体的规划与设计。对于存在的安全风险也做出了明确的解决方案与说明。
DSC0002.png


HZERO数字平台安全体系图鉴
上面HZERO安全体系设计从结构上对安全问题进行了处理和分析,这里,从功能上对HZERO安全体系相关对功能进行了罗列与总结。
DSC0003.png

文章最后提供HZERO平台威胁分析及风险分析设计参考及实际应用应对方案 
 附一:部分常见安全场景HZERO平台处理指导应对方案

威胁编码
威胁描述

处理方案

HSF_SPO_001

系统用户设置的密码过于简单
密码安全策略
HSF_SPO_002
恶意用户穷举试探系统用户密码
登录安全策略
HSF_SPO_003
恶意用户窃取系统用户密码登入系统
多因素认证(二次校验)
HSF_SPO_004
恶意用户手机验证码登录试探系统手机号信息
增加图像验证码
HSF_SPO_005
恶意用户穷举试探系统用户信息
所有用户登录时系统表现一致
HSF_SPO_006
恶意用户抓包解析系统用户密码
登录/注册/修改密码时密码加密传输
HSF_SPO_007
恶意用户窃取系统用户token访问系统
token失效时间、令牌管理、在线用户、登录日志
HSF_SPO_008
恶意用户伪造登录界面让系统用户登录后跳转到恶意地址截取token信息
客户端配置重定向后允许重定向的地址
HSF_SPO_009
恶意用户CSRF攻击
API防重放、access_token
HSF_TAM_001
恶意用户篡改系统数据
数据防篡改
HSF_TAM_002
恶意用户对系统进行SQL注入攻击
预编译SQL语句与参数填充
HSF_TAM_003
恶意用户XXS攻击
设置httpOnly解决cookie劫持问题、输入/输出检测
HSF_REP_001
恶意用户对系统做了未知的操作
数据审计、单据审计
HSF_IDS_001
恶意用户窃取界面敏感信息
敏感字段脱敏、敏感字段隐藏
HSF_IDS_002
恶意用户窃取界面关键信息
关键信息不展示,比如密码信息等
HSF_IDS_003
恶意用户操作数据库获取系统关键信息
密码加密存储、关键数据加密存储
HSF_IDS_004
恶意用户跨域访问
网关跨域配置
HSF_DOS_001
恶意用户故意发起大量请求破坏系统可用性
黑白名单、限流、API访问控制、API统计
HSF_EOP_001
恶意用户垂直越权
访问权限控制
HSF_EOP_002
恶意用户水平越权
主键加密、雪花主键、数据权限控制、单据权限控制
HSF_EOP_003
恶意用户上传有害文件
文件上传配置
HSF_OTH_001
系统使用的三方组件漏洞
时时关注业界发布的漏洞信息,及时修复与更新

附二:威胁分析
信任域划分好之后,我们如何才能确定危险来自哪里呢?在安全领域里,我们把可能造成危害的来源称为威胁(Threat),而把可能会出现的损失称为风险(Risk)。风险一定是和损失联系在一起的。
那什么是威胁分析呢?威胁分析就是把所有的威胁都找出来。那怎么找呢?一般是采用头脑风暴法。当然,也有一些比较科学的方法,比如使用一个模型,帮助我们去想,在哪些方面有可能会存在威胁,这个过程能够避免遗漏,这就是威胁建模。
下面,我们使用一种威胁建模的方法,它最早是由微软提出的,叫做STRIDE模型。
STRIDE是6个单词的首字母缩写,我们在分析威胁时,可以从以下6个方面去考虑。
DSC0004.png

在进行威胁分析时,要尽可能地不遗漏威胁,头脑风暴的过程可以确定攻击面(Attack Surface)。
对于HZERO,我们使用该模型分析得到的威胁模型如下:
威胁编码
威胁描述

威胁类型

HSF_SPO_001
系统用户设置的密码过于简单
SPO(伪装)

HSF_SPO_002
恶意用户穷举试探系统用户密码
SPO(伪装)

HSF_SPO_003
恶意用户窃取系统用户密码登入系统
SPO(伪装)

HSF_SPO_004
恶意用户手机验证码登录试探系统手机号信息
SPO(伪装)

HSF_SPO_005
恶意用户穷举试探系统用户信息
SPO(伪装)

HSF_SPO_006
恶意用户抓包解析系统用户密码
SPO(伪装)

HSF_SPO_007
恶意用户窃取系统用户token访问系统
SPO(伪装)

HSF_SPO_008
恶意用户伪造登录界面让系统用户登录后跳转到恶意地址截取token信息
SPO(伪装)

HSF_SPO_009
恶意用户CSRF攻击
SPO(伪装)

HSF_TAM_001
恶意用户篡改系统数据
TAM(篡改)

HSF_TAM_002
恶意用户对系统进行SQL注入攻击
TAM(篡改)

HSF_TAM_003
恶意用户XXS攻击
TAM(篡改)

HSF_REP_001
恶意用户对系统做了未知的操作
REP(抵赖)

HSF_IDS_001
恶意用户窃取界面敏感信息
IDS(信息泄露)

HSF_IDS_002
恶意用户窃取界面关键信息
IDS(信息泄露)

HSF_IDS_003
恶意用户操作数据库获取系统关键信息
IDS(信息泄露)

HSF_IDS_004
恶意用户跨域访问
IDS(信息泄露)

HSF_DOS_001
恶意用户故意发起大量请求破坏系统可用性
DOS(拒绝服务)

HSF_EOP_001
恶意用户垂直越权
DOS(拒绝服务)

HSF_EOP_002
恶意用户水平越权
DOS(拒绝服务)

HSF_EOP_003
恶意用户上传有害文件
DOS(拒绝服务)

HSF_OTH_001
系统使用的三方组件漏洞
ALL

附三:风险分析 
 风险由以下因素组成: 
 Risk = Probability * Damage Potential
影响风险高低的因素,出了造成损失的大小外,还需要考虑到发生的可能性,我们在考虑安全问题时,要结合具体情况,权衡事件发生的可能性,才能正确地判断出风险。
如何更科学地衡量风险呢?我们使用DREAD模型来科学的衡量风险,该模型也是微软提出的。DREAD也是几个单词的首字母缩写,它指导我们应该从哪些方面去判断一个威胁的风险程度。
DSC0005.png

在DREAD模型中,每一个因素都可以分为高、中、低三个等级。在上表中,高、中、低三个等级分别以3、2、1的分数代表其权重值,因此,我们可以具体计算出某一个威胁的风险值。
对于HZERO我们尽可能的提供了所有已分析到的威胁的处理方案,并提供支持未来根据实际应用安全要求的防护拓展支持:
威胁编码
威胁描述

D

R

E

A

D

风险分值

HSF_SPO_001

系统用户设置的密码过于简单
2

2

3

3

3

13
HSF_SPO_002
恶意用户穷举试探系统用户密码
2

2

3

3

3

13
HSF_SPO_003
恶意用户窃取系统用户密码登入系统
2

1

2

3

2

10
HSF_SPO_004
恶意用户手机验证码登录试探系统手机号信息
2

2

3

3

3

13
HSF_SPO_005
恶意用户穷举试探系统用户信息
1

2

3

3

3

12
HSF_SPO_006
恶意用户抓包解析系统用户密码
2

2

2

3

2

11
HSF_SPO_007
恶意用户窃取系统用户token访问系统
2

1

2

1

2

8
HSF_SPO_008
恶意用户伪造登录界面让系统用户登录后跳转到恶意地址截取token信息
2

3

2

1

2

10
HSF_SPO_009
恶意用户CSRF攻击
3

3

1

3

1

11
HSF_TAM_001
恶意用户篡改系统数据
1

3

3

3

3

13
HSF_TAM_002
恶意用户对系统进行SQL注入攻击
3

3

2

3

2

13
HSF_TAM_003
恶意用户XXS攻击
3

3

1

3

1

11
HSF_REP_001
恶意用户对系统做了未知的操作
2

2

3

3

2

12
HSF_IDS_001
恶意用户窃取界面敏感信息
2

2

3

3

3

13
HSF_IDS_002
恶意用户窃取界面关键信息
2

2

3

3

3

13
HSF_IDS_003
恶意用户操作数据库获取系统关键信息
2

1

1

3

1

8
HSF_IDS_004
恶意用户跨域访问
3

3

1

3

1

11
HSF_DOS_001
恶意用户故意发起大量请求破坏系统可用性
1

1

2

3

2

9
HSF_EOP_001
恶意用户垂直越权
3

3

2

3

1

12
HSF_EOP_002
恶意用户水平越权
3

3

2

3

2

13
HSF_EOP_003
恶意用户上传有害文件
3

1

1

3

1

9
HSF_OTH_001
系统使用的三方组件漏洞
X

X

X

X

X

X
通过对威胁的风险分析,我们可以得到一个威胁分值表,我们可以通过对威胁最终的分值,来决定需要对哪些威胁场景进行处理。我们做出以下的规定:
高危:12~15分
中危:8~11分
低危:0~7分
项目可以基以上于HZERO的威胁清单与解决方案,合理选择合适的组件来完善自己的安全分析与管理。
总而言之,实践是检验真理的唯一标准,想要了解HZERO安全体系功能及工具在实际企业级应用中如何使用?下期我们将进行详细阐述,敬请期待。

下期预告
HZERO企业级数字PaaS平台-全面安全体系(二)
往期推荐
1、HZERO企业级数字PaaS平台 | 企业级权限重磅来袭
2、HZERO企业级数字PaaS平台 | 自主可控数字化应用的“操作系统”
联系我们

产品试用请登录开放平台。请在 PC 端打开:

https://open.hand-china.com/market-home/trial-center/

产品详情请登录开放平台:

https://open.hand-china.com/document-center/

如有疑问登录开放平台提单反馈

https://open.hand-china.com/



DSC0006.png


DSC0007.jpg

更多精彩内容,扫码关注 “四海汉得” 公众号


关注下面的标签,发现更多相似文章