close search bar

Sorry, not available in this language yet

close language selection

継続的テストとCI/CDパイプラインにおけるセキュリティギャップを解消

Kimm Yeo

Feb 02, 2023 / 1 min read

最近発表されたガートナー社の2022年の「Critical Capabilities for Application Security Testing(アプリケーション・セキュリティ・テストのための重要な能力)」(AST)レポートでは、Synopsysが5つのユースケースで最高スコアを獲得しました。「Continuous Testing Use Case(継続的テストのユースケース)」で、ガートナー社によるランキングと評価、および継続的テストの導入を検討中または現在実施している組織にとってSynopsysの製品ポートフォリオが最適な理由をご覧ください。

継続的テストを実施するための上位14のツールの能力を評価する基準に関しては、動的アプリケーション・セキュリティ・テスト(DAST)、インタラクティブ・アプリケーション・セキュリティ・テスト(IAST)、APIセキュリティを実行するツールのテストと検出の機能に比重が置かれ、静的アプリケーション・セキュリティ・テスト(SAST)およびソフトウェア・コンポジション解析(SCA)を実行するツールの機能は同等以下の比重で評価されています。その理由を理解するために、最近のソフトウェアエコシステムで継続的テストが果たす役割をご覧ください。

継続的アプリケーション・セキュリティ・テスト

まず、継続的テストとは何かを理解する必要があります。継続的テストとは、コードが変更されるたびに自動テストを実行することです。継続的テストはソフトウェア開発ライフサイクル(SDLC)全体にわたって継続的かつ反復的に実行され、ソフトウェア・デリバリー・パイプラインに組み込まれて、コードやバイナリリポジトリにプッシュされた変更に関するフィードバックを迅速化します。

継続的テストは、特にDevOpsで継続的インテグレーション/継続的デリバリー(CI/CD)を推進する場合に重要です。CI/CDは時代の先取りを目指す企業に必須のスピーディーな製品のイノベーションを可能にする手法であるのに対し、継続的テストは品質に対する信頼の確立を支援します。継続的テストにより、製品が想定どおりに動作し、信頼性とセキュリティが確保されているという安心感を得られます。デリバリーパイプラインでの継続的テストにより、必要な品質レベルを達成するために、必要な場所に任意の数のクオリティゲートを導入することができます。

継続的テストにおけるセキュリティギャップを解消

最近では、継続的テストは標準的な手法になりつつありますが、多くの組織にとって、セキュリティ監視のための新たな層を組み込むことは簡単ではありません。それには容易に理解できる理由があります。

セキュリティ層を追加しなくても、継続テストの実装に必要な作業はすでに膨大です。継続的テストを機能させるには、開発チームとQAテストチームが協力してテストを早期に定義し、テスト駆動型またはビヘイビア駆動型のテストケースを作成して、最適なテストカバレッジを確保する必要があります。継続的テストの実行を成功させるには、開発チームとテストチームがさまざまな用途で使用するための開発に適したツール(コード、CI/CD統合、サポートされているオープンソースなど)を備えた包括的なオンデマンドのテスト環境を装備する必要があります。理想的には、単体テスト、統合テスト、機能テスト、回帰テスト、受け入れテストなどのさまざまなニーズにオンデマンドで対応し、運用環境に近いデータを使用して包括的なテストを実行できるように、適切なテストデータをプロビジョニングできるテスト環境が求められます。継続的テストでは、継続的パイプラインの各段階において、さまざまな種類のテストが、多様な環境やデプロイ先のさまざまな環境でシームレスに実行されます。テストはコードチェックインやコード変更などのイベントによって自動的にトリガされます。継続的テストの目的は、迅速なフィードバックを確保し、できるだけ早くチームに問題を警告することです。

継続的テストは、運用環境への移行が進むにつれて、ますます困難で時間がかかるようになります。また、シミュレーション環境が運用環境に近づくほど、テストが深化します。コードの成熟と環境の複雑化に応じて、徐々にテストを増やし、より複雑なテストを追加していく必要があります。以前に開発したものと同じテストケースがSDLC全体で実行されない可能性があります。テストケースは重要な変更が行われるたびに更新する必要があります。また、コードの成熟度が高まり、環境が上位レベルに進み、構成とインフラストラクチャが運用段階に到達するまで、自動化されたスクリプトをテスト進行の各段階で更新する必要があります。

