oracle direct iseminar = 1234 ename = tyamada dept = sales set_empset_emp pl/sql パッケージ...

44
とっても簡単!! セキュアなデータベース環境の構築 Oracle Direct iSeminar 日本オラクル株式会社

Upload: vuongdien

Post on 02-Apr-2018

219 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

とっても簡単!! セキュアなデータベース環境の構築

Oracle Direct iSeminar

日本オラクル株式会社

Page 2: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.2

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

Oracle、PeopleSoft、JD Edwards、及びSiebelは、米国オラクル・コーポレーション及びその子会社、関連会社の登

録商標です。その他の名称はそれぞれの会社の商標の可能性があります。

Page 3: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.3

止まらない、情報漏洩事件の数々…

システム管理者による不正アクセス、情報の持ち出し

元社員による個人情報の持ち出し・漏えい

外部からの不正アクセスにより個人情報が流出

顧客情報を保存していた会社のノートパソコンが盗難された

顧客情報を大量に記録したハードディスクを紛失

Page 4: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.4

SOX法関連 ITインフラ欠陥 トップ10

1. 特定できない、もしくは解決できてない職務の分掌

2. 保護されていないOS上で会計のアプリケーションやポータルが動作している。

3. 会計アプリケーションを支えているデータベースが保護されていない。

4. 開発者が実システムにアクセスする。

5. 実システムにおいて不要な過度のアクセス権がある。

6. アカウントの付与・削除のプロセスが不完全である。

7. G/L (総勘定元帳) アプリケーション内での記帳期間が制限されていない。

8. プログラムやテーブル、インターフェースなどがセキュアでない。

9. マニュアルのプロセスが存在しない、または文書化されていない。

10. システムに関連する文書と実際のプロセスの間に不整合がある。

報告された欠陥の70%が役に立たない Identity & Access管理に直接的に関係があった – Ernst &Young LLP

Page 5: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.5

サーバサイドセキュリティの重要性

企業情報の重要度

•Winny対策

•アンチウイルスソフトの導入

•Thin Clientの導入

•HDD/外部メモリデバイスの撤去

•指紋認証など生体認証の導入

•入館証の導入、監視カメラ

クライアントサイドサーバサイド

根本からの本格的なセキュリティ対策が必要

“サーバサイド・セキュリティ”

出口で止めるセキュリティ

大元を正規化するセキュリティ

高い

Page 6: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.6

Agenda

Oracleで実現するセキュリティについて• アクセス制御• 暗号化• 監査

Page 7: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.7

Oracle Security Solution

暗号化

監査

ユーザー認証

アクセス制御

Fine GrainedAudit

VirtualPrivate

Database

IdentitySuite

派遣社員

新入社員

営業部長

管理者

TransparentData

Encryption

Database Vault

DBA

Page 8: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.8

アクセス制御- データベースのアクセス制御 -

オブジェクト権限による制御

・該当の表自体にアクセスさせない

オブジェクト権限による制御

・該当の表自体にアクセスさせない

GRANT

プログラムロジックによる制御

・SQL*Plus等で回避できてしまう

・開発工数の肥大化

プログラムロジックによる制御

・SQL*Plus等で回避できてしまう

・開発工数の肥大化

VIEWによる制御

・管理をしっかりする

必要がある

VIEWによる制御

・管理をしっかりする

必要がある

アクセス制御ポリシーよる制御

・アプリケーションと制御の分離

・ポリシー回避が困難

アクセス制御ポリシーよる制御

・アプリケーションと制御の分離

・ポリシー回避が困難

Page 9: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.9

アクセス制御- Virtual Private Database -

DEPT_A

DEPT_Bアクセス制御ポリシーに基くSQLリライト

SELECT * FROM table1WHERE deptno=10

SELECT * FROM table1

SELECT * FROM table1WHERE deptno=20

SELECT * FROM table1

user1

user2

table1

•ユーザーごとに異なるアクセス制御ポリシーの適用•アクセス制御ポリシーに基いて暗黙的にSQLをリライト•アプリケーション・ロジックのVIEWと、アクセス制御ポリシーの分離

Page 10: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.10

アクセス制御- Virtual Private Database -

OrderOrder表へのアクセス制御ポリシー表へのアクセス制御ポリシー

列制限 : customer, item, quantity行制限 : customer = <USER>

アプリケーションアプリケーション

