VxWorks的漏洞分析与解决方案

本文参考于 ICTCS 2014 中的论文-Vulnerabilities Analysis and Solution of VxWorks,侵删

摘要

文章简要介绍了VxWorks,分析了操作系统安全的重要性,讨论了 VxWorks 当前暴露的漏洞,并且描述了这些漏洞的风险、攻击路径和受其影响的系统,并在此基础上给出了解决方案。

关键字—— VxWorks、漏洞、解决方案

一 背景

A 关于 VxWorks 的总结

随着计算机、Internet 和 EPC 系统网络的快速发展,计算机设备越来越普及,用户可以随时访问和控制信息。嵌入式系统是一种以计算机技术为基础、以应用为中心的特殊计算机系统。它具有灵活的软硬件接口,对功能、可靠性、成本、尺寸和功耗等方面的要求也比较高。在嵌入式系统的应用中,计算机与其他设备相结合,实现对其他设备状态的实时监控操作,这样可以大大的提高生产效率。与传统的计算机系统相比,嵌入式系统资源相对有限,任务相对简单。此外,还存在一定的时间限制和准确性要求,从而保证大多数嵌入式系统中的应用程序能够在规定的时间内正确实现。在这种情况下,嵌入式系统通常被称为嵌入式实时操作系统(RTOS)。
VxWorks是一款嵌入式操作系统,具有良好的实时性、灵活的开发界面和人性化的开发环境,广泛应用于通信、军事、航空、航天等技术要求高、实时性要求高的领域等等。Vxworks 采用抢占式优先级调度和循环调度的多任务机制,提供可靠的实时性能和相对灵活的用户开发能力。在硬实时嵌入式应用的高端领域,美国风河的VxWorks占据绝对主导地位。VxWorks 用于美国的 F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹,甚至用于 1997 年 4 月登陆火星表面的探测器。

VxWorks 的体系结构
在这里插入图片描述
VxWorks是一个强大而复杂的操作系统,内核包括进程管理、设备管理、文件管理、网络协议、应用程序等几部分。VxWorks 占用极少的存储空间和具有高度灵活的接口,可以保证系统更高的效率。VxWorks 实时操作系统由将近500个独立、简短、精炼的目标模块组成,用户可以根据需要来选择合适的模块对系统进行调整配置。1984年风河推出了它的第一个版本——VxWorks 1.0.1,1999年推出了新版本的VxWorks 5.4。从 1995 年开始,风河推出了实时操作系统开发环境——Tornado。2009 年,风河推出了显着增强的 VxWorks6.7,使设备制造商能够充分利用最新的多核处理器来解决其业务中的关键问题。

B VxWorks 系统安全

VxWorks 有一个标准的开发套件,叫做 workbench,是一个 JAVA Eclipse 平台。此IDE是用来进行代码编译、分析、编辑和调试的开发套件。首先,VxWorks 可以优化为作为一个封闭系统运行,在内核和用户模式下运行的进程之间具有保护,并具有有效的错误管理。其次,VxWorks 操作系统可以优化为作为网络平台运行,具有与网络操作系统类似的功能,例如防火墙和安全协议。然后,VxWorks 可以实现为安全关键系统或者硬实时系统以满足最高级别的安全和安保要求。
VxWorks (核心最小可以到8KB)具有良好的可移植性,可以在没有MMU(内存管理单元)的系统中使用。在 VxWorks 中,保护域的概念被新引入。保护域的功能是将软件组件与其他组件分开。保护域继承单独的 MMU 和私有地址空间。MMU 的功能是检查保护域中的进程的地址。对于设计工程师来说,VxWorks 是非常灵活的。他们可以在运行时定义执行边界,以指定软件组件中不同对象的使用。这种状态对于开发人员来说足够简单,他们可以根据需要在内核域中创建QEP(对象入口点)。通常来说,从安全的角度来说,这种设计其实并不可靠。
由于是支持不同应用程序的基础软件,操作系统的安全性非常关键。在操作系统中,正在运行的应用程序可能会受到漏洞的严重影响。如果操作系统级别的漏洞危害系统,例如在内核级别,系统可以完全被攻击者接管,可以被安装恶意程序或后门。然后,OS 就可以被用于不好的目的,例如从计算机中窃取敏感数据或者执行远程命令。攻击者还可以利用系统访问权限,导致应用程序恶意执行。嵌入式系统发展的一个趋势是嵌入式设备和网络的结合,一旦嵌入式系统安全出现问题,其后果不仅会严重干扰人们的日常生活,侵犯公民隐私,还会造成巨大的经济损失,甚至威胁国家安全。
与其他 RTOS 一样,VxWorks 系统也有很多系统漏洞,会导致随即重启、死机、或者改变随机城市等。因此对VxWorks 系统安全漏洞的分析可以更好的了解操作系统的健壮性(鲁棒性)。它还可以帮助我们了解持久漏洞的严重影响。

