近年、インターネットを介したサイバー攻撃や情報の流出リスクはますます深刻化しており、単体テストやシステムテストと同様に、セキュリティ診断やテストの実施によるセキュリティの確保が求められるようになっています。今回は、セキュリティ被害を引き起こすシステムの脆弱性と、その脆弱性を検知するためのセキュリティ診断の必要性などについてご紹介します。
脆弱性とは
脆弱性とは、「プログラムの不具合や設計上のミスが原因で発生したセキュリティ上の欠陥」のことで、脆弱性を診断することをセキュリティ診断と呼びます。
企業など組織内部での情報の取り扱いを誤ることが原因で起こる事故を「セキュリティ事故」と言います。それに対し、インターネットなどの外部からの不正アクセスの被害に遭いやすかったり、ウイルス感染しやすい状態になっていたりすることを「脆弱性がある」と表現することがあります。
主要な脆弱性とその特徴
脆弱性には数多くの種類がありますが、その中でも発生頻度の高い脆弱性を3つご紹介します。
【1】クロスサイト・スクリプティング
掲示板などの外部から不正な命令文(スクリプト)を書き込まれてしまう脆弱性です。不正なスクリプトを書き込まれたWebサイトのページを閲覧して不正なサイトに誘導されてしまった場合、マルウェアなどのウイルスに感染したり、ユーザーの個人情報が流出したりする可能性があります。
【2】情報漏えい
Webサーバー上に保管されている重要なファイルの内容に、インターネット上から不正にアクセスされてしまう脆弱性です。本来は保護されるはずのデータにアクセスできてしまい、個人情報や企業の機密情報が奪われ、売買されてしまう可能性もあります。
【3】SQLインジェクション
データベースと連携したシステムやWebアプリケーションに対して、悪意あるリクエストにより、データベースを不正に操作されてしまう脆弱性です。データベースに保管している機密情報や顧客情報が流出する可能性もあります。
セキュリティ診断の必要性
脆弱性はどんなシステムも少なからず持っているものですが、致命的な脆弱性が放置された場合、思いがけないセキュリティ事故につながってしまうため、セキュリティ診断を活用することが大切です。
情報セキュリティ事故への懸念
最近では、個人情報などの機密性の高い情報に対して、組織的なハッキングを行う事例も多く、脆弱性を放置していることで自社のシステムやアプリケーションに不正なアクセスを受け、甚大なセキュリティ被害をもたらす可能性も考えられます。セキュリティ事故のリスクを減らすには、セキュリティ診断によりシステムやWebアプリケーションの脆弱性を検知し修正することが大切です。
セキュリティ対策コストの低減
セキュリティ対策の重要性は理解していても、ネックとなるのがコストです。すべてのセキュリティリスクに対して完璧に対応するということは現実的ではありません。自社のシステムが保有するリスクの種類やレベルをセキュリティ診断で明らかにすることで、セキュリティリスクに優先順位をつけ、コストを抑えることができます。
セキュリティ診断の現状と課題
セキュリティ診断はシステムのセキュリティリスクを検知するのに有効な手段ではありますが、現状は以下の3つの課題を抱えています。
【課題1】誤解や認識のズレ
開発システムの発注元が「セキュリティテストや脆弱性の診断は開発工程に含まれている」と誤解している場合など、開発者とクライアントの認識の相違により、納品直前や納品後にトラブルになる可能性もあります。事前に保証事項の認識合わせを怠らないようにすることが大切です。
【課題2】専門性の壁
セキュリティ診断は専門性が高く、社内の開発者が対応することが難しいため、外部の専門会社やセキュリティを専門とする開発者との協力が欠かせません。セキュリティテストの実施が要件に含まれている場合は、予め外部への業務委託を見込んでおくと良いでしょう。
【課題3】費用と時間の問題
セキュリティ診断の費用は、専門性が高いこともあり比較的高額な場合が多いです。また、専門の調査員がセキュリティ診断を手作業で行う場合には、相応の費用やその工数を見込んだ開発スケジュールを考慮し、導入するかどうかをプロジェクトの計画段階で判断することが求められます。
現状利用可能なセキュリティ診断方法としては、自動チェックツールによる診断、もしくはプロの診断員による調査・コンサルティングの2通りがあります。
ただしツール診断は安価で手軽に導入しやすい反面、診断員による調査と比べると診断の網羅性が低く、一部の脆弱性を検知できないことがあります。
例えば、ユーザーアカウントのなりすましによる不正アクセス(いわゆる承認系の脆弱性)などは、現在公開されているツールのみでは検知できないと言われています。
一方、プロの診断員に依頼する場合は品質に見合う価格を支払う必要がありますが、システムやアプリケーションの特性に合わせて脆弱性を調査し、より正確性の高い診断が可能です。五輪開催を目前に控え、海外からの攻撃が活発化することも考えられます。ツールと調査員による診断を併用して、適切なコスト・調査カバレッジをより効果的に設定できるでしょう。
おわりに
システムの脆弱性とは、セキュリティの観点から見たシステムやアプリケーションの構造上の不備であり、その種類は多岐にわたります。組織的に個人情報を狙った外部からの不正アクセスの可能性も高いため、少なくとも脆弱性のリスクがどの程度なのか把握しておくことが重要です。
その第一歩としてセキュリティ診断がありますが、安価なツール診断と診断員による自社システムに即した診断のメリット・デメリットを考慮して採用するようにしましょう。