基于数据流安全威胁分析的软件产品设计方法及装置与流程

文档序号:14036455阅读:318来源:国知局
基于数据流安全威胁分析的软件产品设计方法及装置与流程

本发明属于信息安全技术领域,尤其涉及一种基于数据流安全威胁分析的软件产品设计方法。



背景技术:

目前市场上对开发过程中的安全分析与设计,缺乏标准的流程和方法,使得安全威胁分析不统一,千人千样;开发设计是静态的,缺乏动态的安全分析;没有一套方法论,可以实践在安全开发过程中,把用户、产品设计人员、研发设计人员、安全设计人员、开发人员有机结合起来;安全威胁分析只依赖安全专家,同时安全专家对业务又经常不精通,导致安全威胁的分析结果很难形成可落地的安全设计;一线的开发人员在安全开发过程中,担任了太多重要的角色,导致形成安全瓶颈。

发明的内容

针对现有技术的不足,本发明要解决背景技术中的部分问题。

为了解决上述问题,本发明提供了一种基于数据流安全威胁分析的软件产品设计方法,包括:步骤(1),获取用户的功能需求;步骤(2),通过业务流程将所述用户的功能需求转化成数据流图,其中,对所述业务流程的数据流进行优化分析以及安全威胁分析重构;步骤(3),将数据流图代码化得到最终产品。

在一些实施例中,所述业务流程包括以下步骤:步骤(2.1),客户端调用服务端的业务api;步骤(2.2),业务接口对参数进行校验;步骤(2.3),服务端的业务接口调用认证接口;步骤(2.4),根据认证接口的返回接口,返回响应信息发送给客户端。

在一些实施例中,所述业务流程至少包括一个数据流;所述数据流包括:设置数据流开始标识、设置数据流api标识、设置数据流请求变量标识、设置数据流判断变量标识、设置数据流中间变量标识、设置数据流响应变量标识以及数据流变量描述。

在一些实施例中,所述业务流程具体包括:不能出现无线循环,每个判断,最终都可以走到流程结束;判断逻辑,有且仅有一个入口,只能针对判断变量,判断结果最多只能有2个不同分支;针对同一个数据流request和response必须只有一种;一个完整的业务流程中,数据流应控制在5个以内;关键变不能存在url中;存在多个判断变量影响结果完全一致,要合并表示。

在一些实施例中,所述步骤(2)具体包括:优化分析,具体包括判断变量合并、业务合并、响应合并以及异常变量;安全威胁分析,具体包括保密性、完整性、防重放、身份认证授权、参数格式校验、攻击防护以及业务逻辑漏洞。

本发明还提供了一种基于数据流安全威胁分析的软件产品设计装置,包括:获取模块,配置用于获取用户的功能需求;转化重构模块,配置用于通过业务流程将所述用户的功能需求转化成数据流图,其中,对所述业务流程的数据流进行优化分析以及安全威胁分析重构;代码化模块,配置用于将数据流图代码化得到最终产品。

在一些实施例中,所述转化重构模块具体包括:第一调用单元,配置用于客户端调用服务端的业务api;校验单元,配置用于业务接口对参数进行校验;第二调用单元,配制用于服务端的业务接口调用认证接口;响应单元,配置用于根据认证接口的返回接口,返回响应信息发送给客户端。

在一些实施例中,所述业务流程至少包括一个数据流;所述数据流包括:设置数据流开始标识、设置数据流api标识、设置数据流请求变量标识、设置数据流判断变量标识、设置数据流中间变量标识、设置数据流响应变量标识以及数据流变量描述。

在一些实施例中,所述业务流程具体包括:不能出现无线循环,每个判断,最终都可以走到流程结束;判断逻辑,有且仅有一个入口,只能针对判断变量,判断结果最多只能有2个不同分支;针对同一个数据流request和response必须只有一种;一个完整的业务流程中,数据流应控制在5个以内;关键变不能存在url中;存在多个判断变量影响结果完全一致,要合并表示。

在一些实施例中,所述转化重构模块具体包括:优化分析,具体包括判断变量合并、业务合并、响应合并以及异常变量;安全威胁分析,具体包括保密性、完整性、防重放、身份认证授权、参数格式校验、攻击防护以及业务逻辑漏洞。

由于采用了上述技术方案,与现有的技术相比,本发明通过将用户的功能需求转化为可供安全设计人员以及研发设计人员可以使用的数据流图,在经过安全威胁分析以及优化分析后将数据流图进行代码化,最终得到用户需求的产品;让设计产品的过程安全可视化、标准化、流程可控,且容易学习;通过对参与角色的划分,高级设计师担当更重要的角色,一线开发人员也可通过数据流图大大增加开发效率,安全设计师也将提升安全分析和安全设计的效率。

附图说明:

图1是本发明应用于其中的示例性系统架构图;

图2是本发明基于数据流安全威胁分析的软件产品设计方法的实施例流程图;

图3是本发明基于数据流安全威胁分析的软件产品设计装置的结构示意图;

图4是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图;

