Slide 1

Slide 1 text

Oracle Database World Tokyo ⻄村 克也 プリンシパルクラウドエンジニア, CISSP ⽇本オラクル株式会社 クラウドエンジニアリング統括 COE本部 セキュリティ&マネジメント・ソリューション部 プリンシパルクラウドエンジニア 2023年4⽉12⽇ セルフ・アセスメントから 読み解く段階的な データベース・セキュリティ対策

Slide 2

Slide 2 text

政府機関等の対策基準策定のためのガイドライン (令和3年度版) - 7.2.4 データベースの導⼊・運⽤時の対策 政府機関等のサイバーセキュリティ対策のための統⼀基準(令和3年度版) - 7.2.4 データベースの導⼊・運⽤時の対策 個⼈情報の保護に関する法律についてのガイドライン (通則編) - 10-6 技術的安全管理措置 PCIDSS (Payment Card Industry Data Security Standard) v4.0 Oracle Database セキュリティ・ガイド - 付録: Oracle Databaseの安全性の維持 CIS Oracle Database 12c/18c/19c Benchmark Oracle Database 12c Security Technical Implementation Guide (STIG) Oracle Database Security Assessment Tool (DBSAT) 安全にデータベースを構築・運⽤するための指針 2 Copyright © 2023, Oracle and/or its affiliates

Slide 3

Slide 3 text

Oracle Database Security Assessment Tool (DBSAT) 簡単に数分で完了する独⽴型のPythonスクリプト 稼働しているデータベースから影響なく直接情報を抽出 優先順位付けられた推奨事項 読みやすくまとめられたHTMLレポート データベースのリスクを定量的に評価し可視化 - ⽤途不明、過度な権限を持つユーザーがいないか - 適切なパスワード運⽤をしているか - 暗号化の有無 - 監査設定の状況 ダウンロード https://www.oracle.com/jp/database/technologies/security/dbsat.html Oracle Databaseのセキュリティ・リスクを可視化 3 データベースは安全 に構成されている︖ どんなユーザーに どんな権限が︖ 重要なデータが 格納されている︖ ? Copyright © 2023, Oracle and/or its affiliates

Slide 4

Slide 4 text

リスクアセスメント・レポート 4 Copyright © 2023, Oracle and/or its affiliates

Slide 5

Slide 5 text

Copyright © 2023, Oracle and/or its affiliates 5 リスク・アセスメントの実例から学ぶ 現状の課題と対策

Slide 6

Slide 6 text

ユーザー・プロファイルの項⽬をすべてUNLIMITEDにしている 6 ユーザー・プロファイルをデフォルト値から無制限に変更 • パスワードの有効期限, 再利⽤, 再利⽤回数の制限なし, ログイン失敗のロック制限回数なし • パスワードの複雑性チェックはNULL 安易なパスワードの使⽤やログイン失敗の制限を 指定しないことは、既知のパスワードやブルートフォース などの認証突破のリスクを増⼤させる Copyright © 2023, Oracle and/or its affiliates

Slide 7

Slide 7 text

ユーザー・プロファイル 7 属性名 FAILED_LOGIN_ATTEMPTS PASSWORD_LIFE_TIME PASSWORD_GRACE_TIME PASSWORD_LOCK_TIME PASSWORD_REUSE_MAX PASSWORD_REUSE_TIME PASSWORD_VERIFY_FUNCTION 説明 許容されるログインの連続失敗回数。これを超えるとアカウントは ロックされる 同⼀パスワードの有効期間(⽇数)。これを過ぎるとパスワードは 期限切れ となる。UNLIMITED は永続的に使⽤できることを⽰す パスワードが 期限切れ となってから 無効化 されるまでの猶予期間 (⽇数)。その間ユーザーはパスワードを変更することが許可される UNLIMITED は制限なし ログインに連続失敗した際のアカウントのロック期間(⽇数) UNLIMITED は⾃動ロック解除が無効 過去と同⼀のパスワードの使⽤を許容しない変更回数 UNLIMITEDでは即再利⽤可能 過去と同⼀のパスワードの使⽤を許容しない期間(⽇数) UNLIMITED では即再利⽤可能 設定したパスワードの複雑をチェックする ORA12C_VERIFY_FUNCTION、ORA12C_STIG_VERIFY_FUNCTION 12R1以降 10 180 7 1 UNLIMITED UNLIMITED NULL ※設定内容は、次のSQLで確認可能 SQL> SELECT * FROM dba_profiles WHERE profile=ʻDEFAULTʻ AND resource_type='PASSWORD'; ※変更する場合は次のように実⾏ SQL> ALTLER PROFILE default LIMIT <属性名> <新しい値>; 基本 Copyright © 2023, Oracle and/or its affiliates DB Cloud 3 60 7 1 5 365 ORA12C_STRONG_ VERIFY_FUNCTION