データベースデータベース

接続プーリング

SELECT * FROM order

Suzukiさんが問い合わせた場合

Tanakaさんが問い合わせた場合

アプリケーションコンテキスト

USER : Suzuki

Oracleによって書き換えられたSQL文

SELECT customer, item, quantityFROM orderWHERE customer = ‘Suzuki’

アプリケーションコンテキスト

USER : Tanaka

Oracleによって書き換えられたSQL文

SELECT customer, item, quantityFROM orderWHERE customer = ‘Tanaka’

Page 11: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.11

アクセス制御- Database Vault -

~ 今までの Oracle Database ~データベース管理者に管理権限が一極集中

データベースデータベース管理者管理者

データベースデータベース管理者管理者

アカウントアカウント管理者管理者

アプリケーションアプリケーション管理者管理者

データベースの起動/停止 など※実データへのアクセス不可!

ユーザの作成・変更、プロファイルの作成・変更、接続の許可※実データへのアクセス不可!

アプリケーションに紐付く実データの管理、アクセス権限の付与

管理権限の一極集中によるリスクを回避し、管理権限の一極集中によるリスクを回避し、各役割に応じた権限のみを持つ各役割に応じた権限のみを持つ 複数の複数の

管理者によって、データベースを安全に管理管理者によって、データベースを安全に管理

データベースの起動停止から、全スキーマ・オブジェクトの操作やセキュリティの設定まで、あらゆるシステム権限の実行が可能

データベース管理者自身による、不正なデータの操作や情報漏えいのリスク!

データベース管理

セキュリティ・ポリシー管理

アプリケーション・データの管理

データベース管理

ユーザー・アカウント管理

アプリケーション・データの管理

ユーザー・アカウント管理

セキュリティセキュリティ管理者管理者

セキュリティポリシーに基くアクセス制御の設定、管理※実データへのアクセス不可!

セキュリティ・ポリシー管理

~ Oracle Database Vault ~複数の管理者に管理権限を分割、分担

Page 12: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.12

Database Vault の機能

• Command Rule (コマンド・ルール)

– 各SQLコマンドの実行をアクセス制御条件に基いて制限するためのもの

– 紐付くアクセス制御条件を満たす場合にのみ、その SQLコマンドを発行する許可が与えられる※注:各コマンドの実行権限は別途必要

許許可可

禁禁止止

False

• Realm (レルム)

– スキーマあるいは一部オブジェクトのセットを保護・管理するための論理的な単位

– レルム所有者はDBAの権限と役割を持ち、システム権限の行使やオブジェクト権限の付与等を行うことが可能。ただしその権限はレルム内に閉じるため、他レルムに対する操作は実行不可能

【例】CREATE TABLE emp….HRシステム

レルム

データディクショナリ

レルム

HRシステム

管理者

データベース管理者

アクセス制御条件アクセス制御条件OSユーザ

ホストクライアントのIP

時間帯曜日

・・・etc

Page 13: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.13

D E M O N S T R A T I O N

Database VaultDBA制限

Page 14: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.14

• VPD = アプリケーション・コンテキスト + FGAC– アプリケーション・コンテキスト

• ユーザー識別情報を保持するしくみ

– ファイングレイン・アクセス・コントロール(FGAC)

• WHERE句を生成/付加するしくみ

TYAMADA部門番号:10

ETANAKA部門番号:20

SELECT *

FROM

ORDERS;

SELECT *

FROM

ORDERS;

where dept_id=10where dept_id=10

where dept_id=20where dept_id=20

アクセス制御- Virtual Private Database -

Page 15: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.15

• ユーザー識別情報を保持するセッション情報

• 属性に値を設定するためのPL/SQLパッケージの作成が必要– このパッケージからのみ値の設定が可能(改ざん防止)

EMP_INFO

EMPNO = 1234

ENAME = TYAMADA

DEPT = SALES

SET_EMPSET_EMP

PL/SQLパッケージ

アプリケーション・コンテキスト

コンテキスト名

属性名 値

値の設定

アクセス制御- Virtual Private Database /アプリケーション・コンテキスト-

Page 16: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.16

• システムで作成済みの読取り専用コンテキスト

• ログイン時に、属性がセッション情報を元に自動的に設定される

• SYS_CONTEXT('USERENV','属性名') で参照可能

USERENV

SESSION_USER = TYAMADA

