百分之七十的网络攻击以应用层为目标。虽然安全的 RTOS 提供了对嵌入式设备的安全至关重要的功能,但这只是基础,而不是完整的解决方案。需要问的一些问题是:为什么物联网和嵌入式设备,即使是那些具有安全 RTOS 的设备,仍然容易受到攻击?哪些漏洞是可能的,哪些漏洞已报告?保护这些设备缺少什么?设计工程师如何确保他们的设备安全?我很高兴你问。
高级安全功能是许多 RTOS 供应商的主要卖点。现代 RTOS 提供多种功能,例如多个独立的安全层 (MILS) 架构、内置资源配置,以及对 IEC 62304、IEC 61508、IEC 50128、DO-178B/C、EAL 和 ARINC 653 等安全认证的支持认证。此外,许多还提供安全服务,例如身份验证、访问控制、数据加密和安全协议。毫无疑问,嵌入式设计工程师现在在 RTOS 中拥有比十年前更丰富的安全工具和更强大的安全基础。
尽管这一切令人印象深刻,但它仍然只是一个基础。运行不安全操作系统并通过加密数据通道进行通信的设备显然是不安全的。反之则不成立。保护操作系统和添加安全协议只是构建安全设备的第一步。
即使有了这些部件,仍然需要考虑重要的安全挑战。在 RTOS 级别实施安全性后,对协议或应用程序的成功攻击可能无法使攻击者完全控制系统,但这并不意味着他无法造成相当大的损害。
有效并通过 RTOS 安全的数据或通信仍可能对应用层构成安全威胁。示例是针对 Web 服务或针对监控和数据采集 (SCADA) 系统的攻击。最近的一次 SCADA 攻击涉及反复打开和关闭水泵,直到水泵电机烧坏。尽管使用了安全的操作系统,但这种攻击集中在应用层并导致设备故障。操作系统的安全性从未被破坏,但设备却遭到了破坏。多达 70% 的网络攻击针对应用层,很明显,安全必须扩展到应用层。
应用层攻击
2013 年,安全研究员 Craig Heffner 在许多 D-Link 路由器的固件中发现了一个后门。这些路由器中的 HTTP 服务器包含一个绕过标准身份验证过程的后门。Web 服务器检查浏览器用户代理,如果它与“xmlset_roodkcableoj28840ybtide”匹配,则跳过身份验证检查。向后读的字符串“由 04882 joel backdoor 编辑”表明这是一个故意植入的后门。
后门提供了对设备配置功能的访问。在同一个 D-Link 路由器中使用的 Web 服务器已经包含许多漏洞,其中一些可以在某些情况下用于允许远程代码执行。
在澳大利亚,Vitek Boden 从 2000 年 1 月开始对 Maroochy Water Services 的 SCADA 系统发动了为期三个月的战争,导致数百万加仑的污水流入阳光海岸郊区的水道、酒店场地和运河。这是一个有趣的案例研究,因为肇事者不仅导致泵在应有的时候停止运行,而且他还能够阻止报告警报,使问题进一步复杂化。这个例子也显示了内部攻击的危险,因为 Boden 是 Maroochy Water Services 的前承包商。
其他广泛报道的针对应用层服务的攻击包括对支持网络的 IP 摄像头和保姆摄像头的攻击,这些攻击的安全性出了名的薄弱。快速的 Google 搜索将显示针对基于网络的安全摄像头、保姆摄像头和 IP 摄像头的多份报告。这些漏洞允许未经授权的用户查看来自摄像机的视频流,从而允许他们监视摄像机设置为观看的任何内容。更糟糕的是,在某些情况下,他们甚至可以指示“摄像头开启”灯不激活,导致受害者不知道他们正在被监视。
应用层安全
所有这些攻击的共同点是它们没有针对底层操作系统中的漏洞,而是依赖于应用层的漏洞。它们的另一个共同点是它们都利用了系统的标准接口。在每种情况下,应用层都允许未经授权的方执行合法命令。
为了保护嵌入式设备的应用层免受网络攻击,需要一组功能来确保应用程序只处理来自授权用户的命令,确保所有处理的命令都是有效的(例如,包含合法数据)并且所有命令都是适当的(例如,改变化学加工厂的成分比例或加工温度)。为设备提供更高级别安全性的其他功能包括检测和报告可疑命令或活动的能力、允许在确实发生问题时进行审计的命令历史记录以及确保设备数据受到保护的数据保护。
工业控制系统的应用安全
工业控制系统在许多方面都是现代嵌入式和物联网设备的典型特征。它们通常使用安全的 RTOS 构建,提供执行关键功能的客户应用程序,并且可以通过以太网或 Wi-Fi 网络接收的消息进行控制。
出于我们的目的,请考虑在化学制造厂的生产过程中使用的工业控制系统的示例。这些系统经常使用基于以太网的控制协议(例如 EtherNet/IP 或 Modbus TCP)进行配置、控制和报告。控制协议规定了化学处理中涉及的各种参数的操作。这些可以包括执行处理的温度、比例和成分、各个处理阶段的时间、流速等。除了控制协议(Modbus TCP、EtherNet/IP 等),设备可能包括一个用于查看配置和处理信息的 Web 界面,以及一个用于下载新固件文件的 FTP 界面。
虽然大多数针对应用程序的网络攻击都试图利用应用程序接口中的弱点,但它们也可能攻击应用程序实现,或设备支持的接口/应用程序之间的交互(表 1)。
表 1:网络攻击的类型以及它们如何利用系统中的弱点。
应用程序协议过滤提供对应用程序接口和实现攻击的保护。如果设备包含嵌入式防火墙,则可以扩展防火墙以执行协议过滤。否则,可以实现应用程序保护 API 来为设备执行协议过滤。特定于应用程序的协议过滤应提供:
协议验证——确保所有消息都符合协议规范并验证所有数据是否有效且在范围内。
策略实施——协议过滤器应支持用户定义的策略,以将数据范围值限制在设备或安装特定范围内。例如,协议可能允许 0 到 100 的值范围,但设备的操作可能只允许 40 到 60 范围内的值。协议过滤器应该支持这个更受约束的值集。
访问控制——ModbusTCP 等工业协议不提供任何访问控制机制。因此,设备接收到的任何合法 Modbus 命令都会被处理。访问控制策略可以在应用过滤器中实现,以控制允许哪些设备向设备发送命令。例如,如果 Modbus 命令不是来自白名单上的机器,则可以配置 IP 地址白名单并阻止它们。可以为更细粒度的控制提供额外的控制。
语义过滤——工业控制设备的一个重大挑战是编码规则以回答“这个命令是否有意义”的问题。虽然协议强制、策略强制和访问控制强制确保接收到的命令是合法的并且来自受信任的设备或机器,但它们仍然不能解决授权内部人员意外或恶意更改的问题。语义过滤试图防止诸如命令的快速循环或以操作上不正确的方式更改值之类的事情,例如在延长的时间段内设置超过流出率的流入率。
命令审计日志——记录应用程序执行的所有命令,以备以后分析,以防出现问题。
入侵检测 API——允许设备工程师记录和报告每次访问、身份验证尝试或任何其他入侵事件的 API。例如,如果 Web 界面包含使用用户名/密码的身份验证,则应使用此 API 记录每次登录尝试。然后,入侵检测 API 会将此事件报告给管理系统,管理系统将分析接收到的数据并检测以设备本身无法实现的方式探测单个设备或多个设备的尝试。该设备可能没有智能或信息来区分忘记密码的系统管理员的重复访问尝试和黑客的系统探测。
事件报告——提供一种在检测到异常行为时发送警报的机制。
数据防篡改检测——这是使用静态配置数据的安全散列来实现的,这让系统可以检测到何时进行了未经授权的更改。数据防篡改可以检测跨应用程序攻击,例如未经授权的用户通过 FTP 或 Web 界面更改配置数据。
应用层安全框架
应用层安全框架,例如 Icon Labs Floodgate Defender,为嵌入式设备中的应用安全提供框架(图 2)。该框架包括:
闸门卫士
应用协议过滤引擎和嵌入式 IDS/IPS
水闸安全
用于防篡改保护的安全文件哈希
运行验证安全哈希的审计任务
水闸意识
用于事件报告和命令审计日志记录的用户 API
闸门代理
基于云的管理系统的接口支持
事件和审计日志
安全策略的管理和执行
系统级防火墙过滤和入侵检测功能
图 2:嵌入式应用程序的安全框架应保护设备免受无效和未经授权的命令、保护数据以及检测和报告异常流量。
审核编辑:郭婷
评论
查看更多