本連載では、データベースセキュリティの「考え方」と「必要な対策」をおさらいし、Oracle Databaseを軸にした「具体的な実装方法」や「Tips」を紹介していきます。初回は、「データベースセキュリティの基本的な考え方」を解説します。
近年、サイバー攻撃や内部不正などで、企業の存続をも脅かす情報漏えい被害が至るところで発生しています。ひと昔前までは“直接外部ネットワークにつながっていないために安全”と考えられていたデータベースも攻撃を受け、データベースから情報が漏えいした事件の報告も増えています。
実は米調査会社Forrester Researchによると、情報を実際に格納しているデータベースに対するセキュリティ対策の実施状況は「20%程度にすぎない」という調査結果があります。ネットワーク層でのファイアウォールやウイルス・マルウェア対策製品の導入など、一般的か、それ以上の対策を実施しているはずの大手企業からの情報漏えい事件も数多く報告されています。情報漏えい対策の次の一手として、今まで着手していなかった「本当に重要なデータ」を「実際に格納している」データベースのセキュリティ対策は、“今こそ”真剣に考えなければならない時期だと筆者は提言します。
あらためて「データベースでのセキュリティ対策」とは何でしょう。何かまた新しい概念を導入しなくてはならないと構える方がいらっしゃるかもしれませんが、そんなことはありません。今回は基礎の基礎として、データベースを安全に運用する上で実施すべき「5つのポイント」を紹介します。
順に説明しましょう。
1つ目は「アカウントの管理」です。
「誰が」「何に」「どうする」を許可/拒否する、アクセス制御は当然既に施していると思います。しかし、職務が異なる複数の人が「1つのアカウントを利用している」ような、「誰が」の部分をきちんと管理できていない環境もいまだによく見かけます。このような管理体制では、結果として「業務上アクセスする必要のない人がデータにアクセスできる」ようになってしまいます。同様に、監査をするにしても「誰」が実際にその操作を行ったか、個人を特定できません。
基本的なことですが、システム利用時には個人用のアカウントを利用するといったように、「個人を識別できる」ようにしておく体制が必須です。
2つ目は「守るべきもの」の管理です。「守るべき対象」をきちんと定め、それが「どこにあるのか」を的確に把握します。
もし、守るべき対象が点在していると、散らばった全ての場所で的確なセキュリティ対策を実施する必要が生じ、対策が困難になります。せっかく安全なデータベースを作成して、そこで守るべき機密データを管理しているとしても、例えば「外部連携のためにCSVファイルなどに書き出す」などを行ってしまうと、今度は「そのCSVファイルも保護対象」にしなければなりません。特に、ファイルのように簡単にコピーできるものの管理は難しく、それだけ漏えいのリスクがあります。守るべき対象は、特定の場所のみに存在するように集中管理することで、効率的なセキュリティ対策を実施できます。
もう1つ、守るべき対象には「どこから」「どのよう」にアクセスされるのか、そのアクセス経路を把握することも重要です。
単純な例ですが、想定したアクセス経路以外からのアクセスは「不正アクセスの可能性がある」などを推定できます。具体的に、ファイアウォールや製品機能で想定外経路からのアクセスを遮断したり、想定外経路からのアクセスを監視したりすることで不正アクセスの兆候に気付き、被害を未然に防ぐ対策を取れます。
アカウント管理と守るべき対象を把握することで、アクセス制御を的確に設定できるようになります。アクセス制御のポイントは、業務上必要となる「最小限の権限のみ」を付与することです。情報セキュリティの分野では「最小権限の原則」と呼ばれますが、これを徹底することです。
例えば「データベース運用担当者」(インフラ担当者、場合によっては外部委託しているかもしれません)は、業務アプリケーション内の顧客データを見る必要はありません。原則として、データベースの運用管理者であっても、データベース内の全てのデータにアクセスできる「データベース管理者権限のアカウント」は利用しません。各利用者のアカウントに業務上必要な権限のみを付与することで、内部不正や外部攻撃によるアカウント乗っ取り時の被害を防いだり、最小限にしたりできます。
Copyright © ITmedia, Inc. All Rights Reserved.