[data security showcase sapporo 2015] d24:データセキュリティ最後の砦...
TRANSCRIPT
1 Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
データセキュリティ最後の砦リアルタイムデータアクセスモニタリング
&データ暗号化
Live Demo
D24:Data Security
2 Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
はじめに
80%
20%
「データセキュリティ最後の砦」とは何か
データベースへのアクセスを監視すること
3 Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
情報漏洩を防ぐには
情報漏洩を防ぐために
流出経路を特定しようとしても
その手段は多岐に渡るため
時間もかかり、限界もある
データ
データデータ データ データ
4 Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
情報漏洩を防ぐには
データベースへのアクセスを
監視することで
流出経路へデータが渡る前に
犯人を特定することが出来る!
データデータベース監査ツール
の導入
5 Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
情報漏洩事件の傾向
80%
20%
情報漏洩の要因
内部要因 外部要因
6 Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
後を絶たない情報漏洩事件
データベースから個人情報が漏洩した事件
☞通信教育会社の個人情報漏洩事件(約2070万件)
- 事件が発覚してから、犯人特定までに1週間
☞ADSL接続会社の個人情報漏洩事件(約450万件)
- 事件が発覚してから、全容解明までに数ヶ月
いずれも内部の人間による犯行
7 Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
データベース監査ツールの重要性
大事なことは情報漏洩事件が発生したときに
誰が(Who)
いつ(When)
どこで/どこから(Where)
何を (What)
どれぐらい (How Many)
したのかを素早く追跡出来る仕組みがあること
データベース監査ツールの
PISOなら出来ます
8 Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
PISOで取得出来る項目
SQL Collector Session Collector
Who
ログイン
ログアウト
OSユーザ
DBユーザ
接続時間
When警告日付
ログ取得日付
Whereマシン
端末
What
オブジェクト
SQL開始日付
SQL終了日付
SQL文
How Many
累積実行回数
実行回数
累積処理行数
処理行数
平均処理行数
How
プロセスID
実行プログラム
アクション
ログオン
ログオン成功
ログオン失敗
ログオン継続時間
DDL成功・失敗
create
drop
alter
grant
revoke
audit
noaudit
rename
set
truncate
enable
disable
失敗DML
delete
insert
select
update
9
DBAPUser DBA
ログ管理サーバ
PISOの基本構成
PISO Agent
Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
PISO Manager
PISO Manager : PISO Agent
1 : 1(n)
Oracle Database
SQL Server
Symfoware
10
DBAPUser DBA
ログ管理サーバ
PISOで出来ること
ログ取得
リアルタイム警告
PISO Agent
ログ検索
Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
PISO Manager
11 Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
データベース監査製品の悩み
☞監査コマンド型(Audit)- 監査対象としているSQL文の実行命令が出る度に
監査用内部トリガーが実行されCPUの負荷が高くなる
☞ネットワークキャプチャ型- ネットワークを流れるログをキャッチするため
内部実行されたログは取得出来ない
データベース監査製品の
お悩み解決するために
12
Database のメモリ領域から直接アクセスログをサンプリングすることでCPUに負荷を掛けずにSQL情報(監査ログ情報)を取得可能
PISO Agentは監視対象のデータベースへインストールするため内部で実行されたログも取得可能
データベースサーバ
メモリ領域
PISO Agent
PISO Agentの働き
Direct Memory Access (DMA)の採用
Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
PISO Manager
ログ取得
13
作業申請書
開発者・管理者(特別権限所有者に限定)
監査担当セキュリティ担当
申請と一致したアクセスを証明
監査レポート運用
PISOによる運用例 1
Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
PISO専用ログ管理サーバ
作業申請書
14
セキュリティ担当による原因調査
PISOによる運用例 2
Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
モニタリング運用
開発者・管理者(特別権限所有者に限定)
PISO専用ログ管理サーバ
【不正アクセス監視】-禁止時間帯-禁止オブジェクト-禁止プログラムなど統制ルール違反を監視
リアルタイム警告通知
デモをお見せします。
15
運用用途に合わせた様々な通知先
リアルタイムデータアクセスモニタリング
SNMPCopyright © 2015 Insight Technology, Inc. All Rights Reserved.
16 Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
Demonstration
17 Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
18
データベース暗号化概要
Overview of DB Encryption
データベース暗号化ソフトは、データベースに格納されたデータを暗号化するために使用されます。列または、テーブル、表領域などの単位で権限の無い担当者による暗号化・複合化を防止するセキュリティ方式です。
Fire Wall: ファイアウォール(内外の通信を中継/監視し外部の攻撃から保護)
IDS:不正侵入検知システム(パケットを監視して不正侵入/攻撃を検知)
IPS:不正侵入予防システム(不正と判断したパケットを遮断)
OS セキュリティ / セキュアOS
DB アクセスコントロール/監査
Encrypted Table
DB 暗号化
内部からの情報漏洩をブロック
外部からのデータアクセスをブロック
19
暗号化を適用すべき情報と暗号化の特性
暗号化適用オブジェクト
• 個人情報 (マイナンバー、口座番号、クレジットカード番号), パスワード, etc.• 顧客が重要と認識しているデータ
暗号化の特性
• CPU リソースが主に消費される.
• 暗号化/複合化の処理時間は、CPUクロックスピードに依存(使用メモリ量も重要)
• アルゴリズム : Block Algorithm (AES), Hash Algorithm (SHA-256~512, for password)
• 暗号化モード : CBC(Ciper Block Chaining Mode)
CFB(Cipher Feedback)
OFB (output Feedback Mode)
• 権限制御 : 暗号化では、権限制御が必須
20
PISO EO概要
PISO EO 概要
eGlobal System社で300サイト以上実績のある暗号化技術をPISOに統合
弊社監査取得ソフトPISOとのISM共用による同時適用可
テーブルの列単位での暗号化
暗号化テーブルへのアクセスコントロール
Database User ■ Application Name
IP Address ■ Access Days
MAC Address ■ Access Time
Machine Name ■ Expire Date
暗号化テーブルへのアクセスログの取得
ゼロダウンタイム構築:
初期導入および暗号化カラム追加時において、中断することなく暗号化適用可能
暗号化された索引の検索:
暗号化されたインデックスでの検索時、パフォーマンスの性能が低下しない
21
PISO EO概要 ~ 暗号化データアクセス例
EMP Table
View
DBMS
S
SCOTTJOHN
SQL> 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
権限を持つユーザ 権限を持たないユーザ
24
PISO EO システム&オブジェクト構成
OS Process
Encrypted Table
View
Advanced Index
DBMS
Shared MemoryPolicy & Key Deploy
RSA
S
Application
Use App…
DBMS Tools…
PISO EO Crypto
PISO EO Structure
CubeOneServer
CubeOneAuditor
CubeOneGuard
Trigger/Procedure
PISOEOManager
25
暗号化によるオブジェクト構成変更~1
暗号化前 暗号化後
original table Encrypted table
Insert Trigger
Delete Trigger
Update Trigger
TriggerAdvanced
IndexView
index
PISO EOによる暗号化で生成されるオブジェクト
Encrypted Table – 暗号化データを含むテーブル
View – アプリケーション用ビュー(暗号化前テーブルと同じ名前)
Trigger – DML時に実行されるトリガー
Advanced Index – 必要な場合には、生成することで暗号化データに対するインデックスを使用した場合のパフォーマンスを向上させることが出来る
26
暗号化によるオブジェクト構成変更~1
暗号化前 暗号化後
original table Encrypted table
Insert Trigger
Delete Trigger
Update Trigger
TriggerAdvanced
IndexView
index
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テーブルを暗号化した場合
27
暗号化によるオブジェクト構成変更~2
EMP Table
EMP# Table
EMP View
暗号化前
暗号化後
Insert Trigger
Delete Trigger
Update Trigger
Trigger
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;
28
暗号化されたインデックスによる検索
29
暗号化されたインデックスによる検索が難しい理由
SSN Row_ID
0202021989898 4
0707072121212 2
0808081020202 1
4504044545454 3
Row_ID Name SSN
1 Hong 0808081020202
2 Kim 0707072121212
3 Kang 4504044545454
4 Lee 0202021989898
Select * from customerWhere SSN between ‘0711111111111’
and ‘0811111111111’;
Index TableQuery
Jumin_Num Row_ID
/jVG/+SSdl97UUS5NhrZ6w 4
30WauEraEUmE80y16paN 1
5wkKAmBGpayYXYC64pfB 3
GU/wjHxf3LliBGNyDG0rg= 2
Row_ID Name Jumin_Num
1 Hong 30WauEraEUmE80y16paN
2 Kim GU/wjHxf3LliBGNyDG0rg=
3 Kang 5wkKAmBGpayYXYC64pfB
4 Lee /jVG/+SSdl97UUS5NhrZ6w
Index TableQuery
IndexScan
Optimizer
Full TableScan
Optimizer
Encrypted
Select * from customerWhere SSN between ‘0711111111111’
and ‘0811111111111’;
データが暗号化され、データ順序が維持されないため、Index Range Scanが不可能。
すべてのデータを復号化し、復号化されたデータを検索。
PISO EOでは、ドメインインデックスとファンクションインデックスを組み合わせたアドバンスドインデックスを作成することで暗号化後でも暗号化前と同じオーダーを保持したインデックスを使用したレンジスキャン検索を行うことが出来る
30
Advanced Indexの生成
Advanced Index
Original Indexと同一のデータ順序を維持
平文データと同一のデータ順序を維持するハッシュアルゴリズムを使用
Advanced IndexはDomain IndexとFunction Based Indexで構成
Original Table
Encrypted Table Advanced Index
Row_ID Name SSN
1 Hong 0808081020202
2 Kim 0707072121212
3 Kang 4504044545454
4 Lee 0202021989898
Row_ID Name Jumin_Num
1 Hong KJSDHFSJKHSDAJJSA
2 Kim UEJEIUEWMNKJNDKAS
3 Kang MCJHDSWIUHCIWUIW
4 Lee AKLSJDSHKJDHASJSD
Jumin_Num Row_ID
AAAAAAAAAAAAAAA 4
BBBBBBBBBBBBBBB 2
CCCCCCCCCCCCCCC 1
DDDDDDDDDDDDDDD 3
Encrypt
SSN Row_ID
0202021989898 4
0707072121212 2
0808081020202 1
4504044545454 3
Original Index
データ順序を維持
31
PISO EO vs. Oracle TDE
32
PISO EO vs. Oracle TDE
PISO EO Oracle TDE
セキュリティ管理者とDB管理者の権限分離
○
サポート
×
不可DBAにより管理されるのでDBA権限またはGRANTさえ受けていれば、全てのデータが流出可能。
センシティブ情報の平文(Clear text) 保存有無
○
保存無情報は全て暗号化されて保存。SGAにも暗号化されて保存される。SQL Layerで復号化をサポート。 ×
SGA上に平文で保存ブロック単位で暗号化して、write時にdiskファイルに暗号化して保存。Read時に復号化して平文状態で管理。列暗号会を行った場合には、暗号化された状態でSGAに保存される
従来型exp/imp○
サポート×
使用不可data pumpを使用しなければならない。
初期暗号化時における既存Tablespaceの使用
○
制限なし
×
サポートしない暗号化用の別Tablespaceを生成してdatapumpを利用したmigrationを行わなければならない。
暗号化対象サイズ ○ 列単位に暗号化 ○ 表領域または、列単位に暗号化
暗号化されたIndex
○
サポート
△
不可
暗号化されたインデックスを復号化して、SGAに平文で保存し検索をサポート。列単位で暗号化を行った場合の暗号化列に対するインデックスは、B-Treeインデックスの一意検索のみ可能
33 Copyright © 2015 Insight Technology, Inc. All Rights Reserved.
Demonstration
34
無断転載を禁ず
この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。株式会社インサイトテクノロジーは本書の内容に関していかなる保証もしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。本書で使用している製品やサービス名の名称は、各社の商標または登録商標です。
Copyright © 2013 Insight Technology, Inc. All Rights Reserved.