一款软件从设计到实现,往往会被拆分成许多小的功能模块,分别实现后再组装整合。大量简单的业务逻辑被用于构建复杂而又丰富的业务逻辑,设计或实现上的偏差或缺陷都会导致漏洞的产生。

近年来,随着人工智能和物联网等新兴科技的广泛应用,各种“智能”、“自动”的科技服务已经渗透到人们生活的方方面面。在这些服务的背后,是无数个应运而生的软件和应用程序在支撑。遗憾的是,软件行业的大繁荣并没有带来软件代码质量的明显提升。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。

责编:Luffy Liu

阅读全文,请先
您可能感兴趣
Cadence 持续创新并开发了 Cadence Tempus 设计稳健性分析(DRA)套件,提供解决上述问题所需要的分析能力。该套件采用先进的建模算法,赋能工程师分析,识别并纠正对变化极为敏感的关键设计要素,包括适用于模块级的 Tempus ECO Options 和子系统/全芯片级的 Cadence Certus 收敛解决方案,两者皆可在 Innovus 设计实现系统中调用。
由于电子器件的频率和性能不断提高,要求与之匹配的二极管必须具备恢复时间短,反向恢复电流小和软恢复等特点。而快恢复二极管(FRD)因具备上述特点而被广泛应用。本文简要介绍快恢复二极管的反向恢复过程,及基于TCAD软件工具采取一系列方法优化恢复二极管的反向恢复,使其能够实现快速而软的恢复。
值得一提的是,在最近疫情、政治地缘冲突的影响下,很多半导体分销商面临着很大的生存压力,而顶讯则实现了逆势成长,“据公司的业绩数据统计,在疫情期间,我们的客户增长量是历史最高的。这是因为电子元器件分销企业在生存压力下,正通过寻求数字化管理来应对严峻的行业形势。”
随着芯片工艺节点的不断推进,DTCO是工艺节点推进和提升芯片竞争力的EDA方法学,而在工艺推进到5纳米、3纳米以下之后,由于器件的缩微变得越来越困难,就需要考虑STCO先进封装,包括把工艺平台开发和芯片设计、系统设计集成在一起,以延续摩尔定律。自成立13年来,概伦电子一直持续打造DTCO核心技术和EDA流程,基于业界领先的Design Enablement解决方案,加速工艺平台开发,提升YPPA。
5G与AI的结合蕴含着巨大机遇。5G可以为AI应用数据的收集、传输和处理提供所需的高吞吐量、低延迟和可靠连接;而AI则可以帮助5G网络动态分配资源、管理流量和检测异常,还可以利用5G技术为用户提供个性化、情景化的智能服务。这两项技术的结合,正在快速改变着人们的工作和生活方式。
ChatGPT风潮凸显了一个问题:大规模人工智能即便在技术和经济上并非不可能,但现实中也变得不切实际;即使是对环境来说,也是很可怕的影响…
根据TrendForce集邦咨询最新OLED技术及市场发展分析报告统计,在近期发表的摺叠新机中,UTG的市场渗透率已逾九成,随着摺叠手机规模持续成长,预估2023年UTG产值将达3.6亿美元;2024年可望挑战6亿美元。
随着终端及IC客户库存陆续消化至较为健康的水位,及下半年iPhone、Android阵营推出新机等有利因素,带动第三季智能手机、笔电相关零部件急单涌现,但高通胀风险仍在,短期市况依旧不明朗,故此波备货仅以急单方式进行。此外,台积电(TSMC)、三星(Samsung)3nm高价制程贡献营收亦对产值带来正面效益,带动2023年第三季前十大晶圆代工业者产值为282.9亿美元,环比增长7.9%。
治精微推出具过压保护OVP、低功耗、高精度运放ZJA3018
无线技术每天都在拯救生命,有些非常方式是人们意想不到的。在美国加利福尼亚州Scotts Valley,一名路过的慢跑者发现一处住宅冒出火焰后,按响了门铃,试图通知屋主。屋主不在家中,但无线门铃连接到了智能家居中枢,提醒屋主慢跑者试图联系。屋主立即向他提供了安全密码,让他跑进房子,从火场中救出了宠物。
近日,Wi-Fi联盟宣布Wi-Fi 7规范将于第一季度末最终确定,为企业采用标准化硬件打开大门。 “基于 IEEE 802.11be 技术的 Wi-Fi CERTIFIED 7 将于 2024 年第一
请点击上方蓝色字体“权衡财经”进行关注,建立深度阅读关系!右上角“…”设为星标⭐文:权衡财经研究员 王心怡编:许辉id: iqhcj金属钨是一种稀缺和不可替代的战略性资源,属于高熔点、高比重、高硬度的
广告分割线12月11日,臻鼎科技集团与协成昌集团(Saha Group)达成了战略合作协议。当晚还举办了“2023庆祝战略合作签约暨鹏晟科技动土典礼晚宴”。本次战略合作协议的签订将进一步促进双方的合作
有奖问卷调查:各位工程师朋友,作为全球知名的授权半导体和电子元器件代理商,贸泽电子 Mouser多年来一直倾心为中国工程师服务,助力本土创新! 时至年终,为了更好的服务工程师朋友,我们特别推出“贸泽电
01 项目简介该项目是使用ESP32模块复刻的Nokia1110,可运行NES游戏模拟器和LVGL,主要功能包括彩屏显示,ADC按键,Type-C充电,USB转串口,DAC音乐播放,SD卡读写,WS2
曹原 发自 副驾寺智能车参考 | 公众号 AI4Auto全球第一的 Tier 1,官宣裁员了。博世刚刚证实,准备裁员1500人,以适应汽车行业不断变化的技术和需求。博世发言人表示:我们面临了比年初预期
本文来源:物联传媒“2023‘物联之星’中国物联网行业年度榜单” 评选活动正在火热进行中!为深度挖掘物联网领域的优秀企业、创新产品和优秀项目,审读年度热门领域和发展方向,推动物联网行业的普及与宣传,促
点击左上方蓝色“一口Linux”,选择“设为星标”第一时间看干货文章 ☞【干货】嵌入式驱动工程师学习路线☞【干货】一个可以写到简历的基于Linux物联网综合项目☞【干货】Linux嵌入式知识点-思维导
芝能汽车出品11月,我国动力和储能电池合计产量为87.7GWh,实际拆解估算动力电池约为70.7GWh,同比上升11.5%,环比上升8.4%装车量44.9GWh,同比增长31.0%,环比增长14.5%
 /记得星标我/比大部分人早一步看见未来乡村振兴,产业兴旺是重点。今年是加快建设农业强国的起步之年,在陕西,陕西移动依托自身信息技术优势,在电子商务、养殖业、农业等方面注智赋能,推动特色产业稳步发展,