Snyk と Bitbucket Cloud を統合して DevSecOps を実現する方法

Snyk を Bitbucket Cloud や Jira と統合して、DevSecOps を実現します。

Snyk は複数のアトラシアン製品と統合されているため、DevSecOps チームのワークフローとパイプラインを強化できます。このチュートリアルでは、Atlassian BitbucketSnyk を活用して、セキュリティのシフト レフトを可能にするパターンについてご説明します。これらの手法によって、チームは、DevSecOps のペースでアプリケーションとコンテナーベースのワークロードをスキャンできます。これらのパターンを使用して、パイプラインの段階全体でセキュリティを含む方法について学習します。

所要時間

読む時間 15 分。

対象者

  • 開発者

  • DevOps と DevSecOps エンジニア

  • アプリケーション セキュリティ チームとアプリケーション開発チーム

前提条件

Snyk アカウントを持っているユーザーはこちらをご利用ください。

Atlassian Bitbucket のアカウントを持っているユーザー。こちらからログインするかこちらから開始してください

ステップ 1: 環境を構成する

Snyk CLI をインストールする

Snyk CLI は、Snyk アカウントを使用してマシンを認証します。CLI ツールは、依存関係にある既知の脆弱性を手動で、および CI/CD パイプラインで検出して修正するのに役立ちます。CLI をインストールするための完全な手順は、一般的なオペレーティング システムと環境向けに複数の形式で Snyk でご利用いただけます。たとえば、CLI は brew と次のコマンドと共に利用できます。

brew tap snyk/tap
brew install snyk

CLI をインストールしたら、次のコマンドで認証します。

snyk auth

このコマンドによってブラウザー タブが開き、認証プロセスを完了します。[認証] ボタンをクリックすると、リポジトリをスキャンする準備が整います。認証が完了したら、端末に戻って作業を続けられます。

その他のラボ リソース

このチュートリアルの演習には、指定されたモジュール ページ内で共有されるコマンドまたはコード スニペットの組み合わせと、パブリック Bitbucket リポジトリで利用可能なテンプレートとソース コードが含まれます。Bitbucket Cloud アカウントを設定したら、これらのリソースをアカウントにコピーする必要があります。これを行うには、次のステップに従ってください。

リポジトリをフォークする

こちらをクリックして、アップストリーム リポジトリを Bitbucket アカウントにフォークします。アトラシアンのドキュメントには、リポジトリをフォークする方法の詳細な手順が記載されています。

フォークをローカルにクローンする

フォークが完了したら、フォークしたリポジトリをクローンする必要があります。詳細な手順については、リポジトリをクローンする方法に関するアトラシアンのドキュメントをご参照ください。

ステップ 2: Snyk を Bitbucket に接続する

このセクションでは、Snyk を Bitbucket に接続して、オープン ソースの脆弱性について Bitbucket アプリケーションをスキャンします。

Bitbucket プロセスの図

ソフトウェア構成解析 (SCA) とは

ソフトウェア構成解析 (SCA) は、オープン ソースのコンポーネント管理ツールです。このツールは、アプリケーション内のすべてのオープン ソース コンポーネント (直接的/間接的な依存関係を含む) をリストするレポートを生成します。SCA ツールを使用すると、開発チームはプロジェクトに導入されたオープン ソース コンポーネントをすばやく追跡して分析できます。

オープン ソース コンポーネントは便利で広く利用されていますが、従来は追跡が困難でした。その結果、開発者はメールやスプレッドシートなどの手動プロセスを使用して、状況を緩和していました。しかし、これらの手動プロセスは、オープン ソースが提供する利便性を打ち消し、不完全なソリューションを提供するおそれがあります。より適切なアプローチは、各コンポーネントを即座に把握できる SCA ツールを活用することです。

SCA ツールを使用する理由

オープン ソース コンポーネントは、実質的にあらゆる分野にわたるソフトウェア開発における主要な構成要素です。組織の規模にかかわらず、SCA は、ビジネスにとって重要なアプリケーション内のオープン ソース コンポーネントを特定する際に役立ちます。SCA ツールによって、開発者は次のことを行えます。

1. アプリケーションで使用される依存関係を理解する。

2. ソフトウェア開発ライフサイクル (SDLC) 全体を通して、セキュリティ ポリシーとコンプライアンス ポリシーを適用する。

3. ソースで潜在的な脆弱性をプロアクティブに修正する。

4. チームの効率性と会社のセキュリティ体制を改善する。

ステップ 3: アプリ パスワードを作成する

Snyk にリポジトリへのアクセスを許可して Snyk の Bitbucket Cloud 統合を有効にするには、アプリ パスワードを作成する必要があります。

