本文介绍: (2) 设计了“权衡收益和代价”的依赖分析方法结合依赖树的结构依赖软件库的特点,安全去掉冗余依赖,从而为软件减肥”。如果从配置文件中去除冗余依赖,则需要要把被其引用传递依赖重新声明客户端软件的直接依赖,以确保程序正确运行。由于构建工具软件库的自动化配置管理,使得现代软件项目版本演化的过程中,引入大量的第三方软件库,依赖树结构日益臃肿。然而,实际上很多引入的软件库并未被真正使用。臃肿的依赖在资源受限的设备上将严重影响代码性能、增加安全攻击面、降低软件构建效率,并对依赖管理增加额外负担。

由于构建工具对软件库的自动化配置管理,使得现代软件项目版本演化的过程中,引入大量的第三方软件库,依赖树结构日益臃肿。然而,实际上很多引入的软件库并未被真正使用。臃肿的依赖在资源受限的设备上将严重影响代码性能、增加安全攻击面、降低软件构建效率,并对依赖管理增加额外负担。现有技术在去除冗余依赖方面存在如下问题

(a) 冗余依赖的误报

由于静态分析技术的局限性,不能良好地处理Java反射,导致冗余依赖检测的误报。

(b)去除冗余依赖可能会带来新的依赖管理问题

例如,被冗余依赖传递性引入的软件库可能会被客户端代码所间接调用。如果从配置文件中去除冗余依赖,则需要要把被其引用的传递依赖重新声明客户端软件的直接依赖,以确保程序正确运行。这样修复后,开发人员需要花费更多的代价来维护新增依赖的版本。为此,工业界亟需一种安全可靠技术能够帮助开发者从依赖配置中去除冗余第三方软件库。

640.png

640 (1).png

图1 Slimming方法概览

华为云PaaS技术创新LAB与东北大学王莹副教授研究团队合作研发安全去除软件冗余依赖的工具Slimming。该项技术

(1) 设计精确的Java反射分析技术结合配置文件解析程序分析,可以有效地处理流行框架(包括Spring Boot在内的6种流行框架)所涉及的动态行为字符操作等难题。从而有效地识别出冗余依赖。

(2) 设计了“权衡收益和代价”的依赖分析方法,结合依赖树的结构和依赖软件库的特点,安全去掉冗余依赖,从而为软件“减肥”。减少诸多不必要的许可证冲突安全漏洞、过时依赖和依赖冲突问题的维护和管理。能够为华为公司的软件生产提高效率、节约开发成本。与现有程序分析技术相比,Slimming在冗余依赖的检测修复能力方面均有明显地提升。

目前相关研究成果,已被软件工程领域顶会ICSE 2024(CCF A类)正式录用。文章详细内容即将公开,敬请关注

640 (2).png

图2 冗余依赖的可视化检测结果

研究是华为云PaaS技术创新LAB在软件供应链领域的又一项重要的产学研合作实践,一方面助力高校创新型人才培养,为企业培养尖端人才;另一方面立足自主可控的软件供应链可信保障技术研究,为保障软件质量迈出了重要一步

原文地址:https://blog.csdn.net/hwxiaozhi/article/details/134733381

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_29272.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注