テストがリリース段階に向かって進行するにつれて、テストの実行に必要な時間も増加します。たとえば、単体テストの実行は短時間で完了するかもしれませんが、統合テストやシステム・テスト/負荷テストの実行には数時間から数日かかる場合があります。GoogleのState of DevOps Reportで報告されている、エンドツーエンドの継続的テストを実行するために必要な時間と労力の大きさを考えると、自動化されたセキュリティ・テストが他のタイプの自動化作業(ビルドやリリースの自動化など)に遅れをとっていることも不思議ではありません。

継続的テストとデリバリーパイプラインにセキュリティテストのプラクティスとツールが組み込まれている組織では、一般的に、自動化されたパイプラインにSASTツールやSCAツールがデプロイされています。各ツールはSDLCの工程でそれぞれ固有の位置を占めていますが、独自開発のコードベース、およびオープンソース・コードやサードパーティー製コードなどの外部依存関係を保護するためにSDLCの早い段階で導入する必要があります。コードベースが管理され、ユーザーエクスペリエンスを確実に予測可能な統制された環境であれば、これで十分かもしれませんが、

ソフトウェアアプリケーションの開発とデリバリーのパラダイムがモノリシックモデルから高度に分散されたコンピューティング・モデルに移行した昨今では、この装備では不十分です。マイクロサービスアーキテクチャ、クラウド、API、サーバーレス関数などのテクノロジの登場により複合化が進んでいるモダンアプリケーションには、無数のソフトウェアコンポーネントとイベント駆動型トリガが存在します。また、重大な脆弱性やエクスプロイトを開発フェーズでは予測または捕捉できず、アプリケーション・ランタイム・テストでさまざまなコンポーネントが統合される段階で初めてトリガされる場合もあります。最近の組織は、独自開発の内部コードベースやアプリケーションから、サードパーティー製のコンポーネントやAPIに至るまで、膨大な量のアプリケーションを所有・管理しなければならず、これが予期しないアタックサーフェスの拡大につながります。

そのため、摩擦を最小限に抑えてCI/CDパイプラインの継続的テストを強化できるモダンなDASTアプローチをテストに組み込むことがこれまで以上に重要になっています。

Synopsysによるパイプラインの継続的なセキュリティ構築の支援方法

Synopsysは、お客様のアプリケーション・セキュリティ・ニーズに対応する広範かつ包括的な製品ポートフォリオをご提供しています。当社のASTツールは、シームレスなライフサイクル統合により、継続的パイプライン全体にわたるエンドツーエンドのアプリケーション・セキュリティ・テスト・カバレッジを実現します。

  • コンテキストを切り替えたり、現在のワークフローを中断することなく、毎回継続的にIDEでセキュリティ上の不具合を早期に特定してトリアージするには、Code Sight™が開発者にとって必然的な選択肢です。
  • Seeker® IASTは、モダンなWeb、API、クラウド、サーバーレス、マイクロサービスベースのセキュリティテストを可能にします。
  • WhiteHat™ DASTをIntelligent OrchestrationやCode Dx®などのApplication Security Orchestration and Correlation(ASOC)ソリューションと組み合わせることで、継続的パイプラインに摩擦や寸断を生じることなく、簡単に増分テストに優先順位を付けてオーケストレーションし、トリアージと修正を行うことができます。

