26
1 Copyright © 2015 Insight Technology, Inc. All Rights Reserved. Security Project Accelerator データベースセキュリティ製品の最新トレンドとロギング技術比較 リアルタイムアクセス監視&データ暗号化をLive Demoでご紹介

20151228_マイナンバー対応、情報漏洩対策にアクセスコントロールとカラムベースのデータ暗号化ソリューション by 株式会社インサイトテクノロジー

Embed Size (px)

Citation preview

1 Copyright © 2015 Insight Technology, Inc. All Rights Reserved.

SecurityProject Accelerator

データベースセキュリティ製品の最新トレンドとロギング技術比較リアルタイムアクセス監視&データ暗号化をLive Demoでご紹介

2

Agenda

� データベースセキュリティ

� データベース暗号化〜PISO EO概要

� システム概要

� プロセス構成

� オブジェクト構成

� 暗号化されたインデックスによる検索

� 暗号化時のパフォーマンス

� 他社製品比較

� Q&A

3

データベースセキュリティ

データベース暗号化は、列または、テーブル、表領域などの単位で権限の無い担当

者による暗号化・複合化を防止するセキュリティ方式です。暗号化を適用する代表的な情報としては、個人情報 (マイナンバー、口座番号、クレジットカード番号), パスワードなどが上げられます。

Fire Wall: ファイアウォール(内外の通信を中継/監視し外部の攻撃から保護)

IDS:不正侵⼊検知システム(パケットを監視して不正侵入/攻撃を検知)

IPS:不正侵⼊予防システム(不正と判断したパケットを遮断)

OS セキュリティ / セキュアOS

DB 監査

Encrypted Table

DB 暗号化

内部からの情報漏洩をブロック

外部からの不正アクセスをブロック

4

データベース暗号化〜PISO EO概要

� eGlobal System社で300サイト以上実績のある暗号化技術をPISOに統合

� 弊社監査取得ソフトPISOとのISM共用による同時適用可

� テーブルの列単位での暗号化

�暗号化された索引の検索:

� 暗号化されたインデックスでの検索時、パフォーマンスの性能が低下しない

� ゼロダウンタイム構築:

� 初期導入および暗号化カラム追加時において、中断することなく暗号化適用可能

� 暗号化テーブルへのアクセスコントロール

� Database User ■ Application Name ■ IP Address

� Access Days ■ MAC Address ■ Access Time

� Machine Name ■ Expire Date

� 暗号化テーブルへのアクセスログの取得(Ver1.1)

� 暗号化キーの自動配布機能(Ver1.1)

5

PISO EOアクセス制御 〜 暗号化データアクセス例

EMP

View

DBMS

S

SCOTTJOHNSQL> select ename, job from scott.emp;ENAME JOB--------------- ---------SMITH CLERKALLEN SALESMANWARD SALESMANJONES MANAGERMARTIN SALESMANBLAKE MANAGERCLARK MANAGERSCOTT ANALYSTKING PRESIDENT

SQL> select ename, job from scott.emp;ENAME JOB--------------- ---------Encrypted CLERKEncrypted SALESMANEncrypted SALESMANEncrypted MANAGEREncrypted SALESMANEncrypted MANAGEREncrypted MANAGEREncrypted ANALYSTEncrypted PRESIDENT

権限を持つユーザ 権限を持たないユーザ

6

PISO EOシステム構成(Ver1.0)

Main modules of PISO EO

cubeoned

cubeone_auditor

cubeone_guard

cubeonesqlcubeonesql2

Policy Manager

Encryption Manager

Log Manager

PISO EO Crypto

AccessLog

Database ServerPISO EO Manager(PISO ISM Console)

7

Structure of PISO EO (PISO EO Manager)

Policy Manager (Access Control Manager)

セキュリティポリシーの設定とデプロイ• 暗号化の設定を指定• アクセス制御を指定• 公開鍵方式を用いて暗号化された状態で展開します。• 更新・保存されたセキュリティポリシーを監査ログに保存します。

Encryption Manager (Table Browser)

列単位の暗号化・復号化を⾏う暗号化テーブルを制御します。• 稼働状態は、Job Monitorで確認することが出来ます。

Log Manager (Audit Log Browser)

