ウェブサイトのセキュリティ対策を考えてみた。

弊社でも、ご相談いただく案件におけましては、ウェブサイトのセキュリティ対策が要件に含まれることが最近多くなってきました。

特に大学サイト、行政サイトなど・・・・。

導入するCMSによってもアプローチが異なりますし、そもそも運用のベースとなるウェブサーバー自体も対策の対象となったり、なかなか手を焼く要件であることは間違いありません。

そこで今回は、我々がお客様に提案可能な、シンプルでベストな運用方法を考えてみました。

ちなみに、弊社では、セキュリティ対策が要件に含まれる案件については、MovableTypeを必ずオススメいたしております。
長年携わってきたこともさることながら、出力されるデータがスタティック(静的)なCMSですので、物理的なファイルとしてバックアップできる点が大きなポイントで、
他にも、やり方次第では、ステージングと本番環境と切り分けて出力したりと、動的生成のCMS比べるとメリットがたくさんあります。

なお、事前に申し上げますが、今回の記事についてはMovableTypeを売り込むためのものではありませんので、あしからずご了承ください。

~今回のもくじ~

  1. 開発、ステージング、本番環境について
  2. WEBアプリケーション診断(脆弱性診断)
  3. 「SiteKeeper」を利用した改ざん対策
  4. バージョン管理


1:開発、ステージング、本番の環境

案件の規模やクライアント様が所有している動作環境に依存しますが、昨今の制作現場としましては、

  • 開発サーバー
  • ステージングサーバー
  • 本番サーバー

以上3つのサーバーによってプロジェクトを進めて行くのがベストと言われております。

■開発サーバー
開発サーバーは、我々制作サイドがガリガリ作り上げたものをアップしてテストして直してという泥臭い制作作業に利用する構築環境になります。
デザインや動作チェックはもちろんのこと、プログラムに負荷をかけたり、バグのテストに利用したり、お客様に納品するデータの品質向上に努めます。
作業については、一般的なブラウザで確認することもありますが、当然非公開であることが絶対条件であるため、IPアドレス制限やBASIC認証を施して外部からのアクセスを遮断して運用します。

■ステージングサーバー
ステージングサーバーは、2~3年前ぐらいから耳にするキーワードになりましたが、簡単に言いますと、ご依頼主となるクライアント様が公開までの制作物をチェックする環境になります。
一昔前までは、本番環境に「test」などのディレクトリを設けて、ソースを本番と同じように展開してチェックしていただいておりました。そして検収OKとなったものが、1つ上の階層、つまり本番環境にFTPにて手動で移動して公開・・・・と思ったらパスがずれて表示が崩れて・・・という野暮ったい方法でアップしておりました。
そこで、そういった公開ギリギリで人柱的な作業が生じぬようリスク回避するためにステージングサーバーで構築することがスタンダードになってきました。
また、CMSの動作確認や、メールフォームの送信テストなど、クライアント様によって実施する事前テストも、このステージングサーバーで行うことが可能です。
そしてこの環境においても、開発サーバーと同様に外部からのアクセスを遮断して運用します。

■本番サーバー
本番サーバーは、上記2つのフローを経て、めでたく公開できることになったソースがリリースされる環境です。
しかし、リリースするということは、世界中からアクセスが可能となるわけですから、この環境が一番セキュリティ面において強固な状態でなければ話になりません。
セキュリティ対策に必要なサーバーモジュールをインストールしたり、ウェブサイトをSSL化したり、また専用サーバーもしくは共用サーバーの何れかによってもアプローチが異なったりもします。
クライアント様のコストや要件応じてベストな環境を構築することが重要です。

network01.png

セキュリティ的な側面も考慮しつつ、クライアント様に安心して頂ける構築環境は、上記がベスト・・・と考えております。


2:WEBアプリケーション診断(脆弱性チェック)

Gumblarといったウィルスが数年前から拡大し、行政や大学のウェブサイトを改ざんする被害があちこちで見受けられます。
データベースを利用してコンテンツを管理したり、オンラインショップなど、ユーザーがログインログアウトするようなウェブサイトにおいて特に注意が必要です。
そういった外部からの被害を事前に防ぐため、WEBアプリケーション診断というサービスが専門の業者様で展開されるようになりました。

主には、

  • 他人になりすまして不正にシステムにログインすることが可能か
  • 個人情報や機密情報などの重要データを取得可能か
  • 管理者権限を取得することが可能か
  • データベースに不正にアクセスすることが可能か
  • アクセス制御されているリソースに不正にアクセスすることが可能か

といった部分をポイントにチェックを行ないます。

ただ、診断するコストについては業者様各々で、印象とましては、割りと高額なところが多いのが実情です。
そこで弊社では、「OWASP ZAP」ツールを用いて、必要最低限の簡易的に脆弱性をチェックする方法を導入しております。
OWASP(Open Web Application Security Projedt)が提供している、簡易な脆弱性チェックツールで、無料で使用できます。

これまでに制作してきたサイトにおいてチェックしてみると、特にバージョンアップを怠ったオープンソースなどは、SQLインジェクション、クロスサイトスクリプティングなどが検知されます。
利用しているオープンソースはこまめにアップデートしたいのが本音ですが、Wordpressなどでは、利用しているプラグインの条件もあって、なかなか実施出来ない状況が続きます。
ですので、冒頭に述べました、静的なhtmlファイルを出力してくれるMovableTypeをおすすめしております。

しかし、今回のツールによって脆弱性が検出されなければ安全とは必ずしも言い切れません。
あくまでも一つのチェック方法としてご参考頂ければと思います。


3:「SiteKeeper」を利用した改ざん対策

前途に述べたWEBセキュリティ診断においては事前に実施する改ざん対策ですが、運用中のウェブサイトの改ざん対策として「SiteKeeper」というサービスを導入するのも一つの方法です。
弊社と同じ京都のメディアウォーズ様が展開しているサービスで、

  • 検知の通知
  • 自動修復
  • 24時間365日監視
  • サーバーを選ばない

といった機能をベースに運用中のウェブサイトの健全性を保ちます。

先に述べました、ステージングサーバーからSiteKeeperにリリースされたものが「正」とするならば、本番サーバーとSiteKeeperとの物理的なファイルの比較が常に行われる状態で運用が可能となりますので、効率的かつ、セキュリティレベルの高いウェブサイトを運用することが可能です
ここでもやはり物理的なファイルの比較が重要になってきますので、CMSを活用する案件であれば、MovableTypeの導入が必要不可欠となってきます。

弊社では、運用コストに予算を割くことができるクライアント様におけましては必ず提案させて頂いております。

network02.png

SiteKeeperサービスサイトへ


4:バージョン管理

最近では、プロジェクトを進める上で、ソースコードを管理するツールとして「GitHub」や「Bitbucket」といったサービスを利用するケースが多くなってきました。

開発から本番までのすべての環境で均一性を保つためにも、こういったツールを用いることが非常に重要になってきました。
特に、htmlやphpといったウェブサイトの構成ファイルとなるソースコードの管理もさることながら、セキュリティの側面からもバージョンを管理するということは非常に重要なポイントです。

案件のスケールにもよりますが、弊社ではフルスクラッチやECといった開発作業が発生する案件においては、必ずバージョン管理の導入に努めております。

Atlassian_Bitbucket_Logo.png


色々長文となってしまいましたが、上記が弊社にてご提案させて戴くセキュリティ対策になります。

是非ご参考ください。


現在コメントは受け付けておりません。ご了承ください。