JPWO2019082818A1 - 通信装置、通信システム及び通信プログラム - Google Patents

通信装置、通信システム及び通信プログラム Download PDF

Info

Publication number
JPWO2019082818A1
JPWO2019082818A1 JP2019551098A JP2019551098A JPWO2019082818A1 JP WO2019082818 A1 JPWO2019082818 A1 JP WO2019082818A1 JP 2019551098 A JP2019551098 A JP 2019551098A JP 2019551098 A JP2019551098 A JP 2019551098A JP WO2019082818 A1 JPWO2019082818 A1 JP WO2019082818A1
Authority
JP
Japan
Prior art keywords
obfuscation
communication
communication device
unit
processing unit
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.)
Granted
Application number
JP2019551098A
Other languages
English (en)
Other versions
JP6805366B2 (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2019082818A1 publication Critical patent/JPWO2019082818A1/ja
Application granted granted Critical
Publication of JP6805366B2 publication Critical patent/JP6805366B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

通信装置(10)は、クライアント端末と、クライアント端末と通信を行うWebサーバとの間に設けられた通信装置であって、Webサーバとクライアント端末との間の通信に含まれる情報のうち、Webアプリケーションに関する情報に難読化を施す難読化処理部(133)と、難読化処理部(133)によって難読化された情報を含む通信を送信先へ送信する通信部(11)と、を有する。

Description

本発明は、通信装置、通信システム及び通信プログラムに関する。
Webアプリケーションは多くのサービスで利用され、社会基盤の一部となっている。同時にWebアプリケーションの脆弱性を悪用する攻撃も発生している。Webアプリケーションの脆弱性の有無を調べる方法の一つにWebアプリケーションフィンガープリンティング(Web Application Fingerprinting:WAFP)がある。このWAFPは、サーバ上で利用されているWebアプリケーションやそのバージョン情報を収集する技術である。WAFPを行う方法は、大きくわけて二つある。
まず、一つ目の方法は、正規表現のパターンマッチを用いて、Webアプリケーション特有の文字列(Webアプリケーション名、バージョン情報や静的ファイルへのパスなど)をソースコードから抽出する方法である。例えば、正規表現(記法はPCRE(Perl Compatible Regular Expressions)に準拠)「Powered by (\w+)」の場合を例に説明する。この一つ目の方法では、この正規表現は、「Powered by」の後にはWebアプリケーション名がくるであろうという推測のもと、その後に続く英字と数字からなる1文字以上の文字列を抽出する。この一つ目の方法では、例えば、パターンマッチを行う対象のソースコードに「<h1> Powered by CMS </h1>」が含まれているなら、この正規表現について「CMS」を抽出する。
また、二つ目の方法は、既知の静的ファイルへのパスに対してアクセスを試みる方法である。静的ファイルとは、システムの管理者以外から変更されることのないファイルのことである。この二つ目の方法では、アクセスに成功した場合に、ファイルの内容が一致するか確かめる。そして、二つ目の方法では、ファイルの内容が一致している場合には、そのWebアプリケーションを利用していると判断する。
例えば、「a.com」は、WebアプリケーションBを利用しているとする。また、Bは、「/B/includes/c.js」を持つことが知られているとする。この場合、「a.com」がWebアプリケーションBを利用しているか否かを以下の手順で確認できる。まず、「a.com/B/includes/c.js」にアクセスし、「c.js」を取得できるか否かを確かめる。「c.js」を取得できない場合、「a.com」がWebアプリケーションBを利用しているかどうかは不明である。これに対し、「c.js」を取得できた場合、その内容がWebアプリケーションBの「c.js」と一致しているか否かを判定する。取得した内容がWebアプリケーションBの「c.js」と一致している場合には、「a.com」は、WebアプリケーションBが持つ特有の静的ファイルを持つため、WebアプリケーションBを利用していると考えることができる(例えば、非特許文献1参照)。
Patrick S.Thomas,"BLINDELEPHANT: WEB APPLICATION FINGERPRINTING WITH STATIC FILES",[平成29年10月2日検索],インターネット<URL:https://community.qualys.com/servlet/JiveServlet/downloadBody/1351-102-7-1642/BlindElephant_WebApp_Fingerprinting-PAPER-v2.pdf>
このWAFPは、Webアプリケーションのソースコード中にあるWebアプリケーション特有の文字列の抽出や既知の静的パスへのアクセスを行うことによって、Webアプリケーションの情報を収集する。WAFPによって収集された情報は、攻撃者が攻撃方法を決定する際に用いられるため、WAFPによるWebアプリケーションの情報露見を防ぐことが攻撃に対する防御につながる。そこで、従来、WAFPによって外部にWebアプリケーション情報が露見しないようにWebアプリケーションを改変する対策が提案されている。
例えば、WAFPに対する第1の対策として、設定を変更することによってWebアプリケーション特有の文字列(Webアプリケーション名やバージョン情報など)がWebアプリケーションのソースコードに明記されないようにする技術がある。しかしながら、この第1の対策では、ソースコード自体を変更しなければ対応できないケースがあるという問題がある。
具体的に、図20を参照して、一つ目の対策技術で問題となる、ソースコード自体を変更しなければ対応できないケースについて説明する。図20は、WAFPに対する従来の対策技術を説明する図である。図20の(a)のうち、枠C1P,C2Pで囲まれた箇所がWebアプリケーションの特有の文字列部分である。このうち、枠C1Pの「X-Powered-by」ヘッダは、設定ファイルを変更することによって、図20の(b)の枠C1P´に示すように、文字列自体を削除できる。これに対し、枠C2Pの「div」タグは、設定ファイルを変更するだけでは削除できず、図20の(b)の枠C2P´のように、文字列が残ってしまい、ソースコード自体を変更しなければ対応できない。
また、WAFPに対する第2の対策として、ディレクトリ構造を変更する技術がある。しかしながら、この第2の対策では、ディレクトリ構造の変更を適切にソースコードに反映しなければならないという問題がある。
具体的に、図21を参照して、二つ目の対策技術で問題となる、ディレクトリ構造の変更を適切にソースコードに反映しなければならないケースについて説明する。図21は、WAFPに対する従来の対策技術を説明する図である。例えば、WAFP対策のために、ダミーのディレクトリ「dummy」を「cms」の後に追加し、ディレクトリ構造を変更する(図21の(1)参照)。この際、図21の(a)の左図に示すディレクトリ構造の「a.js」を読み出すソースコード「https://e.com/cms/includes/a.js」(図21の(2)参照)は、ディレクトリの変更に伴い、ソースコード中の関連する箇所を変更され(図21の(3)参照)、「https://e.com/cms/dummy/includes/a.js」(図21の(b)の左図参照)となる。
一方で、ディレクトリ構造の「d.css」は、図21の(b)の左図に示すように、パスを変更し忘れているため、呼び出せなくなっている(図21の(4)参照)。このように、この第2の対策技術では、ディレクトリ構造の変更を適切にソースコードに反映しきれない場合がある。
このように、従来の対策では、WAFPに対する十分な対応が難しく、WAFPによる外部へのWebアプリケーション情報の露見を防止することが難しい場合があった。
本発明は、上記に鑑みてなされたものであって、WAFPによるWebアプリケーションの情報露見を防ぐことができる通信装置、通信システム及び通信プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係る通信装置は、クライアント端末と、クライアント端末と通信を行うWebサーバとの間に設けられた通信装置であって、Webサーバとクライアント端末との間の通信に含まれる情報のうち、Webアプリケーションに関する情報に難読化を施す難読化処理部と、難読化処理部によって難読化された情報を含む通信を送信先へ送信する通信部と、を有することを特徴とする。
本発明によれば、WAFPによるWebアプリケーションの情報露見を防ぐことができる。
図1は、実施の形態に係る通信システムの構成の一例を模式的に示す図である。 図2は、図1に示す通信装置の構成の一例を示す図である。 図3は、静的ファイル置換リストのデータ構成の一例を示す図である。 図4は、キーワードリストのデータ構成の一例を示す図である。 図5は、図1に示す通信システムの処理の流れの概略を説明する図である。 図6は、図2に示す置換部の処理を説明するための図である。 図7は、従来のHTTPリクエストの送信を説明する図である。 図8は、図2に示す置換部の処理を説明するための図である。 図9は、従来のHTTPレスポンスの送信を説明する図である。 図10は、図2に示す難読化処理部の処理の一例を説明する図である。 図11は、図2に示す難読化処理部の処理の一例を説明する図である。 図12は、図2に示す難読化処理部の処理の一例を説明する図である。 図13は、図2に示す難読化処理部の処理の一例を説明する図である。 図14は、図1に示す通信システムにおける通信例を説明する図である。 図15は、図1に示す通信システムにおける他の通信例を説明する図である。 図16は、図2に示す通信装置が行うHTTPリクエストに対する処理の処理手順のフローチャートである。 図17は、図2に示す通信装置が行うHTTPレスポンスに対する処理の処理手順のフローチャートである。 図18は、図17に示す難読化対象検出処理の処理手順を示すフローチャートである。 図19は、プログラムが実行されることにより、通信装置が実現されるコンピュータの一例を示す図である。 図20は、WAFPに対する従来の対策技術を説明する図である。 図21は、WAFPに対する従来の対策技術を説明する図である。
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[実施の形態]
[通信システムの概要]
まず、図1を用いて、実施の形態に係る通信システムの構成について説明する。図1は、実施の形態に係る通信システムの構成の一例を模式的に示す図である。
図1に示すように、通信システム1は、クライアント端末2と、保護対象のWebサーバ3とが、ネットワーク4を介して接続する構成を有する。Webサーバ3の前段には、プロキシとして通信装置10が設けられており、Webサーバ3は、通信装置10を介して、ネットワーク4に接続する。
クライアント端末2は、例えば、Webアプリケーションを使用するサーバ装置、パーソナルコンピュータ、スマートフォン等の情報端末である。クライアント端末2は、例えば、HTTP(HyperText Transfer Protocol)リクエストをWebサーバ3に送信する。
また、クライアント端末2は、通信装置10による難読化処理後のHTTPレスポンスを受信する。この際、通信装置10は、難読化処理後のHTTPリクエストに含まれる識別子を、該識別子に対応するURLに置き換える。
Webサーバ3は、サービス提供者のサーバであり、クライアント端末2にサービスを提供するサーバである。例えば、Webサーバ3は、クライアント端末2によるHTTPリクエストを受けると、このリクエストに対応するサービス提供のためのHTTPレスポンスを送信する。Webサーバ3は、クライアント端末2との間の通信を、通信装置10を介して行う。
ネットワーク4は、例えば、有線又は無線のLAN(Local Area Network)、WAN(Wide Area Network)及びVPN(Virtual Private Network)等の任意の種類のネットワークである。
通信装置10は、Webサーバ3とネットワーク4との間に設けられ、Webサーバ3のプロキシとして機能する。通信装置10は、Webサーバ3とクライアント端末2との間の通信に含まれる情報のうち、Webアプリケーションに関する情報に難読化を施す。そして、通信装置10は、難読化された情報を含む通信を送信先へ送信する。通信装置10は、例えば、HTTP通信を改変する。
このように、通信システム1では、通信装置10をWebサーバ3のプロキシとして用いている。通信装置10は、Webサーバ3とクライアント端末2との間の通信を中継しつつ、例えば、HTTP通信に含まれる情報のうちWebアプリケーションに関する部分を改変することによって、Webアプリケーション自体を改変することなく、WAFPによる情報露見を防止する。続いて、この通信装置10の構成について説明する。
[通信装置の構成]
図2は、図1に示す通信装置10の構成の一例を示す図である。通信装置10は、図2に示すように、通信部11、記憶部12及び制御部13を有する。
通信部11は、ネットワーク4等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部11は、例えば、NIC(Network Interface Card)等で実現され、LANやインターネットなどの電気通信回線を介した他の装置と制御部13(後述)との間の通信を行う。
具体的には、通信部11は、ネットワーク4を介して、クライアント端末2による識別子で難読化されたHTTPリクエストを受信し、制御部13に出力する。また、通信部11は、制御部13において識別子をURLで置き換えられたHTTPリクエストをWebサーバ3に送信する。そして、通信部11は、Webサーバ3によるHTTPレスポンスを受信し、制御部13に出力する。通信部11は、難読化処理部133(後述)において難読化処理を施されたHTTPリクエストを、ネットワーク4を介してクライアント端末2に送信する。このように、通信部11は、難読化処理部133によって難読化された情報を含む通信を送信先へ送信する。
記憶部12は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、通信装置10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部12は、静的ファイル置換リスト記憶部121及びキーワードリスト記憶部122を有する。
静的ファイル置換リスト記憶部121は、Webアプリケーション特有の静的ファイルへのパスを示すURLと、該URLに対応する任意の文字列から成る識別子との組を記憶する。
図3は、静的ファイル置換リストのデータ構成の一例を示す図である。図3に示すように、静的ファイル置換リストL1は、各静的ファイルへのパスを示すURLと、該URLに対応する識別子とをそれぞれ対応付けたリストである。図3の例では、1組目のURL「cms/content/themes/a.js」には、識別子「a1Bq6」が対応付けられており、2組目のURL「cms/content/themes/b.js」には、識別子「GA02Tp」が対応付けられている。この識別子は、ランダムな文字列からなり、任意の異なる二つのURLに対応する識別子が同じものであることはない。
この際、制御部13は、この静的ファイル置換リストL1を参照し、クライアント端末2から送信されたHTTPリクエストの識別子を、該識別子に対応するURLに置き換える。また、制御部13は、Webサーバ3によるHTTPレスポンスのうち、静的ファイル置換リストL1に含まれるURLを、該URLに対応する識別に置き換える。クライアント端末2は、このHTTPレスポンスを受信した際、HTTPリクエストに含まれる識別子を、該識別子に対応するURLに置き換える。
キーワードリスト記憶部122は、Webアプリケーション特有の文字列から成るキーワードのリストを記憶する。図4は、キーワードリストのデータ構成の一例を示す図である。図4に示すように、キーワードリストL2は、キーワードが行ごとに示されたリストである。キーワードは、後述する制御部13における難読化処理の対象となる文字列であり、Webアプリケーション特有の文字列から成る。このキーワードリストL2では、文字列に含まれる英字は全て小文字で示される。キーワードは、例えば、Webアプリケーション名や、その他のWebアプリケーション特有の文字列である。
図4の例では、行K1にWebアプリケーション名「cms」が示され、行K2にWebアプリケーション名「excelpress」が示されている。また、行K3及び行K4には、その他のWebアプリケーション特有の文字列である「name=“generator”」、「id=“floccinaucinihilipilification”」が示されている。制御部13(後述)は、このキーワードリストL2を参照して、Webサーバ3から送信されたHTTPレスポンスからキーワードと類似する文字列を、難読化の対象となる箇所として検出する。
制御部13は、各種の処理手順などを規定したプログラム及び所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部13は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。制御部13は、置換部131、難読化対象検出部132(検出部)及び難読化処理部133を有する。
置換部131は、静的ファイル置換リスト記憶部121を参照し、クライアント端末2から送信されたHTTPリクエストに含まれる識別子を、該識別子に対応するWebアプリケーション特有の静的ファイルへのパスを示すURLに置換する。また、置換部131は、静的ファイル置換リスト記憶部121を参照し、Webサーバ3から送信されたHTTPレスポンスに含まれるWebアプリケーション特有の静的ファイルへのパスを示すURLを、該URLに対応する識別子に置換する。
難読化対象検出部132は、Webサーバ3から送信されたHTTPレスポンスのうち、Webアプリケーションに関する情報が示された部分を検出する。難読化対象検出部132は、キーワードリスト記憶部122を参照し、Webサーバ3から送信されたHTTPレスポンスのうちキーワードと類似する文字列を、Webアプリケーションに関する情報として検出する。
難読化処理部133は、Webサーバ3とクライアント端末2との間の通信に含まれる情報のうち、Webアプリケーションに関する情報に難読化を施す。難読化処理部133は、難読化対象検出部132が検出した部分に難読化を施す。難読化処理部133は、HTTPレスポンスのコンテンツタイプの種別に応じた手法を用いて、Webアプリケーションに関する情報が示された部分に難読化を施す。難読化処理部133は、難読化対象検出部132が検出した文字列を難読化処理後の文字列で置き換える。また、難読化処理部133は、HTTPレスポンスのコンテンツタイプが画像である場合には、該画像のコメントにランダムな文字列を埋め込む。
[通信システムの処理の流れ]
次に、通信システム1の処理の流れの概略を説明する。図5は、図1に示す通信システム1の処理の流れの概略を説明する図である。図5では、通信装置10については要部のみを示し、ネットワーク4の記載は省略している。
図5に示すように、まず、クライアント端末2が、HTTPリクエストを、Webサーバ3に送信する(図5の矢印Y11参照)。このHTTPリクエストは、Webアプリケーション特有の静的ファイルへのパスを示すURL部分を、任意の文字列から成る識別子で置き換えたものである。通信装置10では、このHTTPリクエストを受信すると、置換部131が、静的ファイル置換リスト記憶部121を参照し、HTTPリクエストに含まれる識別子を、該識別子に対応するURLに置換する。そして、通信装置10は、置換後のHTTPリクエストをWebサーバ3に送信する(図5の矢印Y12参照)。
続いて、このHTTPリクエストに対するHTTPレスポンスを、Webサーバ3が送信する(図5の矢印Y21参照)。このHTTPレスポンスを受信した通信装置10では、まず、置換部131が、静的ファイル置換リスト記憶部121を参照し、HTTPレスポンスに含まれるWebアプリケーション特有の静的ファイルへのパスを示すURLを、該URLに対応する識別子に置換する。置換部131は、置換後のHTTPレスポンスを出力する(図5の矢印Y22参照)。
そして、難読化対象検出部132は、置換後のHTTPレスポンスについて、キーワードリスト記憶部122を参照し、HTTPレスポンスから、キーワードと類似する文字列を検出する。難読化対象検出部132は、検出結果を難読化処理部133に出力する(図5の矢印Y23参照)。続いて、難読化処理部133は、難読化対象検出部132が検出した部分に難読化を施す。この難読化後のHTTPレスポンスは、通信装置10からクライアント端末2に送信される(図5の矢印Y24参照)。クライアント端末2では、HTTPレスポンスを受信すると、HTTPリクエストに含まれる識別子を、該識別子に対応するURLに置き換え、HTTPレスポンスの難読化部分をデコードして表示を行う。
[置換部の処理]
次に、通信装置10の各部の処理を具体的に説明する。そこで、置換部131の処理について説明する。図6は、図2に示す置換部131の処理を説明するための図である。まず、図6を参照して、HTTPリクエストを受けた際の置換部131の処理について説明する。
図6に示すように、まず、通信システム1では、クライアント端末2が、識別子を用いてHTTPリクエスト「GET/a1Bq6」を送信する(図6の(1)及び枠W1参照)。この際、通信装置10は、HTTPリクエスト「GET/a1Bq6」のうち、要求対象となるURLを、対応する識別「a1Bq6」(図6の枠C1参照)に置き換えている。なお、クライアント端末2が置換後のランダムな文字列である識別子を事前に知ることはできない。
通信装置10では、このHTTPリクエストを受信すると、置換部131が、静的ファイル置換リスト記憶部121から、静的ファイル置換リストL1を参照する(図6の(2)参照)。この際、静的ファイル置換リストL1の行R1に、HTTPリクエスト内の識別子「a1Bq6」が示されている。そこで、置換部131は、HTTPリクエストの識別子「a1Bq6」を、静的ファイル置換リストL1の行R1に示されたURL「cms/content/themes/a.js」に置換する(図6の(3)参照)。そして、通信装置10は、識別子「a1Bq6」をURL「cms/content/themes/a.js」(図6の枠C1´)に置換済みのHTTPリクエスト「GET/cms/content/themes/a.js」(図6の枠W1´)を、Webサーバ3へ送信する(図6の(4)参照)。
ここで、従来のHTTPリクエストの送信について説明する。図7は、従来のHTTPリクエストの送信を説明する図である。従来では、クライアント端末2Pは、URLをそのまま示したHTTPリクエスト「GET/cms/content/themes/a.js」(図7の枠W1P参照)をWebサーバ3へ送信していた(図7の(1)参照)。したがって、WAFPによるWebアプリケーションの情報露見のおそれがあった。
これに対し、通信装置10では、置換部131が、HTTPリクエスト内のURLを、静的ファイル置換リストL1に基づき、対応する識別子に置換して、Webアプリケーションの情報を難読化している。
続いて、HTTPレスポンスを受けた際の置換部131の処理について説明する。図8は、図2に示す置換部131の処理を説明するための図である。Webサーバ3は、HTTPリクエストに対して、枠W2に示すHTTPレスポンスを送信する(図8の(1)参照)。このHTTPレスポンスを受信した通信装置10では、まず、置換部131が、静的ファイル置換リストL1を参照し(図8の(2)参照)、HTTPレスポンスに、静的ファイル置換リストL1内にあるURLが含まれるか否かを判断する。
この場合には、HTTPレスポンスに、静的ファイル置換リストL1の行R1に示されたURL「cms/content/themes/a.js」(図8の枠C2参照)が含まれる。このため、通信装置10では、置換部131が、このURL「cms/content/themes/a.js」を、静的ファイル置換リストL1の行R1に示された識別子「a1Bq6」(図8の枠C2´)に置換する(図8の(3)参照)。その後、通信装置10は、置換済みのHTTPレスポンス(図8の枠W2´参照)をクライアント端末2へ送信する(図8の(4)参照)。なお、このHTTPレスポンスは、難読化対象検出部132及び難読化処理部133による処理後のものである。
ここで、従来のHTTPレスポンスの送信について説明する。図9は、従来のHTTPレスポンスの送信を説明する図である。従来では、Webサーバ3Pは、URLをそのまま示したHTTPレスポンス(図9の枠W2P参照)をクライアント端末2Pへ送信していた(図9の(1)参照)。したがって、WAFPによるWebアプリケーションの情報露見のおそれがあった。
これに対し、通信装置10では、置換部131が、HTTPレスポンス内のURLを、静的ファイル置換リストL1に基づき、対応する識別子に置換して、Webアプリケーションの情報を難読化している。言い換えると、通信装置10では、置換部131が、HTML内に含まれるURLを、静的ファイル置換リストL1に基づき、対応する識別子に置換することによって、Webアプリケーションの情報を難読化し、WAFPによるWebアプリケーションの情報露見を防止している。
[難読化対象検出部の処理]
次に、難読化対象検出部132の処理について説明する。難読化対象検出部132は、Webサーバ3から送信されたHTTPレスポンスの中から、難読化の対象となる箇所を検出する。
難読化対象検出部132は、キーワードリスト記憶部122のキーワードリストL2を参照して、難読化の対象となる箇所を検出する。ただし、難読化対象検出部132による検出処理は、HTTPリクエストもしくはHTTPレスポンスのコンテンツタイプによって異なる。本実施の形態では、Webアプリケーションでよく用いられる、HTML、JavaScript(登録商標)、CSS、画像(jpg、png、gif)の4つのファイル種別に該当するコンテンツタイプのレスポンスに対して難読化処理を施す場合を例に説明する。
まず、難読化対象検出部132は、HTTPリクエストもしくはHTTPレスポンスのコンテンツタイプを判定する。難読化対象検出部132は、HTTPリクエストもしくはHTTPレスポンスのコンテンツタイプがJavaScript、CSS或いは画像であると判定した場合、検出を行わずに難読化処理部133へ処理を引き継ぐ。
これに対し、難読化対象検出部132は、コンテンツタイプがHTMLの場合は以下の処理を行い難読化対象の検出を行う。まず、難読化対象検出部132は、HTMLをタグに分割する。そして、難読化対象検出部132は、各タグに対して、以下に示す処理を行う。難読化対象検出部132は、タグ内の英大文字を英小文字に変換する。例えば、難読化対象検出部132は、タグ内部に、「Hello, World」とあった場合、このタグを、「hello, world」に変換する。そして、難読化対象検出部132は、キーワードリスト内の各キーワードに対して、タグ内の各位置からキーワードの長さ分の文字列を抽出する。続いて、難読化対象検出部132は、キーワードと抽出した文字列とが類似していれば難読化対象として検出する。
続いて、難読化対象検出部132による、キーワードと抽出された文字列との類似判定処理について説明する。この類似判定処理として、まず、難読化対象検出部132は、キーワードと抽出された文字列との類似度が閾値以上か否かで類似判定を行う。難読化対象検出部132は、例えば、Jaccard係数による類似度を算出する。この場合、難読化対象検出部132は、キーワードsと抽出された文字列tの最長共通部分列(Longest Common Subsequence:LCS)を求め、LCS(s,t)と表す。文字列uの長さを|u|として表すとき、sとtの類似度は、Jaccard係数を用いて、|LCS(s,t)|/(|s|+|t|-|LCS(s,t)|)と表される。ここで、難読化対象検出部132は、類似度が閾値α以上であれば、キーワードsと抽出された文字列tが類似していると判定する。
例えば、キーワードsが「SimCMS」、文字列tが「SCMS」であり、閾値α=0.6である場合について説明する。この場合、LCS(s,t)=4であり、|LCS(s,t)|/(|s|+|t|-|LCS(s,t)|)=4/(6+4-4)=0.66…となる。難読化対象検出部132は、|LCS(s,t)|/(|s|+|t|-|LCS(s,t)|)が、0.66…(≧α(=0.6))であるため、文字列tは、キーワードsと類似していると判断する。なお、Jaccard係数による類似度算出方法は、キーワードと単語との類似度の算出方法の一例であり、本実施の形態では、この方法に限定するものではない。したがって、難読化対象検出部132は、その他の類似度算出方法を用いることができる。
[難読化処理部の処理]
次に、難読化処理部133の処理について説明する。難読化処理部133は、HTTPレスポンスのうち、難読化の対象となった箇所に難読化を施す。難読化処理部133が行う難読化の処理は、難読化の対象のコンテンツタイプによって異なる。そこで、対象のコンテンツタイプが、HTML、JavaScirpt、CSS、画像(jpg,png,gif)である場合に分けて、難読化処理の詳細を説明する。なお、本実施の形態では、一例として上記のコンテンツタイプを記載しているが、もちろん、上記以外のコンテンツタイプについても、難読化処理は可能である。難読化処理部133は、上記以外のコンテンツタイプについても、任意の文字列を埋め込み可能な箇所を検出し、その箇所に対してランダムな文字列を書き込み、難読化処理を施すことで同様に難読化処理が可能である。
まず、HTTPレスポンスのうち、難読化の対象のコンテンツタイプがHTMLの場合について説明する。この場合、難読化処理部133が難読化する範囲は、3パターン存在する。まず、第1のパターンは、難読化対象検出部132によって検出された箇所のみである。第2のパターンは、難読化対象検出部132によって検出された箇所を含むタグ全体である。第3のパターンは、難読化対象検出部132によって検出された箇所からタグの最後までである。これらの第1〜第3のパターンによって難読化の範囲が変わるが、処理の内容は変わらないため、以降の説明では第1のパターンについて説明する。
例えば、難読化処理部133は、エンコード方式としてBase64を用いる。この場合、難読化処理部133は、以下の手順にしたがい、難読化対象検出部132によって検出された箇所に、難読化を施す。まず、難読化処理部133は、難読化対象の箇所をBase64でエンコードする。そして、難読化処理部133は、エンコードした文字列をデコードしてHTMLに書き込むスクリプトを難読化対象の箇所に埋め込む。このとき難読化対象の箇所がすでにスクリプト内か否かでスクリプトを「<script>」で囲むか否かが変わる。
図10を参照して、難読化処理部133の処理を具体的に説明する。図10は、図2に示す難読化処理部133の処理の一例を説明する図である。図10は、上方の枠W3に、難読化対象検出部132によって検出された箇所「CMS」(枠C3−1参照)を含むタグの一例を示し、下方の枠W3´に、難読化対象検出部132によって検出された箇所「CMS」を難読化した後のタグを示す。難読化処理部133は、例えば、エンコード方式としてBase64を用いる。
まず、難読化処理部133は、難読化対象検出部132によって難読化対象として検出された「CMS」(枠C3−1参照)をBase64でエンコードし、「Q01Lg==」とする(枠C3−2参照)。難読化処理部133は、HTMLでは、「Q01Lg==」をデコードして表示するため、既存のBase64デコードライブラリである「atob」を用いる(枠C3−3参照)。難読化処理部133は、デコードした結果をHTMLに埋め込むため、「document.write」を用いる(枠C3−4参照)。難読化処理部133は、デコードされた文字列が英語以外であっても対応できるように、デコードした文字列を「escape」(枠C3−5参照)で「utf-8」にエンコードする。難読化処理部133は、それを「decodeURIComponenet」(枠C3−6参照)を用いてもとの文字列に戻す。
なお、この方法は、HTMLに難読化を施す方法の一例であるが、これに限定するものではない。このため、難読化処理部133は、その他の難読化方法も用いることができる。
次に、HTTPレスポンスのうち、難読化の対象のコンテンツタイプがJavaScriptの場合について説明する。例えば、難読化処理部133は、エンコード方式として、Base64を用いる。そして、難読化処理部133は、以下の手順にしたがい、JavaScriptに難読化を施す。まず、難読化処理部133は、JavaScript全体をBase64でエンコードする。そして、難読化処理部133は、エンコードした文字列をデコードして評価するスクリプトを難読化対象の箇所に埋め込む。
図11を参照して、難読化処理部133の処理を具体的に説明する。図11は、図2に示す難読化処理部133の処理の一例を説明する図である。図11は、上方の枠W4に、難読化対象であるJavaScriptの一例を示し、下方の枠W4´に、難読化後のJavaScriptを示す。難読化処理部133は、例えば、エンコード方式としてBase64を用いる。
まず、難読化処理部133は、難読化対象である枠W4内の「var x = 10; console.log(x*x);」をBase64でエンコードし、「dmFyIHggPSAxMDsNCmNvbnNvbGUubG9nKHgqeCk7」(枠C4−1参照)とする。難読化処理部133は、エンコードされたものをデコードするため、既存のBase64デコードライブラリである「atob」を用いる(枠C4−2参照)。難読化処理部133は、atobでデコードされ、文字列としてあらわされるJavaScriptを実行するため、eval関数を用いる(枠C4−3参照)。このeval関数は、文字列としてあらわされたJavaScriptを実行するものであり、例えば、「eval(“1+1”)」は、「2」を返す。
なお、この方法は、JavaScriptである場合に難読化を施す方法の一例であるが、これに限定するものではない。このため、難読化処理部133は、その他の難読化方法も用いることができる。
次に、HTTPレスポンスのうち、難読化の対象のコンテンツタイプがCSSの場合について説明する。例えば、難読化処理部133は、エンコード方式として、Base64を用いる。ここで、CSSがHTML内にstyleタグで埋め込まれているか、または、CSSが外部ファイルとして呼び出されているかで対応が異なる。
まず、図12を参照し、CSSがHTML内にstyleタグで埋め込まれている場合について説明する。図12は、図2に示す難読化処理部133の処理の一例を説明する図である。図12は、左方の枠W5に、難読化対象であるHTTPレスポンスの要部の一例を示し、右方の枠W5´に、難読化後のHTTPレスポンスの要部の一例を示す。
難読化処理部133は、難読化対象である枠W5内のStyleタグ全体(枠C5−1参照)をBase64でエンコードする。続いて、難読化処理部133は、エンコードした文字列をデコードしてHTMLに書き込むスクリプトを難読化対象の箇所に埋め込む(枠W5´の枠C5−2〜C5−6)。具体的には、難読化処理部133は、枠C5−1のStyleタグをBase64でエンコードした「ICAgIDxzdHlsZT4NCiAgICAgIGJvZHkgeyBiYWNrZ3JvdW5kOiByZWQ7IH0gDQogICAgPC9zdHlsZT4NCg==」(枠C5−2参照)に、デコードのための「atob」関数(枠C5−3参照)を付し、「document.write」関数(枠C5−4参照)を用いて、デコードした結果をHTMLに埋め込む。そして、難読化処理部133は、デコードした文字列のエンコードのための「escape」(枠C5−5参照)と、もとの文字列に戻すための「decodeURIComponent」(枠C5−6参照)とをHTMLに埋め込む。
次に、図13を参照し、CSSが外部ファイルとして呼び出されている場合について説明する。図13は、図2に示す難読化処理部133の処理の一例を説明する図である。図13は、左方の枠W6に、難読化対象であるHTTPレスポンスの要部の一例を示し、右方の枠W6´に、難読化後のHTTPレスポンスの要部の一例を示す。
難読化処理部133は、外部ファイルを示す箇所全体をBase64でエンコードする。そして、難読化処理部133は、外部ファイルを呼び出している箇所をエンコードで得られた値に置換する(枠W6´の枠C6−2)。具体的には、難読化処理部133は、外部ファイルを示す箇所「stylesheet" href="a.css」(枠C6−1参照)全体をBase64でエンコードする。そして、難読化処理部133は、外部ファイルを呼び出している箇所をエンコードで得られた値「stylesheet" href="data:text/css;base64,Ym9keSB7IGJhY2tncm91bmQ6IHJlZDsgfQ==」に置換する(枠W6´の枠C6−2)。
なお、この方法は、CSSである場合に難読化を施す方法の一例であるが、これに限定するものではない。このため、難読化処理部133は、その他の難読化方法も用いることができる。
次に、HTTPレスポンスのうち、難読化の対象のコンテンツタイプが画像(jpg,png,gifファイル)の場合について説明する。画像にはコメントを埋め込む箇所がある。難読化処理部133は、このような箇所に対してランダムな文字列を埋め込む。この結果、WAFPが画像のハッシュ値を用いた比較を行って場合であっても、異なるハッシュ値を返すことができ、WAFPによるWebアプリケーションの情報露見を防ぐことができる。
この場合、難読化処理部133は、既存のツールを用いて画像にコメントを追加する。具体的には、難読化処理部133が、使用するツールとして「exiftool」を選択した場合、コマンド「exiftool−comment=vV12ca5 sample.jpg」を実行する。このコマンドのうち、「vV12ca5」はランダムに生成されたコメントである。この「vV12ca5」の追加によりハッシュ値が変更される。
[実施例1]
次に、図14を参照して、通信システム1における通信例を説明する。図14は、図1に示す通信システム1における通信例を説明する図である。
まず、クライアント端末2から、HTTPリクエスト「GET/index.php」がWebサーバ3へ送られる場合(図14の(1)参照)について説明する。この場合、通信装置10を介して、HTTPリクエストを受信したWebサーバ3から、このHTTPリクエストに対するHTTPレスポンス(枠W7参照)が送られる(図14の(2)参照)。通信装置10は、このHTTPレスポンスに難読化を施したHTTPレスポンス(枠W7´参照)をクライアント端末2に送信する(図14の(3)参照)。
この場合、通信装置10では、HTTPレスポンスの枠C7−1内に、静的ファイル置換リストL1に示されたURL「cms/content/themes/a.js」(図3の1行目参照)が示される。このため、置換部131が、このURL「cms/content/themes/a.js」を対応する識別子「a1Bq6」に置換し、HTTPリクエスト内に埋め込む(枠C7−1´参照)。また、通信装置10では、HTTPレスポンスの枠C7−2内に、難読化対象検出部132によって検出された箇所「CMS」があるため、難読化処理部133は、図10で説明したように、Base64を用いて「CMS」を難読化した「<script>var d=document;d.open();d.write(decodeURIComponent(escape(atob(“Q01Lg==”))));d.close();</scipt>」をHTTPリクエスト内に埋め込む(枠C7−2´参照)。
[実施例2]
次に、図15を参照して、通信システム1における他の通信例を説明する。図15は、図1に示す通信システム1における他の通信例を説明する図である。
まず、クライアント端末2から、HTTPリクエスト「GET/a1Bq6」(枠W8参照)がWebサーバ3へ送られる場合(図15の(4)参照)について説明する。ここで、クライアント端末2が送信するHTTPリクエストは、URLに対応する部分を、該URLに対応する識別子「a1Bq6」(枠C8参照)に置き換えたものである。この場合、通信装置10は、HTTPリクエストを受信すると、静的ファイル置換リストL1を参照して、HTTPリクエスト内の識別子「a1Bq6」を、URL「cms/content/themes/a.js」(枠C8−1参照)に戻したHTTPリクエストを、Webサーバ3へ送信する(図15の(5)参照)。
そして、Webサーバ3から、このHTTPリクエストに対するHTTPレスポンス(枠W9参照)が通信装置10に送られる(図15の(6)参照)。この場合、HTTPレスポンスに難読化すべき個所が存在しなかったため、通信装置10から、このHTTPレスポンスがそのままクライアント端末に送られる(図15の(7)参照)。
[通信装置が行うHTTPリクエストに対する処理]
次に、図16を参照して、通信装置10が行うHTTPリクエストに対する処理の処理手順について説明する。図16は、図2に示す通信装置10が行うHTTPリクエストに対する処理の処理手順のフローチャートである。
図16に示すように、通信装置10では、HTTPリクエストを受信すると(ステップS1)、静的ファイル置換リスト記憶部121を参照し、置換部131が、HTTPリクエストに静的ファイル置換リストL1に含まれる識別子が存在するか否かを判断する(ステップS2)。置換部131が、HTTPリクエストに静的ファイル置換リストL1に含まれる識別子が存在すると判断した場合(ステップS2:Yes)、この識別子を、該識別子に対応するURLに置換する第1の置換処理を行う(ステップS3)。通信装置10は、HTTPリクエストに静的ファイル置換リストL1に含まれる識別子が存在しないと判断した場合(ステップS2:No)またはステップS3終了後、HTTPリクエストをWebサーバ3に送信して(ステップS4)、処理を終了する。
[通信装置が行うHTTPレスポンスに対する処理]
次に、図17を参照して、通信装置10が行うHTTPレスポンスに対する処理の処理手順について説明する。図17は、図2に示す通信装置10が行うHTTPレスポンスに対する処理の処理手順のフローチャートである。
図17に示すように、通信装置10では、HTTPレスポンスを受信すると(ステップS11)、静的ファイル置換リスト記憶部121を参照し、置換部131が、HTTPリクエストに静的ファイル置換リストL1に含まれるURLが存在するか否かを判断する(ステップS12)。置換部131が、HTTPレスポンスに静的ファイル置換リストL1に含まれるURLが存在すると判定した場合(ステップS12:Yes)、このURLを、該URLに対応する識別子に置換する第2の置換処理を行う(ステップS13)。
通信装置10は、HTTPレスポンスに静的ファイル置換リストL1に含まれる識別子が存在しないと判断した場合(ステップS12:No)またはステップS13終了後、難読化対象検出部132は、HTTPレスポンスのコンテンツタイプが、難読化対象の検出対象であるか、または、難読化対象の検出対象ではないかを判定する(ステップS14)。難読化対象検出部132は、例えば、上述したように、HTTPレスポンスのコンテンツタイプが、JavaScript、CSS或いは画像でない場合には、難読化対象の対象でないと判定し(ステップS14:検出対象でない)、難読化対象検出処理を行わずに、ステップS17に進む。
これに対し、難読化対象検出部132は、例えば、上述したように、HTTPレスポンスのコンテンツタイプが、HTMLである場合には、難読化対象であると判定し(ステップS14:検出対象)、難読化対象検出処理を行う(ステップS15)。
続いて、難読化処理部133は、HTTPレスポンスのコンテンツタイプの種別に応じた手法を用いて、HTTPレスポンスのWebアプリケーションに関する情報が示された部分に難読化処理を行う(ステップS16)。
例えば、難読化処理部133は、HTTPレスポンスのコンテンツタイプがHTMLである場合には、難読化対象検出部132が検出した、Webアプリケーションに関する情報に対応する文字列を、難読化を施した結果の文字列で置き換える。また、難読化処理部133は、例えば、HTTPレスポンスのコンテンツタイプがJavaScriptである場合には、JavaScript全体をBase64でエンコードし、エンコードした文字列をデコードして評価するスクリプトを埋め込む。
また、難読化処理部133は、例えば、HTTPレスポンスのコンテンツタイプがCSSであり場合には、CSSが埋め込まれているStyleタグ全体、または、CSSが外部ファイルとして呼び出されている場合には外部ファイルを呼び出している箇所を、Base64でエンコードし、エンコードした文字列をデコードしてHTMLに書き込むスクリプトを埋め込む。また、また、難読化処理部133は、例えば、HTTPレスポンスのコンテンツタイプが画像の場合には、画像のコメントに任意のランダムな文字列を埋め込む。
そして、通信装置10は、通信部11から、難読化処理後のHTTPレスポンスを、クライアント端末2に送信し(ステップS17)、処理を終了する。
[難読化対象検出処理の処理手順]
次に、図18を参照して、図17に示す難読化対象検出処理(ステップS15)の処理手順について説明する。図18は、図17に示す難読化対象検出処理の処理手順を示すフローチャートである。
図18に示すように、難読化対象検出部132は、キーワードリスト記憶部122を参照し、HTTPレスポンスに含まれる文字列と、キーワードリストのキーワードとの類似判定を行い、HTTPレスポンスに、キーワードリストに含まれているキーワードと類似する文字列が有るか否かを判定する(ステップS21)。難読化対象検出部132は、HTTPレスポンスに、キーワードリストに含まれているキーワードと類似する文字列が有ると判定した場合(ステップS21:Yes)、類似する文字列をそれぞれ検出する(ステップS22)。難読化対象検出部132は、HTTPレスポンスに、キーワードリストに含まれているキーワードと類似する文字列がないと判定した場合(ステップS21:No)、または、ステップS22終了後、難読化対象検出処理を終了する。
[実施の形態の効果]
このように、本実施の形態では、Webサーバのプロキシとして設けられた通信装置10が、Webサーバ3とクライアント端末2との間の通信に含まれる情報のうち、Webアプリケーションに関する情報に難読化を施し、難読化された情報を含む通信を送信先へ送信する。したがって、本実施の形態によれば、通信装置10が、Webサーバ3とクライアント端末2との間の通信を中継しつつ、Webアプリケーション自体を改変することなく、通信に含まれる情報のうちWebアプリケーションに関する部分のみを改変する。これによって、本実施の形態によれば、Webアプリケーション自体を改変しないため、Webブラウザ上での表示や機能を改変することなく、Webアプリケーションに関する情報のみを難読化するため、WAFPによるWebアプリケーション情報の露見を防ぐことができる。
また、通信装置10では、Webサーバ3から送信されたHTTPレスポンスのコンテンツタイプの種別に応じた手法を用いて、Webアプリケーションに関する情報が示された部分に難読化を施すため、各コンテンツタイプに応じた適切な難読化が実行される。
また、通信装置10では、Webサーバから送信されたHTTPレスポンスがHTMLである場合には、Webアプリケーション特有の文字列から成るキーワードを示すキーワードリストを参照し、HTTPレスポンスのうちキーワードと類似する文字列を、Webアプリケーションに関する情報として検出する。そして、通信装置10では、検出した文字列を任意の文字列で置き換えて、適切にWebアプリケーションの情報が露見し難い難読化を実行している。
また、通信装置10では、HTTPレスポンスのコンテンツタイプが画像である場合には、該画像のコメントに任意のランダムな文字列を埋め込むことによって、ハッシュ値の変更を行っている。本実施の形態によれば、HTTPレスポンスのコンテンツタイプが画像である場合にも、WAFPによるWebアプリケーション情報の露見の防止が可能である。
また、本実施の形態では、通信装置10は、予め、Webアプリケーション特有の静的ファイルへのパスを示すURLと該URLに対応する任意の文字列から成る識別子との組を記憶している。そして、クライアント端末2から送信されたHTTPリクエストは、通信装置10によって、このHTTPリクエストに含まれる識別子が、該識別子に対応するURLに置換され、Webサーバ3に送信される。これによって、通信システム1では、ネットワーク上ではURLの露見を防止するとともに、Webサーバ3には、要求されたURLを示すHTTPリクエストを送信して、適切な通信を可能にしている。
そして、本実施の形態では、通信装置10は、Webサーバから送信されたHTTPレスポンスに含まれるWebアプリケーション特有の静的ファイルへのパスを示すURLを、該URLに対応する識別子に置換している。これによって、通信システム1によれば、ネットワーク上ではURLが露見しないように処理したHTTPレスポンスをクライアント端末2に送信しているため、WAFPによるWebアプリケーション情報の露見の防止が可能である。
したがって、本実施の形態によれば、Webサーバ3のプロキシである通信装置10が、クライアント端末2とWebサーバ3との間の通信を精査し、Webアプリケーションに関する情報を難読化するため、Webブラウザ上での表示や機能を改変することなく、Webアプリケーションの情報が露見し難い難読化を実行している。
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
図19は、プログラムが実行されることにより、通信装置10が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、通信装置10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、通信装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
1 通信システム
2 クライアント端末
3 Webサーバ
4 ネットワーク
10 通信装置
11 通信部
12 記憶部
13 制御部
121 静的ファイル置換リスト記憶部
122 キーワードリスト記憶部
131 置換部
132 難読化対象検出部
133 難読化処理部

Claims (7)

  1. クライアント端末と、前記クライアント端末と通信を行うWebサーバとの間に設けられた通信装置であって、
    前記Webサーバと前記クライアント端末との間の通信に含まれる情報のうち、Webアプリケーションに関する情報に難読化を施す難読化処理部と、
    前記難読化処理部によって難読化された情報を含む通信を送信先へ送信する通信部と、
    を有することを特徴とする通信装置。
  2. 前記難読化処理部は、HTTP(HyperText Transfer Protocol)レスポンスのコンテンツタイプの種別に応じた手法を用いて、前記Webアプリケーションに関する情報が示された部分に難読化を施すことを特徴とする請求項1に記載の通信装置。
  3. Webアプリケーション特有の文字列から成るキーワードを記憶する第1の記憶部と、
    前記第1の記憶部を参照し、前記Webサーバから送信されたHTTPレスポンスのうち前記キーワードと類似する文字列を、前記Webアプリケーションに関する情報として検出する検出部と、
    をさらに有し、
    前記難読化処理部は、前記検出部が検出した文字列を、難読化を施した結果の文字列で置き換えることを特徴とする請求項2に記載の通信装置。
  4. 前記難読化処理部は、前記HTTPレスポンスのコンテンツタイプが画像である場合には、該画像のコメントに任意の文字列を埋め込むことを特徴とする請求項2に記載の通信装置。
  5. Webアプリケーション特有の静的ファイルへのパスを示すURLと該URLに対応する任意の文字列から成る識別子との組を記憶する第2の記憶部と、
    前記第2の記憶部を参照し、前記クライアント端末から送信されたHTTPリクエストに含まれる前記識別子を、該識別子に対応する前記Webアプリケーション特有の静的ファイルへのパスを示すURLに置換し、前記Webサーバから送信されたHTTPレスポンスに含まれる前記Webアプリケーション特有の静的ファイルへのパスを示すURLを、該URLに対応する識別子に置換する置換部と、
    をさらに有することを特徴とする請求項1〜4のいずれか一つに記載の通信装置。
  6. クライアント端末と、前記クライアント端末と通信を行うWebサーバと、前記クライアント端末と前記Webサーバとの間に設けられた通信装置を有する通信システムであって、
    前記通信装置は、
    Webサーバとクライアント端末との間の通信に含まれる情報のうち、Webアプリケーションに関する情報に難読化を施す難読化処理部と、
    前記難読化処理部によって難読化された情報を送信先へ送信する通信部と、
    を含んだことを特徴とする通信システム。
  7. Webサーバとクライアント端末との間の通信に含まれる情報のうち、Webアプリケーションに関する情報に難読化を施すステップと、
    難読化された情報を送信先へ送信するステップと、
    をコンピュータに実行させるための通信プログラム。
JP2019551098A 2017-10-27 2018-10-19 通信装置、通信システム及び通信プログラム Active JP6805366B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017208220 2017-10-27
JP2017208220 2017-10-27
PCT/JP2018/039050 WO2019082818A1 (ja) 2017-10-27 2018-10-19 通信装置、通信システム及び通信プログラム

Publications (2)

Publication Number Publication Date
JPWO2019082818A1 true JPWO2019082818A1 (ja) 2020-02-27
JP6805366B2 JP6805366B2 (ja) 2020-12-23

Family

ID=66247397

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019551098A Active JP6805366B2 (ja) 2017-10-27 2018-10-19 通信装置、通信システム及び通信プログラム

Country Status (3)

Country Link
US (1) US11372953B2 (ja)
JP (1) JP6805366B2 (ja)
WO (1) WO2019082818A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102598102B1 (ko) * 2022-02-14 2023-11-03 주식회사 애드쉴드 광고 차단 기능에 대응하여 난독화된 광고를 제공하기 위한 방법 및 장치
KR102598112B1 (ko) * 2022-02-14 2023-11-06 주식회사 애드쉴드 광고 차단 기능에 대응하여 광고를 제공하기 위한 방법 및 장치
US20230262029A1 (en) * 2022-02-14 2023-08-17 Adshield, Inc. Method and device for providing advertisement by couteracting on advertisement blocking function
US20230262107A1 (en) * 2022-02-14 2023-08-17 Adshield, Inc. Method and device for providing advertisement by couteracting on violent advertisement blocking function

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080222736A1 (en) * 2007-03-07 2008-09-11 Trusteer Ltd. Scrambling HTML to prevent CSRF attacks and transactional crimeware attacks
US20090144829A1 (en) * 2007-11-30 2009-06-04 Grigsby Travis M Method and apparatus to protect sensitive content for human-only consumption
US20120124372A1 (en) * 2010-10-13 2012-05-17 Akamai Technologies, Inc. Protecting Websites and Website Users By Obscuring URLs
US9241004B1 (en) * 2014-03-11 2016-01-19 Trend Micro Incorporated Alteration of web documents for protection against web-injection attacks
US20160182517A1 (en) * 2014-12-19 2016-06-23 Cloudflare, Inc. Web form protection
US20170063923A1 (en) * 2015-08-31 2017-03-02 Shape Security, Inc. Polymorphic Obfuscation of Executable Code
US20170126719A1 (en) * 2015-10-30 2017-05-04 Salesforce.Com, Inc. Protection via Webpage Manipulation
US20170237823A1 (en) * 2015-12-07 2017-08-17 Blockthrough Inc. System and method for transforming online content

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719582B2 (en) * 2009-03-03 2014-05-06 Microsoft Corporation Access control using identifiers in links
US8910247B2 (en) * 2010-10-06 2014-12-09 Microsoft Corporation Cross-site scripting prevention in dynamic content
US9075960B2 (en) * 2013-03-15 2015-07-07 Now Technologies (Ip) Limited Digital media content management apparatus and method
EP3005209B1 (en) * 2013-05-30 2021-02-17 JScrambler S.A. Web application protection
US9569601B2 (en) * 2015-05-19 2017-02-14 Anvaya Solutions, Inc. System and method for authenticating and enabling functioning of a manufactured electronic device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080222736A1 (en) * 2007-03-07 2008-09-11 Trusteer Ltd. Scrambling HTML to prevent CSRF attacks and transactional crimeware attacks
US20090144829A1 (en) * 2007-11-30 2009-06-04 Grigsby Travis M Method and apparatus to protect sensitive content for human-only consumption
US20120124372A1 (en) * 2010-10-13 2012-05-17 Akamai Technologies, Inc. Protecting Websites and Website Users By Obscuring URLs
US9241004B1 (en) * 2014-03-11 2016-01-19 Trend Micro Incorporated Alteration of web documents for protection against web-injection attacks
US20160182517A1 (en) * 2014-12-19 2016-06-23 Cloudflare, Inc. Web form protection
US20170063923A1 (en) * 2015-08-31 2017-03-02 Shape Security, Inc. Polymorphic Obfuscation of Executable Code
US20170126719A1 (en) * 2015-10-30 2017-05-04 Salesforce.Com, Inc. Protection via Webpage Manipulation
US20170237823A1 (en) * 2015-12-07 2017-08-17 Blockthrough Inc. System and method for transforming online content

Also Published As

Publication number Publication date
US11372953B2 (en) 2022-06-28
US20200250282A1 (en) 2020-08-06
WO2019082818A1 (ja) 2019-05-02
JP6805366B2 (ja) 2020-12-23

Similar Documents

Publication Publication Date Title
JP6805366B2 (ja) 通信装置、通信システム及び通信プログラム
JP6530786B2 (ja) Webページの悪意のある要素を検出するシステム及び方法
US11314862B2 (en) Method for detecting malicious scripts through modeling of script structure
Borgolte et al. Delta: automatic identification of unknown web-based infection campaigns
JP4395178B2 (ja) コンテンツ処理システム、方法及びプログラム
US9811676B1 (en) Systems and methods for securely providing information external to documents
US10013555B2 (en) System and method for detecting harmful files executable on a virtual stack machine based on parameters of the files and the virtual stack machine
US8307276B2 (en) Distributed content verification and indexing
JP6687761B2 (ja) 結合装置、結合方法および結合プログラム
US11100225B2 (en) Scanning of encrypted zip files
US9838418B1 (en) Detecting malware in mixed content files
CN107463844B (zh) Web木马检测方法及系统
CN111163094B (zh) 网络攻击检测方法、网络攻击检测装置、电子设备和介质
US20190180032A1 (en) Classification apparatus, classification method, and classification program
RU2701040C1 (ru) Способ и вычислительное устройство для информирования о вредоносных веб-ресурсах
JP6450022B2 (ja) 解析装置、解析方法、および、解析プログラム
US11916937B2 (en) System and method for information gain for malware detection
TWI470468B (zh) 惡意程式及行為偵測的方法及系統
CN115048623A (zh) 用于加密代码的方法、计算设备和存储介质
CN111209029A (zh) 一种代码修改确定方法、装置、电子设备及存储介质
US11163882B2 (en) Analysis apparatus, analysis method, and analysis program
JP2017224150A (ja) 解析装置、解析方法および解析プログラム
CN115413342A (zh) 用于识别嵌入式设备固件中的软件漏洞的系统和方法
KR101305755B1 (ko) 주소에 기반하여 스크립트 실행을 필터링하는 장치 및 방법
US11848919B1 (en) Patternless obfuscation of data with low-cost data recovery

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200722

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: 20201201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201203

R150 Certificate of patent or registration of utility model

Ref document number: 6805366

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150