二 VxWorks 系统漏洞分析及解决方案

VxWorks 系统漏可以被分为四类,分别是输入验证漏洞、权限和访问控制漏洞、信任管理漏洞、加密漏洞。

A 输入验证漏洞

输入验证的功能是测试由其他东西提供的任何输入的正确性。应用程序总是需要用户的某些输入来实现某些目的。用户输入的来源是多种多样的,终端用户、应用程序、恶意用户、或任何数量的其他来源。当攻击者准备攻击您的软件时,他不会宣布他是一个攻击者。这就意味着我们应该检查和验证所有输入,因为您无法确切知道输入的来源。所有的应用程序和软件都应该检查其他人输入的输入,以确保它是否可信,但是这并不是唯一一次应该检查输入的时间。尽管终端用户不太可能向 WEB 服务器发送输入特定的 SOAP 请求,但恶意用户可能。也许您正在从数据库中获取输入。这些输入数据来自哪里?是你的应用程序,还是另一个应用程序,还是你永远不会想到的另一个应用程序存储数据的共享数据库表?
我们应该测试所有输入以防止未来潜在的在软件应用程序中的安全漏洞和漏洞。不正确的输入验证导致的问题可能会导致各种问题和漏洞。下面列出了一些仅通过验证输入即可解决的漏洞。

1)SSH服务器拒绝服务漏洞1

说明:在 Wind River VxWorks 6.5 到 6.9 中,IPSSH(SSH 服务器)存在输入验证漏洞。IPSSH(SSH服务)是可靠的,特别是为远程登录会话和其他网络服务提供安全协议。SSH协议可以有效防止远程管理过程中的信息泄露问题。该漏洞可能导致SSH服务器拒绝服务。
漏洞的主要危害影响四个方面:

  • 远程攻击者可以利用该漏洞通过精心设计的身份验证请求导致拒绝服务(守护程序中断)。
  • 经过身份验证的远程用户可以利用该漏洞通过精心制作的数据包导致拒绝服务(守护程序中断)。
  • 经过身份验证的远程用户可以利用该漏洞通过精心设计的 pty 请求导致拒绝服务(守护程序中断)。
  • 远程攻击者可以利用该漏洞执行任意代码或通过精心制作的公钥身份验证请求导致拒绝服务(守护程序挂起)。

解决方案:开发者已经针对该漏洞发布了相关补丁,您可以下载补丁来解决这些漏洞。

2)WebCLI 组件拒绝服务漏洞

说明:Wind River VxWorks 6.5 至 6.9 中的 WebCLI 组件存在输入验证漏洞。这些漏洞可以使 WebCLI 组件拒绝服务。
漏洞主要危害:这些漏洞允许远程经过身份验证的用户通过精心设计的命令字符串导致拒绝服务(CLI 会话崩溃)。
解决方案:开发者已经针对该漏洞发布了相关补丁,您可以下载补丁来解决这些漏洞。

3)网络服务器远程拒绝服务漏洞

说明:Wind River VxWorks 5.5 至 6.9 中的 Web 服务器存在输入验证漏洞。 这些漏洞可以使 Web 服务器拒绝服务。
漏洞的主要危害: 远程攻击者可以通过精心制作的URI导致拒绝服务 (守护程序崩溃)。
解决方案:开发者已经针对该漏洞发布了相关补丁,您可以下载补丁来解决这些漏洞。

B 权限和访问控制漏洞

权限和访问控制是一个安全过程,它在预定义的标准内控制特定资源的使用,并且是 AAA(授权、身份验证、记帐)安全模型的一部分。所有现代系统都使用某些权限和访问控制模型来管理其安全性。权限和访问控制模型可以分为三个主要类别:强制权限和访问控制 (MAC),自主权限和访问控制 (DAC),以及基于角色的权限和访问控制(RBAC)。
权限和访问控制涉及使用多种保护机制,例如身份验证、授权、和问责制。当任何机制未应用或以其它方式失败时,攻击者可以通过获取权限、读取敏感信息、执行命令、逃避检测等方式危机系统软件的安全性。

1)WDB 目标代理调试服务权限和访问控制漏洞

