Skip to main content

2022年、Snykがソフトウェアサプライチェーンのセキュリティを強化した3つの方法

feature snyk supply chain purple

2023年1月12日

0 分で読めます

Snykは2022年を、ソフトウェアサプライチェーンのセキュリティを確保するための強固な基盤とともに迎えました。対象となるのは、自社で記述するコード、コードが利用するオープンソースのライブラリやパッケージ、ビルドプロセスのコンポーネント、そしてアプリケーションの実行環境となるシステムのInfrastructure as Code(IaC)構成です。過去1年間で、ソフトウェアサプライチェーンセキュリティへの注目が高まりました。2021年末に発生したLog4Shellのような脅威を受け、米国政府がベンダーに対し、ソフトウェアが安全に構築されていることの証明を求める大統領令を発令したためです。

2021年1月から2022年11月にかけて、ソフトウェアサプライチェーンに関する検索への関心が高まっている様子を示すGoogle Trendsの折れ線グラフ。
ソフトウェアサプライチェーン検索のトレンド。出典:Google トレンド

このブログにたどり着いたものの、Snykが何をしている会社なのか、ソフトウェアサプライチェーンのセキュリティにどう関わるのか分からない方のために、簡単にご紹介します。Snykは、SDLC全体のセキュリティを確保するツールを備えた、開発者ファーストのセキュリティプラットフォームを提供しています。静的アプリケーションセキュリティテスト(SAST)製品のSnyk Codeは、従来のSASTソリューションより10~50倍速く、リスクを軽減するための実践的なアドバイスを開発者に提供します。IDE内でコードをチェックできるため、開発者の生産性を損ないません。Snyk Open Sourceは、オープンソースソフトウェアのパッケージに含まれる脆弱性の特定と優先順位付けを支援し、実践的な修正方法を提案します。Snyk Containerは、安全で最新のベースイメージを開発者が選べるよう支援し、コンテナの構築中に脆弱性が追加される箇所を特定します。脆弱性の長い一覧を出力するだけという業界標準を超える機能です。そして、アプリケーションを実際に稼働させる段階では、Snyk Cloudが開発者ファーストかつアプリケーション中心のアプローチで、クラウドインフラの脆弱性を発見して修正します。インフラがコード(IaC)で定義された時点から、リソースがクラウドで稼働するデプロイ後まで対応し、両者に差異が生じた場合はクラウドインフラ全体のドリフトを検出します。

2022年、Snykは開発者中心のソフトウェアセキュリティアプローチをさらに推し進め、既存ソリューションに重要な機能強化をいくつも加えました。ここでは、過去1年間に導入した機能のうち、サプライチェーンのセキュリティ向上に役立つ3つを紹介します。

1. 自分で記述するコード

まずコードを書くのか、それともコードの作成に使うプログラミング言語やフレームワークを選ぶのか。どちらの場合もSnykがサポートします。Snyk Codeには、IDEでよりよいコーディングを実践できるだけでなく、IDEへの機能追加をさらに簡単にする新機能がいくつも加わりました。新しい言語サーバーやSnykのIDEサポートの強化、SASTソリューションの機能強化などについては、2022年にSnykの開発者向けセキュリティプラットフォームを強化した取り組みの記事をご覧ください。

2. 活用し、依存するライブラリ

組織や構築するソリューションの種類によって異なりますが、アプリケーションのコードの70~90%はオープンソースのライブラリやパッケージに由来することも珍しくありません。これは、SnykとLinux Foundationによる「2022年オープンソースセキュリティの現状」レポートでも示されています。つまり、開発者が利用するコードの大半は自分たちで管理できないため、アプリケーションに何が含まれているかを組織が正確に把握することが、いっそう重要になります。Snyk Open Sourceは、すでにコマンドラインやCI/CDパイプラインから脆弱なライブラリやパッケージを特定する機能を備えていました。2022年にはVisual Studio CodeへのIDEサポートを追加し、IDE内で問題を可視化できるようにしました。これにより開発者は、状況に即した分かりやすい修正方法を簡単に確認できます。

package-lock.jsonファイル内のSnykの脆弱性検出結果と、adm-zip依存関係に関する詳細な修正ガイダンスを表示するVisual Studio Code。

開発時にセキュリティ脆弱性を発見して修正する場合、本番環境で稼働してから対応する場合に比べて、必要な時間もコストも大幅に抑えられます。Open Source Security Foundation(OpenSSF)のメンバーであるSnykは、セキュリティのベストプラクティスは開発者から始める必要があることを理解し、その考えを大切にしています。アプリケーションの構築方法や使用するライブラリを決めるのは、開発者だからです。

IDEで脆弱性を検出することは、コストと摩擦を減らす一つの方法ですが、安全性は既知の脆弱性を検出するだけではありません。数多くのオープンソースパッケージが使われるなか、開発者は利用を検討しているパッケージのメンテナンス頻度やメンテナーコミュニティの規模、人気度などにも注意を払うことが重要です。

