ソフトウェアのセキュリティ強化を目指す組織は、AppSecプログラムの成熟度を最重要課題として掲げる必要があります。成熟度とは、セキュリティを後付けではなく、事前に考慮するための指標です。つまり、運用開始前の土壇場でパッチを適用するのではなく、ソフトウェア開発ライフサイクル全体にわたってセキュリティを組み込む必要があるということです。
ソフトウェアへの信頼を築くという望ましい結果は運任せで実現するものではありません。Forrester Researchの「Gauge the Maturity of Your Product Security Program(製品セキュリティ・プログラムの成熟度を測定する)」と題するホワイトペーパーで発表された最近の分析では、成熟度を高めるには、単にセキュリティツールを組み込んだり、アプリケーション保護機能をデプロイする以上の要件があると指摘しています。
Forresterのホワイトペーパーでは、製品セキュリティがビジネスイネーブラーとなる成熟度レベルに到達するには、「セキュリティチームが製品チームとの共同作業を優先して、セキュリティの問題の検出・修正を自動化し、製品ライフサイクルにシームレスに統合して、事業と顧客への影響を測定する機能に投資する必要がある」としています。
成熟度を評価する方法として、Forresterは、Forrester Secure What You Sell Modelと呼ばれる6段階 (検出、定義、調整、構築、発売、拡張)のチェックリストを用意しています。段階ごとに、現在の成熟度レベルと、レベルを上げるために必要な対策を組織が判断する上で役立つ指標リストが提示されているため、これを利用して独自のレポートカードを作成できます。
検出:プロジェクトがまだ初期段階で、かすかな兆候しか見えないかもしれませんが、この段階でリスク評価、脅威インテリジェンス評価、悪用可能性シナリオを実行します。これにより、製品チームが考慮していなかったセキュリティとプライバシーへの影響にも対処できます。これが成熟度アクティビティの始まりであり、「事前計画」と呼ばれます。
定義:製品にセキュリティを組み込むには、セキュリティチームがその製品の使用目的の範囲、使用者(ターゲット市場)、規制要件を把握する必要があります。また、製品の耐用期間中のアップグレード、保守、サポートに関する要件を含める必要があります。これで、セキュリティチームと製品チームが連携して、Forresterが「実行可能な最低限のセキュリティのしきい値(製品のデプロイ時に企業を保護するために必要な最低限の統制)」と呼ぶ機能を設計できます。
調整:顧客が使用している製品を保護するために必要な人員、ツール、ライセンスの要件を定めます。製品に新しいテクノロジや開発アプローチを採用する場合、新しいツールまたはカスタマイズされたツールが必要になることがあります。製品がオープンソースまたはサードパーティーのソフトウェアコンポーネントを使用している場合(ほとんどの製品が該当します)、サードパーティーのリスクを管理する方法を決めることが重要です。それには、データ、コード、マテリアルを含むすべてのサードパーティー・サプライ・チェーンの依存関係についてインベントリまたはソフトウェア部品表を作成するなどの方法があります。
構築:DevSecOpsの専門知識と経験をお持ちの方にとっては、この段階でのアクティビティは馴染み深いものでしょう。この段階のツールとしては、静的アプリケーション・セキュリティ・テスト(SAST)、動的アプリケーション・セキュリティ・テスト(DAST)、ソフトウェア・コンポジション解析(SCA)などをCI/CDパイプラインに組み込んだ自動化テストツールが含まれます。これにより、「シフトレフト」ではなく、適切なテストが適切なタイミングで実行される「シフトエブリウェア」を目指して開発工程全体でセキュリティの問題に対処することが可能になります。ペネトレーションテストでは、セキュリティ担当者は誤用シナリオを検討し、製品が果たすべき機能とともに、禁止されるべき機能もテストする必要があります。
発売:この段階では、製品は一般に販売されているため、Webアプリケーションファイアウォール、ボット管理、ランタイムアプリケーションの自己保護、改竄防止などのツールを使用して製品を保護する必要があります。これらのツールは、ライフサイクルの早い段階で特定されたリスクと脅威に基づいて、製品データと顧客データの両方を保護するように設計されている必要があります。また、攻撃を検出して対応するためにテレメトリデータを収集する必要があります。
拡張:この最終段階でのセキュリティチームの仕事は、保護テクノロジからのフィードバックを分析し、製品のセキュリティ指標と設定されたベースラインおよびベンチマークを比較することです。主な目標は、製品セキュリティを競争力のある差別化要因にすることです。そのために、カスタマーエクスペリエンスを分析して、セキュリティとユーザビリティのバランスを改善する変更を加えます。
取り組みを始めたばかりですぐに高い成熟度を実現できるとは期待しないでください。成熟度を高めるには、時間と人材への投資が必要です。すべての条件をすぐに満たすことができなくても諦めないでください。言い古された言葉ですが、セキュリティは短期間のイベントではなく、長い旅程です。その行程における組織の進捗状況と必要な行動を評価する参考として、Forresterは初級、中級、上級の各レベルに応じてするべきことについてのアドバイスでレポートを締めくくっています。
初級:製品セキュリティの基盤を築くには、セキュリティのプロセスとツールを更新して、開発チームの過度の摩擦を排除する必要があります。セキュリティチームは予算、スキル、ツールを評価することで、製品ライフサイクルの全段階で製品チームと効果的に連携することができます。
中級:このレベルでは、自動化と指標への投資に重点を置く必要があります。自動化された統合型ツールを慎重に選択して徐々に導入し、指標を使用して有効性を測定します。また、製品のセキュリティ対策が、新製品と更新された製品の両方の製品ライフサイクル全体を網羅していることを確認します。
上級:この段階になると、製品のセキュリティ機能が収益拡大に貢献するようになりますが、誰もそのことを知らなければ、競争力の向上につながりません。この時期に他のビジネスリーダーと連携して市場での認知度を高めるための戦略を策定します。
BSIMMレポートは、AppSecの成熟度評価の基準を提供し、セキュリティ専門家同士をつなぐコミュニティの役割を果たし、対策アクションプランの策定を支援する推進モデルです。