说明:Wind River VxWorks 6.x、5.x中,用于罗克韦尔自动化1756-ENBT系列 A 固件 3.2.6 和 3.6.1 等产品中的WDB目标代理调试服务存在权限和访问漏洞控制。为了支持嵌入式软件开发,VxWorks 开发人员配置了一个目标代理组件。为了遵守WDB(Wind River DeBug)协议,目标代理允许远程用户调试目标机中的程序。远程攻击者可以利用该漏洞开采利用存储单元、功能和管理任务。
漏洞的主要危害:漏洞允许远程攻击者通过对 UDP 端口17185 的请求读取或修改任意内存位置、执行函数调用或管理任务。
解决方案:可以删除 WEB 目标代理组件、调试组件(包括_WDB和INCLUDE _DEBUG)以及其他不支持客户端应用程序的操作系统组件。

2)FTP 守护进程权限和访问控制漏洞

说明:wind river VxWorks 中的 FTP 守护进程存在权限和访问控制漏洞。
漏洞的主要危害:在多次登录失败后, FTP 守护进程无法关闭 TCP 连接,这使得远程攻击者更容易通过暴力手段攻击获得访问权限。
解决方案:如果不需要,可以禁用FTP服务。

C)信任管理漏洞

Blaze 引入了信任管理的概念,以帮助自动验证反抗安全策略的操作。在这个概念中,如果他们表现出足够的充分的凭证,则允许操作进行,且忽略他们的实际身份,将信任的符号表示与实际的人分开。信任管理是一个处理社会信任符号表示的抽象系统,通常用于辅助自动化决策过程。这种表示,例如以加密凭证的形式,可以将信任管理的抽象系统与信任评估的结果联系起来。信任管理在实施信息安全 (特别是访问控制策略) 中很流行。
信任管理可以通过门票的的日常经验得到最好的说明。一个人可以买一张赋予他权利的门票例如进入体育场。门票作为信任象征符号,表示持票人已经支付座位的费用,并且有权进入。然而,一旦购买了票,票就可以被转让给其他人,从而以符号象征性的方式转移这种信任。在检票口,只检查票,而并不检查持票人的身份。

1)2.3.1 INCLUDE_SECURITY 功能信任管理

说明:Wind River VxWorks 6.x、5.x 及更早版本中的INCLUDE_SECURITY 功能存在信任管理漏洞。
漏洞的主要危害:INCLUDE_SECURITY 功能使用 Login_USER_NAME 和 Login_USER_PASSWORD 参数来创建硬编码凭据,这就使得远程攻击者更容易通过以下三种方式获得访问权限:

  • Telnet 协议: Telnet 协议是 TCP/IP 协议之一,是 Internet 标准协议和远程访问服务的主要方式。它为用户提供了在本地计算机上完成远程主机上的工作的能力。用户可以在终端用户的计算机上使用 Telnet 程序,并使用它来连接服务器。终端用户可以在 Telnet 程序中输入命令,这些命令将会在服务器上运行,就像直接在服务控制台上输入一样,这样你就可以在本地控制服务器。Telnet 是远程 web 服务器控制的一种常用方法。
  • 远程登录:远程登录允许授权用户访问网络上的其他机器,就像用户在本地使用机器一样。一旦访问主机,用户就可以进行主机允许的任何操作,例如:读取文件、编辑文件或者删除文件。
  • FTP 会话

解决方案:避免对账户凭据进行硬编码,并将 ‘LOGIN_USER_NAME’ 和 ‘LOGIN_USER_PASSWORD’ 参数设置为空字符串。

D 加密漏洞

如果你用门闩而不是链子锁门,你会让窃贼更难进入你的家。同样,加密软件提供的安全级别也存在差异。大多数被认为好的著名加密算法在数学上都足够复杂,难以破解;否则,它们就不会得到如此广泛的应用。但如果有人足够坚持不懈的破解,即使是好的算法也很容易被破解。在本节中,我们将讨论加密软件中的一般漏洞,并提供可用于打击这些漏洞的提示。如果你想了解更多关于一个特定算法或软件程序的漏洞的信息,可以在网上搜索关于其有效性的评论。

1)Wind River VxWorks loginDefaultEncrypt 算法加密漏洞

说明:在 VxWorks 6.9之前,在 Wind River VxWorks loginLib (登录库)中的 logindefaultencrypt 算法存在算法加密漏洞。
远程攻击者可以通过以下三种方式轻松使用它来获取访问权限:

  • Telnet 协议。
  • 远程登录
  • FTP 会话

解决方案:通过安装 loginEncryptInstall() loginLib 钩子,使用可信验证 API 来代替标准 API (loginDefaultEncrypt ())中默认的 HASH 算法。

三 总结

本文主要介绍了 VxWorks 操作系统,阐述了操作系统安全漏洞的意义,分析了输入验证、权限和访问控制、信任管理、加密4种安全漏洞,并给出了解决方案。它为操作系统的维护和开发提供了有用的基础。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值