この記事では、JDBC接続データベースへのアプリケーションクエリをインターセプトするためにプロキシベースのシステムを使用する、IRI FieldShieldプレミアムサイトで利用可能な動的データマスキング(DDM)メソッドについて説明します。これは、FieldShieldユーザーが検討できる飛行中のデータをマスキングするためのいくつかのアプローチの1つです。
その他のIRIDDMオプションには、次のものがあります。C / C ++ / C#、Java、または.NETプログラムに埋め込まれたAPI呼び出し可能なFieldShield関数。マスクされたビューを作成するSQLプロシージャに埋め込まれたリアルタイムのFieldShield関数。そして、許可されたユーザーのために静的にマスクされたテーブルの動的なマスク解除。
ここで紹介するプロキシベースのシステムは、SQL Sharp(SQL#)と呼ばれる構成および管理Webアプリケーションと組み合わせて、目的に合ったデータベース固有の「JDBCSQLTrail」ドライバーを使用します。この図は、実装前後のシステムアーキテクチャを示しています。
このアプリケーションは現在、次のリレーショナルデータベースプラットフォームをサポートしています。
- Oracle 11g、12c、18 / 19c
- PostgreSQL 9.5、9.6、10、11
- MS SQL 2014、2016
- SAP HANA 2.0
次のサードパーティコンポーネントが必要です:
- MS Windows 7,10、またはServer 2012以降(テスト済み)。
- JavaJDKおよびJRE1.8以降。
- SQL#Webサーバーを実行するためのTomcat8.5以降。
- 次のような最新のWebブラウザ:
- Google Chrome
- Mozilla Firefox
- アップルサファリ
- Microsoft Edge
- 保存するリポジトリデータベースとしてのOracleまたはPostgreSQL:
- SQL#ユーザーとグループの構成
- DBアクセスとアクティビティの制御
- 動的データマスキングポリシー
- SQL監査ログ
どのように機能しますか?
SQL#Webアプリケーション内で、データマスキングポリシーを作成して、JDBCSQLTrailドライバーを介してデータベースに接続する許可されたユーザーを除くすべてのユーザーの実行中の列値を編集します。保護するデータベースインスタンスごとに、そのドライバをインストールして構成する必要があります。
DDMポリシーは、マスクするテーブルと列、およびマスクされた値がどのように表示されるかを定義します。システムが適切に構成されると、ドライバーを介して接続されたすべてのクエリがマスキングポリシーの対象になります。
ユーザーのログインや特定のSQLアクティビティをブロックするポリシーを定義することもできます。完全なログインおよびSQLアクティビティ監査ログが生成され、SQL#で表示できます。
ドライバーは、ブロック、マスキング、または監査の目的でアプリケーションユーザーを区別しません。ただし、特定の名前のユーザーを承認して、同じドライバーを介してDBへの代替アプリケーションサーバー接続を確立し、マスクされていないデータを表示することができます。
マスキングポリシーの作成
SQL#でマスキングポリシーを作成するには、マスキングポリシーを使用します SQL#実行管理のタブ 画面。 +を選択します (追加)マスキングルールリストの右側にあるアイコン ラベル。
マスキングルールに名前とオプションの説明を付けます。次に、適用するマスクのタイプを正規表現の作成:から選択できます。 マスキングルールの追加のドロップダウン ダイアログ。
最初の3つのオプションは事前定義されていますが、正規表現ではカスタムマスキング形式を定義できます。 +をクリックします (追加) TAB / COLの右側にあるアイコン ラベルを付けて、1つ以上のテーブルと列の組み合わせを追加し、マスクするデータ値を指定します。
テーブルと列の各組み合わせが作成されたら、追加をクリックします ダイアログの中央にあるボタンをクリックして、それらをリストに追加します。テーブルと列の場所の指定が終了したら、[追加]をクリックします 下部にあるボタンをクリックして、場所をマスキングルールの追加に追加します ダイアログ。
最後に、[保存]をクリックします マスキングルールの追加の下部にあります マスキングルールが終了したらダイアログを表示します。この時点で、データにアクセスするように構成されているすべてのユーザーには、JDBCSQLTrailプロキシドライバーを介して接続するときにマスクされた値が表示されます。
ユーザーがマスクされていないデータを表示できるようにするには、それらをマスクされていないユーザーリストに追加する必要があります 、以下に説明するように。
ユーザーへの承認の付与
同じマスキングポリシー内 SQL#実行管理のタブ 画面。 +をクリックします (追加)マスクされていないユーザーリストの右側にあるアイコン ラベル。これにより、ユーザーの検索が表示されます 選択した列とテーブルへのクエリがマスクされない1人以上のユーザーを選択できるダイアログ。
[保存]をクリックします ユーザーの選択が終了すると、ダイアログの下部に表示されます。
DBアプリケーションからのSQL#とSQLTrailの使用
この例では、データベースアプリケーションは、Voracity、FieldShield、およびその他のIRIソフトウェア製品用のEclipseフロントエンドジョブ設計環境であるIRIWorkbenchになります。
SQL#プロキシサーバーとJDBC SQL Trailドライバーを使用してSQL制御と動的データマスキングをアプリケーションで有効にするには、Tomcatとそのプロキシサーバーを介してSQL#をアクティブ化する必要があります。また、IRIWorkbenchデータソースエクスプローラービューでJDBCSQL Trailドライバーを構成し、上記のようにSQL#でDDMポリシーを構成する必要があります。
これは、JDBCSQLTrailドライバーを介して接続されたOracleインスタンスのビューです。
すべての通常のデータベース操作とIRIジョブウィザードは、この接続を介して引き続き機能することに注意してください。これは、IRI Workbenchからの不正なアクティビティがブロックされ、ここから接続されたデータベースに発行されたすべてのSQLコマンドがSQL#監査ログに記録されることも意味します。
これは、SQL#でDDM用にポリシー構成されたORDERSテーブルに対するWorkbenchクエリです:
対:元のマスクされていないデータを表示する、許可されたユーザーによって実行された同じクエリ:
一方、SQL#アプリケーションのログセクションに戻ると、クエリレコードが表示されます。
IRIWorkbenchのIPアドレスから。