ネットショップ作成サービス「カラーミーショップ」では、セキュリティ強化のため、継続的にさまざまな取り組みを行っています。
その取り組みの一つとして、毎年実施している脆弱性診断が挙げられます。
今回の記事では、Webアプリケーションの脆弱性や、実際にどういった診断が行われているのかを、わかりやすく解説します!
脆弱性とは
脆弱性とは、プログラムの不具合や設計ミスなどによって発生してしまった情報セキュリティ上の欠陥のこと。「セキュリティホール」と呼ばれるものもその一つです。
主にWebアプリケーションでサービスを提供しているカラーミーショップでは、Webアプリケーションの脆弱性に注意を払わなくてはなりません。
脆弱性診断とは
その名の通り、システムに脆弱性が含まれていないかを確認する診断のこと。カラーミーショップではWebアプリケーションを対象とした診断を年に一度実施しています(年度によりますが、およそ2カ月程度の期間を要します)。また、専門の外部会社に診断を委託するケースと、自社で診断を行うケースの2つがありますが、カラーミーショップは外部会社に診断を委託しています。
一般的には、実際のサービスに攻撃を仕掛けることで脆弱性の有無を確認することが多いですが、カラーミーショップでは、診断用に用意した同一環境のサーバを用いることで、サービス提供の安定性を守りながらセキュリティ状況の確認作業を行えています。
脆弱性診断の流れ
それでは、実際にどのような流れで脆弱性診断が行われているかを解説しましょう。
1. 脆弱性診断環境の準備
はじめに、カラーミーショップの脆弱性診断のための試験的なサーバ環境を準備します。これは、本番環境と同じサーバ構成で診断を行うことによって、本番環境と同じ脆弱性を発見できるようにすることが目的です。
同時に、決済機能をはじめとした外部の連携サービスに対しては、影響が出ないようアプリケーションの設定を行っています。
2. 問診票の作成
ここからは、脆弱性診断を専門に行う外部会社の協力のもと準備を進めていきます。
クローラーを使って診断に最適な攻撃リクエスト数が決定され次第、診断に使うアカウント情報・サーバ環境・使用しているプログラム言語などをまとめた「問診票」を作成します。
病院での診察や健康診断でわたしたちが問診票を記入するのと同様、Webアプリケーションも、あらかじめ問診票を作成することでより的確な診断が可能になるのです。
3. サーバ環境の調査・テスト項目の作成
外部会社がカラーミーショップのWebアプリケーションを調査します。
Webアプリケーションの特性や、画面の操作方法などを把握し、どのような診断を行うか検討の上、診断項目を作成します。
4. 診断
ここまでの工程を経て、いよいよ脆弱性診断の開始です。診断用サーバを使って実際に攻撃テストが行われます。
上で作られた診断項目に沿ってテストを実施し、不明点が発生し次第、質問票を通じてカラーミーショップのエンジニアと協力しながら診断が進行します。
ここでの攻撃は「自動」と「手動」の大きく2パターンに分類されるそうです。
ツールを使ってさまざまな攻撃を試行するだけでなく、攻撃リクエストを手作業で行ったり、自動で検知されたエラー等を目視で確認することもあります。
5. 診断結果報告・対応
診断結果のレポートがカラーミーショップに納品され、脆弱性診断は終了となります。
万が一レポート上で脆弱性が指摘されていた場合は、その内容に従い、修正対応を行います。
さいごに
以上がカラーミーショップで毎年行っている「脆弱性診断」の流れです。
現在は、日常的な開発作業の中でも自動でセキュリティチェックが行える仕組みも段階的に導入しています。皆さんに安心してご利用いただけるサービスの提供のため、引き続き継続的にセキュリティ強化に取り組んでまいります!