どのチームも、安全な開発が重要であることに同意している。しかし、オーナーシップとなるとどうだろう?突然、誰もが他の誰かに目を向けるようになる。開発者はセキュリティの仕事だと思っている。セキュリティチームは、開発者がより安全なコードを書くことを期待している。DevOpsはパイプラインを維持したいだけだ。管理者は?彼らは、出荷を遅らせずにセキュリティを確保したいのだ。
実際のところ、安全なソフトウェア開発は誰か一人の仕事ではなく、全員の仕事である。それは、役割、責任、そして、最も重要なこと、すなわち、期待を明確に定義することを意味する。もし、この部分を正しく理解していなければ、SSDLC の取り組み全体が、スローモーションの責任転嫁ゲームになってしまう。誰がアリーナにいるのか、何が彼らを夜も眠らせないのか、そして彼らが午前2時に本当に探しているものは何なのか、それを分解してみよう。
プレースホルダ画像 画像の説明セキュアコーディング、テスト、ツール、デリバリーの責任を矢印でマッピングした、機能横断的な開発チームの役割図。
ラインナップセキュア開発アリーナの顔ぶれ
開発者たち塹壕の中で、コードをかき回し、CVEをかわす
開発者はコードに最も近い立場にあり、何かが壊れたときに最初に非難されることが多い。開発者は、たとえその方法を教わらなかったとしても、安全なコードを書くことを期待されている。開発者は、ノイズの多いツールや相反するアドバイスによる警告疲れに直面している。開発者に必要なのは、後付けではなく、ワークフローに組み込まれたセキュリティガイダンスである。
DevOpsエンジニア:パイプラインの達人、ツールとクラウド設定の両立
DevOpsはパイプラインの稼働とデプロイの流れを維持する。DevOpsは、シークレット、infra-as-code、コンテナ設定、CI/CD統合を管理する。彼らはしばしば、ビルドを壊すことなく、スタック全体で「セキュリティを機能させる」ことを期待される。彼らが必要としているのは、既存の自動化に適合するセキュリティであり、手作業のステップを増やすことではない。
セキュリティエンジニア(AppSec/Product Security):ガイド、ガーディアン、そして時にはボトルネックに
セキュリティチームは、ポリシーを作成し、ツールを選択し、数十人(あるいは数百人)の開発者に影響力を拡大しようとする。ノイズを減らし、実際に重要なことを強調し、開発者がチケットのやり取りをすることなく問題を解決できるようなツールが必要なのだ。
テクニカル・マネージャー:猫を飼い、機能と正気のバランスをとる
マネジャーはベロシティとリスクの間で綱渡りをしている。管理職は出荷した機能で評価されるが、ダウンタイム、インシデント、コンプライアンスでも評価される。彼らはセキュリティの専門家ではないが、会社がトラブルに巻き込まれないように意思決定することが期待されている。そのためには、可視性、測定基準、チーム全体の賛同が必要である。
夜眠れない理由
開発者向け:「セキュリティー対スピード」、ツール地獄(アラートだらけ)、「私の仕事ではない」症候群
開発者は、デプロイを妨げ、優先順位の低い問題で溢れかえるツールを恐れている。彼らは、迅速で実用的なフィードバックを求めている。彼らは、サポートなしに責められるようなものを嫌う。
DevOps:パイプラインのボトルネック、設定の悪夢、秘密の保持
DevOpsは手動ステップを減らし、驚きを減らしたい。機密データを誤ってプッシュしてしまったり、S3バケットを世界に公開してしまったりすることにストレスを感じている。自動化を妨げない明確なポリシーとツールが必要だ。
セキュリティ担当者向けノイズが多すぎる、リソースが少なすぎる、常にキャッチアップしている
セキュリティチームは、アラート、誤検知、ツールの乱立に圧倒されている。彼らはリアクティブな対応に疲れている。彼らが切望しているのは、コンテキスト、優先順位付け、リスクを先取りする方法である。
経営者のためにコストを正当化し、リスクを管理する。
経営者はROIを心配する。このセキュリティ・ツールはそれだけの価値があるのだろうか?チームはそれを使っているのだろうか?また、コードとセキュリティの両方を理解する「ユニコーン」エンジニアを採用しようとすると、身動きが取れなくなる。彼らが求めているのは、管理するためのダッシュボードではなく、実用的な勝利なのだ。
彼らが実際にググっていること(そしてこのハブが答えること)
開発クエリー
- 「セキュアコーディング
- 「SQLインジェクションを止める方法
- "OWASPトップ10を人間向けに解説"
開発者は明確で実用的な答えを求めている。彼らが求めているのは、80ページにも及ぶPDFではなく、コピーペースト可能なソリューションと言語固有のセキュアコーディングのアドバイスなのだ。
DevOpsクエリ
- 「すべてを壊すことなく、CI/CDでセキュリティを自動化する
- "Terraformセキュリティ・スキャン・ツール"
- 「2015年版ではないDockerセキュリティのベストプラクティス
DevOpsは、デプロイを中断したりビルドを遅らせたりすることなく、すでに使用しているツールにセキュリティを組み込む方法を模索している。
セキュリティ・クエリ:
- "アジャイルのためのSSDLC導入ガイド"
- "開発者に嫌われない脅威のモデリング"
- 「SASTツール比較
セキュリティエンジニアは規模を拡大したいと考えている。彼らは、アジャイルと統合し、常に子守りをすることなく、実際に左遷を支援するツールやプレイブックを求めている。
マネージャーの問い合わせ
- 「データ漏洩のコストとセキュリティ投資の比較
- 「開発者向けセキュリティ・トレーニングのROI
- "信頼を失わないセキュリティー文化の築き方"
マネジャーは、チームの速度や士気を低下させることなく、確実な開発を推進するために、確かな数字、正当化可能な投資、軽量な方法を求めている。
誰もが安全なソフトウェアを望んでいる。誰も仕事を増やしたくはない。重要なのは、それぞれの役割のペインポイントを理解し、彼らの流れに逆らわず、彼らの流れに沿ったツールやプロセスを提供することである。
チームがセキュアなプラクティスを採用する実際の動機は何なのか、そして通常何が邪魔になるのかを解き明かす時が来た。