昨今、データの紛失、改竄や個人情報の漏洩、またWebサイトやサーバに対して大量データを送りつける(DoS攻撃・DDoS攻撃)などセキュリティに関わる事故や被害がを目にすることが多くなり、情報セキュリティに対するリスクマネジメントが重要な経営課題として知られるようになりました。今回は、Webサイトやアプリケーションを開発する上で、重要となる「パフォーマンステスト」と「脆弱性テスト」についてお話します。
デザイナー
O.K.
パフォーマンステストとは、Webサイトの運用が始まったとき、負荷によりサーバーが落ちるといったトラブルを未然に防ぐためにWebサイトの性能を確保するテストです。
脆弱性テストとは、Webサイトの脆弱性を狙った改ざんや情報漏えい、外部からの攻撃を防ぐためにWebサイトの問題点を検出するテストです。
ここでは、さまざまな目的に応じた各種テストをご紹介します。
実際にWebサイトを見たとき、十分な表示・処理速度があるかなど、ユーザーが満足するレベルに達しているかを検証するためのテストです。
Webサイトに、大量アクセスを試験的に発生させ、どのようなバグが発生するかを検証するテストです。
これによって、アクセスがどれだけ増えるとエラーが起きるのか、データの破損が発生するのかを確認できます。
Webサイトの負荷を一時的に増大させて、想定されるピーク時の負荷に耐えられるかを検証するテストです。
負荷が通常時からピーク時へと移り変わるにつれて、どれだけパフォーマンスが低下していくか、どれだけのユーザー数をサポートできるかなどを数値化して測定することを目的とします。
Webサイトで管理するアプリケーションにおいて、最大ユーザー数を検証することに特化したテストです。
Webサイトに長時間の負荷をかけ、安定性を維持できるかを検証するテストです。
パフォーマンステストには、さまざまな利点があります。
応答にかかるまでの時間、同時ユーザー数における処理能力の限界、どのコンテンツがパフォーマンスを劣化させる原因となっているか、想定外の負荷がかかったときにどのような影響を及ぼすのかを確認することができます。
それらの結果を指標にして、どのような対応が必要になるかが明らかになるのです。
例えばサーバーが大量のアクセスに耐えられないことが分かった場合は、サーバーの性能向上を検討する必要があるかもしれません。
また将来、ユーザー数が増大した場合に想定されるサーバーを拡充(冗長化)するプランをたてる指標にもなります。
スウェーデンの企業k6(旧Load Impact)が提供している負荷テストツールです。(月5回まで無料使用可)
オープンソースの負荷テストツールで、JavaScriptにテストシナリオを記述して負荷テストを実施することができます。
有料版にすると、同時接続数を増やすといったこともできるようになります。
Apache JMeterは無料で使えるパフォーマンステストツールで、GUIを使って操作できるオープンソースです。
さまざまなシナリオでテストをすることができます。例えば、応答時間、ループ回数、ユーザー数など細かく設定し、サイトに見合った検証ができるなど、とても便利です。
パフォーマンステストのツールは、無料のサービスがWeb上にたくさんあります。
検証したいWebサイトの性格に合うツールをぜひ探してみてください。
パフォーマンステストと合わせて対策しておきたいのは脆弱性テストです。
Webサイトは常に悪意のある攻撃の脅威にさらされています。
個人情報の漏洩や改ざん、運用妨害といったリスクを軽減するためにもテストを実施することはとても重要です。
※テストをする前に…
レンタルサーバなどの場合は、サーバ管理者に一度テストの旨を伝えておくといいです。
無料でWebサイトの脆弱性の有無をスキャンしてくれるオープンソースのツールです。
日本語にも対応しているので初心者にも扱いやすいと思います。
ただし、自前ではなく共用レンタルサーバーなどの場合、データベースに検査用のレコードを挿入したり、フォームなどの動的コンテンツに大量にリクエストが送信されるとサーバー管理者が攻撃されたと判断してしまいパスワードが変更されるといったこともあるので、テストするときは前もってシステム管理者に申告しておくのが正解です。
※注意※
脆弱性検査は検査許可をもらっているサイトか、自分の管理しているサイトに対してのみ実施しましょう。
どれだけ素晴らしいWebサイトでも、たくさんのアクセスに耐えられないとなるともったいないことです。
せっかくなら、多くの人にアクセスしてもらいたいですからね。
パフォーマンステストと聞くとちょっと難しく感じるかもしれませんが、ぜひともチャレンジして頑丈なサイトを開発していきたいですね。
脆弱性についての知識を知っておきたいという人は、セキュリティの基本から説明しているIPAの公式ドキュメントを読んでみることから始めるのもいいと思います。
参考:IPA「安全なウェブサイトの作り方」
今日もあなたに気づきと発見がありますように
画面を回転してください