首页 > 解决方案 > 如何在 python 代码中自动识别加密最佳实践

问题描述

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

我可以用正则表达式以某种方式做到这一点,但这似乎有点麻烦,而且我不知道所有必要的库以及函数调用的样子(创建正则表达式)。我确实知道 bandit sast 工具具有查找 MD5/SHA1/... 的规则,但这些还不够(尽管是一个好的开始)。

识别这种不安全功能的使用的好方法是什么?只是正则表达式,写我自己的强盗规则还是其他的东西?

谢谢

标签: pythonsecuritycryptography

解决方案


您可以创建一个包含流行加密库的小型数据库或字典(“库名称”:[method1,method2]),并从这些库中创建归因于不安全用例的方法。

然后,您将首先搜索该库(密钥)是否实际上被项目使用,以及它是否也使用不安全的方法(值)。您不需要使用正则表达式,只需考虑如何在文本文件中搜索单个字符串。但是,如果您想要效率,可能会推荐它:) 并且开发一些有趣的东西,这只是我的想法。

但是,您可以使用 Sonarqube 并将其集成到您的构建管道中,它支持 python,而且我知道它会直接检查 C# 项目中的弱加密使用情况,它是免费且完全自动化的,因此非常适合小型/大型团队:)

https://www.sonarqube.org

祝你好运朋友!


推荐阅读