yamory Blog

Go言語のサポートを始めました!

こんにちは、yamoryでプロダクトマネージャーをしている今井こと@まいまいです。
今回は私がプロダクトマネージャーとして、Go言語をサポートするまでの経緯や想いについてお話したいと思います。

yamoryが目指す世界

yamoryは「安心してテクノロジーを活用できる世界を実現する」というミッションを掲げて開発している脆弱性自動管理ツールです。可能な限り多くのエンジニアにご利用頂き、「すべてのエンジニアにとって、セキュリティを当たり前にする」というビジョンを実現するために活動しています。
エンジニアにとってセキュリティが煩わしいものではなく、日常の中で当たり前のように処理されるような、いわゆるDevSecOpsの世界観を本気で実現したい。そんなプロダクトです。

プロダクトマネージャーとして、私自身が掲げるビジョンは「人の幸せ」です。エンジニアとして十数年を過ごした経験から、日々発生する脆弱性対応の困難さは身に染みており、yamoryによって、セキュリティ関連に費やさざるを得ない多大な工数を少しでも削減することで、エンジニアの方々がより技術的な側面に注力でき、より彼らの幸せに近づく世界を目指しています。

Go言語への対応について

今回リリースさせていただきましたGo言語への対応も、ビジョン実現のための大きな一歩です。Go言語はStackOverflowの調査にもあります通り、ここ数年で大変な人気を集めている言語で、エンジニアのみなさんも注目されていることかと思います。このような先進的な技術を利用される方々はセキュリティについての関心も高い方が多くいらっしゃるはず。そのような方々と共にyamoryを育てていくことができれば、きっと今よりも素晴らしい世界に近づける。私はそう信じています。

また、既に他の言語でyamoryをご利用のお客様からも多くのご要望を頂いており、今後新たに生まれるプロジェクトはどんどんGo言語に置き換わっていく未来が垣間見えています。そのようなプロジェクトで初めからyamoryのようなプロダクトを導入しておくことで、プロジェクトが常にセキュアな状態を維持でき、開発上のセキュリティ負債を少ない状態に保つことが可能となるでしょう。正にDevSecOpsを共に実現していくことができるのです。

Go言語をご利用の方は、是非一度yamoryをご体験ください!

Go言語スキャンの方法

現在のGo言語スキャンはアルファ版となっており、以下のような仕様となっています。^1

Go Modules (go.sum) で管理された依存パッケージのスキャン・脆弱性検知が可能となります。
GitHub リポジトリスキャンでのみご利用できます。
^1: リリースノート

スキャン方法はとても簡単です。以下3つのステップを実施するだけで脆弱性を検出し、危険度に応じて対応優先順位を設定してくれます。

1.yamoryに登録する
2.Go言語が含まれるGitHubリポジトリを追加する
3.自動的に脆弱性の検出、対応優先順位が設定される

以下でそれぞれ詳細に見ていきましょう。

1. yamoryに登録する

https://yamory.io/ から、無料ではじめられます。
フリープランは小さなチームでの利用を想定しており、危険度の高いImmediateな脆弱性は1件ずつ確認できます。
複数のチームやプロジェクトを管理する方や、Slackへの通知などをお試しになりたい方はプロプランの30日トライアルをご利用ください。

site top

2. Go言語が含まれるGitHubリポジトリを追加する

登録が完了したら、「はじめる」ボタンをクリックして、早速スキャンを行ってみましょう。

start yamory

Go言語のスキャンは、現在GitHubスキャンにのみ対応しておりますので、「GitHubリポジトリから追加」を選択します。

scan from github

初回はGitHubとの連携を行って頂き、その後Go言語の含まれるリポジトリを選択してください。

works with github
select github repository

スキャンが完了するまでしばしお待ち頂くと、検出されたマニフェストファイルの一覧が表示されます。

list of manifest files

それぞれのマニフェストファイルをクリックしていただくと、そのマニフェストに含まれる依存ソフトウェア一覧が閲覧できます。

3. 自動的に脆弱性の検出、対応優先順位が設定される

スキャンが問題なく行われたら、検出された脆弱性を確認しましょう。
左のメニューから「脆弱性」を選択すると、先程スキャンしたリポジトリに含まれる脆弱性が一覧表示されます。

list of vulnerabilities

脆弱性の対応優先順位が Immediate / Delayed / Minor という分類で自動で設定されています。
クリックすると脆弱性の詳細(どのリポジトリ・マニフェストで発生したか、情報元など)が確認できます。

vulnerability details
vulnerability type

詳細ページにはどのバージョンに上げればこの脆弱性が修正されているか記載されています。時間を掛けたくないときはそのバージョンにアップデートしてテストを実行するだけです。

もちろん、詳細が知りたければリファレンスやPoCの情報なども掲載しています。ライブラリのアップデートには破壊的変更が含まれている場合も往々にしてありますので、事前に影響範囲を調べながら慎重に行うことも必要です。

さいごに

Go言語のスキャン精度としては、現状の対応範囲もライブラリ・脆弱性の検出精度も、まだまだ満足行くものではありません。

これからも積極的に改善を行って参りますが、是非皆様の声を聴き、皆様と一緒にyamoryを育て、すべてのエンジニアが安心して開発できる世界を作っていきたいと考えています。

Go言語はもちろんyamoryに関するあらゆる点で、皆様の忌憚なきフィードバックを、心よりお待ち申し上げております!

yamoryに関するお問い合わせ

オープンソース脆弱性管理ツール yamory

  • 利用中のOSSを抽出し
    脆弱性を自動スキャン
  • 脆弱性への対応優先度を自動で分類
  • 組織規模に合わせたプランを選択可能

フリー

¥0

個人向け

1件ずつ Immediate な脆弱性を管理

1チームまでの開発チーム作成

yamory を使いはじめる

プロ

有料料金はお問い合わせください

中〜大規模組織向け

無制限で Immediate な脆弱性を管理

無制限の開発チーム作成

開発チームを俯瞰できるセキュリティチーム機能

危険な脆弱性の Slack 連携通知機能

特定のソフトウェアの脆弱性一覧を表示

特定の脆弱性を含むソフトウェア一覧を表示

30日間の無料トライアルを開始