企業向けアプリケーションのさまざまな“常識”をJavaのオープンソース・フレームワーク群である「JBoss」から学んでいきましょう。企業システムを構築するうえでの基礎となる知識をリファレンス感覚で説明していきます。初心者から中堅、ベテランまで大歓迎!
今日の企業で使われる社内システムは、複数のユーザーがコンピュータ・ネットワークによってサービスの同時提供を受けられます。そのため、会社の中にいなくても、自分の会社で使っている社内システムにアクセス可能で、多くの人がその利便性を享受しています。
もちろんインターネットにはさまざまな脅威が存在するため、「外部からのアクセスに対するセキュリティ対策を行っている」という会社も多いでしょう。しかし、それだけでは企業で使うシステムにとってのセキュリティ対策は万全ではありません。
そこで重要になってくるのが、今回のテーマでもある社内システムのセキュリティの常識を理解することです。今回は、セキュリティやアクセスコントロールの概念について説明した後、JBossのセキュリティ機能についてサンプルを用いて説明していきます。
社内システムのセキュリティについて考えるとき、真っ先に思い浮かぶのが第3者による外部からの攻撃ではないでしょうか。そのため、ほとんどの社内システムは外部からの攻撃を防ぐ対策を行っているといえます。
しかし、それだけではセキュリティ対策が万全だとはいえません。その理由は、社内システムにとってのセキュリティの脅威は外部からの攻撃だけではないからです。それは何なのでしょうか。
下記の図1を見てください。よくある社内システムのセキュリティの現状を指し示しています。
図1から見ても分かる通り、社内システムのセキュリティにとって、外部攻撃以外の脅威とは内部からの情報漏えいです。消費者庁が平成21年11月に発表した「平成20年度 個人情報の保護に関する法律 施行状況の概要」によると、平成20年度に企業が情報漏えいした原因の79.6%は内部からの情報漏えいであるというデータが存在します。社内システムにとってのセキュリティの脅威を考えたとき、外部からの攻撃だけでなく内部からの情報漏えい対策も不可欠です。
なぜ内部からの情報漏えいは、こんなにも多いのでしょうか。その理由は【1】社員による過失と、【2】内部からの不正アクセスです。
社員による過失とはPCや業務資料の紛失やメールの誤送信などが挙げられます。そのため、最近の企業ではパソコンの持ち出しを禁止し、紛失したパソコンのデータを閲覧できないように必要なデータは暗号化するなどの対策を行っているようです。
自社の社員によって社内システム内の情報を不正に閲覧、持ち出されるということです。内部からの不正なアクセスは、外部からの不正なアクセスよりも難しくないため悪意のある社員が会社内にいると簡単に情報を持ち出されることでしょう。
内部のセキュリティ管理をしっかりとしていないと、たとえ外部からの攻撃に対するセキュリティが完ぺきでも会社の大切な情報は流出してしまいます。そのため、最近では社員教育などを行うことで社員の倫理感を高め、内部からの情報流出対策を行っている会社も増えてきているようです。
しかし、それだけで内部からの情報流出が防げるという保証はありません。そのために、社内システム自体にも内部からのセキュリティ対策を講じる必要性があります。その対策の1つが、次に挙げるアクセスコントロールです。
社内システムにおいてアクセスコントロールは、どのように用いられているのでしょうか。例を挙げて詳しく説明していきたいと思います。
「アクセスコントロール」とはアプリケーション利用者の権限に応じてアクセスを制御し、アプリケーションのセキュリティを高めることです。主に内部からの不正アクセス対策に効果を発揮します。「アクセス制御」「アクセス管理」ともいわれます。
社内システムのアクセスコントロールには大きく分けて2種類あります。それは【1】認証を用いたアクセスコントロールと、【2】権限を用いて機能、画面ごとに制御を行うアクセスコントロールです。
認証とはアプリケーション側による正当性の判定のことです。これだけでは分かりにくいと思うので下記の図2を見てください。下記の図2ではAさんとBさんが社内システムを利用しようとしています。
Aさんは社内システムを利用するユーザー名とパスワードを持っており、Bさんは持っていません。AさんもBさんもログイン画面でユーザー名とパスワードを入力してログインボタンを押します。ここで社内システムが、ユーザー名とパスワードから正当なユーザーであるか判定します。この社内システム側の判定が認証です。この認証により、特定のユーザーのみが社内システムを利用できるというアクセスコントロールができます。
この例からも分かる通り、ユーザー名とパスワードのみで特定の画面の認証を行うということだけでは、アクセスコントロールという観点から考えると不十分です。そこで、より詳細にアクセスコントロールを行うために、機能や画面ごとに制御が必要です。
社内システムにおけるアクセスコントロールでは、事前にアプリケーション利用者の権限に応じてアクセスできる機能や画面を制限します。図3では権限の違う、Aさん、Bさん、Cさんはアクセス可能な画面も、利用できる機能も違うことを表しています。
図3から分かることは、仮にCさんが不正に機密性の高い社内の情報を持ち出そうとしても、機密性の高い情報が載っている画面Yにはアクセスできません。また、Cさんが画面Xの情報を不正に改ざんしようとしても、Cさんには画面Xを閲覧する権限しか与えられていないため、変更はできません。
このように社内システムでは、アクセスをコントロールすることで内部からの情報漏えいや改ざんを防ぐことが可能です。
以上が社内システムにおけるアクセスコントロールの概要です。以上の2つのアクセスコントロール機能をJBossのセキュリティ管理でどのように実現するか、を次ページ以降で解説していきます。
Copyright © ITmedia, Inc. All Rights Reserved.