ソフトウェア開発においてセキュリティの重要度が高まり、開発効率・スピードを犠牲にせず、セキュリティを担保する手法として「DevSecOps」が注目されています。その概要からメリット、実現に向けたポイントなどを紹介します。
DevSecOpsとは?
ソフトウェア開発において、開発チームと運用チームが連携することで、スピーディな開発・リリースを実現する「DevOps」に、セキュリティの観点を組み込んだものが「DevSecOps」です。
ソフトウェア開発では、最終フェーズでセキュリティテストを実施するのが一般的でしたが、設計上の問題が見つかった際に大きな手戻りが発生するリスクがありました。技術革新や様々なニーズに対応できるよう開発・リリースのスピードを維持するためにも、手戻りはできる限り避けたいところです。
またサイバー攻撃の高度化や、大規模な情報漏えいの発生などを背景に、セキュリティについてもシビアに問われるようになり、早い段階からセキュリティについて考慮すべきという「シフトレフト」の考え方も広まってきました。これを実現する方法として、開発の各プロセスにセキュリティ観点を組み込み、上流工程からセキュリティチェックをおこなうDevSecOpsが注目されています。
DevOpsとの関係
DevSecOps とDevOpsの違いは、「セキュリティに対する意識・チェック(レビュー)の深さ」と言えます。DevOpsでは、 ソースコードレビューなどのタイミングで、セキュリティについてある程度は意識して確認します。しかし、DevSecOpsでは、 要件定義や設計などの段階からセキュリティ専門家によるレビューをおなうため、より広範囲での確認を実施することになります。これにより、「リスクのある仕様になっていないか」「問題のあるアーキテクチャを採用していないか」など根本的な問題を見逃すことなく、開発を進められるようになります。
また、 DevOpsでは細かく開発を繰り返すため、コンテナやサーバレスなどの技術が用いられることが多く、クラウドとの親和性が高い特徴があります。しかし、前述のとおりDevOpsではセキュリティの意識が十分とは言えません。さらに、クラウドを活用する場合は、アクセス権限や認証、アーキテクチャなど、設計段階からセキュリティを考慮 しなければなりません。 リスクの高いアーキテクチャで開発を進めることがないよう、早い段階でセキュリティについて専門家の視点から確認することがより重要になります。
DevSecOpsのメリット
従来のDevOpsでは開発速度を優先するあまり、セキュリティが後回しになってしまい、 開発後にセキュリティの問題が発覚し、リリースにブレーキがかかってしまう、といったことがありました。 DevSecOpsはDevOpsの開発サイクルの要所要所にセキュリティ観点を取り入れることで、こういった懸念を解消し、開発スピードとセキュリティを両立できます。
DevSecOpsにおける課題
DevSecOpsを実践するにあたって課題となるのが、セキュリティの知識です。開発・運用チームのエンジニアはセキュリティの専門家ではないため、自分が担当するコードや運用範囲に関するセキュリティについては詳しくても、連携先など広い範囲でのセキュリティにまで精通しているとは限りません。サイバー攻撃は日々高度化、複雑化しており、最新の攻撃手法や対策なども考慮する必要があります。しかし、セキュリティ技術力が不足しているため “先例に倣う”だけで終わってしまい、最近の対策にまで手が回っていないケースも多く見られます。
クラウドのセキュリティについては、AWSなどのベンダーから数多くのセキュリティサービスが提供されています。しかし、効果的に使いこなせていないケースも多く、今後も次々に登場する 新しいサービスや機能の情報をキャッチアップし続けるのは 大きな負担となります。
DevSecOpsを実現するポイント
DevSecOpsに取り組むにあたり、まずはDevOpsを実践できていることが前提です。その上で、継続的にセキュリティについて意識することがポイントになります。
要件定義や設計の段階からセキュリティを意識し、改修した機能・アプリケーション全体についても繰り返しセキュリティ観点での確認をおこないます。同時に新たな脅威についても、すぐに対応・対策を検討し、プロセスに組み込んでいかなければなりません。常に最新のセキュリティ情報に基づいて確認をおこなう継続性こそがDevSecOpsの要と言えるでしょう。同時に、変化の速いセキュリティ情報をいかに取り込むかが重要です。
DevSecOpsを支援するAWSのフルマネージドセキュリティサービス「FujiFastener」
富士ソフトが提供するAWS環境のフルマネージドセキュリティサービス「FujiFastener」 は、セキュリティの5大要素(特定・防御・検知・対応・復旧)をワンストップで実現し、 DevSecOps全体のサイクルに必要な支援を提供します。
「特定」プロセスでは、「非推奨の認証方式を利用していないか」「必要なアクセス権限の範囲に問題がないか」など、AWSが公開するベストプラクティス「AWS Well-Architected Framework」をベースにセキュリティの専門家が設計のレビューをおこない、問題点の指摘やアドバイスを実施します。また、「検知」「対応」プロセスではセキュリティインシデントの検出、対処方法の提案、「復旧」プロセスでは恒久的な対策までおこないます。もちろんいずれも最新情報を踏まえた上で 対応するため、変わり続けるセキュリティのトレンドを開発者がキャッチアップし続けることなく、適切な対策を実現できます。
DevOpsは市場に価値のあるものを素早く届け、ビジネスに貢献することが目的です。万が一 セキュリティに問題が発生して、そのために リリース時期が遅延するようではDevOpsのメリットを生かしきれません 。DevOpsのセキュリティの不安を解消し、最小限の負担で適切な対策をおこなうためにも、DevSecOpsの“Sec”の領域にこういった外部サービスを活用するのも有効な方法と言えるでしょう。
FujiFastenerについて、詳しくはこちら
FujiFastener
この記事の執筆者
ソリューション事業本部 インフラ事業部
インフラ推進部 プリセールス
エンジニアグループ
主任 / フェロー