Slide 8

Slide 8 text

⽤途不明、過⼤な権限が付与されたアカウントを発⾒ 8 残存する⽤途不明のアカウントを検出 いつ、誰が作成したのか、現在の使⽤状況も不明 SYS, DBAロールの管理者権限が付与されているため DB管理操作やすべての表にアクセス可能なアカウントの 状態になっている ⽤途不明かつ強い権限のアカウントは、知らずに 不正アクセスに悪⽤されるリスクを伴う Copyright © 2023, Oracle and/or its affiliates

Slide 9

Slide 9 text

Copyright © 2023, Oracle and/or its affiliates 9 Centrally Managed Users (CMU) Oracle Databaseのパスワード認証をActive Directoryと連携することによる認証の⼀元化 Oracle Database 18c Enterprise Editionから利⽤可能 2種類のマッピング⽅式 - 1 : 1 DBユーザーとADユーザーをマッピング (DBユーザーがADユーザーと同数必要) - 1 : n DBユーザーをADグループにマッピング (DBユーザーは、マッピングするADグループ数のみ) ADユーザーのDBに対するアクセス権限は、Active Directoryのグループ割り当てで動的に変更が可能 Active Directoryのユーザー・パスワードを⽤いたデータベース認証 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 EE

Slide 10

Slide 10 text

データベースの暗号化を⾏っていない 10 表には、⽒名、⽣年⽉⽇、住所などの個⼈情報を 格納しているが、DBの暗号化機能は使⽤していない アプリケーション、ストレージでも特に暗号化の対策を していないことも分かった 導⼊時暗号化を検討したが、パフォーマンスの懸念や コスト増から導⼊を⾒送った データベースを暗号化していないと、データファイルへの 直接アクセス、バックアップやダンプファイルの窃取などに よりデータの盗難リスクがある 個⼈情報保護法などのコンプライアンス要件により 暗号化が必須となっている Copyright © 2023, Oracle and/or its affiliates

Slide 11

Slide 11 text

Transparent Data Encryption (TDE) 11 アプリケーションからは透過的にデータの暗号化・復号し、既存のアプリケーション (SQL)を改修する必要なし NISTの標準共通鍵暗号⽅式 AES(128/192/256bit)、ARIA/SEED/GOST等に対応 Intel AES-NIなどのハードウェア暗号化アクセラレーションに対応した⾼速な暗号化処理 Oracle Databaseのデータファイルやバックアップファイルの物理的な盗難リスクからデータを保護 データベースをオンラインに保ったまま暗号化への移⾏も可能 Oracle Database Cloud Serviceでは、デフォルトで有効化 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; EE + Advanced Security Option Copyright © 2023, Oracle and/or its affiliates

Slide 12

Slide 12 text

TDE 表領域暗号化 12 表領域単位での暗号化 表領域内の表や索引などのオブジェクトはすべて暗号化される データブロックに対するI/Oで暗号化・復号 REDOログ、UNDO表領域、⼀時表領域、アーカイブログも暗号化される SGAのバッファキャッシュ上は暗号化されていない 暗号化してもデータサイズは増加しない 暗号列への索引に制限なし ほとんどすべてのオブジェクトが暗号化可能 (BFILEのみ不可) キャッシュヒットの⾼いSQLは性能への影響を受けず ディスクへのRead/Writeの多いSQLは影響を受ける SGA 表領域暗号化 REDOログ UNDO表領域 Disk I/Oで 暗号化/復号 サーバープロセス SELECT INSERT UPDATE・・・ 表領域暗号鍵 表領域暗号化 マスター鍵 Copyright © 2023, Oracle and/or its affiliates

Slide 13

Slide 13 text

表領域の暗号化変換 13 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 © 2023, Oracle and/or its affiliates

Slide 14

Slide 14 text

アプリケーション暗号とTDEの違い 14 暗号化 個⼈番号 xxxxxxxxxxxx My No xxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx 暗号化 暗号化 個⼈番号 188313648931 My No 188313648931 43435642455 983354931678 暗号化 Good End to Endで最もセキュア Bad データサイズの増加 アプリでの鍵管理が煩雑 索引が使えない アプリの改修が必要 TDE アプリ暗号 Good 上記のBadのポイントが全部 解消される Bad 暗号化によるリスク減が狭い 物理的ファイルの盗難の 頻度は⾼くない ネットワーク盗聴 DB侵⼊ ファイルの盗聴・盗難 想定される リスク ネットワーク暗号化 +TDE + アクセス制御の組み合わせでセキュリティ強化 ネットワーク 暗号化 Copyright © 2023, Oracle and/or its affiliates

