APP下载

基于STRIDE和民航威胁知识库的软件威胁建模

2020-12-02高健媛彭明田李永进

中国民航大学学报 2020年5期
关键词:知识库数据流攻击者

高健媛,彭明田,李永进

(中国民航信息网络股份有限公司研发中心,北京 101318)

随着民航信息化的不断发展和航空企业对信息网络依赖的不断加强,网络信息安全风险越来越高。软件安全漏洞给攻击者提供了非授权访问和攻击系统的入口点,达到控制或破坏系统的目的。同时,业务风险如机票爬取、恶意占座等,也会影响业务正常开展,增加经营成本。目前,企业大都采用安全代码审计和渗透测试两种最为常见的发现威胁方式[1]。但这两种方式的缺点是只能在系统开发完成后才能进行审计和测试,大大增加了开发成本,且很难识别业务风险。

为提高信息系统安全性,更好地为民航旅客提供服务,针对旅客服务系统实施和推广的安全性,基于STRIDE 模型和民航威胁知识库开展软件威胁建模。该方法可避免攻击树模型对设计人员要求较高的劣势,选取了几乎能覆盖绝大部分安全问题的STRIDE模型进行建模,通过建立民航威胁知识库解决威胁建模难以实施落地和无法进行业务风险分析的问题,可有效降低威胁分析门槛,降低软件开发维护成本。

1 威胁建模

威胁建模是软件安全开发生命周期(SDL,security development lifecycle)中设计阶段的一个关键部分,安全设计人员站在攻击者的角度,通过建模方式将威胁抽象化和结构化,以图表方式确定威胁范围,识别产品架构和功能设计中潜在的安全问题和威胁并实施相应缓解措施,规避风险,确保产品的安全性。在业务安全维度,通过定位攻击目标和可利用的业务安全漏洞来提高系统安全性,然后定义防范或减轻系统业务风险的对策。

在软件的设计开发过程中,威胁建模能够帮助开发设计人员早期发现安全缺陷,了解安全需求,设计和交付更安全的产品,有助于威胁全面有效地解决,同时也有助于降低开发和后期维护的成本。

2 STRIDE 威胁模型

业界比较流行的威胁建模方法有两种:①基于攻击树模型的威胁建模;②采用STRIDE(STRIDE 的每个字母即为每种威胁的首字母)模型和方法。攻击树模型对设计攻击树人员的安全技能和攻防经验要求较高。采用STRIDE 模型对各系统进行威胁建模更具优势,其核心是在数据流元素和威胁之间建立结构化的映射关系。所谓威胁,可理解为攻击者使用某种方法利用系统安全缺陷(脆弱点)对系统进行攻击,从而对系统造成负面影响,这样一个潜在的、有可能发生的事件,就是一条安全威胁。STRIDE 模型将威胁分为6大类,如表1所示。

表1 六类威胁及说明Tab.1 Six types of threats and descriptions

数据流图具有4 个元素:外部实体、过程、数据流、数据存储。STRIDE 威胁建模方法已明确每个数据流图元素具有不同的威胁,其中,外部实体只有假冒(S)、抵赖(R)两种威胁,过程具有所有的6 种威胁,具体如表2所示。

表2 各元素对应威胁Tab.2 Corresponding threats of each element

3 威胁建模工作流程

威胁建模是一个抽象且复杂的过程,对相关人员能力要求较高,因此,很多企业经常面临落地、推广困难等问题。一般软件团队人员的安全储备并不丰富,而从事信息安全的人员对软件内部的了解也不是很全面,在开展威胁建模工作时沟通成本较高。因此,在试行阶段,安全人员和软件团队一起搜集整理了数据流图四大元素面临的STRIDE 威胁,结合民航业务风险,建立了民航威胁建模知识库。知识库有利于只具备基本安全知识的软件开发设计人员梳理威胁点,查缺补漏,降低了威胁建模推广难度,能够将威胁建模作为各软件团队日常开展设计工作中的一部分。工作流程如图1所示。

图1 威胁建模工作流程图Fig.1 Threat modeling work flow

