Secure DevOpsカルチャーを確立するには

By 清水 孝郎 - JULY 19, 2021

SHARE:

本文の内容は、2021年7月16日にChris Kranzが投稿したブログ(https://sysdig.com/blog/establish-culture-secure-devops)を元に日本語に翻訳・再構成した内容となっております。

私たちは常に”シフトレフト”の話をし、クラウドネイティブアプリケーションに関して自信を持つには、Secure DevOpsが最善の方法であると話してきました。しかし、エンドユーザーや業界関係者に話を聞くと、Secure DevOpsを採用するにはいくつかの大きな課題があることが明らかになっています。我々のこれまでの経験を紐解くと、DevOpsはツールを購入しただけではうまく運用できません。そして、DevOpsを目指す真の文化的な動きは、DevOpsスペシャリストの小規模な専門チームを設置しただけでは確立されないことを、私たちは知っています。多くの人がPhoenix Projectやそれに続くUnicorn Projectを読んだことがあると思います(まだ読んでいない人は、ぜひ読んでみてください。)


では、Secure DevOpsの文化を採用する上で役立つ、この文化的変革の第1部から得られた重要なポイントは何でしょうか?業界やお客様の間で見聞きする、2つの大きな課題があります:

  • 教育とトレーニングの不足(DevOpsチームのためのセキュリティに関するものと、セキュリティチームのためのDevOpsに関するものの両方)。
  • セキュリティへの関与が不足している。
文化的な変化を完全に強制するわけではありませんが、これらの問題を解決するために私たちができる簡単なことは何でしょうか?個人的には、非常に強力な2つのことができると思います。実際には、1つのことですが、2つの異なる方向性があります。

この演習を行う前に必要なもの:
  • セキュリティチームまたはチーム
  • DevOpsまたはDevOpsに隣接した(CloudOps/InfraOpsなどの)チーム
  • 多少の「自由な」時間を費やすことへのコミットメント(詳細は後述)

外国人留学生

私が学生だった頃、外国人留学生プログラムがありました。私はフランスで1週間、フランス人の家族と一緒に過ごし、フランス語だけを話しました。私は語学がかなり苦手だったので、よく生き延びられたなと思いますが、異なる文化、言語、生活様式の中で生活することはとても良い経験になりました。

多くの人にとって、セキュリティは全く異なる言語であり、(様々な正当な理由により)速いペースで進むDevOpsやクラウドの世界とは全く異なる文化であることが多いのです。そこで、留学生のようなアプローチをとってみてはどうでしょうか。

まず、DevOpsエンジニア、CloudOps担当者、プラットフォームアーキテクト、さらにはアプリケーションデベロッパー(簡単にするために、今後はこのグループをDevOpsチームと呼ぶことにします)を何人か集め、月に1日、セキュリティチームのいずれかで働くように任命します。彼らには、特にインシデントや大きなプロジェクトがある場合には、セキュリティチームの日常業務に関わってもらいます。

次に、セキュリティ担当者(アーキテクト、エンジニア、SOCアナリスト、CSIRTなど)を集めて、いずれかのDevOpsチームで働くようにします。もしDevOpsチームがスプリントで活動しているのであれば、セキュリティ担当者をスプリント全体(スプリントの前後のミーティングを含む)に配置することを考えます。これにより、先ほど述べた「自由な」時間が増えますが、スプリント全体を見ることで、活動やプロセスの全体像を理解できるという利点があります。

ここでは、留学生と特定の個人を直接ペアにして、その人の典型的な仕事や一日の流れをシャドーイングしてもらうのが良い方法だと思います。これをチーム内で回していくと、(会社の規模や形態にもよりますが)常時数人が留学生になることになるでしょう。このようなペアを作ることで、「このチームはこうです」という一般的なものではなく、個人的な関係を築くことができ、人々は迷いながらも隅っこでじっとしています。

これを効果的に行うためには、いくつかの黄金律があります:
  • 現在の仕事を置き去りにする事。私は交換留学生として、英語を話すことも、学校の友人と話すこともできず、フランス人の家族に完全に溶け込んでいました。だから、これも同じで、既存のプロジェクトやオンコール、携帯電話の通知をオフにするなどして、現在の仕事を忘れてください。
  • 質問してください!これは超重要です。わからないことがあれば、質問してください。私の場合、フランス語漬けの生活を乗り切るための最善の方法は、質問して解決することでした。すぐに、「クロワッサン」がフランス語でも同じだということがわかりました。知っていましたか?学ぶための最良の方法は、質問をすることです。TLAに疑問を持ち、理由を尋ねることを恐れてはいけません。あなたが交換留学生のホストである場合は、知識のレベルを決めつけないでください。専門用語や頭字語、システムやソリューションの愛称などを説明してください。
  • 学ぶことは恥ずかしいことではありませんし、あなたが知っていることについて何も知らない人よりも知っていることで証明することもありません。点数はつけられません。このプロセスが将来の自分の人生をより良いものにしてくれることを理解することが重要です。ですから、これを受け入れて、できるだけ多くの知識を共有することが重要です 確かに、イライラすることもありますが(私には最近、”Why? “という質問を覚えた幼児がいますが、今まで理解できなかったレベルのイライラを知っています)、これは学習過程において重要なことです。
  • すぐに指標の改善やROIモデルを求めようとしないでください。今回は諦めているので、今後数ヶ月の間に相関性のある改善を見て、これが価値のあることだと示したいと言いたくなることがあります。このようなことは、真の効果が現れるまでに時間がかかることがあり、文化的な変化を測定するのは難しいことが多いのです。長い時間をかけて徐々に得られる利益に焦点を当てるようにしましょう。これは、リリースサイクルにおける手直しの量、セキュリティブロックのデプロイメント、発見された脆弱性、またはその他のセキュリティベースの指標などが考えられます。

しかし、なぜ?

“クリスの気持ちは分かるが、我々はここで火消しをしているのだから、月に1日はおろか1時間も誰かに割く時間はないです!”



パーキンソンの法則では、“仕事は、完成までの時間を埋めるように拡大していきます。” と説明しています。しかし、それも単純化しすぎです。あなたの仕事の何割かは、他人の仕事に対する知識や理解の不足による手直しで埋め尽くされていることは間違いありません。セキュリティがノーと言ったから、戻って何かを変更する必要がある。DevOpsはイエスと言ったので、セキュリティはそれに合わせて何かを変更する必要があります。

余談ですが、ここでは特にセキュリティの話をしていますが、個人的にはこれはビジネス全体で行うと非常に有効なエクササイズだと思っています。法務、調達、人事などに時間を割いてみてください。これを行うことで、驚くほどの改善が得られるでしょう

週40時間労働を前提とした場合、月に1日というと、1日30分にも満たない時間です。これは、すでに失っている先延ばしの時間や、気が散って文脈が切り替わることで失われる時間(手直し自体が原因になっている可能性もあります)、マルチタスク、そして私のお気に入りは、”2分間のクイッククエスチョンをお願いしてもいいですか?” (時には誰かの話を中断すべきであることは明らかなので、慎重にこの言葉を選びました)です。一人で仕事をしている人よりも、すでに一緒に仕事をしている二人がおしゃべりをしているのを見ることで、「ちょっとした質問」を中断する可能性が低くなるという心理的な影響があったとしても、私は不思議ではありません。月に1日、このような練習をしても、生産性を大きく損なうことはないと断言できますし、潜在的な利益は議論の余地がありません。



ベネフィット

このシンプルなエクササイズには、無視できないいくつかの核となるベネフィットがあります…

教育

トレーニングプログラムやオンラインコース、その他の教育方法を行わなくても、DevOpsチームはセキュリティやDevOpsに関するセキュリティの関連情報を学ぶことができます。これは、一般的なトレーニング教材から学ぶだけでは困難なことが多いです。正直に言うと、(生産性の低下という誤解を乗り越えれば)かなりチープなものになるでしょう。

また、教育に関しては、何かを継続して学んだほうが記憶に残りやすいということが広く認識され、証明されていると思います。ですから、1回のトレーニングコースを行っても、継続して強化したり学んだりする社内の外国人交流プログラムに比べて、その効果は少ないでしょう。トレーニングコースに価値がないというわけではありませんが、学んだことを確実に採用し、継続する必要がありますので、提案された方法を使えば簡単です。

カルチャー

サイロ化したチームほど、優れた企業文化を破壊するものはありません。チーム間の伝統的なファイアウォールを破壊することで、サポート、チームワーク、コラボレーションの文化をその境界線を越えて広めることができます。さらに、コンウェイの法則というものがあります。TL;DRは、システムを設計する組織は、その組織内のコミュニケーション構造のコピーである設計を作成するように制約されるというものです。

これは何を意味するのでしょうか?セキュリティチームがアプリケーションデザインチームやコミュニケーション構造の一部でなければ、セキュリティはアプリケーションデザインの一部ではないということです。

このようなセキュリティとの結びつきを確立することは、DevOpsのカルチャーにセキュリティを含めてもらうための素晴らしい方法であり、組織内にセキュリティの習慣を作るのに役立ちます。つまり、セキュリティは余計なものではなく、設計フェーズ、構築フェーズ、実装、受け入れプロセスなどの一部として存在するのです。セキュリティは、単にプロセスの不動の一部となるのです。あえて言えば、「シフトレフト」の基本となるものです。

エンゲージメント

願わくば、DevOpsは一握りの個人に「DevOps」を知ってもらうためのものではなく、関連する専門知識を含むクロスファンクショナルなチームを構築するためのものであることを理解していただきたい。Secure DevOpsもまったく同じです。DevOpsチームには、セキュリティステークホルダーが必要です。それは、セキュリティ担当者かもしれませんし、セキュリティに興味を持って専門家になった留学生かもしれません。また、その組み合わせも可能です。

外国人交流プログラムでセキュリティに関わることで、あなたが行うすべてのことにセキュリティが関わることになります。つまり、迅速なフィードバックが得られるのです。「TLSを使わずに決済システムを公開するのはよくないでしょう」「一般的にTelnetはもう奨励していません」「データベースにはパスワードをかけて、管理インターフェースをインターネットにさらさないようにすべきでしょう」などです。しかしそれは、ビジネスが何をしようとしているのか、セキュリティがよりよく見えるようになるということでもあります。

このプログラムを始めると、他の人が何をしているのか、何に取り組んでいるのか、多くの人が驚くことになるでしょうね。

友情

これは少しふわふわした話で、硬派な経営者には嘲笑されるかもしれませんが、私がこの仕事を好きなのは、一緒に働く仲間がいるからです。もちろん、成長中の業界で素晴らしい製品を扱うこともありますが、私が毎日笑顔でいられるのは、素晴らしい人たちと一緒に仕事ができるからです。

職場での幸せというのは本当に複雑なテーマなので、ここで詳細を説明するつもりはありませんが、幸せな従業員は生産性が高く、より忠実で、より良い仕事をし、スタッフの維持にも大いに役立ちます。

ビジネス上の目標はさておき、幸せな職場であることは素晴らしいことです。世の中には大変なことがたくさんありますが、誰もが新しい友達を作って笑顔になることで得をするはずです。それがそんなに悪いことでしょうか?マネージャーとしての私の仕事は、チームが幸せであることを確認することであり、それは時にはサイロを壊し、人々が互いに話し合えるようにすることでもあるのです。

自動化

直接的にはわからないかもしれませんが、これもこの文化的変化から生じるものです。

DevOpsは自動化を重視しているため、セキュリティを巻き込むことで、セキュリティを自動化するためのアイデアが生まれます。これは、単にセキュリティに関する決定を自動化することかもしれませんし、重要なセキュリティ設計かもしれません。さらに高度になると、監査や自動応答も可能になります。セキュリティの自動化は非常に重要な目標であり、Sysdigではこれを積極的に推進しています。自動化によって、より付加価値の高い活動に集中することができます。また、時間への投資に話を戻すと、これは最も時間を節約できる改善点の1つです。

DevOpsと一緒に時間を過ごすことで、セキュリティは、既存の自動化ワークフローにセキュリティコントロールやベストプラクティスなどを直接組み込むための有益な提案をすることができます。一方、DevOpsがセキュリティに時間を割くことで、彼らのワークフローの改善に役立つ自動化ツールやテクニックを示すことができます。

重要なアクション

今すぐ、交換留学生プログラムを設立しましょう あなたがマネージャーなら、チームを集めてスケジュールの調整を始めてください。ベネフィットをチームに伝え、コラボレーションを奨励しましょう。ただし、強制したり、強制的に参加させたりするのはやめましょう。チーム内にやりたくない人がいたら、最初からローテーションから外して、やりたいメンバーに集中させましょう。そうすれば、誰もがその効果や改善点に気づくでしょう。


あなたが従業員であれば、自分でやってみたいと上司に相談してみてください。月に1日、何かを失うことになるのでしょうか?これはリスクを取る価値があり、あなたはモルモットになることができるのです。逸話や主観的なものであっても、自分の経験や得られたメリットを必ず書き留めておきましょう。効果の多くは実際のデータで示すことが難しく、確立して証明するのに時間がかかることがあります。頑張りましょう!

最後に、これを1回限りの取り組みにしないでください。これを継続的なプログラムにして、交換留学生(または自分自身)に定期的に行ってもらいましょう。そうすることで、繰り返し学習することができますし、部門を超えた絆や新しい人間関係を築くのにも役立ちます。

少なくとも、スタンドアップ、スクラム、スプリント計画、プロダクトデモなどにセキュリティを招待してください。これは非常に簡単なことですが、セキュリティチームのエンゲージメントが一気に高まります。