sql >> データベース >  >> RDS >> Database

FieldShieldでのプロキシベースの動的データマスキング

    この記事では、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アドレスから。


    1. Postgres関数がテーブルを返し、列にデータを返さない

    2. MySQL:LOAD DATALOCALINFILEを有効にする

    3. SQLServerのログオントリガー

    4. SQLServerデータベースパフォーマンス監視プラットフォームが提供する必要のある上位5つの機能