課題
Skyscannerが直面していた状況は、多くのチームにとって身近なものでしょう。大規模なトラフィックを抱えるウェブサイトとアプリを運営し、急速かつ大規模に開発を進めながら、プラットフォームのセキュリティも維持する必要がありました。
Snykを導入したことで、Skyscannerは各プロジェクトが直接または間接的に利用する依存関係を一元的に可視化できるようになりました。セキュリティチームは、リスクのある箇所をできる限り効率よく特定したいと考えていました。それまでは、どのプロジェクトがどの依存関係を利用しているかを調べるための一元的な一覧がなかったためです。現状を可視化して把握できていなかったことで、Skyscannerの開発チームは、オープンソースの脆弱性リスクを効果的に低減するために、十分に注力できていませんでした。
Skyscannerの法務チームは、プロジェクトの依存関係で使用されているライセンスを追跡するという大きな課題にも直面していました。多くの企業と同様に、Skyscannerにとっても、製品全体で使用されているライセンスを詳細に把握することは重要です。これにより、依存関係が適切にライセンスされていることを確認できるだけでなく、利用目的に合致する場合には、より「制約の厳しい」ライセンスのソフトウェアを活用する余地も生まれます。過度に制限的な一律のポリシーに頼る必要がなくなります。
「Snykは、Skyscannerで利用している最も重要なセキュリティツールの一つです。実際に統合すれば、その重要性が分かるでしょう。」
Snykによる支援
Skyscannerは、自社の開発環境や手法に適したツールを探していました。複数の選択肢を評価した結果、開発者の力を引き出すという自社の方針に合致したのはSnykだけでした。
「多層的なアプローチが取れる点が気に入りました。Snykは、Skyscannerでのセキュリティの進め方にうまく適合しています。セキュリティチームが門番となってコードの全行をレビューし、すべてに承認を与えるのではなく、開発者自身が対応できるよう支援できます。GitLabのソースコード管理にSnykを組み込めばコミット時にスキャンでき、CIに組み込めばビルド時に問題を検出できます。開発者が希望すれば、Snykポータルへのアクセスも提供できます。この多層的なアプローチにより、エンジニアリングチームはニーズに応じてSnykを活用でき、私たちセキュリティチームも、プロセスのどこかの段階で脆弱性を検出できると分かります。」

Snyk Vulnerability Databaseでは、依存関係のどのバージョンに脆弱性があるのか、またその修正方法を正確に確認できます。GitLabとの連携やマージリクエストの作成など、Snykの修正ツールを活用し、Skyscannerの開発者はアップグレードやSnykのパッチを適用して、コードベースの脆弱性修正に取り組み始めることができました。
「『導入すべき最優先のツールは何か』と考えているなら、依存関係の脆弱性スキャナーは優先度の高いツールの一つです。使い始めれば、リスクの全容が見えてきて、対策が必要だと実感するでしょう。」
導入効果
現在、SkyscannerはSnykを使って約500件のプロジェクトを監視し、セキュリティ状況を把握するとともに、脆弱性とライセンスの問題に対処しています。導入開始から間もなく、ベースプロジェクトテンプレートの一つで使用されていたライブラリに、深刻度の高い脆弱性があることが判明しました。ベースプロジェクトテンプレートには複数のライブラリが含まれており、多くのプロジェクトの基盤となっています。SkyscannerはSnykのパッチを適用し、すべてのプロジェクトで脆弱性を修正できました。その効果は大きく、このテンプレートを使用する数百件のプロジェクトが保護され、セキュリティリスクが大幅に低減しました。
SkyscannerがSnykを信頼する3つの理由
GitLabで脆弱性の修正をマージするまで、わずか2クリック。本番環境を安全に保てます
開発者は既存のツールとの連携を気に入っています
SDLCの複数の段階に簡単に組み込めるため、確実に保護されていると分かります