将Gosec放入您的管道中以发现源代码安全性问题

由于许多原因,Golang在编程语言的流行方面一直保持上升趋势。 出色的库,意味着更多的用户,这意味着更多的库和更多的用户-像我这样更多容易出错的用户。

犯错是人类,要宽恕神圣–亚历山大·波普

谁能一次或两次说,他们没有不小心签入了一些硬编码的密码,个人访问令牌或使用了不安全的随机数种子。 我知道我有! 好吧,我可以告诉你,尽管亚历山大·波普(Alexander Pope)说“要原谅上帝”,但系统管理员和代码审查员却没有这么友好地认为。

源代码安全性问题

不用担心,存在一个名为gosec的开源工具,该工具可以帮助您发现Go源代码中的问题。 您可以从台式机/编辑器运行此程序,也可以(可能)将其作为管道的一部分(如果发生“不可原谅”的情况)。
Gosec的工作方式是将所有源代码加载到AST中,并应用一组内置规则来查找常见错误,例如代码中的机密(有点巧妙:它寻找通常代表机密的高熵字符串),SQL字符串程序集(注入攻击的来源)等等。 如果得到误报,您可以随时添加一条注释,告诉它跳过它(也许正确的字符串correcthorsebatterystaple89874328^&^&*^FDHJKHKJFDHJKS实际上是合法的事情,绝不是秘密)。

在正确的时间中断管道

源代码安全性问题

一旦gosec进入您的管道,一旦违反任何规则,您的构建将在造成太多伤害之前失败。 看起来像这样:
(您可以使用多种格式举报违规行为-这只是默认设置,对我来说似乎不错)。

设定

源代码安全性问题
源代码安全性问题
源代码安全性问题

当然,在CloudBees CodeShip中使用它非常容易。 CloudBees CodeShip具有“开箱即用”的一些不错的Golang支持,因此首先创建一个新项目:
接下来,配置您的构建步骤,您需要执行的操作: 然后添加gosec作为测试配置的一部分:

curl -sfL https://raw.githubusercontent.com/securego/gosec/master/install.sh | sh -s -- -b $GOPATH/bin latest
gosec ${HOME}/src/github.com/michaelneale/mikerowecode.com

这将安装它的最新版本(不错的主意),然后应用全套规则。 您可以在命令行中排除特定规则(或者您可以在注释中注释代码,以根据需要忽略误报的内容)。

Gosec可以处理源代码和AST,因此在运行测试以获取较早的反馈之前这样做很有意义(即使在构建步骤之前,您也可以这样做-尽管它们可能会修改源代码或引入更多内容,但取决于您真)。

就是这样。 您的日子可能不会那么尴尬。

额外资源

翻译自: https://www.javacodegeeks.com/2018/12/gosec-pipeline-spot-source-code-problems.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值