米国防総省（DoD）におけるDevSecOps（第4章1節）#DevSecOps

原文・参照先資料
[DoD Enterprise DevSecOps Reference Design - DoD CIO](https://dodcio.defense.gov/Portals/0/Documents/DoD%20Enterprise%20DevSecOps%20Reference%20Design%20v1.0_Public%20Release.pdf?ver=2019-09-26-115824-583)

#4 DevSecOpsのツールとアクティビティ
このセクションでは、DevSecOpsエコシステム用のツールと、各フェーズでのDevSecOpsアクティビティの両方について説明します。アクティビティとツールは表形式で一覧表示されます。ツールテーブルのベースラインには、Minimal Viable Product(MVP)と目標の2つの値があります。それぞれ、ツールがDevSecOpsエコシステムMVPの入口として利用可能でなければならないのか、あるいはエコシステムが成熟するにつれてツールが到達する目的であるかを示します。アクティビティテーブルには、DevSecOpsプラクティスのためのさまざまなアクティビティがリストされている。DoD組織は、独自のプロセスを定義し、適切なアクティビティを選択し、ソフトウェアファクトリーとDevSecOpsエコシステムを構築するためのシステムに適したツールを選択する必要がある。DevSecOpsの成熟度が上がると、アクティビティの自動化のレベルが上がる。

## 4.1 プランニング・ツールとアクティビティ
Planningツールは、構成管理計画、変更管理計画、プロジェクト管理計画、システム設計、ソフトウェア設計、テスト計画、およびセキュリティ計画を含むソフトウェア開発計画をサポートします。表3は、計画プロセスを支援するいくつかのツールをリストしています。一部のツールは、チーム・コラボレーション・ツール、問題追跡システム、プロジェクト管理システムなど、ソフトウェア・ライフサイクル全体を通じて使用されます。一部のツールは、プログラム間でエンタープライズレベルで共有されます。様々なツールへのアクセス制御のためのポリシーと実施戦略を確立すべきです。
表3:計画フェーズツール

| ツール                         | 特徴                                                                                                                                                                                | メリット                                                                                                                         | 入力                                                                                                     | 出力                                                             | ベースライン                     |
|--------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|------------------------------------------------------------------|----------------------------------|
| チーム協調システム             | 音声/ビデオ会議<br>チャット/メッセージング<br>ブレーンストーミング掲示板<br>グループカレンダー<br>ファイル共有<br>WikiのWebサイト                                                                      | コミュニケーションをシンプル化し、チームの効率を向上                                                                             | チームミーティング<br>デザインノート<br>ドキュメント                                                              | 組織化されたチームワーク<br>バージョン管理されたドキュメント       | MVP                              |
| 課題追跡システム               | バグと欠陥の管理<br>機能と変更の管理<br>優先順位の管理<br>割当管理<br>エスカレーション管理<br>ナレッジベース管理                                                                                       | 欠陥傾向の検出が容易<br>ソフトウェア製品の品質を向上<br>コストの削減と投資利益率(ROI)の向上                                              | バグレポート機能<br>変更リクエスト<br>根本原因分析ソリューション                                                | 機能・変更チケットを発行<br>問題解決の追跡履歴                      | MVP                              |
| 在庫管理                       | すべてのIT資産に関する情報を収集する<br>すべてのアプリケーション、ソフトウェア・ライセンス、ライブラリ、オペレーティング・システム、バージョン情報の「リアルタイム」インベントリを保持 | 状況認識の向上                                                                                                                   | IT資産 (アプリケーション、ソフトウェア)ライセンス、ライブラリ、オペレーティングシステム、バージョン情報) | 資産インベントリ                                               | 目的                             |
| 構成管理データベース(CMDB)     | 自動検出<br>依存関係マッピング<br>他のツールとの統合<br>構成の監査                                                                                                                             | 開発および運用フェーズで多くのシステム(資産管理、構成管理、インシデント管理など。)によって使用される、一元化されたデータベース。 | ITハードウェアおよびソフトウェアコンポーネント情報                                                       | 構成アイテム                                                   | 目的                             |
| プロジェクト管理システム       | タスク管理<br>スケジューリングおよび時間管理<br>資源管理<br>予算管理<br>リスク管理                                                                                                                 | プロジェクト進捗管理の支援<br>リソース割り当ての最適化                                                                               | タスク、スケジュール、リソース割り当てなど                                                             | プロジェクト計画                                               | MVP                              |
| ソフトウェアシステム設計ツール | 要件の収集支援<br>システムアーキテクチャ設計、コンポーネント設計、インタフェース設計                                                                                                   | プログラミング言語に依存しないソフトウェアシステム設計の視覚化を支援                                                             | ユーザー要件設計のアイデア                                                                               | システム設計書<br>機能設計書<br>テスト計画<br>システム導入<br>環境構成計画 | 目的                             |
| 脅威モデリングツール           | ドキュメントシステムのセキュリティ設計<br>潜在的なセキュリティ問題について<br>設計を分析する<br>一般的な攻撃パターンに対するレビューと分析緩和策の提案と管理                                  | ソフトウェアアーキテクトが潜在的な可能性を特定し、軽減できるようにするセキュリティ問題を早期に解決                               | システム設計                                                                                             | 潜在的脅威と緩和計画                                           | 目的                             |
| データモデリングツール         | 異なるデータ要素間の相互関係とフローをモデル化                                                                                                                                     | システムに必要なデータ・オブジェクトが正確に表示されていることを確認                                                             | システム要件<br>ビジネスロジック                                                                          | データ・モデル                                                 | データベースを使用する場合は目的 |

