すみずみ君
REX SEARCHの特長
1. 完全日本語対応で使いやすい
- 日本語の検索条件で検索ができるLinuxサーバ向け個人情報検索ツールです。
- 自社製品のため、日本語マニュアル、日本語サポートが充実しています。
- 検索条件は日本語を含んだ正規表現で記述できるため、柔軟な検索を行うことができます。
2. 簡単に導入できる
- 当社が提供するコマンドファイルを保存いただくだけ(インストールレス)でご利用できます。
- 名字、住所、電話番号、クレジットカード番号等が検索できるサンプルクエリも初期搭載しています。
- 検出されたファイルを移動させるなど、導入初期の手間を省けるスクリプトもご提供しています。
3. クエリファイル作成サービス
- すみずみ君 REX SEARCHは正規表現(テキストデータ)で検索条件を作成し、この正規表現からクエリファイル(状態遷移データ)を作成します。
- すみずみ君 REX SEARCHはこのクエリファイルを元に高速でファイル検索を行います。
当社ではご購入ライセンス期間中のお客様向けに個人情報検索用のクエリファイルを作成する無償サービスをご提供しております。
当社でご提供可能な検索項目の一例は下記の通りです。
No | 検索項目 |
---|---|
1 | 名字(漢字)日本の名字上位200位 |
2 | 名字(漢字)日本の名字上位2,000位 |
3 | 名字(カナ)日本の名字上位200位 |
4 | 名字(カナ)日本の名字上位2,000位 |
5 | 名字(英字)日本の名字上位200位 |
6 | 名字(英字)日本の名字上位2,000位 |
7 | 住所 |
8 | 電話番号 |
9 | メールアドレス |
10 | 生年月日 |
11 | クレジットカード番号(半角数字)区切りなし/ハイフン区切り/スペース区切り |
12 | クレジットカード番号(全半角数字)区切りなし/ハイフン区切り/スペース区切り |
13 | 口座番号(半角数字) |
14 | 口座番号(半角数字)CIFを含まない |
15 | マイナンバー(半角数字)区切りなし/ハイフン区切り/スペース区切り |
16 | 免許証番号(半角数字) |
17 | パスポート番号(半角数字) |
クエリファイル作成サービスの流れ
4. マルチスレッドによる高速検索
- 高性能サーバのマルチコアCPUをフル活用して複数ファイルを同時に検索できるマルチスレッド検索機能を搭載。
- 膨大なファイル数の検索時間を大幅に短縮できます。
- 最大99スレッドまでのマルチスレッド検索に対応。
すみずみ君 REX SEARCH 検索時間
検索ソフトウェア | スレッド数 (使用コア数) |
検索時間 (8,000ファイル/合計ファイルサイズ 9.6G) |
検索時間 (1GBあたりの検索時間) |
---|---|---|---|
すみずみ君 REX SEARCH【Linux】 |
1 | 25分28秒 | 2分40秒 |
2 | 12分57秒 | 1分21秒 | |
4 | 6分51秒 | 43秒 | |
8 | 4分1秒 | 26秒 | |
16 | 2分37秒 | 17秒 | |
すみずみ君【Windows】 | 1 | 43分2秒 | 4分29秒 |
(当社計測値)
検索時間 検証データ
(1)検証機材
すみずみ君 REX SEARCH | すみずみ君 | |
---|---|---|
サーバ | HP ProLiant DL360 Gen9 | 同左 |
CPU | Intel Xeon E5-2660 v3 2.60GHz(10コア/2CPU) 20コアCPU | 同左 |
メモリ | 32GB | 同左 |
アレイ | SmartアレイP440ar 2GBキャッシュ | 同左 |
HDD | 12GB SAS 1.2TB × 6本 RAID 6 | 同左 |
OS | Red Hat Enterprise Linux Server release 6.8 | Windows Server 2016 Standard |
カーネル | Linux 2.6.32-642.el6.x86_64 | - |
ソフトウェア | すみずみ君 REX SEARCH Verison 1.0 | すみずみ君 Version 3.16.1 |
(2)検証用検索対象ファイル【ヒット率50%】
No | 検査対象 アプリケーションファイル |
テキスト サイズ |
ファイル サイズ |
検索対象 ファイル数 |
検索ヒット ファイル数 |
検索 ヒット率 |
---|---|---|---|---|---|---|
1 | Microsoft Word 2003 | 1MB | 1.96MB | 1,000 | 500 | 50% |
2 | Microsoft Word 2007 | 1MB | 105KB | 1,000 | 500 | 50% |
3 | Microsoft Excel 2003 | 1MB | 1.11MB | 1,000 | 500 | 50% |
4 | Microsoft Excel 2007 | 1MB | 243KB | 1,000 | 500 | 50% |
5 | Microsoft PowerPoint 2003 | 1MB | 2.99MB | 1,000 | 500 | 50% |
6 | Microsoft PowerPoint 2007 | 1MB | 474KB | 1,000 | 500 | 50% |
7 | 1MB | 475KB | 1,000 | 500 | 50% | |
8 | テキストファイル | 1MB | 1MB | 1,000 | 500 | 50% |
合計 | 9.6GB | 3,360 | 4,000 | 50% |
(3)検索条件
No | 検索クエリ |
---|---|
1 | 名字(漢字)日本の名字上位200位≧1 |
2 | 住所≧1 |
3 | 電話番号≧1 |
4 | メールアドレス≧1 |
5 | 機密≧1 |
6 | クレジットカード番号(半角数字)区切りなし≧1 |
7 | マイナンバー(半角数字)区切りなし≧1 |
5. 多重起動による効率的な検索
- すみずみ君 REX SEARCHの実行プログラムを多重起動することで、ディレクトリごとに違う検索条件で検索を同時に実行し、ディレクトリごとに検索結果ファイルを出力することができます。
- 部門ごとの業務で扱う情報に応じた条件で検索することで、ファイルサーバの部門ごとのディレクトリを効率的に検索することができます。
- 各部門の担当者が確認作業を実施するという運用ができますので、確認作業効率がアップします。
6. クレジットカード番号の高速検索
(PAN:Primary Account Number)
割賦販売法の改正により2018年6月1日から、クレジットカードを取り扱う加盟店に対し、カード情報の非保持化あるいはPCI DSS(Payment Card Industry Data Security Standard) への準拠などが義務付けられました。
クレジットカード番号等取扱業者は、クレジットカード番号等の「漏えい、滅失又は毀損の防止その他のクレジットカード番号等の適切な管理のために必要な措置を講じなければならない」。
Linuxサーバ上やネットワークストレージ上の意図していない場所にクレジットカード番号や個人情報が存在していないか、すみずみ君 REX SEARCHが高速で検索します。
チェックデジット検証(Luhnアルゴリズム)を行い検索するクレジットカード番号
国際ブランド | プレフィックス | 検索する番号 |
---|---|---|
Diners Club International | 30 / 36 / 38 | 区切りなしの連続14桁 |
4桁、6桁、4桁のハイフン区切り14桁 | ||
4桁、6桁、4桁のハイフン区切り14桁 | ||
American Express | 34 / 37 | 区切りなしの連続15桁 |
4桁、6桁、5桁のハイフン区切り15桁 | ||
4桁、6桁、5桁のハイフン区切り15桁 | ||
VISA / MasterCard / JCB / DISCOVER Card | 22/23/24/25/26/27/35/4/ 51/52/53/54/55/35/60/64/65 |
区切りなしの連続16桁 |
4桁、4桁、4桁、4桁のハイフン区切り16桁 | ||
4桁、4桁、4桁、4桁のハイフン区切り16桁 |
※VISA、MasterCard、JCB、American Express、Diners Club International、DISCOVER Cardはクレジットカードの国際ブランドです。
尚、ハイフン区切りのクレジットカード番号は下記の区切り文字に対応しています。
クレジットカード番号(半角数字)ハイフン区切り
No | 記号 | UTF-8コード | 区切り文字 |
---|---|---|---|
1 | - | 0x2D | 半角ハイフン |
クレジットカード番号(全半角数字)ハイフン区切り
No | 記号 | UTF-8コード | 区切り文字 |
---|---|---|---|
1 | - | 0x2D | 半角ハイフン |
2 | - | 0xE28090 | 全角ハイフン |
3 | - | 0xEFBC8D | 全角マイナス |
4 | ― | 0xE28095 | 全角ダッシュ |
5 | ─ | 0xE29480 | 横線 |
6 | ー | 0xE383BC | 全角長音:ひらがなカタカナの長音記号(長音符) |
7 | 一 | 0xE4B880 | 漢数字の 一 (漢数字の1) |
また、チェックデジット検証を行っての検索はできませんが、
番号の一部がマスクされたクレジットカード番号も正規表現で検索することができます。
【例】番号の一部が****でマスクされているクレジットカード番号(PAN)を検索する正規表現
16桁PAN | 12345678****9012 | 16桁PAN | 1234-5678-****-9012 |
---|---|---|---|
正規表現 | \d{8}****\d{4} | 正規表現 | \d{4}-\d{4}-****-\d{4} |
一部のトランケーション形式(最初の6桁、最後の4桁を残し、その他の桁を0で埋めた形式)についてはクレジットカード番号検索と同様に検出 することができます。
7. DFA型文字列照合エンジンによる高速検索
- すみずみ君 REX SEARCHはDFA型文字列照合エンジンを搭載、複雑な検索条件でも1億文字/秒の照合が可能で個人情報検索やテキスト検索の高速処理を実現しています。
DFA(Deterministic Finite Automaton / 決定性有限オートマトン) - 検索条件を状態遷移に変換することにより効率的に文字列照合を行う方式です。
- 大規模検索式でも照合性能がほとんど落ちない検索エンジンです。
照合方式の比較
照合方式 | 特長 | 正規表現 | 高速照合 |
---|---|---|---|
NFA Nondeterministic Finite Automaton 非決定性有限オートマトン |
非決定的な遷移を実行時に解決するため、 遷移先が決まらない場合は後戻りを繰り返す |
〇 | × |
DFA Deterministic Finite Automaton 決定性有限オートマトン |
非決定的な遷移を実行前に解決し、 遷移先が決まっているため後戻りを繰り返すことがない |
〇 | 〇 |
※すみずみ君 REX SEARCHの照合方式はDFAです。
DFAによる文字列照合方式
【初期化】検索条件から状態遷移図と状態遷移表を生成する
【照合】作成された状態遷移表を参照しながら入力文字列と照合する
- 【検索条件】
- 「高橋」「佐々木」「渡辺」の文字列を照合
- 【正規表現】
- 高橋|佐々木|渡辺
状態遷移図
状態遷移表の生成
初めにNFAの状態遷移図、次にDFAの状態遷移図、最後にDFAの状態遷移表を生成する
【初期化】検索条件から状態遷移図と状態遷移表を生成
(1) NFA(非決定性有限オートマトン)の状態遷移図の生成
- 検索条件【正規表現】
- 野田|野々村|田村
状態遷移図
- 正規表現から生成された状態遷移図では同じ文字に対して複数の遷移先が存在する場合がある。
→【非決定的遷移】 - 非決定的遷移を含むオートマトンがNFA
(Nondeterministic Finite Automaton / 非決定性有限オートマトン)である。
NFAによる文字列照合では照合時に後戻りが発生するため照合速度が低下する。
(2) DFA(決定性有限オートマトン)の状態遷移図及び状態遷移表の生成
- 検索条件【正規表現】
- 野田|野々村|田村
状態遷移図
- 非決定的遷移は状態の合併により除去できる。
- 非決定的遷移を除去したオートマトンがDFA
(Deterministic Finite Automaton / 決定性有限オートマトン)である。 - DFAでは冗長な状態遷移も合併により除去できる。
DFAによる文字列照合では照合時に後戻りが発生しないため高速照合が可能。
状態遷移表
状態遷移パターン
すみずみ君 REX SEARCHが高速で検索できる理由 = DFA型文字列照合エンジン
【例】正規表現で5桁の半角数字列を検索するケース
初期化時に00000~99999の全状態遷移パターンを状態遷移表として作成
- 【検索条件】
- 5桁の半角数字列を照合
- 【正規表現】
- \d{5}
※参考 マイナンバーの場合、初期化時に
10の11乗=1,000億の状態遷移パターンを作成