fbpx

Trivy を使って VS コードプロジェクトの脆弱性を発見 #Trivy #AquaSecurity #コンテナ #セキュリティ #OSS #VSCode

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

本ブログは「Aqua Security」社の技術ブログで2020年6月29日に公開された「 Using Trivy to Discover Vulnerabilities in VS Code Projects 」の日本語翻訳です。

Trivy を使って VS コードプロジェクトの脆弱性を発見


開発者にとって、コンテナのセキュリティプロトコルには、ある種の静的なイメージスキャンによる脆弱の検出が含まれています。しかしこれを実現するためには、通常コードエディタのようなソフトウェアプログラムだけでは無理で、スキャンを実行するために全く別のツールを使用する必要があります。Aqua のオープンソースチームは Trivy(Aquaのオープンソーススキャナ)を使った脆弱性スキャンを統合開発環境(IDE)とシームレスに統合することによる利点を潜在的に認識していました。そこで、この機能をサポートする拡張機能を構築するプロジェクトが開始されました。プロジェクトは、利用ユーザが多くかつ人気の高いIDE(Visual Studio Code)を選択することから始まりました。その結果、非常に便利で時間を節約できる拡張機能をユーザに提供できました。

このブログでは拡張機能をインストールする方法、脆弱性をスキャンするために実行する方法、そしてプロジェクトからの技術的なハイライトで締めくくります。

登場するツール

Trivy 脆弱性スキャナは、コンテナイメージの脆弱性を発見するのに役立つオープンソースツールです。 新しい拡張機能により、ディレクトリや Git ベースのリポジトリをスキャンすることで、Visual Studio Code ソフトウェアプロジェクトの中から Trivy を使って脆弱性を見つけることができるようになりました。これは既存のプロジェクトやリポジトリを素早く評価して、下流の依存関係に脆弱性がないかどうかを確認する場合に非常に便利です。また、サードパーティのプロジェクトリポジトリをスキャンして脆弱性の依存関係を調べ、そのプロジェクトがニーズに合っているかどうかを評価することもできます。

Visual Studio Code 通称 VS Code は、Microsoft が提供するフリーのコードエディタです。オープンソースコミュニティの間で人気があり、素晴らしい拡張メカニズムを提供しています。実際私たちAquaの多くのメンバーが利用しています。これらの理由から、私たちはエディタ内からプロジェクト上で Trivy を実行する VS Code 用の拡張機能を作成することにしました。

以下は Trivy VS Code 拡張機能の動作を示す GIF です。

Open Source Vulnerabilty scanner

インストレーション

もしまだ Trivy をシステムにインストールしていない場合は、まずインストールする必要があります。macOS では brew を使って Trivy をインストールできます。

$ brew install aquasecurity/trivy/trivy

他のプラットフォームでは、このリンクから必要な手順と適切なバージョンの Trivy を取得できます。
https://github.com/aquasecurity/trivy#installation

Trivy をインストールしたら、次は Trivy VS Code Extension をダウンロードします。これは Microsoft Marketplace から無料でダウンロードできます。

trivy-action-marketplace Image 1

インストールボタンをクリックすると、VS Code が自動的に起動して拡張機能がインストールされます。インストールが完了したら既存のプロジェクトを開いて、macOS では Command+Shift+P(Windows/Linux では Control+Shift+P)を押してコマンドパレットを開きます。拡張機能は、Trivy Scan というアクションとして新しいコマンドをインストールします。

[Enter]キーを押すと、Trivy はプロジェクトをスキャンし、出力結果で脆弱性を報告してくれます。

技術的詳細

Microsoftは、エコシステムを開放し、開発者が TypeScript とネイティブ JavaScript の両方で拡張機能を書けるようにしました。Trivy VS Code Extension は TypeScript で書かれています。

この拡張機能は、実際のスキャン処理はすべて Trivy CLI に任せます。拡張機能自体に余分なビジネスロジックを追加する必要がないので、このアプローチを採用することにしました。この拡張機能は、VS Code を通じてユーザになじみのあるインタフェースを公開することで、Trivy CLI のラッパーとして機能します。

試してみる

堅牢な脆弱性スキャナと人気のあるコードエディタの利点を組み合わせた拡張機能を構築は簡単でした。Trivy がVS Code の拡張機能としてリリースされたことで、Trivyの高度な機能をさらに感じることができます。VS Code エディタの内から目立たないイメージをスキャンしたり、イメージリポジトリ全体を評価したりする機能は驚くほど時間の節約になるだけでなく、同時にイメージのセキュリティも向上します。

Trivy extension for VS Code はオープンソースとして自由に利用できるので、GitHub にある Trivy extension for VS Code をチェックすることをお勧めします。あなたの新しい機能のアイデアをお待ちしています。

その他 Aqua のオープンソースについて興味がございましたら以下ブログもご参照ください。

New call-to-action

新規CTA