検索
連載

「DevSecOps」って何? GitHubが考える全ての組織が開発スタイルとして取り入れるべき理由GitHub直伝、「DevSecOps」初めの一歩(前)

企業のビジネスにソフトウェアが欠かせない今、ソフトウェアの開発スピードを迅速化させられるかどうかが重要になる一方、セキュリティも欠かせない要素です。そこで最近目にするのが「DevSecOps」というキーワードです。

Share
Tweet
LINE
Hatena

はじめに

 企業のビジネスにソフトウェアが欠かせない今、ソフトウェアの開発スピードを迅速化させられるかどうか、いわゆる「DevOps」の実現が重要になっています。一方、開発スピードの向上と同時に考えていかなければならないのがセキュリティです。迅速かつ効率的にソフトウェアをリリースできても、セキュリティの問題で顧客に影響が出れば、顧客満足度の低下、企業ブランドの価値毀損(きそん)につながりかねません。

 とはいえDevOpsは決して新しい考え方ではなく、ソフトウェアを迅速に提供するための開発スタイルとしてITエンジニアの間で広く知られています。DevOpsでは、開発チームと運用チームがコラボレーションすることで、より信頼性の高いソフトウェアを迅速にリリースすることを目指しています。

 そうした中で最近、DevOpsと関連して「DevSecOps」という言葉を目にした方もいると思います。今回は2回に分けて、DevSecOpsとはどのような考え方なのか、組織でDevSecOpsの文化を広めるためにどう取り組んでいけばよいのか解説していきます。

全員が責任を負う――「DevOps」という言葉が生まれた背景

 DevOpsという言葉が生まれたのは2008年。システム管理者のPatrick Debois氏とソフトウェア開発者のAndrew Clay Shafer氏が、運用チームと開発チームの間の隔たりをなくすことを目的として結成したワーキンググループにまでさかのぼります。そこで誕生したベストプラクティスのプロセスが現在のDevOpsとして知られています。

 これ以前の2000年代半ばまでは、開発チーム、品質保証チーム、IT運用チームが連携しておらず縦割りで作業することが一般的でした。開発チームはソースコードを書くことのみに責任を持ち、品質保証チームはそのコードをテストして一定の品質を満たしていることを保証することに責任を持ち、IT運用チームは本番環境にコードをデプロイし、そのソフトウェアを安定して運用することに責任を持っていました。

 こういった状況では、運用しているソフトウェアに問題が起きた際、その問題を誰が調査、修正するかについて責任の所在を巡って議論が発生してしまいます。その結果、問題が修正されるまでに時間がかかったり、ソースコードを修正したりすべきものに対して運用チームが対症療法的な修正をするにとどまってしまい、同様の問題が何度も再発するという事態を招いてしまいます。

 こういった状況を受けて、DevOpsでは、開発チーム、品質保証チーム、IT運用チームが運用するソフトウェアに共同で責任を持ちます。そのため、職務の垣根を越えてコラボレーションし、開発の早い段階から品質保証や運用の観点でのテストやフィードバックをすることで、品質の高いソフトウェアを迅速に提供することが可能になります。これと同じ考え方をセキュリティにも拡張するというのがDevSecOpsなのです。

 従来、セキュリティチームが関わるのはソフトウェアをデプロイする直前段階であることが一般的でした。それまで、セキュリティチームがソフトウェアに関わることはありませんでした。その結果、セキュリティチームによるテストで問題が発見された場合、多大なプロセスのやり直しが必要で、修正には時間がかかり、関係する全ての人にとって不満がたまりやすいものでした。また修正に時間がかかり過ぎるため、付け焼き刃の修正にとどめることも起きやすくなり、同じような問題が何度も再発することに悩まされることもありました。

 こうした状況を改善していく取り組みがDevSecOpsです。

DevSecOps:DevOpsの原則をセキュリティに適用

 ソフトウェア開発において、セキュリティの確認は最後の工程に行うのが一般的でしょう。リリース前にセキュリティに問題がないかどうかチェックする最後の項目というイメージです。通常、開発者は開発に注力し、セキュリティの責任はセキュリティチームに任せています。こういった縦割りのワークフローを続けていては、開発スピードは上がりません。ソフトウェアのセキュリティでビジネスが阻害されないようにするには、開発プロセス内でセキュリティが果たす役割を、根本から変える必要があります。

 DevSecOpsは、プロセスのあらゆる場所にセキュリティを組み入れることで、セキュリティをより適切に開発体制や開発方式に統合するスタイルです。セキュリティを開発関係者全体の責任にすることで、セキュリティが開発プロセスに深く根付き、より信頼性の高いソフトウェアをさらに迅速にリリースできるようになります。その波及効果として、組織がイノベーションを生み出す能力の向上も考えられるでしょう。

