Dynamic Analysis of ARINC 653 RTOS with LLVM

Dynamic Analysis of ARINC 653 RTOS with LLVM
复制标题

使用 LLVM 的 ARINC 653 RTOS 动态分析

DOI:
--
复制
发表时间:
2018
期刊:
2018 Ivannikov Ispras Open Conference (ISPRAS)
影响因子:
--
通讯作者:
A. Khoroshilov
A. Khoroshilov
中科院分区:
--
文献类型:
--
作者:
Vitaly Cheptsov;A. Khoroshilov

文献摘要

被引文献

相似文献

V.Cheptsov和A. Khoroshilov,“使用LLVM的ARINC 653 RTOS的动态分析”,2018年Ivannikov Ispras Open Conference(ISPRAS),2018年,pp. 9 - 15,DOI:10.1109/ISPRAS.2018.00009。© 2018 IEEE.允许个人使用本材料。在任何当前或将来的媒体上进行所有其他用途必须获得IEEE的许可,包括出于广告或促销目的重印/重新发布本材料、创建新的集体作品、转售或重新分发到服务器或列表、或在其他作品中重新使用本作品的任何受版权保护的组件。摘要:现有的机载嵌入式软件系统标准对现代飞机中硬实时操作系统的软件开发周期提出了许多要求。所采取的措施是为了减少不良后果的风险,但成本差异很大。动态插装和静态分析是用于自动发现软件缺陷的常见实践,从严格不一致的代码构造到内存损坏或无效的控制流。LLVM分析器和消毒器基础设施虽然经常应用于通用软件,但最初并不被认为会被引入严格限制的环境。在本文中,我们讨论了机载系统的动态仪表方面的具体情况,并提供了实用的考虑因素,以考虑到通用仪器工具的有效使用。我们为JetOS带来了完整的LLVM堆栈支持,JetOS是一个未来的机载实时操作系统,目前正在ISP RAS与GosNIIAS合作开发。作为一个例子,我们移植了AddressSanitizer、MemorySanitizer和UndefinedBehaviorSanitizer,并提供了所有相关方面的细节:消毒器、编译器和操作系统。此外,我们建议不涉及优化和增强的运行时,以最大限度地提高工具的效果。
V. Cheptsov and A. Khoroshilov, “Dynamic Analysis of ARINC 653 RTOS with LLVM,” 2018 Ivannikov Ispras Open Conference (ISPRAS), 2018, pp. 9-15, DOI: 10.1109/ISPRAS.2018.00009. © 2018 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works. Abstract—Existing standards for airborne-embedded software systems impose a number of requirements applicable to the software development cycle of hard real-time operating systems found in modern aircraft. The measures taken are meant to reduce the risks of undesired consequences, but have strongly varying costs. Dynamic instrumentation and static analysis are common practices used to automatically find software defects, from strictly non-conforming code constructions to memory corruptions or invalid control flow. LLVM analyser and sanitizer infrastructure, while regularly applied to general-purpose software, originally was not thought to be introduced to heavily restricted environments. In this paper we discuss the specifics of airborne systems with regards to dynamic instrumentation and provide practical considerations to be taken into account for the effective use of general-purpose instrumentation tools. We bring a complete LLVM stack support to JetOS, a prospective onboard real-time operating system currently being developed at ISP RAS in collaboration with GosNIIAS. As an example, we port AddressSanitizer, MemorySanitizer, and UndefinedBehaviorSanitizer and provide the details against the caveats on all relevant sides: a sanitizer, a compiler, and an operating system. In addition we suggest uninvolved optimisations and enhancements to the runtimes to maximise the effects of the tools.