Golnagは、非常にシンプルで書きやすく便利なライブラリがOSSで公開されています。日々の開発でも、公開されたパッケージを利用しコードを書くことが多いですが、利用しているパッケージに脆弱性があるさっとチェックする方法を紹介します。
Nancyとは
Nancyというツールを利用します。こちらは、下記のように自身のGoプロジェクトに依存する脆弱性をチェックするとあります。
Nancy is a tool to check for vulnerabilities in your Go dependencies, powered by Sonatype OSS Index. Nancy currently works for projects that use dep or go mod for dependencies.
公式ドキュメントは、こちらです。
インストール方法
macOSの場合
$ brew tap sonatype-nexus-community/tap
$ brew install nancy
実際に試す
CLIコマンド等の開発でよく利用するcobraといるライブラリに依存したコードを書いているプロジェクトで試してみます。go.modファイルには、下記のように依存関係が記載されています。
module appswingby.com/sample
go 1.16
require (
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/spf13/cobra v1.1.3 // indirect
github.com/spf13/viper v1.8.0 // indirect
)
実行してみます。
$ go list -m all | nancy go.sum
[1/19] github/fsnotify/fsnotify@1.4.9 No known vulnerabilities against package/version...
・・・省略・・・
[19/19] github/go-yaml/yaml@2.4.0 No known vulnerabilities against package/version...
Audited dependencies: 19, Vulnerable: 0
こんな形でシンプルなレポートが表示されます。
軽く触ってみた感じだとシンプルなので、導入しやすいかと思います。
GitHub ActionsでのNancy導入方法もこちらに記載がありますので、興味がある方は、こちらを参照ください。