JP6548823B2 - 木グラフプロパティを適用するjsonデータのリアルタイムバリデーション - Google Patents

木グラフプロパティを適用するjsonデータのリアルタイムバリデーション Download PDF

Info

Publication number
JP6548823B2
JP6548823B2 JP2018518531A JP2018518531A JP6548823B2 JP 6548823 B2 JP6548823 B2 JP 6548823B2 JP 2018518531 A JP2018518531 A JP 2018518531A JP 2018518531 A JP2018518531 A JP 2018518531A JP 6548823 B2 JP6548823 B2 JP 6548823B2
Authority
JP
Japan
Prior art keywords
tcp
json data
json
tcp connection
segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2018518531A
Other languages
English (en)
Other versions
JP2018531466A (ja
JP2018531466A6 (ja
Inventor
ロレ、ロマン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric R&D Centre Europe BV Netherlands
Original Assignee
Mitsubishi Electric R&D Centre Europe BV Netherlands
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric R&D Centre Europe BV Netherlands filed Critical Mitsubishi Electric R&D Centre Europe BV Netherlands
Publication of JP2018531466A publication Critical patent/JP2018531466A/ja
Publication of JP2018531466A6 publication Critical patent/JP2018531466A6/ja
Application granted granted Critical
Publication of JP6548823B2 publication Critical patent/JP6548823B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、包括的には、通信ネットワークにおけるデータ解析に関し、より正確には、データストリームの分類に関する。
このセクションにおいて記述される手法は追及することはできたが、必ずしも以前から考えられてきたか、又は追及されてきた手法であるとは限らない。それゆえ、本明細書において別の指示がない限り、このセクションにおいて記述される手法は、本出願における特許請求の範囲に対する先行技術でもなければ、このセクションに含めることによって従来技術であると認めるものでもない。
HTTPプロトコルは、インターネットエンジニアリングタスクフォース(IETF)によってRFC2616として標準化され、TCP/IPスタック(伝送制御プロトコル/インターネットプロトコル)上で伝送される。HTTPプロトコルは、セッションレベルの一部とみなすことができる。
HTTPは、非常に多くのサービスを実施するのに使用されており、そして最も使用されるセッションプロトコルである。実際に、ますます多くのアプリケーションがウェブブラウザー内で実行され、それらのアプリケーションの通信は、HTTPに基づいている。
HTTPの1つの利点は単純さである。なぜならば、このプロトコルがサポートする要求方法は少数であり、基本的なアプリケーションが用いる要求方法は2つ又は3つ(主として、GET及びPOSTと呼ばれる方法)であるからである。
HTTPプロトコルによれば、HTTPコンテンツは、HTTPメッセージのHTTP本体部(又はペイロード)内に挿入され、HTTPヘッダー部は、HTTPメッセージの制御情報を含む。
HTTPプロトコルの効率を改善するために、持続的接続及びパイプライン化等の幾つかの拡張が、HTTPプロトコル標準規格に従って開発されてきた。
持続的接続は、HTTP要求の完了後(サーバーからのHTTP応答の受信後)、HTTPクライアントとHTTPサーバーとの間のHTTPセッションを搬送するTCP接続をオープンに維持することにある。その場合、HTTPクライアントは、同じTCP接続上で別のHTTP要求を送信することができる。
JavaScript(登録商標)オブジェクトノーテーション(JSON:JavaScript Object Notation)は、人間可読テキストを用いて、属性(名前又はキーとも称される)値のペアからなるデータオブジェクトを伝送する、オープン標準のフォーマットである。
JSONは、非同期のブラウザー/サーバー通信に用いられる主要なデータフォーマットのうちの1つであり、主にXML(拡張可能マークアップ言語)に置き換わるものである。
JSONは、2014年3月に、IETF RFC 7159によって定義されている。
JSONプロトコルは、多くの実装において展開され、XML−RPC又はシンプルオブジェクトアクセスプロトコル(SOAP:Simple Object Access Protocol)の代替として選択することができるRPCプロトコルであるJSON−RPC(リモートプロシージャコール)によって用いられる。
JSONは、少数のデータタイプ及びコマンドのみを定義するシンプルなプロトコルである。このJSONは、非同期JavaScript及びXML(AJAX:Asynchronous JavaScript and XML)技術においても用いることができる。AJAXは、通常は表示されたウェブページ上でのユーザーの動作に応答して、ウェブページがウェブブラウザーにロードされて表示された後に新たなデータを要求する、ウェブページの機能についての用語である。
JSONは、Facebook(登録商標)、Google(登録商標)、Spotify(登録商標)等のウェブサービスにアクセスする、多くのオープンのレプリゼンテーショナルステートトランスファー(REST:REpresentational State Transfer)APIによってサポートされるフォーマットとして用いられる。この場合、このJSONは、一般的には、TCPを介して搬送されるHTTP/HTTPSプロトコルと関連付けられる。
その場合、JSONコンテンツは、HTTP GETリクエスト及び/又はレスポンスのHTTP本体の部分である。
HTTPヘッダー「Content-Type(コンテンツタイプ)」に設定されるMIME(多目的インターネットメール拡張)タイプは、「application-JSON(アプリケーション−JSON)」である。
JSONは、以下の5つの基本タイプを定義する。
数値:小数部を含むことができ、かつ指数E表記を用いることができる、符号付き小数。
文字列:0以上のユニコード文字のシーケンス。文字列は、二重引用符で囲まれ、バックスラッシュによるエスケープ構文をサポートする。
ブール値:真又は偽の値のいずれか。
配列:0以上の値の順序付けられたリスト、この値の各々は、任意のタイプのものとすることができる。配列は、要素をコンマで区切る、角括弧表記を用いる。
オブジェクト:名前/値のペアの順序付けられていない集合体。ここで、名前(キーとも称される)は文字列である。オブジェクトは連想配列を表現するように意図されているため、必須ではないが、各キーがオブジェクト内で一意であることが推奨される。オブジェクトは、波括弧で囲まれており、コンマを用いて各ペアを区切る。各ペア内で、記号「:」が、キー又は名前をその値から区切る。
ヌル値:nullの語を用いる、空値。
構文要素の前後又は構文要素の間のホワイトスペースは許容され、無視される。4つのASCII文字、すなわち、スペース、水平タブ、ラインフィード及びキャリッジリターンが、ホワイトスペースとみなされる。
JSONスキーマは、クライアントから提出されたデータの自動テスト又はバリデーション(validation:妥当性確認)の目的で、JSONベースのフォーマットを指定してJSONデータの構造を規定する。JSONスキーマは、XMLSスキーマ(XSD)に由来する概念に基づいているが、JSONベースである。JSONデータスキーマを用いて、JSONデータの妥当性確認を行う(validate)ことができる。
JSONの主要な利点は、単純さ及び融通性である。
しかしながら、JSONの主要な欠点は、単一のメッセージが異なる表現を有するおそれがあることに起因して、構文解析(parsing:パース)の複雑性をもたらすテキスト表現である。この理由のため、JSONの構文解析には、多量のリソースを要し、JSONベースのサービスは、サービス拒否攻撃(Deny of Service attacks)をより容易に受けてしまう場合がある。
また、場合によっては、融通性の高さも、複雑な実装を認めてしまうがゆえに、欠点である。したがって、ソフトウェアバグの確率も上昇する。
したがって、JSONベースのサービスは、ファジング攻撃を受けてしまう場合がある。このファジング攻撃では、攻撃者は、APIサーバーにランダムデータを送信することによって、APIサーバー内のセキュリティホールを見つけ出そうとする。
したがって、HTTPによって搬送されたJSONデータをリアルタイムで解析し、JSON構造の妥当性及び構成要素の意味をチェックし、何らかのウェブサービスを守るために、潜在的な脅威を表すデータを破棄することが可能な効率的な方法が必要とされている。
これらの需要のうちの少なくとも幾つかに対処するために、本発明の第1の態様は、電気通信ネットワークにわたって送信元とサーバーとの間で交換されるデータストリームをリアルタイムに処理する方法であって、該方法は、分類器と、少なくとも1つのテストの第1のセットと、既存のTCP接続のリストとによって実行され、該方法は、
前記データストリームのTCPセグメントを受信することであって、該TCPセグメントは、ペイロードを含み、該ペイロードは、HTTPメッセージの少なくとも部分を含むことと、
前記TCPセグメントが属する第1のTCP接続を識別すること、又は、前記受信されたTCPセグメントについての新たな第1のTCP接続を作成することと、
前記HTTPメッセージの前記部分内で、JSONデータの存在を検出することと、
JSONデータが検出された場合、該JSONデータに基づいて木グラフを構築することと、
前記構築された木グラフのプロパティ上の前記第1のセットのうちの少なくとも1つのテストを実行して、前記JSONデータが不当である(invalid)か否かを判断することと、
前記JSONデータが不当である場合、前記第1のTCP接続を中断することと、
を含む、方法に関する。
したがって、高負荷の計算リソースを要することなく、JSONデータの早期分類を実行することができる。実際には、木グラフ構造により、JSONデータに容易にアクセスすることが可能になり、早期分類が、木グラフのプロパティ(例えば、グラフの構造特徴)上で実行される。これにより、サーバー(又はクライアント)を攻撃者から保護することが可能になる。加えて、本方法は、TCPレベルにおいて実行されるので、端末ピアにとってトランスペアレントであるとともに、リアルタイムで実行することができる。
幾つかの実施形態によれば、前記木グラフは、複数のノードを含み、各ノードは、以下のタイプ、すなわち、
数値と、
文字列と、
ブール値と、
配列と、
オブジェクトと、
ヌル値と、
の中の所与のノードタイプに対応することができる。
したがって、木グラフの構造は、特に、JSON言語に専用である。
補足として、前記木グラフは、複数のノードを含むことができ、該ノードは、根ノード及び該根ノードの少なくとも1つの子ノードを含み、前記木グラフのプロパティは、以下、すなわち、
該木グラフのノードの総数と、
該木グラフの深度と、
前記オブジェクトタイプ又は前記配列タイプからのノードの子ノードの最大数と、
の任意の組み合わせを含むことができる。
更なる補足として、数値タイプ、文字列タイプ又はブール値タイプを有する前記木グラフの各ノードは、キー及び該キーの値と関連付けることができ、前記組み合わせは、
キーの最大長、及び/又は、
値の最大長、
を更に含むことができる。
したがって、早期分類は、木グラフのプロパティを簡単に計算することができるので、高負荷の計算リソースを要しない。
補足又は一変形として、前記第1のセットの各テストは、前記木グラフの前記プロパティのうちの1つをそれぞれの所定値と比較することにあることができ、前記プロパティが前記それぞれの所定値を超えている場合、カウンターを増分することができ、前記カウンターが所定の閾値を超えている場合、前記JSONデータを不当であると分類することができる。
したがって、早期分類は、JSONデータの分類が比較のみに基づいているので、高負荷の計算リソースを要しない。
幾つかの実施形態によれば、前記少なくとも1つのテストを実行した後に前記JSONデータが不当であると分類されない場合、JSONコンテンツ仕様を用いて完成されたJSONスキーマに基づいた意味分類が前記JSONデータ上で実行され、該JSONデータが妥当である(valid)か又は不当であるかを分類することができる。
したがって、計算リソースの観点において早期分類よりも労力を要する意味分類は、JSONデータが不当であると分類されていない場合にのみ実行される。
幾つかの実施形態によれば、前記第1のTCP接続は、前記分類器によって、第1のTCPセグメントを前記クライアントに、及び、第2のTCPセグメントを前記サーバーに送信することによって中断することができ、前記第1のTCPセグメント及び前記第2のTCPセグメントは、リセットフラグを含む。
これにより、サーバー(又はクライアント)を攻撃者から保護することが可能になる。加えて、本方法は、TCPレベルにおいて実行されるので、端末ピアにとってトランスペアレントであるとともに、リアルタイムで実行することができる。
幾つかの実施形態によれば、JSONデータが前記TCPセグメントにおいて検出されない場合、該TCPセグメントは、前記クライアント及び前記サーバーの中の前記TCPセグメントの受信者に転送することができる。
これにより、JSONデータを含まないデータストリームのレイテンシーに悪影響を与えることを回避することが可能になる。
幾つかの実施形態によれば、前記分類器は、監視されるTCP接続のリストを記憶するメモリを備えることができ、
前記方法は、
前記第1のTCP接続を識別すると、該第1のTCP接続が前記監視されるTCP接続のリストに属することを検証すること(verifying)と、
前記第1のTCP接続が前記監視されるTCP接続のリストに属さない場合、前記TCPセグメントを前記クライアント及び前記サーバーの中の該TCPセグメントの受信者に転送することと、
を更に含むことができる。
これにより、分類に関連しないデータストリーム(例えば、信頼されたクライアントとのTCP接続)のレイテンシーに悪影響を与えることを回避することが可能になる。
幾つかの実施形態によれば、前記分類器は、監視されるTCP接続のリストを記憶するメモリを備えることができ、各監視されるTCP接続について、TCP接続情報を保持することができ、該TCP接続情報は、ウィンドウの底部(Bottom of Window)を含み、前記受信されたTCPセグメントは、TCPシーケンス番号を含むことができ、
前記方法は、
前記第1のTCP接続を識別すると、該第1のTCP接続が前記監視されるTCP接続のリストに属することを検証することと、
前記第1のTCP接続が前記監視されるTCP接続のリストに属する場合、前記TCPシーケンス番号が前記第1のTCP接続の前記ウィンドウの底部に対応することを検証することと、
前記TCPシーケンス番号が前記第1のTCP接続の前記ウィンドウの底部に対応していない場合、前記TCPセグメントを前記クライアント及び前記サーバーの中の該TCPセグメントの受信者に転送することと、
前記TCPシーケンス番号が前記第1のTCP接続の前記ウィンドウの底部に対応する場合、前記第1のTCP接続の前記ウィンドウの底部を更新し、JSONデータの存在を検出することを続行することと、
を更に含むことができる。
補足として又は一変形において、各既存のTCP接続は、送信元アドレス、TCP送信元ポート、IP宛先アドレス及びTCP宛先ポートを含む識別情報によって識別することができ、前記受信されたTCPセグメントは、第1の送信元アドレス、第1のTCP送信元ポート、第1のIP宛先アドレス及び第1のTCP宛先ポートを示すヘッダーを含むことができる。
これにより、TCPセグメントを効率的に構文解析して、これらのTCPセグメントが、既存のTCP接続に属するのか否かを検出することが可能になる。
幾つかの実施形態によれば、JSONデータの存在は、前記HTTPメッセージの第1のHTTPヘッダー値に少なくとも基づいて検出することができる。
補足として、前記分類器は、HTTP再組み立てバッファーを含むことができ、該再組み立てバッファーのサイズは、少なくとも前記第1のHTTPヘッダー値の最大サイズに等しくすることができる。
これにより、再組み立てに必要とされるメモリリソース量を低減することが可能になり、このことは、多数の同時のTCP接続をサポートする上で明らかに利点である。
補足又は一変形として、前記第1のHTTPヘッダー値は、フィールド「Content-Type」に対応する値とすることができる。JSONデータ長も、フィールド「Content-Length」に対応する第2のHTTPヘッダー値に基づいて検出することができる。
本発明の第2の態様は、コンピューティングデバイス内にロード可能であり、このコンピューティングデバイス内にロードされて、このコンピューティングデバイスによって実行されると、このコンピューティングデバイスに本発明の第1の態様による方法を実行させるように構成されたコンピュータープログラム命令を記憶したコンピューター可読媒体を備える、コンピュータープログラム製品に関する。
本発明の第3の態様は、電気通信ネットワークにわたって送信元とサーバーとの間で交換されるデータストリームをリアルタイムに処理する分類器であって、
少なくとも1つのテストの第1のセットと、既存のTCP接続のリストとを記憶するメモリと、
前記データストリームのTCPセグメントを受信するように構成された入力インターフェースであって、前記TCPセグメントは、データペイロードを含み、該ペイロードは、HTTPメッセージの少なくとも部分を含む、入力インターフェースと、
プロセッサであって、
前記TCPセグメントが属する第1のTCP接続を識別すること、又は、前記受信されたTCPセグメントについての新たな第1のTCP接続を作成することと、
前記HTTPメッセージの前記部分内で、JSONデータの存在を検出することと、
JSONデータが検出された場合、該JSONデータに基づいて木グラフを構築することと、
前記構築された木グラフのプロパティ上の前記第1のセットのうちの少なくとも1つのテストを実行して、前記JSONデータが不当であるか否かを判断することと、
前記JSONデータが不当である場合、前記第1のTCP接続を中断することと、
を行うように構成されたプロセッサと、
を備える、分類器に関する。
本発明は、添付図面の図に、限定としてではなく例として示される。添付図面において、同様の参照符号は同様の要素を参照する。
本発明の1つの実施形態による電気通信システムを表す図である。 本発明の1つの実施形態による分類器を表す図である。 本発明の1つの実施形態による分類器のプロセッサを示す図である。 本発明の幾つかの実施形態による方法のステップを示す図である。 本発明の幾つかの実施形態による、JSONデータを表す木グラフを示す図である。
図1は、本発明の一実施形態によるシステムを示している。
本システムは、幾つかのクライアント10.1及び10.2を備える。これらのクライアントは、例えば、ラップトップ10.1及びデスクトップコンピューター10.2とすることができる。
クライアント10.1及び10.2に限定が加えられることはなく、これらのクライアントは、ラップトップ、デスクトップコンピューター、タッチパネル又はスマートフォン等の任意のユーザーデバイスとすることができる。
クライアント10.1及び10.2は、それぞれアクセスルーター11.1及び11.2を介してインターネット等の電気通信ネットワーク12にアクセスすることができる。
図1において、アクセスポイント11.1及び11.2は、有線手段を介してアクセスされる。しかしながら、アクセスルーター11.1及び11.2は、例えばWi−fiを介してクライアント10.1及び10.2がアクセスすることができる無線アクセスポイントとすることもできる。
したがって、クライアントは、アクセスルーター11.1及び11.2並びにネットワーク12を通じてアクセスすることができるサーバー13とデータストリームを交換することができる。
例えば、サーバー13は、JSONを用いるアプリケーションサーバーである。
エンティティ14は、サーバー13とネットワーク12との間に位置する。このエンティティは、例えば、ファイアーウォール又は侵入防止システム(IPS)とすることができる。エンティティ14は、本発明による分類器15を含む。
分類器15の位置に限定が加えられることはなく、この分類器は、代替的に、ネットワーク12内に又はクライアント側に(例えば、アクセスルーター10.1又は10.2内に)位置することができる。
分類器15は、クライアント10.1及び10.2とサーバー13との間のデータストリーム、特にサーバー13が受信したデータをフィルタリングすることを担当する。
図2は、本発明の幾つかの実施形態による分類器15の詳細な構造を示している。
分類器15は、IPパケット受信機等の入力インターフェース201と、プロセッサ202と、ランダムアクセスメモリ203と、マスストレージメモリ204と、IPパケット送信機等の出力インターフェース205とを備える。
プロセッサ202の内部構造が図3に示されており、このプロセッサは、TCP/IPプロセッサ301と、HTTPプロセッサ302と、JSONプロセッサ203とを備える。
以下で説明するように、TCP/IPプロセッサ301は、IPパケット受信機201から受信されたTCPセグメントを分類することと、幾つかのTCP接続及び関連付けられた情報コンテキストを管理することと、所与のTCP接続について、TCPシーケンス番号に従って受信されたTCPセグメントを順序付けることとを行うように構成される。
HTTPプロセッサ302は、上記で説明したように、順序付けられたTCPセグメントを受信し、HTTPヘッダーを明確化(delineating:境界を確定)し、HTTPメソッド、URL又はContent-Type等の何らかの特定のHTTPヘッダー等の有用なHTTP情報を抽出するように構成される。特に、「application/json」等のContent-Typeが検出されると、HTTPプロセッサ302は、HTTP本体も明確化する。反対に、JSONデータを含むいかなるHTTP本体部も搬送しないTCPセグメントは、IPパケット送信機205を通じてサーバー13に自動的に転送することができる。
JSONプロセッサ303は、JSONスキーマを考慮に入れてJSONデータを構文解析するように構成される。このJSONスキーマは、マスストレージメモリ204に記憶された事前定義された文法及び意味規則のセットであり、JSONコンテンツ仕様によって完成され、これは、マスストレージメモリ204に記憶された事前定義された意味仕様を含む。受信されたTCPセグメントは、JSONデータの分類に基づいて(受信者に転送されるか否かについて)フィルタリングされる。
図4は、本発明の幾つかの実施形態による、分類器15によって実行される方法のステップを示すフローチャートである。
以下の例において、クライアント10.1及び10.2によってサーバー13に送信されたリクエストのみが分類器15によって処理される。サーバー15によって返されるレスポンスは処理されない。なぜなら、例えば、サーバー5は信頼性があるとみなされるためである。しかしながら、幾つかの場合において、分類器15は、サーバー15が感染しており、クライアント10.1及び10.2を脅威にさらそうとしているか否かを判断するために、サーバーレスポンスを解析及びフィルタリングすることができる。この場合、サーバー15からクライアント10.1及び10.2のうちの一方に流動するTCPセグメントについて、同一の方法ステップを分類器15によって実行することができる。
TCP接続は、2つの独立した半分ずつのTCP接続(クライアント10.1又は10.2からサーバー13への一方の接続、及びサーバー13からクライアント10.1又は10.2への他方の接続)として見ることができるので、例示の目的で、以下の説明において、クライアント10.1又は10.2からサーバー13へ流動するデータストリームの解析及びフィルタリングのみを検討する。
ステップ400において、TCPセグメントがIPパケット受信機201によって受信される。
ステップ401において、TCPセグメントは、既存のTCP接続に属するのか又は新たなTCP接続に属するのかについて分類される。例えば、TCP接続は、4つ組{IP送信元アドレス、TCP送信元ポート、IP宛先アドレス、TCP宛先ポート}によって識別することができる。TCPセグメントを構文解析して、4つ組要素を取得することができ、この抽出された4つ組を、オープン接続の4つ組と比較することができる。オープン接続のリストは、例えば、マスストレージメモリ204に記憶することができる。
新たなTCP接続は、同一の4つ組を有するTCP接続がマスストレージメモリ204に未だリスティングされていない場合、SYN及びSYN−ACKハンドシェイクパケットを有するTCPセグメントの連続受信に際して監視することができる。
例えば、第1のTCP接続との一致が検出された場合、TCPセグメントは、第1のTCP接続に属すると分類することができる。そうでない場合、新たなTCP接続が作成され、オープンTCP接続のリストに追加される。新たなTCP接続は、受信されたTCPセグメントの4つ組と関連付けられる。
サーバー13のオープンTCP接続のリストの中から、分類器15は、監視されるTCP接続のリストを保持することができる。監視されるTCP接続は、分類器15によって観察されることになるTCP接続であり、一方、監視されないTCP接続は、観察する必要がない。例えば、監視されるTCP接続のリストは、マスストレージメモリ204に記憶することができる。追加規則を定義して、新たなTCP接続が、監視されるTCP接続のリストに属するか否かを判断することができる。例えば、サーバー13に関連するデータストリームのみを観察することは有用であり得る。この場合、宛先ポート(例えば、ポート80)上のフィルターを設定することができ、自らの4つ組にこの宛先ポートを有するTCP接続のみが監視される。
ステップ402において、第1のTCP接続が、監視されるTCP接続のリストに属するか否かが判断される。
第1のTCP接続が、監視されるTCP接続のリストに属さない場合、TCPセグメントは、ステップ403において、サーバー13並びにクライアント10.1及び10.2の一方の中からTCPセグメントの受信者に転送される。
第1のTCP接続が、監視されるTCP接続のリストに属する場合、ステップ404において、この第1のTCP接続と関連付けられた内部データ構造を更新することができる。内部データ構造は、接続状態、ウィンドウの底部等の、第1のTCP接続に関連する持続データを格納するTCP情報コンテキストを含む。また、内部データ構造は、受信されたTCPセグメントをそのセグメント番号によって順序付けて集めるTCPセグメントペンディングリストも含む。新たなTCP接続を検出すると、TCP/IPプロセッサ301は、このTCP接続に新たなデータ構造を割り当てる。TCP接続は、RST又はFINフラッグを有するTCPセグメントを受信すると、リリースされる。
更新ステップ404は、シーケンス番号によって順序付けられた第1のTCP接続のTCPセグメントペンディングリスト内に、受信されたTCPセグメントを挿入することを含む。受信されたTCPセグメントのシーケンス番号が第1のTCP接続のウィンドウの底部に等しくない(すなわち、TCPセグメントのシーケンス外である)場合、方法は、ステップ403に進み、TCPセグメントは、このTCPセグメントの受信者に転送される。そうでない場合、ステップ404において、ウィンドウの底部が、TCPセグメント長の長さに基づいて更新される。
転送されないTCPセグメントは、ステップ405からの、上位層プロセッサ302及び303によって更なる解析のために保持される。
ステップ405において、TCPセグメント(転送されていないもの)及びTCPペンディングリストの更なる連続セグメントは、HTTPプロセッサ405によって処理及び解析される。
例えば、1つ以上のTCPセグメントのペイロード内にカプセル化されたHTTPメッセージは、以下の構造を有することができる。
Figure 0006548823
HTTPメッセージは、幾つかの連続TCPセグメントにわたって分割される可能性があるため、HTTPメッセージの幾つかの部分を再組み立てする必要がある場合がある。しかしながら、ステップ405における再組み立てプロセスには、ステップ406において、HTTPメッセージ内のJSONデータの存在又は欠如を検出するように、Content-Type、Content-Length(コンテンツ長)等の関連HTTPヘッダー値を抽出する必要があるのみである。
したがって、本発明は、抽出されたヘッダー値の最大長(Content-Type値及びContent-Length値の最大長)に設定される深度を有する再組み立てバッファーを用いることを提案する。これにより、必要とされるメモリリソース量を低減することが可能になり、このことは、多数の同時TCP接続が監視される場合、明確な利点である。
例えば、2つの連続TCPセグメントを以下のものとすることができる。
Figure 0006548823
上記で示したこの特定の例において、関連HTTPヘッダー値(Content-Typeに対応する)は、2つのTCPセグメントにわたって分割され、このことは、再組み立てバッファーがステップ406においてJSONデータの存在を検出するのに有用であり得ることを示している。
ステップ406においてJSONデータの欠如が検出される場合、ステップ403においてウィンドウの底部に位置する受信されたTCPセグメントが転送される。
HTTPメッセージの本体は、最後のHTTPヘッダーの後ろ(この例のContent-Typeフィールドの後ろ)に空の行を見つけることによって識別することができる。ステップ406においてJSONデータの存在が検出された場合、JSONデータは、ステップ407において圧縮され(ホワイトスペース記号が除去されることを意味する)、圧縮されたJSONデータは、ステップ408において、JSONデータ再組み立てバッファー内でコピーすることができる。JSONデータの長さは、「Content-Length」HTTPヘッダーによって与えられる。HTTP持続的接続が用いられる場合、JSONデータの最後が検出されると、次のHTTPリクエスト/レスポンスを明確化することができる。
JSONプロセッサ303は、JSONデータの内部表現を木グラフとして生成するために、ステップ409において、JSONデータ再組み立てバッファー内に含まれるJSONデータを構文解析するように構成される。
木グラフは、複数のノードを含み、各ノードは、例えば、以下の要素の任意の組み合わせを含む構造によって表される。
ノードタイプ:数値(0)、文字列(1)、ブール値(2)、配列(3)、オブジェクト(4)、ヌル値(5)、
圧縮JSONテキストデータへのキー文字列開始インデックス、
キー文字列長(特に配列アイテムにおいて、キー名がない場合、0に等しいものとすることができる)、
ブール値ノード、整数ノード及び文字列ノードについての値文字列開始インデックス、
ブール値ノード、整数ノード及び文字列ノードについての値文字列長。
配列アイテムについて、キー文字列開始インデックスをこの配列の内側のインデックスに置き換えることができ(第1のアイテムについて0、第2のアイテムについて1、等)、キー文字列長は、0に設定することができる。
オブジェクト及び配列について、値文字列開始インデックス及び値文字列長は、子ノードに向かうポインターのリストに置き換えることができる。
JSONデータに基づく木グラフを構築するためのこれらの規則は、例示の目的でのみ与えられ、本発明は、JSONデータに基づく木グラフを構築するためのあらゆる方法を包含する。
図5は、上記で与えられたJSONデータの例に基づいて取得することができる内部木グラフ構造を示している。
図5において、各ノードは、500で参照され、上記で詳述したように、ノードタイプ201と、キー文字列開始インデックス502と、キー文字列長503と、値文字列開始インデックス504と、値文字列長505とを含む。
例えば、根ノードは、オブジェクト(タイプ=4)であり、それゆえ、キー文字列開始長は0である。値文字列開始インデックス及び値文字列長は、上記で説明したように、4つの子ノード506、507、508及び509へのポインターである。
第1の子ノード506は、JSONデータ部分“firstName":"John"を表す。
フィールド501内の「1」は、ノードが文字列であることを意味する、
フィールド502内の「2」は、JSONデータ内のインデックス2(JSONデータの2番目の記号)においてノードのキー"firstName"が開始することを意味する、
フィールド503内の「9」は、キー"firstName"の長さである、
フィールド504内の「11」は、JSONデータ内のインデックス11においてノードの値"John"が開始することを意味する、
フィールド505内の「4」は、値"John"の長さである。
子ノード507は、JSONデータ部分"age":25を表し、これは数値である。子ノード508は、配列"phoneNumbers"を表し、子ノード509は、配列"children"を表す。
したがって、JSONプロセッサ303は、ステップ409において、JSONデータ再組み立てバッファーからJSONデータを得て木グラフを構築するように構成される。幾つかの実施形態によれば、構文解析ステップ409は、ノードの記述が不完全である(すなわち、JSONデータ再組み立てバッファーが十分なJSONデータを含んでいない)場合、中断することができる。その場合、解析終了ポインター(end-of-analysis pointer)を、不完全なノードの記述の開始点に移動させることができる。構文解析ステップ409は、ウィンドウの底部に等しいシーケンス番号を有する第1のTCP接続の次のTCPセグメントの受信時に再開することができる。
そのような木グラフは、任意のJSONノードに迅速にアクセスしてJSONデータをブラウズするように、JSONプロセッサ303によって有利に用いることができる。
図4に戻って参照すると、ステップ410において、生成された木グラフのプロパティを用いてJSONデータの早期分類を実行することもできる。
早期分類は、以降で説明するように、意味分類等の、より深層の分類への予備である分類を指す。
例えば、以下の木グラフプロパティのうちの1つ又は幾つかを、ステップ410における早期分類の考慮に入れることができる。
ノードの総数、
木グラフの深度、
オブジェクト/配列についての子ノードの最大数、
キーの最大長、
値の最大長。
JSONスキーマに基づいて、これらのプロパティ上の幾つかの基準を、ステップ410における早期分類のために事前定義し、チェックすることができる。
例えば、JSONスキーマは、サーバー13によって用いられるJSON APIの文法及び意味を詳述している。JSONコンテンツ仕様は、サーバー13によって用いられるJSON APIの意味を完成させることができる。
例えば、シンプルなAPIについて、ノードの総数はN未満(Nは整数)であり、グラフは最大深度M(Mは整数)を有するとみなすことができる。また、オブジェクト/配列についての子ノードの数は、JSON APIに依拠する所定の値に制限することができる。
したがって、テストの第1のセットが事前定義される。これらのテストの各々は、結果、例えばOK(成功)又はNOK(失敗)を返すことができる。NOKの数が第1の所定の閾値以上である場合、JSONデータは不当であると分類することができる。NOKの数は、テストについてNOK結果が発行される度にカウンターを増分することによって求めることができる。
代替的に、1つのテストのみを適用することができる。この場合、テストの結果を用いて、ステップ410においてJSONデータを分類する。
JSONデータがステップ410において早期分類によって不当であると分類される場合、TCP/IPプロセッサ301は、ステップ411において第1のTCP接続を中断することができる。例えば、TCP/IPプロセッサ301は、リセットフラグを含む2つのTCPセグメントを生成して、この生成されたTCPセグメントを送信元と受信者とに送信し、それによって第1のTCP接続をクローズすることができる。これにより、高負荷の計算リソースを要することなく端末ピアを保護することが可能になる。なぜなら、早期分類は所定の閾値との比較しか要しないためである。
JSONデータがステップ410において不当であると分類されない場合、JSONプロセッサ303は、ステップ412において、意味分類を実行することができる。
例えば、サーバー13によって用いられるJSON APIと関連付けられるJSONコンテンツ仕様から、キー及び値の要素に関連する意味規則を、各JSONノード意味タイプについて定義することができる。各キー文字列を、JSONデータを表す木グラフ内のノードの位置に依拠した辞書(すなわち、可能な値のセット)と照合することができる。
例えば、図5の例において、木グラフの第1のレベルにおいて可能なキー値は、{"firstName","age","phoneNumbers","children"}であり、"phoneNumbers"オブジェクト内で可能なキー値は、{"type","Number"}である。
値に関して、ノードが数値であるか、文字列であるか又はブール値であるかに依拠して異なる規則を定義することができる。
数値について、その数値が所定の範囲に属することをチェックすることができる、
文字列について、文字セットを事前定義することができ、これには、ASCIII又はUTF−8文字セットが含まれる。例えば、電話番号値は、数字及びハイフンのみを含む。
所与のノードについてチェックされる各規則は、所与のノードの意味タイプに依拠する。
さらに、テスト(又は規則)の第2のセットをチェックすることができ、OK及びNOK等の結果を返すことができる。NOKの結果の数が第2の事前定義された閾値を超える場合、JSONデータを不当であると分類することができ、TCP/IPプロセッサ301は、ステップ411において第1のTCP接続を中断することができる。そうでない場合、JSONデータを妥当と分類することができ、ステップ403において、ウィンドウの底部に位置する受信されたTCPセグメントが転送される。
したがって、図1で示したように、本発明による方法は、好ましくは、分類器15において、ウェブサービスを運用する保護されたサーバー13の手前で実行される。そのようなトポロジーにおいて、分類器15は、ウェブAPIを用いた信頼されていないクライアント10.1又は10.2によって送信される、着信リクエストを搬送するいかなるTCP/IPパケットをも中断することが可能である。システムによって解析されると、IPパケット(又はTCPセグメント)は、意図されたウェブサーバー15に単に転送される。JSONデータが危険であると検出された場合、本発明による方法は、サーバー13を保護するように、TCPセグメントを転送する代わりにTCP接続をリセットすることを提案する。TCP確認応答スキームは、端末ピア(サーバー13並びにクライアント10.1及び10.2)によって管理されるので、TCPレベルにおいて解析プロセスはトランスペアレントである。したがって、本発明による方法は、複雑なTCP管理層を要さず、このことは明らかに利点である。なぜなら、これにより、多数の同時接続を一斉に処理することが可能になるためである。
本発明はコンピュータープログラム製品に組み込むこともでき、そのコンピュータープログラム製品は、本明細書において説明される方法を実施できるようにする全ての機構を含み、情報処理システムにロードされるときに、情報処理システムを生成する。この文脈におけるコンピュータープログラム手段又はコンピュータープログラムは、情報処理能力を有するシステムが直接、又は別の言語への変換後に特定の機能を実行するように意図される1組の命令に関する、任意の言語、コード又は表記における任意の表現を意味する。そのようなコンピュータープログラムは、データ、命令、メッセージ又はメッセージパケット及び他の機械可読情報を媒体から読み出すことができるようにする、コンピューター可読媒体又は機械可読媒体上に記憶することができる。コンピューター可読媒体又は機械可読媒体は、ROM、フラッシュメモリ、ディスクドライブメモリ、CD−ROM及び他の永久記憶装置のような不揮発性メモリを含むことができる。さらに、コンピューター可読媒体又は機械可読媒体は、例えば、RAM、バッファー、キャッシュメモリ、及びネットワーク回線のような揮発性記憶装置を含む場合がある。さらに、コンピューター可読媒体又は機械可読媒体は、有線ネットワーク又は無線ネットワークを含む、ネットワークリンク及び/又はネットワークインターフェースのような一時的状態の媒体内にあるコンピューター可読情報又は機械可読情報を含むことができ、デバイスがそのようなコンピューター可読情報又は機械可読情報を読み出すことができるようになる。
「備える」、「含む」、「組み込む」、「収容する」、「である」、及び「有する」のような表現は、説明及び関連する特許請求の範囲を解釈する際に非排他的に解釈されるべきであり、すなわち、同様に存在していると明示的には規定されない他の項目又は構成要素を考慮に入れるように解釈されるべきである。単数形への参照は複数形への参照であるとも解釈されるべきであり、その逆も同様である。
現時点で本発明の好ましい実施形態であるとみなされるものが図示及び説明されてきたが、本発明の真の範囲から逸脱することなく、種々の他の変更を加えることができること、及び代わりに均等物を用いることができることは当業者には理解されよう。さらに、本明細書において記述される中心的な発明の概念から逸脱することなく、特定の状況を本発明の教示に適合させるように数多くの変更を加えることができる。さらに、本発明の実施形態は、上記の特徴の全てを含むとは限らない場合がある。それゆえ、本発明は開示される特定の実施形態に限定されるのではなく、上記で広く定義されたように本発明の範囲内に入る全ての実施形態を含むことを意図している。
本明細書において開示される種々のパラメーターを変更できること、及び本発明の範囲から逸脱することなく、開示及び/又は特許請求される種々の実施形態を組み合わせることができることは当業者には容易に理解されよう。

Claims (16)

  1. 電気通信ネットワーク(12)にわたって送信元(10.1;10.2)とサーバー(13)との間で交換されるデータストリームをリアルタイムに処理する方法であって、
    該方法は、分類器(15)によって実行され、
    該分類器は、少なくとも1つのテストのセットと、既存のTCP接続のリストとを記憶し、
    該方法は、
    前記データストリームのTCPセグメントを受信すること(400)であって、該TCPセグメントは、データペイロードを含み、該ペイロードは、HTTPメッセージの少なくとも部分を含むことと、
    前記TCPセグメントが属する第1のTCP接続を識別すること(401)、又は、前記受信されたTCPセグメントについての新たな第1のTCP接続を作成することと、
    前記HTTPメッセージの前記部分内で、JSONデータの存在を検出すること(406)と、
    JSONデータが検出された場合、該JSONデータに基づいて木グラフを構築すること(409)と、
    前記構築された木グラフのプロパティ上の前記セットのうちの少なくとも1つのテストを実行して(410)、前記JSONデータが不当であるか否かを判断することと、
    前記JSONデータが不当である場合、前記第1のTCP接続を中断すること(411)と、
    を含む、方法。
  2. 前記木グラフは、複数のノード(500)を含み、
    各ノードは、以下のタイプ、すなわち、
    数値と、
    文字列と、
    ブール値と、
    配列と、
    オブジェクトと、
    ヌル値と、
    の中の所与のノードタイプに対応する、
    請求項1に記載の方法。
  3. 前記木グラフは、複数のノード(500)を含み、
    該ノードは、根ノード及び該根ノードの少なくとも1つの子ノードを含み、
    前記木グラフのプロパティは、以下、すなわち、
    該木グラフのノードの総数と、
    該木グラフの深度と、
    前記オブジェクトタイプ又は前記配列タイプからのノードの子ノードの最大数と、
    の任意の組み合わせを含む、
    請求項2に記載の方法。
  4. 数値タイプ、文字列タイプ又はブール値タイプを有する前記木グラフの各ノード(500)は、キー及び該キーの値と関連付けられ、
    前記組み合わせは、
    キーの最大長、及び/又は、値の最大長、を更に含む、
    請求項3に記載の方法。
  5. 前記セットの各テストは、前記木グラフの前記プロパティのうちの1つをそれぞれの所定値と比較することにあり、
    前記プロパティが前記それぞれの所定値を超えている場合、カウンターが増分され、
    前記カウンターが所定の閾値を超えている場合、前記JSONデータが不当であると分類される、
    請求項3又は4に記載の方法。
  6. 前記少なくとも1つのテストを実行した後に前記JSONデータが不当であると分類されない場合、JSONコンテンツ仕様を用いて完成されたJSONスキーマに基づいた意味分類が前記JSONデータ上で実行され、該JSONデータが妥当であるか又は不当であるかが分類される、
    請求項1から5のいずれか1項に記載の方法。
  7. 前記第1のTCP接続は、前記分類器(15)によって、第1のTCPセグメントを前記送信元(10.1;10.2)に、及び、第2のTCPセグメントを前記サーバー(13)に送信することによって中断され、
    前記第1のTCPセグメント及び前記第2のTCPセグメントは、リセットフラグを含む、
    請求項1から6のいずれか1項に記載の方法。
  8. JSONデータが前記TCPセグメントにおいて検出されない場合、該TCPセグメントは、前記送信元及び前記サーバーの中の前記TCPセグメントの受信者に転送される、
    請求項1から7のいずれか1項に記載の方法。
  9. 前記分類器(15)は、監視されるTCP接続のリストを記憶するメモリを備え、
    前記方法は、
    前記第1のTCP接続を識別すると、該第1のTCP接続が前記監視されるTCP接続のリストに属することを検証すること(402)と、
    前記第1のTCP接続が前記監視されるTCP接続のリストに属さない場合、前記TCPセグメントを前記送信元及び前記サーバーの中の該TCPセグメントの受信者に転送すること(403)と、
    を更に含む、請求項1から8のいずれか1項に記載の方法。
  10. 前記分類器は、監視されるTCP接続のリストを記憶するメモリを備え、
    各監視されるTCP接続について、TCP接続情報が保持され、
    該TCP接続情報は、ウィンドウの底部を含み、
    前記受信されたTCPセグメントは、TCPシーケンス番号を含み、
    前記方法は、
    前記第1のTCP接続を識別すると、該第1のTCP接続が前記監視されるTCP接続のリストに属することを検証すること(402)と、
    前記第1のTCP接続が前記監視されるTCP接続のリストに属する場合、前記TCPシーケンス番号が前記第1のTCP接続の前記ウィンドウの底部に対応することを検証すること(404)と、
    前記TCPシーケンス番号が前記第1のTCP接続の前記ウィンドウの底部に対応していない場合、前記TCPセグメントを前記送信元及び前記サーバーの中の該TCPセグメントの受信者に転送すること(403)と、
    前記TCPシーケンス番号が前記第1のTCP接続の前記ウィンドウの底部に対応する場合、前記第1のTCP接続の前記ウィンドウの底部を更新し(404)、JSONデータの存在を検出することを続行することと、
    を含む、請求項1から9のいずれか1項に記載の方法。
  11. 各既存のTCP接続は、送信元アドレス、TCP送信元ポート、IP宛先アドレス及びTCP宛先ポートを含む識別情報によって識別され、
    前記受信されたTCPセグメントは、第1の送信元アドレス、第1のTCP送信元ポート、第1のIP宛先アドレス及び第1のTCP宛先ポートを示すヘッダーを含む、
    請求項9又は10に記載の方法。
  12. JSONデータの存在は、前記HTTPメッセージの第1のHTTPヘッダー値に少なくとも基づいて検出される、
    請求項1から11のいずれか1項に記載の方法。
  13. 前記分類器は、HTTP再組み立てバッファーを含み、
    該再組み立てバッファーのサイズは、少なくとも前記第1のHTTPヘッダー値の最大サイズに等しい、
    請求項12に記載の方法。
  14. 前記第1のHTTPヘッダー値は、フィールド「Content-Type」に対応する値であり、
    JSONデータ長は、フィールド「Content-Length」に対応する第2のHTTPヘッダー値に基づいて検出される、
    請求項12又は13に記載の方法。
  15. コンピューティングデバイス内にロード可能であり、該コンピューティングデバイス内にロードされて、該コンピューティングデバイスによって実行されると、該コンピューティングデバイスに請求項1〜14のいずれか1項に記載の方法を実行させるように構成されたコンピュータープログラム命令を記憶したコンピューター可読媒体を備える、
    コンピュータープログラム製品。
  16. 電気通信ネットワーク(12)にわたって送信元(10.1;10.2)とサーバー(13)との間で交換されるデータストリームをリアルタイムに処理する分類器であって、 該分類器(15)は、
    少なくとも1つのテストのセットと、既存のTCP接続のリストとを記憶するメモリ(204)と、
    前記データストリームのTCPセグメントを受信するように構成された入力インターフェース(201)であって、前記TCPセグメントは、データペイロードを含み、該ペイロードは、HTTPメッセージの少なくとも部分を含む、入力インターフェースと、
    プロセッサ(202)であって、
    前記TCPセグメントが属する第1のTCP接続を識別すること、又は、前記受信されたTCPセグメントについての新たな第1のTCP接続を作成することと、
    前記HTTPメッセージの前記部分内で、JSONデータの存在を検出することと、
    JSONデータが検出された場合、該JSONデータに基づいて木グラフを構築することと、
    前記構築された木グラフのプロパティ上の前記セットのうちの少なくとも1つのテストを実行して、前記JSONデータが不当であるか否かを判断することと、
    前記JSONデータが不当である場合、前記第1のTCP接続を中断することと、
    を行うように構成されたプロセッサと、
    を備える、分類器。
JP2018518531A 2016-02-26 2017-02-09 木グラフプロパティを適用するjsonデータのリアルタイムバリデーション Expired - Fee Related JP6548823B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP16305225.1A EP3211853B1 (en) 2016-02-26 2016-02-26 Real-time validation of json data applying tree graph properties
EP16305225.1 2016-02-26
PCT/JP2017/005602 WO2017145898A1 (en) 2016-02-26 2017-02-09 Real-time validation of json data applying tree graph properties

Publications (3)

Publication Number Publication Date
JP2018531466A JP2018531466A (ja) 2018-10-25
JP2018531466A6 JP2018531466A6 (ja) 2018-12-13
JP6548823B2 true JP6548823B2 (ja) 2019-07-24

Family

ID=55521652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018518531A Expired - Fee Related JP6548823B2 (ja) 2016-02-26 2017-02-09 木グラフプロパティを適用するjsonデータのリアルタイムバリデーション

Country Status (5)

Country Link
US (1) US10805435B2 (ja)
EP (1) EP3211853B1 (ja)
JP (1) JP6548823B2 (ja)
CN (1) CN108702361A (ja)
WO (1) WO2017145898A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110764768A (zh) * 2018-07-26 2020-02-07 北京京东金融科技控股有限公司 一种模型对象与json对象互转的方法和装置
US11068468B2 (en) 2019-03-29 2021-07-20 Adp, Llc Extensible validation framework
US20230214401A1 (en) * 2022-01-04 2023-07-06 Sap Se Smart view generation for payloads
CN114077609B (zh) * 2022-01-19 2022-04-22 北京四维纵横数据技术有限公司 数据存储及检索方法,装置,计算机可读存储介质及电子设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2512931A1 (en) * 2005-07-22 2007-01-22 Cognos Incorporated Rich web application input validation
WO2011025975A1 (en) * 2009-08-28 2011-03-03 Zynga Game Network, Inc. Apparatuses, methods and systems for a distributed object renderer
US8640216B2 (en) * 2009-12-23 2014-01-28 Citrix Systems, Inc. Systems and methods for cross site forgery protection
US20110289141A1 (en) * 2010-05-20 2011-11-24 Salesforce.Com, Inc. Methods and systems for providing a user interface in a multi-tenant database environment
KR101005927B1 (ko) * 2010-07-05 2011-01-07 펜타시큐리티시스템 주식회사 웹 어플리케이션 공격 탐지 방법
GB201108709D0 (en) * 2011-05-24 2011-07-06 Corethree Ltd Core engine
CN102891779B (zh) * 2012-09-27 2014-10-22 北京网瑞达科技有限公司 用于ip网络的大规模网络性能测量系统的测量方法
CN103310025A (zh) * 2013-07-08 2013-09-18 北京邮电大学 非结构化数据的描述方法及装置
US9838454B2 (en) * 2014-04-23 2017-12-05 Cisco Technology, Inc. Policy-based payload delivery for transport protocols
US9355111B2 (en) * 2014-04-30 2016-05-31 Microsoft Technology Licensing, Llc Hierarchical index based compression
CN105704061B (zh) * 2014-11-27 2019-02-26 中国移动通信集团江苏有限公司 一种发送速率控制方法及设备
CN106156286B (zh) * 2016-06-24 2019-09-17 广东工业大学 面向专业文献知识实体的类型抽取系统及方法
CN106201886B (zh) * 2016-07-18 2019-04-09 优酷网络技术(北京)有限公司 一种实时数据任务的验证的代理方法及装置

Also Published As

Publication number Publication date
US10805435B2 (en) 2020-10-13
JP2018531466A (ja) 2018-10-25
EP3211853A1 (en) 2017-08-30
US20180359342A1 (en) 2018-12-13
WO2017145898A1 (en) 2017-08-31
CN108702361A (zh) 2018-10-23
EP3211853B1 (en) 2019-10-30

Similar Documents

Publication Publication Date Title
US9185125B2 (en) Systems and methods for detecting and mitigating threats to a structured data storage system
US9912680B2 (en) Detecting malicious HTTP redirections using user browsing activity trees
JP6173613B2 (ja) Httpトラフィックを搬送するtcp接続を分類する方法、デバイス、コンピュータプログラム及び情報記憶手段
US8997232B2 (en) Iterative automatic generation of attribute values for rules of a web application layer attack detector
US9413783B1 (en) Network interface with on-board packet processing
US9100291B2 (en) Systems and methods for extracting structured application data from a communications link
WO2018107784A1 (zh) 检测网页后门的方法和装置
JP6548823B2 (ja) 木グラフプロパティを適用するjsonデータのリアルタイムバリデーション
CN102724317A (zh) 一种网络数据流量分类方法和装置
CN110166480B (zh) 一种数据包的分析方法及装置
JP2018531466A6 (ja) 木グラフプロパティを適用するjsonデータのリアルタイムバリデーション
US11824834B1 (en) Distributed firewall that learns from traffic patterns to prevent attacks
WO2018076697A1 (zh) 僵尸特征的检测方法和装置
CN113518042B (zh) 一种数据处理方法、装置、设备及存储介质
WO2022001577A1 (zh) 一种基于白名单的内容锁防火墙方法及系统
US11457095B1 (en) Stateless communication using a stateful protocol
CN108605039A (zh) 在spdy连接上检测恶意软件
US9866489B2 (en) Delayed proxy action
Smedshammer Discovering Novel Semantic Gap Attacks: A hands-on evaluation of the security of popular reverse proxies and web servers
Afzal et al. Using Partial Signatures in Intrusion Detection for Multipath TCP
Erlacher Efficient intrusion detection in high-speed networks.
Liu et al. A network monitor for HTTPS protocol based on proxy
Zoder Real-time Detection of Communication with Blacklisted Network Hosts
Maughan CONDENSER: A custom tool for capturing and summarizing network traffic for AVALANCHE and ISEAGE

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180409

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190517

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190625

R150 Certificate of patent or registration of utility model

Ref document number: 6548823

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees