python - 如何在 python 代码中自动识别加密最佳实践
问题描述
所以我被要求提出一些自动化的可能性来根据不同的建议(主要是德国 BSI)检查 python 代码(由开发人员提供)是否遵守加密最佳实践。大多数情况下,这归结为寻找例如 MD5、SHA1 或 RSA 中的密钥长度等的用法。
我可以用正则表达式以某种方式做到这一点,但这似乎有点麻烦,而且我不知道所有必要的库以及函数调用的样子(创建正则表达式)。我确实知道 bandit sast 工具具有查找 MD5/SHA1/... 的规则,但这些还不够(尽管是一个好的开始)。
识别这种不安全功能的使用的好方法是什么?只是正则表达式,写我自己的强盗规则还是其他的东西?
谢谢
解决方案
您可以创建一个包含流行加密库的小型数据库或字典(“库名称”:[method1,method2]),并从这些库中创建归因于不安全用例的方法。
然后,您将首先搜索该库(密钥)是否实际上被项目使用,以及它是否也使用不安全的方法(值)。您不需要使用正则表达式,只需考虑如何在文本文件中搜索单个字符串。但是,如果您想要效率,可能会推荐它:) 并且开发一些有趣的东西,这只是我的想法。
但是,您可以使用 Sonarqube 并将其集成到您的构建管道中,它支持 python,而且我知道它会直接检查 C# 项目中的弱加密使用情况,它是免费且完全自动化的,因此非常适合小型/大型团队:)
祝你好运朋友!
推荐阅读
- r - 遍历列以对每行的前 2 个数字求和
- swift - 如何在文本视图中停止计时器?
- android - 如何在共享首选项上保存 RecyclerView 的 spanCount?
- javascript - 在javascript中追加将div转换为文本
- android - Glide在RecyclerView的条件句中乱码
- flutter - 颤振:[错误:颤振/lib/ui/ui_dart_state.cc(166)]未处理的异常
- c++ - PostgreSQL 无法访问
- php - 无法在 php 中创建具有相同项目名称的多个项目的数组
- xaml - 如何检测输入来自 UWP 中 TextBox 中的 IME?
- javascript - 为什么即使函数是异步的,这个函数调用也会抛出“await 仅在异步函数中有效”语法错误?