1)识别资产 根据具体的业务特征、真实用例及上下游系统来明确业务场景;由信息安全经理填写软件信息提供单(表3和表4示例)中的软件信息,包括软件上下游产品、规模、敏感数据的传输和存储方式等。

表3 软件上下游模块信息Tab.3 Software upstream and downstream information

2)绘制数据流图 各软件信息安全经理根据软件设计说明书绘制数据流图,帮助理解业务场景和系统,清晰展示该软件中STRIDE 模型的四大元素,识别系统边界和攻击面。

表4 敏感数据信息Tab.4 Sensitive data information

3)威胁建模分析 各软件信息安全经理采用STRIDE 模型,基于民航威胁知识库和专家经验对数据流图中的各元素进行威胁分析,结合威胁的影响范围和危害程度进行评级,对识别出的威胁,选择其消减措施,最终将分析结果编制成威胁分析报告。报告内容包括:软件名称/版本、威胁分类、威胁名称、威胁分析描述、缓解措施等。

4)发起评审 各软件信息安全经理将经由软件负责人确认的威胁分析报告提交架构管理小组评审。

5)消减风险 各软件团队根据威胁建模结果改进系统设计,实施风险消减措施。

6)测试验证 测试团队验证风险消减结果,测试是否已经对相关威胁进行有效控制,达到威胁建模结果收敛、系统安全性有效提高的目的。

4 数据流图分析

威胁建模最关键的步骤就是对数据流图进行建模分析,下面仅以某民航企业的前端系统与内部核心系统为例进行威胁分析。

4.1 前端系统威胁分析

一个典型的前端系统数据流图如图2所示。

图2 前端系统数据流图Fig.2 Front end system data flow

外部实体即为该网站的用户,通过HTTP 协议访问站点,可能面临假冒与抵赖的威胁,这里仅列举出民航威胁建模知识库中较为典型的几种情况:①攻击者可能暴力破解网站用户口令、对网站进行撞库攻击、口令猜测等;②攻击者可通过修改Cookie 参数或利用“万能密码”等方式进行登录绕过;③同一账户可在多地同时登录使用;④未授权访问管理页面;⑤日志信息量不足或被攻击者删除等。

过程即为网站提供相应服务的过程,对应图2中间的“Website”。过程面临所有的6 种威胁,如:①系统存在SQL 注入、XSS、CSRF、SSRF、任意文件上传、下载等Web 漏洞;②系统使用的中间件存在相关漏洞;③系统的重要文件如配置文件未使用ACL 保护;④系统使用的密钥可能泄露;⑤系统未使用安全的随机函数;⑥系统响应或存储过多信息;⑦过度消耗服务器资源;⑧网站备份文件被下载等。

数据流为F(用户-Website)、F(Website-A),面临篡改、信息泄露、拒绝服务的威胁。篡改主要是由于未使用安全的通讯协议,可能被攻击者使用中间人攻击的方式,拦截到网络数据包,进行针对性的篡改。信息泄露是敏感数据传输时未进行加密或未使用安全通讯协议,攻击者可从数据包中获取敏感信息。拒绝服务可由数据流激增引起,如攻击者发起DDoS 攻击,从而造成拒绝服务。

数据存储即为图2中的数据库存储。攻击者可利用已披露的已知漏洞对数据库进行攻击,从而导致篡改、信息泄露的威胁。未使用低权限用户连接数据库,同样可带来数据被篡改的风险。数据库未开启记录日志策略或没有进行其他数据库审计方式,可能存在抵赖威胁。敏感数据未加密存储、数据库未启用ACL,会带来信息泄露的威胁。数据库锁缺陷、不支持动态扩容的机制,会造成拒绝服务的风险。

以上是数据流图各元素可能面临的风险示例,在建模分析中,结合各软件的实际设计和实现情况分析是否存在此风险,并结合风险发生的可能性和危害程度对风险进行评级,软件团队优先处理风险性较高、影响范围和程度较大的威胁。

4.2 内部核心系统威胁分析

一个精简的内部核心系统数据流图,如图3所示。

