Oracle Database 12c セキュリティ新機能でデータベースをより強固に守る 日本オラクル株式会社 Database & Exadata プロダクトマネジメント本部データベースエンジニアリング部 CISSP, プリンシパルエンジニア西村克也 Copyright 2016, Oracle and/or its affiliates. All rights reserved.
以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらないで下さい オラクル製品に関して記載されている機能の開発 リリースおよび時期については 弊社の裁量により決定されます Oracle と Java は Oracle Corporation 及びその子会社 関連会社の米国及びその他の国における登録商標です 文中の社名 商品名等は各社の商標または登録商標である場合があります 2
本日の内容 1 2 3 Transparent Data Encryption Database Vault Database Security 基本機能 3
本日の内容 1 2 3 Transparent Data Encryption Database Vault Database Security 基本機能 4
従来の表領域暗号化の課題 既存の表領域を暗号化するためには 以下の 3 つの方法が可能 Data Pump による表のエクスポート インポート ALTER TABLE ~ MOVE TABLESPACE コマンドによる表の移動 表のオンライン再定義 (DBMS_REDEFINITION) による表の移動 暗号化表領域を再作成し データの再投入や表ごとの移動等の必要があるため 移行手順が煩雑 時間もかかるため動作中の DB に適用しずらいとの声も 例 )Data Pump による移行手順 非暗号化表領域 noenc_tbl PEOPLE 表 エクスポート 暗号化表領域 enc_tbl インポート 5
Encryption Conversion SQL コマンドだけで表領域を暗号化 復号を実現 既存の表領域を暗号化する時間を大幅に短縮 データにアクセス可能なまま表領域を暗号化 Online Encryption Conversion 表領域がオフライン時に暗号化 Offline Encryption Conversion Acme 10 1/2/16 Acme 3 1/3/16 Acme 5 1/5/16 Acme 12 1/7/16 Acme 4 1/8/16 Acme 2 1/9/16 SALES TABLESPACE HCM TABLESPACE 従来では暗号化できなかった SYSTEM, SYSAUX, UNDO, TEMP 表領域を暗号化させることが可能 Offline Encryption Conversion は 11.2.0.4 12.1.0.2 にバックポート DF11233U*1 $5Ha1qui%H1 HSKQ112A14 FASqw34 $1 DF@!1ahHH! DA45S& DD1 6
Online Encryption Conversion 12.2 のみ使用 使用可能な暗号アルゴリズムは AES(128,192,256bit), DES, ARIA, SEED, GOST 暗号化後に鍵の再作成やアルゴリズムの変更が可能 SYSTEM, SYSAUX, UNDO 表領域も暗号化可能 移行時は 一時的に対象の表領域と同等のディスク領域が必要 Online Encryption Conversion 時は REDO ログは生成される 暗号化完了後に表領域にデータファイルを追加した場合は 追加されたファイルは暗号化される 7
Online Encryption Conversion 暗号化 ALTER TABLESPACE 表領域名 ENCRYPTION USING 暗号アルゴリズム ENCRYPT FILE_NAME_CONVERT=( 旧データファイル名, 新データファイル名 ); 復号 ALTER TABLESPACE 表領域名 ENCRYPTION DECRYPT FILE_NAME_CONVERTFILE_NAME_CONVERT=( 旧データファイル名, 新データファイル名 ); 鍵再作成 or 暗号アルゴリズム変更 ALTER TABLESPACE 表領域名 ENCRYPTION USING 暗号アルゴリズム REKEY FILE_NAME_CONVERT=( 旧データファイル名, 新データファイル名 ); 8
Offline Encryption Conversion 12.2, 11.2.0.4, 12.1.0.2 で使用可能 暗号アルゴリズムは AES128 のみ (12.2 のみ ) 暗号アルゴリズムの変更 (12.2 のみ )SYSTEM, SYSAUX, UNDO 表領域も暗号化 移行のための特別なディスク領域は必要なし データファイル単位でのパラレル実行が可能 11.2.0.4, 12.1.0.2 は 以下のパッチ適用が必要 Enable Transparent Data Encryption (TDE) Using Fast Offline Conversion in 11.2.0.4 and 12.1.0.2( ドキュメント ID 2148746.1) 12.1 は 12.1.0.2.160719 Database Proactive Bundle Patch (Jul 2016) に含まれる 9
Offline Encryption Conversion 暗号化 ALTER TABLESPACE TEST ENCRYPTION OFFLINE ENCRYPT; ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/ora001/test01.dbf' ENCRYPT; 復号 ALTER TABLESPACE TEST ENCRYPTION OFFLINE DECRYPT; ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/ora001/test01.dbf' DECRYPT; データファイルごとにパラレルに実行させた場合は 以下のコマンドをそれぞれを異なるセッションで実行する ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/ora001/test01.dbf' ENCRYPT; ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/ora001/test02.dbf' ENCRYPT; 11.2, 12.1 は ALTER DATABASE DATAFILE のコマンドのみ 10
TDE + Oracle Key Vault Oracle Key Vaultは 暗号鍵をセキュアに保護するHSM (Hardware Security Module) TDEのマスタ暗号鍵をOKVに格納にし セキュアに守りながら 使用状況をモニタリング Sqlnet.oraのENCRYPTION_WALLET_LOCATIONにOKV 専用パラメータの追加 (12.2) Standby Oracle Database 12.2 Oracle Key Vault 11
本日の内容 1 2 3 Transparent Data Encryption Database Vault Database Security 基本機能 12
従来の Database Vault の課題 すでに稼働しているデータベースには適用しずらい 正しいアクセスを誤って止めてしまう可能性 ( フォールス ポジティブ ) 暫定的にポリシーを適用した Try & Errorのアプローチが取れない または開発機だけでは不十分 ポリシー設定後の動作チェックに手間がかかる ポリシー違反でアクセスが遮断されるたびにポリシーの ON/OFF アクセスの妥当性チェックが必要 設定したポリシーが及ぼす影響がもっと簡単に把握できる仕組み アプリケーションの単体テストやシステムテスト時に アプリケーション側に影響なくポリシーの妥当性の確認ができる仕組み 13
Simulation Mode Database Vault ポリシー ( レルムやコマンドルール ) をシュミレーションとして動作 ポリシー違反時 アクセスをブロックするのではなく シュミレーション ログとして記録する シュミレーション ログは DBA_DV_SIMULATION_LOG ビューで参照 単体 ~システムテストのフェーズでポリシーの妥当性評価に最適 Realm and Command Rules Simulation Mode Simulation Mode HR APP DBA Create Index HR SCHEMA SIMULATION LOG 14
ポリシーの作成( 修シュミレーション開始15 Simulation Mode を使った段階的なポリシー構築 バッチ処理アプリケーション SQLs シログの繰り返し確認正) ュミレーション Pass Simulation Mode Block ポリシーの確定System Go live 運用アクセス ポリシー精度 70% 80% 95% 100%
Simulation Mode の設定 ポリシー レルム コマンドルールの enabled の項目に DBMS_MACUTL.G_SIMULATION を指定する DBA_DV_SIMULATION_LOG が参照するシュミレーションログの実表は DVSYS.SIMULATION_LOG$ レルム BEGIN DBMS_MACADM.CREATE_REALM( realm_name => 'EMPLOYEES_realm, enabled => DBMS_MACUTL.G_SIMULATION, audit_options => DBMS_MACUTL.G_REALM_AUDIT_FAIL, realm_type => 1); END; / コマンドルール BEGIN DBMS_MACADM.CREATE_COMMAND_RULE( command => 'SELECT', rule_set_name => 'Disabled', object_owner => 'HR', object_name => 'JOBS', enabled => DBMS_MACUTL.G_SIMULATION); END; / 16
Database Vault ポリシーによる一括制御 レルムやコマンドルールそれぞれで有効 無効化ではなく 12.2からの新しい定義であるDatabase Vaultのポリシーに必要なものをレルム等を含め ポリシー単位での有効 無効 シュミレーションの制御が可能 アプリケーションやセキュリティの単位でまとめることで ポリシーの運用 可視性の向上 BEGIN DVSYS.DBMS_MACADM.CREATE_POLICY( policy_name => HR Applicaton', description => All Object for HR APP', policy_state => DBMS_MACUTL.G_ENABLE); END; レルム Alter table Truncate Database Vault ポリシー コマンドルール Enable Disable Simulation 17
本日の内容 1 2 3 Transparent Data Encryption Database Vault Database Security 基本機能 18
INACTIVE ACCOUNT TIME データベース ユーザーが一定期間ログオンされない状態が続いた場合 自動的にロックする PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT ---------------- --------------------------------------------- -------------------------- ---------------- DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10 DEFAULT INACTIVE_ACCOUNT_TIME PASSWORD UNLIMITED DEFAULT PASSWORD_GRACE_TIME PASSWORD 7 DEFAULT PASSWORD_LIFE_TIME PASSWORD 180 DEFAULT PASSWORD_LOCK_TIME PASSWORD 1 DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL -> 30 日に変更 ALTER PROFILE DEFAULT LIMIT INACTIVE_ACCOUNT_TIME 30; PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT ---------------- --------------------------------------------- -------------------------- ---------------- DEFAULT INACTIVE_ACCOUNT_TIME PASSWORD 30 19
管理者アカウントの認証強化 管理者権限 (SYSDBA, SYSOPER, SYSASM, SYSBACKUP, SYSDB, SYSKM) を持つ管理者アカウントに以下のパスワード プロファイルの制限を強制できる FAILED_LOGIN_COUNT ( ログイン失敗許容回数 ) PASSWORD_LOCK_TIME ( ログイン失敗ロック期間 ) PASSWORD_GRACE_TIME ( パスワード期限切れ猶予期間 ) PASSWORD_LIFE_TIME ( パスワード有効期限 ) 管理者アカウントでも LOCK EXPIRED される パスワードファイルの 1 マイグレーション手順 パスワードファイルのバージョンの確認 orapwd describe file=orapwora001 パスワード ファイルの 12.2 へのマイグレーション例 mv orapwora001 orapwora001_bk orapwd file=orapwora001 input_file=orapwora001_bk format=12.2 パスワードファイルの場所 $ORACLE_HOME/dbs 20
ロール ベースの監査設定 AUDIT POLICY ポリシー名 BY USERS WITH GRANTED ROLES ロール名 1, ロール名 2 12.1 では AUDIT POLICY ポリシー名 [BY] [EXCEPT] ユーザー名 のように全 個別のユーザーに対して監査設定を行う 12.2 からは ロール自身に対して監査の設定を行うことが可能 そのロールを付与されているユーザーは 自動的に監査される 例えば DBA ロール自体に監査設定をした場合 DBA を付与されているユーザーが DBA ロールに含まれる権限を使用したデータベース操作をした場合 UNIFIED AUDIT に記録される 監査対象の主体がロールため 多くの DB ユーザー個別に監査設定を考える必要はなくなる 新規ユーザーに対しても 監査設定を忘れずに適用できる 21
Database Security Assessment Tool (DBSAT) Oracle が提供するセキュリティ診断ツール データベースをスキャンし DB のセキュリティを網羅的にチェックするツール 基本構成 ユーザーアカウント 権限管理 暗号化 監査 Python で作成された完全自動化スクリプト HTML, XLSX, TEXT の形式でそれぞれレポート出力 出力レポートは英語 日本オラクルから日本語化パッチ提供 ダウンロード先 Doc ID 2138254.1 Oracle Database Security Assessment Tool (DBSAT) ドキュメント Oracle Database Security Assessment Tool User Guide http://docs.oracle.com/cd/e76178_01/index.htm 10.2, 11.2, 12c HTML XLSX TEXT 22
DBSAT レポート (HTML) 23
Oracle Database 12c 対応研修コースのご案内 基礎から上級スキルまで Oracle Database 12c の製品機能を学習できる多彩な研修コースでスキルアップを Platinum RAC 管理 (4 日間 ) ASM 管理 (2 日間 ) Clusterware 管理 (4 日間 ) パフォーマンス チューニング (5 日間 ) SQL チューニングワークショップ (3 日間 ) セキュリティ (5 日間 ) Database Vault (2 日間 ) Gold Silver バックアップ リカバリ (5 日間 ) インストール & アップグレード (2 日間 ) マルチテナント アーキテクチャ (2 日間 ) 管理ネクスト ステップ (3 日間 ) 管理クイック スタート (2 日間 ) 管理ワークショップ (5 日間 ) 新機能 (5 日間 ) SQL 基礎 II (2 日間 ) データベース設計 (3 日間 ) PL/SQL プログラム開発 (3 日間 ) PL/SQL 基礎 (2 日間 ) Advanced Analytics Option 対応コース Oracle R Enterprise エッセンシャルズ (2 日間 ) Oracle Database 11g: データ マイニング手法 (2 日間 ) Oracle ではじめる統計入門 (1 日間 ) Bronze SQL 基礎 I (3 日間 ) Oracle Database 12cR2 対応研修は順次提供予定です 詳しくはオラクルユニバーシティまでお問い合わせください 24
Oracle Digital は オラクル製品の導入をご検討いただく際の総合窓口 電話とインターネットによるダイレクトなコニュニケーションで どんなお問い合わせにもすばやく対応します もちろん 無償 どんなことでも ご相談ください 25
26
27