Webアプリケーションのセキュリティについて
JIS Q 27002(ISO/IEC 27002)によると、セキュリティ(情報セキュリティ)とは、以下のような『情報の機密性、完全性、可用性を維持すること』だそうです。
- 機密性(Confidentiality)
認可されていない個人,エンティティ又はプロセスに対して,情報を使用不可又は非公開にする特性 - 完全性(Integrity)
資産の正確さ及び完全さを保護する特性 - 可用性(Availability)
認可されたエンティティが要求したときに、アクセス及び使用が可能である特性
これに加えて、『さらに,真正性,責任追跡性,否認防止及び信頼性のような特性を維持することを含めてもよい。』とあります。
- 真正性 (authenticity)
ある主体又は資源が、主張どおりであることを確実にする特性 - 責任追跡性 (accountability)
あるエンティティの動作が、その動作から動作主のエンティティまで一意に追跡できる事を確実にする特性 - 否認防止 (non-repudiation)
ある活動又は事象が起きたことを、後になって否認されないように証明する能力 - 信頼性 (reliability)
意図した動作及び結果に一致する特性
何だか難しい表現ですが、要は「他人に知られたくない情報を外部に漏らしたり、情報を勝手に改ざん、破壊されたりすることのないようしっかり情報資産を守ること」がセキュリティなのです。
そして当然ですが、Webアプリケーションにもセキュリティが必要です。
今日、多くのWebアプリケーションが、ユーザーの個人情報を多数保有し、当たり前のように金銭取引を行っています。
こういった情報を欲しがり、あるいは、不正に利用しようと企む悪い人たちの存在は、容易に想像がつきます。
一方、Webアプリケーション側のセキュリティへの取り組み状況は、まだ道半ばといった感があります。
十分に対策されているサイトが見受けられる一方で、対策が不十分なサイトも多く、酷いものでは脆弱性が野放しにされているサイトさえ存在するのです。
実際、Webアプリケーションに起因して発生するセキュリティ事故が、ここ数年、大変増加しています。
紛失や盗難、内部の人間の犯行といったシステムの裏側で起こる事故もありますが、何と言ってもWebアプリケーションの場合は、外部から正規の利用者と同じ通信経路を使って攻撃が可能である点が注目されます。
Webアプリケーションに対する攻撃は、通常のFW(ファイヤーウォール)では防げないのです。
わざわざリアルでターゲットに接触しなくても、インターネット経由で、場合によっては簡単に欲しい情報を手に入れることができるのだとすれば、悪意を持った攻撃者が指を咥えて見ている筈もありません。
『Webアプリケーションは狙われている』のです。
セキュリティ事故は、起こってからでは手遅れです。
全てのWebアプリケーションにおいて、セキュリティへの取り組みが進むことを切に願っています。
と同時に、セキュリティに取り組むにあたって少しでも参考になればと思い、微力ながら、情報発信していきたいと思います。