データベースやアプリケーションの認証に必要なユーザー・アカウント(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回,人事情報を受け取る。人事異動で社員が他の部署へ異動した場合は,認証システムが自動的にその権限を削除する。一方で,異動してきた社員には,設定しているデフォルトの権限を与える仕組みである。