Snyk Vulnerability Databaseを使ってThe Big Fixの対象プロジェクトを見つける
DeveloperSteve Coochin
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のダッシュボードに移動し、プロジェクトを追加をクリックします。接続したいリポジトリがクイックメニューに表示されない場合は、その他をクリックすると、インテグレーションの選択肢をすべて確認できます。
接続するリポジトリを選択し、画面の手順に沿って接続と設定を行います。

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

Snyk Open Sourceに接続すると、スキャンによって接続したパッケージマニフェスト内の脆弱なパッケージが特定されます。修正方法や、考えられる対処手順も提示されます。また、Snyk Open Sourceでは、修正案を含むプルリクエストをリポジトリに自動作成することもできます。プロジェクトが想定どおりに動作するか、必ずアプリケーションをテストしてください。
貢献できるプロジェクトを見つける
脆弱性の修正に貢献できるプロジェクトを探しているなら、Snyk Vulnerability Databaseを使い、興味のあるエコシステムのパッケージを調べてみましょう。
The Big Fixの一環として最近貢献したプロジェクトは、PHPのオープンソースエコシステムでお気に入りのひとつであるInvoice Ninjaです。このオープンソースプロジェクトは、世界中の企業の請求書発行や会計業務を支援し、さまざまなサードパーティ製ビジネスツールと連携します。
まず、メインリポジトリをフォークして自分のアカウントに取り込みました。次に、上記の方法でリポジトリをSnyk Open Sourceに接続しました。

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

検出結果をさらに詳しく調べたところ、2014年に報告された脆弱性であるPHP-Font-Libのクロスサイトスクリプティング(XSS)につながるパスなど、いくつかの問題を特定できました。プロジェクトをさかのぼって調査することで、問題そのものだけでなく、必要な修正も特定できました。
修正を適用するときは、いくつか注意が必要です。何より大切なのは、プロジェクト全体が引き続き正常に動作することを確認することです。ライブラリや依存関係をアップグレードするときは特に重要です。日々の業務でこうしたプロジェクトに頼っている人は大勢います。互換性を損なう変更は、どのプロジェクトも望んでいません。
フォークしたリポジトリをgit pullでローカル環境に取り込み、SnykプラグインをインストールしたVSCodeを起動しました。影響を受けたパッケージをアップグレードしてデバッグできました。その後、ローカルサーバーを使ってローカル環境でコードをテストしました(PHP組み込みサーバーを使う方法もあります)。
最後に、フォークしたリポジトリに変更をコミットしてgit pull requestを送信しました。コミュニティで確認と検討が行われた後、マージされました。
貢献をやり遂げる喜び
コミュニティを脆弱性から守る手助けができるときは、特にオープンソースへの還元に大きな喜びを感じます。オープンソースコミュニティに参加する私たちは、プロジェクトのすべてのユーザーを守るために、貢献し続けることが大切です。
さらに、無料のTシャツがもらえるうえ、The Big Fixの賞品抽選にも名前が登録されます。
The Big Fixに登録して、さっそく修正に取り組みましょう!
The Big Fixに参加しよう
Snykでアプリケーションのセキュリティを高めている、何千人もの開発者の仲間に加わりましょう。



