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

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

3天内不再提示

重一步逻辑验证,省百步漏洞补缺

西西 来源:电子发烧友网 作者:李隆博士 2021-04-09 09:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

近年来,随着人工智能物联网等新兴科技的广泛应用,各种“智能”、“自动”的科技服务已经渗透到人们生活的方方面面。在这些服务的背后,是无数个应运而生的软件和应用程序在支撑。遗憾的是,软件行业的大繁荣并没有带来软件代码质量的明显提升。Forrester研究数据显示,82%的漏洞来源于应用程序。与软件规模、数量的井喷一同出现的,是软件漏洞的大爆发,以及随之而来的隐私泄漏、网络欺诈等漏洞“后遗症”。

面对如此巨大的风险,企业内部的软件开发团队通过践行代码审查、各种测试以及代码分析以期减少代码中的漏洞从而提高代码质量。然而,这些方法往往也只能确保“砖块”可用,由这些“砖块”搭建起来的建筑是否符合设计、是否安全可靠就很难验证了。由此,用以检测软件设计或功能实现上的缺陷或偏差的“业务逻辑验证”就应运而生了。

偏差是漏洞之源

一款软件从设计到实现,往往会被拆分成许多小的功能模块,分别实现后再组装整合。大量简单的业务逻辑被用于构建复杂而又丰富的业务逻辑,设计或实现上的偏差或缺陷都会导致漏洞的产生。实践中,团队在拆解实现时,即使顶层描述十分清晰,将文字表达翻译为编程语言,将笼统的语言描述到细节的代码实现,其中可能产生的偏差不是代码审查、各种测试和代码分析能够轻易发现的。同时,如果开发团队在不同模块接口之间的功能描述不够清晰、实现存在偏差,程序一旦运行,问题就会浮出水面。尤其是在增强软件功能、对原有功能改造以及新加入开发人员时,发生类似状况的风险也会上升。

此外,开发人员对第三方或者库函数的理解偏差,也会导致漏洞的发生。如谷歌浏览器Chrome的0day漏洞cve-2019-5786就是由于开发者对std::move()的理解不全面而造成的。对新标准、新接口的尝鲜心理普遍存在于软件开发者中,但在真正使用这些新事物之前,开发者自身需要投入时间精力,去学习并真正理解它。而且,并不是所有的新标准、新接口的设计都合理,如std::move(),其功能在一个编译器的优化流程中就能自动实现。通过开放一个接口,让开发者来尝试实现编译器优化未能完成的工作,同时提供了一个可能导致大量漏洞的来源,其目的和意义让人费解。

业务逻辑验证的重要性

业务逻辑验证,这个步骤可以帮助企业在被认可的合理范围内交付软件,而不是提供一个拥有过多或过少功能的半成品。功能过少的弥补方法相对简单,延长交付时间进行添加即可;而功能过多,则有可能提供了通往用户隐私数据的入口,从而导致不可挽回的严重后果,这类例子比比皆是。


图: 国家信息安全漏洞共享平台收集整理信息系统高危漏洞数量

智能家居普及的今天,黑客利用监控设备的漏洞将监控片段上传至互联网,造成用户隐私泄露,甚至财产损失的事件屡见不鲜。据CNCERT披露的《中国互联网络发展状况统计报告》显示,2020年信息系统的高位漏洞数量同比2019年增长52.2%。诸多例子都在警醒我们软件安全问题就潜伏在身边。

验证业务逻辑,就是从语言描述转换成扫描工具能够认识的检测原语,并证明其成立的一个过程。传统的验证方法是将语言描述转换为严谨的数学表达,证明过程繁复且困难,不仅用人门槛极高,且费时费力。而且一旦顶层的语言描述发生变化,整个推导过程又需要从头开始。在传统形式化方法的实践中,为了验证一行软件源代码,验证过程中需要写17行的代码去验证。此外,传统形式化方法在证明失败的地点分析问题的症结所在并不容易,往往需要沿证明路径倒推检查。一般的开发者并不具备轻易掌握传统方法的能力。

为提供高效的业务逻辑验证服务,最好的方法是在静态代码扫码工具上提供接口,让用户将其业务逻辑映射到对应的开发语言上,再由机器快速高效的完成验证工作。即,如果有某语言编写的一段程序,又有它的一段语言描述,只要代码扫码工具提供了相同编程语言的接口,就可将语言描述的业务逻辑映射到的验证引擎可以识别的接口函数上,对软件进行扫描,查看真正的实现是否符合了语言描述中所要实现的功能。全程由机器执行的工具不仅拥有更快的速度、更高的效率,其对使用者的水平要求也更低,更能直观地帮助客户了解软件开发的具体症结所在。在实践中,80%的客户的定制化验证需求是可以通过有限的扫描引擎描述接口由客户自行实现的,而另外20%的客户的特定的需求,则需要花费大量精力去帮助解决。

左移已是开发标配

软件生命周期包括:设计、实现、测试以及交付使用。早发现问题早解决,弥补的成本也随之而下降。在用户开始使用时才暴露出来的错误,其修复的人力和时间成本最高,远超过开发时就发现并修复的成本。与其在用户使用后才报错,不如在内部开发的早期就践行业务逻辑验证,确保 “我做的是客户想要的”,因为一个软件到实现功能之后再重新设计改造,其时间、人力成本都会很高。

关于作者

