如何确保开源项目和项目文件的安全并受到恶意软件的保护?

问题描述

这个问题看似愚蠢,但我真的很想知道开放源代码项目是否会感染恶意软件?我想提一提的是,我并不是在问源代码中是否包含恶意代码,而是说项目文件是否可以被恶意软件感染?

最近,我已经阅读了几份有关源文件被恶意软件感染的报告,我再也没有在谈论该文件包含任何恶意代码。 Github Security实验室还有另一份关于名为Octopus Scanner的恶意软件(或漏洞)的报告,该恶意软件针对NetBeans项目并感染了它们。

我是计算机科学专业的学生,​​并且是GIMP,Godot等几个开源项目的粉丝,我真的很担心这种安全性。而且,如何确保我日常使用的开源程序或我在项目中合并的开源库不存在此类安全问题?而且,如果将来我有任何开源项目,那么在其他人都对该项目做出贡献的情况下,如何确保该项目的安全性?

谢谢您的回答。

解决方法

这是一个很大的问题,这里有很多有效的答案。首先,我想指出开放源代码可以保护系统中固有的恶意代码,因为从理论上讲,许多人正在审查在更大,更广泛使用的项目上编写的代码,并且根据莱纳斯定律(“有足够的眼球,所有漏洞都很浅”),所有攻击媒介和漏洞都将被发现并缓解;但是,对此有一个明显的警告:那些审稿人必须既有能力又要高度警惕,以获取这种总覆盖率,但这并不总是切实可行的。

关于感染项目文件,它们确实可以被感染。如果您阅读此write up,他们会说项目文件已被感染,并且确实是章鱼扫描仪主要攻击媒介的一部分。

关于如何保护自己的项目,第一个建议是保持警惕并为您的开发设置适当的保护(即受保护的开发/主要分支,仅允许特定人员推动和合并等)。根据您拥有的资源,您还可以通过Github Actions或等效的方式设置部署服务器,以用于扫描项目的病毒源或其他可能被认为具有危险性的模式的任何源代码控制系统Clamav之类的工具。尽管这个特定问题并不特别流行,但在维护安全的部署部署供应链上进行大量投资可能远远超过其应有的价值,而简单的警惕,一致的代码和项目审查可能就足够了。

tl;博士 为允许执行任务的人员设置适当的分支保护和权限,并确保对主要开发人员和维护人员的源代码和项目文件进行一致的审核。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...