图5是本发明实施例的数据流图。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当说明的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。

终端设备101、102、103可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上的购物类应用、搜索类应用等提供支持的后台服务器。服务器可以对接收到的数据进行存储、分析等处理,并将处理结果反馈给终端设备。

如图2所示,本实施例提供了一种基于数据流安全威胁分析的软件产品设计方法,本实施例主要应用于服务器105上,包括如下步骤:

步骤201,获取用户的功能需求。

本实施例中,服务器105接收用户使用终端设备101、102、103输入的功能需求。

在本实施例一些可选的实施方式中,终端设备可以是手机、平板电脑或笔记本电脑,用户也可以在一体机或台式电脑上进行输入。

步骤202,通过业务流程将所述用户的功能需求转化成数据流图,其中,对所述业务流程的数据流进行优化分析以及安全威胁分析重构。

在本实施例中,服务器105将用户输入的功能需求通过业务流程转化成数据流图。

在本实施例一些可选的实施方式中,业务流程具体为登录业务:

步骤2021,客户端调用服务端的登陆(usm-login)api;

步骤2022,login接口对参数进行校验;

步骤2023,服务端login接口调用认接口(ldap-auth);

步骤2024,根据ldap接口的返回接口,返回响应的信息给客户端。

在本实施例一些可选的实施方式中,如图5所示,所述业务流程包括一个或多个数据流;所述数据流包括:

设置数据流开始标识:使用蓝底色的长方形;数据流的名称,一般对应服务端一个具体的接口;序号,因为我们在一个业务流程中包含多个数据流,所以要求每个数据流的开始必须加上序号,该序号表示当前数据流在整个业务流程中的执行顺序。

设置数据流api标识:使用绿底色的如下例表示;数据流对应api的名称,必须对应服务端一个具体的接口;序号,因为我们在一个业务流程中包含多个数据流,所以要求每个数据流的开始必须加上序号,该序号表示当前数据流在整个业务流程中的执行顺序;括号中的*号,表示该接口是http,否则,则是https协议。

例:login(*)。

设置数据流请求变量标识:使用绿底色的如下例表示;

例1:

x-api-token——黑色部分

username——白色部分

password——白色部分

validatecode——白色部分

例2:

x-toon-user-agent——黑色部分

telecode——紫色部分

moblie——紫色部分

uuid——紫色部分

请求变量按照变量名颜色标记不同的变量类型;黑色表示header变量;紫色表示get提交的url变量;白色表示post提交的变量。

设置数据流判断变量标识:数据流对应判断变量标识,每个数据流中至少存在一个判断变量,当有多个判断变量时,应当为每个不同的变短变量单独标识一个判断逻辑;使用红底色的如下例表示:

例:

username

ifnullor“”

判断变量又叫关键变量,它决定数据的流转方向;要写明变量的名称,例如:username;要写明判断依据,例如:username不能为空。

设置数据流中间变量标识,中间变量是程序运行过程中产生的新变量;使用黄底色的如下例表示;

ldapcontext(username+pwd+ldapurl)=>ctx

标明变量的类型:ldapcontext;

构成中间过程变量的属性信息:username,pwd、ldapurl;

中间过程变量的名字:ctx。

设置数据流响应变量标识;

使用浅红底色的如下例表示;

{“meta”:{“code”:401,“message”:“密码不能为空”},“data”:{}}

响应变量必须是json结果;

标明返回对象的属性值:code、message,data;

响应变量最终只能指向其它数据流或者结束。

数据流变量描述:变量名称;

变量级别:是否是嵌套变量,或者存在子属性(下级变量);

示例:变量值举例;

数据类型;

是否必传、是否为空、长度定义、内容格式定义;

影响数据流的范围:有哪些数据流使用了该变量。

在本实施例一些可选的实施方式中,所述业务流程具体包括:不能出现无线循环,每个判断,最终都可以走到流程结束;判断逻辑,有且仅有一个入口,只能针对判断变量,判断结果最多只能有2个不同分支;针对同一个数据流request和response必须只有一种;一个完整的业务流程中,数据流应控制在5个以内;关键变不能存在url中;存在多个判断变量影响结果完全一致,要合并表示。

在本实施例一些可选的实施方式中,

流程优化分析

1)判断变量合并

a)mobile+telecode的为空判断,业务逻辑并不关心其中哪一个为空,而流程进行两次变量的分别判断。

b)telecode+mobile的“0086”+mobile的11位数字验证,业务逻辑只关心手机号的格式是否正常,因此只进行手机号格式校验即可。

2)业务合并

a)密码登录接口和切换设备检查密码接口,都存在同样的密码校验过程。

3)响应合并

a)响应可将变量名统一,以不同的值来给出不同的响应。

4)异常变量

a)变量terminal凭空产生,可为空,引入安全隐患。

二、安全威胁分析

①保密性:

1)传输加密

描述:未进行通道加密,导致https解密后,可以查看明文信息;

解决措施:从用户到前置服务之间,使用通道加密。

2)敏感信息单独加密

