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

时间:2019-03-17 20:47:03

标签: python security cryptography

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

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

识别这种不安全功能的用法的可能性很大?只是Regex,写我自己的强盗规则还是其他东西?

Thx

2 个答案:

答案 0 :(得分:2)

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

然后,您将首先搜索以查看该库(密钥)是否正被该项目实际使用,以及是否还使用了不安全的方法(值)。您无需使用正则表达式,只需考虑如何在文本文件中搜索单个字符串。但是,如果您想提高效率,可以建议:)和一些有趣的事情发展,这只是我的想法。

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

https://www.sonarqube.org

朋友好运!

答案 1 :(得分:2)

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

我将以mounted() { this._chart = new Chart({ ... onClick: function(evt, array) { if (array.length != 0) { var position = array[0]._index; console.log(position); window.open("/#/user/history/detail/" + id[position], "_self"); //problem } else { console.log("You selected the background!"); } } }) } 及其extensions开始。 github中有一个示例检查器。这里的好处是,您无需太多工作即可将其合并到CI / CD工具中。这里的问题可能是可以通知链接程序不要将某些问题视为问题。一方面,这是完美的,因为md5可以在某些区域使用,但这可能会导致泄漏...从那种角度看-您所能做的就是告知。

其他选项是能够处理python代码的安全检查器。我在服务器上使用lynis。他们正在使用普通的Linux shell。在实践中,您可以pylint python代码来查看那里是否有鱼。我建议去那里,检查他们在寻找什么,以及如何完成。如果不是那样走的话-也许是出于启发。假阳性也应在这里解决。所以问题是,如果您想自己处理它,还是真的在开发人员上……

我将从一些检查开始-像md5 / sha1,然后展开。确保清楚检查了什么,什么是错误的。这看起来确实很棘手,但我会尝试一下。也许是greppylint的开源扩展?这样,您就可以得到他人的支持!如果是这样,请告诉我:)