| 個人情報保護に関する法律が施行されて以来、社内の個人情報の管理には人一倍気を遣わなくてはならなくなった情報システム部、あるいは経営陣の方々も多いと思います。
個人情報は紙やファイルの場合は簡単に社外に持ち出せるということで、すべてを廃棄し、データベースに一本化する企業も増えていることでしょう。
データベースに一本化すれば、権限管理さえしていれば、漏えいの危険は確実に減ります。それは間違いなく、企業を守る重要なシステムとなりえます。 弊社でも個人情報はデータベースで管理することを強くお勧めしています。
しかし、実はデータベースの権限管理は複雑な部分があり、詳細な知識を持ち合わせていない場合、実は簡単にデータを持ち出されてしまうことがあるのです。
たとえば、最も初歩的な失敗で言えば、データベースに作成されるデフォルトの管理者のパスワードを変更しなかった場合があります。世間一般に知られているパスワードですので、外部からの侵入も可能になります。
さすがにそこまでの迂闊な失敗は少ないですが、仮に管理者パスワードを変えたとしても、データベースに作成した表などのオブジェクトの参照権限を、アプリケーションから接続するユーザに付与し、アプリケーションのユーザのIDとパスワードを設定ファイルに書き込んでおくといったことは行われる可能性があります。
その場合、設定ファイルがテキストファイルの場合が多く、そのファイルを見てしまえば、データベース内のデータはすべて閲覧できてしまうことになります。
最近のOracle10gなどはパスワードや権限管理に関してはかなり高機能なったとはいえ、使用する管理者の知識不足がとんでもない結果を生むことがあります。
そこで行わなくてはならないのが、データベースへのアクセスユーザの設計、そしてデータベースの権限の設計、そして監査の実行です。
まずアクセスユーザに関しては、アプリケーションユーザと管理者ユーザは細かく分ける必要はあります。
アプリケーションユーザに関しては、データを参照するだけであれば、オブジェクトを持たせず、シノムニやビューを利用してオブジェクト実体にはアクセスさせることをしない。かつ複数のユーザを作成し、ひとつのユーザが複数のオブジェクトを参照できないようにします。そうすることで万が一ユーザのIDとパスワードが漏えいしても、すべてのデータを取得されることを防ぎ、かつ暗号化も取り入れておくことで、取得されたデータが個人情報として意味のないデータにすることができます。
挿入や更新、削除がある場合は、アプリケーションユーザを複数作成し、それぞれに参照権限を持たせないことも行います。
権限管理ではオブジェクト単位はもちろん、レコード単位での権限管理を行うようにします。 また発行するSQLはプロシージャに任せ、SQL文をアプリケーションのソースに書かないというのもひとつの漏えい対策の方法です。
もちろん監査も重要な方法であり、想定外のSQL文によりデータ取得の記録をすべて残すことを行います。
など、データベースから個人情報漏えいを防ぐためには、こうした初歩的な対策以外にも様々な方法があります。詳しくお知りになりたい方は、お問い合わせフォームからご質問ください。担当より詳細なご説明をさせていただきます。 |