ソフトウェア・インテグリティ

 

ASOCシリーズ・パート1:DevSecOpsの効率を向上させる ASOC(Application Security Orchestration and Correlation)

品質を低下させることなくアプリケーション・セキュリティ・プロセスを加速するASOC(Application Security Orchestration and Correlation)ツールは、DevSecOpsを実現するための鍵なのです。

DevSecOpsの効率を向上させるASOC | シノプシス

2019年の「Hype Cycle for Application Security」報告書で、GartnerはApplication Security Orchestration and Correlation(ASOC)と呼ばれる高優先度の新しいツール・カテゴリを発表しました。ASOCは組織のAppSecプロセスに3つの主な利点(効率性、スケーラビリティ、説明責任)をもたらします。

3部構成のシリーズの初回となる本稿では、3つの利点のそれぞれについて詳しく説明します。まず、効率性に焦点を当て、ASOCがDevSecOpsの機能向上を支援する仕組みについて具体的に説明していきます。

ASOCとは

Gartnerは、AVC(Application Vulnerability Correlation)とASTO(Application Security Testing Orchestration)のカテゴリを組み合わせた新しいASOCツールのカテゴリを設けました。AVCツールは、さまざまなアプリケーション・セキュリティ・テスト・ツールの結果を相関付けて重複を排除することで、アプリケーション・セキュリティ(AppSec)のプロセスを効率化し、結果を単一化します。また、発見された脆弱性に優先順位を付け、修正の管理を効率化します。ASTOツールは、ソフトウェア開発ライフサイクル(SDLC)全体にわたってアプリケーション・セキュリティ・テスト・ツールを統合し、DevSecOpsアプローチによるソフトウェア開発を推進します。多くの組織がAVCとASTOの両方の機能を必要とし、複数のベンダーが両方の機能を1つのツールで提供していたという経緯から、2つのカテゴリがASOCに統一されました。

Gartnerは、ASOCツールを「ワークフローを自動化してソフトウェア脆弱性のテストと修正を効率化する」ツールと定義しています。ASOCツールは複数のソース(静的/動的/インタラクティブ解析 [SAST/DAST/IAST]、ソフトウェア・コンポジション解析[SCA]脆弱性評価など)からデータベースにデータを取り込み、セキュリティ・テストを自動化します。ASOCツールは結果の相関付けと分析を行い、修正作業を一元化して優先順位を付け、アプリケーション開発ツールとセキュリティ・テスト・ツールの間の管理レイヤーとして機能します。

ASOCツールの認定を受けるには、標準的なAppSecツールと差別化する一定の基準を満たす必要があります。

  • 幅広い商用アプリケーション・セキュリティ・テスト・ツールと統合すること
  • ツールから結果を相関付けすること
  • オーケストレーション機能を備えていること

堅牢なASOCツールは継続的インテグレーション/継続的デリバリー(CI/CD)エンジンと統合されています。ASOCツールを評価する場合に重要な機能を以下に示します。

  • 幅広いAppSecテスト・ツールによる結果の相関付けと解析
  • 欠陥追跡システムとの統合
  • 既存のセキュリティ・テスト・ツール、開発ツール、CI/CDツールを簡単に統合およびサポートできる機能
  • 相関付けと解析の速度と精度
  • 技術的な指標、ビジネス解析、リスク解析などの報告の範囲と性質

ASOCによりDevSecOpsの効率を向上させる3つの方法

重大な脆弱性に優先順位を付けて修正することでリソースの適切な割り当てを可能にする

リソースの割り当ては多くのAppSecチームが直面する課題です。AppSecツールはシステムに潜む幅広い問題を発見しますが、誤検知や無関係な問題が含まれている可能性があります。潜在的な脆弱性のトリアージに時間がかかると、多くの企業にとっては過大な負担になる可能性があります。