图3 内部核心系统数据流图示例Fig.3 Data flow example of internal core system

企业内部子系统很少与其他系统直接交互,都是通过总线(如SIH)进行交互。由于SIH 存在身份认证(IP 认证)、流量控制等功能,因此相对外部实体更为安全。

如果存在内部系统与其他系统通过FTP 协议交互,实际情况是:这两个系统不直接交互,一个系统通过FTP 服务器上传(下载)数据,另一系统在FTP 服务器下载(上传)数据。由于系统本身不开放FTP 服务,自然也减小了风险点。

内部系统相对于前端系统威胁要少,最主要的威胁在于信息泄露。如系统数据库与日志中是否存在明文的旅客信息,一些密码信息如数据库、FTP 账户密码是否明文存储在配置文件中。

在外部实体方面,身份认证大多通过SIH 来完成,如若增强安全性,内部系统可引入身份认证功能,如IP认证。在过程方面,相对于前端的过程而言,少了常见的Web 漏洞(如XSS 漏洞,但SQL 注入,XXE的风险依然存在)。在数据流方面,是否使用安全的通讯协议如HTTPS、SFTP、SSL SOCKET 等,系统是否引入限流策略(如传输敏感数据),是否先加密后传输。在数据存储方面,威胁如上述的信息泄露,前端系统里的数据存储存在的威胁也同样存在。

5 民航威胁知识库

微软的STRIDE 模型和方法主要用于操作系统的开发,并不具有通用性,不适用于业务系统的威胁分析。因此,采用STRIDE 模型对软件进行威胁建模分析的过程中,结合民航信息系统的功能与业务风险,对于可能存在的威胁,建立了民航威胁知识库,降低了威胁建模实施的难度,大大提高可操作性。通过对威胁知识库的不断积累,使威胁建模技术和流程更科学,不再完全依赖于专家头脑风暴。在软件开发生命周期的设计阶段,开发人员即可运用知识库进行拉网式安全风险排查。此外,知识库中还针对不同风险提出了有效的缓解措施,不必要求设计人员一定具备安全专业知识,改进的威胁模型如图4所示。

知识库是基于STRIDE 模型关于外部实体、过程、数据流、数据存储4 个元素的可能风险点集合,作为软件威胁建模的风险参考列表。其中,包括民航业务安全风险表和按软件类型(前端类、总线类、框架类、接口类和后台服务类)区分的安全风险表。每类风险表中有4 部分,分别对应4 个元素,每部分有6 类内容:威胁分类(如假冒或抵赖)、安全控制措施(如身份认证、输入校验、加密技术等)、威胁名称(如暴力破解、SQL 注入等)、威胁场景分析、缓解建议措施、研发阶段(设计阶段、编码阶段、发布阶段、非研发阶段)。

图4 基于民航威胁知识库的威胁模型Fig.4 Threat model with civil aviation threat knowledge base

建立的民航威胁知识库共积累了几百种安全威胁,较全面地覆盖了假冒、篡改、抵赖、信息泄露、拒绝服务、权限提升等6 类威胁。由于知识库中威胁较多,以下针对每类威胁给出具有代表性的威胁场景进行分析。

1)假冒 如系统未采取多因子认证方式,或系统缺乏账户锁定策略,可能面临着暴力破解风险,攻击者基于口令字典,通过Hydra 等暴力破解工具,自动化爆破系统的弱口令信息;基于常见的用户设置口令习惯,通过手动输入常见的弱口令信息,尝试访问系统,若系统存在弱口令,可能被攻击者获取并接入系统,从而造成进一步的风险。

2)篡改 若系统未使用安全通信协议,或在通信过程中未对关键身份信息进行完整性校验,攻击者可能在通信过程中对会话进行篡改,或通过中间人攻击的方式对会话内容进行篡改。

3)抵赖 若系统日志信息量不足,工作人员无法通过日志对用户行为进行有效审计,造成抵赖的风险。