DevSecOpsとDevOpsの違い、ポイントは「セキュリティのシフトレフト」

 では、DevSecOpsが成功する環境は、どのようにして作られるのでしょうか。

 DevSecOpsを成功させ、さまざまな関係者でソフトウェアに共同で責任を持つようにするには、開発ライフサイクルの早い段階にあらゆるプロセスをシフトレフト(注:開発ライフサイクルを左から右に時系列に並べた場合、これまでにサイクルの終盤、つまり右側で行われていた取り組みをサイクルの初期、つまり左側にシフトすることを指す)する必要があります。

シフトレフトのイメージ
シフトレフトのイメージ

 DevSecOpsの考え方は、DevOpsチームがセキュリティをソフトウェア開発ライフサイクルの一環としてどのように認識し、受け入れるかという点で考え方の転換をもたらします。セキュリティテストとレビューをシフトレフトし、ソフトウェア開発の全ステップに効果的に組み入れることを意味しています。

 セキュリティのシフトレフトは、ユーザーに影響を及ぼす前にセキュリティバグを発見し、新たに発見されたセキュリティバグへの対処と修正を迅速化できるようにするために重要です。セキュリティをゲートとして機能させる代わりに、開発ライフサイクルの全てのステップにセキュリティテストを統合することで、開発チームは問題を早期に見つけることができるようになります。

 開発者中心のアプローチを採用することで、修正の際にも開発者の記憶が新しいうちにコードを修正できます。これがデプロイの数日後またはペネトレーションテストレポートが提出される数カ月後に初めてセキュリティバグが報告される場合と比較すると大きな効果があることは明らかです。

 DevSecOpsは運用環境で発生する脆弱(ぜいじゃく)性を減らすことを目的としていますが、それだけではなく過度な負担がかかっているセキュリティチームの負荷を軽減することも目的としています。セキュリティ専門チームは、常に人材不足に悩まされており、全てのセキュリティに関する問題をチーム単独で対処するには限界に来ているでしょう。実際、セキュリティリサーチャーの数は、開発者と比較して平均で500分の1に過ぎないと推定されている調査もあります。

まとめ

 DevSecOpsがもたらす新たな開発文化、スタイルにより、開発者がセキュリティに責任を持つようにすることで、開発、運用、セキュリティの各チームがセキュリティ問題をより迅速に見つけて修正できるようになるでしょう。

 開発者は開発ライフサイクルの終盤にセキュリティチームが対処するのを待つのではなく、コード作成時にセキュリティの脆弱性を見つけて対処できるように変わっていきます。しかし、手作業だけでセキュリティの問題やソースコード上の問題を確認することは不可能といっても過言ではありません。

 セキュリティチームが持っていた知識、ノウハウを開発チームに共有した上で、さまざまなツールを駆使することで、開発者は自ら一般的な問題へ対処できるようになり、セキュリティのエキスパートは一番必要とされているところに時間を集中させることができます。

 後編では、DevSecOpsを進めていくに当たっての第一歩として、どのようなツールや考え方で進めていけばよいのか紹介していきます。

筆者紹介

田中 裕一(たなか ゆういち)

GitHub シニアソリューションズエンジニア

大学院卒業後、企業向けパッケージ開発のソフトウェアエンジニアとしてキャリアをスタート。その後、Webサービス開発のソフトウェアエンジニア、プロダクトマネジャーを経て、2018年よりGitHubに所属している。著書・訳書に『Java最強リファレンス』(SBクリエイティブ)、『システム運用アンチパターン』(オライリー・ジャパン)がある。


Copyright © ITmedia, Inc. All Rights Reserved.

Security & Trust 記事ランキング

  1. 「Appleの暗号化アルゴリズム」を盗用し、2カ月以上検出されなかったステルス型マルウェアの正体とは
  2. 「SMSは認証に使わないで」 米CISA、モバイル通信を保護する8つのベストプラクティスを公開
  3. 2025年に押さえるべきセキュリティの重要論点をガートナーが発表 新しいリスク、脅威、環境の変化、法規制などの動きを把握する指標に使える
  4. 2025年、LLMの脆弱性が明確になるなど、セキュリティとクラウドに関する8つの変化
  5. 終わらせましょう。複雑過ぎるKubernetes/クラウドネイティブが生む心理的安全性の低下を――無料でクラウドセキュリティの勘所が分かる130ページの電子書籍
  6. “ゼロトラスト”とトラスト(信頼性)ゼロを分かつものとは――情報セキュリティ啓発アニメ「こうしす!」監督が中小企業目線で語る
  7. よく聞く「複雑化するサイバー攻撃」は具体的にどう複雑なのか? 一例を医療系企業のランサム事例とともに解説
  8. Google Cloud、2025年のサイバーセキュリティ予測を発表 AIがサイバー攻撃にもたらす影響とは?
  9. 経営層の約7割が「セキュリティ対策は十分」一方で6割以上がインシデントを経験、1位の要因は?
  10. ゼロトラストの理想と現実を立命館大学 上原教授が語る――本当に運用できるか? 最後は“人”を信用できるかどうか
ページトップに戻る