李隆博士专注于代码验证基础架构,现任鉴释科技首席科学家。李隆于2008年在中科大获得计算机软件和理论博士学位。其学术研究集中在应用基于程序设计语言理论的技术构建可靠高效的软件上,并发表了数篇期刊和会议论文。毕业后,李隆博士加入了三星电子,从事高级技术小组的统计机器翻译工作。并于2010年加入HP编译器团队,从事HP Non-Stop编译器后端和SDK。

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

    关注

    2939

    文章

    47317

    浏览量

    407762
  • 智能家居
    +关注

    关注

    1942

    文章

    9943

    浏览量

    195492
  • 人工智能
    +关注

    关注

    1813

    文章

    49734

    浏览量

    261477
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73137
  • 编译器
    +关注

    关注

    1

    文章

    1669

    浏览量

    51079
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    BlackBerry QNX与众森软件进一步深化战略合作

    今日,深圳市众森软件有限公司(以下简称"众森软件")正式宣布与全球领先的实时操作系统与嵌入式软件供应商 QNX(BlackBerry有限公司旗下部门QNX)进一步深化战略合作。此次合作将进一步推动下代智能网联汽车与智慧出行解决
    的头像 发表于 12-04 16:40 1041次阅读

    上汽奥迪与创维汽车智能合作进一步深化升级

    近日,创维汽车智能迎来重要突破:上汽奥迪客户将当前公司开发的显示屏项目沿用至上汽奥迪其他主力车型。这决定不仅体现了客户对创维汽车智能技术实力与服务品质的高度认可,更标志着双方合作进一步深化升级。
    的头像 发表于 11-25 10:32 436次阅读

    美国 | FCC即将通过新规,进一步封堵华为、海康威视

    FCC即将通过新规,进一步封堵华为、海康威视2025年10月7日,美国联邦通信委员会(FCC)主席宣布,FCC委员会即将投票表决项新规,旨在填补现有法规中可能被利用的两大漏洞,以阻止存在“风险
    的头像 发表于 10-13 18:11 413次阅读
    美国 | FCC即将通过新规,进<b class='flag-5'>一步</b>封堵华为、海康威视

    蔚来进一步拓展其全球业务

    8月18日,蔚来公司宣布将于2025年至2026年期间陆续进入新加坡、乌兹别克斯坦和哥斯达黎加三个市场,进一步拓展其全球业务,为当地用户带来创新、可持续、高品质的智能电动出行体验。
    的头像 发表于 08-20 17:00 1120次阅读

    淘宝API实时竞品监控,市场策略快人一步

    在当今激烈的电商竞争中,实时掌握竞品动态是企业制胜的关键。淘宝作为中国最大的电商平台,其开放API为商家提供了强大的工具,帮助实现实时竞品监控,从而优化市场策略,抢占先机。本文将一步步解析如何利用
    的头像 发表于 08-06 14:38 533次阅读

    晶圆级封装:连接密度提升的关键一步

    了解晶圆级封装如何进一步提高芯片的连接密度,为后续技术发展奠定基础。
    的头像 发表于 06-27 16:51 533次阅读

    各位大佬,想问下为什么这个程序一步一步运行就可以读出正确的读数,正常运行却读不出正确读数

    各位大佬,想问下为什么这个程序一步一步运行就可以读出正确的读数,正常运行却读不出正确读数
    发表于 06-23 09:57

    智驾安全,发展到哪一步了?

    智驾安全,发展到哪一步了?
    的头像 发表于 06-10 11:28 533次阅读

    CoT 数据集如何让大模型学会一步一步思考?

    目前,大模型的回答路径基本遵循 input-output 的方式,在面对复杂任务时表现不佳。反之,人类会遵循套有条理的思维流程,逐步推理得出正确答案。这种差异促使人们深入思考:如何才能让大模型“智能涌现”,学会像人类样“一步
    的头像 发表于 04-24 16:51 1038次阅读
    CoT 数据集如何让大模型学会<b class='flag-5'>一步</b><b class='flag-5'>一步</b>思考?

    【迅为电子】一步步教你完成iTOP-RK3568 EDP屏幕适配

    【迅为电子】一步步教你完成iTOP-RK3568 EDP屏幕适配
    的头像 发表于 04-23 15:08 1620次阅读
    【迅为电子】<b class='flag-5'>一步步</b>教你完成iTOP-RK3568 EDP屏幕适配

    医疗设备EMC检测测试整改:保障患者安全的第一步

    深圳南柯电子|医疗设备EMC检测测试整改:保障患者安全的第一步
    的头像 发表于 03-17 11:18 756次阅读
    医疗设备EMC检测测试整改:保障患者安全的第<b class='flag-5'>一步</b>

    ST EDGE AI云服务最后一步无法下载工程是怎么回事?

    ST EDGE AI云服务我选择使用ST提供的模型,使用cube ai 9.0.0,选择STM32板卡。之后就按照文档一步一步操作,基准测试也能运行的到结果(说明云端是生成工程并编译下载到开发板中
    发表于 03-13 08:17

    ADS1115在配置和转换时的具体操作步骤,每一步的寄存器配置是怎样的?

    ADS1115在配置和转换时的具体操作步骤,每一步的寄存器配置是怎样的???希望能给出配置和读取数据的模块函数
    发表于 02-12 08:25

    如果需要将DDC112U设置为非连续模式工作,应该如何一步一步正确地设置芯片?

    或状态8,如果没有CONV的切换发生,是否会直停留在上电时的这个状态?如果需要将DDC112U设置为非连续模式工作,应该如何一步一步正确地设置芯片?
    发表于 01-09 07:43

    沙子变芯片,一步步带你走进高科技的微观世界

    在科技飞速发展的今天,芯片作为现代科技的核心元器件,其制造过程复杂且充满挑战。芯片不仅推动了信息技术、人工智能、物联网等领域的进步,还成为衡量个国家科技实力的重要指标。然而,芯片制造并非易事,从沙子到芯片的每一步都充满了技术、资金和人才的考验。本文将详细解析芯片制造的全
    的头像 发表于 12-19 10:44 1074次阅读
    沙子变芯片,<b class='flag-5'>一步步</b>带你走进高科技的微观世界