前回、データベースの暗号化は可用性を考慮すると複数台の暗号化で、場合によっては暗号鍵の共通化などいくつか考慮すべきことがあるということでした。データベースは暗号化するにあたり、もう一つ暗号化を検討しなければいけない箇所があります。
それは、バイナリログ(トランザクションログ)です。
ログというと通常は単なるアプリケーションの動作の記録ファイルですが、データベースの場合はもっと重要な意味があります。それはデータの更新履歴がすべてその中に存在するということです。MySQLの場合、それはすなわちバイナリログと呼ばれるものであり、他のデータベースでも同様のファイルが存在します。このファイルを順番に辿ればデータを復元できてしまいます。つまり、データそのものがログファイルの中に含まれているので、これもセキュリティ上は重要な保護対象となります。
MySQLではレプリケーション時にはこのバイナリログを読むことでデータベースの複製を実現しますので、このバイナリログが安易に読み込まれてしまうことは情報セキュリティ上は避けなくてはいけません。しかし、以前にお伝えしたように単純な透過型暗号化では、バイナリログへの厳しいアクセス制限をかけることができませんし、もし、不正にコピーされたとしても記録が残りません。
弊社のLinux暗号化ソリューション「Server-GENERAL」はデータベースのバイナリログの保存フォルダを厳格なアクセス制限をかけたセキュリティポリシーで運用することが可能です。もし、管理者(root)がそのフォルダにアクセスしようとしても、閲覧できませんし、不正なアクセスとしてログに記録されます。