図6●IPアドレスでアクセス可能なマシンを絞る<BR>ぷららネットワークスの例。同社は,APサーバーに割り当てているDBユーザー・アカウントを悪用されてもデータベースに接続できないよう,Oracle DBの設定で接続できるマシンを制限している。(図中のIPアドレスは実際と異なる)
図6●IPアドレスでアクセス可能なマシンを絞る<BR>ぷららネットワークスの例。同社は,APサーバーに割り当てているDBユーザー・アカウントを悪用されてもデータベースに接続できないよう,Oracle DBの設定で接続できるマシンを制限している。(図中のIPアドレスは実際と異なる)
[画像のクリックで拡大表示]
図7●2つの“関所”でユーザーを認証&lt;BR&gt;アサヒインターネットサービスは,データベース管理者やオペレータがデータベースから顧客情報を取得したりする端末に指紋やUSBキーによる認証を利用。許可されていないユーザーがDBサーバーにアクセスすることを防いでいる
図7●2つの“関所”でユーザーを認証<BR>アサヒインターネットサービスは,データベース管理者やオペレータがデータベースから顧客情報を取得したりする端末に指紋やUSBキーによる認証を利用。許可されていないユーザーがDBサーバーにアクセスすることを防いでいる
[画像のクリックで拡大表示]

 データベースやアプリケーションの認証に必要なユーザー・アカウント(ID/パスワード)を複数の担当者が使い回しているケースは多い。これでは,誰がDBサーバーにアクセスしてるかが分からない。不正ユーザーがアクセスしていても分からないという意味で,DBサーバーのアクセス制御は甘いと言わざるを得ない。

正規マシン以外のアクセスを遮断

 まずやっておきたいことは,IPアドレスによるアクセス制御だ。

 ぷららネットワークスは,コールセンターで利用するWebシステムで,APサーバーからのデータベース・アクセスだけを許可するため,Oracle DBの機能を利用している(図6[拡大表示])。

 Oracle DBの設定ファイル「protocol.ora」にAPサーバーのIPアドレスを登録し,それ以外のIPアドレスを持つマシンからのアクセスを遮断する。こうすることで,たとえAPサーバーに与えているDBユーザー・アカウントを不正ユーザーに悪用されてもDBサーバーには接続できない。

 RDBMSの機能を使わなくても,ファイアウォールやサーバーOSのパケット・フィルタリング機能を使うことで,IPアドレスを使ったアクセス制御を実現できる。例えば,アサヒインターネットサービスは,社内LAN上にあるファイアウォールの機能で,データベース管理者のPCからしかデータセンター内のDBサーバーにアクセスできないようにしている。ニコンカメラ販売も同様に,データベースを直接操作するデータベース管理者などが利用するマシンの通信だけを許可するように,ファイアウォールでアクセスを制限している。

 ただし,C/Sシステムの場合にはアクセスを絞り切るのが難しい。「PCの台数が多くなると,人事異動などの際に設定変更が煩雑になる」(ラック 大野氏)からだ。C/Sシステムの場合は,「アプリケーションを修正してDB接続の際にアプリケーション名を渡すようにし,アプリケーションを通じてアクセスしている方法をデータベースで(事前・事後を問わず)チェックする方法をユーザー企業の担当者に勧めている」(大野氏)。

DB管理者へのなりすましを阻止

 次にやっておきたいのは,許可しているマシンの不正利用を防ぐことだ。特に,データベース管理者のなりすまし対策は重要だ。データベース管理者は社外からRDBMSにアクセスする必要があることも多く,IPアドレスによるアクセス制御だけでは不安が大きい。データベース管理者になりすまされると,データベースを自由に使われてしまうし,DB監査ログを収集していてもその信頼性が損なわれてしまう。まずは,データベース管理者ごとに別々のアカウンントを付与する。

 IDとパスワードを使ったユーザー認証ならば,定期的にパスワードを変更する必要がある。ビットワレットの沼上氏は,「データベースを直接操作しなければならない場合,操作申請書を受け取った段階でDBアクセスに必要なIDに対して新たなパスワードを設定する」ようにしている。操作者が作業を終えると,再度パスワードを変更する。

より強固な認証方式に置き換える

 ユーザー認証をID/パスワードよりも強固にするなら,クライアント証明書やワンタイム・パスワード,生体認証を使う。

 ニコンカメラ販売では,ワンタイム・パスワードをデータベース管理者などデータベースを直接操作する権限を持つユーザーのネットワーク認証に使っている。DBサーバーへアクセスする場合,まずワンタイム・パスワードを使い,Webページを通じてユーザーを認証する。認証できたユーザーだけがDBサーバーと通信できる。

 アサヒインターネットサービスは,指紋認証とUSBキーによる2段階の認証をデータベース・アクセスに取り入れている(図7[拡大表示])。自宅からデータベースを操作する場合,まずはネットワーク・レイヤーのアクセス制御として,SSL-VPN装置で指紋による認証を受ける。この認証をパスしたユーザーだけがAPサーバーへの通信が可能になる。さらに,APサーバーはUSBキーが持つユーザー固有の認証データを使って認証する。ここで認証できないユーザーには「URL Not Foundを返し,APサーバーが存在することさえ見せていない」(システムグループ 技師長 高橋章氏)。

 RDBMSのユーザー認証にワンタイム・パスワードなどを使うことも可能である。例えば,Oracle Database 10g Enterprise Editionのオプション機能である「Oracle Advanced Security」を使えば,ユーザー認証を標準のIDとパスワードを使った認証からワンタイム・パスワードやクライアント証明書などを使ったものに置き換えられる。

人事情報との連携で削除漏れをなくす

 もちろん,RDBMSなどのユーザー・アカウント管理をきちんと実施することも忘れてはならない。

 「システムを作るときは厳重に管理しても,運用しているうちにずさんになることが見受けられる。注意が必要だ」(マイクロソフト アプリケーションプラットフォームグループ エグゼクティブプロダクトマネージャ 深瀬正人氏)。退社したり異動したりしたユーザーの権限を適切に削除したり変更したりしないと,残ったアカウントがセキュリティ・ホールになる。なりすましを許す可能性がある。

 この点は人事システムと連携した認証システムなどを考えたい。神戸製鋼所の中川浩之氏(技術総括部 システムグループ 課長)は,鉄鋼部門のデータベースを分析するシステムで,人事システムと連携した認証システムを構築した。同システムでは,人事システムから毎月2回,人事情報を受け取る。人事異動で社員が他の部署へ異動した場合は,認証システムが自動的にその権限を削除する。一方で,異動してきた社員には,設定しているデフォルトの権限を与える仕組みである。

(吉田 晃)