こうした要素から、脆弱性が発見された場合にすばやく修正されるかどうかを判断できます。Snyk Advisorは以前からSnykのウェブサイトで利用できましたが、IDEの開発体験にも組み込みました。これにより開発者は、現在脆弱性が見つかっていないパッケージについても、安全性の目安を把握できます。

人気度、メンテナンス状況、コミュニティ、セキュリティの詳細と、Advisor Score 54/100を表示するパッケージアドバイザーパネルを含むコード画面。

ソフトウェアに脆弱性が入り込まないよう、できる限りの対策を講じても、問題が起きることはあります。ライブラリが公開されてから、場合によっては何年も経った後に新たな脆弱性が発見されることも珍しくありません。そのため、各アプリケーションの構成要素を組織がすばやく特定できることが不可欠です。そのために役立つのが、ソフトウェア部品表(SBOM)です。

SBOMは、アプリケーションの構成要素を階層的に示したものです。Snyk Open Sourceは、開発者が最初から安全なオープンソースパッケージを選び、SDLC全体を通じてコードに含まれる脆弱なパッケージをテストし、新たな脆弱性がないかアプリケーションを継続的に監視できるよう、当初からソフトウェアサプライチェーンのセキュリティ確保を支援してきました。Snyk Open Sourceでは、CLIからSBOMをエクスポートできるようにし、脆弱性や修正情報の確認機能を拡張しました。新しいsnyk sbomコマンドを使うと、オープン標準のCycloneDX形式でSBOMをエクスポートできます。推移的なソフトウェア依存関係も含め、アプリケーションの構成要素をすべて把握できます。SBOMのサポートは基本的なエクスポート機能にとどまりません。SBOMのセキュリティを確認できるSBOMチェッカーも追加しました。

Snykのダッシュボードモーダル。重要度別に分類された127件のSBOMの問題と、JavaScriptパッケージの脆弱性の詳細カードが表示されています。

また、package-issues-APIを一般公開しました。SBOMで広く使われるパッケージ命名形式であるpackage-url(purl)を使って、特定のパッケージの脆弱性を検索できます。さらに、オープンソースプロジェクトBomber向けのSnykプロバイダーも提供しました。

3. 実行するコンテナ

現代のアプリケーションがオープンソースのライブラリやパッケージに大きく依存するのと同じように、開発者は構築・デプロイするソフトウェアコンテナの基盤として、公開ベースイメージをよく利用します。その多くはDocker Hubの「Official Images」に由来します。人気のコンテナイメージで、そのいくつかはDockerが公開・メンテナンスしています。開発者はこうしたベースイメージをもとに、自分のコードやコンパイル済みアプリケーション、依存パッケージを追加します。2022年には、Red Hat Universal Base Image(UBI)バージョン8と9のベースイメージ検出機能とアップグレードの推奨を追加しました。

Snyk Containerは、広く使われるDockerイメージを追跡してベースイメージを推奨するほか、ワンクリックでプルリクエスト(PR)を生成する自動修正機能も開発者に提供します。チームはこれにより、公開イメージのより安全なバージョンへすばやく簡単に移行できます。2022年には、厳選した「ゴールデン」イメージに「Custom Base Images」のラベルを付け、推奨ロジックに組み込む機能を追加しました(オープンベータ版)。多くの企業で採用されているこの方法は、コンテナパッケージの大半について開発者が心配する必要をなくします。新しいSnyk Container機能を使えば、Docker Official Imagesにのみ提供されていたのと同じ自動修正ロジックを活用し、ポリシーを守りながら最適な出発点を選べます。組織独自のベースイメージを定義・選定できるため、ソフトウェアサプライチェーンのセキュリティをさらに細かく管理できます。

ベースイメージのアップグレード推奨、脆弱性の件数と深刻度、修正PRを作成するボタンを示すSnykプロジェクトの概要

開発者中心のツールは、開発者が普段作業している場所で支援することを目指します。Snyk Containerのスキャンを使えば、開発者は普段使っているツールを活用して、より安全なコンテナを構築できます。運用面では、2022年に新たに導入されたSnykとSysdigのインテグレーションが、実行中のワークロードから得られるコンテキストを加えて修正の優先順位付けを支援し、ソフトウェアサプライチェーンのセキュリティをさらに強化します。

2023年に向けて!

この記事では3つを大きく上回る数の取り組みを紹介しましたが、2022年のSnykのサプライチェーン関連の主なポイントをまとめます。

  • IDEプラグインを使いやすくする新しい言語サーバーのサポート

  • SBOMの生成、ツール、サポート

  • カスタム/ゴールデンベースイメージの推奨

  • ランタイムインテグレーション

CTFを始めよう

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

皆さんにとっても2022年が実り多い年であったこと、そして2023年がさらに素晴らしい年になることを願っています!