2017-09-18 31 views
1

近日传来了一些关于一些恶意库是被上传到Python包索引(PyPI中),请参阅:验证的PyPI的Python的完整性工具包

  1. Malicious libraries on PyPI
  2. Malicious modules found into official Python repository(此链接包含恶意软件包列表)
  3. Developers using malicious Python Modules

我并不想forwar d这些消息,但我试图阻止我和其他队友确定PyPI的包是否未被外部变更。

问题:

  1. 我应该使用什么安全检查一次,我从PyPI将下载的程序包? MD5或任何额外的步骤?
  2. MD5签名是否足以验证Python包的完整性?
+0

域名抢注与散列无关。您必须验证它是否是您使用的上游软件包。 –

+0

另一个问题:一旦我下载一个软件包并检查它没有任何域名仿冒,那么MD5签名是否足以检查这个软件包的完整性? –

+0

pip应该验证MD5签名,并且很难(如果可能)碰撞它。编辑:新的PyPI前端(pypi.io)已迁移到SHA256。 –

回答

1

首先,文章介绍了注册近似域名,这是由开发者名字盲目安装包不检查,如果它是正确的上游包装造成的危险。您可以通过转到作者的GitHub存储库并正确复制安装说明来避免这种情况。

除此之外,软件包可能被篡改,但不太可能。由于PyPI文件是通过HTTPS传输的,因此从服务器获取散列并进行验证没有多大意义。 (如果作者的帐户或PyPI服务器遭到黑客入侵,则哈希不会阻止您安装恶意软件包。)

如果您需要针对服务器损害的额外安全措施,请使用固定版本/散列。有关详细信息,请参阅document