LAMP / LAPP システム開発 - スプライン

スプラインは情報技術をビジネスに生かすためのお手伝いを致します。

WEBセキュリティ自己評価ツール

このページでは、お客様ご自身でサイトのセキュリティを評価するための手助けを行います。設問に回答すると解説が表示されますのでご覧下さい。なお、記載されている設問、および解説はセキュリティ評価の目安であり、確実にセキュリティホールがある、もしくは無いという事を断言する物ではありません。また、WEBセキュリティ自己評価ツールは無保証での提供とさせて頂きます。内容に間違いがあったり、情報が古くなってしまっていたとしても、株式会社スプラインはご利用した結果についていかなる責任も追いません。予めご了承の上、ご利用下さい。

セキュリティ評価サービスのページに戻る

サイトは非常に流行っており、連日沢山の訪問者が訪れる

沢山のユーザーが訪れるサイトでは、セキュリティホールを利用しようと考える者の割合も増えると考えられます。訪れるユーザー数によってセキュリティホールが存在する確率は変化しませんが、問題が表面化する確率は高くなります。また極めて沢山のユーザーが訪れるサイトは問題発生が社会問題化し、メディアで取り上げられるリスクもあります。

WEBを通してユーザーから料金を受け取っている

物品の販売や有料コンテンツの配信等を行い、ユーザーから料金を受け取っている場合、悪意ある人物がユーザーの財産を不当な手段で入手しようと考えるかも知れません。サイトで料金を受け取っている事がセキュリティホールの存在する確率を増加させる事はありませんが、問題発生時のリスクを大きくします。

住所や氏名等、ユーザーの個人情報を受け取っている

ユーザーから個人情報を受け取っている場合、悪意ある人物がユーザーの個人情報を不当な手段で入手しようと考えるかも知れません。サイトで個人情報を受け取っている事がセキュリティホールの存在する確率を増加させる事はありませんが、問題発生時のリスクを大きくします。

開発時に納期が押しており、開発会社に急いでリリースしてもらった。

納期に間に合わせるために急いで開発した場合、開発者は機能の実装に追われ、テストがおろそかになる場合があります。十分なテストが行われなかった開発では、セキュリティホールの存在する確率は高くなります。

1人のプログラマがすべてを開発した

たった1人の開発者がすべてを担っている場合、ケアレスミスを防げないかも知れません。また、テストも開発者自身がすべてを行っている場合、見過ごしているミスが存在する確率を高めます。

検収を行った

検収とは納品されたシステムをお客様自身、または開発会社とは別に委託した検収業者がチェックする事です。検収の過程でセキュリティホールのチェックが行われていれば、リリース後にセキュリティホールが存在する確率を大きく下げる事ができます。

バグ(瑕疵)がある

バグがあるという事は、まだ発見されていないバグもあるかも知れません。未知のバグがどのぐらいあるかは、ソフトウェア信頼度成長曲線、またはバグ曲線と呼ばれるグラフで表現する事で、ある程度統計的に予測が付きます。ソフトウェア信頼度成長曲線の詳細は割愛しますが、連日新しいバグが見つかるような状況ではまだまだ沢山のバグがあると考えるべきでしょう。まだ見えてない未知のバグの中には、セキュリティホールに結びつくバグも存在しているかも知れません。

ログイン機能がある

サイトにログイン機能がある場合、ユーザーは認証のためのパスワードをサイトに送信する事になります。よってセキュリティホールが存在している場合、パスワードを盗まれる可能性があります。またログインしなければ利用できない機能が、非ログイン状態で利用される事のないように注意しなくてはなりません。ログイン機能が存在している事自体はセキュリティホールではありませんが、ログイン機能の無いサイトと比較した場合、チェックしなくてはならない項目は多くなります。

共有サーバーを利用している

共有サーバーは沢山の契約者が利用するため、悪意ある人物がお客様と同一のサーバーを利用している事も考慮してサイトを設計しなければなりません。特に悪意ある人物とドメインを共有しなければならない場合、さまざまな問題が発生する可能性があります。可能な限り共有サーバーは利用するべきではありませんが、利用しなければならない場合はなるべく独自ドメインで運用して下さい。なお、"http://共有ドメイン名/[割り当てられたID等]/" という形式でWEB機能を提供する共有サーバーは、大きなセキュリティ上の問題を抱えています。独自ドメインを利用できない場合でも、最低限、サブドメインを割り振ってくれる共有サーバーをご利用する事を、強くお勧め致します。

データベースを利用している

データベースを利用している場合、SQLインジェクションというセキュリティホールが発生しないように注意する必要があります。データベースを利用している事自体は、セキュリティホールではありません。

ユーザーの利便性を図るために、パスワードの入力無しにログインできる仕組み(自動ログイン)を用意している

自動ログインでは、ユーザーを識別する情報をユーザーのPCにCookieとして保存する実装が一般的です。この情報を盗まれてしまうと、大きな被害をもたらします。特に共有サーバーで独自ドメインを利用していない場合は注意が必要ですし、共有サーバーでサブドメインさえも利用していない場合は極めて危険です。また、自動ログイン機能はクロスサイトリクエストフォージェリというセキュリティホールを招く事があります。クロスサイトリクエストフォージェリを利用されると、本来ログインしたユーザーだけが設定可能な機能を、悪意ある第三者に利用されてしまう事があります。自動ログイン機能自体はセキュリティホールではありませんが、注意しなくてはならない点が多々あります。

