(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-07-08
(54)【発明の名称】データ漏洩防止
(51)【国際特許分類】
H04L 43/02 20220101AFI20220701BHJP
H04L 43/04 20220101ALI20220701BHJP
H04L 67/563 20220101ALI20220701BHJP
H04L 67/564 20220101ALI20220701BHJP
【FI】
H04L43/02
H04L43/04
H04L67/563
H04L67/564
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021565789
(86)(22)【出願日】2020-05-07
(85)【翻訳文提出日】2021-11-04
(86)【国際出願番号】 CN2020089040
(87)【国際公開番号】W WO2020233412
(87)【国際公開日】2020-11-26
(31)【優先権主張番号】201910426343.7
(32)【優先日】2019-05-21
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】520423471
【氏名又は名称】新華三信息安全技術有限公司
【氏名又は名称原語表記】NEW H3C SECURITY TECHNOLOGIES CO., LTD.
(74)【代理人】
【識別番号】110003339
【氏名又は名称】特許業務法人南青山国際特許事務所
(72)【発明者】
【氏名】朱学朋
(57)【要約】
データ漏洩防止(DLP)デバイス及びメッセージ処理方法であって、DLPデバイスはユーザデバイスから送信された、トランスミッションコントロールプロトコルTCPポート情報を含むインターネットプロトコルIPメッセージを受信し、TCPポート情報によって、DLPデバイスとユーザデバイスとの間に第1のTCP接続が確立されているか否かを検出し、第1のTCP接続が確立されていない場合、IPメッセージがデータメッセージである時に、IPメッセージのメッセージ特徴と各アプリケーション層プロトコルに対応するメッセージ特徴とを照合し、IPメッセージの伝送に使用されたアプリケーション層プロトコルを確定し、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されている場合、TCPポート情報によって、TCP接続ペアを確立し、TCP接続ペアは、第1のTCP接続、及びDLPデバイスとサーバとの間の第2のTCP接続を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ユーザデバイスから送信された、トランスミッションコントロールプロトコルTCPポート情報を含むインターネットプロトコルIPメッセージを受信し、ドライバーモジュールにIPメッセージを送信するネットワークカードと、
前記IPメッセージを受信し、前記IPメッセージをユーザモードバッファに一時保存する前記ドライバーモジュールと、
前記ユーザモードバッファから前記IPメッセージを読み取り、前記IPメッセージに対応する構造体を生成し、代理モジュールに前記構造体を送信する転送モジュールと、
前記構造体を受信し、前記構造体によって前記TCPポート情報を取得し、前記TCPポート情報によって前記DLPデバイスと前記ユーザデバイスとの間に第1のTCP接続が確立されているか否かを検出し、前記第1のTCP接続が確立されていない場合、前記IPメッセージがデータメッセージである時に、ディープパケットインスペクションDPIモジュールに前記構造体を送信する前記代理モジュールと、
前記構造体を受信し、前記構造体によって前記IPメッセージのメッセージ特徴を取得し、前記IPメッセージのメッセージ特徴と各アプリケーション層プロトコルに対応するメッセージ特徴とを照合することによって、前記IPメッセージの伝送に使用されたアプリケーション層プロトコルを確定し、前記IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されている場合、前記代理モジュールに第1の通知情報を送信する前記DPIモジュールと、を備え、
前記代理モジュールは、さらに、前記第1の通知情報を受信した後、前記TCPポート情報によって、TCP接続ペアを確立し、前記TCP接続ペアは、前記第1のTCP接続、及び、前記DLPデバイスとサーバとの間の第2のTCP接続を含む、データ漏洩防止のDLPデバイス。
【請求項2】
前記代理モジュールは、さらに、前記IPメッセージがプロトコルメッセージである時に、前記転送モジュールに第2の通知情報を送信し、
前記転送モジュールは、さらに、前記第2の通知情報を受信し、前記サーバが前記IPメッセージによって前記ユーザデバイスとのTCP接続を確立するように、前記第2の通知情報によって前記サーバに前記IPメッセージを送信する、請求項1に記載のDLPデバイス。
【請求項3】
前記DPIモジュールは、さらに、
前記IPメッセージに含まれる第1のユーザデータの位置をマークし、
前記IPメッセージに対してデカプセル化処理を行い、マークされた位置に対応する前記第1のユーザデータを取得して一時保存し、
予めに設定されたセキュリティポリシーを取得し、前記セキュリティポリシーはマッチング項目と動作項目を含み、
前記セキュリティポリシーから、前記第1のユーザデータにマッチングする目標マッチング項目を探し、前記目標マッチング項目に対応する動作項目を実行する、請求項1に記載のDLPデバイス。
【請求項4】
前記DPIモジュールは、具体的に、
前記目標マッチング項目に対応する動作項目がメッセージの通過である場合、前記代理モジュールに第3の通知情報を送信し、前記第3の通知情報は前記第1のユーザデータの第1の格納箇所を含み、
前記代理モジュールは、さらに、前記第3の通知情報を受信し、前記第1の格納箇所によって前記第1のユーザデータを探し、前記第2のTCP接続のTCPポート情報によって、前記第1のユーザデータに対してカプセル化処理を行い、TCPヘッダ及び前記第1のユーザデータを含む第2のユーザデータを得て、前記転送モジュールに第4の通知情報を送信し、前記第4の通知情報は前記第2のユーザデータの第2の格納箇所を含み、
前記転送モジュールは、さらに、前記第4の通知情報を受信し、前記第2の格納箇所によって前記第2のユーザデータを探し、前記第2のユーザデータに対してカプセル化処理を行い、前記IPメッセージを得て、前記サーバに前記IPメッセージを送信する、請求項3に記載のDLPデバイス。
【請求項5】
前記DPIモジュールは、具体的に、
前記目標マッチング項目に対応する動作項目がメッセージを遮断することである場合、前記代理モジュールに第5の通知情報を送信し、前記第5の通知情報は前記第1のユーザデータの第1の格納箇所と第1の遮断データを含み、
前記代理モジュールは、さらに、前記第5の通知情報を受信し、前記第1の格納箇所によって前記第1のユーザデータをリリースし、前記第1のTCP接続のTCPポート情報によって、前記第1の遮断データに対してカプセル化処理を行い、TCPヘッダ及び前記第1の遮断データを含む第2の遮断データを得て、前記転送モジュールに前記第2の遮断データを送信し、
前記転送モジュールは、さらに、前記第2の遮断データを受信し、前記第2の遮断データに対してカプセル化処理を行い、遮断メッセージを得て、前記ユーザデバイスに前記遮断メッセージを送信する、請求項3に記載のDLPデバイス。
【請求項6】
前記DPIモジュールは、具体的に、
同じオリジナルデータに属する全てのユーザデータを受信したか否かを判断し、
同じオリジナルデータに属する全てのユーザデータを受信した場合、予めに設定されたセキュリティポリシーを取得する、請求項3に記載のDLPデバイス。
【請求項7】
前記DPIモジュールは、さらに、
前記IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていない場合、前記代理モジュールに第6の通知情報を送信し、
前記代理モジュールは、さらに、前記第6の通知情報を受信し、前記転送モジュールに送信し、
前記転送モジュールは、さらに、前記第6の通知情報を受信し、前記第6の通知情報によって、前記サーバに前記IPメッセージを送信する、請求項3~6のいずれかに記載のDLPデバイス。
【請求項8】
前記代理モジュールは、さらに、
前記IPメッセージがセキュリティソケットレイヤーSSLプロトコルの暗号化メッセージである場合、オープンセキュリティソケットレイヤーOpenSSL暗号ライブラリの第1のインタフェース及び第2のインタフェースをそれぞれ呼び出し、
呼び出された第1のインタフェースと前記第1のTCP接続とをバインドし、呼び出された第2のインタフェースと前記第2のTCP接続とをバインドする、請求項1に記載のDLPデバイス。
【請求項9】
ユーザデバイスから送信されたトランスミッションコントロールプロトコルTCPポート情報を含むインターネットプロトコルIPメッセージを受信することと、
前記TCPポート情報によって、前記DLPデバイスと前記ユーザデバイスとの間に第1のTCP接続が確立されているか否かを検出することと、
前記第1のTCP接続が確立されていない場合、前記IPメッセージがデータメッセージである時に、前記IPメッセージのメッセージ特徴と各アプリケーション層プロトコルに対応するメッセージ特徴とを照合し、前記IPメッセージの伝送に使用されたアプリケーション層プロトコルを確定することと、
前記IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されている場合、前記TCPポート情報によって、TCP接続ペアを確立し、前記TCP接続ペアは、前記第1のTCP接続、及び前記DLPデバイスとサーバとの間の第2のTCP接続を含むことと、を含み、
データ漏洩防止DLPデバイスに適用されるメッセージ処理方法。
【請求項10】
前記メッセージがプロトコルメッセージである時に、前記サーバが前記IPメッセージによって前記ユーザデバイスとのTCP接続を確立するように、前記サーバに前記IPメッセージを送信することを含む、請求項9に記載の方法。
【請求項11】
前記IPメッセージに含まれる第1のユーザデータの位置をマークすることと、
前記IPメッセージに対してデカプセル化処理を行い、マークされた位置に対応する前記第1のユーザデータを取得して一時保存することと、
予めに設定されたセキュリティポリシーを取得し、前記セキュリティポリシーはマッチング項目と動作項目を含むことと、
前記セキュリティポリシーから、前記第1のユーザデータにマッチングする目標マッチング項目を探し、前記目標マッチング項目に対応する動作項目を実行することと、を含む、請求項9に記載の方法。
【請求項12】
前記目標マッチング項目に対応する動作項目を実行することは、
前記目標マッチング項目に対応する動作項目がメッセージの通過である場合、前記第2のTCP接続のTCPポート情報によって、前記第1のユーザデータに対してカプセル化処理を行い、前記IPメッセージを得ることと、
前記サーバに前記IPメッセージを送信することと、を含む、請求項11に記載の方法。
【請求項13】
前記目標マッチング項目に対応する動作項目を実行することは、
前記目標マッチング項目に対応する動作項目がメッセージを遮断することである場合、前記第1のTCP接続のTCPポート情報によって、遮断メッセージを生成することと、
前記ユーザデバイスに前記遮断メッセージを送信することと、を含む、請求項11に記載の方法。
【請求項14】
前記予めに設定されたセキュリティポリシーを取得することは、
同じオリジナルデータに属する全てのユーザデータを受信したか否かを判断することと、
同じオリジナルデータに属する全てのユーザデータを受信した場合、予めに設定されたセキュリティポリシーを取得することと、を含む、請求項11に記載の方法。
【請求項15】
前記IPメッセージがセキュリティソケットレイヤーSSLプロトコルの暗号化メッセージである場合、オープンセキュリティソケットレイヤーOpenSSL暗号ライブラリの第1のインタフェース及び第2のインタフェースをそれぞれ呼び出すことと、
呼び出された第1のインタフェースと前記第1のTCP接続とをバインドし、呼び出された第2のインタフェースと前記第2のTCP接続とをバインドすることと、を含む、請求項9に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
本願は2019年5月21日に中国国家知的財産権局へ提出された、出願番号が201910426343.7であり、発明の名称が「データ漏洩防止デバイス及びメッセージ処理方法」である中国特許出願に基づき優先権を主張し、当出願の全ての内容を援用する。
【0002】
情報技術の急速な発展に伴い、インターネットは、日常事務、通信コミュニケーション、及びコラボレーションに欠かせないものになったが、インターネットが作業の効率を向上させた一方で、情報の記録及びコンピューターへのアクセス制御に対するセキュリティが要求される。しかしながら、社内人がインターネットによりある操作を意図的に、または意図せずに実行することによって、ネットワークリークなどの重大な損失事項がよく発生する。この課題を解決するために、データ漏洩防止(Data Leakage Prevention、略称DLP)技術が提出された。
【0003】
現在、DLP技術でセキュリティ保護を行う時、代理デバイスであるDLPデバイスは、ブリッジによりユーザデバイスとサーバとの間に接続される。DLPデバイスは、指定された1つ又は複数のトランスミッションコントロールプロトコル(Transmission Control Protocol、略称TCP)ポートを傍受する。DLPデバイスはユーザデバイスから伝送されたハンドシェイクメッセージを受信した後、予めに設定されたファイアウォール規則によって、指定されたTCPポートにハンドシェイクメッセージをマッピングする。そして、DLPデバイスは、指定されたTCPポートによって、ユーザデバイスとのTCP接続を確立する。なお、DLP設備は、指定されたTCPポートによって、サーバとのTCP接続を確立する。
【0004】
これにより、DLP設備は、指定されたTCPポートによって、ユーザデバイス及びサーバとのTCP接続をそれぞれ確立する。さらに、ユーザデバイスとサーバは、DLP設備によって、相手デバイスにメッセージを伝送するようになっている。
【0005】
前記データ漏洩防止の処理において、DLPデバイスは指定されたTCPポートを傍受することができ、また、データ漏洩防止の実現はオペレーティングシステムが提供したブリッジとファイアウォール規則に依存するので、ブリッジが故障し、カーネルクラッシュまでもがおこる場合は、DLPデバイスとユーザデバイス及びサーバのそれぞれとの間で確立されたTCP接続が中断され、ユーザデバイスがネットワークにアクセスできなくなる問題が発生する。
【図面の簡単な説明】
【0006】
【
図1】
図1は、本願の実施例が提供するDLPソフトウェア構造の模式図である。
【
図2】
図2は、本願の実施例が提供するDLPデバイスの構成の模式図である。
【
図3】
図3は、本願の実施例が提供するHTTPメッセージ処理の模式的なフローチャートである。
【
図4】
図4は、本願の実施例が提供する他のDLPデバイスの構成の模式図である。
【
図5】
図5は、本願の実施例が提供するIPメッセージ処理の模式的なフローチャートである。
【
図6】
図6は、本願の実施例が提供する代理モジュールのメッセージ処理の模式的なフローチャートである。
【
図7】
図7は本願の実施例が提供するDLPサービススキャンサブモジュールと代理モジュールのメッセージ処理の模式的なフローチャートである。
【
図8】
図8は、本願の実施例が提供するメッセージ処理方法の模式的なフローチャートである。
【発明を実施するための形態】
【0007】
以下、本願の実施例の図面を参照して、本願の実施例の技術案を明確かつ完全に説明する。勿論、説明される実施例は、本願の一部の実施例にすぎず、すべての実施例ではない。本願における実施例に基づいて、当業者が創造的な働きをしなくでも得られるすべての実施例は、いずれも本願が特許請求する範囲に入る。
【0008】
本願の実施例は、DLPデバイスの任意のTCPポートに対する傍受を実現するため、そして、ブリッジの故障やカーネルクラッシュによってユーザがネットワークにアクセスできなくなる問題を解決するために、DLPデバイスを提供する。
図1に示すDLPソフトウェア構造は、DLP管理プラットフォームとDLPデバイスとを含む。DLP管理プラットフォームは、ユーザに、DLPデバイスを管理、操作するためのプラットフォームを提供する。
【0009】
具体的に、DLP管理プラットフォームは、DLPイベント表示モジュールとDLPポリシー作成モジュールとを含む。
【0010】
ここで、DLPイベント表示モジュールは、DLPデバイスが発信したDLPイベントを表示するためのものである。DLPイベントとは、DLPデバイスのDLPサービスに対するスキャン処理の処理結果である。処理結果は、メッセージを通過させることやメッセージを遮断することなどを含む。
【0011】
DLPポリシー作成モジュールは、ユーザが入力したセキュリティポリシーを受信し、DLPデバイスにセキュリティポリシーを送信するためのものである。
【0012】
DLPデバイスは、ドライバーモジュール、インターネットプロトコル(Internet Protocol、略称IP)メッセージ転送モジュール、DLP前処理モジュール、アプリケーション(Application、略称APP)代理入口、APP代理出口、TCP代理とセキュリティソケットレイヤー(Secure Sockets Layer、略称SSL)オフロードモジュール、ディープパケットインスペクション(Deep Packet Inspection、略称DPI)エンジン、DLPサービススキャンモジュール、DLP通信モジュールなどを含む。
【0013】
ここで、ドライバーモジュールは、ネットワークカードが受信したIPメッセージをユーザモードバッファにマッピングするためのものである。
【0014】
IPメッセージ転送モジュールはIPメッセージを転送するためのものである。IPメッセージ転送モジュールは、完全なDLPデバイスのIPメッセージ転送機能を実現できる。
【0015】
DLP前処理モジュールは、IPメッセージフラグメントを再構成すること、及びTCPメッセージフラグメントを再構成することなどのメッセージ前処理操作を行うためのものである。
【0016】
TCP代理とSSLオフロードモジュールは、TCPユーザモードプロトコルスタック及びオープンセキュリティソケットレイヤー(Open Secure Sockets Layer、略称OpenSSL)暗号ライブラリを管理するためのものである。
【0017】
中間キャッシュは、DLPデバイスがIPメッセージの処理において生成するデータを一時保存するためのものである。
【0018】
TCP入口は、DLPデバイスがIPメッセージを受信する時に、APP代理入口にIPメッセージに対応する構造体を提供するためのものである。ここで、IPメッセージは当該TCP入口のTCPポート情報を含む。
【0019】
TCP出口は、DLPデバイスがIPメッセージを送信する時に、APP代理出口にTCP入口のTCPポート情報を提供するためのものである。
【0020】
APP代理入口は、TCPユーザモードプロトコルを呼び出してTCP入口とTCP出口を作成し、IPメッセージ転送モジュールがTCP入口を介してAPP代理入口に送信するIPメッセージに対応する構造体を受信し、OpenSSL暗号ライブラリを呼び出して、IPメッセージのユーザデータを復号し、復号して得たユーザデータを中間バッファに一時保存し、DPIエンジンに構造体を送信するためのものである。
【0021】
DPIエンジンは、APP代理入口から送信された構造体を受信し、IPメッセージに対してプロトコル分析を行い、IPメッセージの伝送に使用されたアプリケーション層プロトコルを確定し、IPメッセージに含まれるユーザデータを復元するためのものである。
【0022】
DLPサービススキャンモジュールは、DPIエンジンから送信されたスキャン通知情報を受信して、DLPサービスに対してスキャン処理を行うためのものである。具体的に、セキュリティポリシーから、ユーザデータにマッチングする目標マッチング項目を探し、目標マッチング項目に対応する動作項目により、APP代理出口に対応の通知情報を送信する。
【0023】
APP代理出口は、DLPサービススキャンモジュールから送信された通知情報を受信し、TCP出口を呼び出し、IPメッセージ転送モジュールに指示してメッセージを転送させ、或いは、一時保存されたIPメッセージをリリースする。
【0024】
DLP通信モジュールは、DLPサービススキャンモジュールがDLPサービスに対するスキャン処理の処理結果を取得して、DLP管理プラットフォームに処理結果を送信し、DLP管理プラットフォームから送信されたセキュリティポリシーを受信するためのものである。
【0025】
本願の実施例において、DLPデバイスは、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていると確定した時、IPメッセージに含まれるTCPポート情報に基づいて、DLPデバイスとユーザデバイスとの第1のTCP接続、及びDLPデバイスとサーバとの第2のTCP接続とを確立し、さらに、第1のTCP接続と第2のTCP接続によって、ユーザデバイスのデータ漏洩防止を実現する。
【0026】
DLPデバイスは、データ漏洩防止において、任意のTCPポートに対する傍受を実現することが理解できる。なお、DLPデバイスは、他にブリッジやファイアウォール規則を設置せずに、ブリッジの故障やカーネルクラッシュによってユーザがネットワークにアクセスできなくなる問題を解決した。
【0027】
以下、具体的な実施例によって、本願の実施例が提供するDLPデバイスを説明する。
【0028】
図2は本願の実施例が提供するDLPデバイスの模式図である。当該DLPデバイスは、ネットワークカード104と、ドライバーモジュール100と、転送モジュール101と、代理モジュール102と、DPIモジュール103とを含む。ここで、ドライバーモジュール100と、転送モジュール101と、代理モジュール102と、DPIモジュール103とはソフトウェアモジュール、即ち、中央処理装置(Central Processing Unit、略称CPU)でソフトウェアプログラムを実行して実現するモジュールであってもよい。前記転送モジュール101は、
図1のIPメッセージ転送モジュールである。前記代理モジュール102は、
図1のAPP代理出口とAPP代理入口とを含む。前記DPIモジュール103は、
図1のDPIエンジンとDPIサービススキャンモジュールを含む。
【0029】
ここで、ネットワークカード104は、ユーザデバイスから送信されたIPメッセージを受信し、ドライバーモジュール100にIPメッセージを送信するためのものである。IPメッセージは、IPヘッダ、TCPヘッダなどの情報を含む。ここで、TCPヘッダはTCPポート情報を含む。IPメッセージは、プロトコルメッセージであってもよく、データメッセージでもよい。
【0030】
ドライバーモジュール100は、IPメッセージを受信し、IPメッセージをユーザモードバッファに一時保存するためのものである。
【0031】
本願の実施例において、バッファは、カーネルモードバッファとユーザモードバッファとを含む。DLPデバイスがカーネルモードバッファにデータを一時保存する速度は、ユーザモードバッファにデータを一時保存する速度より速い。上位層アプリケーションは、ユーザモードバッファに格納されているデータを直接にアクセスできるが、カーネルモードバッファに格納されているデータを直接にアクセスできない。
【0032】
一例では、ドライバーモジュール100は、IPメッセージを受信すると、ひとまずIPメッセージをカーネルモードバッファに格納し、その後、IPメッセージをカーネルモードバッファからユーザモードバッファにコピーしてもよい。
【0033】
別の例では、ドライバーモジュール100は、IPメッセージをユーザモードバッファに格納してもよい。こうすれば、ドライバーモジュール100は、IPメッセージをカーネルモードバッファからユーザモードバッファにコピーする必要がなくなり、メッセージ処理の効率を向上させる。
【0034】
一例では、ドライバーモジュール100として、CPUが提供するゼロコピーテクノロジーのドライバーモジュール、例えば、データプレーン開発キット(Data Plane Development Kit、略称DPDK)を採用してもよい。それによって、受信したIPメッセージを、カーネルモードバッファをスキップするように、ユーザモードバッファに直接に一時保存することを実現できる。
【0035】
転送モジュール101は、ユーザモードバッファからIPメッセージを読み取り、IPメッセージに対応する構造体を生成し、代理モジュール102に構造体を送信するためのものである。
【0036】
本願の実施例において、転送モジュール101は、IPメッセージを転送し、転送の各段階に上位層のサービスポートを呼び出し、IPメッセージを処理するためのものである。
【0037】
具体的に、転送モジュール101は、ユーザモードバッファからIPメッセージを読み取り、IPメッセージを分析し、IPメッセージに対応する構造体を生成することができる。ここで、IPメッセージの構造体は、IPメッセージのIPヘッダ情報やTCPヘッダ情報、IPメッセージの格納箇所などを含む。転送モジュール101は、IPメッセージに対応する構造体を代理モジュール102に送信する。
【0038】
代理モジュール102は、転送モジュール101から送信されたIPメッセージに対応する構造体を受信し、IPメッセージに対応する構造体によって、TCPポート情報を取得し、TCPポート情報によって、DLPデバイスとユーザデバイスとの間に第1のTCP接続が確立されているか否かを検出し、第1のTCP接続が確立されていない場合、IPメッセージがデータメッセージである時に、DPIモジュール103にIPメッセージに対応する構造体を送信するためのものである。
【0039】
代理モジュール102は、転送モジュール101から送信された構造体を受信した後、構造体からTCPポート情報を取得してもよく、構造体に基づいて、IPメッセージの格納箇所を確定し、格納箇所によってIPメッセージを見つけ、IPメッセージからTCPポート情報を取得してもよい。代理モジュール102は、TCPポート情報によって、DLPデバイスとユーザデバイスとの間に第1のTCP接続が確立されているか否かを検出する。
【0040】
選択可能な一実施例において、DLPデバイスは、TCP接続リストを設置してもよい。TCP接続リストは、DLPデバイスとユーザデバイスとの間に確立したTCP接続のTCPポート情報を含む。これによって、前記代理モジュール102は、TCPポート情報によって、DLPデバイスとユーザデバイスとの間に第1のTCP接続が確立されているか否かを検出する処理は、以下のように実現される。
【0041】
具体的には、代理モジュール102は、取得したTCPポート情報によって、TCP接続リストに当該TCPポート情報が含まれているか否かを検出する。含まれている場合、代理モジュール102は、DLPデバイスとユーザデバイスとの間に第1のTCP接続が確立されていると確定する。含まれていない場合、代理モジュール102は、DLPデバイスとユーザデバイスとの間に第1のTCP接続が確立されていないと確定する。
【0042】
第1のTCP接続が確立されている場合、代理モジュール102は、DPIモジュール103にIPメッセージに対応する構造体を送信する。DPIモジュール103は、IPメッセージに対応する構造体によって、IPメッセージに対してプロトコル認識を行う。
【0043】
第1のTCP接続が確立されていない場合、代理モジュール102は、IPメッセージのメッセージの類型を検出し、即ち、IPメッセージがプロトコルメッセージであるか、データメッセージであるかを検出する。本願の実施例において、プロトコルメッセージは、具体的にハンドシェイクメッセージであってもよい。ハンドシェイクメッセージは、デバイス同士の間でTCP接続を確立するためのものである。下記実施例において、プロトコルメッセージがハンドシェイクメッセージである例で説明する。
【0044】
代理モジュール102が検出したIPメッセージがデータメッセージである場合、代理モジュール102はDPIモジュール103にIPメッセージに対応する構造体を送信する。
【0045】
DPIモジュール103は、代理モジュール102から送信されたIPメッセージに対応する構造体を受信し、IPメッセージに対応する構造体によって、IPメッセージのメッセージ特徴を取得し、IPメッセージのメッセージ特徴を各アプリケーション層プロトコルに対応するメッセージ特徴と照合し、IPメッセージの伝送に使用されたアプリケーション層プロトコルを確定し、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されている場合、代理モジュール102に第1の情報を送信するためのものである。
【0046】
ここで、第1の通知情報は、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていることを指示する。IPメッセージのメッセージ特徴は、IPメッセージの5タプル情報やメッセージの長さ、特徴キーワードなどを含んでもよい。
【0047】
DPIモジュール103は、IPメッセージに対応する構造体を受信した後、IPメッセージに対してプロトコル認識を行う。具体的に、DPIモジュール103は、IPメッセージに対応する構造体によって、IPメッセージの格納箇所を確定し、格納箇所によってIPメッセージを見つけ、IPメッセージのメッセージ特徴を取得し、IPメッセージのメッセージ特徴を各アプリケーション層プロトコルに対応するメッセージ特徴と照合することによって、IPメッセージの伝送に使用されたアプリケーション層プロトコルを確定する。
【0048】
本願の実施例において、DLPデバイスには、各アプリケーション層プロトコルに対応するメッセージ特徴が予めに配置されている。例えば、アプリケーション層プロトコルとしては、プロトコル1とプロトコル2がある。DLPデバイスに予めに配置されている各アプリケーション層プロトコルに対応するメッセージ特徴は、プロトコル1に対応するメッセージ特徴であるx及びxxと、プロトコル2に対応するメッセージ特徴であるy及びyyとを含む。DPIモジュール103は、メッセージ特徴がx及びxxである一IPメッセージを取得した場合、当該IPメッセージのメッセージ特徴がプロトコル1に対応するメッセージ特徴にマッチングし、プロトコル1が当該メッセージの伝送に使用されたアプリケーション層プロトコルであると確定する。
【0049】
DPIモジュール103はIPメッセージの伝送に使用されたアプリケーション層プロトコルを確定した後、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されている予めに設定されたアプリケーション層プロトコルであるか否かを検出する。そうである場合、DPIモジュール103は、代理モジュール102に第1の通知情報を送信する。
【0050】
ここで、例として、第1の通知情報は関数の戻り値であってもよいが、これに限定しない。この関数の戻り値は、具体的に、DPIモジュール103と代理モジュール102とが予めに取り決めた結果である。例えば、0で傍受されていることを表し、1で傍受されていないことを表す。DPIモジュール103は、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていると確定した場合、代理モジュール102に関数値0を送信する。
【0051】
前記関数は、Fun()関数、get()関数などであってもよい。本願の実施例において限定しない。本願の実施例において、0で傍受されていることを表し、1で傍受されていないことを表す例のみで説明するが、これに限定しない。例えば、3で傍受されていることを表し、4で傍受されていないことを表してもよい。
【0052】
代理モジュール102は、さらに、第1の通知情報を受信した後、IPメッセージのTCPポート情報によって、TCP接続ペアを確立する。ここで、TCP接続ペアは、第1のTCP接続と、DLPデバイスと前記サーバとの間の第2のTCP接続とを含む。
【0053】
代理モジュール102は、第1の通知情報を受信した後、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていると確定し、TCPユーザモードプロトコルスタックを利用し、IPメッセージのTCPポート情報によって、ユーザデバイスとの第1のTCP接続を確立し、サーバとの第2のTCP接続を確立する。
【0054】
第1のTCP接続の確立に使用されたTCPポート情報とIPメッセージに含まれているTCPポート情報とが同じであることが理解できる。同じく、第2のTCP接続の確立に使用されたTCPポート情報とIPメッセージに含まれているTCPポート情報とが同じである。DLPデバイスによってユーザデバイスとサーバとの間のTCP接続が第1のTCP接続と第2のTCP接続に区切る、即ち、DLPデバイスがユーザデバイスとサーバとの間のTCP接続を分断しても、ユーザデバイスから送信されたIPメッセージのTCPポートなどの情報を変更せず、IPメッセージが代理されることがサーバに発見されるリスクを低下させる。
【0055】
本願の実施例において、前記第1のTCP接続及び第2のTCP接続のような、DLPデバイスが確立したTCP接続に対して、DLPデバイスは、これらのTCP接続の確立に使用された任意のTCPポートを傍受できる。これによって、DLPデバイスは、データ漏洩防止を実行する際に、指定されたTCPポートを傍受するに代わって、任意のTCPポートに対する傍受を実現した。
【0056】
任意で、本願の実施例において、代理モジュール102はIPメッセージのメッセージの類型を検出する処理において、IPメッセージがプロトコルメッセージ(例えば、ハンドシェイクメッセージ)であると確定した場合、転送モジュール101に第2の通知情報を送信してもよい。
【0057】
ここで、第2の通知情報は、IPメッセージがプロトコルメッセージであることを指示する。
【0058】
転送モジュール101は、第2の通知情報を受信した後、第2の通知情報によって、IPメッセージがプロトコルメッセージであると確定する。転送モジュール101は、ユーザモードバッファからIPメッセージを読み取り、サーバに当該IPメッセージを送信する。サーバは、当該IPメッセージによって、ユーザデバイスとのTCP接続を確立する。このように、DLPデバイスが処理するメッセージの数を低下させ、DLPデバイスの負荷を軽減し、且つ、ユーザデバイスがサーバとのTCP接続を直接に確立し、IPメッセージが代理されることがサーバに発見されるリスクを低下させる。
【0059】
ここで、例として、第2の通知情報は関数の戻り値であってもよいが、これに限定しない。この関数の戻り値は、具体的に、代理モジュール102と転送モジュール101とが予めに取り決めた結果である。例えば、0でIPメッセージがプロトコルメッセージであることを表し、1でIPメッセージがデータメッセージであることを表す。DPIモジュール103は、IPメッセージがプロトコルメッセージであると検出した場合、代理モジュール102に関数値0を送信する。DPIモジュール103は、IPメッセージがデータメッセージであると検出した場合、代理モジュール102に関数値1を送信する。
【0060】
前記関数は、Fun()関数、get()関数などであってもよい。本願の実施例は、これに対して限定しない。本願の実施例において、0でIPメッセージがプロトコルメッセージであることを表し、1でIPメッセージがデータメッセージであることを表す例のみで説明するが、これに限定しない。例えば、3でIPメッセージがプロトコルメッセージであることを表し、4でIPメッセージがデータメッセージであることを表してもよい。
【0061】
任意で、本願の実施例において、DPIモジュール103は、さらに、ディープパケットインスペクションステップを実行するためのものであってもよく、これにより、データ漏洩防止を実現する。
【0062】
具体的に、IPメッセージは、さらに、第1のユーザデータを含む。まず、DPIモジュール103は、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていると確定した場合、DPIモジュール103は、第1のユーザデータの位置をマークする。即ち、DPIモジュール103は、IPメッセージにおいて第1のユーザデータが位置する具体的なバイトをマークする。
【0063】
そして、DPIモジュール103は、IPメッセージに対してデカプセル化処理を行い、カプセルヘッダが除去された内部メッセージを得る。DPIモジュール103は、マークされた位置に対応する第1のユーザデータを取得して一時保存する。ここで、第1のユーザデータの位置に対応する第1のユーザデータとは、IPメッセージにおいて第1のユーザデータの位置にあるユーザデータである。
【0064】
最後に、DPIモジュール103は、予めに設定されたセキュリティポリシーを取得する。セキュリティポリシーはマッチング項目と動作項目を含む。DPIモジュール103は、セキュリティポリシーから、第1のユーザデータにマッチングする目標マッチング項目を探し、目標マッチング項目に対応する動作項目を実行する。
【0065】
任意で、本願の実施例において、DPLモジュール103は、さらに、同じオリジナルデータに属するユーザデータを受信したか否かを判断するステップを実行するためのものであり、これにより、オリジナルデータに対して正確にディープパケットインスペクションを行うことを実現する。
【0066】
具体的に、DPIモジュール103は、同じオリジナルデータに属する全てのユーザデータを受信したかを判断する。同じオリジナルデータに属する全てのユーザデータを受信した場合、即ち、オリジナルデータに復元できる場合、DPIモジュール103は、予めに設定されたセキュリティポリシーを取得し、セキュリティポリシーから、ユーザデータにマッチングする目標マッチング項目を探す。同じオリジナルデータに属する全てのユーザデータを受信しなかった場合、DPIモジュール103は、同じオリジナルデータに属する全てのユーザデータを受信したかに対する判断を繰り返して実行する。
【0067】
送信端は伝送するオリジナルデータが1つのアプリケーション層メッセージに載せるように伝送を行うことが理解できる。伝送するオリジナルデータの長さ(又はバイト数)が多い場合、送信端はアプリケーション層メッセージに対してフラグメント処理を行う必要がある。つまり、送信端は1つのアプリケーション層メッセージを複数のIPパケットに区切って伝送を行う。前記した1つのIPパケットは、1つのIPメッセージとなる。受信端は、アプリケーション層メッセージの全てのIPメッセージフラグメントを受信した後、伝送されるオリジナルデータに復元する。ここで、アプリケーション層メッセージは、ハイパーテキスト伝送プロトコル(Hyper Text Transport Protocol、略称HTTP)メッセージや、シンプルメール伝送プロトコル(Simple Mail Transfer Protocol、略称SMTP)メッセージ、ファイル伝送プロトコル(File Transfer Protocol、略称FTP)メッセージなどを含む。
【0068】
一例では、DPIモジュール103は、以下のように、同じオリジナルデータに属する全てのユーザデータを受信したか否かを判断できる。
【0069】
具体的に、1つのアプリケーション層メッセージが複数のIPメッセージに区切られた場合、最初のIPメッセージにアプリケーション層メッセージの開始マークが載せており、最後のIPメッセージにアプリケーション層メッセージの終了マークが載せている。DPIモジュール103が同じアプリケーション層メッセージに属する開始マークと終了マークを取得した場合、DPIモジュール103は、完全なアプリケーション層メッセージを受信したと確定し、これにより、同じオリジナルデータに属する全てのユーザデータを受信したと確定できる。
【0070】
例えば、
図3に示されるHTTPメッセージの処理の流れである。1つのHTTPメッセージが複数のIPメッセージに区切られ、DLPデバイスが最初のIPメッセージを受信した時、DPIモジュール103は最初のIPメッセージから開始マークを取得した。HTTPメッセージの伝送を行う時に、デバイスは、HTTPメッセージの1つのIPメッセージを通過させ、当該IPメッセージに対応する応答メッセージを受信した場合のみ、HTTPメッセージの次のIPメッセージを送信することが理解できる。
【0071】
そのため、DPIモジュール103は最初のIPメッセージにおけるユーザデータを一時保存し、最初のIPメッセージを通過させる。同じく、DPIデバイスは、HTTPメッセージの最後のIPメッセージを受信するまで、HTTPメッセージのIPメッセージのそれぞれにおけるユーザデータを一時保存し、IPメッセージのそれぞれを通過させる。DLPデバイスがHTTPメッセージの最後のIPメッセージを受信した後、DPIモジュール103はHTTPメッセージの最後のIPメッセージから終了マークを取得する。この時、DPIモジュール103は、完全なHTTPメッセージを受信した、即ち、同じオリジナルデータに属する全てのユーザデータを受信したと確定する。DPIモジュール103は、予めに設定されたセキュリティポリシーを取得し、セキュリティポリシーから、オリジナルデータにマッチングする目標マッチング項目を探し、目標マッチング項目に対応する動作項目を実行する。
【0072】
任意で、本願の実施例において、セキュリティポリシーが含む動作項目は、2つのアクションの類型、即ち、メッセージの通過及びメッセージの遮断があってもよい。
【0073】
一実施形態において、目標マッチング項目に対応する動作項目がメッセージの通過である場合、DPIモジュール103は代理モジュール102に第3の通知情報を送信する。第3の通知情報はIPメッセージを通過させることを指示し、且つ、第3の通知情報は第1のユーザデータの第1の格納箇所を含む。
【0074】
代理モジュール102は、第3の通知情報を受信した後、IPメッセージを通過させると確定し、第1の格納箇所によって第1のユーザデータを探す。代理モジュール102は、第2のTCP接続のTCPポート情報によって、第1のユーザデータに対してカプセル化処理を行い、第2のユーザデータを得る。第2のユーザデータは、TCPヘッダ及び第1のユーザデータを含む。代理モジュール102は、転送モジュール101に第4の通知情報を送信する。第4の通知情報はIPメッセージを通過させることを指示し、且つ、第4の通知情報は第2のユーザデータの第2の格納箇所を含む。
【0075】
転送モジュール101は、第4の通知情報を受信した後、IPメッセージを通過させると確定し、第2の格納箇所によって第2のユーザデータを探す。転送モジュール101は、第2のユーザデータに対してカプセル化処理を行い、IPメッセージを取得し、サーバにIPメッセージを送信する。転送モジュール101が第2のユーザデータに対してカプセル化処理を行って得たIPメッセージは、前記ネットワークカード104が受信したIPメッセージと同じであることが理解できる。
【0076】
他の実施形態において、目標マッチング項目に対応する動作項目がメッセージの遮断である場合、DPIモジュール103は代理モジュール102に第5の通知情報を送信する。第5の通知情報はIPメッセージを遮断することを指示し、且つ、第5の通知情報は第1のユーザデータの第1の格納箇所と第1の遮断データを含む。ここで、第1の遮断データは、DLPデバイスが予めに設定した1つの文字列である。
【0077】
代理モジュール102は、第5の通知情報を受信した後、第1の格納箇所によって第1のユーザデータを見つけてリリースする。なお、代理モジュール102は、第1のTCP接続のTCPポート情報によって、第1の遮断データに対してカプセル化処理を行い、第2の遮断データを得る。第2の遮断データは、TCPヘッダ及び第1の遮断データを含む。代理モジュール102は、転送モジュール101に第2の遮断データを送信する。
【0078】
転送モジュール101は第2の遮断データを受信した後、第2の遮断データに対してカプセル化処理を行い、遮断メッセージを得る。転送モジュール101はサーバに代わって、ユーザデバイスに遮断メッセージを送信する。一例において、遮断メッセージは「403禁止(Forbidden)」の遮断メッセージである。ここで、「403禁止(Forbidden)」は第1の遮断データとして理解できる。
【0079】
ユーザデバイスが遮断メッセージを受信した後、今回のアクセスが失敗で、アクセスデータにエラーが発生したことを確定できる。
【0080】
ここで、例として、第3の通知情報と第5の通知情報は関数の戻り値であってもよいが、これに限定しない。これらの関数の戻り値は、DPIモジュール103と代理モジュール102とが予めに取り決めた結果である。例えば、3でメッセージを通過させることを表し、4でメッセージを遮断することを表す。DPIモジュール103は、目標マッチング項目に対応する動作項目がメッセージを通過させることであると確定した場合、代理モジュール102に関数値3を送信する。DPIモジュール103は、目標マッチング項目に対応する動作項目がメッセージを遮断することであると確定した場合、代理モジュール102に関数値4を送信する。
【0081】
前記関数は、Fun()関数、get()関数などであってもよい。本願の実施例は、これに対して限定しない。本願の実施例において、3でメッセージを通過させることを表し、4でメッセージを遮断することを表す例のみで説明するが、これに限定しない。例えば、1でメッセージを通過させることを表し、0でメッセージを遮断することを表してもよい。
【0082】
同じく、第4の通知情報は関数の戻り値であってもよい。この関数の戻り値は、転送モジュール101と代理モジュール102とが予めに取り決めた結果である。例えば、3でメッセージを通過させることを表し、4でメッセージを遮断することを表す。代理モジュール102は、第3の通知情報を受信した場合、転送モジュール101に関数値3を送信する。代理モジュール102は、第5の通知情報を受信する場合、転送モジュール101に関数値4を送信する。
【0083】
前記関数は、Fun()関数、get()関数などであってもよい。本願の実施例は、これに対して限定しない。本願の実施例において、3でメッセージを通過させることを表し、4でメッセージを遮断することを表す例のみで説明するが、これに限定しない。例えば、1でメッセージを通過させることを表し、0でメッセージを遮断することを表してもよい。
【0084】
任意で、本願の実施例において、DPIモジュール103は、さらに、前記IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていない場合、代理モジュール102に第6の通知情報を送信する処理を実行するためのものであり、これにより、IPメッセージの高速転送を実現する。
【0085】
具体的に、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていない場合、DPIモジュール103は代理モジュール102に第6の通知情報を送信する。第6の通知情報は、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていることを指示する。
【0086】
代理モジュール102は、第6の通知情報を受信し、転送モジュール101に送信する。転送モジュール101は第6の通知情報を受信した後、第6の通知情報によって、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていると確定し、ユーザモードバッファからIPメッセージを読み取り、サーバにIPメッセージを送信する。この時、DPIモジュール103は、IPメッセージに対してディープパケットインスペクションを行わず、IPメッセージの転送の効率を向上させる。
【0087】
ここで、例として、第6の通知情報は関数の戻り値であってもよいが、これに限定しない。この関数の戻り値は、具体的に、DPIモジュール103と代理モジュール103とが予めに取り決めた結果である。例えば、0で傍受されていることを表し、1で傍受されていないことを表す。DPIモジュール103は、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていないと確定する場合、代理モジュール102に関数値1を送信する。
【0088】
任意で、本願の実施例において、
図4のように、DPIモジュール103は、さらに、DPIプロトコル解析サブモジュール1031と、データ復元サブモジュール1032と、DLPサービススキャンサブモジュール1033とを含む。
図4に示されるDLPデバイスに基づいて、IPメッセージの処理の流れは
図5に示される。
【0089】
具体的に、ドライバーモジュール100は、IPメッセージを受信し、IPメッセージをユーザモードバッファに一時保存する。
【0090】
転送モジュール101は、ユーザモードバッファからIPメッセージを読み取り、IPメッセージに対応する構造体を生成し、代理モジュール102に構造体を送信する。
【0091】
代理モジュール102は、構造体を受信し、構造体によって、TCPポート情報を取得し、TCPポート情報によって、DLPデバイスとユーザデバイスとの間に第1のTCP接続が確立されているか否かを検出し、第1のTCP接続が確立されていない場合、IPメッセージがデータメッセージである時に、DPIプロトコル解析サブモジュール1031に構造体を送信する。
【0092】
DPIプロトコル解析サブモジュール1031は、代理モジュール102から送信された構造体を受信し、構造体によって、IPメッセージの格納箇所を確定し、格納箇所によってIPメッセージを見つける。従来のアプリケーション層プロトコル認識に基づき、DPIプロトコル解析サブモジュール1031はIPメッセージに対してプロトコル認識を行い、IPメッセージの伝送に使用されたアプリケーション層プロトコルを確定する。DPIプロトコル解析サブモジュール1031は、IPメッセージの伝送するためのアプリケーション層プロトコルが傍受されているか否かを判断する。IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されている場合、DPIプロトコル解析サブモジュール1031は、IPメッセージに含まれる第1のユーザデータの位置を分析してマークし、データ復元サブモジュール1032に、マークされた第1のユーザデータの位置を送信する。
【0093】
データ復元サブモジュール1032は、IPメッセージに対してデカプセル化処理を行い、マークされた位置に対応する第1のユーザデータを取得して一時保存する。データ復元サブモジュール1032は、同じオリジナルデータに属する全てのユーザデータを受信したか否かを判断する。同じオリジナルデータに属する全てのユーザデータを受信しなかった場合、データ復元サブモジュール1032は第1のユーザデータを一時保存する。同じオリジナルデータに属する全てのユーザデータを受信した場合、データ復元サブモジュール1032は、DLPサービススキャンサブモジュール1033に登録されたポートを呼び出し、DLPサービススキャンサブモジュール1033にスキャン通知情報を送信する。スキャン通知情報は第1のユーザデータの第1の格納箇所を含む。
【0094】
DLPサービススキャンサブモジュール1033は、第1の格納箇所によって第1のユーザデータを取得する。DLPサービススキャンサブモジュール1033は、予めに設定されたセキュリティポリシーを取得し、セキュリティポリシーから、第1のユーザデータにマッチングする目標マッチング項目を探し、目標マッチング項目に対応する動作項目によって、代理モジュール102に対応の通知情報を送信する。
【0095】
例えば、目標マッチング項目に対応する動作項目がメッセージの通過である場合、DLPサービススキャンサブモジュール1033は代理モジュール102に第3の通知情報を送信する。目標マッチング項目に対応する動作項目がメッセージの遮断である場合、DLPサービススキャンサブモジュール1033は代理モジュール102に第5の通知情報を送信する。
【0096】
任意で、本願の実施例において、DLPサービススキャンサブモジュール1033は、第1のユーザデータにマッチングする目標マッチング項目を見つけた後、DPIプロトコル解析サブモジュール1031に目標マッチング項目に対応する動作項目を送信する。DPIプロトコル解析サブモジュール1031は、代理モジュール102に対応の通知情報を送信する。
【0097】
例えば、目標マッチング項目に対応する動作項目がメッセージの通過である場合、DPIプロトコル解析サブモジュール1031は代理モジュール102に第3の通知情報を送信する。目標マッチング項目に対応する動作項目がメッセージの遮断である場合、DPIプロトコル解析サブモジュール1031は代理モジュール102に第5の通知情報を送信する。
【0098】
代理モジュール102は、第3の通知情報を受信した場合、第1のユーザデータの第1の格納箇所によって第1のユーザデータを探し、第2のTCP接続のTCPポート情報によって第1のユーザデータに対してカプセル化処理を行い、TCPヘッダ及び第1のユーザデータを含む第2のユーザデータを取得し、転送モジュール101に第4の通知情報を送信する。転送モジュール101は第4の通知情報を受信し、第2のユーザデータの第2の格納箇所によって第2のユーザデータを探し、第2のユーザデータに対してカプセル化処理を行い、IPメッセージを取得し、サーバにIPメッセージを送信する。
【0099】
代理モジュール102は、第5の通知情報を受信した場合、第1のユーザデータの第1の格納箇所によって第1のユーザデータをリリースし、第1のTCP接続のTCPポート情報によって第1の遮断データに対してカプセル化処理を行い、TCPヘッダ及び第1の遮断データを含む第2の遮断データを取得し、転送モジュール101に第2の遮断データを送信する。転送モジュール101は第2の遮断データを受信し、第2の遮断データに対してカプセル化処理を行い、遮断メッセージを取得し、ユーザデバイスに遮断メッセージを送信する。
【0100】
代理モジュール102は、DLPデバイスとユーザデバイスとの間に第1のTCP接続が確立されていないと検出した場合、IPメッセージがハンドシェイクメッセージである時に、転送モジュール101に第2の通知情報を送信する。
【0101】
転送モジュール101は第2の通知情報を受信し、第2の通知情報によって、サーバにIPメッセージを送信する。
【0102】
DPIプロトコル解析サブモジュール1031は、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていないと確定した場合、代理モジュール102に第6の通知情報を送信する。
【0103】
代理モジュール102は、第6の通知情報を受信し、転送モジュール101に送信する。
【0104】
転送モジュール101は第6の通知情報を受信し、第6の通知情報によって、サーバにIPメッセージを送信する。
【0105】
理解しやすいように、
図6に示される代理モジュール102のメッセージ処理の模式図を参照して、代理モジュール102の処理の流れを説明する。
【0106】
ステップ601において、代理モジュール102は、転送モジュール101から送信された構造体を受信し、構造体によって、TCPポート情報を取得する。
【0107】
ステップ602において、代理モジュール102は、TCPポート情報によって、DLPデバイスとユーザデバイスとの間に第1のTCP接続が確立されているか否かを検出する。第1のTCP接続が確立されていない場合、ステップ603を実行する。第1のTCP接続が確立されている場合、ステップ605を実行する。
【0108】
ステップ603において、代理モジュール102は、IPメッセージがハンドシェイクメッセージであるか否かを検出する。ハンドシェイクメッセージである場合、ステップ604を実行する。ハンドシェイクメッセージではない、つまり、IPメッセージがデータメッセージである場合、ステップ605を実行する。
【0109】
ステップ604において、代理モジュール102は、転送モジュール101に第2の通知情報を送信する。
【0110】
転送モジュール101は第2の通知情報を受信した後、第2の通知情報によって、サーバにIPメッセージを送信する。
【0111】
ステップ605において、代理モジュール102は、DPIモジュール103に構造体を送信する。
【0112】
DPIモジュール103は、構造体によって、IPメッセージのメッセージ特徴を取得する。DPIモジュール103は、IPメッセージのメッセージ特徴と各アプリケーション層プロトコルに対応するメッセージ特徴とを照合することで、IPメッセージの伝送に使用されたアプリケーション層プロトコルを確定する。IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されている場合、DPIモジュール103は代理モジュール102に第1の通知情報を送信する。IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていない場合、DPIモジュール103は代理モジュール102に第6の通知情報を送信する。
【0113】
ステップ606において、代理モジュール102は、第6の通知情報を受信した場合、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていないと確定し、ステップ607を実行する。第1の通知情報を受信した場合、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていると確定し、ステップ608を実行する。
【0114】
ステップ607において、代理モジュール102は、転送モジュール101に第6の通知情報を送信する。
【0115】
転送モジュール101は第6の通知情報を受信した後、第6の通知情報によって、サーバにIPメッセージを送信する。
【0116】
ステップ608において、代理モジュール102は、TCPポート情報によって、TCP接続ペアを確立し、TCP接続ペアは第1のTCP接続及び第2のTCP接続を含む。
【0117】
前記ステップ601~608の部分を簡単に説明したが、詳細について、
図1~5の部分における関する説明を参照する。
【0118】
理解しやすいように、
図7に示されるDLPサービススキャンサブモジュール1033、代理モジュール102のメッセージ処理の模式図を参照して、メッセージ処理の流れを説明する。
【0119】
ステップ701において、DLPサービススキャンサブモジュール1033は、データ復元サブモジュール1032から送信されたスキャン通知情報を受信する。
【0120】
ステップ702において、DLPサービススキャンサブモジュール1033は、スキャン通知情報によって、予めに設定されたセキュリティポリシーを取得し、セキュリティポリシーから、第1のユーザデータにマッチングする目標マッチング項目を探す。
【0121】
ステップ703において、DLPサービススキャンサブモジュール1033は、目標マッチング項目を探せなかった場合、ステップ704を実行する。目標マッチング項目を探せた場合、ステップ706を実行する。
【0122】
ステップ704において、DLPサービススキャンサブモジュール1033は、代理モジュール102を呼び出し、代理モジュール102に第3の通知情報を送信する。
【0123】
ステップ705において、代理モジュール102は第1のユーザデータを探し、第2のTCP接続のTCPポート情報によって、第1のユーザデータに対してカプセル化処理を行い、第2のユーザデータを取得し、転送モジュール101に第4の通知情報を送信する。
【0124】
ステップ706において、DLPサービススキャンサブモジュール1033は、目標マッチング項目に対応する動作項目がメッセージの通過である場合、ステップ704を実行する。DLPサービススキャンサブモジュール1033は、目標マッチング項目に対応する動作項目がメッセージの遮断である場合、ステップ707を実行する。
【0125】
ステップ707において、DLPサービススキャンサブモジュール1033は、代理モジュール102を呼び出し、代理モジュール102に第5の通知情報を送信する。
【0126】
ステップ708において、代理モジュール102は、第1のユーザデータをリリースし、第1のTCP接続のTCPポート情報によって、第1の遮断データに対してカプセル化処理を行い、第2の遮断データを取得し、転送モジュール101に第2の遮断データを送信する。
【0127】
前記ステップ701~708の一部に対する説明は簡単なものであるが、詳細について、
図1~5における関連する説明を参照できる。
【0128】
任意で、本願の実施例において、代理モジュール102は、さらに、IPメッセージがSSLプロトコルの暗号化メッセージである場合、SSLプロトコル接続を確立する処理を実行するためのものである。SSLプロトコル接続を確立することによって、SSLプロトコルの暗号化メッセージが含むユーザデータに対して復号処理を行い、平文のユーザデータを取得することを実現し、これにより、データ漏洩防止の処理を実現する。
【0129】
具体的に、IPメッセージがSSLプロトコルの暗号化メッセージである場合、代理モジュール102は、OpenSSL暗号ライブラリの第1のインタフェース及び第2のインタフェースをそれぞれ呼び出す。代理モジュール102は、呼び出された第1のインタフェースと第1のTCP接続とをバインドし、呼び出された第2のインタフェースと第2のTCP接続とをバインドして、SSLプロトコル接続の確立を完成する。
【0130】
代理モジュール102は、IPメッセージに対応する構造体を受信した後、構造体によってIPメッセージの格納箇所を確定し、IPメッセージを見つける。代理モジュール102は、第1のTCP接続とバインドされた第1のインタフェースによってOpenSSL暗号ライブラリを呼び出し、IPメッセージに含まれるユーザデータに対して復号処理を行い、平文のユーザデータを得る。代理モジュール102は、平文のユーザデータの格納箇所をDPIモジュール103に送信する。
【0131】
代理モジュール102は、DPIモジュール103から送信された第3の通知情報を受信した後、第2のTCP接続とバインドされた第2のインタフェースに基づいて、OpenSSL暗号ライブラリを呼び出し、IPメッセージに含まれるユーザデータに対して暗号化処理を行い、暗号化のユーザデータを得て、暗号化ユーザデータに対してカプセル化処理を行う。
【0132】
代理モジュール102が受信したIPメッセージが平文メッセージ、例えば、HTTPメッセージやSMTPメッセージ、FTPメッセージなどである場合、代理モジュール102はIPメッセージを処理しなくてもよい。
【0133】
前記で提供したDLPデバイスの実施例に基づいて、本願の実施例は、さらに、メッセージ処理方法を提供する。
図8を参照して、
図8は本願の実施例が提供するメッセージ処理方法のフローチャートである。この方法はDLPデバイスに適用して、当該メッセージ処理方法は以下のステップを含む。
【0134】
ステップ801において、ユーザデバイスから送信されたIPメッセージを受信する。
【0135】
ここで、IPメッセージは、IPヘッダやTCPヘッダなどの情報を含む。そして、TCPヘッダはTCPポート情報を含む。IPメッセージは、プロトコルメッセージであってもよく、データメッセージでもよい。
【0136】
DLPデバイスは、ユーザデバイスとサーバとの間に設置される。ユーザデバイスは、DLPデバイスを介してサーバにIPメッセージを送信する。
【0137】
ステップ802において、TCPポート情報によって、DLPデバイスとユーザデバイスとの間に第1のTCP接続が確立されているか否かを検出する。第1のTCP接続が確立されていない場合、DLPデバイスはステップ803を実行する。
【0138】
DLPデバイスはIPメッセージを受信した後、IPメッセージのTCPポート情報を取得する。DLPデバイスは、取得したTCPポート情報によって、DLPデバイスとユーザデバイスとの間に第1のTCP接続が確立されているか否かを検出する。第1のTCP接続が確立されていない場合、DLPデバイスはステップ803を実行する。
【0139】
ステップ803において、IPメッセージがデータメッセージである時に、IPメッセージのメッセージ特徴と各アプリケーション層プロトコルに対応するメッセージ特徴とを照合することによって、IPメッセージの伝送に使用されたアプリケーション層プロトコルを確定する。
【0140】
DLPデバイスは、第1のTCP接続が確立されていないと検出した場合、IPメッセージのメッセージの類型を検出する、即ち、IPメッセージが、プロトコルメッセージであるか、データメッセージであるかを検出する。本願の実施例において、プロトコルメッセージは具体的にハンドシェイクメッセージであってもよく、下記の実施例においては、ハンドシェイクメッセージを例として説明する。IPメッセージがデータメッセージであると検出した場合、DLPデバイスは、IPメッセージのメッセージ特徴と各アプリケーション層プロトコルに対応するメッセージ特徴とを照合することによって、IPメッセージの伝送に使用されたアプリケーション層プロトコルを確定する。
【0141】
ステップ804において、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されている場合、TCPポート情報によって、TCP接続ペアを確立し、TCP接続ペアは、第1のTCP接続、及びDLPデバイスとサーバとの間の第2のTCP接続を含む。
【0142】
IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されている場合、DLPデバイスは、TCPポート情報によって、ユーザデバイスとの第1のTCP接続を確立する。DLPデバイスは、TCPポート情報によって、サーバとの第2のTCP接続を確立する。以降、DLPデバイスは、第1のTCP接続と第2のTCP接続でIPメッセージを伝送し、IPメッセージのTCPポートを変えず、IPメッセージが代理されることがサーバに発見されるリスクを低下させる。
【0143】
任意で、本願の実施例において、IPメッセージがプロトコルメッセージ、例えばハンドシェイクメッセージである時に、DLPデバイスはIPメッセージを通過させる、即ち、サーバにIPメッセージを送信する。サーバは、IPメッセージによって、ユーザデバイスとのTCP接続を確立する。このように、DLPデバイスが処理するメッセージの数を減らし、DLPデバイスの負荷を軽減し、且つ、ユーザデバイスとサーバとのTCP接続を直接に確立し、IPメッセージが代理されることがサーバに発見されるリスクを低下させる。
【0144】
任意で、本願の実施例において、DLPデバイスは、第1のTCP接続が確立されていると検出した場合、IPメッセージのメッセージ特徴と各アプリケーション層プロトコルに対応するメッセージ特徴とを照合することによって、IPメッセージの伝送に使用されたアプリケーション層プロトコルを確定する。DLPデバイスはIPメッセージのメッセージの類型を検出する必要がなくなり、DLPデバイスの負荷を軽減する。
【0145】
任意で、本願の実施例において、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていない場合、DLPデバイスはIPメッセージを通過させる、即ち、サーバにIPメッセージを送信する。DLPデバイスはIPメッセージを処理せず、DLPデバイスの負荷を軽減する。
【0146】
任意で、本願の実施例において、IPメッセージはデータメッセージである場合、DLPデバイスは、さらに、IPメッセージに含まれる第1のユーザデータの位置をマークし、IPメッセージに対してデカプセル化処理を行い、マークされた位置に対応する第1のユーザデータを取得して一時保存する。DLPデバイスは、予めに設定されたセキュリティポリシーを取得する。セキュリティポリシーはマッチング項目と動作項目を含む。DLPデバイスは、セキュリティポリシーから、第1のユーザデータにマッチングする目標マッチング項目を探し、目標マッチング項目に対応する動作項目を実行する。
【0147】
ここで、動作項目はメッセージの通過とメッセージの遮断を含む。一例においては、目標マッチング項目に対応する動作項目がメッセージの通過である場合、DLPデバイスは、第2のTCP接続のTCPポート情報によって、第1のユーザデータに対してカプセル化処理を行い、第2のユーザデータを取得し、サーバにIPメッセージを送信する。
【0148】
具体的に、目標マッチング項目に対応する動作項目がメッセージの通過である場合、DLPデバイスは、第2のTCP接続のTCPポート情報によって、第1のユーザデータに対してカプセル化処理を行い、第2のユーザデータを得て、第2のユーザデータはTCPヘッダ及び第1のユーザデータを含む。その後、DLPデバイスは、第2のユーザデータに対してカプセル化処理を行い、IPメッセージを得て、サーバにIPメッセージを送信する。
【0149】
他の実施例においては、目標マッチング項目に対応する動作項目がメッセージの遮断である場合、DLPデバイスは、第1のTCP接続のTCPポート情報によって、遮断メッセージを生成する。DLPデバイスはサーバに代わって、ユーザデバイスに遮断メッセージを送信し、インターネットの安全性を向上させる。
【0150】
任意で、本願の実施例において、IPメッセージがSSLプロトコルの暗号化メッセージである場合、ユーザデータに対して正確にデータ漏洩防止処理を行うために、DLPデバイスは、OpenSSL暗号ライブラリの第1のインタフェース及び第2のインタフェースをそれぞれ呼び出し、呼び出された第1のインタフェースと第1のTCP接続とをバインドし、呼び出された第2のインタフェースと第2のTCP接続とをバインドする。このように、DLPデバイスは、ユーザデータに対するSSL暗号化・復号の処理を完成でき、平文のユーザデータを取得し、ユーザデータに対して正確にデータ漏洩防止処理を行うことができる。
【0151】
本願の実施例が提供する技術案において、DLPデバイスは、IPメッセージの伝送に使用されたアプリケーション層プロトコルが傍受されていると確定した時に、IPメッセージに含まれるTCPポート情報に基づいて、DLPデバイスとユーザデバイスとの第1のTCP接続、及びDLPデバイスとサーバとの第2のTCP接続を確立して、第1のTCP接続と第2のTCP接続によって、ユーザデバイスに対するデータ漏洩防止を実現する。本願の実施例において、DLPデバイスは、データ漏洩防止の処理において、任意のTCPポートに対する傍受を実現することが理解できる。なお、DLPデバイスは、他にブリッジとファイアウォール規則を設置せずに、ブリッジの故障やカーネルクラッシュによってユーザがネットワークにアクセスできなくなる問題を解決した。
【0152】
なお本明細書では、第1や第2などのような関係用語は1つのエンティティ又は操作とその他のエンティティ又は操作とを区別するためのものに過ぎず、必ずしもこれらのエンティティ又は操作の間にこのような実際の関係又は順序があることを要求又は示唆しない。また、用語「含む」や「備える」、又はほかの変換用語は、いずれも、非排他的に含むことを意味するため、一連の要素を含む処理、方法、物品又は装置は、これらの要素を含むだけでなく、明確に挙げられていないほかの要素、又は、このような処理、方法、物品又は装置の固有の要素をさらに含む。特に限定しない限り、文「1つの…を含む」により限定される要素は、前記要素を含む処理、方法、物品又は装置がほかの同一要素をさらに含むことを排除しない。
【0153】
本明細書における各実施例はいずれも関連的な形で記載されており、各実施例同士における同一又は類似の部分は互いに参照できる。各実施例に対して重点的に説明するのは他の実施例との相違である。特に、方法の実施例について、それ自体がDLPデバイスの実施例とほぼ同じであるため、説明が簡単なものであるが、関連的な内容はDLPデバイスの実施例の部分の説明を参照できる。
【0154】
以上は本願の好ましい実施例にすぎず、本願の保護請求する範囲を限定するものではない。本願の主旨及び原則を逸脱しない範囲でなされるいかなる補正、等価置換、改良などは、いずれも本開示の保護請求する範囲内に含まれる。
【国際調査報告】