长亭百川云 - 文章详情

用 SAST 做好代码安全!附免费开源工具!

imBobby

88

2024-06-17

观众老爷们,帮忙点点关注、点点赞、点点在看,抱拳了!

SAST 是什么

这里就简单说一下咯,SAST(Static Application Security Testing,静态应用程序安全测试)是通过在不运行代码的情况下分析源代码、字节码或者二进制代码等形式,来在我们写代码的早期发现并修复安全问题。

一般来说哈,如果我们自己代码写的太烂,SAST 工具就能在代码扫描中发现 SQL 注入、XSS、缓冲区溢出等初级漏洞,而且我们还可以把 SAST 工具集成进 CI/CD 的 pipeline 中,git 提交之后跑一圈流水线,尽可能在不影响研发效率的前提下,多关注代码中的安全问题。

为什么 SAST 很重要

很人都觉得,SAST 扫出的安全问题太不高端,全是边边角角的初级安全漏洞,或者一些很明显的硬编码 or 注入漏洞,但问题就在这里了,大部分入侵者利用的都是这类简单漏洞,你要说有 APT 针对你们组织做渗透,或者入侵者拿 0day 来做坏事的概率嘛,有确实是有,但他们一定是先搞更大更强,能拿到更具价值资产的头部公司,很少针对中小型企业来做坏事。

另一方面呢,_SAST 工具不仅能够预先发现这些很基础很基础的安全问题,也还能帮助开发团队培养安全意识和安全编码的习惯,从而提升整体代码质量。_我的看法是,对于中小型企业来说,遭遇高级攻击的概率较低,而防范常见漏洞、硬编码等基础安全问题是最重要的,特别是做 SAST 可以提升整体安全研发意识的这一点很有用。 

常用开源免费工具

SonarQube 这个工具用的最多,分社区版和付费版,项目如下:

https://github.com/SonarSource/sonarqube

我上家公司用的就是这东西,由于研发的代码基本都是 Java,针对测试覆盖率我们选用 Jacoco 插件,再用 dependency check 做 SCA,又集成了 SpotBugs 查字节码的安全问题和代码质量。

还有 Zap,事实上 Zap 主要是做 DAST 的,但是 Zap 也能针对 JS 代码做扫描,也就是 SAST。

https://www.zaproxy.org/

Bandit 这工具也还可以,是针对 Python 做 SAST 的工具,集成到 CI/CD 也很简单,但大家有个共识,就是我既然不用 Python 做啥大项目,只做一些 DevOps 脚本那没必要上什么 SAST 吧,我认为从整体安全角度看,还是要上的:

https://github.com/PyCQA/bandit

还有 brakeman,是针对 Ruby on Rails 做的 SAST 工具:

https://github.com/presidentbeef/brakeman

ESLint 是专注于 JavaScript 和 TypeScript 的 SAST:

https://github.com/eslint/eslint

Security Code Scan 是一个针对 .NET 代码做的 SAST:

https://github.com/security-code-scan/security-code-scan

C++check,现在改名叫 Cppcheck 了,这东西专门用来做 C 和 C++ 的 SAST:

https://github.com/danmar/cppcheck

不过这个项目蛮有意思的,我们可以不给他捐钱,捐一个 CPU 核心就行,把项目克隆下来之后:

cd cppcheck/
virtualenv .env
.env/bin/pip install -r tools/donate-cpu-requirements.txt
.env/bin/python tools/donate-cpu.py

这个脚本会分析 Debian 源代码并将结果上传到 cppcheck 服务器。

后记

本文主要介绍了 SAST 的重要性和常用的开源免费工具,尽管很多人都认为 SAST 发现的漏洞不够高端,但这些常见漏洞往往是攻击者最容易利用的切入点,或者说是攻击面吧。

在实际应用中,SAST 工具不仅能帮助发现基础的安全问题,还能提升开发团队的安全意识,培养良好的安全编码习惯。我也在上面列举了一些常用的开源免费 SAST 工具,如 SonarQube、Zap、Bandit、Brakeman、ESLint、Security Code Scan 和 Cppcheck。

通过对这些工具的有效利用,我们可以在CICD和部署的过程中自动化进行安全测试,对漏洞早发现早治疗,从而才能构建更安全可靠的软件系统。 

点点赞 点点关注 点点文末广告 抱拳了家人们

创作不易

关注一下

帮忙点点文末广告

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2