アセット (Pro)

組織 → アセット → エンゲージメント → テスト → 検出事項

概要

アセットは、DefectDojoのオブジェクト階層内でセキュリティ業務がどのように編成されるかにおいて、中心的な役割を果たします。アセットは、セキュリティチームがテストを行う対象となるあらゆるプロジェクト、プログラム、ソフトウェア、または物理的な資産を表し、そのテスト目標に関連するすべてのセキュリティ業務とテスト履歴を格納します。アセットの例には、以下のようなものがあります。

  • ソフトウェアリリース
  • サードパーティ製ソフトウェア
  • 本番環境の仮想マシンまたは資産
  • 単一のアプリケーション
  • マイクロサービス
  • API
  • SaaSプラットフォーム
  • モバイルアプリ
  • 内部システム
  • ビジネスサービス
  • 顧客向けプラットフォーム
  • クラウド環境またはインフラストラクチャドメイン

一般的に、アセットはセキュリティ体制を継続的に追跡したい対象、つまり「モノ」を表すべきです。これには、その「モノ」に関連するテスト履歴、検出事項、メトリクス、所有権、インテグレーション、修復ワークフローが含まれます。

アセットの例

アセットは、組織のニーズに応じて、さらに細かい粒度にすることも可能です。たとえば、以下のようなシナリオでは、DefectDojoのアセットを分けて作成することを検討するとよいでしょう。

  • 「ExampleAsset」にWindows版、Mac版、クラウド版がある場合
  • 「ExampleAsset 1.0」と「ExampleAsset 2.0」で使用しているソフトウェアコンポーネントが全く異なり、両方のバージョンが自社によって現在もサポートされている場合
  • 「ExampleAsset version A」の担当チームと「ExampleAsset version B」の担当チームが異なり、その結果として異なるセキュリティ権限を割り当てる必要がある場合

これらのバリエーションを単一のアセット内のエンゲージメントとして表すことも可能ですが、RBACはアセットまたは組織のレベルでしか設定できないため、そのように構成した場合、ユーザーが適切なエンゲージメント(およびそのエンゲージメント内のテストや検出事項)にアクセスできる範囲が制限される可能性があります。DefectDojoにおけるRBACと権限の詳細については、こちらをクリックしてください。

アセットのデータ

アセットには常に以下の要素が含まれます。

  • 組織
  • 一意の名前
  • 説明
  • SLA設定
  • 優先順位付けエンジン

オプションのアセットメタデータには以下が含まれます。

  • タグ
  • ビジネスクリティカリティ
  • ユーザーレコード(アセット内の推定ユーザーレコード数)
  • 収益
  • 担当者情報(アセットマネージャー、チームマネージャー、技術担当者など)
  • 規制(HIPAA、GLBA、OPPAなど)
  • プラットフォーム(API、デスクトップ、IoT、モバイル、Webなど)
  • ライフサイクル(構築中、本番稼働中、廃止など)
  • 由来(サードパーティ製ライブラリ、購入品、オープンソースなど)

これらのメタデータは、セキュリティプログラム全体にわたるフィルタリング、レポート、優先順位付けを改善しますが、最も重要な点として、アセットにはそのアセットを取り巻くテスト活動に関連するすべてのエンゲージメント、テスト、検出事項も含まれます。テストから得られたすべての検出事項は最終的にアセットレベルに集約され、長期的な追跡、傾向分析、レポート作成が可能になります。

アセットへのアクセス

アセットにはサイドバーからアクセスできます。サブメニューからは、アセット階層や全アセット一覧にアクセスできるほか、新しいアセットを作成するオプションも利用できます。

image

権限

アセットには、ロールベースアクセス制御(RBAC)のルールを適用でき、チームメンバーがアセットを閲覧・操作できる範囲を制限できます。

権限は下位に継承されるため、あるアセットへのアクセス権を持つと、そのアセット内のすべてのオブジェクト(エンゲージメント、テスト、検出事項など)へのアクセス権が自動的に付与されます。

ユーザーロールの詳細については、ロールの概要の記事を参照してください。

アセットビュー

アセットビューには、アセットの状態を一目で把握できるよう、さまざまな表やグラフが含まれています。具体的には以下のとおりです。

  • 未対応検出事項の深刻度
    • アセット内の未対応の検出事項を深刻度別にグループ化した一覧
  • アセットの概要
    • 説明、コンポーネント、連絡先、ユーザーグループ、メンバー、テクノロジー、規制など、アセットのさまざまな要素の内訳
      • テクノロジー: next.js、vue.js、npm v.1.2.3、Django、nginx、Hugo
  • メタデータ
    • 親アセットおよび子アセット、組織、ビジネスクリティカリティ、収益など、アセットの設定から追加されたその他の詳細を含む
  • 深刻度別のサービスレベルアグリーメント
    • アセットの設定にあるSLA設定を、アセット内の検出事項に適用する
  • 検出事項の深刻度別内訳
    • アセット内の検出事項を深刻度別に整理したグラフ
  • 検出事項の分布
    • アセット内の検出事項をステータス別(アクティブ、緩和済み、静的、動的など)に整理した内訳
  • 全エンゲージメント
    • アセット内に含まれるエンゲージメントの一覧