CLIENT_IP = 192.168.x.x

CLIENT_IDENTIFIER = 基本的なセッション情報が自動的に設定される

アクセス制御- Virtual Private Database /アプリケーション・コンテキスト-

Page 17: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.17

FGACポリシーFGACポリシー

• 表に付加されたFGACポリシーに基づいて、SQL文にWHERE句を生成/付加するしくみ

• FGACポリシーに、WHERE句の生成ロジックをポリシー関数(PL/SQLファンクション)として作成しておく。

EMP_INFO

EMPNO = 1234ENAME = TYAMADADEPT = SALES

SELECT *FROM ORDERS;

SELECT *FROM ORDERS;

ポリシー

関数

ORDERS表

SELECT *FROM ORDERSWHERE DEPT_ID=20;

SELECT *FROM ORDERSWHERE DEPT_ID=20DEPT_ID=20;属性の参照

SQL発行 WHERE句

を付加

実行

アクセス制御- Virtual Private Database / ファイングレイン・アクセス・コントロール-

Page 18: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.18

• アプリケーション・コンテキスト

– CONTEXTオブジェクト

– 属性に値を設定するPL/SQLパッケージ

• FGAC

– FGACポリシー

– ポリシー関数(WHERE句を生成するPL/SQLファンクション)

• SQLインタフェースまたはPolicy Manager(GUI)で作成

Oracle Policy Manager

アクセス制御- Virtual Private Database -

Page 19: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.19

1. コンテキストを設定するPL/SQLパッケージの作成

2. アプリケーション・コンテキストの作成

CREATE PACKAGE BODY oe_context ISPROCEDURE set_cust_idIS

v_cust_id NUMBER;BEGIN

SELECT customer_id INTO v_cust_id FROM oe.customersWHERE cust_first_name || '_' || cust_last_name =SYS_CONTEXT('USERENV', 'SESSION_USER');

DBMS_SESSION.SET_CONTEXT('oe', 'cust_id', v_cust_id);EXCEPTION

WHEN no_data_found THEN NULL;END;

END;/

CREATE PACKAGE BODY oe_context ISPROCEDURE set_cust_idIS

v_cust_id NUMBER;BEGIN

SELECT customer_id INTO v_cust_id FROM oe.customersWHERE cust_first_name || '_' || cust_last_name =SYS_CONTEXT('USERENV', 'SESSION_USER');

DBMS_SESSION.SET_CONTEXT('oe', 'cust_id', v_cust_id);EXCEPTION

WHEN no_data_found THEN NULL;END;

END;/

CREATE CONTEXT oe USING oe_context;CREATE CONTEXT oe USING oe_context;

パッケージの関連付け

OE コンテキスト

CUST_ID = 1234

アクセス制御- Virtual Private Database -

Page 20: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.20

3. ポリシー関数の作成

4. ポリシーの作成

CREATE PACKAGE BODY oe_security ASFUNCTION cust_order (

object_schema VARCHAR2,object_name VARCHAR2 )RETURN VARCHAR2

ISBEGIN

RETURN 'customer_id =sys_context(''oe'', ''cust_id'')';

END;END;/

CREATE PACKAGE BODY oe_security ASFUNCTION cust_order (

object_schema VARCHAR2,object_name VARCHAR2 )RETURN VARCHAR2

ISBEGIN

RETURN 'customer_id =sys_context(''oe'', ''cust_id'')';

END;END;/

EXECUTE DBMS_RLS.ADD_POLICY (OBJECT_SCHEMA => 'oe',OBJECT_NAME => 'orders',POLICY_NAME => 'oe_policy',POLICY_FUNCTION => 'oe_security.cust_order',STATEMENT_TYPES => 'select')

EXECUTE DBMS_RLS.ADD_POLICY (OBJECT_SCHEMA => 'oe',OBJECT_NAME => 'orders',POLICY_NAME => 'oe_policy',POLICY_FUNCTION => 'oe_security.cust_order',STATEMENT_TYPES => 'select')

ポリシー関数の関連付け

表の関連付け

ORDERS表

FGAC

ポリシー

FGAC

ポリシー

アクセス制御- Virtual Private Database -

Page 21: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.21

• FGACで参照するアプリケーション・コンテキストには、ユーザー識別情報を格納する必要がある– DBユーザーで識別する場合

• USERENVのSESSION_USER属性を利用して、コンテキスト情報を作成

