1.引言

功能安全风险分析是对系统的系统性失效和随机性失效进行风险评估,对于网络安全风险,需要通过威胁分析识别系统的威胁场景,用于形成有对应威胁的控制措施和有效的分层防御,威胁分析是信息安全风险分析的重要组成部分。

2.威胁分析的步骤

威胁分析一般分为四个步骤:

  1. 确定分析范围,收集系统信息和划定系统边界;

  2. 架构分解,识别系统组件,确定数据流动,划分出信任边界;

  3. 威胁识别,识别威胁向量和威胁事件;

  4. 建立攻击模型,绘制攻击序列图,描述战术、技术和程序,并生成威胁场景。

2.1 步骤1:范围确定

首先收集系统架构相关的各种信息,技术规格,架构组成,网络拓扑,与系统设计者、管理维护者进行交流以获取信息;

根据已有的网络架构图,确定威胁分析的边界,分界线可以是设定的非军事区DMZ,系统安全组件如防火墙、入侵检测系统IDS、入侵防护系统IPS,系统功能相关的组件如数据库、服务器、主机等。

2.2 步骤2:架构分解

将一个系统分解为不同组件,通过了解组件之间的数据流,用户可以构建一个数据流图。用户应确定容易受到攻击的系统组件,即潜在攻击者可能感兴趣的组件,对系统的业务任务至关重要的数据或功能;以及攻击者特别感兴趣的数据或功能。一旦确定了系统的组成,就需要确定组件之间的数据交互过程。

2.3 步骤3:威胁识别

威胁识别有不同的办法,如STRIDE模型、攻击树、Kill Chain等。STRIDE在软件安全分析领域应用较多,是微软开发的用于威胁识别的工具,它把威胁分成如下6个维度来考察:

1.Snoofing(欺骗)

2.Tampering(篡改)

3.Repudiation(否认)

4.Information disclosure(信息披露)

5.Denial of Service(拒绝服务)

6.Elevation of Privilege(权限提升)

微软将STRIDE应用于软件的威胁识别,这6个维度也可以扩展到系统层面。第3节将介绍STRIDE模型。

2.4 步骤4:攻击模型

在确定与系统相关的威胁事件后,将这些情况连接到可能的攻击序列中。攻击模型描述了攻击者的入侵方式,以便用户能够确定保护系统所需的缓解控制措施,并确定其实施的优先次序。这些方法绘制攻击者利用组织资源实现其恶意意图的可能的攻击序列,同时,该模型允许用户了解一个威胁成功所需的一系列条件。

3.STRIDE模型

微软的STRIDE模型把安全威胁可以分为6类,分别用Snoofing、Tampering、Repudiation、Information disclosure、Denial of Service、Elevation of Privilege的首字母表示,合起来简称"STRIDE"。

3.1 Snoofing(欺骗)指违背用户的认证信息。攻击者获得了用户的个人信息或使他能够重放认证过程的东西。Snoofing威胁能够冒充有效的系统用户或资源以访问系统从而危及系统安全。

示例:

  • 恶意冒充者(中间人)伪造IP(互联网供应商)数据包,劫持与服务器的连接。这里的漏洞是,通信协议没有考虑保密性和完整性设计;

  • 使用密码而不对其进行加密的认证协议会向窃听者透露凭证信息,然后窃听者可以利用这些信息来冒充用户。这里的漏洞是,凭证信息没有被正确加密;

  • “特洛伊木马”攻击是典型的欺骗。例如,在浏览器上,一个网页可能设法构建一个完全视觉化的系统登录副本,并欺骗用户输入他们的姓名和密码,而不怀疑他们实际上是在向一个网站提供信息;

  • 伪造电子邮件。这种情况下的漏洞是缺乏电子邮件信息的保密性和完整性。

3.2 Tampering(篡改)指在发现或未发现的情况下修改系统或用户数据。对存储或传输中的信息进行未经授权的更改,对硬盘进行格式化,恶意入侵者在通信中引入一个无法检测的网络数据包,以及对敏感文件进行无法检测的更改,都是篡改威胁。

