課題:オープンソースの脆弱性により、セキュリティ対応が手作業のボトルネックに
Nateraでは多くのセキュリティ対策を実施していましたが、開発者は大量の誤検知を手作業で確認しなければなりませんでした。データに基づく知見を迅速に生み出すことは事業の成功に不可欠です。そこで、ソフトウェア開発ライフサイクル(SDLC)全体でアプリケーションのセキュリティと品質保証を自動化するため、新たなセキュリティ対策の導入を目指しました。そのためには、オープンソースコード、独自コード、インフラ、コンテナにおける脆弱性の発見と管理を実現する新たなツールが必要でした。200人を超える開発者が複数のプロジェクトに取り組むNateraには、各チームが容易に導入できる包括的なDevSecOpsのアプローチが求められていました。
「手作業でレビューしていました。プルリクエストを受け取ると、問題ごとに担当者を割り当てようとしていました。セキュリティがボトルネックになっていたのです」と、Nateraのセキュリティエンジニアリング担当ディレクター、Charlotte Townsley氏は語ります。「セキュリティへの備えを整え、組織全体に定着させたいと考えていました。設計段階からセキュリティを組み込み、SDLC全体でエンジニアに活用してもらうには、コラボレーション、意識、スキル、ツールを強化する必要がありました。それは組織に大きな価値をもたらすはずでした。」
解決策:アプリケーション開発プロセス全体でセキュリティを実現
ソリューションを探す中で、NateraはSnyk、SonarQube、Blackduck、Veracodeなど複数の製品を検討しました。評価の結果、Snyk Cloud Native Application Security Platformが最も開発者に寄り添い、実用的で、具体的な対応につながることがわかりました。スムーズに導入でき、迅速に統合できる点も決め手となりました。このプラットフォームにより、開発者はコードやオープンソースからコンテナ、クラウドインフラまで、アプリケーション全体のセキュリティを担えるようになります。
「Snykを選んだのは、組織や私たちの目標に合っていたからです」とTownsley氏は語ります。「設計が優れていて使いやすく、エンジニアリングチームにとってわかりやすい製品です。依存関係、独自コード、コンテナ、Infrastructure as Codeを確認するためのスイートとしてよくできています。必要なものがすべて揃っています。」
Snyk Codeで開発の早い段階から脆弱性を修正
Nateraは、開発チーム全体がセキュリティに主体的に取り組めるようにしたいと考えていました。その実現には、ワークフローのできるだけ早い段階から脆弱性を認識できる静的アプリケーションセキュリティテスト(SAST)が必要でした。ほかのSASTツールは、スキャンに時間がかかり、精度も低いという課題がありました。一方、Snyk Codeは、開発者が使い慣れた環境でコードを書く際に、デプロイ前から脆弱性の修正に役立つ効率的で実用的な提案を提供します。
「決断は簡単でした。他のツールもいくつか試しましたが、デプロイ後かデプロイ前の段階にならないと同じようにスキャンできるものは見つかりませんでした。比較できるものがまったくなかったのです。」
IDEと統合し、独自コードとオープンソースコードを保護
JetBrains IntelliJ IDE向けのSnykプラグインを活用することで、Nateraのセキュリティチームはエンジニアリングのワークフローにセキュリティをシームレスに組み込めました。開発者が使い慣れた環境で、Snykはエンジニアリングチームのリポジトリをネイティブにスキャンし、アプリケーションのソースコードやJavaのオープンソース依存関係に潜む脆弱性を検出します。コードの作成中に分析・検証することで、開発者はビルドの早い段階で問題を発見し、自分たちで迅速かつ効率的に修正できます。
「セキュリティを、開発者を支援し、その力を引き出すパートナーだと全員に感じてほしいのです」とTownsley氏は語ります。「ライフサイクルの早い段階から使えるツールは、それを実現してくれます。まずIDEに導入し、リポジトリと統合します。これにより、依存関係の脆弱性を取り巻く状況を把握し、十分な情報に基づいた判断ができます。」
Snyk Containerで開発者が重大な脆弱性をすぐに修正
Nateraはアプリケーションの各要素をコンテナ化しているため、エンジニアリングチームは本番環境で多数のコンテナイメージを使用しています。コンテナの脆弱性は医療関連規制への準拠を脅かす可能性があるため、セキュリティチームはレジストリで特定のイメージが使われないようにしたいと考えていました。そこでSnyk Containerを導入し、望ましくないイメージの使用を防ぐとともに、承認済みコンテナ内の脆弱性を修正しました。
「本番環境での実行前にコンテナをスキャンできるようになり、本当にうれしく思いました」とTownsley氏は語ります。「コンテナの脆弱性に注意を払っていない人が多かったので、組織にとって大きな気づきになりました。脆弱性への認識が高まり、自動化も進みました。CI/CDのプラクティスでエンジニアリングチームが重視している、品質改善の考え方にもより合致しています。」
Snyk IaCでリポジトリの可視性を向上
Infrastructure as Codeは、NateraのDevSecOpsを完成させる最後のピースでした。DNA検査結果から得られるデータの知見を提供し、保護するため、Nateraはアプリケーションを支える複数のインフラ構成に依存しています。Snyk IaCにより、開発者は構成を保護し、ベストプラクティスをワークフローに組み込めます。Snyk製品を段階的に導入するこのアプローチは、開発ライフサイクル全体にセキュリティの基盤を統合するというNateraの目標にも合致していました。
「実行環境でインフラの脆弱性につながる問題を見つけるため、包括的にカバーしたいと考えていました」とTownsley氏は語ります。「こうした問題は手作業でレビューされることすらありませんでした。Snykのおかげで、さまざまなIaCリポジトリをすべて可視化できました。」
成果:あらゆる種類のセキュリティ脆弱性を網羅
Nateraは、開発者の作業をほとんど中断させないセキュリティプロセスとポリシーを導入できました。Snykはビルドプロセスに統合され、脆弱性の優先順位付けによって修正を加速します。その結果、Nateraは完全な可視性とソフトウェア品質の向上を実現しながら、顧客が求める革新的な機能の市場投入を遅らせずに済んでいます。
「Snykは組織に大きな影響を与えました。それまでは、これに類する取り組みを何もしていませんでした。独自コード、依存関係、コンテナ、IaCに潜むあらゆる種類のセキュリティ脆弱性を確認できるツールは、私たちにとって、誰も味わったことのないビュッフェのようなものでした。」
業務を妨げずにコードのコンプライアンスを実現
Snykプラットフォームの導入後、Nateraは収集した情報を具体的なセキュリティポリシーに結び付け、違反の可能性をスキャンしていることを明確に証明できるようになりました。この監査証跡は、FDA、HIPAA、SOC 2などの医療業界規制やデータプライバシー法への準拠を維持するうえで欠かせません。
「Snyk CodeがFDAの品質システム要件に適切に対応していることに、皆が感心しています」とTownsley氏は語ります。「積極的に活用しているメンバーは、使いやすく、作業も大幅に速くなると実感しています。さらに重要なのは、大量の誤検知を出す他のツールとは違い、Snykは迅速に動作し、実際の問題を示してくれることです。」
自動化でアプリケーションから脆弱性を一掃
Nateraではチーム全体にSnykを展開し、取り組みを主導する40人のセキュリティチャンピオンを支援しています。今後、残るチームメンバーもトレーニングする予定です。Snykにより、チャンピオンとセキュリティチームは、デプロイを遅らせることなく、エンジニアリングを中心としたセキュリティアプローチを実現しました。プラットフォームの自動化ツールは、コードがマージされる前に脆弱性を検出するため、アプリケーションがステージング環境や本番環境に到達する前に、セキュリティ検証が完了していることをエンジニアリングチームが確認できます。
「Snykをプロセスに組み込み、自動化を進めています」とTownsley氏は語ります。「脆弱性を全面的にブロックする仕組みも整えようとしています。すべてをDevSecOpsで実現できるところまで進めたいと考えています。Snyk導入前に頼っていた一貫性のない手作業のプロセスとは違い、私たちにとって非常にうまく機能するよう、まもなく調整が完了するでしょう。」