アセットの操作

アセットの作成

アセットを作成する方法は2つあります。

  • サイドメニューの新規アセットオプションから
  • 全アセット一覧の上部にある新規アセットボタンから

アセットの編集

アセットは、アセットビューの右上にある歯車メニューからアセットを編集をクリックすることで編集できます。同じメニューには、全アセットビューでアセットの左側にある⋮(縦三点)メニューをクリックしてもアクセスできます。

編集可能な各フィールドは、アセットの作成時にも同様に利用できます。

image

アセットの削除

アセットは、アセットの設定からアセットを削除を選択することで削除できます。この操作は元に戻せません。アセットは後で終了して再開することはできません。

アセットを削除すると、以下も削除されます。

  • アセット内に含まれるすべてのエンゲージメントおよびテスト
  • 検出事項やインテグレーションを含む、関連するすべてのセキュリティ履歴
  • リンクされているすべてのJira Epic
  • アセットのエンゲージメントおよびテストに関連するすべてのメモおよびアップロードファイル

アセットの境界

重複排除

アセットは互いに「隔離」されており、他のアセットと相互作用することはありません。重複排除などのDefectDojoのスマート機能は、単一のアセット内でのみ適用されます。異なるアセットにまたがる検出事項が自動的に重複排除されることはありません。

レポートとメトリクス

ほとんどのレポートおよびメトリクスはアセットレベルでデータを集計するため、アセットはリスクを測定・追跡するための主要な単位となります。

その結果、多くの主要なメトリクスがアセットごとに算出されます。具体的には以下が含まれます。

  • 検出事項の総数(深刻度またはステータス別)
  • 平均修復時間(MTTR)
  • SLA遵守率および違反率
  • 経時的なリスクの傾向

つまり、アセットをどのように構造化するかが、レポートの正確性と有用性に直接影響するということです。たとえば、関連性のない複数のシステムを1つのアセットにまとめると、リスクの可視性が損なわれる可能性がある一方、アセットの構造を過度に細分化すると、レポートが断片化し、全体的な傾向を把握しにくくなる可能性があります。

コネクター

DefectDojo Proでは、コネクターがDefectDojo Pro内の各アセットにマッピングされ、DefectDojoと広範なセキュリティエコシステムとの間の主要な統合ポイントとなります。

コネクターがアセットに接続されると、スキャン結果をインポートし、そのアセット内のエンゲージメント、テスト、検出事項を作成または更新します。

コネクターの詳細については、こちらをクリックしてください。

CI/CDパイプライン

CI/CDパイプラインは、スキャン結果のインポートを自動化します。統合方法にかかわらず、すべてのスキャンインポートはアセットに関連付けられる必要があり、アセットがパイプライン主導のセキュリティデータの基点となります。

パイプラインがスキャン結果を送信する際は、以下のいずれかを行う必要があります。

  • 既存のアセット(および任意でエンゲージメント)を指定する
  • 結果が正しいアセットに一貫してマッピングされるように構成する

インポートされたすべての検出事項は、所有権、権限、優先度/リスク設定、レポート範囲など、アセットのコンテキストを継承します。

実際には、セキュリティ結果が正しいアプリケーションまたはサービスに一貫して関連付けられるよう、CI/CD内でシステムがどのように構築・デプロイされるかを反映してアセットを定義する必要があります。

SLA、優先度、リスク

DefectDojo Proでは、検出事項はそれを含むアセットからSLA目標、優先度、リスクを継承します。アセットのメタデータ(ビジネスクリティカリティ、収益など)は、優先度とリスクの値を自動的に算出するために使用されます。

つまり、同じ脆弱性であっても、それが内部の開発システムに影響するのか、重要な業務を支える本番アセットに影響するのかによって、異なる優先度やリスクスコアが付与される場合があります。

Jira/ダウンストリームコネクターとの関係

アセットは、Jiraインテグレーターのインスタンス(GitHub、GitLab、ServiceNowなど)に直接マッピングでき、アセットの検出事項を外部のチケット/作業管理システムに送信できます。

検出事項は親アセットからリスク、優先度、所有権を継承するため、実質的にアセットが、Jiraチケットやダウンストリームコネクターのワークフローに流れ込む修復コンテキストを決定することになります。

重要な点として、アセットは検出事項のSLA特性を決定する主要な要因でもあります。そのため、検出事項のSLAは、その親アセットのSLA設定によって決まります。SLA設定の詳細については、こちらを参照してください。

アセットのネスト

DefectDojoは、同一組織内にある2つのアセット間の親子関係をサポートしています。これは、アセットの作成時、またはアセットの設定内で構成できます。

サイドバーのアセット階層オプションを使用すると、DefectDojo内のアセットの構造を可視化したり、関係性を変更したりできます。

対応する表から可視化したいアセットを選択した後、アセット階層を表示をクリックすると、選択したアセット間の関係性(存在する場合)を示すフローチャートが生成されます。

アセットのネストが重複排除やRBACなどに与える影響の詳細や、その他の詳細、活用事例については、こちらを参照してください。