SQLインジェクションがAppSec界のゴキブリである理由(そして、CISOがSQLインジェクションを根絶する方法

2018年9月26日発行
マティアス・マドゥ博士著
ケーススタディ

SQLインジェクションがAppSec界のゴキブリである理由(そして、CISOがSQLインジェクションを根絶する方法

2018年9月26日発行
マティアス・マドゥ博士著
リソースを見る
リソースを見る

ゴキブリは核爆発でも生き延びることができる」という有名な説がある。しかし、ゴキブリの体は単純な構造をしているため、体の大きさの割には非常に丈夫で、ほとんどの条件で駆除することができません。

ずっと考えていたのですが、もしゴキブリに相当するものがデジタルの世界にあるとしたら、それはコード上のSQLインジェクション(SQLi)の脆弱性ではないでしょうか。これは20年以上前から知られている脆弱性ですが、企業は何度も何度も被害に遭っています。また、イリノイ州で発生した選挙ハッキング事件では、20万人分の有権者記録が流出し、FBIはすべてのIT管理者にセキュリティ対策の強化を急ぐよう勧告しました。

ImpervaのHacker Intelligence Initiative Reportによると、2005年から2011年の間に報告されたデータ侵害の83%にSQLi攻撃が使用されていたことが明らかになりました。OWASPのトップ10では、インジェクションの脆弱性が依然として第1位の脅威となっています。比較的単純な脆弱性であるにもかかわらず、死滅することはありません。

この同じ脆弱性が、いまだにかなりの数のアプリケーションのセキュリティスキャンに登場しているのは馬鹿げていると思います。私たちは、この脆弱性がどのように動作するかを知っていますし、それを阻止する方法も知っています。どうしてこんなことが可能なのでしょうか?実は、私たちのソフトウェア・セキュリティには、まだまだ改善の余地があるのです。

Veracode社の「State of Software Security Report」は、2017年に行われた40万件のアプリケーションスキャンに基づいていますが、OWASPトップ10ポリシーに合格したアプリケーションはわずか30%という驚くべき統計が明らかになりました。これは、過去5年間の一貫したテーマであり、新たにスキャンされたアプリケーションのほぼ3分の1にSQLインジェクションが出現しています。また、CISOは、十分なセキュリティ人材を確保することができず、苦しい戦いを強いられているようです。一般的に、アプリケーションセキュリティのスペシャリストと開発者の比率は、1:100という不十分なものです。

なぜソフトウェア・セキュリティは生命維持装置のようなものなのか?

セキュリティに精通した人材が不足していることは周知の事実ですが、開発者が問題が発生したときにそれを修正していないことや、そもそも脆弱性を発生させないための能力が明らかに不足していることにも注意を払う必要があります。同じVeracode社のレポートによると、開発者が抱える脆弱性のうち、文書化された緩和策が存在するのは14.4%に過ぎませんでした。言い換えれば、ほとんどの脆弱性は開発時に緩和策が講じられずに提出されたということです。脆弱性のうち、最初の90日間でクローズされたものは3分の1以下であり、42%の脆弱性は開発期間中にクローズされなかった。

私はセキュリティの専門家、CISO、CEOと常に話をしていますが、多くの企業が、発見された脆弱性のうち緩和できないものが多いことに苛立ちを感じ、脆弱性のスキャンを完全にやめて、指をくわえて最善の結果を期待しているという逸話を耳にしました。

なぜAppSecの専門家はこのような事態を招いてしまうのでしょうか?

間違いではありません。AppSec担当者は、コード上の問題を痛感しています。結局のところ、それが彼らのコアスキルの1つであり、チームの貴重なリソースとなっているのです。しかし、彼らはしばしばいくつかの要因に阻まれています。

例えば、AppSecマネージャが問題を発見し、開発者に「コードを修正できますか?この重要な質問に対する答えは、組織によって異なりますが、一般的には、開発者は、厳しい機能提供スプリントに対応するために、単にこれらの問題を修正する時間がなく、それを支援する適切なツールもありません。AppSecの専門家は、脆弱性を特定することはできるかもしれませんが、その場で修正するためのスキルやアクセス権を持っていないことが多いのです。

また、すべての問題には、解決策を見つけ、それを実装し、テストするというプロセスが必要であることを認識しなければなりません。コードにわずかな問題が見つかっただけでも、必要なリソースはもちろんのこと、修正にかかる時間も膨大なものになります。ソフトウェアに混入する可能性のある脆弱性は700以上あり、そのすべてを一人の人間が防御することは不可能だと言われています。そのため、多くの企業はOWASPトップ10のみを遵守しています。その間、開発者は機能を作り続け、その結果、自分が書いたコードに脆弱性を導入し続けます。

解決策は何ですか?

単純な事実として、私たちは開発者に対して、安全なコーディングを成功させるためのツールやトレーニングを提供していません。組織が開発者に適切なセキュリティ・スキルを持たせることを強制するような規制はなく、ほとんどの大学やインターンシップでは、若手開発者が安全なコーディングをするための準備ができていないという悲しい現実があります。

飛行機を飛ばそうと思ったら、訓練、実務経験、メディカルチェック、安全知識、試験など、非常に厳格なプロセスを経て飛行できるようになります。このような準備とスキルの検証を経ずに空に放たれるとは、誰も想像できないでしょう。しかし、コードライティングでは、このようなことが日常的に行われているのです。  

私たちは、安全なコードを書くために、開発者の教育に時間を費やす必要があります。しかし、ソフトウェア開発のペースが速く、優秀な開発者やセキュリティの専門家が不足している今日の世界では、その優先順位は決して高くないようです。今こそ、私たちはこの問題に取り組むべきです。

世界経済フォーラムが最近発表した見出しには、こう書かれていました。"セキュリティなくしてデジタル経済はありえない」と叫んでいますが、それに付随するコンテンツでは、デジタルトランスフォーメーション戦略の中核にセキュリティを据えることの必要性が説かれています。"セキュリティは企業を守るものであり、企業がイノベーションを起こし、新しい製品やサービスを構築することを可能にします。防御の役割を超えて、セキュリティは企業に戦略的な成長の優位性をもたらします」と述べています。

セキュアコーディングのスキルと成果を向上させることで、組織に強力なサイバープロテクションのレイヤーを追加し、より良い、より速いコードの作成を支援します。開発者は、セキュリティの専門家になる必要はありませんが、サイバー攻撃に対する最初の防衛線となるよう、積極的かつ実践的な権限を与えられる必要があります。開発者は、次のセキュリティとイノベーションのヒーローになる可能性があります。彼らは非常に賢く、創造的な問題解決者であり、一般的に自分のスキルを高めることに熱心です。彼らの強みを活かし、彼らにふさわしい専門的なトレーニングを行い、より高いソフトウェア・セキュリティ基準を約束してください。詳しくは、ホワイトペーパーをご覧ください。

飛行機を飛ばそうと思ったら、訓練、実務経験、メディカルチェック、安全知識、試験など、非常に厳格なプロセスを経て飛行できるようになります。このような準備とスキルの検証を経ずに空に放たれるとは、誰も想像できないでしょう。しかし、コードライティングでは、このようなことが日常的に行われているのです。
リソースを見る
リソースを見る

著者

マティアス・マドゥ博士

マティアスは、15年以上のソフトウェアセキュリティの実務経験を持つ研究者・開発者です。フォーティファイ・ソフトウェア社や自身の会社(Sensei Security)などでソリューションを開発してきました。キャリアの中で、Matiasは、商用製品につながる複数のアプリケーションセキュリティ研究プロジェクトを主導し、10件以上の特許を取得しています。また、RSAカンファレンス、Black Hat、DefCon、BSIMM、OWASP AppSec、BruConなどの世界的なカンファレンスで定期的に講演を行っているほか、高度なアプリケーションセキュリティトレーニング(courses )の講師も務めています。

Matiasはゲント大学でコンピュータ工学の博士号を取得し、アプリケーションの内部構造を隠すためのプログラム難読化によるアプリケーションセキュリティを研究しました。

もっと知りたい?

セキュアコーディングに関する最新の知見をブログでご紹介しています。

当社の豊富なリソースライブラリは、安全なコーディングアップスキルに対する人間的なアプローチを強化することを目的としています。

ブログを見る
もっと知りたい?

開発者主導のセキュリティに関する最新の研究成果を入手する

ホワイトペーパーからウェビナーまで、開発者主導のセキュアコーディングを始めるために役立つリソースが満載のリソースライブラリです。今すぐご覧ください。

リソース・ハブ

SQLインジェクションがAppSec界のゴキブリである理由(そして、CISOがSQLインジェクションを根絶する方法

2024年1月22日発行
マティアス・マドゥ博士著

ゴキブリは核爆発でも生き延びることができる」という有名な説がある。しかし、ゴキブリの体は単純な構造をしているため、体の大きさの割には非常に丈夫で、ほとんどの条件で駆除することができません。

ずっと考えていたのですが、もしゴキブリに相当するものがデジタルの世界にあるとしたら、それはコード上のSQLインジェクション(SQLi)の脆弱性ではないでしょうか。これは20年以上前から知られている脆弱性ですが、企業は何度も何度も被害に遭っています。また、イリノイ州で発生した選挙ハッキング事件では、20万人分の有権者記録が流出し、FBIはすべてのIT管理者にセキュリティ対策の強化を急ぐよう勧告しました。

ImpervaのHacker Intelligence Initiative Reportによると、2005年から2011年の間に報告されたデータ侵害の83%にSQLi攻撃が使用されていたことが明らかになりました。OWASPのトップ10では、インジェクションの脆弱性が依然として第1位の脅威となっています。比較的単純な脆弱性であるにもかかわらず、死滅することはありません。

この同じ脆弱性が、いまだにかなりの数のアプリケーションのセキュリティスキャンに登場しているのは馬鹿げていると思います。私たちは、この脆弱性がどのように動作するかを知っていますし、それを阻止する方法も知っています。どうしてこんなことが可能なのでしょうか?実は、私たちのソフトウェア・セキュリティには、まだまだ改善の余地があるのです。

Veracode社の「State of Software Security Report」は、2017年に行われた40万件のアプリケーションスキャンに基づいていますが、OWASPトップ10ポリシーに合格したアプリケーションはわずか30%という驚くべき統計が明らかになりました。これは、過去5年間の一貫したテーマであり、新たにスキャンされたアプリケーションのほぼ3分の1にSQLインジェクションが出現しています。また、CISOは、十分なセキュリティ人材を確保することができず、苦しい戦いを強いられているようです。一般的に、アプリケーションセキュリティのスペシャリストと開発者の比率は、1:100という不十分なものです。

なぜソフトウェア・セキュリティは生命維持装置のようなものなのか?

セキュリティに精通した人材が不足していることは周知の事実ですが、開発者が問題が発生したときにそれを修正していないことや、そもそも脆弱性を発生させないための能力が明らかに不足していることにも注意を払う必要があります。同じVeracode社のレポートによると、開発者が抱える脆弱性のうち、文書化された緩和策が存在するのは14.4%に過ぎませんでした。言い換えれば、ほとんどの脆弱性は開発時に緩和策が講じられずに提出されたということです。脆弱性のうち、最初の90日間でクローズされたものは3分の1以下であり、42%の脆弱性は開発期間中にクローズされなかった。

私はセキュリティの専門家、CISO、CEOと常に話をしていますが、多くの企業が、発見された脆弱性のうち緩和できないものが多いことに苛立ちを感じ、脆弱性のスキャンを完全にやめて、指をくわえて最善の結果を期待しているという逸話を耳にしました。

なぜAppSecの専門家はこのような事態を招いてしまうのでしょうか?

間違いではありません。AppSec担当者は、コード上の問題を痛感しています。結局のところ、それが彼らのコアスキルの1つであり、チームの貴重なリソースとなっているのです。しかし、彼らはしばしばいくつかの要因に阻まれています。

例えば、AppSecマネージャが問題を発見し、開発者に「コードを修正できますか?この重要な質問に対する答えは、組織によって異なりますが、一般的には、開発者は、厳しい機能提供スプリントに対応するために、単にこれらの問題を修正する時間がなく、それを支援する適切なツールもありません。AppSecの専門家は、脆弱性を特定することはできるかもしれませんが、その場で修正するためのスキルやアクセス権を持っていないことが多いのです。

また、すべての問題には、解決策を見つけ、それを実装し、テストするというプロセスが必要であることを認識しなければなりません。コードにわずかな問題が見つかっただけでも、必要なリソースはもちろんのこと、修正にかかる時間も膨大なものになります。ソフトウェアに混入する可能性のある脆弱性は700以上あり、そのすべてを一人の人間が防御することは不可能だと言われています。そのため、多くの企業はOWASPトップ10のみを遵守しています。その間、開発者は機能を作り続け、その結果、自分が書いたコードに脆弱性を導入し続けます。

解決策は何ですか?

単純な事実として、私たちは開発者に対して、安全なコーディングを成功させるためのツールやトレーニングを提供していません。組織が開発者に適切なセキュリティ・スキルを持たせることを強制するような規制はなく、ほとんどの大学やインターンシップでは、若手開発者が安全なコーディングをするための準備ができていないという悲しい現実があります。

飛行機を飛ばそうと思ったら、訓練、実務経験、メディカルチェック、安全知識、試験など、非常に厳格なプロセスを経て飛行できるようになります。このような準備とスキルの検証を経ずに空に放たれるとは、誰も想像できないでしょう。しかし、コードライティングでは、このようなことが日常的に行われているのです。  

私たちは、安全なコードを書くために、開発者の教育に時間を費やす必要があります。しかし、ソフトウェア開発のペースが速く、優秀な開発者やセキュリティの専門家が不足している今日の世界では、その優先順位は決して高くないようです。今こそ、私たちはこの問題に取り組むべきです。

世界経済フォーラムが最近発表した見出しには、こう書かれていました。"セキュリティなくしてデジタル経済はありえない」と叫んでいますが、それに付随するコンテンツでは、デジタルトランスフォーメーション戦略の中核にセキュリティを据えることの必要性が説かれています。"セキュリティは企業を守るものであり、企業がイノベーションを起こし、新しい製品やサービスを構築することを可能にします。防御の役割を超えて、セキュリティは企業に戦略的な成長の優位性をもたらします」と述べています。

セキュアコーディングのスキルと成果を向上させることで、組織に強力なサイバープロテクションのレイヤーを追加し、より良い、より速いコードの作成を支援します。開発者は、セキュリティの専門家になる必要はありませんが、サイバー攻撃に対する最初の防衛線となるよう、積極的かつ実践的な権限を与えられる必要があります。開発者は、次のセキュリティとイノベーションのヒーローになる可能性があります。彼らは非常に賢く、創造的な問題解決者であり、一般的に自分のスキルを高めることに熱心です。彼らの強みを活かし、彼らにふさわしい専門的なトレーニングを行い、より高いソフトウェア・セキュリティ基準を約束してください。詳しくは、ホワイトペーパーをご覧ください。

飛行機を飛ばそうと思ったら、訓練、実務経験、メディカルチェック、安全知識、試験など、非常に厳格なプロセスを経て飛行できるようになります。このような準備とスキルの検証を経ずに空に放たれるとは、誰も想像できないでしょう。しかし、コードライティングでは、このようなことが日常的に行われているのです。

弊社製品や関連するセキュアコーディングのトピックに関する情報をお送りする許可をお願いします。当社は、お客様の個人情報を細心の注意を払って取り扱い、マーケティング目的で他社に販売することは決してありません。

フォームを送信するには、「Analytics」のCookieを有効にしてください。完了したら、再度無効にしてください。