KDDIウェブコミュニケーションズ、技術部門の高山さんに伺う「Webセキュリティ対策」

Web制作に関わる全ての人が知っておくべき!サイトを守るためのWebセキュリティ対策 3つの盾

(この記事は2018年8月31日に更新されました)

こんにちは。
京都のWebプランニング会社「ウェブライダー」の松尾です。

某社のレンタルサーバーからCPIのサーバーに乗り換えたことがきっかけで、このコラムを書かせていただく機会を得ました。
現在、ウェブライダーでは、CPIの専用サーバー共用サーバーのふたつを借り、さまざまなWebサイトを運営しています。

今回の記事はWebセキュリティに関する内容をお届けします。

突然ですが、あなたは、自分のWebサイトがサイバー攻撃によって不正アクセスされ、重要な情報や顧客情報が流出してしまった・・・!という事態を想像したことがあるでしょうか?

もし、あなたの会社が中小企業だとしたら、「自分の会社は大企業ほど大きくないし、情報流出なんて関係ないよ」なんて思っていませんか?

そう思っているのであれば、とても危険です・・・!
なぜなら、不正アクセスの被害は、会社の大小関係なく起こっているからです。

たとえば最近、ある企業のシステムが不正アクセスされ、11,156 件の個人情報が流出したというニュースがありました。

不正アクセスで 11,156 件の個人情報が流出(中小企業セキュリティ.com)

この会社は30名ほどの小さな会社でしたが、自社のECサイトで利用していたシステムに第三者から不正アクセスされた結果、顧客の個人情報が外部に流出してしまったのです。
このサイトでは決済代行会社のサービスを使っていたため、クレジットカード情報の流出などの致命的な被害は免れましたが、個人情報保護委員会への報告や顧客対応、システムの見直しなど、大きな対応コストを抱えることになってしまいました。


この事例のように、サイバー攻撃のターゲットとなる企業やサイトに、規模は関係ありません。
個人情報流出と聞くと、「大企業や有名なサイトだけが狙われるんじゃないの?」と思われがちですが、実際は違います。
小さな都市の観光情報サイトから、誰もが知っている洋菓子メーカーのサイトまで、サイバー攻撃の標的は無差別なのです。

ちなみに、不正アクセスなどのサイバー攻撃による情報流出事件は、この半年間で報告されたもので24件以上あるそうです。

この数字を見ると他人事とは思えないですよね・・・。
つまり、WebサイトやWebサービスを運営している人は、明日受けるかもしれないサイバー攻撃に備えて、常日頃からWebセキュリティ対策を行っておいたほうがよいということです。

というわけで、今回は、Webサイト運営に関わるすべての人が知っておくべきWebセキュリティ対策のノウハウについてお話しします。

記事の執筆にあたり、CPIサーバーの技術部門の高山さんから伺った内容をまとめています。

それではまいりましょう。

※Webセキュリティの世界は日々進化しているため、この記事で扱っている情報は最新ではなくなっている可能性があります。
Webサイトのセキュリティを強化される際は、専門家の意見も交えながら、対策を講じるようにしてください。


●このページの目次

サイバー攻撃で狙われているのは大企業だけではない!

サイバー攻撃とは、攻撃者がインターネットの通信機能を悪用し、企業のサーバーから情報を盗んだり、サイトを改ざんする攻撃を仕掛けてくることを指します。

もし、サイバー攻撃を受けて個人情報が流出してしまうと、ざっと考えるだけでも、以下のような損害が発生します。


  • 被害状況を調査するための費用
  • 顧客の対応にかかる費用(お問い合わせへの返信、謝罪など)
  • 顧客からの損害賠償請求にかかる費用
  • システムの修復と復旧作業にかかる費用

さらには、目に見えるコストだけでなく、目に見えない部分でもボディーブローのような損害が発生します。


  • 信用の失墜による企業イメージダウン
  • ネットに悪評が残ることで発生する機会損失

想像しただけで、恐ろしいほどの損害が発生しますね・・・。
そして、その損害には費用だけでなく、「時間」も含まれています。

