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

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

3天内不再提示

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

星星科技指导员 来源:嵌入式计算设计 作者:GrammaTech 2022-06-15 14:07 次阅读

它包含庞大的代码库并跨越关键的板载系统。多年来,制造商一直依赖MISRA C/C++ 编码指南来帮助软件开发。该框架为汽车行业及其他行业带来了实际好处和安全收益。

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

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

破解密码

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

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

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

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

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

推进 AppSec

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

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

安全漏洞,也就是软件缺陷,可以被攻击者利用,以便他们可以干扰系统的行为并获得对关键数据的访问权限。

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

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

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

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

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

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

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

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

审核编辑:郭婷

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

    关注

    3016

    文章

    7761

    浏览量

    165302
  • 应用程序
    +关注

    关注

    37

    文章

    3201

    浏览量

    57413
收藏 人收藏

    评论

    相关推荐

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

    前言 随着互联网和大数据的迅猛发展,分布式日志系统和日志分析系统已广泛应用,几乎所有应用程序都使用各种日志框架记录程序运行信息。因此,作为工程师,了解主流的日志记录框架非常重要。虽然
    的头像 发表于 07-30 10:00 892次阅读
    日志<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 914次阅读

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

    本文主要探讨NIST CSF框架的起源目标、内容组成,及其在网络安全风险管理中的关键作用,通过采用框架,组织能够更有效地实施风险识别、安全
    的头像 发表于 05-06 10:30 1166次阅读
    专家解读 | 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 473次阅读
    【从0开始创建AWTK<b class='flag-5'>应用程序</b>】编译应用到RTOS平台

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

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

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

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

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

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

    javaweb的三大框架有哪些

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

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

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

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

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

    springboot框架介绍

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

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

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

    Flask如何升级到 Quart 应用程序

    本文详细介绍了典型的生产环境的 CRUD 应用程序从 Flask 到 Quart 的转换,并展示相关的性能改进优势。 将这个 Flask-pyscopg2 应用程序升级到 Quart-asyncpg
    的头像 发表于 11-01 16:23 572次阅读
    Flask如何升级到 Quart <b class='flag-5'>应用程序</b>

    SEW-MOVIPRO启动应用程序配置程序

    AMA0801应用程序模块使用六个过程数据字进行寻址。因此,应用程序配置程序必须将这六个过程数据字传输到轴,而不进行更改。这是通过选择“透明6PD”选项来确保的。
    的头像 发表于 10-22 16:18 664次阅读
    SEW-MOVIPRO启动<b class='flag-5'>应用程序</b>配置<b class='flag-5'>程序</b>