示例:

  • 数据包注入攻击,即线路上的数据被修改。这种威胁的漏洞是在链路上发送的数据缺乏完整性;

  • 在没有授权检查的情况下修改文件数据。这种威胁的漏洞是缺少访问检查、缓冲区溢出、没有完整性检查等;

  • 由于执行错误的代码导致的数据损坏。漏洞包括未处理的内存分配失败,未初始化的内存,使用释放的内存资源,以及除以零等错误计算;

  • 数据被木马和病毒破坏或修改。漏洞是指软件对木马病毒的易感性。

3.3 Repudiation(否认)指一个不受信任的用户在进行非法操作时没有被追踪的能力。可抵赖性威胁与用户(恶意的或其他的)有关,他们可以否认错误的行为,而没有任何方法可以证明。

示例:

  • 未被发现的攻击者闯入用户账户的尝试。缺少失败的登录审计的漏洞。

  • 用户无意中或恶意地删除了敏感文件。缺少对对象访问的成功审计的漏洞。

  • 恶意用户有能力拒绝发送消息。在接受信息之前缺乏信息签名和签名验证的漏洞。

3.4 Information disclosure(信息披露)指破坏用户的私人或关键业务信息。信息泄露威胁使信息暴露在不应该看到它的人面前。用户能够阅读他没有被授予访问权的文件,以及入侵者能够在两台计算机之间的传输过程中阅读数据,都是信息泄露威胁。注意,与欺骗威胁不同,在这里,攻击者直接获得信息,而不是通过欺骗合法用户来获得。

示例:

  • 缓冲区溢出攻击导致的数据泄漏。复杂的攻击,在有漏洞的系统调用(对操作系统或特权服务器的调用)上放置手工制作的调用堆栈,可导致特权代码返回信息,如内核内存转储,返回给未授权用户。这里的漏洞是系统服务中的缓冲区溢出。

  • 由于中间人攻击导致的数据窥探,以及简单的攻击,即未加密的数据包被嗅探。还有复杂的攻击,即有缺陷的认证协议使窃听者能够计算或破解会话密钥,从而使窃听者能够解密所有加密和签名的数据。这些漏洞都是网络协议的安全缺陷。

  • 未经授权获取数据。漏掉冒充客户端的服务器或不进行访问检查就返回数据的服务器(即使他们进行了冒充)就是例子。漏洞包括漏掉的冒充(即客户端获得对服务器所能访问的任何东西的访问权)或漏掉的访问检查。

3.5 Denial of Service(拒绝服务)指使系统暂时不可用或无法使用,例如那些可以强制重启或重新启动用户机器的攻击。当攻击者能够暂时使系统资源(处理时间、存储等)不可用或无法使用时,就存在拒绝服务的威胁。

示例:

  • SYN攻击和数据包炸弹,利用各种网络协议漏洞,导致服务器崩溃;

  • 复杂的缓冲区溢出问题,如没有长度的参数,可以导致服务器追逐一个不存在的内存位置而崩溃。同样地,GetAdmin式的手工堆栈可以导致特权指令关闭系统;

  • 常见的编码错误,如未处理的内存分配失败(引用无效的指针)、未初始化的内存(使用的数据不好)、使用释放的内存和资源(引用无效的内存),以及计算错误(除以0),都会引起异常,使软件崩溃;

  • 薄弱的软件设计(设计中固有的或由于错误的配置),如一个进程占用了所有的CPU时间。

3.6 Elevation of Privilege(权限提升)指一个没有特权的用户获得了特权访问权,从而有足够的权限来损害和破坏整个系统。这类威胁更危险的方面是以不被发现的方式破坏系统,从而使用户能够在系统管理员不知情的情况下利用特权。特权提升的威胁包括那些允许攻击者拥有超过应有权限的情况,完全破坏了整个系统的安全,并造成极端的系统破坏。

