WEBサイトにおけるセキュリティ対策│東京のWeb制作会社のセキュリティ対策関連コラム

Columnコラム

Web制作

WEBサイトにおけるセキュリティ対策

WEBサイトにおけるセキュリティ対策

2015/05/29
このエントリーをはてなブックマークに追加

こんにちはサーバーエンジニアの橋本です。

先日インターネットで調べ物をしていたところ、急にマシンがフリーズしてしまったので、再起動したのですが、残念なことにPCが立ち上がらなくなってしまいました・・・。
もしかしたら何か不正なプログラム(ウィルス)にやられてしまったのではとヒヤヒヤしましたが、修復プログラムを走らせることで何とか復旧することができました。
その後、念のためLANケーブルを外し、ウィルス検査を行い、特に不正プログラムは見つからず今回は事なきを得ましたが、ウィルス対策ソフトはインストールしているとはいえ、昨今どんどん新しいウィルスが誕生しているため、日頃からセキュリティ対策をしっかり行わなければと改めて思いました。

さて、自身が使っているPCだけでなく、WEBサービスにおいても、昨今は外部からの攻撃に備えておかなければいけないと言われています。
今回はそんなWEBサービスにおけるセキュリティ対策についての話になります。

security_150526_01.png

セキュリティ対策をしていますか

WEBサービスにおけるセキュリティ対策と聞いて、皆さんはどんなイメージを持つでしょうか?
不正アクセスを防ぐためのIPアドレス制限や、Dos攻撃(同時に)によるサーバーダウンを防ぐためのFirewall機器を使った対策等がよくイメージされるセキュリティ対策だと思います。
もちろんそれらの対策も行わなければならない対策であり、一昔前までは自社のWEBサイトにはFirewallが使われているから大丈夫ということはよく言われてきました。
しかし、昨今行わなければいけないとよく言われてくるようになったのが、WEBサイト上のフォーム等への攻撃による情報漏えいなどの対策になります。

自社のWEBサイトはそんな複雑なシステムを組み込んでないから大丈夫だと思っている方は多くいるかもしれません。
しかし複雑なシステムを使っていない場合でも実は自社の持っている情報の漏えい問題に結びつく可能性があります。
どの企業サイトにも昨今はお問い合わせフォームや資料請求フォーム等が設置されていますが、これらのフォームでもセキュリティ対策を行っていなければ情報が流出してしまう恐れがあるのです。
また、自社のサーバー内の情報が流出しなかったとしても、自社のサービスを使って顧客データを不正に取得することに悪用されてしまうことがるので注意が必要です。

そのため、どんな簡単なシステムを作る場合においても、情報が流出してしまう恐れがあることを念頭において、対策を取っておく必要があるのです。
昨今大手企業などのサイトで個人情報が流出してしまったということをよく耳にするようになりました。名前やメールアドレスなどの情報は流出してしまった場合、自社のブランドイメージを損なうだけでなく、場合によっては損害賠償等に莫大なコストがかかることがあります。まさに現在はWEB上にサービスを展開している企業にとっては、WEBサイトとセキュリティ対策は決して切っても切れないものになってきているのです。

フォームへのサニタイジング

それではどういった対策を取ればよいでしょうか。

現在、クロスサイトスクリプティング、SQLインジェクション、セッションハイジャック等、いろいろなWEBサイト攻撃の手法があります。
本来はそういった攻撃を予測し、サービスリリース前に念入りにチェックを行う必要があるのですが、お問い合わせフォームのような簡単なプログラムの場合はそこまで念入りにテストをすることはしていない、できない、のが実情だと思います。昨今はWAFという攻撃を防いでくれる機器も使われるようになってきましたが、まだコストが高く導入にはハードルが高いといわざるを得ません。

しかし、作成したプログラムに基本的な対策を施すだけである程度不正アクセスを防ぐことができ、セキュリティレベルを高めることができます。
その基本的な対策というのがサニタイジングという特殊文字をWEBプログラム上にて問題ないものに変更する手法です。

「&」「"」「'」「>」「<」などの記号はプログラム上では特殊な意味を持っています。
WEBサイトから入力されたテキストをプログラム上で処理する際、これらの特殊文字が入っていると、プログラムが予期していない動きをとることがあり、クラッカーと呼ばれるWEBサイトを攻撃する人たちはこういった不具合(セキュリティホール)を狙って攻撃してきます。
サニタイジングを行うことで、特殊文字を無害化する、つまりプログラム上で特殊な意味を持たない記号に置き換えこういった攻撃を防ぐことができるのです。
とはいえ、そこまで難しいことをするわけではありません。前述したプログラム上特殊な意味を持っている記号文字を別の文字に置き換えればよいのです。

よくメタ文字というものに置き換えられることがよく行われます。
「&」→「&」
「"」→「"」
「'」→「'」
「>」→「>」
「<」→「<」
「;」→「;」
ただこれだとパッと見、その文字が何を意味しているか分からなくなりますね。
そこで私はよく、半角の特殊文字を全角に置き換える手法もよくとります。
「&」→「&」
「"」→「"」
「'」→「'」
「>」→「>」
「<」→「<」
「;」→「;」
これであれば変換してもそれが何を意味しているか分かりますね。
要はユーザーが入力したテキスト情報がプログラムに影響を与えない状態になり
判別できるようになればよいので、そこは考えようです。

まとめ

いかがでしたでしょうか。
今回はWEBサービスに関するセキュリティ対策について説明してきました。
もちろん今回紹介したサニタイジング以外にも取らなければいけない対策は多くあります。
対策を打つことはそれなりにコストと時間がかかることではありますが、少しでも時間をかけておくことで、大きな損害を防ぐことができると考えれば、そこにコストをかけない手はないのでしょうか。

security_150526_02.jpg

関連するサービス

ホームページ制作

関連キーワード
text_totop