使用 Checkmarx 将 Sec 添加到您的 DevOps 管道
在上一篇文章中,我解释了在组织内增加更多安全性的快速机会。
在这篇文章中,我将介绍将静态应用程序安全测试软件添加到您的管道以扫描您的代码以查找安全漏洞的所有过程。
该软件是Checkmarx。
1\。 Checkmarx 是什么? 🤔
Checkmarx 是一个应用程序安全测试和静态代码分析解决方案。
它扫描源代码,识别其中的安全漏洞,并通过示例代码提供补救措施。
特点包括:
-
静态应用安全测试
-
依赖扫描
-
交互式应用程序安全测试
-
运行时应用程序安全测试。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--kOWOeT0H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.checkmarx. com/wp-content/uploads/2018/04/CxOSA-diagram-2.png)
软件开发生命周期中的Checkmarx
与其他类似的安全工具相比,Checkmarx 灵活,与其他流行的 CI/CD 工具集成,并支持广泛的编程语言。
另一方面,作为企业级软件,它并不便宜。 💸
2\。流程是什么? 🤔
要充分利用 Checkmarx 之类的软件,您必须在 CI/CD 管道中实现自动化。
关键是每次发布某些内容(主要版本或更频繁的版本)时检查所有存储库的安全性。
尽管如此,请记住,此分析将需要您的团队对已识别的漏洞进行分类并纠正它们。
因此,就您的团队能力而言,请以可持续的速度进行。
2.1。在您的计算机上本地分析代码库💻
1.下载存储库(或存储库)
- 使用 Checkmarx 命令行界面开始扫描
3.在Checkmarx界面查看扫描结果
2.2.分析 CI/CD 管道中的代码库🖥️
我假设您在 CI/CD 管道上使用 Jenkins。
-
Jenkins上的一个钩子启动一个脚本
-
该脚本下载存储库
-
该脚本开始对下载的存储库进行扫描
-
如果扫描期间出现问题,该脚本会发出警报(通过返回码)
-
Checkmarx 扫描结果警报
您可以使用该工具在您的机器上批量克隆存储库,
肖斯塔/DLBitbucketRepos
在Bitbucket上下载所有可以访问的存储库,轻松静态分析其安全性和数据泄露。
DLBitbucketRepos
下载您可以在 Bitbucket 上访问的所有存储库
该程序用于一次克隆您在 Bitbucket 上的所有存储库。例如,如果您想从安全角度静态分析代码,这将非常有用。
您可以查找证书文件、泄露的信息(如密码、登录名、密钥等)。
更重要的是,您可以查看 git 历史记录,如果某些信息在过去泄露,即使它们目前在代码中不可用。
在 GitHub 上查看
3\。如何使用 Checkmarx 命令行界面? 👨u200d💻
从您的机器开始扫描非常容易。
通过以下链接下载 Checkmarx CLI 插件:
-
插件-新
-
GitHub-CxRepositories/CLI
将 Checkmarx CLI Plugin(“CxConsolePlugin”)安装到您认为合适的任何文件夹中。
然后,要开始扫描,您只需触发“CxConsole Plugin”文件夹中的runCxConsole.sh
脚本。
CxConsolePlugin 用法:
runCxConsole.sh Scan -Projectname "SP/Cx/Engine/AST/SecurityScanTest" -CxServer https://securecode.itn.intraorange/ -cxuser $checkmarxLogin -cxpassword $checkmarxAppPassword -locationtype GIT -locationprivatekey $locationPrivateKey -locationurl $locationUrl locationbranch $locationBranch -preset All -comment 'Scan de test' -reportpdf ~/SecurityScanTest.pdf
进入全屏模式 退出全屏模式
3.1。良好的安全实践👍
正如您在上面的命令中看到的,有时您必须填写您的 Checkmarx 登录名和密码(-cxuser
和-cxpassword
)。
永远不要在终端中以明文形式写入密码是一种很好的安全做法。
仅仅因为,任何人(或任何恶意软件)都可以在您的终端上查看您的命令行历史记录,然后以纯文本形式提供您的密码。
边做边学。 😉
尝试在终端上单击
ctrl+r
,然后查找git clone
。
或者你可以试试
history | grep "git clone"
(_ 因为你经常通过 git 命令泄露你的密码)。
这就是为什么您绝不能在您的终端上输入您的密码,因为任何人都可以访问它。
为了避免在终端历史记录中泄露密码,我开发了一个简短的脚本来使用 Checkmarx 的 CLI 插件开始扫描。
您可以在以下 Github 存储库中找到它(_随意分叉和改进它_😉)。
Shosta/CheckmarxAutomation
如何自动化 Checkmarx 扫描
CheckmarxAutomation
如何自动化 Checkmarx 扫描
在 GitHub 上查看
脚本用法:
./CheckmarxAutomation.sh -h
usage: CheckmarxAutomation
[[-u|--cxuser] <username>] Your Login on Checkmarx
[-h|--help]
进入全屏模式 退出全屏模式
使用它 :
./CheckmarxAutomation.sh -u remi
Please, Fill in your Checkmarx Password :
进入全屏模式 退出全屏模式
这样一来,您的密码就不会在您的终端历史记录中泄露。 👍🏼
3.2.问题解决方法⛔
1\。未找到 SSH 私钥
您正在使用 SSH 连接到您的存储库,但 Checkmarx 找不到私钥,如下所示:
[2019-09-25 09:42:00,000 FATAL] Command parameters are invalid: Private key file is not found in: ~/.ssh/PrivateKey
进入全屏模式 退出全屏模式
如果您使用 ssh 密钥登录到您的 Git 存储库(并且您应该 🔐),您必须在-locationprivatekey
参数上使用绝对路径来描述它。
2\。 Checkmarx 服务器不可用
无法从您的机器访问 Checkmarx 服务器,如下所示:
[2019-09-25 09:42:00,000 ERROR] Failed to validate server connectivity: Cx web service is not available at: https://securecode.mysersver/
进入全屏模式 退出全屏模式
要解决此问题,您必须确保您的代理允许 Checkmarx 并使用 Checkmarx 服务器的 IP 地址。
如果您认为添加这种解决方案是您正在考虑的事情,请告诉我。_
如果您已经在使用它,请告诉我您是否觉得它有用,以及它是否提高了您的应用程序的安全级别。_
视频由Wild & Secure制作,您的咨询公司涉及所有安全和房地产。
如果您想每周收到有关安全的优质内容,请在我们的网站](https://wildnsecure.com/contact)上订阅我们的时事通讯[。
更多推荐
所有评论(0)