2021年08月30日
「開発者セキュリティチャンピオン」がDevSecOps革命の鍵を握る澤田 深雪 Miyuki Sawada
リックソフトでは、オープンソースの脆弱性管理・コンプライアンス管理ツールであるWhiteSourceを販売しています。
今やOSSライセンスを使ったソフトウェア開発は90%以上とも言われている中で、これらの管理をスプレッドシートを使い手作業で確認をしている、あるいは他のツールを使用しているが壁に当たって考えている方々に是非こちらのブログをお読みいただき、WhiteSourceのツールに興味を持っていただけたらと思っています。
本ブログはWhiteSorce社に了承を得て翻訳をしたものになります。
今回は全6回のうち5回目、「開発者セキュリティチャンピオン」がDevSecOps革命の鍵を握る」というブログをご紹介します。
DevSecOpsは現代のソフトウェア開発において組織がセキュリティに対するアプローチを根底から変えつつあります。
DevOpsおよびDevSecOpsの実施にセキュリティを密接に統合する必要性に応えるため、旗振り役を意味する「チャンピオン」という言葉を使って「開発者セキュリティチャンピオン」と称する役割が作られました。
この記事では、「開発者セキュリティチャンピオン」とは何か、そしてこのチャンピオンたちは、組織が継続的インテグレーション(CI)と継続的デリバリー(CD)を実施する中でセキュアコーディングのベストプラクティス推進にどう貢献するのかを説明します。
「開発者セキュリティチャンピオン」となるのは、開発者でありながらセキュリティを主導する人たちです。
ほかの開発者の指導役となり、開発者チーム全体へのセキュリティベストプラクティスの導入を推進します。
チャンピオンは、開発プロセスの中で発生するセキュリティの問題に中心となって対応するだけでなく、開発者チームとセキュリティチームの橋渡しも行います。
開発者セキュリティチャンピオンは、さまざまなセキュリティ活動を担います。
たとえば、セキュリティ関連方針の策定支援、脅威モデルの構築、セキュリティレビューの実施、セキュリティベストプラクティスの定義、ほかの開発者との知識共有などを行い、組織のセキュリティ文化を育みます。
世界10万社が使うプロジェクト管理ツール
\アジャイル開発チームの利用実績 No.1/
アジャイルプロジェクト管理ツールです。
ソースコード管理Gitツールの「BitBucket」と統合し、継続的デリバリーを実現させます
開発者セキュリティチャンピオンという役割はどのようにして生まれたのでしょうか。すべては、DevOpsから始まっています。
十数年前、DevOpsの取り組みが始まったのは、ソフトウェアの開発が適切な方法で実施されていないというイメージに対応するためでした。
ソフトウェアを作る開発者と、ソフトウェアのデプロイ作業を担当する運用担当者は要望が対立することが多く、両者間でコミュニケーションが取れていませんでした。
できるだけ最高の製品を届けようと協力するのではなく、開発者と運用担当者はそれぞれ各自の領域に目を向け、お互いにしばしば対立していました。
結果的に、リリースは失敗し、顧客も不満を募らせました。
DevOpsの取り組みは、機能不全に陥ったこのプロセスを修復するために、開発と運用のサイロを崩そうとする試みから始まりました。
DevOpsは、ソフトウェア開発ライフサイクル(SDLC)の全フェーズを対象とします。
これには、ソフトウェアの計画、開発、テスト、リリース、フィードバック、そして各フェーズでのすべてのイテレーションが含まれます。DevOpsが目指しているのは、ソフトウェアの開発とデプロイのプロセスを円滑にして、開発と運用を、まとまった無駄のないタスクとして一体化することです。
こうしたDevOpsの取り組みは非常に有望ですが、課題がないわけではありません。
DevOpsの導入から2、3年たつと、セキュリティの専門家たちが、新しいDevOpsの仕組みの中で従来のアプリケーションセキュリティ手法はうまく機能しないと感じるようになりました。
セキュリティの専門家たちは、このプロセスから取り残されないようにするため、「セキュリティはどうなるのですか」と声を上げています。
リリースサイクルが短縮化される状況で、開発プロセスの完了後にソフトウェアを検査する方法は効率的とはいえなくなっていました。
開発が終わった後に別の機機能としてセキュリティを組み込んでいたため、セキュリティは必要とされるスピードではまったく機能していませんでした。
そのため、セキュリティも、DevOpsとして行われる開発プロセスに適切に統合する必要がありました。この「シフトレフト(前倒し)」を求める声によってDevSecOpsの取り組みが始まりました。
DevSecOps(「SecDevOps」とも呼ばれる)は、セキュリティを最初から組み込んだDevOpsです。
DevSecOpsでは、設計からコーディング、デプロイまでの全段階で、セキュリティがDevOpsパイプラインの不可欠な要素として存在します。
DevSecOpsの導入でおそらく最も重要な点は、セキュリティの専門家に限らず誰もが全員セキュリティに責任を持つという考え方への切り替わりです。
また、DevSecOpsでは、セキュリティの検出と修正が、開発および運用と同じ規模、同じスピードで行われる必要もあります。
DevSecOpsの取り組みには多くの課題があります。
時間がたつにつれ、このような新しい要求に応えられるほどアプリケーションセキュリティのテストの規模を広げることは不可能だということがわかってきました。
セキュリティチームの規模はそれほど大きくなく、どこでもすぐに活動できるような構成にもなっていませんでした。
また、この問題がさらに難しいのは深刻なスキル不足でした。
開発者はセキュリティを自分たちで管理するほどの経験を持ち合わせていませんでした。
DevSecOpsを本当の意味で成功させるには、協力をさらに強化したアプローチにより、開発チーム、セキュリティチーム、運用チームを1つにまとめることが必要でした。
さらなる「協力」という目標を達成するために与えられた役割が「開発者セキュリティチャンピオン」です。
もともと開発チームの一員である開発者セキュリティチャンピオンにセキュリティを担当させることは、セキュリティのスキル不足対策として効果的な方法でした。
チーム内の開発者がセキュリティチャンピオンを務めれば、セキュリティ対策は定着しやすくなります。
開発者セキュリティチャンピオンは、チームの仲間とすでに同じレベルで話ができるというだけでなく、現在のプロジェクトのことをよく理解しています。
開発者セキュリティチャンピオンがセキュリティの施策を適切に伝えれば、チームの仲間はそれを快く受け入れます。
ほかの仲間が以前からよく知っていて、信頼も厚いチームメンバーが、セキュリティのベストプラクティスの指導役となることは、セキュリティを強化するうえで効率的な方法でした。
ソフトウェア開発者は、コードを書き、新しい機能を開発することが仕事です。
開発者にとって、仕事上の成功は、成果物を作り出す能力によって判断されます。
セキュリティは、今はまだ、開発者の主要な仕事を妨げる1つとしか考えられていませんが、開発者セキュリティチャンピオンの活動がこのような認識を変えていきます。
チーム内のほかの開発者に対して、チャンピオンが組織の方針をわかりやすく説明し、導入されているセキュリティツール(SAST(静的アプリケーションセキュリティテスト)、DAST(動的アプリケーションセキュリティテスト)、IAST(対話型アプリケーションセキュリティテスト)、SCA(ソフトウェア構成分析)ツールなど)の使用方法を教えることにより、セキュアコーディングのベストプラクティスを定着させます。
開発者セキュリティチャンピオンは、各種セキュリティプロトコルの普及や効果の増大に大きく貢献します。
チャンピオンは、これを達成する方法の1つとして、開発者とセキュリティチームの間の関係を強化します。
この関係が強固であれば、チーム間の摩擦が少なくなり、お互いの壁が取り除かれ、セキュリティを第一とする文化が組織全体に広がります。
開発者セキュリティチャンピオンはセキュリティチームと緊密に協力することにより各種セキュリティプロトコルの順守を徹底します。
このモデルでは、セキュリティチームが開発者セキュリティチャンピオンを指導して、セキュアコーディングの実現を支えるツールやプロセスの導入を支援します。
一般的に、セキュリティチームは、セキュリティ脆弱性の検出や修正に直接的にはかかわらず、開発者セキュリティチャンピオンと協力して脆弱性管理方針を導入し、セキュリティ負債を減らすことに努めます。
開発者セキュリティチャンピオン制度の導入には多くのメリットがあります。
ここでは、その上位5つを説明します。
セキュリティ専門の人材は不足しており、各組織のセキュリティ予算も望むままに人を雇えるほど潤沢ではありません。
既存のセキュリティ人材に指導者となってもらうことで、より多くの開発者を喚起し、セキュリティの適用範囲が広がり、効果を拡大させることができます。
ますます多くの開発者が自分が作成したコードのセキュリティに責任を負うようになりますが、この状況はしばらく続くと思われます。
開発者が自身でセキュリティチェックを行えるようにするには、知識とスキルの習得を支援する必要があります。
開発者セキュリティチャンピオンがコーチングによって開発者のスキル不足の解消を支援することに加えて、組織全体としてセキュリティを第一に考える文化を醸成します。
セキュリティの「シフトレフト(前倒し)」が行われます。
すべてのチームにセキュリティ担当者を置くということは、セキュリティプロセスの合理化を進めるということになります。
セキュリティプロセスの合理化が進むほど、開発者はそのプロセスに参加しやすくなります。
これは、予言をするとそれが現実になるという「予言の自己成就」が良い方向に働いています。
セキュリティプロセスをより効果的に機能させるには、開発者チームとセキュリティチームの間でコミュニケーションを図り、協力体制を整えることが大切です。
それぞれのチームで開発者セキュリティチャンピオンを指名することにより、情報が円滑に伝達されるようになり、摩擦が緩和されます。
最終的な収益は非常に重要です。
開発時にセキュリティ脆弱性1件の修正にかかるコストは平均で80ドルです。
同じ脆弱性でも、本番稼働後に見つかれば、その修正にかかるコストは7,600ドルに跳ね上がります。
開発者セキュリティチャンピオンがセキュリティのシフトレフトを支援すれば、お金、時間、人手の節約につながります。
さて、「開発者セキュリティチャンピオン」という役割をセキュリティ対策の一部として設けるべきだという考えには納得できたでしょうか。
しばらく前から開発者はアプリケーションセキュリティの責任を担うようになっていますが、上記の傾向からも、このことを表しています。
セキュリティチャンピオン制度を導入するには計画と投資が必要です。
しかし、長期的にはそれに見合うだけのメリットが得られます。
この方法はセキュリティの実現を目指すものですが、チーム間の摩擦が緩和し、稼働開始までの時間を短縮し、コストを削減する効果があります。
そして、開発者には直接的なメリットもあります。
開発段階で、より良いコード、より安全なコードを書けば、セキュリティレビュー段階での課題は大幅に改善または解消されます。
その結果、開発者は自由に使える時間が増え、価値の高い作業に存分に時間を費やすことができます。
開発者は仕事に満足し、ソフトウェアの品質は向上します。誰もが満足できる結果を得ることができます。
本情報はブログを公開した時点の情報となります。
ご不明な点はお問い合わせください。
アトラシアン社ではサポート範囲外となっているサードパーティ製のアドオンをリックソフトのサポートではサポートします。
リックソフトのサポートは開発元が提供するサポート以上の価値があります。
ツールを導入しただけでは成功とはいえません。利用者が効果を感じていただくことが大切です。独自で制作した各種ガイドブックはツール活用を促進します。
リックソフトからライセンス購入を頂いたお客様にはガイドブックを無料進呈いたします。
ツール操作の研修だけでなく「ウォータフォール型開発」「アジャイル型開発」のシミュレーション研修も提供。
日本随一の生産性向上にも効果のある研修サービスです。
リックソフトからライセンス購入を頂いたお客様には無料招待や割引特典がございます。