因此,我被要求提出一些自动化的可能性,以根据不同的建议(主要是德国BSI)检查python代码(由开发人员提供)是否遵循加密最佳实践。在大多数情况下,这归结为寻找诸如MD5,SHA1或RSA等密钥长度的用法。
我可以用正则表达式来做到这一点,但这似乎有点麻烦,而且我不知道所有必需的库以及函数调用的外观(创建正则表达式)。我确实知道强盗打击工具具有找到MD5 / SHA1 / ...的规则,但这些规则还不够(尽管是一个很好的开始)。
识别这种不安全功能的用法的可能性很大?只是Regex,写我自己的强盗规则还是其他东西?
Thx
答案 0 :(得分:2)
您可以创建一个小型数据库或词典(流行的加密库的“库名”:[method1,method2]),然后从那些库中将这些方法归因于不安全的用例。
然后,您将首先搜索以查看该库(密钥)是否正被该项目实际使用,以及是否还使用了不安全的方法(值)。您无需使用正则表达式,只需考虑如何在文本文件中搜索单个字符串。但是,如果您想提高效率,可以建议:)和一些有趣的事情发展,这只是我的想法。
但是,您可以使用Sonarqube并将其集成到构建管道中,它支持python,而且我知道第一手检查C#项目中的弱加密使用情况,它是免费的且完全自动化,因此非常适合小型/大型团队:)< / p>
朋友好运!
答案 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,然后展开。确保清楚检查了什么,什么是错误的。这看起来确实很棘手,但我会尝试一下。也许是grep
上pylint
的开源扩展?这样,您就可以得到他人的支持!如果是这样,请告诉我:)