如何使用简单的实用程序来查找程序代码中的漏洞

Graudit 支持多种编程语言,并允许您将代码库安全测试直接集成到开发过程中。

如何使用简单的实用程序来查找程序代码中的漏洞
来源: Unsplash (马库斯·斯皮斯克)

测试是软件开发生命周期的重要组成部分。 测试有很多种类型,每种类型都解决自己的问题。 今天我想谈谈如何发现代码中的安全问题。

显然,在软件开发的现代现实中,确保流程安全非常重要。 一度甚至引入了DevSecOps这一特殊术语。 该术语指的是旨在识别和消除应用程序中的漏洞的一系列过程。 有专门的开源解决方案用于按照标准检查漏洞 OWASP,描述了源代码中漏洞的不同类型和行为。

解决安全问题的方法有多种,例如静态应用程序安全测试(SAST)、动态应用程序安全测试(DAST)、交互式应用程序安全测试(IAST)、软件构成分析等。

静态应用程序安全测试可识别已编写代码中的错误。 这种方法不需要应用程序运行,这就是它被称为静态分析的原因。

我将重点关注静态代码分析,并使用一个简单的开源工具来演示实践中的一切。

为什么我选择开源工具进行静态代码安全分析

造成这种情况的原因有很多:首先,它是免费的,因为您使用的工具是由志同道合的社区开发的,他们希望帮助其他开发人员。 如果您有一个小型团队或初创公司,那么您有一个很好的机会通过使用开源软件来测试代码库的安全性来节省资金。 其次,您无需聘请单独的 DevSecOps 团队,从而进一步降低成本。

好的开源工具的创建总是考虑到对灵活性的更高要求。 因此,它们几乎可以在任何环境中使用,涵盖广泛的任务。 对于开发人员来说,将这些工具与他们在处理项目时已经构建的系统连接起来要容易得多。

但有时您所需要的功能可能在您选择的工具中不可用。 在这种情况下,您有机会分叉其代码并基于它开发您自己的工具以及您需要的功能。

由于在大多数情况下,开源软件的开发受到社区的积极影响,因此做出更改的决定非常迅速且中肯:开源项目的开发人员依赖于用户的反馈和建议以及他们的报告发现的错误和其他问题。

使用Graudit进行代码安全分析

您可以使用各种开源工具进行静态代码分析;没有适用于所有编程语言的通用工具。 其中一些的开发人员遵循 OWASP 建议并尝试覆盖尽可能多的语言。

这里我们将使用 格劳迪特,一个简单的命令行实用程序,可以让我们找到代码库中的漏洞。 它支持不同的语言,但它们的集合仍然有限。 Graudit 是基于 grep 实用程序开发的,该实用程序曾在 GNU 许可证下发布。

类似的静态代码分析工具有:Rough Auditing Tool for Security (RATS)、Securitycompass Web Application Analysis Tool (SWAAT)、faultfinder 等。 但 Graudit 非常灵活,并且技术要求极低。 但是,您可能会遇到 Graudit 无法解决的问题。 然后您可以在这里寻找其他选项 在这个清单中.

我们可以将该工具集成到特定项目中,或者将其提供给选定的用户,或者在我们的所有项目中同时使用。 这也是 Graudit 的灵活性发挥作用的地方。 因此,让我们首先克隆存储库:

$ git clone https://github.com/wireghoul/graudit

现在让我们为 Graudit 创建一个符号链接,以便以命令格式使用它

$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit

让我们向 .bashrc (或您正在使用的任何配置文件)添加一个别名:

#------ .bashrc ------
alias graudit="~/bin/graudit"

重启:

$ source ~/.bashrc # OR
$ exex $SHELL

我们来检查一下是否安装成功:

$ graudit -h

如果你看到类似的东西,那么一切都很好。

如何使用简单的实用程序来查找程序代码中的漏洞

我将测试我现有的项目之一。 在运行该工具之前,需要传递一个与我的项目编写语言相对应的数据库。 数据库位于 ~/gradit/signatures 文件夹中:

$ graudit -d ~/gradit/signatures/js.db

因此,我测试了项目中的两个 js 文件,Graudit 将有关我的代码中的漏洞的信息显示到控制台:

如何使用简单的实用程序来查找程序代码中的漏洞

如何使用简单的实用程序来查找程序代码中的漏洞

您可以尝试以相同的方式测试您的项目。 您可以看到不同编程语言的数据库列表 这里.

Graudit 的优点和缺点

Graudit 支持多种编程语言。 因此,它适合广泛的用户。 它可以与任何免费或付费类似产品充分竞争。 非常重要的是,项目仍在不断改进,社区不仅帮助了开发人员,还帮助了​​其他试图弄清楚该工具的用户。

这是一个方便的工具,但到目前为止,它不能总是准确地查明可疑代码的问题所在。 开发人员继续改进 Graudit。

但无论如何,在使用此类工具时注意代码中潜在的安全问题是很有用的。

开始…

在本文中,我仅介绍了查找漏洞的多种方法中的一种 - 静态应用程序安全测试。 进行静态代码分析很容易,但这只是开始。 要了解有关代码库安全性的更多信息,您需要将其他类型的测试集成到软件开发生命周期中。

由于宣传

可靠的VPS 正确选择关税计划将使您更少地因不愉快的问题而分心开发 - 一切都会顺利进行,不会出现故障,并且正常运行时间非常长!

如何使用简单的实用程序来查找程序代码中的漏洞

来源: habr.com

添加评论