运行时错误(Run-time Error)是一种跟程序运行状态相关的缺陷。这类缺陷不能通过直接禁用相关特性来屏蔽,而是需要通过分析变量的数值状态来发现可能的异常。简单来说,这些缺陷通常只有当程序执行起来以后,才能逐渐暴露出的缺陷,一般是需要在调试和运行期间发现这类缺陷,但是静态分析技术,通过区间计算、常量折叠等技术是可以通过静态扫描程序发现大部分运行时缺陷的。下面是我整理的一个列表,部分SAST工具支持发现这类缺陷。尤其是C、C++开发的嵌入式软件,更要关心这些缺陷,因为C/C++开发的嵌入式软件,大多数与互联网物理隔绝,安全漏洞倒是不用太过于关注,而由于程序本身缺陷导致的运行时缺陷才应该是最关注的。当初华为试用了很多款工具,通过列举了很多运行时缺陷,尤其是缓冲区溢出缺陷,看看哪家工具最强。下面我列出了常见的运行时缺陷。
(结束)