Slide 15

Slide 15 text

アクセス制御 15 ⾏・列レベルでのアクセス制御を⾏っていない DBA管理者のアクセス制御を⾏っていない DBユーザーまたはアプリケーション・ユーザーに応じて 特定の列や⾏だけにアクセスを限定させることは Need to Knowの原則から情報漏洩対策に有効 同様に、すべての権限を持つDBA監視者の 職務分掌と最⼩権限の原則を実施することも効果的 Copyright © 2023, Oracle and/or its affiliates

Slide 16

Slide 16 text

⾏列レベルでのアクセス制御 アプリケーションを改修することなく、問い合わせたユーザーに応じて厳格なアクセス制御が可能 データベース・ユーザが不正に別のユーザのデータを参照・操作する可能性を排除 Oracle Virtual Private Database Copyright © 2023, Oracle and/or its affiliates 16 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が内部的に書き換える EE

Slide 17

Slide 17 text

列レベルのデータの伏字化 ユーザーのセッション情報に応じてリアルタイムに列を任意の形でリダクション(伏字化) アプリケーションのコード修正は必要のなく、設定されたポリシーに応じてデータベース側で制御 ⾮定型な問い合わせには予期せぬデータの結果が返る場合があるため、SQLが固定化されているアプリケーション等の データ表⽰の補助的な役割として活⽤が推奨 ※⾮定型を含めた完全な列アクセス制御はVPDを利⽤ Oracle Data Redaction Copyright © 2023, Oracle and/or its affiliates 17 4451-2172-9841-4368 5106-6342-4881-5211 4891-3311-0090-5055 4512-3339-3231-5909 クレジットカード番号 4451-2172-9841-4368 XXXX-XXXX-XXXX-4368 ⼀般の アプリケーション利⽤者 機密データにアクセス可能な アプリケーション利⽤者 EE + Advanced Security Option

Slide 18

Slide 18 text

アプリケーション固有の情報を使ったアクセス制御 Copyright © 2023, Oracle and/or its affiliates 18 アプリケーション セッション情報 (v$session) - DBユーザー名 - IPアドレス - プログラム名 - ホスト名 条件 + VPD Data Redaction DBユーザー DBユーザー セッション情報 (v$session) - CLIENT_IDENTIFIER (64バイト) 条件 + VPD Data Redaction User IDやRoleなどの アプリ固有情報を渡す コードの修正が必要 DBユーザーは 常に同じ

Slide 19

Slide 19 text

データベース管理者のアクセス制御 特権ユーザの無制限のアクセスを禁⽌し、ユーザごとのアクセス権限を厳格にする DBユーザーの完全な職務分掌を実現 Oracle Database Vault Copyright © 2023, Oracle and/or its affiliates 19 DB ルールセット 機密データの 取り扱い者 DB管理者 セキュリティ 管理者 サーバ 管理者 機密データ データディクショナリ 業務データ ユーザ・アカウント 時刻 =8:00〜19:00 曜⽇ = ⽉〜⾦ IPアドレス = xxxxx • 許可された範囲で機密データに アクセス可能 • DBの運⽤管理業務 • 業務データと機密データ へのアクセスは不可 • アカウントと鍵の管理業務 • 業務データと機密データへの アクセスは不可 • サーバとOSの管理業務のみ • DBへのアクセスは不可 DB管理者であっても、 管理業務に必要ない業務 データ、機密データへの アクセスを禁⽌する 必要に応じてルールを適⽤し、時間 帯やIPアドレスでアクセスを制限する それ以外 それ以外 それ以外 それ以外 すべて ⼀般利⽤者 • 許可された範囲で業務データに アクセス可能 利⽤状態 (Data at Use) EE + Database Vault Option

Slide 20

Slide 20 text

監査 20 Oracle Databaseの監査設定をデフォルト値から無効 Oracle Database以外の監査製品を使⽤している 監査ログを定期的にチェックやレポート等の監査・監視は ⾏っていない 監査されているということが運⽤担当者に周知されていない DBの監査機能以外の場合、アクセスログが不⼗分な ケースがある 定常的なモニタリング運⽤がない場合、機微な情報 にアクセスする際の緊張感の低下が懸念 コンプライアンス要件で監査と監視が求められる Copyright © 2023, Oracle and/or its affiliates

Slide 21

Slide 21 text

