なぜSQLインジェクションはアプリセキュリティ界のゴキブリなのか(そしてCISOはいかにしてそれを完全に根絶できるか)

ゴキブリは核爆発さえ生き延びるという、有名な説があります。その説が完全に正しいとは言えませんが、彼らの単純な身体構造は、そのサイズにしては極めて頑強であり、ほとんどの環境下で根絶を困難にしています。
ふと考えたのですが、もしゴキブリに相当するものがデジタル世界に存在するとしたら、それはコード内のSQLインジェクション(SQLi)脆弱性に違いありません。これは20年以上前から知られている脆弱性ですが、組織は何度も繰り返し被害に遭っています。広範囲にわたり、多大な被害をもたらしたターゲット社への攻撃もSQLインジェクションの結果でした。イリノイ州で20万件の有権者記録が流出した選挙ハッキングの事例も同様で、これを受けてFBIはすべてのIT管理者にセキュリティ対策を迅速に強化するよう勧告しました。
Imperva社の「Hacker Intelligence Initiative Report」によると、2005年から2011年の間に報告されたすべてのデータ侵害の83%でSQLi攻撃が使用されていました。今日でも、インジェクション脆弱性はOWASP Top 10において最大の脅威であり続けています。比較的単純な手法でありながら、一向に消滅する気配がありません。
同じ脆弱性が依然として多くのアプリケーションセキュリティスキャンで検出され続けているのは、馬鹿げているように思えます。私たちはその仕組みも、防ぎ方も知っているはずです。なぜこのようなことが起こるのでしょうか。実のところ、私たちのソフトウェアセキュリティには、改善の余地が山ほどあるのです。
Veracode社の「State of Software Security Report」(2017年の40万件のアプリケーションスキャンに基づく)は、驚くべき統計を明らかにしました。OWASP Top 10のポリシーに合格したアプリケーションはわずか30%だったのです。これは過去5年間一貫した傾向であり、新しくスキャンされたアプリケーションの約3件に1件でSQLインジェクションが見つかっています。これは根深い問題の証拠です。私たちは失敗から学んでおらず、CISO(最高情報セキュリティ責任者)は十分なセキュリティ人材を確保するのに苦戦しているようです。一般的に、AppSec(アプリケーションセキュリティ)専門家と開発者の比率は1:100と不十分な状態です。
なぜソフトウェアセキュリティは危機的状況にあるのでしょうか?
専門的なセキュリティ人材が不足していることは周知の事実ですが、開発者が問題が発生した際に修正を行っておらず、そもそも脆弱性を混入させないための備えが明らかに不足しているという点にも注目しなければなりません。同じVeracodeのレポートでは、すべての開発上の脆弱性のうち、文書化された緩和策が存在したのはわずか14.4%であったことが明かされています。言い換えれば、ほとんどの脆弱性は緩和策なしで提出されていたのです。90日以内に修正された脆弱性は3分の1未満であり、42%の脆弱性は開発期間中に一度も修正されませんでした。
私は常にセキュリティ専門家やCISO、CEOと話をしていますが、多くの企業が、修正不可能な脆弱性の多さ(いわゆる誤検知の厄介な問題に加え)に嫌気が差し、スキャン自体を止めて、あとは運任せにしているという話をよく耳にします。
なぜAppSecの専門家たちは、このような状況を放置しているのでしょうか?
誤解しないでください。AppSecの担当者は、コード内の問題を痛いほど認識しています。結局のところ、それこそが彼らを貴重なチームリソースたらしめている中核的なスキルの一つなのです。しかし、彼らはしばしばいくつかの要因によって身動きが取れなくなっています。
例えば、AppSecマネージャーが問題を発見して開発者に「コードを修正できますか?」と尋ねたとします。この重要な質問に対する答えは組織によって異なりますが、一般的に開発者は厳しい機能提供スプリントに追われており、問題を修正する時間も、それを助ける適切なツールも持っていないのが現状です。AppSecの専門家自身は脆弱性を特定できても、その場で修正するためのスキルや権限を持っていないことがよくあります。
また、あらゆる問題には、解決策を見つけ、実装し、テストするというプロセスが必要であることも理解しなければなりません。コードに見つかった些細な問題であっても、修正にかかる時間やリソースは膨大です。ソフトウェアに混入しうる脆弱性は700種類を超えており、一人の人間がすべてを防ぐことは不可能です。そのため、ほとんどの企業はOWASP Top 10に従うことだけに留まっています。その間も開発者は機能を構築し続け、結果として書くコードに脆弱性を混入させ続けているのです。
解決策は何でしょうか?
単純な事実は、私たちが開発者にセキュアコーディングを成功させるためのツールやトレーニングを提供していないということです。組織に開発者の十分なセキュリティスキルを保証させる規制はなく、悲しい現実として、ほとんどの大学やインターンシップでも、ジュニア開発者が安全にコーディングできるよう準備させてはいません。
飛行機を操縦したい場合、トレーニング、実務経験、健康診断、安全知識、試験を経て初めて操縦が可能になるという非常に厳格なプロセスがあります。このような広範な準備とスキルの検証なしに空に放り出されるなど、誰も想像すらしないでしょう。しかし、コード作成の現場では、まさにそのようなことが日常的に行われているのです。
私たちは、セキュアなコードを書くための開発者教育に時間を割く必要があります。しかし、ソフトウェア開発のペースが速く、優秀な開発者やセキュリティ専門家が不足している現代において、それが優先事項になることはないようです。今こそ、議論のあり方を変えるべき時です。
世界経済フォーラムの最近のヘッドラインには、「セキュリティなしにデジタル経済はあり得ない」と大きく掲げられていました。付随するコンテンツでは、あらゆるデジタルトランスフォーメーション戦略において、セキュリティを中核的な要素にする必要性が論じられています。「セキュリティとはビジネスを守るものであり、それによって企業は革新し、新しい製品やサービスを構築できる。防御的な役割を超えて、セキュリティはビジネスに戦略的な成長の優位性をもたらすのです」
セキュアコーディングのスキルと成果を向上させることは、組織にとって強力なサイバー防御層となり、より優れたコードをより迅速に作成する助けとなります。開発者はセキュリティの専門家になる必要はありませんが、サイバー攻撃に対する最前線の防衛者として、前向きかつ実践的に力を発揮できる環境が必要です。開発者は、次世代のセキュリティとイノベーションのヒーローになり得ます。彼らは非常に優秀で創造的な問題解決能力を持ち、総じてスキルアップに意欲的です。彼らにふさわしい専門的なトレーニングを提供してその強みを活かし、より高いソフトウェアセキュリティ基準の確立に取り組みましょう。ホワイトペーパーを読むと、詳細をご覧いただけます。
飛行機を操縦する場合、トレーニング、実務経験、健康診断、安全知識の習得、そして試験といった非常に厳格なプロセスを経て初めて操縦が許可されます。このような徹底した準備やスキルの証明なしに空へ飛び立つことなど誰も考えませんが、コード作成の現場では、日常的にこれと同じことが起きています。
AI主導の開発をリリース前にガバナンスする
AIを活用したリスク測定、コミット時のセキュアコーディングポリシーの強制、そしてSDLC全体を通じたセキュアなデリバリーの加速を実現します。
他のブログ記事を見る
セキュアコーディング、AIガバナンス、ソフトウェアリスク管理に関する専門的なコンテンツをご覧ください。
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
AIを活用した開発をリリース前にセキュアに
開発者のリスクを可視化し、ポリシーを適用することで、ソフトウェア開発ライフサイクル全体における脆弱性を未然に防ぎます。



.avif)