MySQLで機密データを保護するための6ステップ
翻訳校正:原井彰弘
MySQLでは、いくつか簡単な作業を行うだけで、機密データへの不正アクセスのリスクを大幅に減少し、システムを保護することが可能になる。
テクノロジーを基盤とした組織において最も重要な資産は、データベースに含まれている顧客や製品の情報であるのが普通だ。そのため、そのような組織でのデータベース管理におけるクリティカルな部分では、外部からの攻撃やハードウェア、ソフトウェアの障害からデータベースを保護することが必要となる。
多くの場合、ハードウェアやソフトウェアの障害は、データのバックアップを正しく管理することで対処できる。多くのデータベースにはその作業すべてを自動で行うツールが用意されているので、この種の作業は比較的簡単に行うことができ、エラーも発生しにくい。しかしながら、そう単純に行かないのはパズルの2つ目、つまり、外部からハッカーがシステムに侵入するのを防ぎ、システム内部に含まれている情報が盗まれたり破壊されたりしないようにすることだ。残念ながら、この問題を自動的に解決するような方法はないのが普通である。システム管理者であるあなたが、バリケードや障害物を手作業で設けることによってハッカーを立ち往生させ、会社のデータを保護しなければならないのである。
データベースの安全性を確保しない言い訳として、安全性を確保することは「難しく」、しかも「複雑である」ということがよく挙げられる。これは確かに真実であるが、MySQLを使っているのなら、簡単なことをいくつか行うだけで直面するリスクを大きく減少させることが可能である。このチュートリアルではそのような作業6つを一覧にしたが、MySQLのマニュアルやディスカッションフォーラムを読めば、さらに多くの情報を入手できるだろう。
ステップ1:供与テーブルからワイルドカードを取り除く
MySQLのアクセス制御システムは、一連のいわゆる「供与テーブル」(grant tables)を利用して動作している。この供与テーブルでは、各ユーザごとにデータベース、テーブル、またはカラムのレベルでアクセスレベルを設定できる。また、ワイルドカードを用いれば、管理者が特定のユーザや一連のテーブルに対してすべてを許可することも可能である。しかし、そのような設定を行うことは本質的に危険な行為だ。なぜなら、問題のあるアカウント一つを用いて、ハッカーがシステムの他の部分にアクセスする可能性があるからだ。従って、ユーザには正確に権限を割り当て、各々がタスクを実行する上で必要なアクセス権限のみを持たせるように注意しなければならない。特に、SUPER権限を個々のユーザに割り当てる際には、細心の注意を払うべきである。SUPER権限を与えられたユーザは、基本的なサーバ設定の変更を行えるだけでなく、すべてのデータベースへのアクセス権限も持っているのである。
ヒント:個々のユーザアカウントに対してSHOW PRIVILEGESコマンドで供与テーブルを調査し、ワイルドカードによる許可が適切であるかどうかを考えてみよう。
ステップ2:安全なパスワードの使用を求める
ユーザアカウントを保護しているのはパスワードのみである。従って、MySQLをインストールしたときにまず最初にしなければならないことは、MySQLのrootアカウントにパスワードを設定することだ(デフォルトでは空になっている)。このぽっかりと空いた穴をふさいだら、次のステップは、すべてのユーザアカウントには必ずパスワードを設定して、簡単に推測可能な誕生日やユーザ名、辞書に載っている語などをパスワードとして使用しないよう、ユーザに求めることだ。
ヒント:MySQLの--secure-authオプションを用いて、古くて安全性の低い形式のパスワードを利用できないようにしよう。
- 7人の推薦記事
- 2人がクリップ
-
ソーシャルブックマーク(-)
- トラックバック(0)
- 今日のトップ記事
- 2日前
- 4日前
- 6日前
- 7日前
- ホワイトペーパー
- 読者投票
- 話題のタグ
MS、Vistaとの互換性をチェックできる「Compatibility Center」リリースへ
「似非」SOAを見破る10の方法
Firefox 3のアドオンやテーマ管理を容易にする
openSUSE 11.0を試してみた
フォトレポート:世界各国の優秀な技術者がパリに集結--Imagine Cup 2008世界大会
バッチ処理でデータベース活用:4つの課題と5つの解決ポイント
Rubyでどう書く?:RubyでWord文書を作成する
「未来の、その先」をどう提言していくか
ZDNet Japan Green IT
DELL連載第4回〜「Microsoft System Center」
Techno Exchange
今知るべき仮想化情報