4)信息泄露 如AMQ、FTP、数据库等账号密码明文存储于在配置文件中,可能存在泄露风险,攻击者若获取到相应的配置文件,则会获取到明文的账号及密码,攻击者很有可能利用账号及密码获取到内网的更多敏感信息,实施进一步的攻击;系统数据库中,若存在着明文存储的敏感信息(如旅客身份证号、手机号、银行卡等),若攻击者得到了数据库访问权限或利用SQL 注入等方式获取到数据库内容,即可获取明文的敏感信息,从而造成进一步威胁。

5)拒绝服务 若系统不支持动态扩容机制,临时文件、日志文件、业务数据等内容有可能占满硬盘的空间,可导致应用运行异常。

6)权限提升 若系统业务逻辑存在缺陷,如未对每个页面或请求作权限校验,或URL 中判断身份的字符串被猜解,可能存在平行越权、垂直越权、任意文件上传等漏洞,攻击者可利用系统自身业务逻辑漏洞进行提权,提权成功可对系统造成更大危害;若业务系统运行的操作系统、中间件等环节存在可提权的安全漏洞,或应用软件存在Bug,攻击者可以利用这些漏洞及Bug 进行提权,若攻击成功可造成进一步的风险。

与威胁相对应的,自然有相应的安全控制措施。根据威胁的类型,从知识库中总结出一些通用的缓解措施如下。

1)假冒 使用强身份验证,避免系统存在弱口令,限制登陆错误次数,对于重要的电子商务网站,应使用双因素认证,如U 盾,短信口令等认证方式;在线路上以加密的形式传递凭据;用安全套接字层(SSL)保护身份验证Cookie。

2)篡改 验证、过滤用户的输入和输出,防止SQL注入、XSS 攻击等;确保限制会话/Cookie 的有效期;执行关键功能时,重新进行身份验证;规范记录日志文件;规范数据存储(如数据库)输入;在通信链路之间使用防篡改协议;重要文件、数据使用ACL 保护。

3)抵赖 规范日志文件记录的内容,记录重要的应用程序操作,审核登陆和注销事件,访问文件系统及失败的对象访问尝试;保证日志机密性完整性;备份日志文件,并定期分析可疑活动的记录;重要业务使用数字签名。

4)信息泄露 不以明文存储机密信息,对敏感数据进行加密存储,并使用ACL 保护;基于身份和角色的授权,确保只具有适当授权级别的用户允许访问敏感数据;使用内置的加密规程,并定期使密钥过期;随机数的生成使用强随机函数;使用具有保密性的安全通讯协议(如SSL、HTTPS);不暴露用户名,关闭错误信息的显示,设置统一的出错页面,返回给客户端一般的错误信息。

5)拒绝服务 使用资源与带宽调节技术,系统并发数限制;优化程序,避免死锁;输入有效性校验;在整个应用程序代码库中使用异常处理。

6)特权提升 遵循最低特权原则,并使用最低特权服务账户运行进程及访问资源。

威胁知识库需要不断更新以达到辅助威胁建模尽可能多地识别出威胁的目的。

6 结语

基于STRIDE 威胁模型和民航威胁知识库对软件进行威胁建模的过程和方法,列举了前端及核心系统两类代表性软件产品开展威胁分析的实例,并对民航威胁知识库进行了举例介绍。采用此威胁模型开展威胁建模的过程中,较为系统地对可能存在的风险进行了识别、标定,各软件团队针对可能存在的风险采取了相应的缓解措施,有效降低了系统面临假冒、篡改、抵赖、信息泄露、拒绝服务、权限提升等方面的安全问题。同时,探索出了一套便于落地推广实施的工作流程,对民航企事业单位的业务系统具备一定的参考价值。

猜你喜欢

知识库数据流攻击者
基于贝叶斯博弈的防御资源调配模型研究
汉语近义词辨析知识库构建研究
汽车维修数据流基础(上)
汽车维修数据流基础(下)
基于XML的数据流转换在民航离港系统中应用
正面迎接批判
正面迎接批判
AADL端对端数据流一致性验证方法
机构知识库建设的动力研究
我国联合虚拟参考咨询系统知识库现状研究*
——基于与QuestionPoint的对比