Upload
insight-technology-inc
View
1.332
Download
0
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 暗号化/複合化 ファンクション
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
データ順序を維持
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
非暗号化非暗号化非暗号化非暗号化 暗号化暗号化暗号化暗号化
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は修正要 ○ 修正無し