IEEEの調査によると、1件の脆弱性をトリアージし、悪用の可能性がある問題かどうか、修正する必要があるかどうかを判断するために平均10分かかることがわかりました。また、標準的なSASTツールでは、解析結果の平均66%が当の問題と無関係であることが複数の調査で示されています。つまり、誤検知または無関係という判定に終わる結果のトリアージに膨大な時間が費やされているということです。AppSecチームには、アプリケーション・セキュリティに脅威をもたらさない問題の調査に無駄な時間をかけている余裕はありません。

脆弱性の優先順位付けはセキュリティの面でも開発の面でも重要です。アジャイル開発には迅速な反復が求められます。開発プロセス全体でセキュリティを維持するには、次回のビルドがプッシュされる前に重大な欠陥に対処する必要があります。

ASOCツールでは、悪用可能性に基づいて脆弱性に優先順位を付け、問題ごとに重大度スコアを割り当てることができます。これにより、セキュリティ・チームは実際に脅威をもたらす脆弱性への対処に集中できます。

アプリケーションがHIPAAPCI DSSなどの規制に準拠する必要がある場合、ASOCツールでコードベースをチェックし、違反しているコードの正確な行を特定し、準拠方法についての提案を受けることができます。このタイプのコンプライアンスの問題は厳しい刑罰や罰金につながる可能性があるため、多くの場合、優先度が高くなります。

高度なASOCツールには、機械学習を使用し、過去のトリアージの決定に基づいて重大な脆弱性を自動的に予測して検出する機能が組み込まれています。結果は240件ごとに自動的に分類され、フルタイム従業員の1週間分の作業が省力化されます。

ASOCツールの優先順位付け機能を利用することで、セキュリティ担当者や開発担当者は、次のリリースの前に重大な脅威に対処するために必要な情報を得ることができます。

ASOCツールは修正の管理にも役立ち、セキュリティ担当者は開発チームにタスクを割り当て、進捗状況を追跡することができます。問題追跡ツールや開発環境との統合により、指定したワークフロー内で問題を直接修正できるため、開発担当者は問題に対処しやすくなります。

実行するAppSecプロジェクトが1件でも30件でも、常にセキュリティを最優先課題とするアジャイル開発プロセスを作成するには効率的なリソース割り当てが不可欠です。

複数のプロジェクトや部門にわたって多数のAppSecツールの結果を一元管理することが可能

DevOpsは開発チームと運用チームがアジャイル開発手法に対応するために緊密に連携し始めたことから誕生し、DevOpsの進化に伴い、セキュリティはプロセスに統合されていきました。

これは設計と開発の全段階に注意を払う必要があるアプリケーション・セキュリティにおいて重要なステップでしたが、一方でセキュリティ・チームがアジャイルなDevOpsの速度に追いつくことは至難の業です。

以下に、アプリケーション・セキュリティで使用するさまざまなAppSecテスト・ツールをいくつかご紹介します。

  • ソースコード、バイト・コード、アプリケーション・バイナリの脆弱性を探し、内部からアプリケーションを検査する静的アプリケーション・セキュリティ・テスト(SAST)ツール
  • 外部からアプリケーションにアプローチし、ロボットによる攻撃をシミュレーションする動的アプリケーション・セキュリティ・テスト(DAST)ツール
  • SASTツールとDASTツールを組み合わせ、実行中のアプリケーション内の情報を活用して脆弱性を特定するインタラクティブ・アプリケーション・セキュリティ・テスト(IAST)ツール
  • サードパーティーおよびオープンソース・ソフトウェアのアプリケーションを解析し、脆弱なコードを検出するソフトウェア・コンポジション解析(SCA)ツール
  • 潜在的な脆弱性を特定して評価するSTRIDEやDREADなどの脅威モデリング・ツール
  • アプリケーションのコード品質とセキュリティの高さを確認できる手動テスト

アプリケーション・セキュリティの特定の課題に焦点を当てたツールは市場に多数存在します。たとえば、自社開発コードの弱点を見つけることができるSASTツールやオープンソース・コードの脆弱性を検出できるSCAツールなどがあります。複数のツールを組み合わせることで、アプリケーションのコードベースの全体像を把握できます。