Synopsysのソリューションの主な利点:

  • 継続的テストとCI/CDを拡張したコンカレントアプリケーションのランタイム・セキュリティ・テストにより、スキャン、エキスパート人材、サイクルの追加が不要
    • モダンな専用のSeeker IASTは、バックグラウンドでランタイム・セキュリティ・テストと監視を実行し、人手の介在や追加のスキャンを必要とせずに、セキュリティテストの代用として機能します。特許取得済みのアクティブ検証エンジンによる継続的な検出と自動検証で、重要な結果をリアルタイムに警告します。開発チームとQAチームは、テストワークフローを中断することなく通常のワークロードを実行できます。
  • マイクロサービス、クラウド、API、サーバーレス環境でのデプロイなどのモダン・ソフトウェア・アーキテクチャをサポート
    • Seeker IASTはテスト対象アプリケーション(AUT)のテストカバレッジを拡大するために有効です。OpenAPI(Swagger)仕様を公開しているアプリケーションから自動的に収集した仕様に従い、追加設定を必要とせずにAPIエンドポイントを自動的にテストします。API仕様を指定する必要はありません。SeekerがAUTからAPI仕様を見つけてダウンロードし、テストでAPIをクロール(巡回)するための追加リクエストを送信することにより、通常のトラフィックにピギーバック(共連れ侵入)することを可能にします。
    • テスト済みおよび未テストのURLを含むすべてのAPIとインバウンドおよびアウトバウンドのエンドポイントを検出し、インベントリを作成する機能を備え、GraphQLなどのモダン開発/デプロイフレームワークおよびAWS LambdaやAzure関数などのサーバーレス関数呼び出しをサポートします。
    • 結果を自動的に検証し、誤検知をほぼゼロに減少させる特許取得済みのアクティブ検証エンジンを備えています。
  • テスト対象アプリケーションのさまざまな段階におけるエクスプロイトと脆弱性の動的な可視化
    • Seeker IASTはソースからシンクへの重要なデータフローの視覚的なマッピングを表示します。これは、膨大なインバウンド/アウトバウンドのエンドポイントをトレースして潜在的な脆弱性をすばやく特定する方法がない最近の高度に分散したコンピューティング・モデルでは特に重要です。インタラクティブなデータフロー・マップは、ペネトレーション・テストにかかる時間と労力を削減し、脅威モデリングにも役立ちます。
    • アプリケーションレベルからバイナリレベルまでのソフトウェア・コンポジション解析により、完全に自動化された継続的テストが行われ、コード行単位の詳細な情報とアプリケーションのセキュリティリスクに関するリアルタイムの実用的な洞察が得られることで、トリアージと修正を迅速化することができます。
    • さらに詳細なビジネスロジック評価を実行するためにエキスパート人材を必要とするコーナーケース(または機密性の高いアプリケーション)の場合、SynopsysのDASTソリューションによりテスト・ワークフローの中断を最小限に抑えながら、運用前および運用環境を安全にテストできます。
  • eラーニングの統合による開発者の能力強化
    • SynopsysのASTツールは、開発者に詳細な修正ガイダンスとコンテキストに応じたeラーニングを提供し、開発チームとQAチームを対象に、コーディング、テスト、および重要な品質/QAテストの段階で、IDE(統合ソフトウェア開発環境)を離れることなく問題を修正する方法に関するOJTを実施します。
  • Application Security Orchestration and Correlationにより迅速なトリアージと修正のための継続的な洞察を提供
    • Code Dxは、アプリケーション、チーム、ASTツール全体のセキュリティ・リスクを包括的に可視化し、組織で使用されているさまざまなASTツール(SAST、SCA、DAST、IAST)からの膨大な結果を集約、正規化、関連付けするために役立ちます。チームは継続的なパイプラインを停止することなく、リスクを容易に確認し、自動的にトリアージして、総合的な修正アクティビティを計画することができます。
    • Intelligent Orchestrationは、業務ニーズ、リスク、セキュリティポリシーの規定に従ってパイプラインの適切な段階で適時に適切な増分テストを自動実行します。

継続的セキュリティテストと継続的デリバリーの実装を成功させるまでには時間がかかりますが、開発、セキュリティ、DevOpsの各チームが緊密に連携し、正確なデータと適切なツールセットに基づく継続的なセキュリティフィードバックを活用することで、重要なアプリケーションの防御に役立ちます。

ガートナー社の2022年版「Critical Capabilities for Application Security Testing(アプリケーション・セキュリティ・テストのためのクリティカル・ケイパビリティ)」(AST)レポートを無料で入手できます

Continue Reading

トピックを探索する