– アプリケーション・ユーザーで識別する場合

• USERENVのCLIENT_IDENTIFIER属性を利用して、コンテキスト情報を作成

• ユーザー処理が複数のコールにまたがる場合、グローバル・アプリケーション・コンテキストを利用

– ユーザーでは識別せず、アプリケーションで識別する場合

• 分割FGACを利用

アクセス制御- Virtual Private Database -

Page 22: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.22

DBサーバーエンド・ユーザー APサーバー

SESSION_USER属性を利用して設定

EMP_INFO

EMPNO = 1234ENAME = TYAMADADEPT = SALES

1つのDBユーザーのセッションを共有

クライアントユーザー毎の識別や制御は不要

アクセス制御- Virtual Private Database / DBユーザーの識別 -

Page 23: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.23

userA

CLIENT_IDENTIFIER

クライアントユーザー毎の識別や制御が必要

userA

userB

userC

EMP_INFO

EMPNO = 1234ENAME = TYAMADADEPT = SALES

ユーザーに応じた識別情報を設定

CLIENT_IDENTIFIER属性を利用して設定

1つのDBユーザーのセッションを共有

DBサーバーエンド・ユーザー APサーバー

アクセス制御- Virtual Private Database / APユーザーの識別 -

Page 24: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.24

• DBユーザーで識別する場合

– ローカル・コンテキストを利用

– DBトリガーなどを使用して、セッション開始時にコンテキスト情報を作成

• アプリケーション・ユーザーで識別する場合

– ローカル・コンテキストまたはグローバル・コンテキストを利用

– アプリケーション処理内でDBセッションを利用する毎に次を実行

• 処理開始時にCLIENT_IDENTIFIERをセット

• 処理終了時にCLIENT_IDENTIFIERを消去

– グローバル・コンテキストの場合は、識別対象のクライアントユーザーごとにさらに次を実行

• 最初の接続時に、グローバル・コンテキスト情報を作成

• 最後の接続時に、グローバル・コンテキスト情報を削除

アクセス制御- Virtual Private Database / アプリケーションの変更 -

Page 25: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.25

D E M O N S T R A T I O N

VPDによるアクセス制御

Page 26: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.26

Agenda

Oracleで実現するセキュリティについて• アクセス制御• 暗号化• 監査

Page 27: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.27

通信の暗号化

データベース サーバー

クライアント

SQLNET.ORASQLNET.ORA

SQLNET.ORA

クライアント

データベース サーバー

アプリケーション サーバー

Oracle Application Serverの機能で暗号化

DBサーバ ~ クライアント間DBサーバ ~ APサーバ間DBリンクの暗号化

DBサーバ ~ クライアント間DBサーバ ~ APサーバ間DBリンクの暗号化

Page 28: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.28

通信の暗号化の設定クライアント

SQLNET.ORA

データベース サーバー

SQLNET.ORA

通信の暗号化

• サーバとクライアントそれぞれのSQLNET.ORAを編集

• 編集にはOracle Net Managerを使用

Page 29: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.29

Oracle Net Managerによる設定

SERVERかCLIENTを選択

暗号化タイプを設定

乱数生成のためのシードを設定

暗号化アルゴリズムの選択

Page 30: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.30

暗号化-Transparent Data Encryption(TDE) -

表の作成時に暗号する列を指定

既存列の暗号化

アプリケーション側で意識は不要

暗号化列に索引作成が可能

Redoログ、アーカイブログ、メモリ上のデータも暗号化

RMANと組み合わせたバックアップ時の暗号化

Encryption KeyはData Dictionaryで管理

Decryption Keyは表ごとに管理

Create table orders

(order id number (12) not null,

cust_id number(12) not null,

credit_card varchar2(19) encrypt));

Alter table orders….. Triple DES /AESに対応

Page 31: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.31

TDEの仕組み

サーバープロセス内で、列暗号KEYを用いてデータを暗号化/復号化

マスターKEYによって列暗号KEYを暗号化することで二重にデータを保護

暗号化/復号化処理はサーバプロセス内で自動的に実行されるため、クライアント側で運用中に意識する必要は無い

列暗号列暗号KEYKEY

#strings /oracle/app/oradata/users.dbfCA5W%O=[N'E:N,

, I f:K9J@YPA"79A+¥O¥

