クッキーに隠されたSQLインジェクション、対策は? − @IT(情報元のブックマーク数)

CookieSQLインジェクションがWAFなどのセキュリティ機器を回避している、その対策は?!というLAC川口さんの記事です。

「IDS/IPS/WAFのようなセキュリティ機器を回避するためだけに攻撃手法が進化した」のです。今回の攻撃により、セキュリティ機器による検知・防御が難しい脅威が登場したといえます。また、通常のWebサーバの設定ではCookieの値のログを取得していないため、Cookieに含まれた攻撃の存在をWebサーバのログから確認できません。現在も攻撃を受けたことに気付いていないWebサーバの管理者は多数存在するでしょう。

クッキーに隠されたSQLインジェクション、対策は?:川口洋のセキュリティ・プライベート・アイズ(8) - @IT

仕様でありバグではなさそう。

色を付けた「DE%CLARE」や「NVAR%CHAR」などに注意してください。HTTPリクエストに含まれるSQLステートメントの文字列の間に%が含まれています。通常%は16進数表記の場合に使用します。%20や%3DのようにASCIIに変換できる場合、IISASPはその文字列を置換します。しかし、%CLや%STなどのように16進数表記できない場合には%文字のみを除去します。リクエストとしては%が入っていても、Webアプリケーションには%が入っていない状態で使用されるため、動作には問題がありません。

クッキーに隠されたSQLインジェクション、対策は?:川口洋のセキュリティ・プライベート・アイズ(8) - @IT

LACオリジナルシグニチャで対応したらしですが、対応方法とパフォーマンスなどでかなり、苦労したみたいです。

パターンを網羅したシグネチャを定義した場合、数千種類以上のパターンが必要となります。その結果、セキュリティ機器のパフォーマンスに負荷がかかり、著しい影響を与えてしまいます。いまごろ各セキュリティ機器の開発者はハードウェアの限られたリソースでパフォーマンスを考慮しながら、シグネチャの開発を行っているでしょう。JSOCでも新しい脅威を検知するためにIDS/IPS用のオリジナルシグネチャ(JSIG)を開発して提供していますが、今回の攻撃にはとても頭を悩ませました。詳細について公開することはできませんが、攻撃者の心理を想像してチューニングしたJSIGを追加しました。

クッキーに隠されたSQLインジェクション、対策は?:川口洋のセキュリティ・プライベート・アイズ(8) - @IT

相手も研究者、攻撃側も常に改良改良をしている。

今回の攻撃はセキュリティ機能を回避するためだけに攻撃手法が進化していることが分かります。おそらく、攻撃者は世界中を何万件以上も攻撃するうちに、セキュリティ機器によってブロックされて、成功するWebサーバの数が頭打ちになったことを感じたのでしょう。攻撃者にとっては新しいターゲットが必要になり、攻撃手法の改良を行ったと考えられます。

クッキーに隠されたSQLインジェクション、対策は?:川口洋のセキュリティ・プライベート・アイズ(8) - @IT

それが難しいんだけどね<「脆弱なWebアプリケーションを作らない」

今回のSQLインジェクションの対策も「脆弱なWebアプリケーションを作らない」ことに限ります。WebアプリケーションにSQLインジェクション脆弱性がなければ、Cookieに攻撃が行われても、%文字列を含む攻撃であっても影響を受けることはありません。セキュリティ機器によって大部分の攻撃を検知、遮断することはできますが、今回のような悪らつな攻撃手法は日々開発されており、回避される可能性がゼロではありません。やはりセキュアなアプリケーション開発に勝る対策はありません。

クッキーに隠されたSQLインジェクション、対策は?:川口洋のセキュリティ・プライベート・アイズ(8) - @IT

さすが川口さん!思ったことをきっちり文章に書いている!!!さすがだ!

しかし、「脆弱なアプリケーションを作らない」ことが難しいのが現実です。そのために多層防御の概念が重要です。Webアプリケーション、データベース、セキュリティ機器を組み合わせた対策をお勧めします。多くのWebサーバの標準設定ではCookieをログに残すようになっていないため、Cookieをログに残す対策も検討してください。

クッキーに隠されたSQLインジェクション、対策は?:川口洋のセキュリティ・プライベート・アイズ(8) - @IT

screenshot