Skip to main content

Snyk Visual Studio Code拡張機能でオープンソースの依存関係を保護

blog feature oss vscode

2021年11月23日

0 分で読めます

Snyk Vulnerability Scanner for Visual Studio Code拡張機能に新機能が加わりました。開発者は、オープンソースの依存関係にある脆弱性やライセンスの問題を、より簡単に見つけて修正できるようになります!

開発者がアプリケーションのセキュリティにより主体的に取り組めるようにするには、セキュリティツールが既存のワークフローや、開発者が日々利用しているツールにシームレスに統合できることが重要です。開発者の71%が利用するVisual Studio Codeも、そのようなツールの一つです。

プロジェクトに取り込むオープンソースの依存関係の脆弱性を見つける拡張機能と、開発者のコードにあるセキュリティ上の問題や品質上の問題を見つける拡張機能を別々に使うと、ツールを切り替える手間が増え、時間もかかります。ソフトウェア構成分析(SCA)と静的アプリケーション・セキュリティ・テスト(SAST)を組み合わせたSnyk Vulnerability Scanner for Visual Studio Code拡張機能なら、コードに潜むすべてのセキュリティと品質の問題を一元的に把握できます。そのため、開発の早い段階からコードベース全体のセキュリティに対処しやすくなります。

新しい拡張機能はSnyk CLIをベースにしており、JavaScript、Java、.NET、Python、Go、Ruby、PHP、Swift、Objective-Cなど、Snyk Open Sourceがサポートするすべてのプログラミング言語に対応しています。

adm-zip JavaScriptパッケージのディレクトリトラバーサルの問題と修正方法を示す、VS CodeでのSnykの脆弱性スキャン

では、どうすれば使い始められるでしょうか?簡単です。Visual Studio Code内で、拡張機能を2つの手順ですばやく設定できます。インストールして、接続するだけです!

この記事ではその手順を詳しく解説します。さらに知りたい方は、11月29日午後2時(UTC)にYouTubeまたはTwitchで配信されるライブストリーム「Building Secure Apps in VS Code」もぜひご覧ください。

Visual Studio CodeにSnyk拡張機能をインストールする

まず、(IDE内で)Preferences, Extensionsに移動し、Visual Studio Code MarketplaceでSnykを検索します。Installをクリックして、拡張機能をダウンロード、インストールしてください。数秒で完了し、拡張機能がサイドバーに追加されます。

インストール済みのSnyk Vulnerability Scanner拡張機能とその詳細ページを表示したVisual Studio Codeの拡張機能ビュー

Visual Studio CodeをSnykに接続する

次に、拡張機能をSnykアカウントに接続します。アカウントをお持ちでない場合は、Snykの無料アカウントを作成してください。

サイドバーのSnykアイコンをクリックし、拡張機能のビューにあるConnect VS Code with Snykボタンをクリックします。

ブラウザーウィンドウが自動的に開き、認証を求められます。

CLIのSnyk認証ページ。「Authenticate」ボタンと、snyk authコマンドを実行する手順が表示されています。

Authenticateをクリックして、手続きを完了します。接続が確立されると、Visual Studio Code内で最初のSnykスキャンが自動的に開始されます。

Snykの脆弱性スキャン結果を表示するVisual Studio Code。86件の問題と、dustjs-linkedinに関する詳細なコードインジェクションの警告が表示されています。

最初から最後まで、全体の手順は1分もかかりません。

オープンソースの依存関係にある問題を修正する

新しい拡張機能では、Snykが検出したさまざまな問題を、次の3つのカテゴリに分けて一覧表示します。

  • Open Source Security 新機能! - プロジェクトに取り込んだ、直接依存および間接依存(推移的依存)のオープンソース依存関係にある既知の脆弱性

  • Code Security - 自分のコードで検出されたセキュリティ上の弱点

  • Code Quality - 自分のコードにある品質上の問題

拡張機能のビューの右上にある…を使うと、特定のカテゴリの問題だけに絞り込めます。

