課題
Helvetiaのチームは、クラウドへの移行に伴い、社内開発スタックからの移行を始めました。そのため、セキュリティ要件に改めて注力し、クラウドインフラ上で独自開発ソフトウェアを稼働させる際のリスクを把握する必要がありました。アプリケーションセキュリティは手作業で管理し、OWASPの依存関係チェックや外部セキュリティレビューを実施していました。しかし、環境内に新しいアプリケーションが数多く増えたため、このプロセスでは時間がかかりすぎていました。ソフトウェア開発にあたりミドルウェアを導入したため、すべての依存関係をカバーできるツールが必要でした。また、SDLCの後工程でセキュリティテストを行う「保護」から、より早い段階で「検出」する体制へと移行し、セキュリティを左へシフトしたいと考えていました。そのため、自動でレポートを作成できるツールが必要でした。さらに、法務チームは、ソフトウェアでのライセンス利用状況を可視化できるソリューションを求めていました。検出ソフトウェアプラットフォームに求める要件は次のとおりです。
以下を自動でレポート:
使用中の依存関係に含まれる脆弱性
ライフサイクル管理
ライセンスの利用状況
開発サイクルへの統合
標準で次をサポート:
コンテナイメージのスキャン
コードの依存関係スキャン
修正情報
Kubernetes / OpenShiftとの統合
主要なプログラミング言語の依存関係スキャン
ISMSおよびISO 27001への準拠
ソリューション
Helvetiaのランタイム環境と開発環境をクラウドインフラへ移行するにあたり、チームは、プラットフォーム上で稼働するすべてのアプリケーションを把握し、その健全性を確認することを目指していました。20社を超えるベンダーを要件に照らして評価した結果、Helvetia Containerプラットフォームの構築と開発には、AWS、OpenShift、Snykのような成熟したプラットフォームが必要だと判断しました。
Snykは、特にライフサイクル管理とライセンス管理において、ニーズに最もよく合致するソリューションでした。さらに、Helvetiaチームが重視するJava/Maven、TypeScript/NPM、Python、.NETのサポートにも対応できると分かりました。開発者向けには、CLIから簡単に使え、IDEのIntelliJに統合できるツールを求めていました。また、Bitbucketからリポジトリを直接スキャンできるBitbucket Serverとの統合も重要でした。最終的には、各ビルドをテストし、社内要件への違反があれば通知する、CI/CD全体との統合が鍵となりました。
また、Snykの料金モデルでは、ユーザー数に応じて小規模に開始し、段階的に拡大できました。Helvetiaがクラウドへの移行を段階的に進める中で、事業の成長に合わせてSnykも拡大できるため、これは重要な点でした。
導入効果
Snykの導入後、チームは独自開発ソフトウェアのライフサイクル上の問題を自動で検出し、Snykのレポートを使って特定の依存関係を確認できるようになりました。また、使用中の依存関係を、より抽象度の高い形でライフサイクル管理ツールのLeanIXに登録できるようになりました。これにより、依存関係の利用状況を追跡し、サポート終了に関する問題を特定できます。
CTOは監査前にセキュリティテストを完了するよう求めています。多くの検出事項が見つかる一方、対応には時間がかかります。Snykによって、まず基本的な問題に対処できるようになり、重要なアプリケーションのペネトレーションテストや監査を優先できるようになりました。
Helvetiaチームはアプリケーションの健全性を可視化できるようになり、開発チームは、アプリケーションで使用するサードパーティ製コンポーネントをより適切に評価するためのツールを得ました。これにより、継続的なセキュリティ対策が可能になりました。Björnの言葉を借りれば、
「開発中に品質を保証する必要があり、Snykのおかげで実現できました。Snykのようなツールがなければ、ここまで来ることはできなかったでしょう。」
Red Hat OpenShiftとSnykの統合
現在、チームはSnyk Container / OpenShift統合を使って稼働中のコンテナワークロードをスキャンしており、OpenShift上で稼働するアプリケーションのアーキテクチャ定義にも取り組んでいます。
HelvetiaのチームにはAWSやAzureのクラウド経験がなかったため、クラウドプロバイダーの動向やパフォーマンスを把握できるプラットフォームを探していました。特定のクラウドプロバイダーに縛られることは避けたいと考えていました。Björnは次のように話しています。「OpenShiftがそれを実現してくれます。コンテナの経験はあまりありませんが、OpenShiftならコンテナを管理でき、セキュリティ機能も組み込まれています。これは企業として非常に重要です。」
OpenShiftは、チームが自分たちで構築する必要をなくしてくれるコンテナランタイムの一つです。また、開発者体験を最適化する多くのメリットも提供します。cloudshiftインターフェースからクラウドの基盤に関する詳細を隠したり抽象化したりできるため、内部の仕組みを気にする必要がありません。これにより、ライブラリやデータベースに関する懸念が軽減され、開発者はより多くの情報を得られるようになりました。
