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

[DBWT-3] セキュリティ: セルフ・アセスメントから読み解く段階的なデータベース・セキュ...

[DBWT-3] セキュリティ: セルフ・アセスメントから読み解く段階的なデータベース・セキュリティ対策

2023年4月12日 (水)開催、Oracle Database World Tokyo [DBWT] セッション3の資料です。

データベースのセキュリティに求められる対策とは何でしょうか?実際にデータベースのセキュリティ評価を行うアセスメントツールの結果を用いながら、暗号化・アクセス制御・監査の視点から対策できることについて今一度、基本的に立ち戻って解説します。

oracle4engineer

April 19, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Oracle Database World Tokyo ⻄村 克也 プリンシパルクラウドエンジニア, CISSP ⽇本オラクル株式会社 クラウドエンジニアリング統括

    COE本部 セキュリティ&マネジメント・ソリューション部 プリンシパルクラウドエンジニア 2023年4⽉12⽇ セルフ・アセスメントから 読み解く段階的な データベース・セキュリティ対策
  2. 政府機関等の対策基準策定のためのガイドライン (令和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
  3. 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
  4. ユーザー・プロファイルの項⽬をすべてUNLIMITEDにしている 6 ユーザー・プロファイルをデフォルト値から無制限に変更 • パスワードの有効期限, 再利⽤, 再利⽤回数の制限なし, ログイン失敗のロック制限回数なし • パスワードの複雑性チェックはNULL

    安易なパスワードの使⽤やログイン失敗の制限を 指定しないことは、既知のパスワードやブルートフォース などの認証突破のリスクを増⼤させる Copyright © 2023, Oracle and/or its affiliates
  5. ユーザー・プロファイル 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
  6. 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
  7. 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
  8. 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
  9. 表領域の暗号化変換 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
  10. アプリケーション暗号と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
  11. ⾏列レベルでのアクセス制御 アプリケーションを改修することなく、問い合わせたユーザーに応じて厳格なアクセス制御が可能 データベース・ユーザが不正に別のユーザのデータを参照・操作する可能性を排除 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
  12. アプリケーション固有の情報を使ったアクセス制御 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ユーザーは 常に同じ
  13. データベース管理者のアクセス制御 特権ユーザの無制限のアクセスを禁⽌し、ユーザごとのアクセス権限を厳格にする 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
  14. 監査 20 Oracle Databaseの監査設定をデフォルト値から無効 Oracle Database以外の監査製品を使⽤している 監査ログを定期的にチェックやレポート等の監査・監視は ⾏っていない 監査されているということが運⽤担当者に周知されていない DBの監査機能以外の場合、アクセスログが不⼗分な

    ケースがある 定常的なモニタリング運⽤がない場合、機微な情報 にアクセスする際の緊張感の低下が懸念 コンプライアンス要件で監査と監視が求められる Copyright © 2023, Oracle and/or its affiliates
  15. 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
  16. 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
  17. 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
  18. 条件による監査対象の絞り込み 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;
  19. 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