ここでは、拡張機能で新たにサポートされたカテゴリ、Open Source Securityに注目し、オープンソースの依存関係にある脆弱性を見ていきます。検出された脆弱性ごとに、すばやい修正に役立つ豊富な情報が表示されます。

脆弱性を選択すると、詳細情報を確認できます。

dustjs-linkedinのPrototype Pollutionの脆弱性に関するSnykの詳細情報。影響を受けるバージョンと修正済みバージョン、修復方法、悪用に関する情報を表示しています。

開いた脆弱性ビューの上部には、脆弱性のCWE、CVSSスコア、Snyk IDなど、標準的なセキュリティメタデータ(1)が表示されます。

次に、脆弱性がどのように持ち込まれたかを説明し、依存関係をどのバージョンにアップグレードすればよいかを推奨して、修正方法(2)を示します。

また、その脆弱性に実環境で悪用されているエクスプロイトがあるか、さらにそのエクスプロイトが成熟しているかどうかも示されます(3)。上記の例では、dustjs-linkedin依存関係のPrototype Pollution問題に対して、概念実証(PoC)エクスプロイトが公開されています。エクスプロイトが存在する脆弱性は、攻撃に利用されやすいため、より大きなリスクとなります。

この情報の下には、依存関係がどのようにプロジェクトに持ち込まれたかを詳しく示し、修正までの経路を説明する情報が表示されます(4)。

最後に、脆弱性そのものについて、攻撃の種類やその防止方法を含む詳しい説明が表示されます(5)。

あとは、マニフェストファイルで依存関係のバージョンを更新するだけです。ここで使用しているJavaScriptアプリケーションの場合は、package.jsonファイルを更新します。

開発の最初から、コードのすべてを保護

前述のとおり、SnykのVisual Studio Code拡張機能では、アプリケーション内のあらゆる問題を包括的に把握でき、自分のコードにあるセキュリティや品質の問題も確認できます。拡張機能は具体的なデータフローをハイライトし、問題につながるコードのファイルや行を示します。コードの問題点だけでなく、他の開発者がどのように修正したかの例も表示されるため、すばやい対応に役立ちます(拡張機能の使い方について詳しくは、ドキュメントをご覧ください)。

IDE内でコードをテストすれば、開発の早い段階で、ソースコード管理システムにコードをコミットする前に問題を検出できます。ソフトウェア開発プロセスの後半で重大な脆弱性が見つかり、何度もコードを再設計するよりも、コードが追加された時点ですぐにテストする方が、効率的で生産性も高まります。

迅速な開発はビジネス上の要件です。一方で、開発者やその所属組織をセキュリティリスクにさらさないことも欠かせません。Snykの新しいVisual Studio Code拡張機能は、どちらも犠牲にすることなく、この2つの要件を満たすのに役立ちます。今すぐSnyk Vulnerability Scanner拡張機能をインストールしましょう。

Snyk Visual Studio Code拡張機能の使い方について詳しく知りたい方は、11月29日午後2時(UTC)にYouTubeまたはTwitchで配信される「Building Secure Apps in VS Code」のライブストリームをご覧ください。

CTFを始めよう

オンデマンドのバーチャル入門ワークショップを視聴して、CTFの課題の解き方を学びましょう。

続きを読む

feature insights context
Blog

自律型攻撃はすでに始まっている。防御もそのスピードに追いつかなければならない。

自律型攻撃者によって、防御に使える時間は短くなっています。継続的な検出、修復、検証、予防で、セキュリティチームが攻撃に歩調を合わせる方法をご紹介します。

illustration hero ai
Blog

AIハリケーンが到来

AIはソフトウェア開発とサイバー攻撃の双方を加速させています。リーダーは、エージェントとコードを開発の初期段階から保護し、実行時に制御を徹底するとともに、防御策を独立して検証しなければなりません。

feature insights context
Blog

予防は、本質的に解決済みの問題なのでしょうか?

エージェントが生成するコードの予防策はアーキテクチャ上解決されていますが、開発を遅らせることなくセキュリティを守る制御を選ぶことが、依然として課題です。