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。

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

    关注

    2950

    文章

    48116

    浏览量

    418230
  • 智能家居
    +关注

    关注

    1945

    文章

    10033

    浏览量

    197845
  • 人工智能
    +关注

    关注

    1820

    文章

    50304

    浏览量

    266859
  • 代码
    +关注

    关注

    30

    文章

    4976

    浏览量

    74365
  • 编译器
    +关注

    关注

    1

    文章

    1672

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何进一步从SPI NOR闪存启动电路板?

    稳定性。 根据 T2080 快速入门指南文档,DIP 设置设置为 JTAG 的硬编码 RCW,并且能够使用 CCS 读取硬编码的 RCW 值。 如何进一步从 SPI NOR 闪存启动电路板
    发表于 04-16 08:51

    光耦工作原理图解:电→光→电,一步一步讲明白

    。        很多人觉得光耦原理很复杂,其实它的工作逻辑极其简单,核心就三:电信号转化为光信号→光信号传播→光信号再转化为电信号,也就是“电→光→电”的单向传递过程。今天就用图解的方式,一步
    的头像 发表于 04-03 10:29 323次阅读
    光耦工作原理图解:电→光→电,<b class='flag-5'>一步</b><b class='flag-5'>一步</b>讲明白

    新建光伏如何绕过红区?四可装置一步到位的配置方案

    标准及实操案例,详细拆解新建光伏绕开红区的逻辑的,以及四可装置一步到位的配置方案,帮你从源头规避红区风险,实现新建光伏项目快速并网、收益最大化。
    的头像 发表于 04-02 14:20 1103次阅读
    新建光伏如何绕过红区?四可装置<b class='flag-5'>一步</b>到位的配置方案

    山东电力市场活力进一步释放,新型主体迎来政策红利

    文件是山东年度电力市场建设的季度细化安排,自2026年6月1日起执行多项新机制,其核心导向可以概括为: 放宽中长期交易限制、激活调节资源市场价值、规范零售市场秩序、明确新型主体结算规则 。安科瑞邓经理:15021601437 、中长期交易进
    的头像 发表于 03-13 10:41 1320次阅读
    山东电力市场活力进<b class='flag-5'>一步</b>释放,新型主体迎来政策红利

    度萝卜快跑与Uber进一步深化战略合作

    今天,萝卜快跑与全球最大的移动出行服务平台Uber共同宣布,双方将进一步深化战略合作,计划于2026年第季度在阿联酋迪拜正式推出全无人驾驶出行服务,这也是迪拜首次迎来全无人驾驶出行服务。
    的头像 发表于 02-11 16:50 1329次阅读

    天合储能与Lightshift Energy进一步扩大战略合作

    近日,天合储能宣布将与美国领先的储能开发、建设及运营方 Lightshift Energy(以下简称 “Lightshift”) 进一步扩大战略合作。在既有合作基础上,双方历史累计及在建、将建项目合计,保障联合交付储能项目规模超过 1GWh,持续支持美国多个州的电网建设与稳定运行。
    的头像 发表于 12-22 15:14 495次阅读

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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