【DevSecOpsとは?】
入門者向けにメリットなどの概要をわかりやすく解説
PostgreSQLインサイド

システム開発において「DevSecOps」というキーワードが注目されています。本ページでは、「DevSecOpsとは何ですか?」や「DevSecOpsとはどういう意味ですか?」についてシステム開発に携わる関係者が共通の理解を深めるために、DevSecOpsの特徴などの概要、開発の流れ、実現方法の順で説明します。
目次
DevSecOpsとは
DevSecOpsの概要を以下の順で解説します。
登場背景と重要性
今までは、ウォーターフォールモデルによるシステム開発が一般的でした。
しかし、近年、様々な企業がデジタル技術を用いるようになり、ビジネス環境の激しい変化や不確実性が増しています。それにより、ビジネス環境の変化に素早く対応する必要がある場合、新しい機能やサービスをできるだけ速く提供できるDevOpsが求められるようになりました。
DevOpsは、開発チームと運用チームが協力しあうシステム開発です。そのため、開発チームがシステムで必要とされる機能をいち早く知ることができたり、機能が必要とされる時期を事前に把握できたりします。また、開発中に開発チームから運用チームへの新機能に対する教育を実施できます。このような協力関係を築くことで、ビジネスの状況を見ながら、システムの安定稼働を維持しつつ必要な時に必要な機能を素早く提供できます。
また、近年、ランサムウェアなどの新しいサイバー攻撃が次々と生まれ、被害が増加しています。さらにDevOpsによるシステムの素早い変化も起こっています。このような早い変化に追従しつつ、サイバー攻撃による被害を最小限にすることも求められています。
それを実現するために、DevOpsにセキュリティを組み込んだDevSecOpsというシステム開発があります。
ちなみに、DevSecOpsの起源は、世界有数のリサーチ&アドバイザリ企業であるGartnerが2012年1月に提唱し始めたと言われています。その際は、DevOpsSecと説明されていました。
- DevOpsSec: Creating the Agile Triangle(Gartnerのオフィシャルページへ)
定義
DevSecOps(読み方:デブセックオプス)とは、DevOpsとSecurityを合わせた造語です。ちなみに、DevOpsとは、ソフトウェア開発の手法のひとつで、開発チーム(Development)と運用チーム(Operations)が協力しあってシステムを開発・運用することで、ビジネスの価値を高めるための様々な取り組みを示す概念です。 「DevOpsとはどういう意味?」や「DevOpsに利用できるツールの1つであるGitLabの機能一覧」といったDevOpsの詳細に関しては、以下の記事で紹介しています。
- クラウドネイティブアプリケーションの要 ~DevOpsとは?~(富士通のオフィシャルページへ)
- GitLabとは?:イノベーションのためのOne DevOpsプラットフォーム(富士通のオフィシャルページへ)
図1:DevOpsの全体像
DevOpsの取り組みに対して、DevSecOpsではセキュリティ観点の要素が付与されます。すなわち、DevSecOpsとは、開発、運用、セキュリティを密に連携させ、シフトレフト(ある工程を通常よりも前倒しで実施すること)の考えのもと、DevOpsで開発後に実施していたセキュリティ対策を前倒しで実施することで、問題の早期検出による対応コストを削減できる取り組みのことです。脆弱性などのセキュリティ観点でのリスクを早期発見するために、システムの開発と運用の各工程でセキュリティ対策を実施します。工程ごとのセキュリティ対策に関しては、本記事の後半で解説します。
図2:DevSecOpsの全体像
DevOpsとの違い
DevOpsとDevSecOpsの違いとして、「期待できる効果」があります。DevOpsとDevSecOpsの効果を以下の表にまとめます。
表1 DevOpsとDevSecOpsの効果
効果 | DevOps | DevSecOps |
---|---|---|
短期間での製品リリース | あり | あり |
製品の品質向上 | あり | あり |
開発や運用にかかるコスト削減 | あり | あり |
セキュリティ事故による企業価値低下の抑止 | 一部あり | あり |
DevOpsとDevSecOpsの期待できる効果において、「セキュリティ事故による企業価値低下の抑止」という点が異なります。
DevOpsでは開発後にセキュリティ対策を実施します。それにより、最適なタイミングや対処の細分化がされていなかったため、セキュリティ対策の長期化や手戻りなどが発生していました。
必要性とメリット
DevOpsは開発と運用を組み合わせることで開発速度を向上させます。ただし、セキュリティに関しては細分化されていないため脆弱性などの早期対処が困難という課題があります。
そこで、DevOpsの各工程にセキュリティ観点を組み込んだDevSecOpsでは、初期段階で脆弱性などのセキュリティリスクを検出し、セキュリティの脅威を最小限に抑えることができます。これにより、脆弱性などのセキュリティリスクの低減と開発速度の維持を実現できます。
市場規模から考える注目度
2020年のグローバルDevSecOps市場規模は27.9億ドルであり、2021年から2028年までの年平均成長率(CAGR)は24.1%で拡大することが予想されています。さらに、アジア太平洋地域は、最も高いDevSecOps市場の成長を説明すると推定されています。市場規模が年々拡大していることから、将来性があり注目度が高い技術分野となります。
- Global DevSecOps Market Share Report, 2021-2028(MarketsandMarketsのオフィシャルページへ)
導入の課題
DevSecOpsの課題として、「組織」「ツール」「データ」の3つの観点があります。
組織に関する課題
DevSecOpsを実現するためには、開発・運用・セキュリティチームが密に連携できる組織形成が必要です。密に連携できない組織形成である場合、組織形成から変えていく必要があります。
また、組織の既存ルール(例:ある判定結果の脆弱性には必ず対応する)をDevSecOpsの全工程に適用した結果、開発速度が低下する危険性もあります。よって、組織の既存ルールをDevSecOpsに適したものに変更する必要があります。
さらに、DevSecOpsを実現する上で、セキュリティの内製化が望ましく、段階的にでも内製化に取り組まない場合、開発速度の低下に繋がります。密に連携できるチームにセキュリティ有識者がいない場合、セキュリティ有識者の人材確保に取り組む必要があります。
以上のように組織観点では、「組織形成」「組織の既存ルール」「セキュリティ人材の確保」の3つの課題があります。
ツールに関する課題
DevSecOpsでは、開発や運用の各工程で適切なセキュリティ対策を実施します。開発や運用の速度を維持するためにも、高速なセキュリティ対策の適用が求められます。
その1つの方法として、セキュリティ対策を自動で実施するテストツールの導入が考えられます。
今まで使っていたテストツールが、手作業で行うものであった場合、「人手が必要」、「終了まで長時間必要」、「繰り返し何度も実施が困難」などの課題が挙がります。また、不適切なテストツールを導入した場合、「脆弱性の過検知」や「未知の脅威を検出不可能」などの課題が発生します。よって、組織の情報セキュリティポリシーを満たす自動テストツールの導入が必要です。
以上のように「テストツール選定の難しさ」という課題があります。
データに関する課題
DX時代ではデータドリブン経営が主となり、エンタープライズ(企業や事業)領域でもシステム開発の短期間化が求められています。その際にDevSecOpsの適用により、新しいデータ処理やそれを基にした新サービスの早期リリースを実現できます。
DevSecOpsにおけるアプリケーション観点でのセキュリティを考慮する方法については様々なウェブメディアで言及されています。しかし、DevSecOpsにおけるデータに対する情報セキュリティ(機密性、完全性、可用性)を考慮する方法についてはあまり言及されていません。
近年、データを起点としたランサムウェアなどのセキュリティ事故が多発しているため、DevSecOpsにおけるデータに対する情報セキュリティも考慮が必要です。本記事では、データ格納場所であるデータベースに対する情報セキュリティに関しても解説します。
DevSecOpsでの開発の流れ
DevSecOpsは、8つの工程で構成されます。さらに各工程でセキュリティ対策も実施します。以降で、各工程の概要と実施するセキュリティ対策に関して説明します。
8つの工程
DevSecOpsは、4つの開発工程と4つの運用工程で構成されます。各工程の概要を以下の表にまとめます。
表2 DevSecOpsの工程
種類 | 工程 | 実施内容 |
---|---|---|
開発工程(Dev) | Plan | プロジェクト全体のタスク管理や開発要件を定義します。 |
Code | 開発要件に沿って、ソースコードの作成をします。 | |
Build | ソースコードからアプリケーションを作成します。 | |
Test | 開発環境や検証環境でビルドしたものに不具合がないかを確認します。本工程を踏むことで、開発物の品質を担保できます。 | |
運用工程(Ops) | Release | 開発物を本番環境に適用するスケジュールや手順を決めます。 |
Deploy | ビルドしたアプリケーションを本番環境に配備し、現在稼働中のアプリケーションから切り替えます。 | |
Operate | 本番環境のアプリケーションやインフラの監視、保守作業やトラブル対応を行います。 | |
Monitor | 運用やユーザーから得られた情報(性能値、評価、要望など)を確認し次のPlanに繋げます。 |
各工程でのセキュリティ対策と自動化ツール
DevSecOpsの各工程でのセキュリティ対策を「アプリケーション観点」と「データベース観点」に分けて以下の表にまとめます。
表3 DevSecOpsでのセキュリティ対策
工程 | アプリケーション観点でのセキュリティ対策 | データベース観点でのセキュリティ対策 | 自動化に利用できるツールの例 |
---|---|---|---|
Plan | ― | セキュリティポリシー策定、基盤選択、コンプライアンスチェック、DBMS設計 | データベース:Fujitsu Enterprise Postgres |
Code | 静的アプリケーション・セキュリティ・テスト(SAST) | データベースの定義資材の作成、プログラミング | SAST:GitHub(シークレットスキャン)、Coverity、SonarQube |
Build | ソフトウェア・コンポジション解析(SCA) | 資源の一元管理、分散管理 | SCA:Black Duck、GitHub(コードスキャン)、Prisma Cloud |
Test | 動的アプリケーション・セキュリティ・テスト(DAST)、インタラクティブ・アプリケーション・セキュリティ・テスト(IAST)、ペネトレーションテスト | 業務テスト、ペネトレーションテスト |
|
Release | ― | ― | ― |
Deploy | ― | セットアップ | データベース:Fujitsu Enterprise Postgres |
Operate | ― | 起動・停止、バックアップ・リカバリー、計画切り替え、トラブル対処 | データベース:Fujitsu Enterprise Postgres |
Monitor | システム監視、アプリケーション/ネットワーク監視、可視化、異常監視 | 容量監視、性能監視、アクセス監視、セキュリティ障害の通知 |
|
各工程で実施するデータベース観点でのセキュリティ対策の詳細に関しては、以下の記事で紹介しています。
DevSecOpsの実現方法
DevOps形成後に段階的にDevSecOpsに移行することで、効率よくDevSecOpsを適用できます。DevOpsを形成する上で重要なポイントに関しては、以下の記事「DevOps適用に向けた取り組み」を参照してください。
- クラウドネイティブアプリケーションの要 ~DevOpsとは?~(富士通のオフィシャルページへ)
DevOps形成後、3ステップに分けて段階的にDevSecOpsへ移行できます。
1. 現在のセキュリティ対策の評価
脅威モデリングを実施し、現在のセキュリティ対策を評価しましょう。脅威モデリングとは、開発したシステムやソフトウェアを分析して脆弱性などのセキュリティリスクを明確化するプロセスのことです。脅威モデリングは、以下の5ステップから構成されます。
- システム構造図
- データフローライン
- データフローラインをたどる
- 脅威の洗い出し
- シナリオ数分繰り返し
各ステップの詳細に関しては、以下IPAのオフィシャルページをご覧ください。
- 脅威モデリングの手順(IPAのオフィシャルページへ)
2. 開発工程におけるセキュリティを統合
PlanからTestまでの開発工程に、表3に掲載したセキュリティ対策を組み込みます。その際に、適切な自動テストツールを組み込むことにより、混乱を最小限にした統合を実現できます。
3. 運用工程におけるセキュリティを統合
運用中の製品やシステムにおいて、セキュリティ上の懸念を継続的に監視できるようにしましょう。脆弱性が検出された場合、迅速な対応ができるように事前に検出内容ごとの対策プランを明確化しておきましょう。
近年、ビジネス環境の変化が激しく、様々なサイバー攻撃も多発しています。そのような環境下で、迅速かつ安心安全にソフトウェア開発する方法の一つとして、DevSecOpsがあることを説明しました。
また、「組織」「ツール」「データ」の課題を解消した上で段階的にDevOpsから移行することで、DevSecOpsを円滑に適用できると解説しました。
データの課題に対しては、古くからデータベースミドルウェアが取り組んでおり、データベースミドルウェアであるFujitsu Enterprise Postgresを使うことでデータの課題を解消できます。例えば、Fujitsu Enterprise Postgresの機密管理支援機能を使うことで、データの情報セキュリティに関して内製化しやすくなります。DevSecOpsを適用するために、Fujitsu Enterprise Postgresの活用をぜひご検討ください。
お問い合わせは本ページに表示されているお問い合わせボタンから、または本ページ下部に記載のお問い合わせ先からご連絡ください。
2023年6月29日更新
富士通のソフトウェア公式チャンネル(YouTube)
-
- 富士通のミドルウェア製品のご紹介や各種イベント・セミナーの講演内容、デモンストレーションなどの動画をご覧いただけます。
- 富士通のミドルウェア製品のご紹介や各種イベント・セミナーの講演内容、デモンストレーションなどの動画をご覧いただけます。
PostgreSQLについてより深く知る
PostgreSQLに興味をお持ちのお客様はこちらのコンテンツもお勧めです。ぜひご覧ください。
本コンテンツに関するお問い合わせ
お電話でのお問い合わせ
-
富士通コンタクトライン(総合窓口)
0120-933-200受付時間:9時~12時および13時~17時30分(土曜日・日曜日・祝日・当社指定の休業日を除く)