この記事の一版はDevOps.comに掲載されたものですが、タイトルを変更し、新しい情報を盛り込みました。
CISOとCIOは、特に企業のデータ漏洩が発生した場合に、ソフトウェアセキュリティの責任を負うという不名誉な立場にありますが、その一方で、新たなイノベーターであり、適切なアプローチによって大きな影響力を持つことができるという、関連性の高いユニークな機会を与えられています。地球上のすべての組織は、公的機関、商業施設を問わず、急速にデジタル化が進む世界で、市場を維持(または獲得)するために戦っています。お客様は、過去の製品から将来の製品まで、シームレスなオンライン体験を期待しており、「デジタルファースト」のビジネスアプローチが必須となっています。これらの期待に応えられなければ、ほとんどの場合、競合他社がその機会を狙ってきます。
これは、現代のCISOやCIOにとってどのような意味を持つのでしょうか。当然ながら、開発者のチームを雇用し、それぞれがデジタル製品やサービスを形成するコードを次々と作成していることになります。サイバーセキュリティは、長年にわたって重要視されてきましたが、ますます多くの企業活動がオンラインで行われ、攻撃者の目にさらされるようになったことで、リスク要因が増えています。侵入された場合の影響は甚大ですが、デジタル化から逃れるという選択肢はありません。
クリエイティブなCISOとCIOは、AppSecチームや開発チームとともに、デジタルの未来を切り開いていく重要な立場にあります。彼らは間違いなく、ビジネス、政府、公共サービスのオンラインでの長期的な革新を形成しますが、迅速な市場投入の目標、高いソフトウェア品質、セキュリティリスクの軽減のバランスを取るという重責を担っています。
このバランスを取ることは、今日まで非常に困難でした。そのため、開発チームはバラバラになりがちで、機能を提供することに主眼が置かれ、すぐに作り出されるコードの中に脆弱性があることは考慮されていません。AppSecの専門家は常に同じ過ちを修正していますが、比較的単純なバックドアが開いたままになっていることによる侵入の脅威は大きく立ちはだかっています。
私たちのデータが安全であり続けるためには、CISOとCIOはチームの連携方法を工夫し、積極的なセキュリティと責任を共有する文化をトップダウンで構築する必要があります。 マリオットが2018年に行った情報漏えいの結果、直面した壊滅的な結果を見てみましょう。GDPRによる1億2,300万米ドル以上の罰金、5億件以上の記録の盗難、そしてセキュリティに関する評判の失墜です。マリオットが2016年に買収した Starwoods社のサーバーには、2014年の時点でSQLインジェクションの脆弱性が発見されていましたが、このような惨事が発生したのは、安全性の低いコーディング手法が直接の原因です。マリオットが買収したStarwoods社のサーバーには、2014年の時点でSQLインジェクションの脆弱性が発見されていました。これにより、悪意のある攻撃者は何年にもわたってデータにアクセスし、取得することができました。また、脆弱なパスワードのような他の脆弱性は、時間の経過とともに悪用できる穴を増やしていきました。
CIOやCISOは、自社のソフトウェア・セキュリティ環境の状況をよく検討する必要があります。平均的な開発者のセキュリティ意識はどの程度か?また、AppSecチームと開発チームはどの程度連携しているのでしょうか。魔法の杖」のような解決策はありませんが、文化、トレーニング、サポートは努力して改善することができます。開発チームは、組織内のデータ漏洩リスクの最初のラインから、悪いコードが本番稼動する前に阻止するセキュリティ・スーパーヒーローへと変身することができます。
セキュアコーディングの健康診断。あなたの会社は生命維持装置につながれていますか?
あなたの開発チームはどこに当てはまりますか?私は、CIOやCISOが、自社の開発チームが、より速く、より良く、より安全なコードでイノベーションを起こすために、本当にセキュアコーディングのチャンピオンとしての能力を備えているかどうかを確認するのに役立つ、このセキュアコーディングチェックリストを作成しました(あるいは、セキュリティプログラムのオーバーホールが必要かどうか)。
1.C-Suiteの他のメンバーはどのようにサポートしていますか?彼らは、従来のネットワーク・セキュリティではもはや十分ではないことを理解していますか?
ソフトウェアの未来において、時代遅れのセキュリティ対策を用いてネットワーク層を保護することは、セミプロのハッカーに対しても単純に十分ではありません(正直に言うと、いずれにしても成功することはほとんどありません)。多くの一貫したレポートの中で、 ベライゾン社の「2017 Data Breach Investigations Report」は、今日のデータ漏洩の35%がウェブアプリケーションの脆弱性によって引き起こされているという驚異的な事実を挙げています。
Webアプリケーション・セキュリティは、ネットワーク・セキュリティと同様に重要です。このことを無視して、AppSec対策の基本的な基本的な保護層に予算をかけず、浸透させることができなければ、侵害の可能性が十分にあります。
2.十分に左にシフトしているか、また、十分に早くシフトしているか。
アプリケーション・セキュリティに対する現在のアプローチは、ソフトウェア開発ライフサイクル(SDLC)の中で右から左に移動することに焦点を当てた、非常にツールに偏ったものとなっています。これは、定義と設計により、プロセスに欠陥があることを認め、検出と反応の結果をサポートするものです。セキュリティチームは、すでに書かれたコードの脆弱性を探して検出し、コミットされたコードを修正するのではなく、作られたコードにバグがないことを確認するために反応しています。米国国立標準技術研究所(NIST)によると、 コミットされたコードの脆弱性を検出して修正するのは、IDEで書かれたままの状態で脆弱性を防ぐのに比べて 30倍のコストがかかります。これは、生産の遅れ、二重処理、同じ有名なセキュリティ問題を何度も改善するために費やされる時間を考慮に入れてもいません。
真に強固なセキュリティ文化は、開発者の中にセキュリティ・チャンピオンを生み出し、開発チームに適切なツールとトレーニングを提供することで、安全なコーディングを意識して成長し、行動できるようにすることから始めなければなりません。また、継続的な自己啓発に重点を置き、問題解決能力を高めることで、組織の最初の防衛線となり、一般的な脆弱性の発生を未然に防ぐことができます。
3.実践的なセキュリティスキルを身につける努力をしているのか、それとも一方的な知識を与えているだけなのか。
多くのセキュリティ・トレーニング・ソリューション(オンラインおよびCBT)は、業務に直結した実践的なスキルではなく、知識の習得に重点を置いています。開発者が生き生きと安全なコードを書くためには、文脈に沿った実践的な学習に定期的にアクセスし、実際の環境でトレーニングやスキル開発を続けることを積極的に奨励する必要があります。開発者は、最近確認された脆弱性について、実際のコード例を用いて学び、自分の好きな言語やフレームワークを使って作業する必要があります。このような学習経験は、彼らが仕事で積極的に取り組んでいるコードの中で、既知の脆弱性を見つけ、特定し、修正する方法を理解するのに有効です。
世の中には知識豊富な先生がたくさんいて、セキュリティの脆弱性を修正するための情報もたくさんありますが、教科書を読んだり、何時間ものビデオを見たりしても、創造的で問題解決能力のある多くの開発者の心を動かすことはできませんし、絶え間なく続くデータ漏洩事件が示すように、コードに侵入する脆弱性を防ぐにはほとんど効果がありません。
4.自分のセキュアコーディングのスキルをリアルタイムに測定していますか?
開発チーム内でセキュリティ・ファーストの考え方が構築されていることを確認するための重要なステップは、証拠を収集してレビューすることである。これは、仮定や推測のゲームであってはならない。開発者は、セキュリティマインドを持っているか、あるいは持っていないかのどちらかである。
メトリクスは、開発者の努力が報われ、個人の安全なコーディングスキルが向上していることを、開発者とその組織に証明しようとするものです。測定できないものを改善することはできない。関連する評価を行い、開発チームの進捗状況をリアルタイムに把握するとともに、継続的な改善のために、セキュアコーディングの強みと弱みをベンチマークする必要があります。
多くの場合、セキュリティトレーニングは組織にとって「ただの練習」になってしまい、トレーニングが効果的に行われたかどうか、トレーニングに参加したかどうか、さらにはトレーニングが継続されたかどうかを確認することに重点が置かれていません。
5.外注業者は強固で安全なコーディング技術を使用しているか?
多くの企業は、開発業務を第三者機関に委託しています。その会社がオンサイトであろうとオフショアであろうと、その会社の一般的なセキュアコーディングの能力と慣習は、クライアントにとって相対的に謎である。最良のケースでは、企業がセキュリティに関する唯一の保証を得られるのは、契約書の中で成果物が「安全」であることを要求している記述だけです。これらの開発会社のスキルを前もって確認するための手段を講じている企業はほとんどありません。そのため、説明通りに動作するソフトウェアが、健全なセキュアコーディングの慣行に従わずに構築されたものであるというリスクを負うことになります。さらに悪いことに、購買企業がアプリケーションに内在するセキュリティ上の欠陥を認識していない場合、脆弱なソフトウェアを野放しにしてしまう危険性があります。
最も一般的なシナリオは、専門のセキュリティ・スペシャリスト(調達が困難で高額な人材)が脆弱性を発見した場合、稼動開始日の延期や、これらのセキュリティ上の弱点を修正するために誰が費用を負担するかという契約上の議論に直面することです。しかし、前もって賢く、次のアプリケーションを構築する開発者のアプリケーション・セキュリティ・スキルを評価しておけば、潜在的な遅延、フラストレーション、そして現金を大幅に節約することができます。
6.開発者は、最も一般的に利用されているセキュリティ上の弱点を認識していますか?
Webアプリケーションの脆弱性の85%以上は、 OWASPトップ10と呼ばれる、わずか10個の既知の脆弱性に起因しています。アプリケーション・セキュリティのトレーニングでは、最低限、この10種類の脆弱性に加えて、さらに多くの種類の脆弱性をカバーする必要があります。また、開発者が直面するトレーニングの課題は、定期的に改訂・更新され、新しいコーディングフレームワークや新しい脆弱性の種類に応じた新しい課題を用意しなければなりません。
漠然とした一般的な知識では効果的ではありませんが、実際のセキュアコーディングのシナリオを用いた精密なトレーニングが標準となるべきです。漠然とした一般的な知識では効果がありません。Coders Conquer Security」のブログシリーズをご覧ください。)
7.社内にセキュリティ・チャンピオンはいるか?
開発者が多い組織では、セキュリティ・チャンピオンを置くべきです。開発チーム内で高いセキュリティ基準を維持する責任を負う人物です。セキュリティ・チャンピオンの目的は、セキュリティに関する質問をする人のサポート窓口になることと、セキュリティのベストプラクティスを守るためのチーフ・アドボケートになることです。
優れたセキュリティ・チャンピオンは、集中的なトレーニングの勢いを維持し、チームの全メンバーが必要なものを持っていることを確認し、サポートを継続的に求めることができ、セキュリティ文化のパズルの重要なピースです。
8.安全なコーディングを容易にするために、開発者向けのツールに投資していますか?
アジャイル開発が行われている組織や、自社で開発したアプリケーションの頻繁な更新に直面している場合、セキュリティの一部を自動化することは、猛烈なペースと作業量に対応するための唯一の方法の1つです。
SDLCの各段階では、アドバイザー、品質ゲートキーパー、検出ツールとしての役割を果たすツールが用意されています。さらに、ソフトウェアが本番稼動した後に、ハッキングの試みをシミュレートして、コード上で自動テストを実行するツールもあります。これらのツールには、それぞれ利点と課題がありますが、アプリケーションにセキュリティ上の脅威が存在しないことを100%保証するものではありません。最も重要な予防策は、弱点を早期に発見することで、ビジネスへの影響を最小限に抑えながら、より早く、より安く修正することができるということです。
先見性のあるCISOのための次のステップ
さて、あなたの組織は上記のチェックリストに照らし合わせてどうだったでしょうか?
CISOとCIOは、企業のDevOpsとDecSecOpsの能力を積極的に構築することを余儀なくされていますが、適切なツールとトレーニングをチーム全体で検討・導入する時間がないわけではありません。セキュアコーディングのスキルは、イノベーションを妨げるものではなく、武器となるものであり、これを放棄すれば、企業の評判やデータを完全に破壊することになります。これらのスキルは重要な能力であり、脆弱性を減らしてリスクを軽減するための、より安価な長期的ソリューションとなります。
優秀で革新的な CISO は、健全なセキュリティ文化をトップダウンで指揮する力を持っています。セキュリティのベストプラクティスを効果的に実行するために必要なものをスタッフに提供してください。
Pieter Danhieux は、セキュリティの専門家であり、米国カリフォルニア州に拠点を置く CISO の共同設立者です。 Secure Code Warrior.