Application Security Orchestration and Correlation(ASOC)に関するシリーズのパート1では、アプリケーションセキュリティのこの新しい動向によってDevSecOpsの効率が向上する仕組みをご紹介しました。今回は、最近のラピッド開発サイクルに伴うAppSecチームの一般的な課題、およびASOCツールを用いて自動化とスケーラビリティの課題を解決する方法に焦点を当てます。
アプリケーション・セキュリティ・チームにとって、DevOpsチームが作成したコードをリリースするスピードに追いつくことは至難の業です。開発のスピードアップに伴い、テストは必然的に後れを取ります。
開発サイクルの後工程になってからアプリケーションコードを遡り、考えられるすべての問題を修正することは困難です。半年前に作成された可能性のあるコードの脆弱性を確認して修正することは容易ではなく、開発者は通常、セキュリティリスクの可能性があるというだけの理由では、動いているコードに触りたがりません。その結果、セキュアでないソフトウェアが頻繁にリリースされ、侵害のリスクが高まります。
その解決策は、セキュリティが追いつくように開発速度を遅らせることではありません。アプリケーション開発の成功にはスピードとセキュリティの両立が必要であり、速度とセキュリティの両方に常に同等の注意を払う必要があります。スピードとセキュリティの両立がDevSecOpsへの移行の理由です。
多くの企業がDevSecOpsへの移行を進めています。Gartnerの最近の報告では、このアプリケーションセキュリティのベストプラクティスへの移行が加速していることを示すいくつかの重要点がデータで明らかになりました。
いずれも有望な計画ではありますが、設計と開発のプロセスにセキュリティを完全に組み込む本格的なDevSecOpsアプローチは、多くの組織にとって実現困難な課題になる可能性があります。包括的なアプリケーション・セキュリティ・テストには多くの時間とリソースを要するからです。アナリストは、カスタムコードやサードパーティー・コンポーネント、およびソフトウェアアプリケーションが配置されているネットワークなど、すべてのアタックサーフェスの脆弱性を評価する必要があります。
AppSecチームは、次に示すようなさまざまなツールを実行する必要があります。
また、上記のツールの実行に加えて、AppSecチ-ムは次のようなメソッドも使用します。
これらのツールとレビューは、通常、ソフトウェア開発ライフサイクル(SDLC)の段階に応じて実行する時期と頻度が異なります。多くのAppSecツールは構成と実行が複雑です。オンボードとメンテナンスに時間がかかるため、同じカテゴリの複数のツール(複数のSASTツールや複数のDASTツール)を実行することが推奨されます。SDLCの過程で1つのソフトウェア開発プロジェクトにそれぞれ固有のユーザーインターフェイスと特性を持つ多数のツールが必要になる場合があります。
複数のプロジェクトで同じツールを使用するには、通常、複数の構成が必要になります。複数のツールが統合されていない場合、レポートの形式が異なり、一貫性のある結果が得られません。誤検知を特定し、結果を相関させて優先順位を付けるまでに数週間(またはそれ以上)かかる場合があります。
しかも、多くの企業は複数のビルドサーバーを管理しています。たとえば、TeamCityやAzureなどのサービスの複数のインスタンスに加えて、数百のJenkinsサーバーが存在する場合があります。連携していない個々のシステムにアプリケーションセキュリティを組み込むことはできません。
さらに問題を複雑にしている要因は、開発チームと比べてセキュリティチームの人員比率が低いということです。開発チームの人員数はセキュリティチームの100倍です。各開発者の作業スピードを考えると、セキュリティチームが潜在的な脆弱性をすべて特定して修正できる見込みはほとんどありません。
AppSecチームが開発チームのペースに合わせて脆弱性を効率的に追跡できないのも無理はありません。
組織には、すべての開発パイプラインでアプリケーション・セキュリティ・テストを一元化し、自動化によるスケーラブルで反復可能な方法で調整する機能が必要です。これにより、セキュリティチームはDevOpsの速度に合わせて仕事を進め、開発パイプラインの停滞を防ぐことができます。
ASOCは自動化とスケーラビリティを実現するためのソリューションです。シリーズ第1回の投稿ではASOCを詳しくご紹介したので、ここではスケーラビリティの側面に焦点を当てます。
オーケストレーションによってAppSecテストを迅速化し、適切なすべてのテストを確実に実行することができます。オーケストレーションでは、スキャンプロセスを自動化し、複数のビルドサーバー上の個々のツールが常に一定の間隔で実行されるようにします。ASOCツールはソースコードを解析して使用言語を特定し、対象アプリケーションに適したAppSecツールを自動的に探し出します。これにより、多数の異なる開発チームがさまざまなプロジェクトに取り組んでいても、一貫性のある標準化されたプロセスが作成されます。
ツールのオーケストレーションによってAppSecテストのプロセスの標準化・自動化が可能になり、新しいアプリケーションをセキュリティパイプラインに簡単にオンボードできます。また、AppSecテストツールのインストール、構成、更新に要する時間も短縮されます。オーケストレーションによって、AppSecチームは必要に応じてテストアクティビティをスケールアップできます。
ASOCツールは、手動レビュー、バグバウンティ、ソースコード・アナライザ、自動/手動ペネトレーション・テスト、ソフトウェア・コンポジション解析ツール、ネットワーク脆弱性評価ツールなど、あらゆる種類のAppSecツールおよびテスト手法で得られた結果を自動的に実行、収集、相関付けします。これにより、AppSecチームがレビューする必要がある結果を削減できます。
スマートオートメーションにより、AppSecチームは、以前の生データの結果と修正アクティビティを活用して、アプリケーションごとに最適なセキュリティ・テスト・ツールの組み合わせを選ぶことができます。各AppSecツールのルールセットは、アプリケーションの重要度、法令遵守要件、組織の全体的な機能に基づいて開発パイプラインごとに最適化できます。
Code Dx Triage Assistantは、自動化プロセスをさらに強化するASOCツールです。機械学習分類子は、事前の決定に基づいて、対処する問題と脆弱性を学習します。Triage Assistantは、個々の組織に応じてカスタマイズされており、セキュリティチームが選り分けなければならない誤検知、ノイズ、重要でない結果を削減します。結果は240件ごとに自動的に分類され、フルタイム従業員の1週間分の作業時間が省力化されます。
ASOCツールはDevOpsと完全に統合され、継続的インテグレーション/継続的デリバリー(CI/CD)パイプラインにシームレスに組み込まれます。Jiraなどの問題追跡ツールとの統合により、開発チームは任意の作業環境で修正を行うことができます。開発チームは、既に使用しているツールや環境内で、セキュリティ関連の問題に関するフィードバックをすぐに得ることができます。
ASOCツールを使用することで、AppSecチームは、ツールの資格情報やアプリケーションのログイン情報などの重要情報の受け渡しを管理できます。また、ツールの障害を監視し、ツールが正しく構成され、最新の状態であることを確認できます。
ASOCを使用することで、AppSecチームは、3つのアタックサーフェス(カスタムコード、サードパーティ・コンポーネント、ネットワーク)のすべてを一元化されたシステムで報告および監査できます。
DevOpsの速度を落とさなくても、ASOCツールを使用することで、セキュリティチームはAppSecプロセスをスケーリングし、問題が検出・対処されないまますり抜けることを防ぎながら迅速に行動することができます。
ASOCシリーズの最終回では、ASOCでAppSecプロセスの説明責任を向上させる方法を詳しく説明します。ご注目ください。