そのホームページ大丈夫? HTTPヘッダ・インジェクションって何? それは「悪意の要求(リクエスト)で応答(レスポンス)を改ざんする攻撃方法」です!
こんにちは!
IT・プログラミング関連講師の荒川栄一郎です。
本日は「クリック・ジャッキング」について記述します。
★「セキュリティ」って何?
まず「クリック・ジャッキング」についてお伝えする前に
情報セキュリティについて知る必要がありますので
「セキュリティ」の概要についてお伝えします。
インターネットには、様々なユーザが接続しています。
その中には、インターネットを利用して
虎視眈々と悪さをしようと企んでいるユーザもいます。
インターネットに接続するコンピュータを安全に利用するためには
どのような脅威があり、その対策方法などを知っておく必要があります。
セキュリティは
「安全」「防護」「保障」などの意味を持つ英単語で
ITの分野では、「情報セキュリティ」のことを指し
コンピュータを安全に利用できるようにすることです。
現在はインターネットを利用して
HP(ホームページ)を閲覧したり
FacebookやTwitterなどのSNS(Social Networking Service)で
情報のやり取りを行うことができますよね。
このようなWebシステムを利用して
●クレジットカード情報
●個人情報
●メールの内容
●ログイン情報
のような情報を簡単に取得することも可能になっていますので
Webシステムの利用者は
いろいろな脅威があることを知っておいたほうがいいと考えます。
また、Webシステムを作成する側は
利用者が安心して利用できるように考慮しなければいけません。
しかし、情報セキュリティ対策は万全だと思っていても
日々いろいろな脅威が発生し、その対策方法が講じられていることも事実です。
★クリック・ジャッキングって何?
インターネットには、様々なユーザが接続しています。
その中には、インターネットを利用して
虎視眈々と悪さをしようと企んでいるユーザもいます。
現在では
●SNS
●オンライン・ショッピング
●オンライン予約
などのWebシステムがよく利用されています。
もし、このようなWebシステムを利用して
「メールアドレス」と「パスワード」を入力して
「ログイン」ボタンを押したらログインされなくて
逆にその入力したメールアドレスとパスワード情報を盗まれたりしたら
情報漏洩やデータ流出の被害が発生するかもしれませんね。
通常、ログイン処理というのは
●「メールアドレス」と「パスワード」
●「ID」と「パスワード」
のような情報を入力してログインします。
クリック・ジャッキングは
HP(ホームページ)で利用者に意図しない操作を行わせる攻撃方法です。
クリックとは
Webブラウザの画面上のボタンや文字などを押すことです
ジャッキングとは
英語の「ハイジャック」を省略し現在進行形で表したもので
「乗っ取り」という意味があります。
HP(ホームページ)で表示する画面の中には
同じサイトの別ページ情報だけでなく
別のサイトのページ情報なども表示させることができます。
これはHTMLの「iframe(インライン・フレーム)」という要素を利用すれば
簡単に実現することが可能です。
また
あるページ(ここではAページ)のある領域に
別ページ(ここではBページ)を重ねて表示することができます。
さらに
AページとBページを重ねて表示し
どちらかのページを透明にし非表示であるかの状態に設定し
表示させることも可能です。
これを下記手順でページを設定すると
悪用できたりします。
①
Aページのある部分に「ボタン」を設定し
そのボタンを押せば
●ある偽サイトに誘導する。
●お金が振り込まれる。
●Cookieの情報を盗む。
などの悪用ができるように設定しておきます。
②
①の悪用できるAページの上に
Bページを重ねて表示できるように設定します。
③
Bページには
Aページの「ボタン」の部分と重なるように
何らかの「ボタンではないけどボタンに見える画像」を設定します。
④
Aページを透明にして
Bページだけが見えるように設定します。
このようなページを設定しておくと
Bページの「ボタンではないけどボタンに見える画像」の部分をクリックすると
実際にはAページの「ボタン」が押されるようにでき
クリック・ジャッキングが成立します。
「ボタン」を押した利用者は
●意図しない商品を購入させられる
●送金させられる
●SNSで投稿させられる
●PCやSNSのアカウントが第三者への攻撃の踏み台にされる
●ウイルスを感染させられる
●PCを乗っ取られる
などの被害に遭う可能性が秘められており
大変なことになるかもしれませんね。
クリック・ジャッキングは
送信先のメールアドレスなどに不正なコードを仕込ませ
HP(ホームページ)にあらかじめ悪用できる仕掛けをしておき
利用者に意図しない操作を行わせる攻撃方法です。
クリック・ジャッキングが起きる原因は
上記のような不正な仕掛けがあるHP(ホームページ)を利用することです。
このように
視覚的に利用者をだまして操作をさせることができてしまうのです。
この攻撃のことを
「クリック・ジャッキング」と呼びます。
システム開発側はこのようなシステムを作ると
利用者からクレームがくるでしょうし
多額な賠償請求を迫られる可能性もあるかもしれません。
システム開発側は
必ずクリック・ジャッキング対策を施さなければ
利用者が安心して利用できません。
クリック・ジャッキング対策は
(1)「X-FRAME-OPTIONS」を導入する。
(2)Webブラウザを常に最新の状態にアップデートする。
(3)重要な処理は、一連の操作をマウスだけで実行できないようにする。
などの方法があります。
(1)「X-FRAME-OPTIONS」を導入する。
X-FRAME-OPTIONSは
外部サイトの表示制限を行う設定ができるオプションです。
設定オプションは
●DENY・・・iframeなどで偽装されたページを全て拒否する。
●SAMEORIGIN・・・同一サイトのページのみを表示させる。
●ALLOW-FROM・・・事前に表示を許可するページを設定する。
の3種類があります。
WebサイトにX-FRAME-OPTIONSのコードを追加するだけで
クリックジャッキングにより偽装されたページを遮断することで
クリック・ジャッキングを回避することができます。
(2)Webブラウザを常に最新の状態にアップデートする。
古いWebブラウザでは
「Webサイト管理者側の対策」で実施された対策が機能しない場合があるため
Webブラウザを常にアップデートすることも
利用者側でできる対策のひとつです。
よって
Webブラウザを常に最新の状態にアップデートすることにより
クリック・ジャッキングを回避することができます。
(3)重要な処理は、一連の操作をマウスだけで実行できないようにする。
クリック・ジャッキングは利用者を視覚的にだまして
単純なマウス操作だけで特定の操作をするように誘導します。
ある意味クリック・ジャッキングは
キーボード入力など利用者に複雑な操作をさせることは困難です。
よって
マウス操作のみで処理が実行されないように
キーボード操作などもさせることで攻撃の成功率を下げることができ
クリック・ジャッキングを回避することができます。
Webサイトには様々な脅威が潜んでいますので
常に最悪の事態も想定したりして
対策方法を考慮することが大切だと考えます。
Webサイトを構築する側の人は
Webサイトの利用者が安心して利用できるシステムを作成するように
心掛けなければいけません。
Webサイトを利用する側も
インターネットを利用するシステムには
様々な脅威が潜んでいることを頭に入れておかなければいけません。
ネット社会では
企業だけでなく個人にとっても脅威が潜んでいます。
セキュリティ対策は
しっかりと行う必要がありますね。
★クリック・ジャッキングのまとめ
クリック・ジャッキングって
難しいと思われている方も多々いると思いますが
HP(ホームページ)で利用者に意図しない操作を行わせる攻撃方法です。
セキュリティ対策という言葉を聞いたことがある方は非常に多いと思いますし
セキュリティを意識している人も非常に多いと思います。
クリック・ジャッキングは
今やPCやスマートフォンでインターネットを利用する上で
潜んでいる脅威だと考えますが
明確に内容や仕組みを理解している人は少ないと思います。
ただクリック・ジャッキングというものは
●HP(ホームページ)で利用者に意図しない操作を行わせる攻撃方法
●Webサイトの作る側も利用する側も考えなければいけないこと
ということだけでも
このコラムを通じて理解していただけましたら幸いに思います。
クリック・ジャッキングは
HP(ホームページ)で利用者に意図しない操作を行わせる攻撃方法です。
もしクリック・ジャッキングに興味を持たれたら
少しずつ勉強してみてはいかがでしょうか?
ユーザとしては知る必要がありませんが
少しずつ覚えていくことで、点が線で繋がることも多々あります。
そうなると結構楽しくなるかもしれません。
これからIT業界を目指している人には
知っておいてほしい知識だと思いますが
少しずつ勉強していってほしいと思います。
★クリック・ジャッキングについて学ぶ方法は
クリック・ジャッキングについては
新入社員研修やIT・プログラミング関連の研修で
学ぶことができるようになっています。
【IT・プログラミング研修】
●「Java(Webアプリ開発)」の詳細情報
https://itlaboj.com/courses/java_training/java_web/
●「Java(Webアプリ開発 - Spring Framework -)」の詳細情報
https://itlaboj.com/courses/java_training/java_spring/
●「Python(Webアプリ開発)」の詳細情報
https://itlaboj.com/courses/python_training/python_web/
●「PHP(Webアプリ開発)」の詳細情報
https://itlaboj.com/courses/php_training/php_web/
●「C#(Webアプリ開発)」の詳細情報
https://itlaboj.com/courses/cs_training/cs_web/
●「ネットワーク基礎」の詳細情報
https://itlaboj.com/courses/it_training/network_kiso/
★「クリック・ジャッキング」習得に必要なもの
クリック・ジャッキングの内容は基本的に座学になりますが
Webアプリケーションの知識や構築方法を学んだ後に行う内容ですので
それぞれのプログラミング言語のセットアップなどが必要になります。
また、このコースは
リアルでもオンラインでも受講することが可能です。
オンラインで受講される人は
「Zoom」が利用できる環境があればいいと考えます。
このコースはシステム開発に直結する話ではあり
SEやプログラマになるための必要な内容になります。
みんなが楽しみながらWebサイトの脅威・対策方法の知識を習得してほしいと思いますし
将来のIT技術者を研修や動画コンテンツを通じて
育成していきたいと考えています。
私は日本全国に多くのIT技術者を育成できる研修を目指していきたいです。
そして一人でも多くの受講者に受講してもらい理解してもらえる研修を行いたいと思っています。