0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用更高级的应用程序安全框架

星星科技指导员 来源:嵌入式计算设计 作者:Mark Hermeling 2022-11-18 15:52 次阅读

从本质上讲,汽车软件很复杂。

它包含庞大的代码库,并跨越关键的机载系统。多年来,制造商一直依靠MISRAC/C++编码指南来帮助软件开发。该框架为汽车行业及其他行业带来了实际优势和安全性提升。

许多创建汽车软件的开发团队使用 MISRA 指南和应用程序安全工具,包括静态应用程序安全测试 (SAST)。这使得在降低安全漏洞和关键安全问题风险的过程中发现语法和其他编码错误成为可能。该框架还有助于降低开发成本并加快上市时间。

然而,将这些指南和工具以最大效率结合使用可能具有挑战性。问题出在哪里?许多应用程序安全 (AppSec) 工具需要大量的手动干预或监督,以便充分了解它们如何影响各种流程。

破解密码

问题的核心是一个基本事实:当手动接近MISRA标准时,执行MISRA标准是很困难的。许多基本的 AppSec 工具仅处理规则检查,因此提供了一些帮助,但回避了与应用程序安全性相关的核心问题。它们不解决关键任务,例如错误检测和安全漏洞分析。

不幸的是,遵循基本的MISRA指南并不能提供足够的保护。虽然它可以消除一些错误并提高 C 或 C++ 的代码质量,但它并没有针对庞大的代码库和日益复杂的开发实践。错误和缺陷仍然是编写代码的不幸和不可避免的副作用。

这是所有汽车制造商都面临的问题。研究表明,商业软件平均每 1,000 行代码 (KLOC) 有一个缺陷。虽然开源的表现要好一些,但它的测量值为0.68 / KLOC,但它仍然是一个严重的问题。考虑一下:今天的豪华车大约有1亿行代码。即使在最佳情况下,这也代表了大约 10,000 个影响质量、安全和安保的潜在缺陷。

当然,在事后修复问题和修复是昂贵且耗时的。当召回车辆以修复软件缺陷时,这也给消费者带来了压力。不幸的是,问题的根本原因通常仍然未知,并且很难找到漏洞的实际来源。这意味着开发人员必须重现故障,对其进行分析,并尝试了解它如何影响代码库的其他部分。实际上,这意味着许多错误可能永远无法修复。

但是,当组织以更深入和更广泛的方式将 AppSec(包括 SAST)集成到开发过程中时,可以将安全性提升到更高级的水平。组织不再局限于代码库的部分快照。可以深入研究它,获得可见性,并更详尽地进行测试。借助 SAST,可以在开发过程的早期解决和修复缺陷,从而加快软件发布并确保质量、安全和保障。

推进应用安全

好消息是,高级测试解决方案支持更全面的应用程序安全框架。他们可以发现通过传统开发方法遗漏的缺陷。这包括识别关键问题,例如:

并发缺陷,通常随机发生,只有在组织在最终硬件平台上集成各种系统和代码存储库后才可见。

安全漏洞,又称软件缺陷,可被攻击者利用,从而干扰系统行为并访问关键数据。

警告潜在漏洞的受污染数据分析可能格式不正确。由于这些数据通过许多系统,因此通常很难发现。

难以检测的复杂过程间缺陷,尤其是在单元和子系统测试中。

显示为目标文件、库和可执行文件的已编译代码中的错误检测。这些可以掩盖关键的安全问题。

虽然一些MISRA规则非常简单,只能依赖于代码语法检查器,但仅依赖这种方法是错误的。更好的方法是更深入地扩展分析并解决上述关键问题。这包括生成软件物料清单 (SBOM) 的能力,该明细表标识软件的成分列表,包括第三方和开源组件。

SBOM还将附有这些已查明组件的脆弱性报告。这允许组织检测可能影响软件安全性和安全性的隐藏问题。更高级的框架还可以检测困难的情况,例如当需要查看多个连接点,检查所有编译单元并比较每个连接点中找到的所有此类标识符时。这些通常会导致假阳性和假阴性。

雪上加霜的是:人类经常误解这些情况,尤其是在依赖手动工具和报告时。最后,当组织试图完全理解规则的超集和子集、识别安全漏洞并避免死代码时,组织被蒙在鼓里。另一方面,最佳实践框架可以发现规则指定的内容与检查器发现的内容之间的重叠和差距。

该模型最终通过在开发的早期阶段发现和修复缺陷和漏洞来降低风险并节省时间。它通常自动化文档并削减成本。这增加了文档级别,反过来又改进了治理框架并简化了法规遵从性。通过将解决方案集成到安全关键环境中,汽车制造商和其他公司可以获得巨大的收益。

如今,企业级开发项目需要复杂的测试框架来支持和增强整个软件开发生命周期,包括与其他开发自动化工具集成。超越 MISRA 规则执行和基本 AppSec 的能力推动了巨大的收益。它改进了保护,降低了成本,并使开发人员能够专注于他们最擅长的事情:构建出色的软件。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C++
    C++
    +关注

    关注

    21

    文章

    2097

    浏览量

    73452
  • 代码
    +关注

    关注

    30

    文章

    4719

    浏览量

    68210
