我如何在python代码中自动识别加密最佳实践

pin*_*nas 6 python security cryptography

因此,我被要求提出一些自动化的可能性,以根据不同的建议(主要是德国BSI)检查python代码(由开发人员提供)是否遵守加密最佳实践。在大多数情况下,这归结为寻找MD5,SHA1或RSA等密钥长度的用法。

我可以使用正则表达式进行某种方式,但这似乎有点麻烦,而且我不知道所有必需的库以及函数调用的外观(创建正则表达式)。我确实知道强盗打击工具具有找到MD5 / SHA1 / ...的规则,但这些规则还不够(尽管是一个很好的开始)。

确定这种不安全功能的使用的良好可能性是什么?只是Regex,写我自己的强盗规则还是其他东西?

谢谢

Mic*_*ski 2

首先我想重新表述一下。您需要静态分析工具来执行一些自定义检查,例如安全问题。

pylint我将从它的扩展开始。github上有示例检查器。这里的优点是,您可以将其合并到 CI/CD 工具中,而无需做太多工作。这里的问题可能是链接器可以被告知不要将某些事情视为问题。一方面,这是完美的,因为 md5 可以在某些区域使用,但这可能会导致泄漏......这样看 - 您所能做的就是通知。

其他选项是能够处理 python 代码的安全检查器。我在我的服务器上使用lynis。他们使用普通的 Linux shell。在实践中,你可以通过greppython 代码来查看是否存在可疑之处。我建议去那里检查他们在寻找什么以及如何完成。如果不走那条路——也许是为了灵感。这里还应该解决误报问题。所以问题是你是否希望自己处理它,或者你真的希望开发人员......

我会从一些检查开始 - 比如 md5/sha1,然后扩展。确保清楚检查了什么以及出了什么问题。这看起来真的很棘手,但我会尝试一下。也许开源扩展到pylint, on github? 这样你就能得到别人的支持!如果是这样 - 请告诉我:)