第2回 データベースの認証を総点検


星野 真理
株式会社システム・テクノロジー・アイ
2005/2/17



 クイズ:ここが危険だ! 認証編

 では、ここで問題です。以下に示すシステムにおいて、「危険だ!」とサイレンを鳴らすべきところを5つ指摘してください。


背景

 ABC社は、いままでFAXや電話によって注文を受け付け、商品を販売しておりました。同社では最近、販売網の拡大のためにオンラインショッピングサイトを構築しWebを使った受注システムをカットオーバーしました。しかし、社内のデータの流れは特に変化していないため、ユーザーからの問い合わせや苦情に対応するための社内システムは既存のクライアント/サーバシステムを利用しています。

一般社員Aさんの朝

 社員Aさんは、会社から支給された自分用のPCにログインします。ユーザー名は個人の名前、パスワードは「ABCDEFG」です。しかし、パスワードの期限切れのためログインができないことに気付きました。そこで社員Aさんは、取りあえずドメインユーザーではないローカルのPCユーザーに接続し、社内システムを使用して作業を始めました。

 ABC社の社内システムでは、アプリケーションのショートカットをダブルクリックするとデータベースへの認証画面が表示され、部署ごとに決まっているユーザー名とパスワードを入力すると受注データ確認システムの利用が可能になります。

データベース管理者Bさんの夜

 データベース管理者Bさんは、今週はバッチ監視の当番です。そのため毎晩1時にバッチ処理の確認をする必要があります。会社にいなくても監視が行えるように、グローバルIPを使用してTeraTermを使って社内LANへsshで接続します。接続時のユーザー名は「ABC_乱数」、パスワードは「pass_乱数」になっています。このユーザー名とパスワードは、社内のデータベース管理者(DBA)の3人にしか知らされていません。

 社内LANに接続した後は、データベース側のシステム管理者としてクライアントツールを起動します。このデータベース側のシステム管理者は、データベース作成時に常に作成される「SYSTEM」という管理ユーザーです。この管理ユーザーのパスワードは乱数になっており社内のDBAの3人にしか知らされていません。


 さて、あらためて書くと何か恥ずかしいものもありますが、答えを確認していきましょう。

問題点1:

社員Aさんの会社のPCへのログインに対するパスワードが「ABCDEFG」では簡単すぎます。ユーザー名と個人名とが何らかの関連を持ったシステムであれば、パスワードはできるだけ複雑なものにしてください。

問題点2:

社員Aさんは、会社のドメインに入れなかったのに社内システムが使えてしまいました。こんなことができるなら、クライアントアプリケーションを入手すれば社内アプリケーションが使えるようになります。アプリケーション内でクライアントOSへのログインユーザーを確認し、正しくない場合はログオフさせてください。

問題点3:

社員Aさんは、部署ごとのDBユーザーで接続しています。これは大きな問題です。クライアント/サーバでのユーザー認証においてグループでのユーザー登録はご法度です。

Webアプリケーションを使用したシステムの場合、通常DBユーザー名はアプリケーションサーバの奥底に隠れてしまってユーザーの目に付くことはありません。また、実際のユーザーごとにDBユーザーを作ることは、その数から考えると現実的ではありません。

一方、クライアント/サーバシステムで使用されるユーザーは、アプリケーション起動時にユーザー名とパスワードの入力が必要になります。このユーザー名を部署ごとに同じにしてしまえば部署内でユーザー名とパスワードを共有できますが、これこそが情報漏えいの引き金になるのです。さらに悪いことには、この共有ユーザー名とパスワードが漏えいした場合、原因となった人間の特定ができません。

問題点4:

データベース管理者Bさんは、社外からの作業にグローバルIPを使用しTeraTerm を使ったssh接続を実行しています。この仕組みでは、かつて管理者をしていた人間(異動や退職などさまざまな要因があります)でも、ユーザー名とパスワードを知っていれば社内LANに接続可能です。これは怖いです。

問題点5:

データベース管理者として、インストール時に作成されるデータベース管理ユーザーを日常の管理作業で使用することは、セキュリティの観点から考えれば適切ではありません。一般的にインストール時に作成されるデータベース管理ユーザーは非常に多くの権限を持ちます。しかし、データベース管理作業にこれらのすべての権限が必要というわけではありません。各作業者に必要な権限だけを付与したデータベース管理ユーザーを作成すべきです。

会社のシステムに外部から接続する場合は、SecurIDなどハードウェアベースの動的なパスワードを必要とするシステムが最適です。しかし、SecurIDを導入するには予算から準備していく必要があり、棚上げにされる可能性も高いでしょう。

2/3


Index
データベースの認証を総点検
  Page1
データセキュリティはデータの重要性確認から
認証の重要性
  Page2
クイズ:ここが危険だ! 認証編
  Page3
認証を見直してセキュリティ強度を向上しよう


関連記事
データベースセキュリティの基礎のキソ
Database Expertフォーラム

Security&Trust記事一覧


Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間