中核となるミッション
Marcin Hoppe氏は、Auth0のプロダクトセキュリティ担当シニアマネージャーです。セキュリティチームを率い、エンジニアリングチームと緊密に連携しながら、組織全体で安全なコードがデプロイされるよう取り組んでいます。本人が語るように、ミッションの中心にあるのは、Auth0のエンジニアがより安全な製品を構築できるよう支援することです。
この目標を達成するため、Hoppe氏とチームはエンジニアにセキュリティの専門家になることを求めるのではなく、Snykなどのガイダンスや使いやすいツールを提供し、開発者がセキュリティを開発プロセスの早い段階から、継続的かつ自動的に取り入れられるよう支援しています。つまり、シフトレフトを推進しているのです。
依存関係の管理と脆弱性のリスク低減
Node.jsを基盤とする技術スタックには、多くのオープンソースライブラリや依存関係が含まれます。Hoppe氏のチームはオープンソースコードを頻繁に活用しており、依存関係の管理が特に重要である一方、難しい課題にもなり得ると認識していました。利用するオープンソースコンポーネントの品質とセキュリティを可視化し、発生するリスクを把握して迅速に対処することに注力しています。
Hoppe氏はこう語ります。「最大の懸念は、攻撃者や悪意ある第三者よりも早く脆弱性を発見することです。同時に、オープンソースのサプライチェーンを十分に可視化し、何を取り込んでいるのか把握したいと考えています。そうすれば、リスクに適切かつタイムリーに対応できます」。まさにここでSnykが力を発揮します。
Auth0がSnykを選んだ理由
Auth0のセキュリティチームは早い段階で、開発者がセキュリティを自動化し、簡単に管理できるソリューションが必要だと認識しました。オープンソースの依存関係管理とリスク低減を支援するうえで、最も「完全で包括的」なソリューションとしてSnykを選びました。開発者がオープンソースコードの脆弱性を自動で発見し、修正するためのツールが揃っていたためです。
「Auth0のチームは、何があっても安全な基盤上で稼働できるよう、Snykを活用しています」
コード内の脆弱性を特定・分析
Auth0は、あらゆるソースに由来する脆弱性を可視化する必要があります。Snykは、オープンソースの脆弱性の特定と分析、そして修正の優先順位付けを支援します。以前、Hoppe氏のチームは、どの脆弱性から修正するかを決める際、技術的な深刻度を主な指標としていました。しかし、時間とともに、より適切な優先順位付けの方法があると気づきました。
たとえば現在は、コンポーネントが顧客データを処理するか、脆弱性が外部の第三者ソースによって特定されているかを分析しています。どちらも優先度の高い脆弱性を示す指標となります。一方、特定のコンポーネントに攻撃者がアクセスしにくい場合は、優先度を下げられる可能性があります。
前述のとおり、Hoppe氏の目標は、顧客であれ攻撃者であれ、外部の誰よりも早く脆弱性を発見することです。一方で、開発チームの速度を落としたり、オープンソースコンポーネントの利用を禁じたりするつもりはありません。Snykは、すべてのオープンソース依存関係に含まれる脆弱性を特定・管理し、この両立を支援しています。
Snykは新たに公表された脆弱性を継続的に検査し、依存関係を包括的な脆弱性データベースと照合します。これにより、個々の脆弱性の深刻度や発生状況を明確かつ迅速に把握できます。そのため開発チームは、セキュリティチームの専門家が頻繁に直接対応しなくても、脆弱性をすばやく発見して修正できます。
開発環境との統合でセキュリティを拡大
Hoppe氏のチームが直面した課題のひとつは、Node.jsの特性上、コマンドラインのセキュリティツールが使いにくいことでした。そこでセキュリティチームは、Snykを開発環境に統合し、開発者がセキュリティ対策をより簡単に進められるようにしました。
Auth0はDockerコンテナを利用していたため、セキュリティチームはSnykを搭載したセキュリティコンテナを開発環境に導入しました。これにより、すべてのエンジニアが、使いにくいコマンドラインツールに悩まされることなく、自分でSnykを実行し、必要なセキュリティ情報を得られるようになりました。人材不足が深刻ななか、セキュリティチームの規模を大幅に拡大せずに、セキュリティ対策を組織全体へ広げることができました。
セキュリティプロセスの構築と進捗の測定
Hoppe氏のチームの重要な役割のひとつは、セキュリティプロセスを構築し、開発者が仕事を進めやすくするツール(前述のセキュリティコンテナなど)を提供することです。セキュリティ対策の自動化やツールの使いやすさを高める機会があれば、積極的に取り組んでいます。
さらにHoppe氏のチームは、Auth0の各チームがセキュリティ態勢を継続的に改善できているか、進捗を測定する役割も担っています。現在は、毎月修正した脆弱性の数を追跡しています。また、修正にかかった時間や、SLAを超過した脆弱性の数も確認しています。
セキュリティ要件とビジネス要件の両立
どの組織も、セキュリティ要件とビジネスの目標やニーズとのバランスを取る必要があります。Hoppe氏とチームはビジネス関係者と緊密に連携し、ビジネス要件を踏まえてセキュリティ上の課題に優先順位を付けています。そして、安全性を維持する必要性と、市場で成長し競争力を保つ必要性とのバランスを取っています。
エンジニアにとって、セキュリティとビジネス上のトレードオフを伴う判断は非常に難しいものです。そのためHoppe氏のチームは、組織内の両者をつなぐ重要な役割を果たしています。Snykなどのツールを使うことで、セキュリティ修正に適切な優先順位を付け、収益面にも配慮しながら、セキュリティ態勢を継続的に改善していることをビジネス関係者に示せます。
安全な基盤の上で稼働
Auth0は、セキュリティを事業の中核に据える企業です。そのため、自社のセキュリティ態勢を可視化し、継続的な改善に取り組む重要性を重視しているのは当然といえます。Snykとのパートナーシップを通じて、Auth0はビジネスニーズとセキュリティ要件の両立を実現し、組織全体で新しく現代的なセキュリティアプローチを取り入れながら、セキュリティ態勢をさらに強化し続けています。