Skip to main content

Snyk Vulnerability Databaseを使ってThe Big Fixの対象プロジェクトを見つける

著者
Headshot of DeveloperSteve Coochin

DeveloperSteve Coochin

blog hero the big fix

2022年2月16日

0 分で読めます

開発者なら誰でも、朝の仕事始めのルーティンがあるでしょう。コーヒーを淹れ、SlackやDiscord、メールを確認し、最新ニュースを読む。私が毎朝のルーティンに取り入れているのは、最新のオープンソースの脆弱性を確認するためにSnyk Vulnerability Databaseを見ることです。

さまざまなエコシステムで、どのようなエクスプロイトや脆弱性が見つかるのかを見るのは、特に興味深いことです。たとえば、2021年5月からTensorflowライブラリで見つかった脆弱性を追ってきました。この記事の執筆時点でも、再び見つかっています(ほぼ2ページ分も!)。

最近、よく使われているエコシステムとして何度も目にするのがElectronJSです。Slack、VSCode、Twitchなど、多くの人気アプリを支えています。

修正するプロジェクトを見つけるだけでなく、限定版の#thebigfixTシャツを手に入れ、ユーザーを脆弱性から守る方法をご紹介します。みんなにとってうれしい取り組みです!

The Big Fixを始める

まず、まだアカウントをお持ちでない場合は、Snykの無料アカウントに登録しましょう。スタートガイドのページにアクセスし、必要事項を入力してください(クレジットカードは不要です)。次にThe Big Fixのウェブサイトで今すぐ登録をクリックし、名前とメールアドレスを入力すれば準備完了です。

登録が済んだら、次は修正する対象を見つけます。いくつか方法があります。

既存のリポジトリを接続する

対象のプロジェクトリポジトリが決まっている場合は、すぐに簡単に接続できます。Snykのダッシュボードに移動し、プロジェクトを追加をクリックします。接続したいリポジトリがクイックメニューに表示されない場合は、その他をクリックすると、インテグレーションの選択肢をすべて確認できます。

接続するリポジトリを選択し、画面の手順に沿って接続と設定を行います。

GitHub、GitHub Enterprise、GitLab、Bitbucket、Azure Reposのソース管理オプションを表示するインテグレーションダッシュボード

接続したら、もう一度プロジェクトを追加をクリックし、オープンソースの脆弱性スキャンを実行するリポジトリを選択します。プライベートリポジトリもスキャンできます。

「developersteve」配下の個人および組織のリポジトリが展開可能な状態で表示された、検索バー付きのリポジトリ選択画面。

Snyk Open Sourceに接続すると、スキャンによって接続したパッケージマニフェスト内の脆弱なパッケージが特定されます。修正方法や、考えられる対処手順も提示されます。また、Snyk Open Sourceでは、修正案を含むプルリクエストをリポジトリに自動作成することもできます。プロジェクトが想定どおりに動作するか、必ずアプリケーションをテストしてください。

貢献できるプロジェクトを見つける

脆弱性の修正に貢献できるプロジェクトを探しているなら、Snyk Vulnerability Databaseを使い、興味のあるエコシステムのパッケージを調べてみましょう。

The Big Fixの一環として最近貢献したプロジェクトは、PHPのオープンソースエコシステムでお気に入りのひとつであるInvoice Ninjaです。このオープンソースプロジェクトは、世界中の企業の請求書発行や会計業務を支援し、さまざまなサードパーティ製ビジネスツールと連携します。

まず、メインリポジトリをフォークして自分のアカウントに取り込みました。次に、上記の方法でリポジトリをSnyk Open Sourceに接続しました。

フォルダ、最近のコミットメッセージ、9,437件のコミットが表示された、ダークテーマのGitHubリポジトリページ

スキャンの結果、PHPのComposerパッケージマニフェストにいくつかの脆弱性が見つかりました。そのうちのひとつは、依存ライブラリのDOMPDF 0.6.2によって持ち込まれていました。

phenx/php-font-libの脆弱性の詳細。クロスサイトスクリプティングの脆弱性が中程度と評価されており、既知のエクスプロイトはありません。

検出結果をさらに詳しく調べたところ、2014年に報告された脆弱性であるPHP-Font-Libのクロスサイトスクリプティング(XSS)につながるパスなど、いくつかの問題を特定できました。プロジェクトをさかのぼって調査することで、問題そのものだけでなく、必要な修正も特定できました。

修正を適用するときは、いくつか注意が必要です。何より大切なのは、プロジェクト全体が引き続き正常に動作することを確認することです。ライブラリや依存関係をアップグレードするときは特に重要です。日々の業務でこうしたプロジェクトに頼っている人は大勢います。互換性を損なう変更は、どのプロジェクトも望んでいません。

フォークしたリポジトリをgit pullでローカル環境に取り込み、SnykプラグインをインストールしたVSCodeを起動しました。影響を受けたパッケージをアップグレードしてデバッグできました。その後、ローカルサーバーを使ってローカル環境でコードをテストしました(PHP組み込みサーバーを使う方法もあります)。

最後に、フォークしたリポジトリに変更をコミットしてgit pull requestを送信しました。コミュニティで確認と検討が行われた後、マージされました。

貢献をやり遂げる喜び

コミュニティを脆弱性から守る手助けができるときは、特にオープンソースへの還元に大きな喜びを感じます。オープンソースコミュニティに参加する私たちは、プロジェクトのすべてのユーザーを守るために、貢献し続けることが大切です。

さらに、無料のTシャツがもらえるうえ、The Big Fixの賞品抽選にも名前が登録されます。

The Big Fixに登録して、さっそく修正に取り組みましょう!

The Big Fixに参加しよう

Snykでアプリケーションのセキュリティを高めている、何千人もの開発者の仲間に加わりましょう。

続きを読む

blog feature snyk container custom base recommendations
Blog

Evo Agentic AppSecのご紹介:AI開発のスピードに対応するセキュリティ

AI駆動型開発のスピードに、従来のセキュリティワークフローは追いついていません。SnykのAgentic AppSecは、セキュリティエージェントが脆弱性を継続的に検出、修正、検証し、人が基準を定められるようにします。

Live Stream

修正エージェントをわかりやすく解説:見つけるより直すことが重要な理由

SnykのRemediation Agentが、セキュリティインテリジェンス、破壊可能性分析、検証を活用して、脆弱性をマージ可能なプルリクエストに変える仕組みをご覧ください。

feature ai ide dark
Blog

Evo Agentic AppSecの初公開:エージェント型の脆弱性修正と悪意あるコードの防御

Snyk初のAgentic AppSec機能をご紹介します。脆弱性を自動修正するRemediation Agentと、危険なパッケージのリリースを未然に防ぐMalicious Code Defenseを解説します。