示例:

  • 缓冲区超限,如GetAdmin攻击中的手工堆栈,导致用户代码以高权限执行,从而危及整个操作系统的可信计算基础;

  • 在未经授权用户同意的情况下运行可执行文件的能力,可以使犯罪者进行特权操作,例如使自己成为特权用户;

  • 安全子系统本身的访问检查缺失或不当,会导致权限提升。例如,如果管理员的组成员资格在没有访问检查的情况下被更新,就会使一个未经授权的用户成为系统管理员。

4.轨道交通领域威胁示例

在轨道交通通信和信号系统的信息安全威胁分析时,STRIDE模型可以应用于系统级分析,确定系统的威胁场景,列举一些常见的威胁示例如下:

Snoofing欺骗

中间人攻击,拦截ATS与列车之间发送的信息,使用第三方工具,两个系统之间监听、拦截、改变、注入或替换信息,向控制中心报告虚假的列车位置,列车报警信息导致调度员做出错误的判断;

钓鱼邮件,工作人员打开来自网络钓鱼电子邮件的文档,并在暗中安装了后门程序,允许攻击者访问办公系统。

Tampering(篡改)

修改ATS系统的数据、配置文件,导致服务降级或中止,安装应用程序用于破坏或占用系统的存储空间,导致影响安全功能;

利用缓冲区溢出攻击导致ATS服务器程序持续崩溃、重启。

Repudiation(否认)

内部人员删除了系统日志导致事故场景无法重现,破坏了有不利行为影响的证据。

Information disclosure(信息披露)

通过维护工具(端口扫描、网络抓包等工具)或使用附加硬件(窃听、监视传输信号)侦听通信信道或收集系统的信息。

Denial of Service(拒绝服务)

使用第三方工具,向列车控制网发送大量的无用流量淹没系统而使其正常服务瘫痪,通过假数据使网络超载和堵塞,通信渠道可能会影响列车控制的正常的通信传输导致停车;

错误配置导致日志文件不能正确覆盖导致迅速填满磁盘空间,占用CPU资源导致服务中断;

同频无线干扰导致车地无线传输受到干扰,列车控制功能中断,功能降级。

Elevation of Privilege(权限提升)

由于存在漏洞,普通用户逃脱受限shell并获得主机的root权限,允许他执行特权命令。

5.结语

近年来,勒索攻击和信息泄露是关键基础设备信息安全的最大威胁,但由于轨道交通互联互通、数据共享的需求以及IT网络和OT网络互通的发展,以上六个方面的系统安全威胁都客观存在。从系统软件开发角度,很多威胁是利用了软件设计时未考虑或欠考虑的缺陷,这些缺陷隐藏在系统中,也会成为攻击者利用的潜在漏洞。因此,在新系统研发时,从顶层设计就进行安全威胁分析和安全需求设计,降低系统安全风险和后期补充对抗措施的成本

感言:

这篇文章花的时间比较长,轨道交通网络安全可查的资料比较少,在轨道交通领域,信息安全领域一般由信息安全部门负责,是属于IT,而生产设施属于OT,两者从专业领域来看存在一定的鸿沟。如何从系统层面入手,进行信息安全的顶层设计,应该投入多大的成本来做这件事,也是笔者一直思考的。在这篇文章刚完成时,看到一篇来自新华网的新闻报道

伊朗交通部门连续遭到网络攻击”,下面是链接:

http://www.xinhuanet.com/world/2021-07/12/c_1211236201.htm

其中网络攻击有勒索病毒和网络欺骗手段破坏列车追踪显示系统,看来国际局势并不太平,提高轨道交通基础设施的网络安全防护能力势在必行。

参考资料:

  1. "The STRIDE Threat model". Microsoft

  2. Kohnfelder, Loren; Garg, Parerit. The threat to our products. Microsoft Interface.

声明:本文来自薄说安全,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。