企業の課題
Skyscanner の状況は多くの企業にとって思い当たるところがあるのではないでしょうか。高トラフィックの Web サイトやアプリの提供、短期間での大規模な開発と同時に、プラットフォームのセキュリティ確保も必要だという状況です。
Snyk を統合することで、Skyscanner では、プロジェクトで直接的または推移的に使用している依存関係を一元的に可視化できるようになりました。これまで、プロジェクトの依存関係を一元管理するインベントリが存在していなかったため、セキュリティチームは、エクスポージャーの領域をできる限り効率的に追跡したいと考えていました。Skyscanner の開発チームは、現状を把握することができなかったため、オープンソースの脆弱性エクスポージャーの効果的な低減に思うように注力できていませんでした。
また、Skyscanner の法務チームも、Skyscanner のプロジェクトの依存関係で使用されているライセンスの追跡に大きな課題を抱えていました。他の多くの企業と同様、Skyscanner においても、製品間で使用されているライセンスを詳細に把握することは重要です。これにより、依存関係でライセンスが適切に使用されていることを確認できるだけでなく、過度に制限された包括的なポリシーに基づいて運用する代わりに、ユースケースに適合する場合には「許容範囲」の狭いライセンスのソフトウェアを利用する余地を拡大できることになります。
「Snyk は、Skyscanner で使用する最重要セキュリティツールの 1 つです。実際に統合してみると、その重要性がよくわかります」
Snyk の導入効果
Skyscanner では、自社の開発環境や開発手法に適した市販のツールを探していました。複数の候補を検討した結果、Skyscanner では Snyk だけが開発者をエンパワーするアプローチに合致していると判断しました。
「多層的、重層的なアプローチを気に入っています。Snyk は Skyscanner のセキュリティ対策とよく連携しています。セキュリティチームがゲートキーパーとなってコード全行をレビューし、すべてを承認する代わりに、開発者に権限を付与できます。Snyk を GitLab のソースコード管理に実装してコミット時にスキャンし、CI にも実装して、ビルド時に問題を発見できます。Snyk ポータルへのアクセスは開発者が望む場合に限り、提供できます。この階層化されたアプローチにより、エンジニアリングチームは必要に応じて Snyk を活用でき、私たち(セキュリティチーム)は、いずれかのタイミングで脆弱性を発見できるようになるのです」
Snyk の脆弱性データベースには、依存関係のどのバージョンに脆弱性が存在するか、また、その修正方法が正確に表示されます。Skyscanner の開発者は、GitLab との統合やマージリクエストのオープンなど、Snyk の修正ツールを使用することで、アップグレードや Snyk パッチを適用してコードベースの脆弱性の修正に取り組めるようになりました。
「最優先で導入すべきツールはどれかと考えたら、依存関係の脆弱性スキャナーがリストの上位に入ります。一度使い始めると、エクスポージャーの全体像が見えて、何か対策すべきだと気づけるようになります」
導入成果
Skyscanner では現在、Snyk で 500 件近くのプロジェクトをモニタリングしており、セキュリティの状態を把握し、脆弱性とライセンス問題の両方に対処できています。たとえばロールアウトの非常に早い段階で、ベースプロジェクトのテンプレートの 1 つに使用されていた QS Ö¿ に存在する重大度の高い脆弱性を、Snyk の警告によって発見できました。ベースプロジェクトテンプレートには複数のライブラリが含まれており、多数のプロジェクトの基盤となっています。Skyscanner では Snyk パッチを使用して、すべてのプロジェクトで脆弱性を修正できています。その効果は大きく、そのベーステンプレートを使用していた何百ものプロジェクトでセキュリティが確保され、セキュリティエクスポージャーを大幅に低減できています。
Skyscanner が Snyk に信頼を寄せる 3 つの理由
たった 2 回クリックするだけで、Gitlab で脆弱性の修正をマージし、本番環境のセキュリティを確保できる。
既存のツールと統合でき、開発者に好評。
SDLC の複数のステージに簡単に統合できるため、セキュリティが確保されていると実感できる。