暗号化項目へのアクセスログを以下の項目について管理します。• 日付・時刻、ユーザ、暗号化項目、アプリケーション、IPアドレス• 暗号化項目への SUID(SELECT/UPDATE/INSERT/DELETE)アクセスログレポートの生成

8

cubeoned

PISO EO Managerがサーバー上で展開したポリシーを反映します

cubeone_auditor

データベースサーバ上で稼働し、Policy Managerが設定したポリシーに基づいたアクセス記録を保存します。暗号化した項目へのユーザ、タスク、アクセスパターン(SUID)について成功・失敗の記録を⾏います。アクセス失敗の場合には、その理由も記録します。

cubeone_guard

PISO EOのプロセス(cubeoned / cubeone_auditor)を監視します。• 上記プロセスが稼働していない場合には、再起動を⾏います。

Structure of PISO EO (PISO EO Server)

cubeonesql/cubeonesql2 (Encryption Agent )

データベースサーバ上にインストールされ、PISO EO Managerによりアサインされたタスクを実⾏します。• データ暗号化・複合化及び暗号化テーブル管理• 実⾏結果は、Job Monitorにより確認することが出来ます

crypto (PISO EO Crypto)

データベースがインストールされたサーバで稼働します。ユーザが暗号化・複合化を⾏う際に権限を確認して正規ユーザである場合のみ実⾏します。

9

PISO EO オブジェクト構成

OS Process

Encrypted Table

View

Advanced Index

DBMS

Shared MemoryPolicy & Key Deploy

RSA

S

PISO EO Manager

Use App…

DBMS Tools…

PISO EO Crypto

PISO EO Object Structure

CubeOneServer

CubeOneAuditor

CubeOneGuard

Trigger/Procedure

PISO EO Manager Database Server Application

10

暗号化によるオブジェクト構成変更〜1

暗号化前 暗号化後original table Encrypted table Insert TriggerDelete TriggerUpdate TriggerTriggerAdvancedIndex Viewindex

PISO EOによる暗号化で生成されるオブジェクト

� Encrypted Table – 暗号化データを含むテーブル

� View – アプリケーション用ビュー(暗号化前テーブルと同じ名前)

� Trigger – DML時に実⾏されるトリガー

� Advanced Index – 必要な場合には、生成することで暗号化データに対するインデックスを使用した場合のパフォーマンスを向上させることが出来る

11

暗号化によるオブジェクト構成変更〜1

暗号化前暗号化前暗号化前暗号化前 暗号化後original table Encrypted table Insert TriggerDelete TriggerUpdate TriggerTriggerAdvancedIndex Viewindex

SELECT EMPNO, ENAME,JOB, MGR, HIREDATE,SAL, COMM, DEPTNOFROM SCOTT.EMP$

SELECT ROWID LWRID, EMPNO, XX1.DEC_VARCHAR2_SEL(ENAME,10,'AES128','EMP','ENAME') ENAME,JOB, MGR, HIREDATE, SAL, COMM, DEPTNOFROM SCOTT.EMP#

VIEW(EMP)

VIEW(EMP$)