ただし、ツールによって結果の表示形式が異なり、同様の潜在的問題が複数のツールで見つかる可能性があります。複数のツールから得られた膨大な結果リストから不要な結果を除去し、重複を排除し、最大の脅威をもたらす脆弱性を特定する作業は非効率的で時間がかかり、セキュリティの速度を開発速度に合わせることは至難の業になります。

ASOCツールでは、こうした問題を解消するために以下の機能を利用できます。

  • アプリケーション・セキュリティのための一元化された中央ハブ
  • 市販SAST、DAST、IASTツールのサポート
  • 複数のAppSecツールと手動テストの結果を自動的に相関付けして一元化
  • 一般的な開発環境および問題追跡ツールとの統合
  • 脆弱性を追跡・修正するためのツールの装備

これらの機能により、脆弱性カバレッジが向上し、誤検知を削減し、結果の重複を排除してソフトウェア・テストの効果を高めることができます。また、さまざまなツールを使用していても、AppSecの問題を一元的に可視化できます。さらに、重大なリスクを迅速に特定し、問題に発展する前に対処できます。

ASOCツールを活用することで、品質を低下させることなくAppSecプロセスを加速し、開発チームとセキュリティ・チーム間の連携を強化することが可能になります。また、DevSecOpsアプローチが実現し、セキュアなアプリケーションの迅速な開発という要求を満たすことができます。

脆弱性管理やAppSecの成果を時系列で示す指標を利用可能

パフォーマンスを測定できなければ、アプリケーション・セキュリティが向上しているかどうかを知ることはできません。経営幹部およびセキュリティ/開発チームは、AppSecテスト中にそれぞれにとって重要な情報を指標から得ることができます。

たとえば、CISOは、アプリケーション脆弱性の総数と重大度に関するデータを必要とすることがあります。このデータは脅威の総数削減の成果を時系列に示します。

重大度に関する指標も、組織の全体的な危険度を明らかにする重要な情報であり、優先度の高い喫緊の問題から対処できるよう、セキュリティ・チームが問題に優先順位を付ける際にも役立ちます。

新しい脆弱性の数に関する履歴データを見れば、新しいリリースで発生した問題の数がわかります。このデータは、アジャイル開発手法を採用しているチームが迅速な反復作業を行う際に、セキュリティに必要な注意が払われているかどうかを検証するために重要です。このデータを活用して、CISOは全体的なリスクを監視し、AppSecマネージャーはチームメンバーが作成するコードの品質を評価することができます。

特定された脆弱性の数を知るだけでは不十分です。解決までにかかった平均日数もAppSecの重要な指標です。問題が長びくほど、悪用される可能性が高くなります。管理者は、この指標を参考にして修正の取り組みを評価し、非効率な要因を特定することができます。

検出された脆弱性の種類も重要です。アプリケーションの一般的な脆弱性の種類がわかっている場合は、セキュリティ・チームおよび開発チームをトレーニングすることで、作成するコードの品質を高めて問題を予防し、問題が発生した場合にも迅速に修正することができます。

ASOCツールは、CISO、AppSecマネージャー、セキュリティ・チーム、開発チームが時間をかけて徐々に改善する必要がある指標を提示します。ASOCツールには、他にも以下の機能があります。

  • 指標の可視化によりAppSecの成果を迅速かつ簡単に確認し、時系列で傾向を把握することが可能
  • インタラクティブな指標を示して傾向を明確にし、重要なAppSec情報を迅速に確認できる中央ダッシュボード

ASOCツールの利用が広がる中、ツールの利点を理解することが重要です。このASOCの解説記事では、企業全体にわたるAppSecのスケーラビリティと説明責任の実現方法を紹介して行きます。

ESG: Cracking the Code of DevSecOps (DevSecOpsのコードを解読する) | シノプシス

 

この著者によるその他の情報