Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
2010年3月10日
株式会社インサイトテクノロジー
エンジニアリング本部
テクノロジーコンサルティング部
松尾 亮
☆おら!オラ!Oracle -どっぷり検証生活-★(オラクルセミナー出張所)
Oracle Database セキュリティここが重要!監査ログ運用
2Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
アジェンダ
1. 背景
2. Oracleの監査機能(Audit Trail)
3. 監査設定時のパフォーマンス検証
3Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
企業に課せられる様々な規制の強まり
個人情報保護法、 ISO2700X (情報セキュリティ)
新会社法
金融商品取引法(J-SOX)
PCI DSS(※Payment Card Industry Data Security Standard) 等々
更なる、内部統制の強化が求められている
企業価値の向上、利害関係者への説明責任
4Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
財務報告と IT 統制の関係(金融商品取引法)
出典:システム管理基準 追補版(財務報告に係るIT統制ガイダンス)
5Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
(参考) 某監査法人の IT 統制監査項目
プログラムとデータのアクセス– アクセス管理
• ID、アクセス権限、パスワード管理
• 丌要IDの有無確認、丌正アクセスの有無確認
– 特権ユーザ
• OS、DB、MW、Networkの特権IDを限定された要因への付不、丌正利用の監視
• APの特権IDを限定された要因への付不、丌正利用の監視
プログラム開発– 開発規定(システム設計、開発、テスト、承認、導入の文書化)
– ジョブ管理、バックアップおよびリカバリ手続
システム運用– 本番環境の障害対策手段
– 障害および対策の履歴管理、報告手続き
– データの直接修正の手続き
プログラム変更– 変更案件の承認、開発、テストおよび結果の承認
– 本番環境への移行
– 設定変更(OS、DB、MW、AP、H/Wの設定規定)
6Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
最近起こった顧客情報流出事件 2009年
顧客情報データベース
SQL
顧客情報
名簿業者へ売却
顧客情報
アクセス権限の所有者
①他従業員のIDとパスワードでアクセス
②顧客情報を抜き出し
CDにコピー
問題点
・アクセス権限の運用
・インシデント発見の遅れ
7Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
データベースセキュリティの主な要素
一般ユーザー
DBサーバー
開発者・管理者(特権ユーザ)
ログ監査アクセスコントロール暗号化ID管理
正当な権限を使用した不正行為
業務権限を超
えた不正操作
通信経路上の
傍受・盗聴
なりすまし
パスワード盗難
想定される脅威
マスターデータ更新/追加/削除
データベース起動/停止
ユーザ作成/削除/権限
通常業務アクセス
8Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
データベース運用の理想
データベース
利用者
(ユーザー)
セキュリティ管理者ユーザーと権限の管理
ログの管理と分析レポート
開発者
アプリケーション管理
業務ユーザー
職務分掌
データベース
管理者
(DBA)
データベース起動停止
バックアップリカバリ
領域管理
チューニング作業
9Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
データベース運用の実態
データベース
管理者
(DBA)
DBに関するセキュリティは、DBA
が兼務。職務分掌できない為、
何でもやれてしまう。
特権ユーザを統制できない!
データベース
利用者
(ユーザー)
セキュリティ管理者
職務分掌
ユーザーと権限の管理
ログの管理と分析レポート
開発者
アプリケーション管理
業務ユーザー
10Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
職務分掌実現の為の課題
データベースに関するセキュリティ担当者は、DBAが兼務する場合が多い。
DBAに不える権限も最小限にするべきだが、障害の対応として、緊急でデータベース再起動、リカバリ等の作業が必要になる為、現実的でない。
↔人員も限られる為、権限、作業の切り分けが難しい
11Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
特権ユーザー(DBA)を統制する方法
職務分掌の代替案
担当者を分ける
最小作業の実施最小権限の原則
統制に丌備がある、
又は、統制が効かないケースを想定し、
“操作ログ”を取得する
12Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
1. 背景
2. Oracleの監査機能(Audit Trail)
3. 監査設定時のパフォーマンス検証
13Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
Oracle監査機能
必頇監査 DBA監査 標準監査 ファイングレイン監査
対象Edition ALL ALL ALL Enterprise Edition
対象Version - 9i ~ 11g 8i ~ 11g 9i ~ 11g
監査対象 ・インスタンス起動/停止
・管理者権限による接続
SYSDBA、SYSOPER権限で接続しているユーザーが発行したSQL文
・ログイン/ログアウト
・DDL文の操作
・SELECT、DML文でのオブジェクト操作
特定データ(列名、条件指定)へのSELECT文。
※10gからはDMLへの設定も可能。
監査出力先 OSファイル(Winではイベントビューア)
・OSファイル(Winではイベントビューア)
・Syslog(10.2~)
・XMLfile(10.2~)
・DBA_AUDIT_TRAIL
・OSファイル(Winではイベントビューア)
・Syslog(10.2~)
・XMLfile(10.2~)
・DBA_FGA_AUDIT_TRAIL
・ユーザー定義表
・メール送信も可
設定方法 デフォルト 初期化パラメータ
audit_sys_operations
を true に設定
初期化パラメータ
audit_trail を none
以外に設定
dbms_fga パッケージを
利用して設定
その他、DMLトリガーやイベントトリガーを使用した監査や、
LogMinerを利用した変更履歴など事後監査として使用可能。
14Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
必頇監査
1. OS監査(必頇。解除丌可。)– 特権ユーザ(SYSDBA、SYSOPER権限)での接続
– インスタンスの起動・停止
2. リスナーログ– リスナーへの接続ログ
– Oracle*Netのエラーも記録される
– “lsnrctl set log_status off” コマンドにより出力停止可能
デフォルトで取得される必要最低限の監査
15Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
OS監査の記録例
Thu Feb 11 00:10:19 2010LENGTH : '137'ACTION :[7] 'CONNECT'DATABASE USER:[1] '/'PRIVILEGE :[6] 'SYSDBA'CLIENT USER:[6] 'oracle'CLIENT TERMINAL:[5] 'pts/3'STATUS:[1] '0'
→ タイムスタンプ
→ アクション (一覧は、audit_actions ビュー参照)→ DBユーザ→ 権限 (一覧は、system_privilege_map ビュー参照)→ OSユーザ→ 端末→ 終了コード (エラー終了の場合、ORA-XXX の番号)
初期化パラメータ audit_trail 値 出力先
os、db、db,extended、none UNIX: audit_file_dest 初期化パラメータのパス/ora_<pid>.aud
Windows: イベント・ビューア
xml、xml,extended
※xml 出力は10gR2~
audit_file_dest 初期化パラメータのパス/ora_<pid>.xml
※Windowsの場合、イベント・ビューアにも記録される
監査ファイルの出力先
16Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
リスナーログの記録例
04-MAR-2010 14:35:31 * (CONNECT_DATA=(SERVICE_NAME=orcl)(SERVER=SHARED)(CID=(PROGRAM=sqlplus)(HOST=insight01)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.100.200)(PORT=61291)) * establish * orcl * 0
リスナーログの出力先
[デフォルト]~10g : $ORACLE_HOME/network/log/<リスナー名>.log11g~ : $ORACLE_BASE/diag/tnslsnr/<ホスト名>/<リスナー名>
/trace/<リスナー名>.log
※listener.ora の LOG_DIRECTORY_<リスナー名> で出力先を変更可能。
リスナー接続時のタイムスタンプ、接続元のクライアント情報(プログラム名、ホスト名、OSユーザ名)、終了コード等が記録される。
17Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
必頇監査まとめ
必頇監査で分かることは・・・
「特権ユーザが○時にインスタンスを起動/停止した。」
「特権ユーザが○時に接続した。」
「クライアントの△△△というプログラムから○時にアクセス要求があった」
→ 起動/停止以外で何をしたのか分からない。
必頇監査で取得できる情報では、監査目的には丌十分!
18Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
DBA監査
特権ユーザ(SYSDBA、SYSOPER権限での接続)で行われた
全ての操作を記録
Thu Mar 4 15:00:51 2010LENGTH : '161'ACTION :[30] 'select count(*) from v$session'DATABASE USER:[1] '/'PRIVILEGE :[6] 'SYSDBA'CLIENT USER:[6] 'oracle'CLIENT TERMINAL:[5] 'pts/1'STATUS:[1] '0'
Thu Mar 4 15:01:03 2010LENGTH : '155'ACTION :[24] 'select sysdate from dual'DATABASE USER:[1] '/'PRIVILEGE :[6] 'SYSDBA'CLIENT USER:[6] 'oracle'CLIENT TERMINAL:[5] 'pts/1'STATUS:[1] '0'
SQL> select count(*) from v$session;
COUNT(*)------------------------------18
SQL> select sysdate from dual;
SYSDATE---------04-MAR-10
→ 他のユーザの記録はできない為、監査目的には丌十分!
19Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
DBA監査の設定方法
audit_sys_operations パラメータを true に設定する。※インスタンスの再起動が必要
SQL> alter system set audit_sys_perations=true scope=spfile;SQL> shutdown immediateSQL> startup
初期化パラメータ audit_trail 値 出力先
os、db、db,extended、none UNIX: audit_file_dest 初期化パラメータのパス/ora_<pid>.aud
Windows: イベント・ビューア
xml、xml,extended
※xml 出力は10gR2~
audit_file_dest 初期化パラメータのパス/ora_<pid>.xml
※Windowsの場合、イベント・ビューアにも記録される
監査ファイルの出力先(前出の必頇監査と同じ)
20Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
XML監査ログファイルの参照方法
v$xml_audit_trail ビューを利用して SQL 検索が可能。
SQL> select extended_timestamp,sql_text from v$xml_audit_trail;
EXTENDED_TIMESTAMP SQL_TEXT--------------------------------------- -------------------------04-MAR-10 03.13.16.325969 PM +09:00 CONNECT04-MAR-10 03.13.19.224400 PM +09:00 ALTER DATABASE OPEN04-MAR-10 03.13.20.285908 PM +09:00 SELECT SYSDATE FROM DUAL
::
SQL> show parameter audit_file_dest
NAME TYPE VALUE---------------- -------- -----------------------------------audit_file_dest string /opt/app/oracle/admin/orcl/adump
$ pwd/opt/app/oracle/admin/orcl/adump$ ls -lrt-rw-r--r-- 1 oracle oinstall 1660 3月 4 15:13 ora_10669.xml-rw-r--r-- 1 oracle oinstall 3650 3月 4 15:40 ora_10687.xml-rw-r--r-- 1 oracle oinstall 8162 3月 4 16:02 ora_10715.xml
v$xml_audit_trail
物理XMLファイルを検索
21Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
標準監査
1. 権限監査特定の権限(CREATE TABLE、SELECT ANY TABLE等)での操作を監査する。
→ 設定した権限で何が監査できるか?という把握が煩雑。
例えば、 SELECT ANY TABLE 権限を監査した場合、自分の表に対する
SELECT文は監査されない等の仕様を把握して設定する必要がある。
2. 文監査特定のSQL文(CREATE、TRUNCATE、SELECT等)を利用した操作を監査する。
→ SQL実行単位で取得され、ユーザ単位で取得可否の設定が可能。
しかし、オブジェクトの絞込みはできない。
3. オブジェクト監査特定のオブジェクトに対する操作(SCOTT.EMP表に対するSELECT等)を監査する。
→ オブジェクト単位、且つ、SQL文単位で取得できる。
しかし、ユーザ単位での絞り込みができない。
22Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
標準監査の設定方法①
Step1. audit_trail パラメータを none 以外に設定する。※インスタンスの再起動が必要
SQL> alter system set audit_trail=db,extended scope=spfile;SQL> shutdown immediateSQL> startup
※extended (10g~) を指定すると、SQL文の取得が可能になる。
初期化パラメータ audit_trail 値 出力先
os UNIX: audit_file_dest 初期化パラメータのパス/ora_<pid>.aud
Windows: イベント・ビューア
xml、xml,extended
※xml 出力は10gR2~
audit_file_dest 初期化パラメータのパス/ora_<pid>.xml
※Windowsの場合、イベント・ビューアにも記録される
db、db,extended sys.aud$ 表 (dba_aydit_trail ビューで参照可) に記録される。
監査ファイルの出力先
23Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
標準監査の設定方法②
Step2. audit 文を実行する。
SQL> audit select by scott by session;
SQL> audit select on scott.emp by access;
例2. 特定のオブジェクトに対する操作を監査
「scott.emp 表に対する select 文 を監査したい・・・」 ↔ オブジェクト監査
例1. 特定のユーザによる操作を監査
「scott が実行した select 文 を監査したい・・・」 ↔ 文監査
SQL> audit session;
例3. ログイン/ログアウトに関する監査
「全てのユーザのログイン/ログアウト情報を監査したい・・・」
SQL> audit session whenever not successful;
「ログイン失敗時(丌正アクセスの試行)のみ監査したい・・・」
24Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
by access と by session
SQL> audit select on scott.emp by session;SQL> conn scott/tigerSQL> select count(*) from emp;SQL> select * from emp where empno = 1000;SQL> select * from emp where empno = 9999;SQL> select timestamp,sql_text from dba_audit_trail;
TIMESTAMP SQL_TEXT------------------- ------------------------------------------------------------2010/03/04 21:46:37 select count(*) from emp
SQL> audit select on scott.emp by access;SQL> conn scott/tigerSQL> select count(*) from emp;SQL> select * from emp where empno = 1000;SQL> select * from emp where empno = 9999;SQL> select timestamp,sql_text from dba_audit_trail;
TIMESTAMP SQL_TEXT------------------- ------------------------------------------------------------2010/03/04 21:45:42 select count(*) from emp2010/03/04 21:45:54 select * from emp where empno = 10002010/03/04 21:46:00 select * from emp where empno = 9999
セッション確立後、対象表への
初回アクセスのみ記録される。
対象表に対する全てのアクセスが
記録される。
情報丌足
25Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
dba_audit_trail ビューで参照可能な情報(一部)
OS_USERNAME 操作が監査対象となったユーザーのオペレーティング・システムでのログイン・ユーザー名
USERNAME 操作が監査対象となったユーザーの名前(ID番号ではない)USERHOST クライアントのホスト・マシンの名前TERMINAL ユーザーの端末の識別子TIMESTAMP ローカル・データベースのセッション・タイム・ゾーンでの監査証跡エントリの
作成日時(AUDIT SESSIONで作成されたエントリに対するユーザー・ログインの日時)OWNER 操作の影響を受けたオブジェクトの作成者OBJ_NAME 操作の影響を受けたオブジェクトの名前ACTION 操作の数値による型コード。対応する操作タイプ名はACTION_NAME列に含まれる。ACTION_NAME ACTION列の数値コードに対応する操作タイプの名前NEW_OWNER NEW_NAME列に指定されたオブジェクトの所有者NEW_NAME RENAME後のオブジェクトの新規名、または基礎となっているオブジェクトの名前OBJ_PRIVILEGE GRANT文またはREVOKE文によって付与または取り消されたオブジェクト権限SYS_PRIVILEGE GRANT文またはREVOKE文によって付与または取り消されたシステム権限ADMIN_OPTION ロールまたはシステム権限がADMIN OPTION付きで付与されたかどうかGRANTEE GRANT文またはREVOKE文で指定された権限受領者の名前AUDIT_OPTION AUDIT文で設定された監査オプション:::
他、マニュアルを参照(以下は、11gR2)http://download.oracle.com/docs/cd/E16338_01/server.112/b56311/statviews_3080.htm#i1619732
program 列がない・・・原因特定が困難なケースがある。
26Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
ファイングレイン監査(FGA)
9i 以降で利用可能な FGA では、標準監査よりもきめ細かな
監査設定(列、条件の指定)が可能。
但し、Enterprise Edition でないと利用丌可。
27Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
監査ログのメンテナンス(OS、XML)
初期化パラメータ audit_file_dest に作成された監査ファイルのメンテナンスを行う必要がある。(ファイルの移動、削除、圧縮等)
インスタンス稼動中(サーバプロセスの起動中)にファイルの移動、削除等を行った場合、それ以降の監査ログが出力されない、v$xml_audit_trail ビューから参照できない等の問題が発生する場合があるので注意!
(参考) KROWN#131082 「XML 監査ファイルのメンテナンスについて」
s001_17251.xml
ora_16150.xml専用サーバ
共有サーバs001
PID=16150
PID=17251監査ログ
記録
$ rm s001_17251.xml$ mv ora_16150.xml /tmp/.
プロセス起動中の実施NG
プロセス起動中は同じファイルに記録し続ける
28Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
監査ログのメンテナンス(DB)
sys.aud$ 表に蓄積されたデータのメンテナンスを行う必要がある。(別表へのコピー後にdelete、export後にdelete等)
例) dba_audit_trail と同一構成の別表を作成しておき、insert 後に delete。
SQL> create table aud_arch tablespace users as select * from dba_audit_trail;SQL> insert /*+ append */ into aud_arch select * from dba_audit_trail
2 where timestamp < to_date('20100301','yyyymmdd');SQL> commit;SQL> delete from sys.aud$ where ntimestamp# < to_timestamp_tz('20100301','YYYYMMDD');SQL> commit;
system表領域 users表領域
sys.aud$aud_arch
view
dba_audit_trail insert
delete
※11gR2 から DBMS_AUDIT_MGMT パッケージを利用したメンテナンス機能(sys.aud$ 表の表領域移動、監査ログ削除ジョブ等)が提供されている。
(参考) KROWN#140400 「DBMS_AUDIT_MGMT を使用した監査証跡のメンテナンス 」
29Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
標準監査まとめ
標準監査では、SQL文レベルでの監査が可能(10g~)であり、
監査に必要な情報は概ね取得できるが、監査取得対象の絞り
込みが難しい。
→ 膨大な監査ログが生成され、ログ生成の負荷が高くなる。
監査対象を極力絞り込む為、早めの設計段階から検討が必要。
- アプリケーション実行ユーザのパスワードを強固にし、文監査でその他のユーザを
監査する。適切なスキーマ設計を行う。
(大量にSQLが実行されるアプリケーション実行ユーザの監査抑止)
- 監査対象を特定のオブジェクトに限定できるよう論理設計する。
etc…
また、監査ログは蓄積し参照することができるが、監視や分析、
レポーティング等の機能はない。
30Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
1. 背景
2. Oracleの監査機能(Audit Trail)
3. 監査設定時のパフォーマンス検証
31Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
検証条件
・ Oracle 10gR2 on RHEL5.4・ audit_trail = db,extended・ 10 テーブル (aud_test1 ~ aud_test10) に対する select 文を繰り返し実行。(以下の PL/SQL を200セッションから実行)
declarev_data varchar2(10);v_col2 varchar2(10);
beginfor cnt in 1..500loopv_data := round(dbms_random.value(1,1000000),0);select col2 into v_col2 from aud_test1 where col1 = v_data;select col2 into v_col2 from aud_test2 where col1 = v_data;
::
select col2 into v_col2 from aud_test10 where col1 = v_data;if (mod(cnt,5) = 0) then
dbms_lock.sleep(1);end if;
end loop;end;/
・ 1テーブルずつ audit 設定を追加し、それぞれ測定。
SQL> audit select on aud_test1 by access;
32Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
検証結果(CPU利用率)①
0102030405060708090100
10:05:00
10:05:10
10:05:20
10:05:30
10:05:40
10:05:50
10:06:00
10:06:10
10:06:20
10:06:30
10:06:40
10:06:50
10:07:00
10:07:10
10:07:20
10:07:30
10:07:40
10:07:50
10:08:00
10:08:10
10:08:20
us
wa
sy
0102030405060708090100
10:10:00
10:10:10
10:10:20
10:10:30
10:10:40
10:10:50
10:11:00
10:11:10
10:11:20
10:11:30
10:11:40
10:11:50
10:12:00
10:12:10
10:12:20
10:12:30
10:12:40
10:12:50
10:13:00
10:13:10
10:13:20
us
wa
sy
0102030405060708090100
10:00:05
10:00:15
10:00:25
10:00:35
10:00:45
10:00:55
10:01:05
10:01:15
10:01:25
10:01:35
10:01:45
10:01:55
10:02:05
10:02:15
10:02:25
10:02:35
10:02:45
10:02:55
10:03:05
10:03:15
10:03:25
us
wa
sy
0102030405060708090100
10:15:00
10:15:10
10:15:20
10:15:30
10:15:40
10:15:50
10:16:00
10:16:10
10:16:20
10:16:30
10:16:40
10:16:50
10:17:00
10:17:10
10:17:20
10:17:30
10:17:40
10:17:50
10:18:00
10:18:10
10:18:20
us
wa
sy
0102030405060708090100
10:20:00
10:20:10
10:20:20
10:20:30
10:20:40
10:20:50
10:21:00
10:21:10
10:21:20
10:21:30
10:21:40
10:21:50
10:22:00
10:22:10
10:22:20
10:22:30
10:22:40
10:22:50
10:23:00
10:23:10
10:23:20
us
wa
sy
0102030405060708090100
10:25:00
10:25:10
10:25:20
10:25:30
10:25:40
10:25:50
10:26:00
10:26:10
10:26:20
10:26:30
10:26:40
10:26:50
10:27:00
10:27:10
10:27:20
10:27:30
10:27:40
10:27:50
10:28:00
10:28:10
10:28:20
us
wa
sy
NoAudit
Audit Tab=1/10
Audit Tab=2/10
Audit Tab=4/10
Audit Tab=5/10
Audit Tab=3/10
33Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
0102030405060708090100
10:30:00
10:30:10
10:30:20
10:30:30
10:30:40
10:30:50
10:31:00
10:31:10
10:31:20
10:31:30
10:31:40
10:31:50
10:32:00
10:32:10
10:32:20
10:32:30
10:32:40
10:32:50
10:33:00
10:33:10
10:33:20
us
wa
sy
0102030405060708090100
10:35:00
10:35:10
10:35:20
10:35:30
10:35:40
10:35:50
10:36:00
10:36:10
10:36:20
10:36:30
10:36:40
10:36:50
10:37:00
10:37:10
10:37:20
10:37:30
10:37:40
10:37:50
10:38:00
10:38:10
10:38:20
us
wa
sy
0102030405060708090100
10:40:00
10:40:10
10:40:20
10:40:30
10:40:40
10:40:50
10:41:00
10:41:10
10:41:20
10:41:30
10:41:40
10:41:50
10:42:00
10:42:10
10:42:20
10:42:30
10:42:40
10:42:50
10:43:00
10:43:10
10:43:20
us
wa
sy
0102030405060708090100
10:45:00
10:45:10
10:45:20
10:45:30
10:45:40
10:45:50
10:46:00
10:46:10
10:46:20
10:46:30
10:46:40
10:46:50
10:47:00
10:47:10
10:47:20
10:47:30
10:47:40
10:47:50
10:48:00
10:48:10
10:48:20
us
wa
sy
0102030405060708090100
10:50:00
10:50:10
10:50:20
10:50:30
10:50:40
10:50:50
10:51:00
10:51:10
10:51:20
10:51:30
10:51:40
10:51:50
10:52:00
10:52:10
10:52:20
10:52:30
10:52:40
10:52:50
10:53:00
10:53:10
10:53:20
us
wa
sy
検証結果(CPU利用率)②
Audit Tab=7/10
Audit Tab=8/10
Audit Tab=10/10
Audit Tab=9/10Audit Tab=6/10
監査対象の増加に比例してCPU利用率が増加!
34Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
0102030405060708090100
10:50:00
10:50:10
10:50:20
10:50:30
10:50:40
10:50:50
10:51:00
10:51:10
10:51:20
10:51:30
10:51:40
10:51:50
10:52:00
10:52:10
10:52:20
10:52:30
10:52:40
10:52:50
10:53:00
10:53:10
10:53:20
us
wa
sy
0102030405060708090100
11:00:00
11:00:10
11:00:20
11:00:30
11:00:40
11:00:50
11:01:00
11:01:10
11:01:20
11:01:30
11:01:40
11:01:50
11:02:00
11:02:10
11:02:20
11:02:30
11:02:40
11:02:50
11:03:00
11:03:10
11:03:20
us
wa
sy
検証結果(XMLの場合)
Audit Tab=10/10
Audit Tab=10/10(xml,extended)
0102030405060708090100
10:00:05
10:00:15
10:00:25
10:00:35
10:00:45
10:00:55
10:01:05
10:01:15
10:01:25
10:01:35
10:01:45
10:01:55
10:02:05
10:02:15
10:02:25
10:02:35
10:02:45
10:02:55
10:03:05
10:03:15
10:03:25
us
wa
sy
NoAudit
SQL> set timing onSQL> select count(*) from V$XML_AUDIT_TRAIL;
COUNT(*)----------
1050000
Elapsed: 00:01:22.85
SQL> select count(*) from dba_audit_trail;
COUNT(*)----------
1050000
Elapsed: 00:00:02.99
XMLの方がDBより圧倒的に低負荷!
v$xml_audit_trail の検索は高負荷・・・
↓
35Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
XML監査ログファイルでの運用案
検証DB本番DB
SQL> select *from v$xml_audit_trail;
本番 DB の XML 監査ログファイルと adx_<SID>.txt を転送し、監査ログの参照、分析等を別環境(検証DB等)で行う。
※ディレクトリ構成、インスタンス名が異なる場合、adx_<SID>.txt の編集が必要。
adx_<SID>.txt の中身(例)
/oracle/admin/orcl/adumps001_17251.xml/oracle/admin/orcl/adumpora_16150.xml
:
・・・・・・・・・・・・・・・・・・・・
adx_<SID>.txt
XML監査ログ
audit
・・・・・・・・・・・・・・・・・・・・
adx_<SID>.txt
XML監査ログ
マッチング
36Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
監査対象が多くなるにつれ、監査ログ生成の負荷が高くなる。
特に同時に多数の SQL が実行される OLTP 系システムでは、
監査対象を絞り込まないとパフォーマンス遅延に繋がる可能性
が考えられる。
監査ログを XML ファイルに取得することで、リソース消費が抑え
られるが、プロセス起動中に監査ログの移動、削除が行えない等
の制限がある。
パフォーマンス検証まとめ
37Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
Oracle の監査機能で “できること”、“できないこと” (version に
よっても異なる) を把握し、監査対象を極力絞り込めるよう、早い
設計段階から検討しましょう!
システムパフォーマンスへの影響を考慮して、十分な性能テストを
実施しましょう!
システム監査ログのメンテナンス運用、活用方法を十分に考慮し
ましょう!
監査ログの監視、分析、レポーティング等の機能はない為、仕組み
を構築する必要があります。
最後に・・・
38Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
インサイトテクノロジーのご紹介
• 設立:1995年7月7日
• 資本金:1億円(2009年4月)
• http://www.insight-tec.com
• 役員
– 代表取締役 石井 洋一
– 取締役 石川 雅也
– 取締役 下山 勝義
– 取締役 岡崎 太輔
• 所在地
– 本社:東京都渋谷区恵比寿1-19-19
ビジネスタワー 5F
TEL 03-5745-1450
• 事業内容
– 製品開発 / 販売
– データベースコンサルティング
– SCMコンサルティング
Copyright © 2009 Insight Technology, Inc. All Rights Reserved.
39Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
製品のご紹介
データベース監査ツール
• データベースログ管理に必要なすべてを提供
するツール
• 300社、1,800ライセンスを超える販売実績
でJ-SOXおよび情報漏洩対策ツールのシェ
アNo.1
• 大規模顧客、大規模システムへの導入に強
み
• 対応データベース
Oracle Database EE/SE
Microsoft SQL Server(2000_32bit.2005_32bit)
Fujitsu Symfoware Server
パフォーマンス管理ツール
• パフォーマンス管理、パフォーマンスチューニ
ングを実現するツール
• 実績
1995年の販売以来、1,000社、8,000ライ
センスを超える販売実績。オラクルデータ
ベースの6本に1本の割合で導入されるパ
フォーマンスツールのデファクトスタンダード
• 対応データベース
Oracle Database EE/SE/SE1
※オラクルデータベースの6本に1本という数字は、特定パートナー様からの報告内容より引用しております。
Copyright © 2009 Insight Technology, Inc. All Rights Reserved.
40Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
データベース監査コンサルティングサービス
Copyright © 2009 Insight Technology, Inc. All Rights Reserved.
・特権ユーザによる操作の監視を監査人から指摘されている。
・共有ユーザの使用を監査人から指摘されている。
・データベースへのアクセス状況を把握できていない。
・Oracle監査機能を実装しているが、監査ログの活用方法が分からない。
・ソフトウェア資産を増やさずに、データベースを監査したい。
≫現状のデータベースへのアクセス状況から、Oracleユーザ、権限の見直し≫Oracle標準の監査機能の実装支援≫記録した監査ログの活用方法として、レポートの設計支援≫記録した監査ログのメンテナンスとしてサンプルSQLを提供≫アウトプットイメージ
・Oracle標準の監査機能の実装手順書・Oracleユーザの設計書・監査ログメンテナンス処理の設計書・監査ログを活用するレポート設計書
インサイトテクノロジーが、データベースセキュリティ、データベース監査の現場で蓄積したナレッジを生かし、Oracle標準の監査機能を使用したデータベース監査運用をご支援するサービスです。
コンプライアンスの課題は・・・
・監査要件の予算確保が難しい。
サービス内容 Oracle標準の監査機能を使用したアクセスログ取得、運用の仕組みを構築支援
41Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
おら!オラ!Oracle どっぷり検証生活
Oracleを徹底検証した結果を、隔週水曜日に配信しています。
Copyright © 2009 Insight Technology, Inc. All Rights Reserved.
[本日のセミナーネタの関連メルマガ]
<Audit Trail についての検証 >http://www.insight-tec.com/mailmagazine/ora3/vol163.html
<RAC に Audit を実装する>http://www.insight-tec.com/mailmagazine/ora3/vol313.html
ご登録はこちらから(無料!)http://www.insight-tec.com/mailmagazine/mailmagazine_index.html
42Copyright © 2010 Insight Technology, Inc. All Rights Reserved.
無断転載を禁ず
この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。株式会社インサイトテクノロジーは本書の内容に関していかなる保証もしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。本書で使用している製品やサービス名の名称は、各社の商標または登録商標です。
Copyright © 2009 Insight Technology, Inc. All Rights Reserved.