源代码安全审计研究

2026-04-09 国家保密科技测评中心

图8 命令执行漏洞示例

(3)对用户输入参数中的“&&”“|”“;”等字符进行过滤。

3.2.7安全配置缺陷

3.2.7.1安全配置缺陷问题描述

安全配置缺陷通常是由于不安全的默认配置、不完整的临时配置、开源云存储、错误的HTTP标头配置,以及包含敏感信息的详细错误信息等问题造成的。

3.2.7.2安全配置缺陷规范要求

(1)删除不需要的配置和文件夹,删除Web目录下存在敏感信息的备份文件、测试文件、临时文件、旧版本文件等,关闭多余端口,停用不用的服务,如FTP、Telnet、SMTP、SSH等,改默认口令。

(2)对所使用的第三方组件进行安全配置,使得第三方组件不存在已知漏洞。

3.2.8 敏感信息泄露

3.2.8.1敏感信息泄露描述

当开发人员缺乏一定的安全意识,未按照安全规范进行编码时,会造成用户敏感信息泄露和应用程序信息的泄露。

3.2.8.2敏感信息泄露规范要求

(1)不在错误信息页泄露系统详细信息、会话标识符、用户账号信息、物理路径、数据库版本及路径、SQL语句等相关信息。

(2)删除注释代码,避免注释代码中存在遗留的测试账号信息、敏感接口地址以及第三方服务的敏感信息泄露。

(3)禁止使用Get方法传递敏感参数(会话标识、身份证号等),因为Get方法会将参数显示在URL中,传输过程中所有的代理及缓存服务器都可以直接获取用户数据。

(4)避免在前端代码中存放敏感信息,如Hidden字段存在管理员账号密码等。

(5)禁止带有敏感数据的Web页面缓存,可以通过函数设置强制浏览器不进行缓存,如图9所示。

图9 强制浏览器不进行缓存示例

3.2.9第三方组件安全

3.2.9.1第三方组件安全

为节约成本、提高开发效率,大量开源组件被引入企业软件开发过程中,因此避免使用存在安全隐患的组件对于保证软件安全具有重大意义。

3.2.9.2第三方组件规范要求

从官方渠道获取第三方组件,定期对第三方组件进行安全性检测,确保组件不存在已知安全漏洞,并及时升级组件版本;建立第三方组件库,统一进行维护和管理,避免个人从其他渠道获取;对第三方组件进行完整性验证,确保所使用的第三方组件未被篡改。

4 结语

随着云计算的普及、微服务等基础架构的成熟,企业开发模式也从传统的瀑布模型演变到持续集成安全防护理念开发安全运维一体化(Dev-SecOps)。DevSecOps理念将安全贯穿设计、开发、测试、运营生命周期的每个环节,使源代码安全漏洞能够得到尽早发现、尽快解决。源代码静态审计技术在理论上性能优异,自动化程度高,可挖掘层次深,但实际使用中存在漏报率和误报率偏高的缺陷。近年来,机器学习技术取得了重大突破,为静态审计技术注入了新的活力,基于深度学习的漏洞检测方法将会显著提高漏洞检测效率,减少误报率,是源代码安全审计下一步的研究方向。

(原载于《保密科学技术》杂志2023年2月刊)

正文暂未发布

当前稿件尚未补充正文内容,后续可在后台完善内容后自动恢复显示。你也可以先返回栏目页浏览其他资讯。

上一篇
下一篇