如何在Python应用程序中查找安全漏洞?
经过对当前情况的深入调查,世界增长和发展的速度是相当难以想象的,而技术的作用是不可忽视的。
只要技术不断发展,我们就不会面临像人工智能这样的新发明和发现的短缺。但这种变化给我们作为开发者需要破解的工具和媒介带来了很多不确定性。在这些情况中,python作为一种编程语言,仍然屹立不倒。
根据第五次python开发者调查的结果,84%的开发者认为python是他们的主要语言,16%的开发者认为它是他们的次要语言!这个数字反映了python在开发者、组织、创业公司和年轻专业人士中的受欢迎程度。
但是!这并不让我放松,因为受欢迎也带来了许多风险和威胁。我希望开发者们知道python核心是安全的,但第三方模块可能不是。因此,为了解决这个问题,您需要一个安全扫描工具来查找漏洞。
有许多综合性的在线安全扫描工具可以测试在线威胁,但它们可能无法检测到特定于python和node.js等平台的弱点。
让我们深入了解一下在python应用程序中发现安全风险和漏洞的最佳扫描工具列表。
pyt(python taint)
一种开源的静态分析工具,用于检测python web应用程序中的命令注入、跨站脚本、sql注入、目录遍历攻击等。
pyt基于理论基础,如果您想做出贡献,可以加入他们的slack组。
bandit
bandit是一个openstack的倡议,用于在python代码中查找常见的安全风险。它处理每个文件以构建ast并生成报告。
您可以使用pip进行安装。
bandit的使用可以自定义。例如,默认情况下针对所有配置文件进行测试,但是如果您只想检查shellinjection,可以尝试以下方法。
bandit samples/*.py -p shellinjection
您还可以根据严重程度(低、中、高)进行报告。
safety
safety是一个python依赖项检查器,可以扫描本地虚拟环境、要求文件和stdin输入以查找安全问题。
从构建流水线到生产系统,safety cli可以在各种情况下使用。相信我!如果您的python应用程序存在漏洞或安全威胁,safety cli将轻松检测出来。它还会确保您对扫描有完整的详细信息,因此它会生成关于现有威胁和漏洞的报告,以简化您的工作。
pyup
使用pyup的python依赖项安全性,使您的python应用程序始终保持最新、符合规范和安全。它可以帮助您保护代码免受可能破坏python代码的数千个安全漏洞。
与手动更新和跟踪每个依赖项的时间相比,您可以使用pyup来自动化任务。它会自动修复新的漏洞,并使您远离已知的漏洞,增强您对代码的信心。
此外,pyup维护着一个漏洞数据库,迄今为止已记录了472,750个python依赖项。它的扫描器是为解决复杂环境和扫描过时和不安全要求而构建的。
这些扫描器还可以根据您的需求进行高度配置,它们的安全ci会在代码进入生产之前捕获漏洞。在ci工作流程中集成命令行工具。
以249美元/月的价格获取无限制的公共和私有存储库,并获得依赖项许可证、cvss、api密钥和安全ci。
snyk
在这场激动人心的争斗中,我想介绍一下snyk。snyk开源提供软件配置分析(sca)。snyk让您有能力找到有漏洞的依赖项,在合并之前扫描拉取请求,防止新的漏洞产生,并且您可以针对现有的漏洞和问题测试您的生产环境。
这些特性让snyk成为开发者的一个绝佳选择。您可以进行扫描、监控、修复和自动化。您可以使用广泛的应用上下文来优先处理可达、部署或公开暴露的开源问题。我列出了一些特性,以便让您对snyk有更清晰的了解,
– snyk可以自动修复漏洞。
– snyk通过自动监控您部署的python代码来保证您的精神安宁。
– 持续评估遵守法规和内部安全政策。
– snyk专为安全工程师和grc团队打造。
总的来说,我认为snyk是我们列表中的正确选择,开发人员应该尝试一下snyk来查找其应用程序中的安全漏洞。
soos.io
soos sca自称为低成本的一站式sca解决方案。相信我,这个说法不是虚假的!以下是帮助soos sca进入此列表的一些重要特性,
– 最快的实施速度。
– 易于使用的实用用户体验。
– 易于设置并开始扫描漏洞。
– 表现出色。
所有这些价格实惠的选择表明,当您在python应用程序中查找安全漏洞时,此工具将满足任何开发人员的期望。它允许您随时进行无限次扫描。此功能使开发人员能够达到目标。
吸引我注意的另一个特性是其排名算法;我发现漏洞按严重性、影响和可利用性进行排名。
最吸引人的特性之一,使我对这个工具着迷,就是它的丰富仪表板。在获取信息方面,它非常出色,对您来说也非常方便。总的来说,它是一个完善的套件,可消除python应用程序周围的威胁。
pyre
pyre是一个很好的工具,用于查找或检测安全漏洞。我之所以称它为完美的工具,是因为它有能力分析包含数百万行代码的代码库。
它对您的效率有一定的作用,因为它可以在开发人员编写代码的同时提供即时反馈和报告。pyre 包括 pysa,它是一个基于 pyre 构建的以安全为重点的静态分析工具。pysa 分析 python 应用程序中的数据流。
初始配置包括一些简单的步骤。首先,您需要设置虚拟环境,在虚拟环境中安装 pyre 和 sapp,最后初始化 pysa 和 sapp。
别忘了!sapp 对于执行分析至关重要。您可以使用以下命令快速设置适当的环境来运行 pysa 和 sapp:
(pysa) $ pyre init-pysa
此命令将配置您的存储库以运行 pysa。然后,使用以下命令运行 pysa 和 sapp:
(pysa) $ pyre analyze --no-verify --save-results-to ./pysa-runs
(pysa) $ sapp analyze ./pysa-runs/taint-output.json
总体而言,这个工具将极大地帮助您;它以其对 python 的积极倾向获得了一个位置。因此,请毫不犹豫地前进,选择 pyre!
trivy
我向您介绍一个杰出、多功能且全面的安全扫描器“trivy”。更令人惊讶的是,它对 python 有着特殊的喜爱,这使得 trivy 能够进入列表。
trivy 可以扫描容器镜像、文件系统、git 仓库、aws 等。trivy 还支持其他流行的编程语言,如 ruby、node.js、java 等,它还可以支持操作系统。
关于安装有几个选项;下面列出了一些流行的选项供您选择:
brew install trivy
docker run aquasec/trivy
- 您还可以从 aquasecurity 的主页下载二进制文件。
最后,我想强调 trivy 的一个重要方面;它可以与许多流行的平台和应用程序集成,例如 kubernetes operator 和 vs code plugin。
最后的话
总结起来,您肯定对我的个人偏好很感兴趣。我相信有几个实用的工具可以找出 python 应用程序中的漏洞。列表中提到的所有工具都有各自的优势。准确地说,它们都是很好的选择。
每个工具都带来了独特的优势,以增强您的 python 代码的安全性。我建议您在选择时考虑您的具体需求和偏好。
接下来,查看构建小型到企业应用程序的最佳 python 框架。