時間を奪われるということは、本来の業務ができなくなるということです。
費用がかかるだけでなく、本来の業務にも支障が出る状況では、体力がない会社だと、最悪、倒産に追い込まれる可能性もあります。

冒頭で、実際にサイバー攻撃を受けた会社のお話をしましたが、実は、サイバー攻撃を受けている会社はたくさんあります。

IPA(情報処理推進機構)などで公表されている情報によると、不正アクセスによる被害は半年間で24件以上に上ります。

そして、以下の表を見ていただくとわかるように、被害を受けた会社やWebサイトは、その規模も業種も千差万別です。
(出典:Security NEXT 個人情報漏洩事件・事故一覧

2018/08/02アサヒ軽金属のネットショップに不正アクセス - 最大7.7万件のクレカ情報が流出か
2018/07/27職員と部署のメールアカウントに不正アクセス、メール漏洩やスパム送信など - 明治大学
2018/07/13アンケートシステムに不正アクセス、個人情報が流出 - Z会グループ会社
2018/06/28教職員アカウントに不正アクセス、メールが外部へ転送 - 沖縄県立看護大
2018/06/26委託先予約システムに不正アクセス、顧客情報12万件が流出 - プリンスホテル
2018/06/15海外子会社に不正アクセス、顧客情報流出の可能性 - 野村HD
2018/06/13通販サイトに不正アクセス、アカウント情報が流出か - 京都の飲食店
2018/06/12アカウント情報3.7万件が海外サイト上に流出 - キルフェボン
2018/05/31顧客情報9.2万件含むサーバに不正アクセス - パーソルキャリア
2018/05/18攻撃者がメール転送設定を変更、受信した個人情報が外部に - 立命館大
2018/05/17コンタクトレンズ販売サイトでクレカ情報が流出、複数顧客で被害 - メニコン子会社
2018/05/09森永乳業の通販サイトに不正アクセス - クレカ情報流出の可能性
2018/04/27不正アクセスでイベント参加者の個人情報流出、匿名の通報で判明 - 忍野村
2018/02/28東芝グループ会社に不正アクセス - メール情報流出の可能性
2018/02/26ポルシェジャパンに不正アクセス、顧客情報2.8万件が流出 - 独親会社からの指摘で判明

この表を見れば、サイバー攻撃による被害はけっして他人事ではない、ということがわかるかと思います。

大企業への攻撃の踏み台として、中小企業が攻撃されるケースも・・・!

何度もいいますが、サイバー攻撃は大企業だけを狙っているわけではありません。

たとえば、大企業のセキュリティが堅牢な場合、攻撃者はその取引先の中小企業を狙ったりもします。
なぜなら、中小企業のセキュリティは大企業に比べて甘く、中小企業のセキュリティを突破すれば、大企業との取引のメールなどを介して、大企業のシステム内部へ侵入しやすいからです。

つまり、攻撃者は、大企業への攻撃の踏み台として、中小企業を最初のターゲットにし、その中小企業のシステムを経由して、大企業に損害を与えようとするのです。

攻撃者は中小企業を踏み台に大企業に損害を与える


コワイですね・・・。

では、サイバー攻撃を防ぐためには、どうすればいいのでしょうか?
そこで必要となってくるのが「Webセキュリティ対策」の知識です。

Webセキュリティを理解しよう

私たちがいつも使っているWebサービスは、個人情報やクレジットカードなどの金融情報を保有しています。
たとえば、AmazonのようなECサイトであれば、多くの人がクレジットカード情報をAmazonに登録していますし、Slackのようなチャットツールでは、日々、個人情報のようなシークレットにすべき情報がチャット上で飛び交っています。

そういった情報が外部へ漏洩しないよう、サイバー攻撃を防ぎ、WebサイトやWebサービスのセキュリティを高めるための対策を「Webセキュリティ対策」といいます。

「脆弱性」とはセキュリティ上の欠陥のこと

Webセキュリティ対策では、主にシステムの「脆弱性」を狙った攻撃を防ぐための策を講じます。

「脆弱性」とはコンピュータのOSやソフトウェアにおけるセキュリティ上の欠陥を指し、別名「セキュリティホール」とも呼ばれます。

たとえば、私たちが日頃使っているWebサービスは、人が設計し、人が作り、人が運用しているものです。
そのため、人間の力が絡んでいる以上、“パーフェクトに安全”なシステムは存在せず、設計や開発の段階、もしくは実際に運用をしていく中でミスや欠陥が発生しうる状態にあります。

そして、それらの欠陥は、OSやソフトウェア、ネットワークのシステムなど、さまざまな場所に存在しています。
よって、なかなか気付きにくいモノだったりするのです。

さて、ここで、脆弱性についてわかりやすく解説するために、「住宅」を用いた“たとえ話”をしてみましょう。

ある住宅がありました。
その住宅は、玄関と裏口に鍵がかかります。
住宅の持ち主は、常々、玄関と裏口に鍵をかけておけば安心と思っていました。

しかし、あるとき、その住宅に泥棒が入ってしまいました。
実はその住宅の2階の雨どいには、庭木を剪定するための「はしご」が常に立て掛けられおり、その「はしご」を少し移動させれば、2階の窓から部屋に侵入できたのです。

残念ながら、家主がそのことに気付いたのは、泥棒の侵入を許したあとでした・・・。


このように、一見、セキュリティが万全そうでも、何かをきっかけとして、脆弱性が露呈する場合があります。
そして、脆弱性を見つけた泥棒(攻撃者)はさまざまな手段を使って、その脆弱性を狙って攻撃を仕掛けてきます。

そこで、代表的な攻撃方法をお教えします。

「脆弱性」を狙った代表的な攻撃方法 3つ

攻撃者は脆弱性を見つけると、以下のような攻撃をしてきます。
代表的な攻撃手段を3つご紹介します。

1、SQLインジェクション

ネットショップなどのWebアプリケーションは、お客様がお問い合わせフォームなどに入力したデータをサーバーで受け取り、そのデータをデータベースに登録します。

ただ、もし、そのデータの中に、データベースを動かす言語である「SQL言語」が注入(インジェクション)されていると、Webアプリケーションが意図しない動作をしてしまいます。

たとえば、本来は「オススメのレストランを探して」というリクエストだったはずが、悪意のある「SQL言語」の注入(インジェクション)により、「オススメのレストランを探して。ついでに、このサービスの会員情報も全部教えて」というリクエストになって送信されてしまうのです・・・!

これが「SQLインジェクション」です。

SQLインジェクションを防ぐためには、たとえば、データベースを動かそうとしている悪意のある言葉を、動作につながらない一般的な文字列に変換する方法があります。

SQLインジェクションを防ぐ対策ができている場合とできていない場合

また、この方法以外にも、このあとご紹介する「WAF(Webアプリケーションファイアウォール)」などを使う方法もあります。
詳しくは、この記事の後半をご確認ください。

2、XSS(クロスサイトスクリプティング)

“Webアプリケーションが意図していない動作をさせる”という点はSQLインジェクションと同じですが、この「XSS(クロスサイトスクリプティング)」は、データベースではなく、Webページを操作します。

一般的に、Webページを変更・更新する際は、FTPソフトなどを使ってサーバーにログインし、ファイルをアップロードすることでおこないます。
しかし、XSS(クロスサイトスクリプティング)という攻撃は、サーバーにログインせずにページの見せ方や動作までを変えてしまうのです。

このXSS(クロスサイトスクリプティング)は、お問い合わせフォームなどの入力フォームに、悪意のあるプログラム(スクリプト)を送信する攻撃のことです。

クロスサイトスクリプティング(XSS)を防ぐ方法としては、プログラムと認識される文字を無害化すること(HTML特殊文字のサニタイジング、もしくはエスケープ)などがあります。

3、ブルートフォースアタック(総当たり攻撃)

「ブルートフォースアタック(総当たり攻撃)」は、パスワードなどを大量に自動生成し、ログインに成功(ヒット)するまで文字列パターンをひとつずつ試すという攻撃です。

ブルートフォースアタック

あなたのパスワードは覚えやすく、入力しやすいものではありませんか?
自分のパスワードは8桁くらいあるし大丈夫だよ!とお思いであれば、注意が必要です。
なぜなら、8桁程度のパスワードであれば、カンタンにヒットされる可能性があるからです。

アルファベットのみで8桁のパスワードの場合、26文字の8乗「208,827,064,576」、つまり「2088億ちょっと」の組みあわせがありますが、この数字程度のパターンなら、今の時代、カンタンにヒットできてしまうんですね・・・。

以下の表は、情報処理推進機構、通称IPAが10年前に算出した、ヒットまでにかかる時間です。
この調査以降、公的機関によるデータ公表はありませんが、10年経った今では、飛躍的に時間が短縮されていることでしょう。

ブルートフォースアタックデータ
最大解読時間(参考:2007年IPA調べ


いかがでしょうか?
攻撃者はさまざまな手法を使って攻撃を仕掛けてくるということがわかりましたか?

上記の文章を読んだ方の中には「脆弱性を狙った攻撃は、お問い合わせフォームなどがあるWebサイトだけを狙っているの?」と思われた方がいるかもしれません。

しかし、問題はそう甘くないんです。

なぜなら、お問い合わせフォームなどを使っていなくても、WordPressなどのCMS(コンテンツマネジメントシステム)を使っているだけで危ないケースがあるからです。

どうして、WordPressなどのCMSが危険なのでしょうか?
続けて、その理由をお話しします。

WordPress本体とプラグインのアップデートはこまめに行おう

WordPressは利用者がとても多い人気のCMS(コンテンツマネジメントシステム)です。

今、全世界のWeb上にあるサイトの30%はWordPressで作られているそうです。
(参考:Usage of content management systems for websites:W3Techs)

CMS(コンテンツマネジメントシステム)とは、ユーザーがサイトへアクセスしてきたときに、データベースの中に登録されている情報を、あらかじめ用意されているテンプレートに反映させる形で動的にページ(記事)を作るシステムのことを指します。
HTMLやCSSのことがわからなくてもサイトやブログがカンタンに作れてしまうことから、たくさんの人がWordPressをはじめとしたCMSを使ってサイトやブログを立ち上げています。

ただ、このCMSで作られたサイトは悪意ある攻撃を受けやすいんです。
なぜなら、データベースとプログラムを連携させて動くから

WordPressを使っているサイトの中には、サイバー攻撃を受け、マルウェアを仕込まれたり、悪意あるサイトに自動的にジャンプするような改ざんを受けるケースがあります。
とくにWordPressはユーザー数が多く、無料で公開されているものなので、攻撃対象になりやすいのです。

ただ、WordPress側も黙って手をこまねいているわけはありません。
WordPressはプログラムに脆弱性が見つかった際、世界中のエンジニアたちがその脆弱性を迅速に直し、バージョンアップ版を都度配布しているからです。
だから、WordPressのプログラムを常に最新版にアップデートしていれば、危機的な被害になることは少ないのです。(※今のWordPressのプログラムは自動でアップデートされます)

最近では、WordPressの外部の「プラグイン」も、脆弱性が見つかった際、迅速にアップデートがされることが増えています。
ただ、プラグインの場合は自動でアップデートされませんので、ユーザー側でプラグインが最新かどうかを確認し、自分たちでアップデートする必要があります。

また、WordPressのプラグインのなかには、WordPressの管理画面の不正ログイン、コメントスパムなどのサイバー攻撃から保護してくれるものもあります。
たとえば「SiteGuard WP Plugin」などです。

この「SiteGuard WP Plugin」というプラグインは、日本のWebセキュリティ対策の専門企業であるジェイピーセキュア社が無料で公開しているプラグイン。
Webセキュリティ対策のプロがつくったプラグインなので、導入しておけば安心です。


ここまで、脆弱性を狙った攻撃についてお話ししてきました。

脆弱性はいろいろなところに存在しますから、日頃から危機感をもつことが大切です。

では、ここからはいよいよ、それらの脆弱性に対抗するための「Webセキュリティ対策」についてお話していきます!

レンタルサーバー側で対応可能なWebセキュリティ対策

Webセキュリティを高めるためには、“プログラムまわりで脆弱性対策をおこなうこと”と、“サーバーまわりで脆弱性対策をおこなうこと”のふたつが大切です。

プログラムまわりの脆弱性対策に関しては、プログラミングに関する複雑な話が必要になるため、今回は詳しく触れません。

ただ、安心してください。

レンタルサーバー会社が提供している「防御システム」を導入すれば、プログラムに多少の脆弱性があっても、ある程度セキュリティをカバーしてくれる場合があるんです!

レンタルサーバーの防御システム三種の神器、「ファイアウォール」「IPS」「WAF」

レンタルサーバーの防御システムには、三種の神器と呼ばれる、有名なシステムがあります。

それは、「ファイアウォール」「IPS」「WAF」という3種類のシステムです。

セキュリティに詳しくない方でも、「ファイアウォール」という言葉は聞いたことがあるかもしれません。

ただ、ファイアウォールがどんなことをしてくれるかを知っていますか?
言葉は知っているけれど、実際にはどんな効果があるのかがわからない、という方は多いのではと思います。

というわけで、今回は、それぞれのセキュリティシステムがどういったことをしてくれるのか?を解説しながら、Webセキュリティのトレンドについてお話していきます。

「ファイアウォール」「IPS」「WAF」のそれぞれの役割

1、ファイアウォール

インターネットの通信では、ポートと呼ばれる「道」と、プロトコルという「伝達方法」のふたつのルールによって、文字や画像などのファイルの送受信が行われます。

たとえば、Webページを見るときには「80番ポートをTCPで通信する」と決まっていて、例えるなら「国道80号線をTCPという自動車でファイルを運ぶ」という意味です。
FTPであれば20、21番のTCP、 DNSなら53番のTCP/UDP、といったルールが決められています。

このポートとプロコトルというのは、サーバー内にたくさん存在しており、上記のようなルールが適用されています。

ただ、このポート、VPSサーバーなどを借りた時は、すべてのポート・プロトコルが「有効な状態」になっています。 つまり、使っていないポートが自由に通り抜けできる状態になっているのです。

もし、あなたが、たくさん部屋のあるビルを建てたとき、管理の目の届かない部屋があれば、きっと常に鍵をかけておきますよね?

「ファイアウォール」とは、まさにその“鍵”の機能を指します。
ファイアウォールは、元々の意味が「防火壁」という意味です。
ポートやプロトコルに対して「使う」「使わない」のルール付けをして、不要なポートやプロトコルを閉じてしまい、「ポートスキャン」と呼ばれる“どこか侵入できそうなポートを見つけようとする攻撃”を阻止するのです。

たとえば、WordPressを使って作られたWebページがSSL化されているとして、そのページを公開するだけであれば、80、443、20、21、25 の5つのポートが開いていればよいので、他のポートは閉じておくとよいでしょう。

ちなみに、共用サーバーでは、ファイアウォールの設定などはサーバー会社がおこなってくれているので、とくに意識をする必要はありません。

専用サーバーやVPS、クラウドサービスのサーバーでは、ソフトウェアとしてインストールされている「iptables」を使えば、サーバーのポートやプロトコル、特定のIPアドレスからのアクセスを遮断する事ができます。

また、サーバーの「iptables」ではなく、専用のファイアウォール機器(有料)を利用すれば、サーバーへのアクセスが発生する前に不正なアクセスを阻止してくれます。

CPIの専用サーバープランにおけるファイアウォールの説明

2、侵入防止システム:IPS(Intrusion Prevention System)

サーバーへのアクセスには、Webページの閲覧やメールの送受信といった一般的な通信のほか、ときにはサーバーに侵入してみようとする不正な通信もあります。

その不正な通信の中には、たとえば、1秒間に数百・数千といったアクセスをする、いわゆる「DoS攻撃」などがあります。

「IPS」はそんな不正な通信をリアルタイムに感知し、その不正なアクセスを破棄したり、アクセス元のIPアドレスからの通信を遮断するといった機能を持っています。

リアルタイムに動作をするため、サーバーへの負荷が増えてアクセスができなくなったり、攻撃によってサーバーのセキュリティホールが破られて侵入される、といったことを未然に防ぐことが出来ます。

ファイアウォールはあくまでもポートを制限するセキュリティ対策であるのに対して、こちらのIPSはファイアウォールで防いでいないポートを狙った不正なアクセスを制御します。

より高度なネットワークセキュリティが求められる場合には、ファイアウォールと一緒に利用すると効果的でしょう。

CPIの専用サーバープランにおけるIPSの説明

3、WAF(Web Application Firewall)

ファイアウォールで不要なポートを閉じたり、IPSで「DoS攻撃」を防いだとしても、サイバー攻撃が止まるわけではありません。
なぜなら、上記の脆弱性の解説で挙げた「SQLインジェクション」や「XSS(クロスサイトスクリプティング)」などは防げないからです。

たとえば、80番ポートに1度だけアクセスをするだけでも、SQLインジェクションやXSSといった攻撃は可能です。
そのため、IPSでも「通常のアクセス」なのか「不正なアクセス」なのかを判断する事ができません。

そこで役に立つのが「WAF(Webアプリケーションファイアウォール)」です。

WAFは、アクセスされた際のパラメータや、サーバーがユーザーに返そうとしているデータをリアルタイムに監視し、蓄積されているデータベースを元に「このデータは、ハッキングのパターンだ!」と判断をした場合、データの送受信を停止して、情報の流出などを未然に防御する仕組みです。

SQLインジェクションやクロスサイトスクリプティングだけでなく、ブルートフォースアタック(総当たり攻撃)も防ぐことができるのです。

現在、大手のレンタルサーバー会社の共用サーバーでは、WAFが標準装備されていることがほとんど。
レンタルサーバーのコントロールパネルでWAFという文字を見かけたこともあるのではないでしょうか。
サーバー会社によって設定方法はさまざまですので、「自分のサーバーがWAFが有効になっているか気にしたことがないな」という方はすぐに確認しましょう。

たとえば、CPIの共用サーバー「ACE01」でも、WAFが標準装備されています。

CPIサーバーのWAFは、日本のWebセキュリティ対策の専門企業であるジェイピーセキュア社の提供する「SiteGuard Lite」を利用しているので、ユーザーはWAFを有効化しているだけで安全なサーバー運用が可能になります。

ちなみに、CPIサーバーの場合、サーバー契約時に最初からWAFが「有効化」されているので安心です。
もし、有効・無効を切り替えたい場合には、コントロールパネルからドメインごとにカンタンに切り替えができます。

CPIの共用サーバーにおける「WAF」の説明

以下はCPIサーバーにおけるWAFの使い方に関する説明ページと、説明動画です。

知らないと怖いWebセキュリティと、CPIサーバーのWAF設定方法

CPIの専用サーバーでも、有料のオプションサービスを利用することで、「ブラックリストファイル」を自動更新をしてくれるWAFを安価に利用する事ができます。

CPIの専用サーバーにおける「WAF」の説明

CPIの共用サーバーならカンタンにWAFの有効・無効を切り変えられる

まとめ

いかがでしたか?

Webのセキュリティ対策でもっとも大事なのは「予防」です。

冒頭でお話したとおり、いつ、どんなことがきっかけであなたのWebサイトのセキュリティが破られるかわからない時代となっています。
ただ、被害に遭ってからでは遅いのです。

もし、コストを抑えつつ、Webセキュリティ対策を重視したWebサイト運営をするのであれば、CPIの共用サーバーの利用を選択肢のひとつに入れていただくとよいでしょう。
セキュリティ面で考えると、非常にコストパフォーマンスの高い共用サーバーだと思います。


CPIの共用レンタルサーバープラン


今はレンタルサーバーもセキュリティレベルで選ぶ時代。
「備えあれば憂い無し」。
ぜひ、今回のノウハウを憶えておいていただき、リスクのないWebサイト運営を進めてください。

もし、Webセキュリティに関して不明な点があれば、CPIサーバーのお問い合わせフォームから問合せするといいでしょう。


トップへ