貧弱なコードの代償です
技術の発展により、開発者はこれまで以上に容易にコードを迅速にリリースできるようになりました。これは革新にとっては興味深いことかもしれませんが、ソフトウェアの品質とセキュリティを拡張する上では負担となる可能性があります。追加ツール、教育プログラム、開発者スキルの向上への投資を正当化することは、コードのデプロイ速度が維持されるならば「あれば良いもの」のように見えるかもしれませんが、重要なビジネス機能のように見えることもあります。
より迅速な配送コードは容易になったかもしれませんが、残念ながら配送の安全なコードはそうではありません。組織はこれまで以上に多くの脅威に脆弱になっています。サイバー犯罪によるコストは世界的に膨大であり、急速に増加しています。実際、2020年のサイバー犯罪によるコストは約1兆ドルに達しました。平均的なデータ侵害のコストは435万ドルで、既存顧客や潜在顧客のビジネス損失に加え、検知、エスカレーション、再作業に費やされたリソース全体に及んでいます。
このような天文学的な費用にもかかわらず、組織の半数以上は開発者に毎年正式なセキュリティコード教育を要求していません。
セキュリティ専門家は皆、脆弱性を見つけて修正する作業がまるでモグラたたきゲームのように感じられることを知っています。修正戦略を含むセキュリティプログラムを既に保有していても、改善の機会は常に存在します。ほとんどの組織は、災害復旧やバックアップ機能をテストする際に、自社のセキュリティアプローチが想定していたほど強固ではないことに気づきます。サイバー攻撃に対する組織のレジリエンス強化が最優先課題の一つであるなら、セキュリティ態勢を持続的に改善するためには、開発者に委ねられた視点を移行することが望ましい。最初から安全なコードを構築し、脆弱性を迅速に発見・修正できる十分な知識を備えた熟練かつ有能な開発者チームこそが、リスクを軽減する最も費用対効果の高い方法である。
開発者教育に関する一つの誤解は、単なるビジネスコストや保険証券にかかる費用だということです。アリアンツのDevSecAwareエバンジェリストであるクラウス・クリンガー(Klaus Klinger)はこう述べています。「すべては経営陣から始まらなければなりません。開発者教育への投資は損失ではなく、品質、生産性、そして会社の評判への投資なのです。」
この分野ではROIを定量化することが難しい場合もありますが、組織が最終的に考慮すべきは、セキュリティ態勢がリスクを低減し、アプローチを簡素化し、開発者チームの時間と生産性を節約するのにどのように役立つかです。
サイバーセキュリティ費用のROIをどのように定量化できるでしょうか?
ROIに関しては、二つのフレーム、すなわちリスク軽減によるコスト削減とセキュリティ教育の影響という二つのフレームで考えることが重要です。
ごく一般的な例を考えてみましょう。脆弱性やセキュリティ侵害により、チームが問題と解決策を探している間、電子商取引サイトが数日間強制的にオフライン状態になります。問題解決の失敗によるコストは、運用停止による収益損失、認証情報の盗難による影響、顧客信頼の喪失(長期的な売上減少につながる)、問題解決に伴う全体的な生産性低下として定量化できます。
これは結局のところ、費用対効果分析に集約されます。評価すべき主要領域は、企業のセキュリティ成熟度レベル、企業のリスク許容度、および維持管理または改善が必要なコード領域です。
人々はしばしば、成功と価値を判断するために誤った指標に焦点を当てます。おそらく私たちは、プログラムの初期投資収益率についてあまり気にせず、代わりに次のことを測定すべきかもしれません。プログラム自体による影響について。
影響立証のための措置
ROIを設定するには、測定可能な目標を設定する必要があります。これは、開発者のセキュリティコーディング知識を評価し、開発者の技術向上が必要な部分を理解することから始まります。
出発点は、参加度を測定し、より充実した教育プログラムを構築する方法に関する戦略的決定を下すことです。最も重要なのは効果を測定することです。まず、各チームがプログラムを開始する前に、コード分析、バグバウンティ、または既存の脆弱性テストを通じて、ソフトウェア開発ライフサイクルで発見される脆弱性の数を把握することから始めましょう。教育プログラムが望ましい結果をもたらしていることを確認する最も簡単な方法の一つは、コードベースに流入する脆弱性の全体的な減少を測定することです。
ROI評価のための主要な質問:
1.アプローチを簡素化していますか?
問題に対してより多くのツールを使用しているのか、それとも問題の根本原因から解決しているのか?技術スタックにツールを追加し続けると、「スイスチーズ」方式のアプローチ、つまり脆弱性を見つけて対処するだけの方法になりかねません。また、多くの脆弱性の原因であるコードにはほとんど影響を与えずに、運用コストだけが増加します。スキャンやペネトレーションテストツールは必ず装備すべきですが、最終防衛ラインにしてはなりません。
2.効率性と生産性は向上していますか?
AppSecから送信されたコードの徹底的なコードレビューと再作業に要する時間は、生産性を大幅に低下させる可能性があります。開発者チームが自ら実践できるよう権限を付与し支援することで、消火訓練を減らすことができます。セキュリティコードトレーニングは、セキュリティプログラムのプラスの影響を評価するための優れたベンチマークとなるべきです。
3.リスクを低減していますか?
脆弱性を見つけて解決することは、巨大なパズルを解くことに似ているかもしれません。時には強力なソリューションで完了するのに数日、数週間、あるいは数ヶ月かかることもあります。AppSecは、開発者がソースから直接修正措置を講じられるようにすることで、リスク監視と組織のセキュリティ態勢強化に集中できるようにします。
4.速度は上げているが、品質は維持できているのか?
迅速なデリバリーコードが常に良いとは限りません。問題を解決するためにコードに脆弱性を導入すると、将来的に多くの問題が発生し、技術的負債が蓄積される可能性があります。ここでは短期的な思考だけでは解決策にはなりません。最初からコードを保護することで、後々問題が悪化しないようにし、リスクを軽減できます。
追跡すべき推奨指標:
- 参加 - 教育に要する時間をどの程度確保しており、開発者の参加状況はどのようになっていますか?教育課程を修了し、評価を受け、トーナメントに参加していますか?
- 技術 - 強みのある領域はどこですか?改善が必要だと考えた領域は何ですか?
- 脆弱性の減少 - コードレビュー中に脆弱性が目に見えて減少していることに気づきましたか?AppSecで発生する手戻りが減っていますか?
- 生産性 - 問題解決にどれくらい時間がかかりますか?脆弱性の削減によって生産性や速度が向上した事例を目にしたことはありますか?
左に移動して価値を創造する
セキュリティ侵害と脆弱性は毎年急速に増加しています。まずコードから始め、セキュリティに対する包括的なアプローチを事前に構築することが重要です。これにより、次のような利点を得ることができます。
- 問題の一部だけを解決するツールにお金を投資する代わりに、最も重要なリソースである人材に投資して複雑性を低減します。
- AppSecで一般的に特定できる再作業や修正を制限することで、効率性と全体的な効果を改善します。コードがデプロイされた後
- リスクを軽減し、コンプライアンスを達成することで、高額な罰金、顧客信頼の喪失、あるいは最悪の場合のデータ侵害によるコストを回避できます。
短期的な思考と迅速な修正は避けてください。技術的負債が生じるだけでなく、将来的にさらなるコストが発生する可能性があります。開発者が脆弱性やサイバー犯罪に対する最善の防御線となるよう、技術向上の力を活用して長期的な計画を立て、その影響とコスト削減効果を直接確認してください。