描述:password统一使用md5编码传输,未进行一次一密加密。

解决措施:使用加盐的加密算法,对password进行加密。

3)url变量包含敏感信息

描述:url中存在敏感变量mobileverfiycode,为明文密码的md5。

解决措施:使用post方法传递并加密传输敏感变量。

4)弱加密/编码

描述:password统一使用md5编码,存在较大的破解风险。

解决措施:使用对称或者非对称的加密方式加密password。

②完整性

5)防篡改

描述:进行参数签名,导致telecode、mobile、uuid、isrelogin、password、mobileverfiycode、x-toon-user-agent可被篡改。

解决措施:对关键变量增加签名措施,防止报文篡改。

③防重放

6)敏感接口报文重放

描述:手机号+密码md5的登陆报文可重放,导致截获报文,即可登录成功;切换设备校验密码的报文可重放,可模拟密码校验成功。

解决措施:增加防重放策略。

④身份认证授权

7)身份认证

描述:短信码登录的时候,会生成mobile+固定字符串的超级密码去进行登陆,无论用户是否设置密码,导致可对任意用户使用默认密码进行登陆。

解决措施:手机号+短信码与手机号+密码登陆使用不同的auth接口,去掉超级密码。

⑤参数格式校验

8)类型安全定义

描述:短信验证码位数只有4位数字,被碰撞的概率很大,导致可直接登陆任意用户。

解决措施:设置短信码为6位。

9)内容安全定义

描述:mobile的验证,只正则比对是否为11位数字,不符合手机号的正确格式。

解决措施:应校验mobile格式为国内正常手机号:

^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$。

⑥攻击防护:

10)撞库攻击

描述:使用特定手机号+md5(明文密码)可以批量进行撞库攻击。

解决措施:限制特定终端以不同手机号进行密码尝试的次数。

⑦业务逻辑漏洞:

11)信息枚举与恶意锁定账号

描述:使用不同手机号查询,可验证并取出已在系统注册的手机号;通过手机号+错误密码,不断发起登陆过程,可以恶意锁定全部手机号,如果正常用户在锁定期内退出再重新登陆,将会导致业务不可用;

解决措施:根据设备指纹绑定手机号,限制每天只可尝试登陆的手机号数为5;通过报文加密、签名等措施增大报文模拟的难度;单位时间内根据ip和设备指纹的两个维度,统计查询次数,超过阀值,进行临时拦截管控。

12)短信炸弹

描述:通过更改手机号,可以批量给任意手机号发送10条短信。

解决措施:通过签名和通道加密机制,增大批量发送难度。

13)业务层dos

描述:通过批量的短信发送,耗尽正常手机号每天可接受短信的条数,导致正常用户无法使用短信登陆业务。

解决措施:限制特定终端以不同手机号进行密码尝试的次数。

14)特定业务逻辑漏洞

描述:1、更改uuid,可使得切换设备的标识变为true,造成安全隐患;2、只根据response中的changedevice值判断是否切换设备,可拦截响应欺骗客户端;3、更改toontype号,可模拟不同平台的短信消息。

解决措施:1、设备切换标志必须参与签名,防止被篡改;2、后续数据流再次验证uuid是否变更来判断是否更换设备;3、增加签名和通道加密机制,增大伪造难度。

15)业务逻辑信息泄露

描述:1、使用不同手机号,可查询对应手机号是否开启密码登录、是否开启密码问题、是否切换设备、是否设置安全邮箱、是否设置密码、密码错误次数;2、使用手机号+密码登录成功后,response中会返回明文的邮箱、md5密码、明文的生日、md5的安全问题答案。

解决措施:1、登陆不成功时,不返回任何有效信息;2、清除登陆成功后的response中的敏感信息。

步骤203,将数据流图代码化得到最终产品。

在本实施例中,服务器105将数据流图代码化得到用户需求的产品。

如图3所示,本实施例提供了一种基于威胁分析的数据流图绘制装置,包括:获取模块301,配置用于获取用户的功能需求;转化重构模块302,配置用于通过业务流程将所述用户的功能需求转化成数据流图,其中,对所述业务流程的数据流进行优化分析以及安全威胁分析重构;代码化模块303,配置用于将数据流图代码化得到最终产品。

在一些实施例中,所述转化重构模块302具体包括图中未示出的:第一调用单元,配置用于客户端调用服务端的业务api;校验单元,配置用于业务接口对参数进行校验;第二调用单元,配制用于服务端的业务接口调用认证接口;响应单元,配置用于根据认证接口的返回接口,返回响应信息发送给客户端。

如图4所示,计算机系统400包括中央处理单元(cpu)401,其可以根据存储在只读存储器(rom)402中的程序或者从存储部分408加载到随机访问存储器(ram)403中的程序而执行各种适当的动作和处理。在ram403中,还存储有系统400操作所需的各种程序和数据。cpu401、rom402以及ram403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。

以下部件连接至i/o接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分407;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。

以上结合附图详细描述了本发明的优选方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不予矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明多各种可能的组合方式不再另行说明。

此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1