パスワードを忘れたユーザーのために、メールアドレスにパスワードを送付する機能(パスワードリマインダ)がある。

パスワードリマインダは、主に2つのセキュリティホールに注意する必要があります。ひとつ目はメールヘッダインジェクションというセキュリティホールです。このセキュリティホールが悪用されると、お客様のサーバーがスパムの発信元にされてしまう可能性があります。2つ目は、特定のエンドユーザーがお客様のサイトに会員登録しているかどうかを、第三者に告知してしまう可能性です。エンドユーザーがパスワードリマインダを利用する時、登録されていないメールアドレスが入力されたとしても「入力されたメールアドレスは登録されていません」等と表示するべきではありません。この場合、エラーメッセージが表示されるかどうかで、入力したメールアドレスが登録されているかどうかを判別できてしまいます。病気や自己破産、生活保護等に関連するサイトや、アダルトサイト、出会い系サイト等でこのようなシステムを採用している場合、エンドユーザーが他人に知られたくないと思っている情報を、第三者に知らせてしまう可能性があります。パスワードリマインダが存在している事自体は、セキュリティホールではありません。

ログイン後に移動するページは特定の1ページでは無く、ログイン前の操作内容によって異なる。

エンドユーザーがログインしていない状態である処理を行おうとした時、ログインページに移動するサイトがあります。この時、ユーザーの利便性を考慮してログインID、パスワードの入力後に元のページに戻って処理を継続できるようにしている場合があります。このような機能を提供しているサイトは、クロスサイトリクエストフォージェリというセキュリティホールに注意する必要があります。このセキュリティホールを悪用されると、本来ならログインしたユーザーだけが書き換えられる情報を、悪意ある第三者に書き換えられてしまう可能性があります。特に自動ログインが可能なサイトの場合、注意が必要です。この機能が存在している事自体はセキュリティホールではありません。

エンドユーザーがHTMLを入力できる掲示板やプロフィール等を用意している

HTML入力可能なシステムでは、悪意あるタグが入力できないように細心の注意を払う必要があります。特にJavaScriptが利用可能になっている場合、クロスサイトスクリプティング脆弱性を招く確率が極めて高いと考えられます。JavaScriptの利用を許可したままクロスサイトスクリプティング脆弱性だけを取り除くのは難しいため、通常はHTML入力可能な掲示板ではJavaScriptを入力できないようにすべきです。しかしJavaScriptを禁止する事は、<script>タグを禁止するだけでは不完全です。onclick、onload等のスクリプトを起動する属性も禁止する必要がありますし、それ以外にもチェックすべき項目が色々あります。HTML入力可能なシステムでは、そうでないシステムと比較してクロスサイトスクリプティング脆弱性が存在する可能性が高くなります。

エンドユーザーがJavaScriptを編集できる

ページのデザイン等をエンドユーザーがカスタマイズ可能にしているサイトで、かつJavaScriptも利用可能な場合、クロスサイトスクリプティング脆弱性に十分注意する必要があります。この場合、善良なJavaScriptのみを許可し、悪意あるJavaScriptを禁止する機能が要求されますので、対策は極めて難しいと思われます。可能な限り、エンドユーザーにJavaScriptを利用させないようにするべきです。どうしてもJavaScriptを利用させたい場合、エンドユーザーひとりひとりにサブドメインを与えるのが比較的安全です。

エンドユーザーがスタイルシートを編集できる

スタイルシート編集機能をエンドユーザーに提供する場合、ビヘイビアという機能を利用させないように注意する必要があります。ビヘイビアが入力可能なスタイルシート編集機能では、そうでないシステムと比較してクロスサイトスクリプティング脆弱性が存在する可能性が高くなります。

入力画面で半角の '(シングルクォーテーション) や "(ダブルクォーテーション) を入力すると、正常にデータが保存されない。

一般的な文字を入力している時は問題無いのに、シングルクォーテーションやダブルクォーテーションを入力した時に正常に処理ができないシステムでは、SQLインジェクション脆弱性が存在する確率が高いと考えられます。このような現象がサイトに存在している場合、早急に開発会社、もしくは弊社にご連絡下さい。

入力画面で<b>あ</b>と入力すると、確認画面で太字の「あ」が表示される。

もし太字で表示される事が予期せぬ出来事だとしたら、クロスサイトスクリプティング脆弱性が存在している可能性が極めて高いと言えます。早急に開発会社、もしくは弊社にご連絡下さい。

入力画面で<script>alert('A')</script>と入力すると、確認画面でポップアップウィンドウが開き、"A" と表示される。

もしポップアップが開かれる事が予期せぬ出来事だとしたら、ほぼ確実にクロスサイトスクリプティング脆弱性が存在しています。早急に開発会社、もしくは弊社にご連絡下さい。

診断結果は如何でしたか?

この診断ツールの結果はあくまでひとつの目安です。結果が良かったからと言って安心してしまったり、逆に悪かったからと言って慌てたりはしないで下さい。弊社ではお客様のサイトの状態に応じて、適切なアドバイスを致します。今回の診断結果を弊社に送付し、セキュリティ評価サービスを希望されるお客様は、以下のボタンを押して下さい。


LAMP / LAPP システム開発 - スプライン