Cloud One Open Source Security by Snykを利用してオープンソースのコードに含まれる脆弱性を確認してみた (導入編)

2022.10.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、コンサル部@大阪オフィスのTodaです。

トレンドマイクロ社が提供しているCloud One内にてオープンソースのコードの脆弱性を確認、可視化するソリューションとしてOpen Source Security by Snykが提供されています。
上記はサイバーセキュリティ企業のSnyk社との協力により一部機能を提供されているようで、今回はセットアップからバージョン管理リポジトリのBitbucketに保存しているソースコードのチェックまでを試してご紹介いたします。

Cloud One Open Source Security by Snykとは?

Cloud One Open Source Security by Snyk(以降 C1OSS)はソースコードリポジトリとビルドパイプラインにあるオープンソースの脆弱性を検出および管理するサービスになります。

オープンソースは無償であるがゆえにその品質が必ずしも保証されているわけではありません。
ただ、オープンソースを利用する事で開発効率を大きく向上させる事が出来る点もございますので、不具合や脆弱性の情報を適切に管理して利用するのが求められます。
C1OSSはオープンソースコンポーネントの利用内容とバージョン、脆弱性の把握、対応方法を簡易に把握する事ができます。
Skyk社が提供するセキュリティプラットフォームの中で「Snyk Open Source」のみが提供されるイメージになります。

■ Trend Micro Cloud One™ Open Source Security by Snykとは
https://cloudone.trendmicro.com/docs/jp/open-source-security-by-snyk/about/

■ Snyk Open Source - snyk User Docs
https://docs.snyk.io/products/snyk-open-source

C1OSS利用時の注意点

  • C1OSSはCloudOneアカウントにてアメリカ合衆国(us-1)リージョンのみ提供になります。
  • Snyk内の「Snyk Open Source」の機能のみ提供になります。
  • ログインはCloudOneからおこないます。
  • ライセンスはAWS Marketplace経由による従量課金 (年間ライセンス提供なし)

利用料金について

  • Open Source Security by Snyk: Per project/24 hrs (15 projects free) $0.26 / unit
  • 15projectまでは無料

2022/10/19時点の金額、条件となります変更されている場合もございますので下記ページの[Pricing]にて確認ください。

■ Trend Micro Cloud One - AWS Marketplace
https://aws.amazon.com/marketplace/pp/prodview-g232pyu6l55l4

導入してみる

今回はアトラシアンのBitbucketに保管しているリポジトリにC1OSSの監視を設定してみたいと思います。

CloudOneコンソールからC1OSS

CloudOneのコンソールにログインをおこない、[Source Security by Snyk]を選択します。
CloudOneアカウントは「アメリカ合衆国(us-1)」リージョンでない場合、エラーになりますので注意ください。

CloudOneコンソールからC1OSS

Snykへの移動

CloudOneからSnykの画面に移動をおこないます。
画面内の[Head to Snyk!]をクリックします。
Snykの機能を利用する際はCloudOneコンソール画面からログインが必要な点が注意になります。

Snykへの移動

リポジトリの登録確認

初回アクセス時にはリポジトリを登録するかの確認画面が表示されます。
別途リポジトリ登録は出来るため下記画面では「list of integrations」をクリックします。

リポジトリの登録確認

Snykの表示

Snykの画面が表示されます。
この時点で気になったのはロゴ部分が、「Trend Micro Cloud One POWERED BY Snyk」となっている点が違いがあります。

Snykの表示

Bitbucket Cloudの連携

今回はBitbucket Cloudに保管しているリポジトリをチェック対象にするため[Bitbucket Cloud App]を選択します。

Bitbucket Cloudの連携1

Connect your Bitbucket ...の画面にて[Connect]ボタンをクリックします。

Bitbucket Cloudの連携2

Bitbucketの画面にてSnykとの連携・アクセス許可をおこないます。
許可する「Authorize for workspace」の指定をおこないます。
設定後、[アクセスを許可する]ボタンをクリックします。

Bitbucket Cloudの連携3

Snyk画面にてBitbucketのアクセス許可をおこないます。
問題なければ[Grant app access]をクリックします。

Bitbucket Cloudの連携4

Snykの画面にて「Connected to Bitbucket Cloud App」と表示されたら連携操作は完了になります。

Bitbucket Cloudの連携5

管理リポジトリの設定

画面上部の[Projects]をクリックしてプロジェクト一覧を表示します。
[Add Project]にて[Bitbucket]を選択します。

管理リポジトリの設定1

設定画面に移動すると先ほど設定したBitbucketアカウントに関連付けされたリポジトリが選択出来るようになります。
管理対象にしたいリポジトリを選択して画面上部の[Add selected repositories]をクリックします。
今回は数年前に検証で作成したLaravel用のリポジトリを選択しています。

管理リポジトリの設定2

上記でリポジトリの設定は完了になります。

リポジトリのスキャン

リポジトリの設定が完了すると自動的にスキャンが実行されて結果が表示されます。

結果を見てみる

今回Laravelを利用しており、リポジトリ内にはPHP用にComposerと、JavaScript用にpackage.jsonが入っているためスキャンにて解析されて結果表示がおこなわれます。
なお、検証で利用したリポジトリは古くメンテナンスが出来ていないためセキュリティリスクにあるスクリプトが多くございます。
あらかじめご了承ください。

一覧では対象リポジトリに注意が必要なスクリプトがあるかをランク分けして表示されます。
今回、Composerとpackage.jsonで分かれて表示されているためプロジェクト数は2点になる点が注意になります。

リポジトリのスキャン1

詳細画面に移動すると脆弱性が含まれているオープンソースの内容と説明が記載されています。
どの部分に問題があるかも詳細に説明されている点が良いですね!

リポジトリのスキャン2

また、SQL Injectionなどのメジャーな脆弱性については脆弱性の勉強ができるようにガイドページが用意されていてセキュリティを学ぶ人にとってうれしい機能が用意されています。

リポジトリのスキャン3

リポジトリのスキャン4

さいごに

今回はCloud One Open Source Security by Snykのセットアップから実際にリポジトリの脆弱性診断までを試してみました。
Cloud Oneで提供されるSnykはオープンソースの脆弱性確認と可視化をする機能のみの提供でございますが、対象の機能のみご利用になりたい場合は簡易に安くお試し頂けるためオススメになります。

また、弊社ではSnykも取扱をおこなっておりますのでCloud OneのSnyk機能だけでは物足りない場合も、Snyk社のソリューションもご提案出来ますのでぜひお声がけ頂けたらと思います。
少しでもお客様の参考になればと考えております。