サイバーセキュリティの“基礎の基礎”をおさらいする本連載。今回はソフトウェアに「脆弱(ぜいじゃく)性」が生まれてしまう理由や、開発者/利用者として可能な脆弱性への対処方法について解説します。
開発したWebアプリケーションを公開しようとしたところ、セキュリティ担当者から脆弱(ぜいじゃく)性診断を実施したか確認されました。脆弱性診断とは何でしょうか?
システムに対して攻撃者の視点からさまざまな攻撃を実施し、セキュリティ上の問題がないかを調べることです。
Webアプリケーションに限らず、ソフトウェアを開発したときには必ずテストを実施します。「求められた仕様を満たしているか」「動作に問題がないか」「不具合がないか」などを確認する作業です。
ソフトウェアの不具合の中には、利用者が使う際の動作には問題がなくても、攻撃者の立場では攻撃に使えるようなものがあります。このようなセキュリティ上の不具合は「脆弱性」と呼ばれます(第2回参照)。
このような脆弱性が存在しないか、攻撃者の視点から調べるのが「脆弱性診断」です。開発したWebアプリケーションだけでなく、それが動作しているOSやWebサーバ、データベースの設定など、幅広い対象についてチェックを行います。
脆弱性診断を実施するのはWebアプリケーションだけですか?
デスクトップアプリケーションやスマートフォン向けのアプリでも実施する必要があります。
Webアプリケーションは常にネットワークに接続されているため、外部から攻撃を受けやすい面はあります。ただし、デスクトップアプリケーションでも、脆弱性を狙った攻撃は考えられます。
脆弱性の内容によっては、コンピュータの管理者権限を乗っ取られる可能性も考えられるため、早急な対処が必要となります。読者の皆さんも、オフィスソフトやPDF閲覧ソフトなどに対して、脆弱性を修正する更新プログラムを何度も適用した記憶があるのではないでしょうか。
また、スマートフォンもネットワークに接続することが当たり前です。そのため、スマートフォンアプリとWebアプリケーションとの通信内容の暗号化が不十分で、個人情報が流出してしまったり、本来不必要な権限を持つアプリによってスマートフォン内の情報を抜き取られてしまったりする危険性があります。
App StoreやGoogle Playのようなアプリ配布サイトではアプリの内容についての審査が行われますが、それに加えて、ソフトウェアを公開する際には開発者側でも、脆弱性診断を実施することが必須だといえます。
次ページから、脆弱性が生まれる理由について解説していきます。
Copyright © ITmedia, Inc. All Rights Reserved.