データベースのセキュリティについて解説する本連載。前回の記事で、多層防御の重要性についてご理解いただけたことと思います。今回は、データベースにおけるアクセス制御について説明します。

私たち日本オラクルのセキュリティコンサルタントがセキュリティ案件に従事する際、「セキュリティを施行または強化する理由」と「どこまで実施してゴールとするか」を重要視し、お客さまと検討して合意形成を行います。

なぜなら、データベースの性能チューニング業務などと同様に、セキュリティ対策の施行におけるゴールを確定しないと、いつまでたっても実行に移すことができないからです。ゴール感のないセキュリティ対策の施行は突き詰めると難解なルールになりがちで、仮にルール作りが完璧でもそのルールに対して統制(※1)が効かず、最終的に形骸化されたセキュリティに陥る可能性があります。

※1統制=ガバナンスは小難しい言葉だと思います。筆者は「決められたことを末端まできちんと行き渡る仕組みが整っている状態」 = 「統制が効いている」と理解しています。
例:セキュリティルールに対して統制が効いているとは「決められたルールが関係者あるは全社まできちんと行き渡っている状態」と考えます。

「誰でも守りやすいシンプルなセキュリティを確立し、ガバナンスを効かせること」を目標として掲げ、あとはそのセキュリティ手法(統制案)を検討し、製品実装方式に落とし込めばよいのです。

アクセス制御において、例えばセキュリティポリシーや業界団体ルールに準拠することが目的ではない場合。お客さまにとって最適でありながら、かつ、営利目的である企業のビジネスを阻害しないように、セキュリティ対策を施行することが重要です。

では、上記をデータベースのアクセス制御で考えてみましょう。長年オOracle Databaseを利用されている方にはなじみ深い「SYSDBA」や「DBAロール」は最も強大な権限であり、それらを保持しているのはデータベース管理者です。

彼らは非常に重要な存在でありますが、幸か不幸か、不必要と思われる権限(例えば、select any table権限など)も多く保持しています。

「管理者なんだから、多くの権限を保持していてもいいんじゃない?」と思われるかもしれません。ここで、前回に紹介した筆者が父親の部屋に入ってお金を盗んだ例で考えてみましょう。父親の部屋に入ることを「特殊な権限を家族が保持している」と考えるならば、家族がいつでもお金を盗むことが可能な状態を許しています。

仮にお金を盗まれたことが、実は父親の勘違いだったとしても、疑われるのは内部の人ですよね。こうした事態を避けるには、父親の部屋に入る権限を与えないようにすればよいはずです。

同じように、「データベース管理者に必要以上の権限を付与しない」つまり「データベース管理者を業務データへアクセスさせない」仕組み = 最小権限を施行することが有効です。英語では"Least Privilege"とも言います。

対策(1)データベース管理者に業務データへアクセスさせない

上図に示した対策(1)を行うことでデータベース管理者による情報漏えいのリスクは軽減できるかもしれませんが、これではまだ不十分です。なぜなら、対策(1)を実施すると、データベース管理者は業務データに直接アクセスできなくなります。しかし、別ユーザーを作成して権限を付与すれば、そのユーザーを介して業務データにアクセスすることは可能になると考えられます。

そのため、最小権限と合わせて、「職務ごとに権限や役割を付与し、必要以上の権限を付与しない」仕組み=職務分掌化も行います。英語では"Separation of duties" と言います。

対策(2)データベース内の各ユーザーに対し必要以上の権限を付与しない

図では、「エンドユーザー(業務ユーザー)」と「データベース管理者」とは別に「セキュリティ管理者」を立て、三権分立化を図っています。

なお、この図では表現していませんが、不測の事態に備えて、業務データへのアクセスはエンドユーザーとは別に不測の事態に緊急対応するためのユーザーも接続可能としています。この緊急対応ユーザーには強力な権限を付与しているため、通常はロックしておき、使用する際はすべての行動を監査証跡として取得するという運用を義務付けています。

いかがでしょうか? 今回は、小難しいセキュリティ精神論についてお話しましたが、日本オラクルのセキュリティコンサルタントが考えていることをお伝えできたと思っています。次回は、アクセス制御と物理セキュリティを組み合わせた事例を説明します。

茶園 太志

日本オラクル株式会社 クラウド・テクノロジーコンサルティング統括本部


日本オラクルのコンサルティング部隊において、データベースセキュリティを担当している。日夜、「みんなが守ってくれるセキュリティってなんだろうか?」と問う。