SQL> insert into CREDIT (ID,CARD_NO)values (111,’12345678’);

SQL> commit;SQL> select ID,CARD_NO from CREDIT

where ID=111;ID CARD_NO---- --------------111 12345678

データベース(users.dbfデータファイル)解読不可能

解読可能

平文データ

暗号化データ

WalletWallet

サーバープロセスサーバープロセス

マスターマスターKEYKEY

暗号化暗号化 (Encrypt)(Encrypt)復号化復号化 (Decrypt)(Decrypt)

SQL

SELE

CT

INSE

RT/UPDATE

データの操作は通常のSQLによって実行可能

導入に際し、従来のアプリケーションを改修する必要無し!

ディクショナリディクショナリ

Page 32: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.32

D E M O N S T R A T I O N

TDEによる暗号化

Page 33: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.33

Agenda

Oracleで実現するセキュリティについて• アクセス制御• 暗号化• 監査

Page 34: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.34

アクセス履歴- おこりうる脅威と監査機能 -

アプリケーションユーザ

開発者 DBA

DBAによる不正行為DBAによる不正行為

・不正な閲覧、データ改竄、破壊行為

・不正なユーザ作成などの構成変更

・不正な権限付与

・監査証跡の改竄

一般ユーザによる不正行為一般ユーザによる不正行為

・不正なログイン ・不正な閲覧、データ改竄、破壊行為

・不正な権限付与 ・不正なユーザ作成などの構成変更

一般ユーザによる不正行為

Webアプリケーションユーザによる不正行為

・不正な閲覧、データ改竄

一般ユーザによる不正行為

Webアプリケーションユーザによる不正行為

・不正な閲覧、データ改竄

DBAの行動監査→DBA監査

一般ユーザに対する監査→標準監査

対象をより詳細に絞った監査→ファイングレイン監査

DB表

OSファイル

監査証跡

Page 35: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.35

アクセス履歴- ファイングレイン監査 -

•処理対象の行(検索条件)、列、実行された文の種類等の条件を元に、監査証跡を残すか否かをきめ細かく指定することが可能

•Webアプリケーション等、コネクション・プールを利用した構成においても、エンド・ユーザーを特定可能な監査証跡を取得することが可能

監査されない

監査ポリシー

監査証跡が残る

監査条件: 1=1 (全ての行)監査列 :card_no

監査証跡

管理者にメール通知

SELECT order_id, card_noFROM order_items, <timestamp>, <userid>, <bind vars> etc.

ファイングレイン監査の例ファイングレイン監査の例

特定の条件(列、データの値等)に基づいた細かな監査ポリシーを定義可能

監査証跡の格納先のカスタマイズや、ユーザー定義の監査アクションの定義も可能

SELECT order_id, product_id, quantityFROM order_items;

SELECT order_id, card_noFROM order_items;

Page 36: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.36

D E M O N S T R A T I O N

ファイングレイン監査

Page 37: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.37

Oracleの基本的なセキュリティ機能

認証強化認証強化

なりすましなりすましパスワード盗難パスワード盗難

アクセスアクセスコントロールコントロール

業務上の権限を業務上の権限を超えた不正操作超えた不正操作

通信の暗号化通信の暗号化

通信経路上での通信経路上での盗聴盗聴

格納データ格納データ暗号化暗号化

データファイル・データファイル・バックアップバックアップ

メディアの盗難メディアの盗難

監査監査

正当な権限を正当な権限を使った不正行為使った不正行為

遠い 近い情報への論理的な距離

Advanced Security

Option(ASO)

Advanced Security

Option(ASO)

Virtual PrivateDatabase

TransparentData

Encryption

DBA監査

ファイングレイン監査

Oracle Label Security

Database Vault

Audit Vault

Enterprise User Security (EUS)

Identity and Access Management

Secure Backup

Page 38: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.38

<付録>

情報基盤強化税制

Page 39: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.39

1) OS ※及びこれと同時に設置されるサーバー

2) データベース管理ソフトウェア※及びこれと同時に設置されるアプリケーションソフトウェア

3) ファイアーウォール※(1 または 2 と同時に取得されるものに限る)

※ISO/IEC 15408 に基づいて評価・認証されたもの

従来のIT投資促進税制はハードウェア機器、ルーターなどネットワーク機器、ソフトウェアと

