广告

代码质量与安全–架起程序语义和业务逻辑之间的桥梁

时间:2021-01-13 作者:鉴释首席技术官,陈新中 阅读:
我在编译器技术领域深耕已有30多年之久,包括MIPS和Intel等公司。目前,我领导着鉴释科技静态应用程序安全测试(SAST)工具的核心开发工作。
广告
电子工程专辑 EE Times China -提供有关电子工程及电子设计的最新资讯和科技趋势

我在编译器技术领域深耕已有30多年之久,包括MIPS和Intel等公司。目前,我领导着鉴释科技静态应用程序安全测试(SAST)工具的核心开发工作。该工具能够分析处于静态状态的源代码,即在软件编译和运行之前检查软件是否存在错误。为了做到这一点,我们的工作已经超越了编程语言的语法范围。它不仅仅要检查源代码的“语法和拼写”,还要检查系统语义以及系统中的数据流。通过将编译器技术应用于其中,我们模拟数据在软件中的流动方式,并检测在运行期间可能出现的问题,而不是在运行时再去检测它。回归到本质,在二进制代码之前,我们进一步向下执行从抽象语法树(AST)到中间表示(IR)级别的编译器步骤,因此我们可以看到仅在编程语言代码中看不到的流程和动作。

陈新中,鉴释联合创始人兼首席技术官

为了进行完整的应用程序安全性测试,SAST一般不独立运行。 而且必须使用其它测试工具来查找软件中的缺陷和漏洞,例如动态应用程序安全测试(DAST)和交互式应用程序安全性测试(IAST)。DAST是目前应用最广泛的安全测试技术之一,用于在软件运行过程中检查问题。IAST则结合了SAST和DAST的元素,在应用程序内部进行分析。它可以在执行应用程序功能测试时完成安全测试,并且具有准确度高,误报率低的优点。

现有的编程语言可被分为静态和动态语言两种,C 和C++ 是静态型语言,在编译时就能快速地对代码进行分析并生成结果。 JavaScript等是动态型语言,它们的很多特征是无法在编译时进行分析。有些漏洞是静态分析无法判断的,此时就要依赖IAST和DAST来把关。 没法在编译时分析的信息主要包括,在运行时来自外部输入的信息,以及在运行时程序生成的某些数据,从而改变了程序流。 因此,从静态到动态的协同分析实际上是最好的方法。

SAST工具一直在进步,但是仍然存在许多未解决的问题。 跨文件分析是我已经思考了十多年的一个特殊问题。这是一个真正的挑战,但幸运的是,我们能够用鉴释研发的静态代码分析工具爱科识™解决这个问题。利用新算法,我们可以跨程序边甚至跨文件分析程序,并且可以在不占用大量内存的情况下快速进行此类分析。即使软件此时处于静态,我们也能够大致分析它在运行状态下的行为。例如,爱科识™能够静态分析那些通常在运行时需要输入的程序流。

超出编程语言的另一个主要问题是我们如何应用业务逻辑验证。这不是编译器或语言问题。我们面临的挑战是,如何整合并满足公司业务重点所需的特定业务逻辑。例如,访问者在电商网站上结账时必须遵守的事件序列。这就是精确和自定义规则基础的用武之地。我们可以通过符号框架对副作用进行建模和分析用户定义的规则。如前文所述,建模是基于“数据流”完成的。 因此,它拥有非常快的分析速度,特别是与具有指数复杂性的传统形式逻辑方法相比。

静态代码分析可帮助各种规模的公司解决其业务问题,与所有行业都息息相关。现阶段,我正专注于嵌入式领域。比如,现在在中国乃至全世界,人工智能(AI)芯片设计都变得非常流行,初创企业如雨后春笋般涌现。物联网则是另一个巨大的增长领域,几乎每天都有新的智能设备问世。这些设备带来了巨大的信息安全问题,需要被扼杀在萌芽期。特别是在该行业,在没有严格合规性标准的情况下,多个设备之间存在着大量数据流。

当考虑所有这些挑战时,就会明白为什么分析代码的语义与语法同样重要,甚至更重要。现代应用程序体系结构是极其复杂的,所有软件开发都必须正确使用静态和动态应用程序安全性测试的黄金组合。 在中国,许多公司在程序分析、缺陷检测和性能优化方面都面临着挑战。希望爱科识™能够为他们提供帮助。

关于作者

作为鉴释首席技术官兼联合创始人,陈新中指导鉴释科技在中国的核心研发团队开发静态代码分析工具。开发者,测试人员,质量保证专业人员和高级IT管理者都会使用这些工具来进行深入的源代码缺陷和漏洞检测。

责编:Yvonne Geng

电子工程专辑 EE Times China -提供有关电子工程及电子设计的最新资讯和科技趋势
本文为EET电子工程专辑 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 汽车照明技术中的电源管理和LED解决方案 固态照明是汽车领域的一项使能技术,它不但新增了一些新的功能,具有更高的安全性,更灵活的设计,更易与控制系统和电子设备集成。通过开发新功能和电子控制系统,LED技术在不断更新。现代设计不仅涉及光源,还包括光源本身的形状、投影和图像。
  • 介绍新一代全光纤工业传输控制网 本文在探讨目前工业互联网面临挑战的基础上,介绍新一代全光纤工业传输控制网的理念、意义、总体架构和目标应用市场。
  • IoT设备中嵌入式微控制器的安全机制 当今无处不在的线上和永远在线应用使黑客攻击感到异常兴奋,这为他们提供了可以尝试攻击的全球性数量大量的设备。嵌入式设备的安全性对于阻止黑客获得其控制权至关重要。本文将回顾在嵌入式微控制器中配置强大而可靠嵌入式安全机制的基本概念。我们将探讨一些安全原则,并深入了解攻击者使用的攻击面和攻击手段。
  • 解读USB4与TBT4认证测试中的Transmitter Preset Calib USB-IF 在 2019 年 9 月发表 USB4™ 规格,传输速率达到 40Gbps,USB4TM 规格主要依据 Thunderbolt™ 3 架构设计,并且兼容 TBT3。Thunderbolt™ 4(以下简称 TBT4)传输速度 40Gbps 与 TBT3 相同,其独特优势是支持 TBT3且相容 USB4。
  • 利用仿真技术改善EV电力电子设计 不同的电动汽车都有一个共同点就是采用电力电子设备来控制和转换系统中的电能,而其电力电子测试面临全新的挑战。为实现高速闭环仿真,就需要摒弃传统基于CPU的系统,转向基于FPGA的方法来模拟电力电子设备和电机。
  • 用碳化硅MOSFET设计双向降压-升压转换器 随着电池和超级电容等高效蓄能器的大量使用,更好的电流控制成为一种趋势。而双向DC/DC转换器可以保持电池健康,并延长其使用寿命。
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了