收藏 人收藏

    评论

    相关推荐

    日志框架简介-Slf4j+Logback入门实践

    前言 随着互联网和大数据的迅猛发展,分布式日志系统和日志分析系统已广泛应用,几乎所有应用程序都使用各种日志框架记录程序运行信息。因此,作为工程师,了解主流的日志记录框架非常重要。虽然
    的头像 发表于 07-30 10:00 1032次阅读
    日志<b class='flag-5'>框架</b>简介-Slf4j+Logback入门实践

    WPS完成后,主机应用程序如何从ESP读取WPA安全密钥?

    WPS 完成后,主机应用程序如何从 ESP 读取 WPA 安全密钥? AT WPS 命令似乎将结果存储在闪存中,以便 ESP 下次将连接到同一 AP。 ESP是否可以选择不将其存储到闪存中,以便它不会在尝试立即连接时从重置中出来?
    发表于 07-16 08:28

    OpenAI推出ChatGPT桌面版应用程序

    OpenAI 近日宣布,备受期待的 ChatGPT 桌面版应用程序现已正式发布。在官方公告中,OpenAI 表示他们首先会将这款应用提供给 Plus 用户群体,并特别针对 macOS 系统推出。这是该公司为了满足用户对更便捷、更高效交流方式的需求而采取的重要一步。
    的头像 发表于 05-14 11:51 971次阅读

    Anthropic推出iPhone应用程序和业务层

    Anthropic 推出 iPhone 应用程序和业务层,支持使用Claude 3 Opus、Sonnet 和 Haiku 模型
    的头像 发表于 05-07 10:22 381次阅读

    专家解读 | NIST网络安全框架(1):框架概览

    本文主要探讨NIST CSF框架的起源目标、内容组成,及其在网络安全风险管理中的关键作用,通过采用框架,组织能够更有效地实施风险识别、安全
    的头像 发表于 05-06 10:30 1274次阅读
    专家解读 | NIST网络<b class='flag-5'>安全</b><b class='flag-5'>框架</b>(1):<b class='flag-5'>框架</b>概览

    【从0开始创建AWTK应用程序】编译应用到RTOS平台

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用AWTK创建Hello工程并在模拟器上运行、将AWTK应用程序移植到其它平台。在
    的头像 发表于 03-21 08:23 544次阅读
    【从0开始创建AWTK<b class='flag-5'>应用程序</b>】编译应用到RTOS平台

    应用程序中的服务器错误怎么解决?

    在使用应用程序时,可能会遇到服务器错误的问题。这种错误通常会导致应用程序无法正常运行 ,给用户带来不便。下面将介绍应用程序中的服务器错误及其解决方法,帮助您快速解决这一问题。
    的头像 发表于 03-12 15:13 5469次阅读

    LTE MQTT通信应用程序说明

    电子发烧友网站提供《LTE MQTT通信应用程序说明.pdf》资料免费下载
    发表于 02-21 10:47 0次下载
    LTE MQTT通信<b class='flag-5'>应用程序</b>说明

    什么是LlamaIndex?LlamaIndex数据框架的特点和功能

    LlamaIndex是一个数据框架,用于让基于LLM的应用程序摄取、结构化和访问私有或领域特定的数据。它提供Python和Typescript版本。
    的头像 发表于 01-05 11:08 9022次阅读
    什么是LlamaIndex?LlamaIndex数据<b class='flag-5'>框架</b>的特点和功能

    【从0开始创建AWTK应用程序】编译应用到嵌入式Linux平台运行

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用AWTK创建Hello工程并在模拟器上运行、将AWTK应用程序移植到其它平台
    的头像 发表于 12-07 12:08 634次阅读
    【从0开始创建AWTK<b class='flag-5'>应用程序</b>】编译应用到嵌入式Linux平台运行

    javaweb的三大框架有哪些

    : Spring是目前最受欢迎和广泛使用的Java应用程序开发框架之一。它提供了一种轻量级的方式来构建企业级应用程序。Spring框架主要包括以下模块: Spring核心模块:提供了I
    的头像 发表于 12-03 11:47 1963次阅读

    【从0开始创建AWTK应用程序】创建应用程序并在模拟器运行

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用AWTK创建Hello工程并在模拟器上运行、将AWTK应用程序移植到其它平台
    的头像 发表于 12-01 08:24 454次阅读
    【从0开始创建AWTK<b class='flag-5'>应用程序</b>】创建<b class='flag-5'>应用程序</b>并在模拟器运行

    开发java应用程序的基本步骤是

    ava是一种面向对象的编程语言,广泛用于开发各种类型的应用程序。在开发Java应用程序时,有一些基本步骤需要遵循,以确保应用程序的正确性和可靠性。 1.确定需求:这是开发任何应用程序
    的头像 发表于 11-28 16:52 1483次阅读

    springboot框架介绍

    Spring Boot 是一个开源的、用于开发微服务的框架,它基于 Java 平台。它提供了一种快速、敏捷的方式来构建独立的、可部署的、生产级别的 Spring 应用程序。Spring Boot框架
    的头像 发表于 11-22 15:53 1239次阅读

    【从0开始创建AWTK应用程序】开发及调试环境搭建

    AWTK是基于C语言开发的跨平台GUI框架。本系列文章介绍如何从0开始创建AWTK应用程序,包括搭建开发调试环境、使用AWTK创建Hello工程并在模拟器上运行、将AWTK应用程序移植到其它平台
    的头像 发表于 11-11 10:00 611次阅读
    【从0开始创建AWTK<b class='flag-5'>应用程序</b>】开发及调试环境搭建