你要么自己做,要么相信别人
与生活中的大多数事情一样,你必须要么自己做,要么相信别人。这里的信任既包括没有恶意,又包括足够的能力来正确执行任务。
例如,您可以自己报税或委托税务顾问来报税(他们不仅不应该试图欺骗您,而且还知道如何报税!)。
如果您是一家公司,那么您自己的工作实际上将由您的一名或多名员工执行,而这些员工又需要被信任。
您信任的第三方也不必是一个人。它可能是Microsoft Windows 开发团队,也可能是Wordpress 核心开发人员。
在源代码安全方面,您希望专家不仅善意,而且知识渊博,能够以安全的方式对程序进行编码/发现可能存在的任何潜在安全问题。
(加上一些额外的边界系统,当作为一个整体对待时,例如,您希望他们的代码在将其上传到存储库时不会受到损害,或者您员工的电子邮件说明结果被您网络内的恶意黑客替换说应用程序很好)
您将需要评估您的选择,评估与每个选项相关的风险,并选择最适合您的兴趣(和预算!)的路径。
如果我要检查使用 Wordpress 的博客的源代码的安全性,我通常会相信原始代码是好的1¹,并检查正式版本和使用的版本之间的差异。如果该网站被入侵,那将更容易找到。
¹如果使用过时的版本,显然检查更高版本的变更日志。
但是,如果它是由所有者的侄子开发的,我预计会在那里发现很多漏洞,并建议对所有内容进行彻底检查。
在您的情况下,您应该评估开发该库的等价物的风险和成本(考虑到您的内部产品中出现问题的可能性也不为零,而且它取决于 - 除其他外 - 的质量相关人员)与审计和使用该库的风险和成本。
现在,可能存在简化审计的衰减因素。例如,如果不受信任的代码可以在隔离的虚拟机中运行,那可能就足以不需要进一步的审计(即使在这里,您也信任虚拟机实现)。或者,审计以 root 身份运行的程序部分可能被认为是足够的。
对于审核库,代码分析器可以帮助指出有问题的部分(如所指出的那样),但为了认为它是干净的,我实际上会让某人阅读并理解代码,即使是表面上的。
例如,删除任意文件的能力本身并不是恶意的。您需要了解该程序才能知道它是否有意义。
同样,这是您正在做的事情的威胁和风险的问题。如果您只关心库泄露数据,那么在防火墙处过滤连接就足够了。如果您担心库会删除重要文件(出于某种奇怪的原因,您不能拒绝此类权限),您可以简单地滚动一堆只进行数学计算的代码。如果该库计算发射火箭的参数……那么,您最好确保这些计算也是正确的!