幅広い製品に適用されました。それに対して、情報基盤強化税制は、対象設備が上述のように限定されています。また対象設備はデータベース管理ソフトウェアやOS、ファイアーウォールであればなんでも良いわけではありません。データベース管理ソフトウェアとOS、ファイアーウォールはISO/IEC 15408 に基づいて評

価・認証されたものでなければなりません。

従来のIT投資促進税制とはここが違う:

Oracle Database10g Enterprise Editionは ISO15408 を取得しており、情報基盤強化税制(旧IT投資減税) の対象です。

Oracle Database10g Enterprise Editionは ISO15408 を取得しており、情報基盤強化税制(旧IT投資減税) の対象です。

対象設備:

情報基盤強化税制の特徴2006年4月1日からいよいよ開始

Page 40: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.40

同時設置

3000万

*1Oracle Database はISO/IEC 15408評価、認証済みです。*2 SQL Server 2005/2000/7.0/6.5/6.0/4.2は ISO/IEC 15408の評価、認証を受けていません。*3 特別償却ではなく10%の税額控除を選択した場合

Oracle Database 10g

1000万

アプリケーションソフトウェア

減税対象

減税対象

減税対象

3000万

1000万

同時設置

例1:減税対象額 1000万 + 3000万=4000万4000万 X 70% X 10% =280万 (法人税から控除)*3Oracle Databaseの購入費用1000万

およびそれと同時に設置したアプリケーションソフトウェア3000万も

減税の対象になる

例2:減税対象額 0円法人税からの控除額も0円SQL Server 2005の購入費用1000万

およびそれと同時に設置したアプリケーションソフトウェア3000万も

減税の対象にならない

例1:

高度な情報セキュリティが確保された情報投資

<Oracle Database 使用 *1>

例2:

高度な情報セキュリティが確保されていない情報投資

<SQL Server 使用 *2>

SQL Server2005

アプリケーションソフトウェア

情報基盤強化税制が適用される例、適用されない例

Page 41: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.41

Oracle Direct無償サービス• パフォーマンス・クリニック・サービス

– Oracle Directが無償でOracleデータベースの稼動状況をチェック。パフォーマンスのボトルネックを診断し、チューニングすべき項目をガイドいたします。

• SQL Serverからの移行アセスメントサービス– Oracleデータベースへのデータ移行を検討中のエンドユーザー様を対象にOracle Directがその移行手

順を診断します。

• Accessからの移行アセスメントサービス– Oracle Directが無償でMicrosoft Accessからの移行を診断。安心してOracleへの移行が可能です。

• Oracle Developer/2000 Webアップグレード相談サービス– Oracle Directが無償でクライアント・サーバ環境で稼動するOracle Developer/2000の環境をチェック。

Web環境へのアップグレード方法、注意すべき項目をガイドいたします。

• MySQLからの移行相談サービス– Oracle Directが無償でMySQLからOracle Database 10gへの移行手順をガイド。移行ツールもご紹介い

たします。

• PostgreSQLからの移行相談サービス– Oracle Directが無償でPostgreSQLからOracle Database 10gへの移行手順をガイドいたします。

• Oracle Database 10gへの移行相談サービス– Oracle Directが無償でOracle Database 10gへの移行方法をガイド。安心してOracle データベースの

バージョンアップが可能です。

詳しくはお電話下さい:

Page 42: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.42

http://www.oracle.co.jp/direct0120-155-096

詳しい説明、システム導入のご相談は

Oracle Directまずはお問合せください

Page 43: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

Copyright © Oracle Corporation Japan, 2007. All rights reserved.43

以上の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

Oracle、PeopleSoft、JD Edwards、及びSiebelは、米国オラクル・コーポレーション及びその子会社、関連会社の登

録商標です。その他の名称はそれぞれの会社の商標の可能性があります。

Page 44: Oracle Direct iSeminar = 1234 ENAME = TYAMADA DEPT = SALES SET_EMPSET_EMP PL/SQL パッケージ アプリケーション・コンテキスト コンテキスト名 属性名 値 値の

日本オラクル株式会社

無断転載を禁ず

この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。日本オラクル社は本書の内容に関していかなる保証もいたしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。

Oracleは米国Oracle Corporationの登録商標です。文中に参照されている各製品名及びサービス名は米国Oracle Corporationの商標または登録商標です。その他の製品名及びサービス名は

それぞれの所有者の商標または登録商標の可能性があります。