Oracle Databaseの監査機能 21 DBA監査 標準監査 Unified Audit 必要Edition 全エディション 全エディション 全エディション 対象バージョン Oracle 10g 〜 20c (※21cから⾮推奨) Oracle 10g 〜 20c (※21cから⾮推奨) 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 © 2023, Oracle and/or its affiliates

Slide 22

Slide 22 text

Unified Audit データベース・オブジェクト、権限、ユーザー・アクション等、監査対象をグループ化したポリシーベースの監査 事前定義済みの監査ポリシーで必要とされる最⼩限の監査項⽬をカバー ユーザー・セッション情報(IPアドレス、ユーザー名、プログラム名等)を監査条件にログ出⼒の絞り込み 監査ログはデータベース内の内部表として格納され、SQLクエリーで参照可 SYSユーザー監査、Recovery Manager、Data Pump、SQL*Loader等のログも統合 12c〜20cまでは、従来の標準監査との併⽤可 Oracle Databaseの監査機能 22 CREATE AUDIT POLICY HRPol ACTIONS UPDATE ON HR.EMP, DELETE ON HR.EMP_EXD; AUDIT POLICY HRPol; 例)UPDATEとDELETE⽂に対する監査ポリシー 基本 Copyright © 2023, Oracle and/or its affiliates

Slide 23

Slide 23 text

Unified Auditの定義済みポリシー 23 ポリシー名 ポリシーの内容 デフォルト 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 © 2023, Oracle and/or its affiliates

Slide 24

Slide 24 text

ORA_SECURECONFIGポリシーについて 24 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 主にデータベース管理に関連する操作に対して監査ポリシー 表などのオブジェクトに対する監査設定はされていないので、ユーザー⽤途に応じたDML監査を追加する Copyright © 2023, Oracle and/or its affiliates

Slide 25

Slide 25 text

条件による監査対象の絞り込み Copyright © 2023, Oracle and/or its affiliates 25 • 指定されたユーザー以外のすべてのアクセスを監査 CREATE AUDIT POLICY audPolicy1 ACTIONS UPDATE ON HCM.EMPLOYEES, DELETE ON HCM.EMP_EXTENDED; AUDIT POLICY audPolicy1 BY UserX, UserY; CREATE AUDIT POLICY audPolicy2 ACTIONS ALL ON HCM.EMPLOYEES, ALL ON HCM.EMP_EXTENDED; AUDIT POLICY audPolicy2 EXCEPT UserX, UserY; • 特定のユーザーのUPDATE,DELETE⽂のDMLを監査 • 9時〜17時以外のすべてのアクセスを監査 CREATE AUDIT POLICY audPolicy3 WHEN trunc(to_char(SYSDATE,ʻhh24ʼ)) >17 OR trunc(to_char(SYSDATE,ʻhh24ʼ)) <9 ACTIONS ALL ONLY TOPLEVEL; AUDIT POLICY audPolicy3 ; • DATAPUMPのエクスポートを監査 CREATE AUDIT POLICY audPolicy4 ACTIONS COMPONENT=DATAPUMP EXPORT; AUDIT POLICY audPolicy4 BY SYSTEM;

Slide 26

Slide 26 text

OCI Logging Analytics Unified Auditの定常的なモニタリング 26 機械学習のテクノロジーを活⽤した⾼度なログ分析・サービス基盤 - 200種類以上のログに対応した事前定義済みパーサー - OCIやオンプレミスにある様々なOSやミドルウェアのログに対応 - 未サポートのログにはガイド付きカスタムパーサーで簡単作成 直感的な操作で分析可能できるログ・エクスプローラー ⼤量のログを⾼速にビジュアライズするクラスタ分析 ログ・データの値に応じた⾃動ラベリング 様々な分析軸を保存したダッシュボード ラベルやログ・データに応じたアラート通知 アーカイブ機能によりTBを超えるログ保存のコストを削減 Logging Analytics Logging Compute Instance Service Connector Hub 管理エージェント 連携 Syslog、セキュアログ Windowイベントログ ミドルウェア、アプリケーションログ ネットワーク、データベースログ etc.. Database System 他社クラウド 管理エージェント 連携 管理エージェント 連携 サービス連携 オンプレミス Copyright © 2023, Oracle and/or its affiliates

Slide 27

Slide 27 text

OCI Logging Analytics Unified Auditの定常的なモニタリング 27 データベースの認証や特定の表の アクセスの監視に特化したダッシュボード 異常を検知した際には、電⼦メールや SMSなどで管理者にアラート通知 Copyright © 2023, Oracle and/or its affiliates

Slide 28

Slide 28 text

Oracle Database World Tokyo ご清聴ありがとうございました