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を抽出し
    脆弱性を自動スキャン
  • 脆弱性への対応優先度を自動で分類
  • 組織規模に合わせたプランを選択可能

プロ

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

中〜大規模組織向け

無制限の開発チーム作成

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

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

Jira Cloud と連携

シングル・サインオン(SSO)連携*

* SSO 連携は無料トライアルではご利用できません。プロプラン契約後からご利用できます。

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