TABLE(EMP#) TRIGGER(EMP)

Insert Trigger(EMPI)

Delete Trigger(EMPD)

Update Trigger(EMPU)

EMPテーブルを暗号化した場合

12

暗号化によるオブジェクト構成変更〜2

EMP Table

EMP# TableEMP View

暗号化前

暗号化後

Insert TriggerDelete TriggerUpdate TriggerTrigger

select empno, empname, acctfrom emporder by empno;

insert into emp(empno, empname, acct)values(6, ’A.B.C’, ’123-345-456767’);

delete from empwhere empno = 1;

update empset acct = ‘111-222-334455’where empno = 3;

select empno, empname, acctfrom emporder by empno;

insert into emp(empno, empname, acct)values(6, ’A.B.C’, ’123-345-456767’);

delete from empwhere empno = 1;

update empset acct = ‘111-222-334455’where empno = 3;

13

暗号化前後でテーブルの列定義が変更

EMPテーブル (暗号化前) EMP#テーブル (暗号化後)

Column Name Column Type Column Name Column TypeObject of

encryption

EMPNO NUMBER(10) EMPNO NUMBER(10)

EMPNAME VARCHAR2(50) EMPNAME VARCHAR2(50)

ACCT VARCHAR2(20) ACCT VARCHAR2(44) AES256

CARD CHAR(19) CARD VARCHAR2(44) AES256

PASSWD VARCHAR2(20) PASSWD VARCHAR2(64) SHA256

BONUS NUMBER(10,2) BONUS VARCHAR2(24) AES256

暗号化後インデックスが追加

暗号化によるオブジェクト構成変更〜3

EMPテーブル (暗号化前) EMP#テーブル (暗号化後)

Index Name Attribute of Index Column Name Attribute of Index NotePK_EMP001 NORMAL PK_EMP001 NORMALIX_ACCT_EMP001 NORMAL IX_ACCT_EMP001 NORMAL AES256ACC717213 DOMAIN INDEX Construction of Advanced Index FACC717213 FUNCTION-BASED

14

インデックススキャンファンクション定義

ODEC_[COLUMN TYPE]_SEL([encrypted column], DML NO, ’ITEM’, ’Table, ’Column’)

インデックス作成ファンクションパラメータ定義

Left-hand side : XX1.ENC_INDEX_[COLUMN TYPE]([Encrypted Data], ’ITEM’)Right-hand side : XX1.ENC_INDEX_[COLUMN TYPE]_SEL([plaintext data], ’ITEM’)

暗号化・複合化ファンクションパラメータ定義

Encryption Function : XX1.ENC_[COLUMN TYPE]_INS([‘data’/column], DML NO, ’ITEM’, ’Table’, ’Column’)Decryption Function : XX1.DEC_[COLUMN TYPE]_SEL([‘data’/column], DML NO, ’ITEM’, ’Table’, ’Column’)

暗号化によるオブジェクト構成変更〜4

� PISO EO 暗号化/複合化 ファンクション

15

暗号化されたインデックスによる検索

16

暗号化されたインデックスによる検索が難しい理由

SSN Row_ID0202021989898 40707072121212 20808081020202 14504044545454 3Row_ID Name SSN1 Hong 08080810202022 Kim 07070721212123 Kang 45040445454544 Lee 0202021989898Select * from customerWhere SSN between ‘0711111111111’and ‘0811111111111’;

Index TableQuery

SSN Row_ID/jVG/+SSdl97UUS5NhrZ6w 430WauEraEUmE80y16paN 1GU/wjHxf3LliBGNyDG0rg= 35wkKAmBGpayYXYC64pfB 2Row_ID Name SSN1 Hong 30WauEraEUmE80y16paN2 Kim GU/wjHxf3LliBGNyDG0rg=3 Kang 5wkKAmBGpayYXYC64pfB4 Lee /jVG/+SSdl97UUS5NhrZ6w

Index TableQuery

IndexScanOptimizer

Full TableScan

Optimizer

Encrypted

Select * from customerWhere SSN between ‘0711111111111’and ‘0811111111111’;データが暗号化され、データ順序が維持されないため、Index Range Scanが不可能。

すべてのデータを復号化し、

復号化されたデータを検索。

PISO EOでは、ドメインインデックスとファンクションインデックスを組み合わせたアドバンスドインデックスを作成することで暗号化後でも暗号化前と同じオーダーを保持したインデックスを使⽤したレンジスキャン検索を⾏うことが出来る

暗号化前

暗号化後

17

Advanced Indexの生成

Advanced Index

� Original Indexと同一のデータ順序を維持

� 平文データと同一のデータ順序を維持するハッシュアルゴリズムを使用

� Advanced IndexはDomain IndexとFunction Based Indexで構成

Original Table

Encrypted Table Advanced Index

Row_ID Name SSN1 Hong 08080810202022 Kim 07070721212123 Kang 45040445454544 Lee 0202021989898Row_ID Name SSN1 Hong /jVG/+SSdl97UUS5NhrZ6w2 Kim 30WauEraEUmE80y16paN3 Kang 5wkKAmBGpayYXYC64pfB4 Lee GU/wjHxf3LliBGNyDG0rg=

SSN Row_IDGU/wjHxf3LliBGNyDG0rg= 430WauEraEUmE80y16paN 2/jVG/+SSdl97UUS5NhrZ6w 15wkKAmBGpayYXYC64pfB 3Encrypt

SSN Row_ID0202021989898 40707072121212 20808081020202 14504044545454 3Original Index

データ順序を維持

20

暗号化時のパフォーマンス

21

PISO EOの性能

負荷ツール HammerDBを使用したTPC-C実⾏

テスト環境:

TPC-Cで使用している9テーブルのうち3テーブルの1カラムを暗号化前後でHammerDBを使用してTPC-Cを10万トランザクション実⾏して処理終了までの時間と負荷状態を測定した

暗号化テーブルカラム定義及びサイズ

暗号化前 暗号化後サイズ(GB)

テーブル名 カラム名 件数サイズ(MB)

定義サイズ(MB)

定義

4.8

CUSTOMER C_PHONE 1,800,000 27.5 CHAR(16) 75.5 VARCHAR2(4000)

ORDERS O_C_ID 1,800,000 6.8 NUMBER 41.2 VARCHAR2(4000)

ORDER_LINE OL_DIST_INFO 18,003,095 412.1 CHAR(24) 755.4 VARCHAR2(4000)

レスポンスタイムとリソース使用状況

暗号化レスポンスタイム

(秒)DBサーバコア最大

使⽤率(%)DBサーバCPU平均

(%)DBサーバCPU最大

(%)

無し 390 72.00 18.27 25.95

有り498

(28%↑)80.00 (11%↑)

19.67(8%↑)

28.21 (8.7%↑)

22

PISO EOの性能

暗号化対象テーブルに対するSQL

TABLE SQL Exec/Sec

CUSTOMER

SELECT C_FIRST, C_MIDDLE, C_ID, C_STREET_1, C_STREET_2, C_CITY, C_STATE, C_ZIP, C_PHONE, C_CREDIT, C_CREDIT_LIM, C_DISCOUNT, C_B ALANCE, C_SINCE FROM CUSTOMER WHERE C_W_ID = :B3 AND C_D_ID = :B 2 AND C_LAST = :B1 ORDER BY C_FIRST

29.76

SELECT C_FIRST, C_MIDDLE, C_ID, C_STREET_1, C_STREET_2, C_CITY, C_STATE, C_ZIP, C_PHONE, C_CREDIT, C_CREDIT_LIM, C_DISCOUNT, C_B ALANCE, C_SINCE FROM CUSTOMER WHERE C_W_ID = :B3 AND C_D_ID = :B 2 AND C_LAST = :B1 ORDER BY C_FIRST

0.96

SELECT C_FIRST, C_MIDDLE, C_LAST, C_STREET_1, C_STREET_2, C_CITY , C_STATE, C_ZIP, C_PHONE, C_CREDIT, C_CREDIT_LIM, C_DISCOUNT, C _BALANCE, C_SINCE FROM CUSTOMER WHERE C_W_ID = :B3 AND C_D_ID = :B2 AND C_ID = :B1

29.76

ORDER_LINE

INSERT INTO ORDER_LINE (OL_O_ID, OL_D_ID, OL_W_ID, OL_NUMBER, OL _I_ID, OL_SUPPLY_W_ID, OL_QUANTITY, OL_AMOUNT, OL_DIST_INFO) VAL UES (:B9 , :B8 , :B7 , :B6 , :B5 , :B4 , :B3 , :B2 , :B1 )

74.2

INSERT INTO ORDER_LINE (OL_O_ID, OL_D_ID, OL_W_ID, OL_NUMBER, OL _I_ID, OL_SUPPLY_W_ID, OL_QUANTITY, OL_AMOUNT, OL_DIST_INFO) VALUES (:B9 , :B8 , :B7 , :B6 , :B5 , :B4 , :B3 , :B2 , :B1 )

74.2

ORDERS

SELECT O_C_ID FROM ORDERS WHERE O_ID = :B3 AND O_D_ID = :B2 AND O_W_ID = :B1

74.2

SELECT O_ID, O_CARRIER_ID, O_ENTRY_D FROM (SELECT O_ID, O_CARRIE R_ID, O_ENTRY_D FROM ORDERS WHERE O_D_ID = :B3 AND O_W_ID = :B2 AND O_C_ID=:B1 ORDER BY O_ID DESC) WHERE ROWNUM = 1

24.88

23

PISO EOの性能

TPCC実⾏時のCPU負荷状況

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

14

時39分41秒

14

時39分57秒

14

時40分13秒

14

時40分29秒

14

時40分45秒

14

時41分01秒

14

時41分17秒

14

時41分33秒

14

時41分49秒

14

時42分05秒

14

時42分21秒

14

時42分37秒

14

時42分53秒

14

時43分09秒

14

時43分25秒

14

時43分41秒

14

時43分57秒14

時44分13秒14

時44分29秒14

時44分45秒14

時45分01秒14

時45分17秒14

時45分33秒14

時45分49秒14

時46分05秒16

時04分52秒16

時05分08秒16

時05分24秒16

時05分40秒16

時05分56秒16

時06分12秒16

時06分28秒16

時06分44秒16

時07分00秒16

時07分16秒16

時07分32秒16

時07分48秒16

時08分04秒16

時08分20秒16

時08分36秒16

時08分52秒16

時09分08秒16

時09分24秒

16

時09分40秒

16

時09分56秒

16

時10分12秒

16

時10分28秒

16

時10分44秒

16

時11分00秒

16

時11分16秒

16

時11分32秒

16

時11分48秒

16

時12分04秒

16

時12分20秒

16

時12分36秒

16

時12分52秒

%user

%system

%iowait

%idle

非暗号化非暗号化非暗号化非暗号化 暗号化暗号化暗号化暗号化

24

PISO EO vs. Oracle TDE

25

PISO EO vs. Oracle TDE 〜1

PISO EO Oracle TDE TablespaceEncryption

OSユーザーの平文アクセス可否(Tablespace暗号化暗号化暗号化暗号化) ○

アクセス不可情報は全て暗号化されて保存。SGAにも暗号化されて保存される。OSユーザーが平文にアクセスする方法はない。

×

アクセス可能SGAに平文で保存されているので、OS上でSGAの位置するShared memoryを読み取れば、平⽂情報を容易に⾒つけ出すことができ

る。

暗号化対象サイズ○

列単位に暗号化○

表領域または、列単位に暗号化

但し、イコール検索しか出来ない

暗号化されたIndex

サポート

不可

暗号化されたインデックスを復号化して、

SGAに平⽂で保存し検索をサポート。列単位で暗号化を⾏った場合の暗号化列に対

するインデックスは、B-Treeインデックスの⼀意検索のみ可能

アクセス統制と監視機能

サポート

×

無し全てのユーザーが暗号化にかかわらずデータを照会することができる。アクセス統制のためには、Data Vaultを使用しなければならない。監視もAudit Vaultを適用する必要有り

26

PISO EO vs. Oracle TDE 〜2

PISO EO Oracle TDE TablespaceEncryption

セキュリティ管理者と

DB管理者の権限分離○

サポート

×

不可DBAにより管理されるのでDBA権限またはGRANTさえ受けていれば、全てのデータが流出可能。

流出の可能性

可能性小

データと鍵が同時に流出することは

不可能。 ×

可能性大① 他のDBユーザーにより流出可能 – アクセス統制ができない。② OSからSGAをダンプする時に流出。③ tarなどでoracleディレクトリをダウンロードして他のシステムにインストール

初期暗号化時における既存Tablespaceの使用(Tablespace暗号化暗号化暗号化暗号化) ○

制限なし

×

サポートしない暗号化用の別Tablespaceを生成してdatapumpを利⽤したmigrationを⾏わなければならない。

DB再起動時のキーのロード方法

自動ロード(Ver1.1 にて対応予定)(鍵機密性保持)

ファイルから読み取ってロード

DB Start Scriptにwallet openするので、鍵機密性が保持されない。HSMを使用してもScriptにパスワードが露出される。Auto-login wallet使用の場合は、セキュリティが守られていないということになる。

Application修正 △ 一部SQLは修正要 ○ 修正無し

34 Copyright © 2015 Insight Technology, Inc. All Rights Reserved.

35

無断転載を禁ず

この⽂書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。

株式会社インサイトテクノロジーは本書の内容に関していかなる保証もしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。本書で使用している製品やサービス名の名称は、各社の商標または登録商標です。

Copyright © 2013 Insight Technology, Inc. All Rights Reserved.