SQLインジェクション攻撃
技術を悪用した攻撃手法の種類を紹介しよう。最初に紹介するのはSQLインジェクション攻撃 (injection=注入する) である。 これは、Webアプリケーションの入力欄に、 悪意のある部分的なSQL文を入力して、それをDBMSに実行させるものである。
Webアプリケーションは、あらかじめ用意しておいたSQL文のひな形に、 ユーザが入力した項目を付加して、 実行可能なSQL文とする。 例えば、「SELECT * FROM 重要な表 WHERE 会員番号 = ‘」というSQL文のひな形を用意しておき、この後にユーザが入力した会員番号(ABC123とする)を付加し、末尾を「’」で閉じて、「SELECT * FROM 重要な表 WHERE 会員番号 = ‘ABC123’」 という実行可能なSQL文にする。
悪意のある人が、「XYZ789」 という適当な会員番号を入力しても、何も表示されないが、 「XYZ789′ OR ‘A’ = ‘A」 と入力するとどうなるだろう。「SELECT * FROM 重要な表 WHERE 会員番号= ‘XYZ789’ OR ‘A’ = ‘A’」というSQL文になり、「会員番号= ‘XYZ789’」 が偽であっても、 「’A’=’A’」が真になるので(‘A’=’A’の部分は、 ‘B’ = ‘B’ や ‘C’ = ‘C’ など、条件が真になるなら何でも構わない)、それらをORで結び付けた 「会員番号= ‘XYZ789’ OR ‘A’=’A’」 が真となり、「重要な表」 から情報が盗まれてしまう。これが、SQLインジェクション攻撃である。

DNSキャッシュポイズニング
インターネットには、膨大な数のDNSサーバがあり、 もしも1つのDNSサーバでドメイン名に対応するIPアドレスが得られない場合は、そのDNSサーバが他のDNSサーバに問い合せを行う。 その際に、 何度も同じ問い合せをするのは無駄なので、一度問い合わせた結果は、DNS サーバの中にキャッシュ(貯蔵)されるようになっている。
DNSサーバのキャッシュの内容を書き換えるという攻撃をして、悪意のあるWeb サイトに誘導することをDNSキャッシュポイズニング (cache poisoning) と呼ぶ。 例えば、下図のように、 あるDNS サーバが、 WWW. shoeisha.co.jp というドメイン名に対応するIPアドレスの114.31.94.139をキャッシュしているとき (①)、 このIPアドレスを悪意のあるWebサイトのものに書き換える (②)。 この状態で、 クライアントのWebブラウザにwww.shoeisha.co.jp を入力すると (③)、悪意のあるWebサイトが表示されてしまう。(④)

フィッシング
フィッシング (phishing) は、 造語であり、 「魚釣り」 という意味の fishing と「洗練された」という意味の sophisticated を組み合わせたものだと言われている。(他の説もある)
(参考)情報処理教科書 出るとこだけ!基本情報技術者[科目A][科目B]2025年


コメント