2019/11/01
【まとめ】Webサイトに潜む代表的な脆弱性 – 2019年版
Webサイトというのは、インターネット上のサーバにファイルを置いているため、常に攻撃されるかもしれない脅威にさらされています。
実際に「改ざん」や「漏えい」などの問題が起きなくても、攻撃者からのアタックは、24時間365日やってきていると考えたほうが良いです。
今回は、その攻撃の中でも代表的な例をまとめてご紹介します。
目次
SQLインジェクション
SQLインジェクション(英: SQL Injection)とは、アプリケーションのセキュリティ上の不備を意図的に利用し、アプリケーションが想定しないSQL文を実行させることにより、データベースシステムを不正に操作する攻撃方法のこと。 また、その攻撃を可能とする脆弱性のことである。
引用:Wikipedia
SQLインジェクションは、例えばユーザが個人情報を入力して、それがデータベースに蓄積されるような会員登録システムのようなケースで、入力欄にSQL(データベースを操作する言語)を入力し、それがデータベースに登録される際に実行されてしまい、データの削除や改ざんなどが行われてしまうといったことが考えられるということです。
SQLインジェクションへの対応策
この問題を解決するためには、とにかく「フォームに入力されてデータベースに送られる文字列をエスケープする」ことです。
エスケープすることで、悪意のあるコードも無害化されるため、被害が発生する可能性が低くなります。
クロスサイトスクリプティング(XSS)
クロスサイトスクリプティング(XSS)とは、掲示板サイトやTwitterのような、ユーザからの入力内容をWebページに表示するWebアプリケーションにおいて、ウェブサイト(標的サイト)の脆弱性(XSS脆弱性)を利用した攻撃手法を指します。 攻撃者は、入力内容に、スクリプト付のリンクを貼る等の罠を仕掛けます。
引用:クロスサイトスクリプティング(XSS)のセキュリティ対策とは?
このクロスサイトスクリプティングは、攻撃者が対策が施されていない掲示板サイトなどに、悪意のあるスクリプトを含んだリンクURLを貼り付け投稿し、そのリンクをユーザにクリックさせることで、仕込んでおいたスクリプトを実行させ、個人情報の漏えいなどを引き起こします。
クロスサイトスクリプティングへの対応策
このクロスサイトスクリプティングへの対応策も、上記のSQLインジェクションとほぼ同じで、掲示板サイトなどでは、悪意のあるスクリプトを書き込まれた場合でも無害化するエスケープ処理をすることで未然に防ぐことが出来る可能性が高まります。
たとえば、<script>というコードは<script>のようにしてしまえば、スクリプトとして実行されることはなくなります。
HTTPヘッダインジェクション
HTTPヘッダインジェクションは、HTTPレスポンスヘッダの出力処理に関するサイバー攻撃です。 この脆弱性が存在する場合、「任意のクッキーがセットされる」、「任意のURLへリダイレクトされる」などの問題が発生する可能性があります。
引用:HTTPヘッダインジェクションとOSコマンドインジェクションの違いと対策方法を徹底解説!
HTTPヘッダインジェクションは、動的にサイトのヘッダを生成するようなサイトにおいて、改行コードをヘッダ以内に挿入することで任意の文字列を生成し、意図しない動作を引き起こさせることを指します。
具体的に言うと、訪れたサイトとは別のサイトへ勝手に転送されてしまうような命令を書き込まれてしまったり、cookie情報が書き換えられてしまい、個人情報の漏えい等を引き起こします。
HTTPヘッダインジェクションへの対応策
HTTPヘッダインジェクションへの対応策は、外部からヘッダーに埋め込まれる改行コードを削除してしまう、もしくは埋め込みの許可をしない設定にしておくことで防ぐことができます。具体的な方法としては、改行コードのエスケープ処理で無効化してしまうという方法が考えられます。
クリックジャッキング
クリックジャッキングとは、ユーザーが利用するWebブラウザを悪用して、ユーザーに不利益をもたらすサイバー攻撃の一種で、具体的な特徴としては、ボタンやリンクなどを透明で見えない状態にして、通常のWebページの上にかぶせてしまうというもの。
引用:クリックジャッキングとは?その攻撃の概要と対策方法を解説
クリックジャッキングとは、見えない透明化したリンクを、ユーザが見ているサイトに被せて表示し、意図したリンクとは別のURLへ遷移させてしまうものです。
そのリンク先に悪意のあるスクリプトが埋め込まれていた場合、予期しなかった挙動や、情報の漏えいのリスクが考えられます。
クリックジャッキングへの対応策
クリックジャッキングへの対応策は、Webサイト側の設定でX-FRAME-OPTIONSを付けることによって、他サイトを上から被せるといったことができないようにすることができます。
具体的には、.httpd.confファイルに下記のように記述します。
Header always append X-Frame-Options DENY
これにより、他サイトを上からかぶせることを拒否することができ、未然に防ぐことが出来る可能性が高まります。
まとめ
どんなに対策を施しても、何かしらの脅威にさらされてしまうWebサイトですが、対策を何もせず放っておくと、どんどん危険にさらされるリスクが高まりますので、サーバやWebサイトを管理されている方は、情報に敏感に反応し、遅れずに対策をとっていくことが大事だと思います。
コーディング業務のご依頼、ご相談の詳細についてはこちらから
最後までお読みいただき、ありがとうございました。
よろしければシェアしていただければ幸いです。
次の記事へ | 前の記事へ |
WEB業界ならqam!qam(カム)はWEB業界で働く人や興味がある人に役立つ情報サイトです。
マーケティングやデザイン、マークアップ(コーディング)、プログラム、トレンドなどの情報をqamライター陣が執筆。噛めば噛むほど(読めば読むほど)制作・開発や運営・運用、業界知識やノウハウを学ぶことができます。