〜主な攻撃手法と対策〜WEB・デジタルのお仕事,思わずシェアしたくなる話2019.01.29Web上には、簡単な情報を扱うものから個人情報を扱う精密なものまで、さまざまな便利なシステムが存在します。『システム開発とは?〜基本からわかるWebシステム〜』では、Webシステムの基礎を紹介しましたが、今回はそのセキュリティ対策について、エンジニアが知っておきたい“攻撃手法”と“対策”を紹介してみましょう。Webシステムへの攻撃とは?そもそもWeb上における攻撃とはなんでしょうか?負荷を与えてシステムへアクセスできなくするものもあれば、内部の情報を盗み出すことも攻撃です。システムへの直接介入を行わずアナログ的に攻撃する手法もあります。Webシステムが様々な用途に使えるのと同様に、それを攻撃する手法も多種多様に存在するのです。クリックジャッキングまずはクリックジャッキング。これはリンクや、ボタン、文字などの上に透明の要素を設定し、ユーザーからはわからないように意図しない操作を誘導することです。あなたが運営しているメンバーズサイトがあり、以下のような退会ページがあるとしましょう。「退会する」をクリックすれば、もちろん退会となり、会員情報は一瞬にして削除されてしまいます。本人が自分の意志で退会するのであれば問題ありません。そこに悪意のあるユーザーが下記のようなページを作成するとどうなるでしょう。実は上の画像には透明な【退会ページ】が重なっており、『入力する』を押すとメンバーズサイトから退会してしまう罠が仕掛けられています。【退会ページ】自体は本来の機能を呼び出しているため、これによって、あなたの運営するメンバーズサイトからは、意図しない退会が増えてしまうわけです。上記のように、見た目だけ他ページに見せ、本来の機能を悪用することを『クリックジャッキング』といいます。原因としては、他サイトに機能自体を呼び出させてしまうことにあります。上記を制限することで、『クリックジャッキング』を防ぐことが可能です。具体的な対応は以下のとおりです。1HTTPレスポンスヘッダーにX-Frame-Optionsを出力し、frameやiframe要素による読み込みの制限を行う。⇒外部サイトから呼び出されることを制限します。2処理を実行する前にパスワードの入力を求め、パスワードが正しい場合にのみ処理を実行する制限を加える。⇒処理自体に認証を設定し、制限を行います。SQLインジェクションSQLインジェクションとは、ユーザーの入力内容に不正な文字や値を混入させることで、ユーザーの予期しない行為を実行させる攻撃手法です。多くのウェブサイトでは、データベースを利用して、さまざまな情報のやりとりを行っています。データベースとは、大量の情報をしまっておく入れ物のようなもの。データベースで情報を管理することによって、効率よく情報を取り扱うことができます。タベースで管理されているのですが、以下のような画面では、ユーザーの入力した内容を元にデータベースへの命令(SQLと呼びます)を作成して、データベースから情報を取り出したり、情報の登録を行っています。・ブログサイトの記事投稿などなど.........しかし、SQLインジェクションの対策がとられていないと、勝手に不正な文字や値を入力されてしまい、プロフィールを盗み見られたり、情報が削除されてしまったり、情報を盗まれてしまいます。いった被害を受けないためにも、SQLインジェクションの対策が必要となります。●対策1入力内容のチェックを行う⇒住所入力を行う画面であれば(例えば郵便番号の項目など)、正しい形式で入力されているかチェックするとともに、データベースの命令として認識されるような特殊な記述が含まれていないかどうかをチェックする必要があります。2SQL文の組み立てにプレースホルダー(静的プレースホルダー)を使用する⇒入力内容を文字列連結によって、データベースへの命令(SQL)を組み立てるのではなく、データベースで用意されたプレースホルダーの仕組みを使って入力内容を取り扱うことで、安全にデータベースを利用することができます。事前に実行するSQLを確定して、後からパラメーターのみを割り当てる仕組みです。そのためパラメーターに不正なデータベース命令を混入させても、元のSQLを改ざんすることができません。データベース側の機能によってSQLにパラメーターを割り当てる仕組みを静的プレースホルダーと呼びます。3ウェブサイトに表示されるエラーメッセージに、システム内部のエラー情報をそのまま表示しない⇒システム内部のエラーが見えてしまうと、攻撃者に対して不正行為を行う重要なヒントを与えてしまうことになります。Service」攻撃の略称で、サーバとなるコンピュータやネットワークに過剰な負荷をかけて、提供されているサービス(例えばオンラインゲームやSNSなど)にアクセスできないように妨害する攻撃です。DoS攻撃の手法のひとつに「F5アタック」があります。これば、ウェブブラウザの「F5」ボタンを連打することで、ウェブページをリロードして負荷をかける攻撃です。大勢の人を集めて手作業でF5ボタンを連打しなければならないうえに、攻撃元もすぐに特定されてしまう非常に原始的な攻撃手法ですので、DoS攻撃をしようと思ってF5アタックをする攻撃者はおそらくいないでしょう。DoS)は、分散型DoS攻撃と呼ばれ、一気に手法が高度になります。DDoS攻撃の手法は、セキュリティ対策がされていないパソコンをウィルスなどに感染させて、利用者にわからないようにDoS攻撃ソフトをインストールしておき(このパソコンを「踏み台」と呼びます)、標的となるサーバーに一斉にDoS攻撃を行います。踏み台となるパソコンは数千台から数万台にも及ぶ場合もありますので、ほぼ確実にサービス停止に追い込まれてしまいます。攻撃者は、踏み台となるパソコン経由で攻撃するため、攻撃元を特定することが非常に困難です。●対策DDoS攻撃は、現在でも対策が難しい攻撃です。大手のSNSサービスでもDDoS攻撃によりサービス停止に追い込まれたことがありました。標的となるサービス運営者としての対策は、DDoS攻撃を保護する機能のあるクラウドサービスの導入があげられます。自分が使っているパソコンにDoS攻撃ソフトを仕込まれないように、ウィルス対策を行うことも重要です。おしまいにWebシステムへの攻撃はさまざまな手法があり、上にあげた三つはほんの一例となります。Webシステムはとても便利なものではありますが、対策を講じていないと簡単に攻撃を受けてしまい、「情報流出」や「データの破壊」、「乗っ取り」等、致命的な結果を生み出します。導入の際には、機能面だけではなく、くれぐれもセキュリティ面を疎かにしないようご注意ください。何かわからないことがあればインターネットで検索。以前なら辞書や事典などを利用していましたが、今ではネット検索が当たり前のことになっています。見ていると、検索も上手な人とそうでもない人がいるのに気がつきます。普段から何気なく使っているインターネットのサービス。音楽をダウンロードして聴いたり、調べ物をしたり、あるいはアプリケーションを使ったり、重要なデータのバックアップをとったりと、大変便利な時代になりました。2019.01.16システム開発とは?〜基本からわかるWebシステム〜WEBや映像、書籍にマニュアル、イラストなどなど、ゲームに関係するものなら何でも手掛ける当社ですが、お客様に業務を説明する際、もっとも苦労するのが「システム開発」です。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。