Yakstは、海外の役立つブログ記事などを人力で翻訳して公開するプロジェクトです。
10年以上前投稿 修正あり

MySQLのデータベース監査

監査の背景となる法規、MySQL監査プラグインAPIの提供機能概要を紹介した上で、MySQLの監査の4つの手段の特徴を説明します。

原文
Database auditing alternatives for MySQL (English)
原文ライセンス
CC BY-NC-SA
翻訳依頼者
B5aa4f809000b9147289650532e83932
翻訳者
B5aa4f809000b9147289650532e83932 taka-h
原著者への翻訳報告
未報告


データベースの監査は、データベースユーザーのある行動を監視するものである。 権限が不適切に設定されている場合に、データベースを保護するものではないが、管理者がミスを検知するのに役立つ。

監査はセキュリティーの為に必要である。データのアクセスを追跡し、疑わしい活動に対して警告を受けることが出来る。 監査はデータの完全性の為に必要である。データの変更が正しいことを確かめる唯一の方法である。

データベースの監査を必要とする法規には下記のようなものがある。

  • 2002年に定められたSOX法。アメリカ連邦の法律で、金融のデータがどのように扱われ保護されなければいけないかを定める。
  • PCI-DSSとして知られるPCIデータセキュリティー標準。カード所有者のデータを守る為に作られた国際標準。
  • 医療および個人の情報を保持する為にアメリカの議会によって定められた医療保険の携行性と責任に関する法律(HIPAA)

MySQLは5.5.3から監査プラグインを開発可能な監査プラグインAPIを提供している。APIは次のイベントを通知する機能を提供する。

  • 一般ログに書かれたメッセージ(LOG)
  • エラーログに書かれたメッセージ(ERROR)
  • ユーザーに送られたクエリの結果(RESULT)
  • ログイン(失敗も含む)と切断(CONNECT)

MySQLの全ての監査プラグインは動作の結果として監査ログを提供している。レコードの形式や、フィルタリング能力、ログレコードの詳細表示が異なる。

McAfee MySQL Audit Plugin

このプラグインは、MySQL 5.1, 5.5, 5.6で利用できる。Percona ServerとMariaDBは公式にはサポートしていない。 監査APIを利用しておらず、フィルタリングの機能がよく、かつ詳細表示に優れている。 これはバイナリパッチによるもので、あるメモリオフセットのデータを実行中に抽出することで実現されている。

概要:

  • json形式
  • ファイルおよびUNIXソケットへのログ(syslog-ngでのロギングも可)
  • イベントのユーザー、データベース、テーブル、コマンド(insert, update, delete)によるフィルタ機能

Oracle Enterprise Audit Log Plugin

OracleはMySQL Enterpriseの一部として、監査プラグインを提供している。 これはMySQL監査APIを利用しており、RESULTとCONNECTイベントをロギングする。 このプラグインは2種のXMLベースのフォーマットをサポートする。

概要:

  • XML形式
  • ファイルへのログ
  • イベント種別によるフィルタ機能

MariaDB Audit Plugin

MariaDBの開発者はMySQL監査APIを拡張し、既存のイベントにフィールドを加え、さらに新たにTABLEイベントを追加した。 TABLEイベントはテーブルの操作(read, write, create, drop, alter)を通知する。 このプラグインはMySQLやPercona Serverでも利用できるが、MariaDBの追加機能は利用できない。

概要:

  • CSV形式
  • ファイルまたはsyslogへのログ
  • ユーザーおよびイベント種別によるフィルタ

Percona Server Audit Log feature

Perconaは、5.5.35-37.0、5.6.17-65.0からPercona Serverの一部として監査ログ機能を開発してきた。 Percona Serverのユーザーに、Oracle社のEnterprise Audit Pluginが提供するものと互換または同等の機能を提供することを目的としている。 Percona Serverの利用を"監査"するために非同期で全てのクエリとコネクションを記録し、一般クエリログのオーバーヘッドなしに実現する。 監査ログの機能はセンシティブなデータ(クレジットカード番号や、医療データ)扱ったり、セキュリティーコンプライアンス(HIPAAまたはSOX)を必要とするWebアプリケーションには非常に有益である。マルチテナントアプリケーションまたはMySQLサービスの管理者は、 Percona Serverの監査ログ機能を利用するとデータアクセスをセキュリティーおよび性能面から簡易に監査できる。 監査ログ機能は問題の調査およびトラブルシューティング、性能の監査にも役立つ。 また、監査ログ機能はサーバーを再起動することなく動的に有効化できる。

次の記事
愚かで、しかも危険なSET GLOBAL sql_log_bin
前の記事
innodb_large_prefixを使ってERROR 1071を回避する

Feed small 記事フィード

新着記事Twitterアカウント