※ 本記事は2017年8月3日に公開されたものです。
データベースを安全に構築・管理・運用するうえで気を付けるべきポイントはこのブログの第1回「はじめに ~ データベースセキュリティの基本的な考え方」で紹介しました。ただ、このポイントは概念的すぎます。具体的な実装手段はこのブログで順次紹介していっていますが、残念ながらまだ「ID管理・認証」と「アクセス制御」のことにしか触れられていません。「暗号化」や「監査・監視」など考えなければならないことはたくさんあります。このブログでも順次詳しく紹介していきますが、とりあえず直近で作成するシステムのために全体感を知りたい方も多いでしょう。
ということで、データベースを安全に構築・管理・運用するうえで気を付けるべきポイントを本連載の1回目より具体的に記載されているものを紹介します。
1. データベースセキュリティコンソーシアムのデータベースセキュリティガイドライン
データベースセキュリティの指針、考え方が日本語でまとめられている数少ないガイドラインのひとつです。第2.0版が2009年に出ています。少し古く感じるかも知れませんが、データベースセキュリティの考え方や実施しなくてはならないセキュリティ対策というのはずっと変わっていません。ぜひご一読ください。
また、データベースセキュリティコンソーシアムからは、統合ログ管理サービスガイドライン、データベース暗号化ガイドライン、DB内部不正対策ガイドラインなども様々なガイドラインや、管理者の10人に1人は「情報を売却するかも知れない」という衝撃の結果が載っている「DBA 1,000人に聞きました」アンケート調査報告書なども公開されています。
2. 米国国防情報システム局(DISA:Defense Information Systems Agency)のセキュリティ技術実装ガイド(STIG:Security Technical Implementation Guide)
英語になりますが、より具体的に記載されているのがDISAのSTIGです。
Oracle Databaseに限らず各データベースの各バージョンごと何をすべきかが公開されています。
「インスタンス名にオラクルのバージョン番号を入れないこと(Oracle instance names must not contain Oracle version numbers.)」というような運用ルールから、「_TRACE_FILES_PUBLICパラメータが設定されている場合にはFALSEにすること(The Oracle _TRACE_FILES_PUBLIC parameter if present must be set to FALSE.)」というような細かい具体的な設定まで多種多様な項目が掲載されています。STIGの良いところは、設定が必要な理由(Vulnerability Discussion)、確認方法(Check Content)、改善方法(Fix Text)がセットで記載されていることです。このブログの第2回で紹介したDBSATの詳細なマニュアル版といっても過言ではありません。
細かすぎるところはありますが、書かれている内容は具体的で非常に参考になります。
Oracle Database 12cR2からは、このSTIGに合致するパスワード検証ファンクションとユーザープロファイルが事前定義され、いくつかの初期化パラメータのデフォルト値がSTIG対応の値に変更されています。「セキュリティガイド」マニュアルの「STIGコンプライアンス機能」を参考にしてください。
3. 「セキュリティガイド」マニュアルの「Appendix A Oracle Databaseの安全性の維持」
Oracle Databaseのマニュアルにも、データベースの安全性を維持するためのガイドラインを公開しています。
これらのガイドラインを参考にして、重要なデータを守るためにデータベースのセキュリティもシステム設計時に考慮してください。
