Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Oracle Database Security 概要

Oracle Database Security 概要

オンプレミス、クラウドに共通するOracle Database Security機能の解説です

oracle4engineer

February 16, 2024
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Oracle Maximum Security Architecture データベースを最大限保護するOracle Database Security 2 Oracle Database

    暗 号 化 アクセス制御 監 査 ユーザーやセッション情報に基づいて 表のアクセスを列・行レベルで制限 DB管理者の無制限のアクセスを 強制的に禁止、厳格な職務分掌を実現 Database Vault 認証強化 外部認証基盤による認証強化 トークン・ベース認証 DF11233 U*1 $5Ha1qui %H1 HSKQ112 A14 FASqw34 £$1 アプリケーションへの影響がない 透過的な暗号化 Transparent Data Encryption 機密データをマスキングし セキュアなテストデータを作成 Data Masking and Subsetting データベースのアクセスログを 漏れなく詳細に記録 Unified Audit アクセスログの分析を自動化し 不正なアクセスの検知・アラート Audit Vault and Database Firewall Centrally Managed Users Virtual Private Database Data Redaction Label Security SQL Firewall OCI Logging Analytics OCI Data Safe クラウド・サービス Copyright © 2024, Oracle and/or its affiliates 2
  2. Oracle Databaseのセキュリティ機能を利用できるEditionと必要なOption Oracle Database機能 利用可能Edition, Option 暗号化 Transparent Data Encryption

    Enterprise Edition + Advanced Security ネットワーク暗号化 All Edition Data Masking and Subsetting EE + Data Masking Pack and Subsetting アクセス制御 Virtual Private Database Enterprise Edition Label Security EE + Label Security Data Redaction EE + Advanced Security Database Vault EE + Database Vault SQL Firewall EE(23c~) + Database VaultまたはAVDF 監査 Unified Audit All Edition Audit Vault and Database Firewall All Edition + AVDF 認証強化 Centrally Managed Users Enterprise Edition トークン・ベース認証(Azure AD, OCI IAM) Enterprise Edition クラウド・サービス Data Safe All Edition Logging Analytics All Edition リスク・アセスメント Database Security Assessment All Edition Copyright © 2024, Oracle and/or its affiliates 3
  3. サービスごとに利用可能なオプション機能 Database Cloud Serviceでのセキュリティ機能 DB-SE Exadata DB-HP Autonomous Database DB-EE

    DB EP Advanced Security Label Security Database Vault OLAP 一部機能 制限あり Bare Metal VM Infiniband Offload SQL to Storage Smart Flash Cache/log Storage Index IORM/Network RM In-Memory Fault Tolerance ExaFusion Columnar Flash Cache Real Application Clusters Active Data Guard Database In-Memory Advanced Analytics Spatial & Graph Database Lifecycle Management Pack Cloud Management Pack for Oracle Database Bare Metal VM Bare Metal VM Bare Metal VM Multitenant Partitioning Advanced Compression Oracle Database Enterprise Edition, Diagnostics and Tuning Packs , Real Application Testing Data Masking and Subsetting Pack , Virtual Private Database, Centrally Managed Users, トークン・ベース認証 Oracle Database Standard Edition 2, ネットワーク暗号化, Transparent Data Encryption , Unified Audit Database Lifecycle Management Pack Cloud Management Pack for Oracle Database Database Vault , Label Security , Data Redaction, SQL Firewall ※Audit Vault and Database Firewall, Data Safe, OCI Logging Analyticsはそれぞれのサービス利用料が必要 Copyright © 2024, Oracle and/or its affiliates 4
  4. 機密データが漏洩するリスク - マルウェアに感染したPCが、DBサーバーのデータファイルを物理的にコピーして外部に流出 - マルウェアに感染したPCが、DBサーバーにログインし、SQLクエリーで論理的に機密データにアクセスし外部に流出 - 内部の正規ユーザーが、DBサーバーのデータファイルを物理的にコピーして盗み出す - 内部の正規ユーザーが、DBサーバーにログインし、SQLクエリーで論理的に機密データにアクセスして盗み出す データベースを暗号化する必要性

    $> strings -a financials.dbf | grep “¥-[0-9]¥{4¥}¥-” 5555-5555-5555-4444 5105-1051-0510-5100 OS ユーザ データベース上の物理ファイル - データ・ファイル - Redo ログファイル - バックアップファイル - エクスポートファイル・・・ 流出してしまったファイル はバイナリエディタ等で データを直接参照される 物理的なデータの漏洩には暗号化で対策 論理的なデータの不正アクセスにはアクセス制御で対策 Copyright © 2024, Oracle and/or its affiliates 6
  5. アプリケーションからは透過的にデータの暗号化・復号することで、既存のアプリケーション (SQL)を改修する必要なし NISTの標準共通鍵暗号方式 AES(128/192/256bit) やARIA/SEED/GOSTなどのアルゴリズムにも対応 Intel AES-NIなどのハードウェア暗号化アクセラレーションに対応した高速な暗号化処理を実現 Oracle Databaseのデータファイルやバックアップファイルの物理的な盗難リスクに対して安全にデータを保護 サービスを停止することなく、データベースをオンラインに保ったまま暗号化への移行をサポート

    様々なOracleテクノロジーと組み合わせた活用 (RMAN, Exadata, RAC, Multi-Tenant, GoldenGate, Data Guard) Transparent Data Encryption (TDE) Disks Exports Off-Site Facilities Backups Applications Clear Data Software Keystore Key Vault OTHER TABLESPACE HCM TABLESPACE HCM TABLESPACE Encrypted Data DF11233 U*1 $5Ha1qui %H1 HSKQ112 A14 FASqw34 £$1 DF@£!1ah HH! DA45S& DD1 Encrypted Network Connection (TLS or Native Encryption) SELECT name,cardnumber FROM credit; Copyright © 2024, Oracle and/or its affiliates 7
  6. 表領域単位での暗号化 表領域内の表や索引などのオブジェクトはすべて暗号化される データブロックに対するI/Oで暗号化・復号 REDOログ、UNDO表領域、一時表領域、アーカイブログも暗号化される SGAのバッファキャッシュ上は暗号化されていない 暗号化してもデータサイズは増加しない 表領域暗号鍵はデータファイルのヘッダーに格納 暗号列への索引に制限なし ほとんどすべてのオブジェクトが暗号化可能 (BFILEのみ不可)

    既存表領域を暗号化する一括変換のサポート キャッシュヒットの高いSQLは性能への影響を受けず ディスクへのRead/Writeの多いSQLは影響を受ける TDE 表領域暗号化 SGA 表領域暗号化 REDOログ UNDO表領域 Disk I/Oで 暗号化/復号 サーバープロセス SELECT INSERT UPDATE・・・ 表領域暗号鍵 Oracle Keystore 表領域暗号化 マスター鍵 Copyright © 2024, Oracle and/or its affiliates 8
  7. TDEマスター暗号鍵のアーキテクチャ マスター暗号鍵 表領域 表領域 表領域 表領域暗号鍵 表領域暗号鍵 表領域暗号鍵 Oracle Keystore

    各表領域暗号鍵を 暗号化/復号 マスター暗号鍵は、データベースに基本的に1つ - マルチテナント環境の場合は、各PDBごとに自身のマスター暗号鍵を作成することも可能 マスター暗号鍵のデフォルト保管先は、PKCS#11互換のOracle Keystoreのファイルに格納される - Oracle Key VaultやHSM(Hardware Security Device)に格納し、ネットワーク通信で連携することも可能 マスター暗号鍵は、実際にデータを暗号化している表領域暗号鍵を暗号化・復号する マスター暗号鍵をオープンすると暗号化されたデータにアクセスできる マスター暗号鍵を変更すると表領域暗号鍵も変更される Oracle Key Vault またはHSM Copyright © 2024, Oracle and/or its affiliates 9
  8. SQLで表領域を暗号化 ・復号を一括変換 既存の表領域を暗号化する手間や時間を大幅に短縮 従来では暗号化できなかったSYSTEM, SYSAUX, UNDO, TEMPなどのシステム領域も暗号化することで データベースのフル暗号化が可能 データにアクセス可能なまま表領域を暗号化 -

    Online Encryption Conversion 表領域がオフライン時に暗号化 - Offline Encryption Conversion 表領域の暗号化変換 SALES TABLESPACE HCM TABLESPACE HCM TABLESPACE DF11233U*1 $5Ha1qui%H1 HSKQ112A14 FASqw34£$1 DF@£!1ahHH! DA45S& DD1 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 Copyright © 2024, Oracle and/or its affiliates 10
  9. オフライン変換 オンライン変換 対象リリース 11.2~ (※11.2, 12.1はパッチ必要) 12.2~ サポートするアルゴリズム AES (128,192,256),

    ARIA, GOST, SEED AES (128,192,256), ARIA, GOST, SEED 実行できるタイミング 表領域がオフライン、またはDBがマウント時 表領域がオンライン時 変換に必要な領域 なし 一時的に変換する表領域と同サイズ システム領域の暗号化 12.2~ 12.2~ 暗号化 ALTER TABLESPACE 表領域名 ENCRYPTION OFFLINE USING 'AES256' ENCRYPT ALTER TABLESPACE 表領域名 ENCRYPTION ONLINE USING ‘AES256’ ENCRYPT FILE_NAME_CONVERT = (‘旧データファイル’, ‘新データファイル') 復号 ALTER TABLESPACE 表領域名 ENCRYPTION OFFLINE DECRYPT ALTER TABLESPACE 表領域名 ENCRYPTION ONLINE DECRYPT FILE_NAME_CONVERT = (‘旧データファイル’, ‘新データファイル') オフライン・オンライン変換の比較 ※オンライン/オフラインとも、データファイル単位でパラレル実行可能 Copyright © 2024, Oracle and/or its affiliates 11
  10. アプリケーション暗号とTDEの違い 暗号化 個人番号 xxxxxxxxxxxx My No xxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx 暗号化

    暗号化 個人番号 188313648931 My No 188313648931 43435642455 983354931678 暗号化 Good End to Endで最もセキュア Bad データサイズの増加 アプリでの鍵管理が煩雑 索引が使えない アプリの改修が必要 TDE アプリ暗号 Good 上記のBadのポイントが全部 解消される Bad 暗号化によるリスク減が狭い 物理的ファイルの盗難の 頻度は高くない ネットワーク盗聴 DB侵入 ファイルの盗聴・盗難 想定される リスク Copyright © 2024, Oracle and/or its affiliates 12
  11. Oracle Databaseとクライアント間のSQL Netプロトコルの通信を暗号化 サーバーまたはクライアントのそれぞれのsqlnet.oraに以下のパラメータを設定し、組み合わせによって暗号化通信を開始 - SQLNET.ENCRYPTION_SERVER = (REQUIRED, REQUESTED, ACCEPTED,

    REJECTED) - SQLNET.ENCRYPTION_CLIENT = (REQUIRED, REQUESTED, ACCEPTED, REJECTED) - SQLNET.ENCRYPTION_TYPES_SERVER = (AES 128/192/256, ARIA, SEED, GOST) それぞれのデフォルトは、ACCEPTED サーバー側のSQLNET.ENCRYPTION_SERVERをREQUIREDすれば通信の暗号化を強制できる Networkの暗号化 REQUIRED REQUESTED ACCEPTED REJECTED REQUIRED 暗号化 暗号化 暗号化 接続失敗 REQUESTED 暗号化 暗号化 暗号化 暗号化なし ACCEPTED 暗号化 暗号化 暗号化なし 暗号化なし REJECTED 接続失敗 暗号化なし 暗号化なし 暗号化なし サ ー バ ー 側 設 定 クライアント側設定 Copyright © 2024, Oracle and/or its affiliates 13
  12. 機微なデータの抽出とマスキング Oracle Data Masking and Subsetting テストや開発などの目的で本番データをコピーする際、データのサニタイズや不要データの削除 0100101100101010010010 0100100100100101001011 0010101001001001001001

    001001001001001 データ抽出 マスキング NAME SALARY AGUILAR 50135.56 BENSON 35789.89 CHANDRA 60765.23 DONNER 103456.82 本番環境 開発・検証環境 NAME SALARY AGUILAR ***** CHANDRA ***** • 機微な情報を様々な形式でマスキング • ランダム文字列, ランダム数字, ランダム日付, リスト, ユー ザー関数, 固定文字, 正規表現.. • データベースの特性を考慮したアーキテクチャ • 表の制約や表と表の関係性を認識した一貫性のある マスキング • 列データの要素数、分布、件数など、本番データの特性を維 持したマスキング環境の作成 • データのサブセット&マスキング • 本番環境の 1/10 のデータを抽出 ~ マスキング ~ ダンプファイル生成までを自動化 Copyright © 2024, Oracle and/or its affiliates 14
  13. キー / 一意 / 参照整合性制約を自動検知 Data Masking (データ・マスキング) ID NAME

    CID 1 SMITH 1 2 ALLEN 4 3 JONES 1 4 CLARK 2 5 ADAMS 3 : : : CID COUNTRY_NAME 1 UNITED_KINGDOM 2 UNITED_STATES 3 AUSTRALIA 4 IRELAND 5 CANADA : : ID NAME CID 1 Aaafeh 83 2 Aafhed 65 3 Aaaafhe 83 4 Bodofa 39 5 aaahfied 9 : : : CID COUNTRY_NAME 83 UNITED_KINGDOM 39 UNITED_STATES 9 AUSTRALIA 65 IRELAND 7 CANADA : : 参照整合性を維持したマスキング (ランダム文字列+ランダム数値) 外部キー制約を自動的に 検知し、整合性を維持 Copyright © 2024, Oracle and/or its affiliates 15
  14. 独自マスキング・フォーマットの設定例 Data Masking (データ・マスキング) 作成する携帯番号のマスキング形式 070 – 1234 - 6789

    Random List [070-, 080-, 090-] Random Number [4 digit] Fixed String [-] Random Number [4 digit] Copyright © 2024, Oracle and/or its affiliates 16
  15. 行列レベルでのアクセス制御 アプリケーションを改修することなく、問い合わせたユーザーに応じて厳格なアクセス制御が可能 データベース・ユーザが不正に別のユーザのデータを参照・操作する可能性を排除 Oracle Virtual Private Database SELECT * FROM

    order WHERE customer = 'CLARK'; CLARK が 問い合わせた場合 SELECT * FROM order WHERE customer = 'SCOTT'; SCOTT が 問い合わせた場合 SELECT * FROM order; CLARK 300 06/03/17 SCOTT 20 05/09/11 SCOTT 450 05/11/07 CUSTOMER QTY CREDIT_CARD CLARK 125 06/02/04 SCOTT 310 06/01/26 CLARK 90 05/12/15 ORDER表 ユーザーの属性情報に応じて、 SQLが内部的に書き換える Copyright © 2024, Oracle and/or its affiliates 18
  16. アプリケーション固有の情報を使ったアクセス制御 アプリケーション セッション情報 (v$session) - DBユーザー名 - IPアドレス - プログラム名

    - ホスト名 条件 + VPD Data Redaction DBユーザー DBユーザー セッション情報 (v$session) - CLIENT_IDENTIFIER (64バイト) 条件 + VPD Data Redaction User IDやRoleなどの アプリ固有情報を渡す コードの修正が必要 DBユーザーは 常に同じ Copyright © 2024, Oracle and/or its affiliates 20
  17. Sensitive Confidential Public Public Label Based Access Control(ラベル・ベースのアクセス制御) 行データに付与されたデータ・ラベルとユーザが保持するセッション・ラベルを比較し、ラベルに応じた厳密なアクセス制御 セッション・ラベルがデータ・ラベルよりも上位の場合アクセスが許可され、同様に書き込みもラベルで制御がされる

    データ・ラベルは物理的に各レコードに格納され、ユーザーから見えなくすることも可能 セッション・ラベルを動的に変更することでアクセスできる範囲を変更するなど、アプリケーションに組み入れた利用が効果的 Oracle Label Security セッション・ラベル Confidential セッション・ラベル Sensitive Copyright © 2024, Oracle and/or its affiliates 21
  18. データベース管理者のアクセス制御 特権ユーザの無制限のアクセスを禁止し、ユーザごとのアクセス権限を厳格にする DBユーザーの完全な職務分掌を実現 Oracle Database Vault DB ルールセット 機密データの 取り扱い者

    DB管理者 セキュリティ 管理者 サーバ 管理者 機密データ データディクショナリ 業務データ ユーザ・アカウント 時刻 =8:00~19:00 曜日 = 月~金 IPアドレス = xxxxx • 許可された範囲で機密データに アクセス可能 • DBの運用管理業務 • 業務データと機密データ へのアクセスは不可 • アカウントと鍵の管理業務 • 業務データと機密データへの アクセスは不可 • サーバとOSの管理業務のみ • DBへのアクセスは不可 DB管理者であっても、 管理業務に必要ない業務 データ、機密データへのアク セスを禁止する 必要に応じてルールを適用し、時 間帯やIPアドレスでアクセスを制 限する それ以外 それ以外 それ以外 それ以外 すべて 一般利用者 • 許可された範囲で業務データに アクセス可能 利用状態 (Data at Use) Copyright © 2024, Oracle and/or its affiliates 22
  19. SQL Firewall (23c新機能) SQLレベルで制御するデータベース・ネイティブのファイアーウォール SQL単位でデータベースのアクセスを制御するファイアーウォール データベース・ネイティブなので如何なる手段でもバイパスできない アクセス許可されるSQLは、列名や条件を含めて完全一致しなければならず SQLインジェクションや不必要なデータ参照を防止 実行されるSQLを収集しファイアーウォール・ポリシーを作成 -

    SQL: DDL, DML - セッション・コンテキスト: IPアドレス、OSユーザー名、プログラム名 非常に軽微なCPUオーバーヘッド ポリシー違反のアクセスをブロックまたはログ記録だけの検知としても使用可能 違反したログは、 DBA_SQL_FIREWALL_VIOLATIONSビューで参照 Oracle Database 23c SQL Firewall Program OS User IP Address Copyright © 2024, Oracle and/or its affiliates 24
  20. SQL Firewall SQLリストに基づいてSQLクエリをブロックする HR_APPの許可SQLリスト SQL Text select * from hr_employees

    where employee_id =:"SYS_B_0" SQL Signature F83C7D7D228A5DDB98AAAFA57DE0838A8B CE748359E5DE459D3D7AB7DCEBA07B Accessed Objects "HR_APP"."HR_EMPLOYEES" Current User HR_APP Top Level User initiated SQLs Y SQL Firewall アプリケーション 利用者 HR Application アプリケーション・サーバが 使用するDBユーザ: HR_APP select * from hr_employees where employee_id =‘210 select * from hr_employees where employee_id =‘210’ OR 1=1 SQL Injection 侵入者 Copyright © 2024, Oracle and/or its affiliates 25
  21. SQL Firewall セッション・コンテキストに基づいてデータベース接続をブロックする アプリケーション 利用者 HR Application Thin Client SQL

    Developer HR_APPユーザーの許可セッション・コンテキスト SQL Firewall IP Address 10.0.0.8 OS Username opc OS program JDBC Thin Client アプリケーション利用者が 使用するDBユーザ: HR_APP IPアドレス:10.0.0.8 Copyright © 2024, Oracle and/or its affiliates 26
  22. Oracle Databaseの監査機能 DBA監査 標準監査 Unified Audit 必要Edition 全エディション 全エディション 全エディション

    対象バージョン Oracle 10g ~ 21c (※23cから廃止) Oracle 10g ~ 21c (※23cから廃止) Oracle 12c ~ 監査対象 ・データベース管理者 (SYSDBA,SYSOPER)としてログインし たユーザーのDB操作 ・データベースのすべての操作 (ログイン、CREATE/ALTER/DROP などのアクション、UPDATE、DELETE などのオブジェクトへの操作) ・SYS含むデータベースのすべての 操作 ・Datapump、RMAN、 SQL*Loader ・監査対象への条件指定が可能 監査証跡 出力先 ・OSファイル ・システムビューア(Win) ・Syslog(10gR2~) ・AUD$表 ・OSファイル / システムビューア(Win) ・XMLファイル(10gR2~) ・Syslog(10gR2~) ・AUDSYS.AUD$UNIFIED表 ・指定した表領域に移動可能 ※表領域に書き込めない場合は、 一時的にファイルに出力される 取得可能な 監査証跡 ・時刻 ・操作(SQL文全体) ・DB,ユーザー名/権限 ・OSユーザー名/端末 ・終了コード ・時刻 ・操作(SQLコマンド、SQL文) ・オブジェクト名 ・DB,OSユーザ名 ・プログラム名 ・バインド値 ・時刻 ・操作(SQLコマンド、SQL文) ・オブジェクト名 ・DB,OSユーザ名 ・プログラム名 ・バインド値 Copyright © 2024, Oracle and/or its affiliates 28
  23. Unified Audit データベース・オブジェクト、権限、ユーザー・アクション等、監査対象をグループ化したポリシーベースの監査 事前定義済みの監査ポリシーで必要とされる最小限の監査項目をカバー ユーザー・セッション情報(IPアドレス、ユーザー名、プログラム名等)を監査条件にログ出力の絞り込み 監査ログはデータベース内の内部表として格納され、UNIFIED_AUDIT_TRAILビューで参照可 SYSユーザー監査、Recovery Manager、Data Pump、SQL*Loader等のログも統合 推奨される監査のベストプラクティス

    - すべてのアクションを監査対象ではなく、コンプライアンス要件やセキュリティの懸念のあるアクションにフォーカス - DBMS_AUDIT_MGMTパッケージで定期的にログをパージ。別サービスと連携したログの長期保管も検討 CREATE AUDIT POLICY Policy1 ACTIONS UPDATE ON HR.EMP, DELETE ON HR.EMP_EXD; AUDIT POLICY Policy1; 例)表に対するDML監査ポリシー Copyright © 2024, Oracle and/or its affiliates 29
  24. Unified Audit Unified Auditの定義済みポリシー ポリシー名 ポリシーの内容 デフォルト ORA_LOGON_FAILURES ログイン失敗のみ Yes

    (DBCAでDB作成時) ORA_SECURECONFIG セキュリティ監査の必須要件として求められる基本的なデータ ベースの構成管理に関連した操作 Yes (DBCAでDB作成時) ORA_DATABASE_PARAMETER データベースのパラメータ変更に関連した操作 No ORA_ACCOUNT_MGMT ユーザー・アカウントの変更や権限に関連した操作 No ORA_CIS_RECOMMENDATIONS CISベンチマークで求められる監査要件に関連した操作 No ORA_RAS_POLICY_MGMT, ORA_RAS_SESSION_MGMT Real Application Securityに関連した操作 No ORA_DV_AUDPOL Oracle Database Vaultの DVSYS, LBACSYSスキーマのオブ ジェクトに関連した操作 No ORA_DV_AUDPOL2 Database Vaultのレルムやコマンドルールに関連した操作 No Copyright © 2024, Oracle and/or its affiliates 30
  25. Unified Audit ORA_SECURECONFIGポリシー 主にデータベース管理に関連する操作に対して監査ポリシー 表などのオブジェクトに対する監査設定はされていないので、ユーザー用途に応じたDML監査を追加する ALTER ANY TABLE CREATE ANY

    TABLE DROP ANY TABLE ALTER ANY PROCEDURE CREATE ANY PROCEDURE DROP ANY PROCEDURE GRANT ANY PRIVILEGE GRANT ANY OBJECT PRIVILEGE GRANT ANY ROLE CREATE USER DROP USER ALTER USER ALTER DATABASE ALTER SYSTEM AUDIT SYSTEM ALTER ANY SQL TRANSLATION PROFILE CREATE ANY SQL TRANSLATION PROFILE DROP ANY SQL TRANSLATION PROFILE CREATE ANY LIBRARY CREATE ANY JOB CREATE EXTERNAL JOB CREATE SQL TRANSLATION PROFILE CREATE PUBLIC SYNONYM DROP PUBLIC SYNONYM EXEMPT ACCESS POLICY EXEMPT REDACTION POLICY TRANSLATE ANY SQL PURGE DBA_RECYCLEBIN LOGMINING ADMINISTER KEY MANAGEMENT BECOME USER CREATE PROFILE ALTER PROFILE DROP PROFILE CREATE ROLE ALTER ROLE DROP ROLE SET ROLE CREATE DATABASE LINK ALTER DATABASE LINK DROP DATABASE LINK CREATE DIRECTORY DROP DIRECTORY EXECUTE ON DBMS_RLS ALTER DATABASE DICTIONARY CREATE PLUGGABLE DATABASE DROP PLUGGABLE DATABASE ALTER PLUGGABLE DATABASE Copyright © 2024, Oracle and/or its affiliates 31
  26. Unified Audit 条件による監査対象の絞り込み WHEN句で、IPアドレスがNULL(ローカル接続)の場合のみの条件を 追加 CREATE AUDIT POLICY Policy1 ACTIONS

    UPDATE ON EMPLOYEES, DELETE ON EMP_EXTENDED; AUDIT POLICY Policy1 BY UserX, UserY; CREATE AUDIT POLICY Policy2 ACTIONS UPDATE ON EMPLOYEES, DELETE ON EMP_EXTENDED WHEN 'SYS_CONTEXT(''USERENV'',''IP_ADDRESS'') IS NULL’ AUDIT POLICY Policy2; 特定のユーザーのUPDATE,DELETE文のDMLを監査 Actions ALLだけれども、JDBC接続の特定のAPサーバのアクセスは除く条件を指定 CREATE AUDIT POLICY Policy3 ACTIONS ALL ON EMPLOYEES WHEN 'SYS_CONTEXT(''USERENV'',''HOST'') IN ‘’xxxxx.jp.oracle.com,xxxxx.jp.oracle.com‘’ AND SYS_CONTEXT(''USERENV'',''MODULE'') NOT IN ''JDBC Thin Client''' AUDIT POLICY Policy3; Copyright © 2024, Oracle and/or its affiliates 32
  27. Column Level Audit (23c新機能) 表の列をトリガーにした監査アクション SELECT * from EMPLOYEES; SELECT

    ID FROM EMPLOYEES; SELECT ID, SALARY FROM EMPLOYEES; EMPLOYEES SALARY列 監査アクションの対象を従来の表単位から列単位での特定が可能 ログは、UNIFIED_AUDIT_TRAILビューをから参照 監査対象を絞り込むことは、監査ログのストレージ領域の肥大を抑え DMLのパフォーマンスへのオーバーヘッドも最小限にすることができる CREATE AUDIT POLICY ポリシー名 ACTIONS DML(カラム名) ON テーブル名 例) EMPLOYEES表のSALARY列のSELECT, UPDATEを対象 CREATE AUDIT POLICY policy1 ACTIONS SELECT(SALARY), UPDATE(SALARY) ON HR.EMPLOYEES; AUDIT POLICY policy1; Copyright © 2024, Oracle and/or its affiliates 33
  28. Oracle Audit Vault and Database Firewall Database Firewall Audit Vault

    Server Operating systems & directory services Databases Policies Reports Alerts Oracle Database Microsoft SQL Server IBM DB2 SAP Sybase MySQL PostgreSQL Linux Windows AIX Solaris Microsoft Active Directory データベース・アクセス Oracle Databaseや他社のデータベースの 監査ログを収集し一元管理 OSやディレクトリのログにも対応 2種類のデータベース・ログ収集方式 SQLトラフィック + Database Firewall データベース監査 + エージェント 収集したログをレポート・アラートし、不正な操作の 早期検知 Oracle Databaseの暗号化、特権管理などの セキュリティ機能をフルに活用し、ログの改ざん、 削除を防止しセキュアに保管 ソフトウェアアプライアンスとして、OSとソフトウェアが パッケージングされて提供 Copyright © 2024, Oracle and/or its affiliates 34
  29. Unified Auditの定常的な監視 Unified Auditは、Unified Audit Trailビューから監査レコードにアクセスすることができる 不信な挙動やアクセスがあった場合にアラートをする等の監視の自動化など、効率的に定常監視を行いたい場合は 以下の製品と組み合わせて実現する Oracle Audit

    Vault and Database Firewall - オンプレミス製品 - 対象は主にオンプレミスのOracle Database - ソフトウェアアプライアンスとして提供され、ハードウェアとログを格納するための大容量のストレージが必要 OCI Logging Analytics - クラウドサービス - 対象はオンプレミス及びクラウドのDatabase (SQL Server, MySQL等のOracle Database以外の監査ログも対応) - クラウドサービスなので、事前に大容量のストレージを準備する必要がなく、無制限に格納可能 また、格納しているログの使用量に応じて課金され 必要なくなったらより安価なオブジェクトストレージに退避可能 OCI Data Safe - クラウドサービス - 対象は、クラウドまたはオンプレミスのOracle Database - 月 100万レコードまで無償 Copyright © 2024, Oracle and/or its affiliates 35
  30. Active Directoryのユーザー・パスワードを用いたデータベース認証 Oracle Databaseのパスワード認証をActive Directoryと連携することによる認証の一元化 Oracle Database 18c Enterprise Editionから利用可能

    (EE機能として提供) 2種類のマッピング方式 - 1 : 1 DBユーザーとADユーザーをマッピング (DBユーザーがADユーザーと同数必要) - 1 : n DBユーザーをADグループにマッピング (DBユーザーは、マッピングするADグループ数のみ) ADユーザーのDBに対するアクセス権限は、Active Directoryのグループ割り当てで動的に変更が可能 Centrally Managed Users (CMU) Microsoft Active Directory 専用 DBユーザ 共有 DBユーザ 1:1 ADユーザ 1:n ADグループ create user BOB identified globally as cn=bob,ou=users, dc=company,dc=com create user hr-rep identified globally as cn=hr-rep,ou=groups, dc=company,dc=com Groups: hr-rep {Susan, Diana } Domain (dc=company, dc=com) Users: Susan, Diana, Bob, Venkat Oracle Database Copyright © 2024, Oracle and/or its affiliates 37
  31. アーキテクチャ概要 Centrally Managed Users (CMU) Copyright © 2024, Oracle and/or

    its affiliates 38 Active Directory Oracle Database • ADスキーマを拡張するプログラム (opwdintg.exe)をインストール • インストール後以下の3つのグループが 作成され、 DBに接続するADユーザー にいずれかを割り当てる ORA_VER_12c, ORA_VFR_11G, ORA_VFR_MD5 • ADと通信するためのCMU設定 • DB-AD間の通信用の代表ADユーザを ひとつ作成 • ユーザーがAD認証を実行した際には このADユーザーがADに認証委託し、 結果を受け取る • 接続情報は、Oracle Keystoreに格納 connect [email protected]/ADパスワード
  32. トークン・ベースの外部認証 OAuth2トークンによるOracle Databaseの認証と認可 Oracle DatabaseとIAM/Azure AD間の通信はTLSにより暗号化され セキュアにトークンの受け渡しが可能 IAM/Azure ADのユーザー・ロールとOracle Databaseのスキーマを

    マッピングすることで、統合的なユーザー管理が可能 JDBC-thin、ODP.NETクライアントはネイティブクラウド認証に対応 対象データベース: - オンプレミス Oracle Database 19c(19.18~) ※ - Oracle Autonomous Database Serverles - Oracle Autonomous Database on Dedicated Exadata - Oracle Base Database Service - Oracle Exadata Database Service on Dedicated Infrastructure ※Azure ADのみ。IAMはOracle Cloud Databaseのみサポート OCI IAM / Azure AD OAuth2 token Oracle Database - Autonomous - Cloud - On-Premises token Request Send OCI, ADユーザー Azure AD, OCI IAMをサポート Copyright © 2024, Oracle and/or its affiliates 39
  33. トークン・ベースの外部認証 Azure ADの場合の認証・認可フロー Oracle Cloud Azure AD ユーザー クライアント -

    JDBC, ODP.NET - Azure CLI, SQL*Plus Oracle Database Azure ADユーザーがOracle Databaseリソースの アクセスをリクエスト 1 データベース・クライアントまたはアプリケーションが Azure ADに認可コードをリクエスト 2 Azure ADがAzure ADユーザーを認証し 認可コードを返却 3 クライアントが認可コードを使用し Azure ADからOAuthトークンを取得 4 クライアントがOAuth トークンをOracle Databaseに送信 5 Oracle DatabaseはAzure ADの公開鍵を使用し Azure ADによって作成されたアクセストークンで あることを確認し、アクセスを認可 6 Azure AD Copyright © 2024, Oracle and/or its affiliates 40
  34. トークン・ベースの外部認証 Azure ADユーザーとDBスキーマのマッピング方式 排他的マッピング • Azure ADユーザーとOracle Databaseスキーマを直接マッピング • ADユーザの追加・削除時には、同様にDB側のスキーマの修正に必要

    • ADユーザーと同数のDBスキーマが必要 Oracle Database Azure AD Identity Schema(User) Oracle Database Azure AD Identity App Registration Shared Schema Oracle Database Azure AD Identity App Registration Global Role App Roles App Roles CREATE USER peter IDENTIFIED GLOBALLY AS ‘[email protected]’ CREATE USER dba_azure IDENTIFIED GLOBALLY AS ‘AZURE_ROLE=AZURE_DBA’ CREATE ROLE sales_role IDENTIFIED GLOBALLY AS ‘AZURE_ROLE=SalesGroup’ グローバル・マッピング • Azure ADアプリロールとOracle Database Sharedスキーマもしくは Oracle Database Globalロールをマッピング • ADユーザの追加・削除時には、DB側の変更なくAD側のみで完結 • ADアプリロールと同数のDBスキーマ(ユーザ)・ロールを用意 Copyright © 2024, Oracle and/or its affiliates 41
  35. データベースの脆弱性を監視 Oracle Databaseをより安全に利用するためのクラウドベースの データベース・セキュリティ・サービス Data SafeとターゲットとなるDBを接続し、以下のセキュリティ機能を提供 - セキュリティ・アセスメント(Security Assessment) -

    ユーザー・アセスメント (User Assessment) - 機密データ検出(Sensitive Data Discovery ) - データ・マスキング(Data Masking) - アクティビティ監査(Activity Auditing) Autonomous Database、Base-DB、ExaDB-Dは無償 (※一部有償) SE、EEどちらのエディションでも使用可能 BYOLや他社クラウドのOracle Database、またオンプレミスの Oracle Databaseに対しても有償にして使用可能 Data Safe Oracle Cloud上の データベース 監査 ユーザー 発見 アセス マスク オンプレミス のデータベース Data Safe AWS, Azure上の オラクルデータベース Copyright © 2024, Oracle and/or its affiliates 43
  36. 機械学習のテクノロジーを活用した高度なログ分析・サービス基盤 - 200種類以上のログに対応した事前定義済みパーサー - OCIやオンプレミスにある様々なOSやミドルウェアのログに対応 - 未サポートのログにはガイド付きカスタムパーサーで簡単作成 直感的な操作で分析可能できるログ・エクスプローラー 大量のログを高速にビジュアライズするクラスタ分析 ログ・データの値に応じた自動ラベリング

    様々な分析軸を保存したダッシュボード ラベルやログ・データに応じたアラート通知 アーカイブ機能によりTBを超えるログ保存のコストを削減 Loggingサービスとの連携しログ分析基盤として活用 インストールした管理エージェントが、自動的にアップロード Logging Analytics 46 Logging Analytics Logging Compute Instance Service Connector Hub 管理エージェント 連携 Syslog、セキュアログ Windowイベントログ ミドルウェア、アプリケーションログ ネットワーク、データベースログ etc.. Database System 他社クラウド 管理エージェント 連携 管理エージェント 連携 サービス連携 オンプレミス Copyright © 2023, Oracle and/or its affiliates
  37. 機械学習を用いたログ分析 「無視してよい大量のログ」「大切な一行のログ」を効率的に探索 類似したパターンを持つログを自動的に認識しグルーピング 膨大な量のログイベントを少量のパターン情報 (クラスタ)へと集約 - 例外的パターンや断続的に発生するイベントを素早く検知することで 迅速なトラブルシューティングや、異常の検出を可能に Logging Analytics

    47 クラスター: ログ・レコードのパターンを識別し、類似した パターンを持つログをグループ化 潜在的な問題: Error, Fatal(致命的), Exception(例外) などのキーワードを含むログ・レコードのクラスタ 外れ値: 特定の期間中に一度のみ発生し、クラスタに 含まれなかったログ・レコード トレンド: クラスタのトレンド。類似した傾向を持つクラスタ同士 をトレンドとして表示 Aug 18 11:00:57 Unable to create file ABC.txt for user root Aug 18 23:07:26 Unable to create file DEF.txt for user larry Aug 18 23:08:30 Unable to create file XYZ.ppt for user moe 上記ログエントリを、1つのパターンおよび1つの例外に集約 ID パターン 件数 1 <Date> Unable to create file <File> for user <User> 1000 2 Aug 18 23:08:01 Succeeded authorizing right 'system.priv.admin' 1 Copyright © 2023, Oracle and/or its affiliates
  38. Oracle Database Security Assessment Tool (DBSAT) 簡単に数分で完了する独立型のPythonスクリプト 稼働しているデータベースから影響なく直接情報を抽出 優先順位付けられた推奨事項 読みやすくまとめられたHTMLレポート

    データベースのリスクを定量的に評価し可視化 - 用途不明、過度な権限を持つユーザーがいないか - 適切なパスワード運用をしているか - 暗号化の有無 - 監査設定の状況 ダウンロード https://www.oracle.com/jp/database/technologies/security/dbsat.html Oracle Databaseのセキュリティ・リスクを可視化 データベースは安全 に構成されている? どんなユーザーに どんな権限が? 重要なデータが 格納されている? Copyright © 2024, Oracle and/or its affiliates 50