計画フェーズでサポートされるアクティビティを表4に示します。DevSecOpsエコシステム設計、プロジェクトチームのオンボーディング計画、変更管理計画など、一部のアクティビティはエンタープライズレベルまたはプログラムレベルに適しています。他のものはプロジェクトレベルに適合し、DevSecOpsライフサイクルにおいて継続的であると考えられる。

表4:計画フェーズのアクティビティ

| 活動                                     | 説明                                                                                       | 入力                                                                                                                     | 出力                                                                                                                                                | ツール依存関係                                                               |
|------------------------------------------|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|
| DevSecOpsエコシステム設計                | プロジェクトに固有のDevSecOpsプロセスワークフローを設計                                | 変更管理プロセス<br>システム設計<br>リリース計画とスケジュール                                                                 | DevSecOpsプロセスフローチャート<br>DevSecOpsエコシステムツールの選択<br>導入プラットフォームの選択                                                          | チーム<br>コラボレーションシステム                                               |
| プロジェクトチームのオンボーディング計画 | プロジェクトチームのオンボーディングプロセス、インターフェース、アクセス制御ポリシーの計画 | 組織ポリシー                                                                                                             | オンボーディング計画                                                                                                                                | チーム<br>コラボレーションシステム                                               |
| 変更管理計画                             | 変更管理プロセスを計画                                                                     | 組織方針ソフトウェア開発のベストプラクティス                                                                             | 変更管理手順<br>レビュー手順<br>統制審査委員会変更管理計画                                                                                                  | チーム<br>コラボレーションシステム<br>課題追跡システム                               |
| 構成管理(CM)計画                         | 構成制御プロセスを計画構成アイテムの識別                                                   | ソフトウェア開発、セキュリティ、運用のベストプラクティス<br>ITインフラストラクチャ資産<br>ソフトウェア・システム・コンポーネント | CMプロセスとプラン<br>CMツールの選択<br>担当設定項目タグ付け戦略                                                                                            | チーム<br>コラボレーションシステム<br>課題追跡システム                               |
| ソフトウェア要件分析                     | すべての利害関係者からの要求を収集                                                           | 利害関係者のインプットまたはフィードバック<br>運用監視フィードバック<br>テストフィードバック                                     | 機能要件<br>パフォーマンス要件<br>プライバシー要件<br>セキュリティ要件                                                                                          | チーム<br>コラボレーションシステム<br>課題追跡システム                               |
| システム設計                             | 要件に基づいてシステムを設計                                                               | 要件文書                                                                                                                 | ドキュメント:システムアーキテクチャ<br>機能設計<br>データフロー図<br>テスト計画<br>インフラストラクチャ構成<br>計画<br>ツール選択<br>開発ツール<br>テストツール<br>導入プラットフォーム | チーム<br>コラボレーションシステム<br>課題追跡システム<br>ソフトウェアシステム設計ツール |
| プロジェクト計画                         | プロジェクトタスク管理<br>リリース計画                                                         |                                                                                                                          | タスク計画とスケジュール<br>リリース計画とスケジュール                                                                                                  | チーム<br>コラボレーションシステム<br>プロジェクト管理システム                       |
| リスク管理                               | リスクアセスメント                                                                         | システムアーキテクチャ<br>サプライチェーン情報<br>セキュリティリスク                                                             | リスク管理計画                                                                                                                                      | チーム<br>コラボレーションシステム                                               |
| 構成ID                                   | CMDBへの構成アイテムの検出または手動入力<br>システム・ベースラインの確立                       | ITインフラストラクチャ資産<br>ソフトウェア<br>システムコンポーネント(DevSecOpsツールを含む)<br>codeベースライン<br>documentベースライン  | 構成アイテム                                                                                                                                        | CMDBソースコードリポジトリ<br>アーティファクトリポジトリ<br>チーム<br>コラボレーションシステム       |
| 脅威のモデリング                         | 潜在的な脅威、弱点、脆弱性を特定<br>緩和計画を定義                                             | システム設計                                                                                                             | 潜在的脅威<br>緩和計画                                                                                                                                  | 脅威モデリングツール                                                         |
| データベース設計                         | データ・モデリング<br>データベース選択<br>データベース展開トポロジ                                 | システム要件<br>システム設計                                                                                                 | データベース設計文書                                                                                                                                | データモデリングツール<br>チーム<br>コラボレーションシステム                         |
| デザインレビュー                         | 計画と文書のレビューと承認                                                                 | 計画・設計書                                                                                                             | コメントのレビュー<br>アクションアイテム                                                                                                                | チーム<br>コラボレーションシステム                                               |
| ドキュメントのバージョン管理             | 設計変更の追跡                                                                             | 計画・設計書                                                                                                             | バージョン管理されたドキュメント                                                                                                                    | チーム<br>コラボレーションシステム                                               |