アプリ パスワードを作成するには、次の手順に従います。

1. 左下のアバターから、[個人設定] をクリックします。

個人設定ウィンドウ

2. [アクセス管理] の下で、[アプリ パスワード] をクリックします。

アクセス管理ウィンドウ

3. [アプリ パスワードを作成] をクリックします。

アプリ パスワード ウィンドウ

4. アプリ パスワードに、パスワードを使用するアプリケーションに関連する名前を付けます。

アプリ パスワード ウィンドウ

5. このアプリケーション パスワードに付与する特定のアクセス権と権限を選択します。

  • アカウント: read

  • チーム メンバーシップ: read

  • プロジェクト: read

  • リポジトリ: read and write

  • プル リクエスト: read and write

  • Webhook: read and write

6. 生成されたパスワードをコピーして、記録するか、アクセス権を付与したいアプリケーションに貼り付けます。パスワードはこの 1 回のみ表示されます。

ステップ 4: リポジトリ変数を追加する

リポジトリ変数はリポジトリ レベルで定義する必要があり、後でパイプラインで参照されます。 これらの構成は次のとおりです。

  • SNYK_TOKEN - Snyk アカウントを認証するための Snyk API トークン。これは保護された変数です。

  • IMAGE - コンテナー イメージ名。これは保護された変数ではありません。

その他の変数は、強化されたパイプライン操作向けであり、このチュートリアルでは説明していません。

リポジトリ設定ウィンドウ

ステップ 5: Snyk API トークンを取得する

1. Snyk API トークンを取得する

Snyk コンソールから [設定] (画像の歯車アイコン) に移動して、[一般] メニューで [組織 ID] をコピーします。

Snyk 一般設定

トークンをコピーしたら、Bitbucket Cloud UI に戻って SNYK_TOKENリポジトリ変数を定義します。

ステップ 6: Bitbucket 統合を有効にする

Snyk コンソールから [統合] に移動して [Bitbucket Cloud] を選択します。

Snyk 統合ウィンドウ

Bitbucket Cloud 統合ページで、[ユーザー名] フィールドに Bitbucket ユーザー名を、[アプリ パスワード] フィールドに前のステップの Bitbucket アプリ パスワードを入力します。次に [保存] をクリックします。

設定: 統合ウィンドウ

Snyk アカウントと Bitbucket アカウントの接続に成功すると、確認メッセージと Bitbucket Cloud リポジトリを Snyk に追加する機能が表示されます。

このページに留まって、次のセクションで、Bitbucket Cloud リポジトリをインポートして Snyk でスキャンする方法を学習します。

Bitbucket アプリケーションをスキャンして監視する

Bitbucket サムネイルのスキャンと監視

オープンソースの依存関係の脆弱性に関するアプリケーションのスキャンは、ソースから始まります。前のセクションでは、Snyk と Bitbucket の統合を有効にして、最初のプロジェクトがインポートできる状態になりました。

ステップ 7: Bitbucket Cloud リポジトリを Snyk に追加する

前のセクションの最後の画面で [Add your Bitbucket Cloud repository to Snyk (Bitbucket Cloud リポジトリを Snyk に追加)] をクリックします。

Bitbucket Cloud リポジトリを Snyk に追加する

[環境を構成] モジュールでフォークしたリポジトリを探します。チェックボックスをクリックして選択し、[Add selected repository (選択したリポジトリを追加)] ボタンをクリックしてプロジェクトをインポートします。

右上隅の [Add selected repositories (選択したリポジトリを追加)] ボタン

ステップ 8: 脆弱性レポートを確認する

packages.json に基づく脆弱性の数と、それぞれの詳細情報を確認する必要があります。スキャンしたばかりのプロジェクトをクリックして、Snyk で結果を確認します。脆弱性の重大度やエクスプロイトの成熟度などに関するコンテキストだけでなく、次の強力な機能も取得できます。

脆弱性レポート
  • この脆弱性の修正は、直接の依存関係をアップグレードするか、脆弱性にパッチを適用することにより、脆弱性の修正に役立ちます。

  • 優先度スコアは、修正の優先順位を効果的に付ける際に役立ちます。範囲 1 - 1,000 のスコアは、CVSS スコア、修正の可用性、既知のエクスプロイト、脆弱性の新しさ、到達可能かどうかなど、さまざまな要因を処理する独自のアルゴリズムによって強化されています。

  • Jira 統合によって、Jira で課題を作成できます。

Atlassian Open DevOps の統合」をご確認ください。

推奨

DevOps コミュニティ

DevOps ラーニング パス

無料で始める