Skip to main content

Dependency Health—Snykでパッケージのリスクを評価

著者
Headshot of Anna Debenham

Anna Debenham

2019年5月16日

0 分で読めます

Snykは、オープンソースを安全に利用できるよう支援することを目指しています。脆弱性は依存関係の健全性を示す指標の一つですが、ほかにも考慮すべきリスク要因があります。

そのため、セキュリティやライセンス情報に加え、新たに健全性に関する情報も提供し、依存関係について知りたいときにまず利用される場所となるべく、チーム全体で取り組んでいます。

今月、Dependency Healthの取り組みの第1段階を順次展開しています。開発者が、コードに含まれる依存関係にリスクがあるかどうかを特定できるよう支援するためのものです。

健全性リスクのカテゴリ

新たに追加されたリスク情報は次のとおりです。

  • 非推奨パッケージを示す指標

  • パッケージの初回リリース日(成熟度)

  • パッケージの最終更新日(アクティビティ)

  • レポートに限り、現在のパッケージバージョンと最新バージョンとの差分(古さ)

新しい情報を詳しく見ていきましょう。

問題のあるステータス — このパッケージは非推奨か?

npmでは、メンテナーが更新を停止した依存関係は「非推奨」とマークされます。レポートのDependenciesタブで、snyk.ioから取得したこれらのパッケージに警告アイコンを表示するようになりました。また、非推奨のパッケージだけを一覧表示できるフィルターも追加しました。

フィルターメニューを開いた依存関係レポート。プロジェクトの種類が表示され、Dependency Healthのステータスが「非推奨」に設定されています。

さらに、パッケージの最新バージョンが非推奨の場合、該当するパッケージページにも警告を表示するようになりました。

cryptilesの脆弱性を表示するパッケージページ。「非推奨」のラベル、「汎用暗号ユーティリティ」という説明、および検出されたBSDライセンスが表示されています。

この警告が表示されるパッケージの例として、cryptiles、node-uuid、hoekがあります。

成熟度 — このパッケージが初めてリリースされたのはいつか?

新しいパッケージをインストールするときに何を危険信号と感じるか、コミュニティに尋ねたところ、多くの人が最初に挙げたのは成熟度でした。パッケージが以前から使われているものかを知りたいということです。先週初めて公開されたものなら、インストールしたくないと思うかもしれません。一方、1年以上前に初めて公開されたものなら、より成熟していると判断できます。しかし、長く存在していても、公開されたバージョンが1つだけのパッケージが、誤って「成熟している」と見なされる可能性もあります。そのため、最新のセマンティックバージョン(semver)も表示します。たとえば0.1.0より低い場合、まだ十分に成熟していない可能性があるため、利用を控えたほうがよいかもしれません。そこで、レポートにこのデータを表示するようになりました。

onetime、rc、restore-cursor、snyk-treeなどのパッケージについて、最新バージョンと最終公開日を強調表示した依存関係テーブル。

パッケージページにも同じデータを表示しています。

npmパッケージvalidatorのSnyk脆弱性データベースページ。文字列の検証とサニタイズの詳細、バージョン情報を表示

アクティビティ — パッケージは現在もメンテナンスされているか?

最終公開日のデータからは、パッケージのアクティブ度も把握できます。実質的にアーカイブ状態でも、メンテナーが明示的にそうマークしていないパッケージは数多くあります。たとえば12か月以上更新されていないパッケージは、おそらく今後も更新されないでしょう。単一の目的に特化したライブラリで、完成していると見なせる場合もあります。しかし、その依存関係が更新されていなければ、リスクは高まります。

古さ — 更新版が提供されているか?

常に最新バージョンを使いたい方のために、プロジェクトにインストールされている依存関係と、同じパッケージで利用可能な最新バージョン(アルファ版やプレリリースを除く)を比較して表示するようになりました。

バージョン列と最新バージョン列を強調表示した依存関係テーブル。cryptiles、hoek、hawk、accept、ammoなど、古いパッケージが表示されています。

このデータはプロジェクトに直接関係するため、Snykのレポートエリアでのみ確認できます。

Snykで品質評価を続ける

レビューが1件だけの4.5つ星評価が、製品の品質を示す優れた指標とは限らないのと同じように、依存関係の健全性データも、より広い文脈の中で考慮する必要があります。そのため、さまざまな品質指標をデータベースに追加し、お客様がリスクを確認して、より多くの情報に基づいた判断を下せるようにしています。各パッケージを幅広い文脈の中で評価することをおすすめします。ある指標でスコアが低くても、それには正当な理由があるかもしれません。

今後もさらに機能を拡充…

今後数か月にわたり、既存カテゴリのデータポイントを増やし、「人気度」などの新しいカテゴリを追加するとともに、評価を自動化するポリシーを提供して、依存関係の健全性をより幅広く、詳細に把握できるようにしていきます。assessment

利用を開始する

詳細は、SnykのレポートエリアにあるDependenciesタブ(レポートを利用できるSnykプランをご利用の場合)と、オープンソースコミュニティ全体に公開されているパッケージページで確認できます。

現在、詳細情報を提供しているのはnpmパッケージのみです。レポートでは、依存関係が検出されたプロジェクトの新しいスナップショットをSnykが取得するたびにデータが更新されます(デフォルトでは24時間ごと)。

APIを利用できるプランをご利用の場合は、Dependencies APIを使って独自のレポートをスクリプトで作成できます。また、すべての依存関係をCSVでエクスポートし、チームで問題のある依存関係のトリアージに役立てることもできます。

ぜひお試しいただき、表示してほしいほかのデータがあればお知らせください。

CTFを始めよう

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

続きを読む

illustration hero ai
Blog

PHPが重大な未認証RCEの脆弱性2件を修正(CVE-2026-109618、CVE-2026-109619):今すぐアップデート

PHPのリクエスト処理に重大な脆弱性が2件あり、未認証のリモートコード実行につながるおそれがあります。修正版にアップグレードするか、旧バージョンにはベンダー提供のバックポートを適用してください。

blog feature ai lilac
Blog

エージェント型修正で脆弱性バックログをプルリクエストに変える

Evo Remediation Agentがオープンプレビューで利用可能になり、Evo Agentic AppSecに依存関係の自動解決機能が加わりました。AppSecチームは継続的な修正キャンペーンを実施できるようになりました

AI Background min crop
Blog

AIが、あなたが受け入れてきたあらゆるリスクを一気に顕在化させる:AI Security Panel: Unfilteredから得た7つの洞察

AIによって攻撃はより安価かつ高速になり、組織がすでに抱えているリスクが露呈しています。4人のセキュリティリーダーが、機械の速度に対応する防御と迅速な修復が今不可欠である理由を語ります。