exe 文件下载到文件共享可能存在的安全风险

安迪迈斯纳

我编写了一个批处理脚本来从文件共享安装 nuget。该脚本在提升的 powershell 提示中调用以下脚本:

# Create dir
New-Item -ItemType Directory -Force -Path "C:\Program Files\Nuget"
# Download nuget
Invoke-WebRequest -O "C:\Program Files\Nuget\nuget.exe" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe 
# Append to path
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\Nuget", "Machine")

我可能会引入任何安全风险吗?有人可以征服服务器并将任何其他 .exe 放在那里。有什么方法可以提高安全性,以便脚本不会意外分发恶意软件。我可能可以使用校验和,但这是否足够?

NotTheDr01ds

偏执是好的。但是你应该权衡这里的风险因素,并用它来判断你应该投入多少努力来防御这种理论上的攻击。

第 1 点 - nuget.org 是 Microsoft 拥有和控制的网站(请参阅whois 记录)。可以妥协吗?当然,可能是。但在大多数情况下,Microsoft 对其网站的安全性相当高。我的意思是,这就是你下载 Windows、你的补丁等的同一家公司。

第 2 点——您的脚本只是下载每天(实际上)成千上万的其他人正在(通过其他方式)下载的同一个文件。如果 nuget.org以这种方式受到损害,那么将有更多的人获得该文件而不是通过您的脚本。这真的,真的,真的不会是因为你的脚本缺乏安全性。

第 3 点——谁能说它尚未受到损害?同样,这不太可能,但即使您要下载它,计算校验和,然后根据未来的下载进行检查,您仍然必须相信现在的内容是安全的。但同样,我会认为这种低风险。除了适当的安全性之外,很可能有人会在不久之后以某种方式注意到受损的 nuget。

假设它被发布在一个单独的站点上,校验和或签名将是很好的。但是 MS 似乎没有为nuget.exe我能看到的版本提供校验和/哈希奇怪的是,我的理解是nuget支持检查下载的包的哈希值,但是我无法首先确认 exe。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章