SnykでGitLabのプロジェクトを連携してスキャンしてみる

SnykでGitLabのプロジェクトをスキャンしてみよう!!
2024.04.15

こんにちは、こんばんは。アライアンス事業部のきだぱんです。

今回は、SnykでGitLabのプロジェクトをスキャンするための連携方法からブログにしていきたいと思います。

※GitLab上でもSAST機能やDAST機能を含むセキュリティ機能が多く備われております。
詳しくは下記をご覧ください。

GitLab Documentationでは、様々な情報やドキュメントを確認することが出来ます。
GitLabに関するブログも展開されていますので、是非こちらもご覧ください。

Snykとは

そもそもSnykとは、何なのか。 Snyk(スニーク)はデベロッパーファーストのセキュリティプラットフォームです。
Snykは、コードやオープンソースとその依存関係、コンテナやIaC(Infrastructure as a Code) における脆弱性を見つけるだけでなく、優先順位をつけて修正するためのツールです。 Gitや統合開発環境(IDE)、CI/CDパイプラインに直接組み込むことができるので、デベロッパーが簡単に使うことができます。
Snyk は、Java、.NET、JavaScript、Python、Golang、PHP、C/C++、Ruby、Scalaなど、多くの言語とツールをサポートしています。

また、Docker、Terraform、k8s、Infrastructure as Codeのファイルスキャンもサポートしています。

GitLabとは

GitLabとは?
計画から開発・運用・監視までライフサイクルの全ステージを一貫してサポートしてくれるのが、GitLabです。
単一のアプリケーションでDevOpsのライフサイクル全般を対応してくれるのです。便利ですね。^ ^

GitLabを使うにあたって、まずは試してみたいという方も多いのではないでしょうか。
GitLabでは30日間、無料でトライアルを始められます。
お問い合わせは下記から。

アカウント作成については下記のブログをご覧ください。

SnykとGitLabを連携することによって実現できること

  • PR(pull requests)に脆弱性がないか確認します
  • Snyk Web UIのレポートページまたはプロジェクトページから、リストされている修正に対するSnyk PRをチェックします
  • リポジトリに影響を与える新しい脆弱性が発生した場合に、それらの脆弱性に対する修正アラートをお知らせします
  • 脆弱性に対する新しいアップグレードまたはパッチが利用可能な場合、新しいPRを含む電子メール アラートを受信します

SnykとGitLabを連携していく

GitLabとSnykをセットアップするには、GitLabのアクセストークンを作成し、これを Snyk上に入力します。
そのためにまずGitLab上で GitLabのパーソナル アクセス トークンを生成します。

GitLab上の作業

プロファイル アイコンを選択し、[プロファイルの編集] > [アクセス トークン] を選択します。トークン名 (Snyk など) を設定し、APIスコープを選択します。

Snyk上の作業

Snyk Integrationsページに移動し、GitLab を選択します。

GitLab インスタンスのURLと生成したトークンを入力します。

次に、GroupのAccess Tokenを設定していきます。

GitLab上の作業

対象のGitLab グループを選択し、[Setting] > [Access Tokens]へ進みます。

トークン名を入力し、Select a roleでMaintainerを選択し、APIにチェックを入れます。

Snyk上の作業

GitLab グループ アクセス トークンを Snyk に追加していきましょう。

タイルを選択して、Snyk GitLab 統合ページに移動します。
Snyk Integrationsページに移動し、GitLab を選択します。
個人のアクセストークンを追加するのと同じ方法で、GitLabグループのアクセストークンを Snyk アプリケーションに連携させます。

連携されたはずなので確認していきましょう。

脆弱性の修正には、二つの方法があります。

  • Snykプロジェクトで検出されたすべての脆弱性を修正するために必要な最小限の変更を加えた Snyk マージ リクエストを生成します。
  • 脆弱性を修正する個別の問題に対して Snyk マージ リクエストを生成します。

また、Fixする前に、修正される脆弱性を確認し、今すぐ修正できない脆弱性について無視することも可能です。

おまけ)SnykとGitLabの連携を解除する

解除については、Snyk上で作業します。
[Setting]から、[GitLab]を選択します。

[Remove GitLab]で解除します。

切断されると、GitLab からインポートされた Snykプロジェクトは非アクティブに設定され、アラート、PR、またはPRの Snyk テストを受信しなくなります。

おわりに

今回は、SnykでGitLabのプロジェクトをスキャンするための連携方法をブログにしてみました。
今回ご紹介した機能は一部で、まだまだ豊富な機能が沢山あります。
Snykに関するブログも沢山展開されていますので、是非こちらもご覧ください。

この記事がどなたかのお役に立てば幸いです。
以上、きだぱんでした。