汽车基础软件信息安全关键技术
运行级别分层使得应用和 Kernel 运行隔离,避免应用对内核的非法访问。以 Linux+X86 为例,X86 支持4 个运行级别 RING0~RING3,操作系统(内核)代码运行在最高运行级别 RING0 上,可以使用特权指令控制中断及修改页表等,应用程序的代码运行在最低运行级别 RING3 上,访问内核功能需要通过系统调用, 将 CPU 的运行级别从 RING3 切换到 RING0,并跳转到系统调用对应的内核代码位置执行,完成相关操作后再从 RING0 返回 RING3。这种 CPU 的硬件特性保证了应用间物理地址空间的隔离、用户空间和内核空间的隔离,是应用软件安全防护的硬件基础。
主动防御指改变防御方被动局面,通过基础软件(编译器、操作系统)实现动态、主动地防御;攻击者往往利用代码符号的规律进行漏洞挖掘和系统突破,针对攻击方式,主动防御主要研究程序地址布局 随机化、全局符号布局随机化、关键数据结构布局随机化技术,打破攻击者所依赖的规律。对象访问控制为上层应用访问资源提供安全机制,定义了所有的进程对系统的其他部分(文件、文件夹、设备、socket、端口和其它进程等)进行操作的权限或许可。
TEE 是可信执行环境,是一项硬件特性,当前主流的 X86 或 ARM CPU 均支持该特性,它能够从硬件层面来保护执行在 TEE 中的应用和数据安全。对于安全高度敏感的应用,可以把应用安全敏感功能逻辑拆分到 TEE 中执行,敏感数据存储到 TEE 中,从硬件层面来防护应用软件的信息安全。
在框架层面,需要建立应用签名验证、权限管理及应用沙箱机制。应用签名主要解决应用的来源合法性问题,利用密码算法,采用证书对应用进行签名,框架层在应用安装时对证书进行验证,证书合格的 应用将被允许安装,框架可以根据证书的类型赋予应用不同权限的能力。权限管理解决应用权限授予问题, 包括检查权限、请求权限和处理权限三部分。应用权限由用户确认,只有用户认可才会被授予,应用默认没有任何权限;应用对外开放的服务需要按照规范发布,第三方应用只有明确声明并授权才能获取另外 一个应用的服务访问能力。应用沙箱是为执行中的程序提供隔离环境的一种安全机制,它将各应用与关 键系统组件、数据以及其他应用隔离开来,当一个应用受到恶意软件的破坏时,应用沙箱会自动将其阻止, 确保设备和信息的安全,应用沙箱实现依赖 Kernel 提供的对象访问控制能力。
应用加固能有效防止应用被反编译、嵌入病毒、非法扣费等,有效确保应用程序逻辑安全和代码安全。

图3.4-5 应用安全加固
对 Dex 文件进行加密,防止被逆向工具进行反编译和破解,完全不对程序的可执行代码进行修改, 且不影响程序的正常执行;对 so 文件进行加壳保护,增加 so 文件被破解和分析的难度,防止用户 C/ C++ 层代码逻辑泄露,保护 C/C++ 层的代码安全;对图片、音频、汉化文件等关键资源文件进行加密保护;使用双进程反调试技术对应用进行保护,全面对抗动态调试工具,防止非法操作者通过调试器对应 用进行动态分析,保护应用程序安全;内存保护主要防止使用 gdb 和 ida 等工具 dump 有效的内存镜像, 通过加密 Dex 文件中关键部分,使得内存中存在的 Dex 并不完整,防止通过 Dump 工具对内存进行窃取并还原 Dex 文件;通过进程检测、底层 Hook 等技术,有效对抗各类脱壳工具的攻击,防止对内存关键指针的 dump;针对指定 API 进行保护,提升加固后应用执行效率,防止 apktool,jeb,baksmali 等进行反编译得到源码。
应用软件的加固技术经历了几代的发展演变,在防逆向脱壳的难度上也越来越大,安全性也越来越高。加固技术的发展经历了如下几个阶段:Dex 动态加载技术、Dex 类抽取技术、自定义 VMP 技术、Java2C 技术。

图3.4-6 Java2C技术流程图
应用软件安全防护是个系统性的工程,需要硬件、Kernel、框架及应用的综合作用,尤其是 Kernel 和框架,是应用信息安全的基础,在保障自身免受漏洞和缺陷攻击的前提下,应提供尽可能丰富的安全手段, 保护应用及其数据的安全,而且,这个过程对应用尽可能透明和无感。对于应用本身,除了保证本身的 实现逻辑及代码安全性符合要求,还需要对应用做加固处理,保护源代码和程序逻辑的安全。
系统安全防护
基础软件系统安全包括了车用操作系统内核、中间件软件如 AutoSAR CP、AutoSAR AP 等基础软件的整体安全。车联网时代,汽车通过基础软件系统可与智能终端、互联网等进行连接,实现娱乐、导航、交通信息等服务。基础软件系统常基于 Linux、QNX 等操作系统内核开发,由于操作系统内核代码庞大且存在不同程度的安全漏洞,操作系统内核自身的安全脆弱性将直接导致应用系统面临被恶意入侵、控制的风险。
除此之外,用户的智能终端也存在被入侵、控制的风险,一旦智能终端被植入恶意代码,用户在使 用智能终端与基础软件系统互连时,智能终端里的恶意软件就会利用基础软件系统可能存在的安全漏洞, 实施恶意代码植入、攻击或传播,从而导致基础软件系统异常甚至接管控制汽车。
基础软件系统通常面临的安全威胁有非授权访问、暴力破解、溢出攻击、恶意软件、资源垄断、残余信息利用、数据传输窃听和重放攻击。
1、非授权访问
非授权用户或进程访问基础软件系统的安全功能数据和用户数据,并对安全功能数据和用户数据进行恶意操作。
2、暴力破解
运用各种软件工具和安全漏洞,破解合法用户的口令或避开口令验证过程,然后冒充合法用户潜入基础软件系统,夺取基础软件系统控制权的攻击形式。
3、溢出攻击
利用堆栈生长方向和数据存储方向相反的特点,用后存入的数据覆盖先前压栈的数据直至覆盖函数的返回地址,函数执行完返回时改变程序的正常执行流程,从而达到攻击目的的行为。
4、恶意软件
恶意软件可能通过伪装成授权应用或进程访问用户数据和基础软件系统敏感资源。
5、资源垄断
恶意进程 / 线程绕过操作系统内核调度机制,长时间持续占用 CPU 资源,导致其他用户 / 主体无法获取 CPU 资源,破坏操作系统内核的可用性。
6、残余信息利用
恶意进程可能利用操作系统内核对于残留信息的处理缺陷,在执行过程中对未删除的残留信息进行利用,以获取敏感信息或滥用操作系统内核的安全功能。
7、数据传输窃听
恶意用户或进程可能监听基础软件系统与远程可信实体间传递的用户数据。
8、重放攻击
非授权用户利用所截获地授权用户信息,重新提交给基础软件系统,以假冒授权用户访问基础软件系统的功能和数据。
- 下一篇:国内外政策、法规与标准现状
- 上一篇:汽车基础软件信息安全与AUTOSAR
编辑推荐
最新资讯
-
风噪测试在电动汽车时代的关键作用
2025-04-29 11:34
-
汉航车辆性能测试系列之操纵稳定性测试--汉
2025-04-29 11:09
-
新能源汽车热管理系统验证体系PITMS正式发
2025-04-29 11:09
-
试验载荷谱采集
2025-04-29 11:07
-
APx500 软件演示模式 (Demo Mode) 竟有这些
2025-04-29 08:37