JP4912400B2 - Htmlブラウザおよび拡張機能の既知の脆弱性からの免疫付与 - Google Patents

Htmlブラウザおよび拡張機能の既知の脆弱性からの免疫付与 Download PDF

Info

Publication number
JP4912400B2
JP4912400B2 JP2008521517A JP2008521517A JP4912400B2 JP 4912400 B2 JP4912400 B2 JP 4912400B2 JP 2008521517 A JP2008521517 A JP 2008521517A JP 2008521517 A JP2008521517 A JP 2008521517A JP 4912400 B2 JP4912400 B2 JP 4912400B2
Authority
JP
Japan
Prior art keywords
computer
code
information
software
script
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.)
Active
Application number
JP2008521517A
Other languages
English (en)
Other versions
JP2009501392A (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009501392A publication Critical patent/JP2009501392A/ja
Application granted granted Critical
Publication of JP4912400B2 publication Critical patent/JP4912400B2/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Description

多くの最近発見されたブラウザソフトウェアの脆弱性はHTMLコードと関連する。
印刷このような脆弱性に対するパッチは、しばしば十分に迅速にインストールされることはなく、このため攻撃の危険が増加する。例えば、多くのケースにおいて、ユーザは最新パッチをインストールするまでに数週間または何ヶ月も放置しておくことがある。この期間、ユーザのソフトウェアは攻撃に対して脆弱である。ここに開示されるさまざまな例示的な技術は、ソフトウェアサービスへ、またはこれを通じての攻撃の危険性を低減または排除する方法に向けられる。
ここに説明されるさまざまな例示的な方法、デバイス、システムなどは、ソフトウェアサービス、例えば、ブラウザソフトウェアおよび関連する拡張機能内に存在する既知の脆弱性につけこまれることを阻止するように動作する。例えば、1つの例示的なソフトウェアフレームワークは、HTMLウェブページを、このHTMLウェブページにスクリプトを挿入することで変換することができるが、ここでこの挿入されたスクリプトは、実行された際に、そのHTMLウェブページがユーザのウェブブラウザソフトウェアと関連する既知の脆弱性につけこむことを阻止する。
さまざまな例示的なメカニズムは、より一般的には、スクリプトおよび他のデータを入力動作のために取り込むソフトウェアサービス内に存在する既知の脆弱性につけこまれることを阻止するように動作する。このようなソフトウェアサービスには、例えば、SQLスクリプトを取り込むソフトウェアサービスが含まれる。さまざまな他の例示的な方法、デバイス、システムなども開示される。
制限的でも網羅的でもない実施例が以下の図面を参照しながら説明されるが、類似する参照符号は一般に、別途指定されない限り、これらさまざまなビューに渡って類似の部分を示す。
ここに説明されるさまざまな例示的な方法、デバイス、システムなどは、例えば、ブラウザソフトウェアおよび関連する拡張機能などのソフトウェアサービス内に存在する既知の脆弱性につけこまれることを阻止するように動作する。例えば、1つの例示的なソフトウェアフレームワークは、HTMLウェブページを、そのHTMLウェブページにスクリプトを挿入することで変換することができ、ここでこの挿入されたスクリプトは、実行された際に、そのHTMLウェブページが、ユーザのウェブブラウザソフトウェアと関連する既知の脆弱性につけこむことを阻止する。この例においては、この挿入されたスクリプトは、そのHTMLウェブページを、その既知のウェブブラウザソフトウェアの脆弱性に対して「免疫付与(immunize)」する。すなわち、このように免疫付与されたこのHTMLウェブページは、このウェブブラウザソフトウェアを「感染させる(infect)」ことはできない。このような例示的なフレームワークは、このHTMLウェブページを、免疫付与する必要があるか調べることも、または単にこのHTMLウェブページを、脆弱性につけこむことのメカニズムの兆候を調べることなく、免疫付与することもできる。この免疫付与、すなわち変換の処理は、通常はコードを受信された情報(例えば、コード、データ、またはコードおよびデータ)内に挿入するか、もしくはこれと関連付けること、または受信された情報をその受信された情報をそれが既知の脆弱性につけこむことを防止するために修正する(例えば、変更、削除などを行う)ことを伴う。
挿入される免疫付与スクリプトに関しては、このようなコードは、通常は、ソフトウェアサービス(例えば、ウェブブラウザソフトウェアなど)と関連する1または複数の既知の脆弱性につけこむことを阻止する論理を含む。ここでも、この免疫付与コードは、そのようなコードまたはデータに依存するソフトウェアサービスによって受信されるべきコードもしくはデータ内に挿入されるか、またはこれと関連付けられる。いったん関連付けられると、そのコードは「免疫付与された(immunized)」コードとみなされる。例示的な論理は、この免疫付与されたコードが実行されたとき、この免疫付与されたコードによってさらなる情報(例えば、追加のコードまたはデータ)を催促する要求が発行されたとき、または1または複数の他のイベントが発生したときトリガされる。トリガリングの目的に対しては、コード/データに免疫を付与するために1または複数のフックを用いることもできる。
さまざまな例示的なメカニズムは、より一般的には、入力動作のために、スクリプトまたは他のデータを取り込むソフトウェアサービス内に存在する既知の脆弱性につけこまれることを阻止するように動作する。このようなソフトウェアサービスには、例えば、SQLスクリプトが含まれる。
実装との関連では、様々な例示的なメカニズムをネットワークの(例えば、企業のファイアウォール上の)内部ノードとの関連、または端ノード(例えば、ソフトウェアサービスを有するクライアント)などとの関連で実装することができる。
以下の説明においては、様々な例示的な免疫付与メカニズムと関連するシステムおよび幾つかの可能な動作について説明される。勿論、実装は、他のシステム内にまたは他のやり方にて行うこともできる。ここでの説明においては、その後、さまざまな例示的な方法または処理について説明され、続いて、HTMLコードの免疫付与に対する例示的なシナリオについて説明される。既に述べたように、様々な例示的なメカニズムは、動作のための入力としてスクリプトまたは他のデータに依存するソフトウェアサービスの脆弱性につけこむ危険性を低減または除去するために用いられる。
図1はシステム100と、このようなシステム上に発生し得る処理140を示す。システム100は、1または複数のサーバ104、108、112、1または複数のクライアント114、118、およびさまざまなサーバとクライアントとの間の通信のための1または複数のネットワーク120、124を含む。ネットワーク120はインターネットであってもよく、他方、ネットワーク124は、そこではサーバ112はローカルサーバとして動作するイントラネットでもよい。
このシステム100内において、コンピュータは、ファイアウォールとして機能することも、またはルータデバイスとして機能することもある。ファイアウォールは、通常は、プライベートネットワークのリソースを他のネットワークからのユーザから保護するネットワークのゲートウェイサーバに配置されるセットの関連するプログラムである。その企業の従業員がより広いインターネット(例えば、ネットワーク120)にアクセスすることを可能にするイントラネット(例えば、ネットワーク124)を有する企業は、部外者が、自身のプライベートデータリソースにアクセスすることを阻止するため、および自身のユーザがどのような外部リソースにアクセスすることができるかを制御するために、ファイアウォールを(例えば、サーバ112上に)設置することができる。
ファイアウォールは、通常は、パケットを意図された宛先に転送すべか否かを判断するためにネットワークパケットを調べることができるルータプログラムと緊密に動作する。ファイアウォールは、更に、ユーザ(例えばクライアント114)に代わってネットワーク要求を行う代理サーバを含む、またはこれと共に動作することもできる。
さまざまなファイアウォールスクリーニング技術が存在する。例えば、ファイアウォールは、それらが許されるまたは信頼できる(例えば、あらかじめ識別されている)ドメイン名およびインターネットプロトコルアドレスからのものであることを確実にするために、要求をスクリーニングする。ファイアウォールは、更に、ドメイン名またはアドレス(例えば、URL)を、それらが許されるまたは信頼できるリソースと関連するか否かを判断するためにスクリーニングする。
図1の処理140は、クライアントソフトウェア154、例えば、ブラウザソフトウェアを用いてさまざまなリソースをブラウジングしているクライアントに関連する。この例においては、クライアントソフトウェア154は、HTMLホスト156およびスクリプトホスト158を含む。クライアントソフトウェア154は、ユーザが、URL(universal resource locator)と関連するあるリソース内に入ること、またはこれを選択することを許す。クライアントソフトウェア154は、このURLを、リソース、例えば、サーバ104、108、112の1つの上に格納されている情報の位置を見つけるために使用する。他の幾つかの例においては、サーバは、このようなHTMLホスト、スクリプトホスト、またはこれらの両方と関連するサーバソフトウェアを含むこともできる。すなわち、クライアントとして示されているが、この処理は、サーバのみを含むことも、クライアントとサーバの混合などを含むこともできる。
この処理140によると、サーバソフトウェア144を含むサーバは、1または複数のリソースに対する要求をクライアントソフトウェア154から受信する。すると、サーバソフトウェア144は、例えば、この要求に応答してコードを提供する手続きを実行する。サーバソフトウェア144は、コードを提供する代わりに、またはこれに加えて、コード以外のデータを提供することもできる。クライアントはこのコードを受信し、クライアントソフトウェア154は、このコードを使用して、例えば、ユーザスクリーン上に表示するためのフレームを生成する。サーバソフトウェア144がコード以外のデータを提供する場合には、クライアントソフトウェア154はそのデータを使用する。
このコードはマークアップ言語、例えばHTML(ハイパーテクストマークアップ言語)にて書かれているコードを含み、クライアントソフトウェア154はウェブブラウザソフトウェアであるような例について考える。ブラウザソフトウェア154のHTMLホスト156は、HTMLパーサーを含み、したがって、ページ(例えば、ドキュメント)がこのブラウザによってアクセスされると、このHTMLパーサーは、このコード(例えば、通常はファイルの形式)を読み、このコード内に現れるHTMLタグからエレメントを生成する。例えば、INTERNET EXPLORER(登録商標)ブラウザソフトウェア(Microsoft Corporation, Redmond, WA)は、HTMLパージングおよびレンダリングを実行する「Mshtml.dll」なるコンポーネントを含み、これは、HTMLドキュメントを動的HTMLオブジェクトモデル(Dynamic HTML Object Model)を通じて表示する。このコンポーネントは、1または複数のスクリプティングエンジン、仮想マシン、ACTIVEX(登録商標)コントロール、プラグ・イン、およびロードされたHTMLドキュメント内において参照されることがある他のオブジェクト(例えば、コード/データ)をホストすることができる。
処理140によると、このコードはスクリプトを含む。例えば、翻訳されたオブジェクトベースのスクリプティング言語であるJScript言語を用いることも、または他のスクリプト言語を用いることもできる。このようなスクリプトは、通常は、スクリプトインタプリタすなわち「ホスト(host)」(例えば、スクリプトホスト158)に依存する。Jscriptスクリプトに対するホストの例としては、アクティブサーバページ、Internet Explorer(登録商標)およびWINDOWS(登録商標)スクリプトホストが含まれる。ここでも、コードについて言及されたが、コードの代わりに、またはコードと共にデータを提供してもよい。
図2は、処理140のさまざまな特徴を含む例示的な処理240を示すが、しかしながら、ここでは例示的な免疫付与能力264、268が含まれている。この例においては、この免疫付与コンポーネント264、268は、クライアントソフトウェア154が受け取る前に、コード、データ、またはコードとデータに作動する。他の幾つかの例においては、免疫付与コンポーネントは、クライアントソフトウェアの一部でもよい。処理内におけるこのような例示的な免疫付与コンポーネントに対する位置の選択は、さまざまな要因に依存する。例えば、イントラネット(例えば、ネットワーク124)を備えた組織の場合は、このような免疫付与コンポーネントを、保守、セキュリティ、効率などのために、ファイアウォールまたはゲートウェイサーバ(例えば、サーバ112)に配置するよう選択してもよい。
図2の例および他のさまざまな例においては、「コード+/データ+」なる表現は、変換された(すなわち、免疫付与された)コード、データ、またはコードおよびデータを示し、全体を通じて「コード/データ」なる表現は、コード、データまたはコードおよびデータを示す。変換されたまたは免疫付与されたコード/データには、1または複数のソフトウェア脆弱性(例えば、ブラウザソフトウェアの脆弱性)につけこむ危険性について判断するためにチェックされているコード/データ、このようなチェックを(例えば、ランタイムにおいて、またはランタイムの前に)実行するように動作する追加のコードを注入されているコード/データ、またはランタイムにおける悪意のあるコードの実行を阻止することを目的とする追加のコードを注入されているコード/データが含まれる。ここでも、一般的には、この免疫付与または変換の処理は、通常は、コードを受信された情報(例えば、コード、データまたはコードおよびデータ)内に挿入したり、これと関連付けること、または受信された情報の修正する(例えば、変更、削除などを行う)ことを含み、この結果としてのコード/データは、免疫付与されたまたは変換されたコード/データ(例えば、コード+/データ+)と呼ばれる。
図3は、ソフトウェアサービスの既知の脆弱性につけこまれる危険性を低減または除去するために、情報を変換するまたは「免疫付与(immunize)」する例示的な方法を示す。受信ブロック304は、要求に応答して情報を受信するが、ここでは、この受信された情報は、ソフトウェアサービス(例えば、ブラウザソフトウェアサービス)によって消費される。例えば、この受信された情報は、ウェブブラウザソフトウェアによってユーザのコンピュータモニタ上にウェブページを表示するために用いられるコード、データまたはコードおよびデータであり得る。受信ブロック304は、情報を、例えば、サーバから、ユーザまたは他のエンティティによる要求に応答して受信する。
変換ブロック308は、受信された情報を変換することで変換された情報を生成するが、ここでこの変換は、受信された情報を、受信された情報が有するソフトウェアサービスの既知の脆弱性につけこむ能力が低減または除去されるように変換する。伝送または送信ブロック312は、この変換された情報を、例えば、その情報を要求したエンティティに送信する。他の幾つかの例においては、この変換されたまたは「免疫付与(immunized)」された情報は、その要求を行ったのとは異なる他のエンティティに向けてもよい(例えば、電子メール免疫付与サービスは、この免疫付与されたコードを、コードを要求したエンティティに代わって別の1つのまたは複数のエンティティに送信するように動作する)。
1つの例示的な方法は、スクリプトを含むHTMLコードを受信することと、このHTMLコード内にフックを挿入することを含み、ここでこのフックは、ランタイムイベントに応答して、そのスクリプトによるブラウザソフトウェアの脆弱性につけこまれることを阻止するための動作を呼び出す。このような例においては、フックをHTMLコード内に挿入するステップは、そのコードに免疫を付与するように動作する。もしこのような例示的な方法が、(例えば、受信されたコードを消費する)エンドユーザではないコンピュータ(例えば、サーバ)上で実行される場合には、この例示的な方法は、更に、この免疫付与されたコードを意図された受信者(例えば、クライアント)に送る。
さまざまな例において、免疫付与されたデータは、ブラウザソフトウェアサービスのようなソフトウェアサービスの1または複数の既知の脆弱性につけこむことを防止するための論理を有する、挿入された、または関連付けられたコードを含む。
図4は、処理140のさまざまな特徴を含む例示的な処理440を示すが、しかしながら、ここでは、信頼性能力462、464および例示的な免疫付与268が含まれている。これら信頼性能力462、464は、例えば、URLなどと関連するリソースなどに指定された信頼性のレベルに従って作動することができる。信頼性コンポーネント462は、URLまたは他のリソース識別子を受信し、そのリソースに対する信頼性のレベルを、例えば、関連するテーブルまたは他の情報を用いて決定する。
この例示的な処理440においては、クライアントソフトウェア154は初期のURLを送信させる。信頼性コンポーネント462はこのURLを受信し、これが信頼できるURLであると判断する。信頼できるURLであるために、このリソースからのコード/データの免疫付与は必要とされず、このコード/データは、クライアントソフトウェア154に、サーバソフトウェア144によって送られたまま通される。しかしながら、クライアントソフトウェア154によってコードが実行され、またはこのデータが使用された時点で、例えば、別のリソースからのコード/データ(つまり、情報)を要求するこれに続く要求が送られることがある。この同一の信頼性コンポーネント462を用いることも、別の信頼性コンポーネント464を用いることもできる。
この例示的な処理440においては、信頼性コンポーネント464は、そのURLは不誠実なまたは信頼できないURLであると判断する。この判断に応答して、免疫付与コンポーネント268は、そのリソースから送られる任意のコード/データを受信する。この例においては、(例えば、サーバソフトウェア148の実行を介して)送られるコード/データは、クライアントソフトウェア154が受信する前に免疫付与コンポーネント268が受信する。この免疫付与コンポーネント268は、このコード/データを変換(すなわち、免疫付与)することで、免疫付与されたコード/データ(すなわち、コード+/データ+)を生成する。クライアントソフトウェア154が、次に、この免疫付与されたコード/データを受信する。ここでも、免疫付与したコード/データとしては、データと、そのデータがソフトウェアサービスと関連する脆弱性につけこむことを阻止するように動作する挿入され、または関連付けられたコードを含む。コードまたはデータの修正も1つの可能な変換メカニズムである。
既に述べたように、処理内におけるこのような例示的な免疫付与コンポーネントの位置の選択は、さまざまな要因に依存する。例えば、イントラネット(例えば、ネットワーク124)を有する組織の場合は、このような免疫付与コンポーネントを、保守、セキュリティ、効率などの目的のために、ファイアウォールまたはゲートウェイサーバ(例えば、112)上に配置するように選択してもよい。同一の要因が信頼性コンポーネントにも適用できる。更に、これら2つのコンポーネント(つまり、免疫付与コンポーネントおよび信頼性コンポーネント)は、必要に応じて、クライアント、サーバなどに実装可能なソフトウェアパッケージの一部であってもよい。
図5は免疫付与されたコード/データを送信するための例示的な方法500を示す。ここでも、もし、例えば、免疫付与されたコンポーネントが、そのコード/データを使用することを意図するクライアント上に存在するときは、送信は単にこのコード/データを適当なクライアントソフトウェアに提供する。
この例示的な方法500によると、受信ブロック504は、URLをコード/データに対する要求の一部として受信する。判定ブロック508は、そのURLが信頼できるURLであるか否かを、例えば、検索テーブル512を用いて判定する。判定ブロック508が、そのURLが信頼できるURLであると判断したときは、送信ブロック516が動作し、そのURLと関連するリソースからのコード/データを要求者またはそのコード/データが向けられている他のエンティティに送る。
判定ブロック508が、そのURLは信頼できるリソースに相当しないものと判断したときは、免疫付与ブロック520が動作してそのコード/データに免疫を付与し、免疫付与されたコード/データを生成し、送信ブロック524が動作してこの免疫付与されたコード/データを送信する。
図6は、免疫付与された情報(例えば、コード/データ)を送信するための例示的な方法600を示す。この例示的な方法600によると、受信ブロック604はあるリソースから情報を受信する。判定ブロック608は、受信された情報が1または複数のソフトウェア脆弱性につけこむことを企てているか否かを、例えば、オプションとして、一部、検索テーブル612に依存することで、判断する。もし判定ブロック608が、その情報は、既知の脆弱性につけこむどのような特徴も含まないと判断したときは、送信ブロック616が動作し、その情報を送信する。このような情報は、これが既知の脆弱性につけこむ能力に関してチェックされているために、免疫付与された情報であるとみなす。このような状況においては、この情報は、さまざまな脆弱性への攻撃は起こりそうもないこと、またはその情報は免疫付与処理にてチェックされていることを示す指標(例えば、コードまたはデータのセグメント)を含むように変換される。
既に述べたように、悪意のあるコードがセットアップまたはランタイムにおいて、ソフトウェア脆弱性に対して攻撃してくることがある。例えば、悪意あるコードが、追加のコードを要求するように作動するURLを、クライアントソフトウェアに送信させることがある。このような後続の呼は、あるタイプの脆弱性攻撃であるとみなされ、このため、判定ブロック608は、脆弱性につけこまれることの危険性が存在すると判断するかもしれない。このようにして、例示的な免疫付与手続きはコード、または別の指標を挿入してそのコードが追加コード/データへの要求を企てることを防止するか、もしくはこの事実を示唆する。このような追加のコード/データもまだその信頼性が判断されていない、もしくは1または複数のソフトウェア脆弱性に攻撃する危険性について判断されていない状態にある。
判定ブロック608が、受信された情報は既知の脆弱性につけこむ1または複数の特徴を含むと判断したときは、免疫付与ブロック620が動作して受信された情報に免疫を付与し、免疫付与された情報を生成し、送信ブロック624が動作してこの免疫付与された情報を送信する。
既に述べたように、例示的な方法は、受信された情報のチェックより前に(例えば、判定ブロック608より前に)実行し、受信された情報を変換してその受信された情報による1または複数のソフトウェア脆弱性につけこむ危険性を低減または除去することもできる。例えば、再びこの例示的方法600を参照すると、このような場合には、ブロック604、620および624が動作し、免疫付与された情報を送信する。
図7は、1または複数の脆弱性を解決するためのコードをコード/データに挿入、付加、またはこれと関連付け、これによってこのような1または複数の脆弱性につけこまれる危険性を除去または低減する例示的な処理700を示す。この例においては、既知の脆弱性が存在し、少なくともこれらの幾つかの既知の脆弱性に対処するためのコードが存在する。したがって、この例示的な方法700はこのような知識、例えば、ローカルにまたは遠隔に、別個にまたは一緒に、格納されているこのような知識に依存する。このような一例を説明すると、この例示的な処理700は、既知の脆弱性の情報テーブル716と、免疫付与コード712のさまざまなセグメントを含み、ここでこれらセグメントは、(例えば、情報テーブル716を通じて)1または複数の既知の脆弱性と対応する。
例示的処理700によると、コード/データ704は、オプションとして既知の脆弱性(例えば、V1、V2、V3、V4)のテーブル716に依存する脆弱性チェック708の対象となる。このチェック708に基づいて、コード712のさまざまなセグメントが、特定の脆弱性または一群の脆弱性を解決するのに利用可能となる。例えば、コード712のセグメントは、V1に対するコード721、V2に対するコード723およびV3に対するコード725を含む。脆弱性V4は対応するコードを含まないこともある。例えば、脆弱性V4はコードを使用しては解決することができない脆弱性に対応することも、または、「修正(fixed)」された場合にその受信されたコード/データが意図されていた目的のために動作可能となるような脆弱性に対応することもあり得る。
コード712およびテーブル716のセグメントは、チェック708との関連でローカルに設けることも、または保守、セキュリティなどの目的で遠隔地に設けることもできる。例示的処理700においては、コード/データ704は、脆弱性V2を含み、従って、免疫付与コードの関連付けブロック718は、V2に対するコードをコード/データ704と関連付け、これにより免疫付与されたコード/データ720を形成する。
免疫付与コードの関連付けブロック718は、オプションとして、例えば、1または複数のフックを受信されたコード内に挿入するように動作することも、またはフックを受信されたデータと関連付けるように動作することもできる。このようなフックは、ソフトウェア脆弱性に対する実際のまたは潜在的な攻撃に対処するように動作するローカル呼または遠隔呼を発生させてもよい。例示的なフックは、関数または他の符号化された動作を呼び出すが、ここでは、この関数または他の符号化された動作に対するコードがコード/データ704と関連付けられる。例えば、この関数または他の符号化された動作に対するコードがコード/データ704に挿入されてもよい。
ブラウザソフトウェアと関連する脆弱性に対しては、例示的な免疫付与コンポーネント(つまり、変換コンポーネント)は、そのブラウザのタイプを決定し、次に、例えば、テーブル(例えば、テーブル716)を用いて、そのタイプのブラウザと関連する特定の脆弱性を決定する。
例示的な免疫付与コンポーネントは、オプションとして、疑わしいコードまたはそのセグメントを、ブラウザ脆弱性と関連する特定のコードに対してテストすることができるブラウザシミュレーションソフトウェアを含む。
マークアップ言語に依存するウェブページとの関連では、このようなページは、静的HTMLページまたは動的HTMLページを含むこともある。一般に、ユーザは、URLをタイピングしたり、URLを示すリンクをクリックすることなどにより、静的ページを要求する。前述のように、URL要求がサーバまたは他のコンピュータに送られると、この要求に応答して、静的HTMLページ(例えば、HTML符号化されたドキュメント)を送り返す。
動的ページは通常はユーザの要求に応答して生成される。例えば、ブラウザソフトウェアは、ユーザが記入または選択するテキストボックス、メニュー、チェックボックス等を有するページを提示することで情報を収集するように動作する。次に、フォームからのデータは、例えば、サーバに送られ、サーバはこのデータを、このデータを処理するためにスクリプトもしくはアプリケーションに通し、またはデータベース等に照会し、データを投稿したりする。そしてサーバはその結果をHTMLページ内でユーザに返信する。
ここで言及されるさまざまなスクリプトは、一般には、ウェブブラウザソフトウェアに関するが、他のスクリプト、例えば、SQLおよびオブジェクト指向のプログラミング言語、例えば、VISUAL BASIC(登録商標)言語などと関連する他のスクリプトも存在する。ここで説明されるさまざまな例示的な技術は、そのようなスクリプトが使用されている場合には、疑わしいコードに適用することもできる。
図2−7のさまざまな例は、このような変換または「免疫付与(immunization)」技術の一般的な使用について説明するものである。以下では、さまざまなソフトウェア脆弱性につけこまれる危険性を除去または軽減する免疫付与技術のより具体的な例について説明し、脆弱性が継続的に発生していることを認識する。
ここで説明される例示的な免疫付与処理から利益を得ることができるさまざまなシナリオが存在する。1つのシナリオは、潜在的に悪意のあるSRC属性値(例えば、SRC=file://BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB)を有する<FRAME>タグを含む疑わしいコードを含む。長いSRC属性値は、既知のソフトウェア脆弱性(例えば、バッファーのオーバフローの危険性)と関連することが知られている。1つの例示的な免疫付与コンポーネント(例えば、判定ブロック608または脆弱性チェックブロック708)は、「長い(long)」属性値(例えば、ファイル名)をある既知のソフトウェア脆弱性と関連していると認識し、コード/データを、実行の際に、それがこのような脆弱性につけこもうと企てているか否かをチェックすることができる。このシナリオにおいては、免疫付与コンポーネントは、その値を除去、その値を変更、そのコードの実行の防止、ユーザへの警告等を、その脆弱性につけこまれることを防止するために行う。
例えば、HTMLトラフィックを<FRAME>タグが存在しないかスキャニンする1つの例示的な免疫付与コンポーネント(例えば、264、268)を含むファイアウォールとしてのサーバ112を考える。免疫付与コンポーネントによって見つけられた各タグに対して、長いSRC属性が存在しないかチェックがなされる。見つかったときは、この免疫付与コンポーネントは修正動作を呼び出し、これは奇形のトラフィックをブロックしたり、コードを変更したりする。
例示的なファイアウォールサーバ(例えば、サーバ112)またはルーティングデバイスは、ファイアウォールサーバがリソース(例えば、サーバ104、108)からネットワーク(例えば、ネットワーク120)を介してコード/データ(例えば、情報)を受信すること、およびコード/データをクライアントコンピュータ(例えば、クライアントコンピュータ114)に送ることを可能にするソフトウェア(例えば、ソフトウェア144、148)およびこのコード/データを、クライアントコンピュータ上のブラウザソフトウェア(例えば、ソフトウェア154)の脆弱性につけこまれることを阻止するために、免疫を付与するための免疫付与コンポーネント(例えば、コンポーネント264、268などのコンポーネント)を含む。このような例においては、ファイアウォールサーバのソフトウェアは、更に、ファイアウォールサーバが、クライアントコンピュータからURLを受信することを可能にするが、ここでこのURLはこのネットワークを介してアクセス可能なリソースに対応する。さらに、このような例示的なファイアウォールは、そのURLが信頼できるリソースと関連するか否かを判定し、そして、この判定の少なくとも一部分に基づいて、そのコード/データをそのリソースから受信するか否か、またはそのリソースから受信されるコード/データに免疫付与コンポーネントを用いて免疫を付与するか否かを決定する、信頼性コンポーネント(例えば、コンポーネント462、464の1つ)を含む。
図8は、疑わしいコード、例えば、スクリプトを含む、疑わしいコード830を伴う例示的なシナリオ800を示す。上述の疑わしいコード/データ(つまり、長いSRC属性値)とは対照的に、この疑わしいコード830に対する脆弱性につけこまれる危険性は、スクリプトと関連する。このシナリオにおいては、悪意のあるまたは問題のあるHTMLタグは、そのページのHTMLコード内にあるのではなく、ランタイムにおいて、例えば、クライアント上で、このHTMLページ内部のスクリプトによって生成される。一般に、どのようなスクリプトが、実行の際に、このようなスクリプトと関連するブラウザの脆弱性を成功裏につけこむ機会を増加させるかを知ることは困難である。
疑いのあるコード830を変換または「免疫付与(immunize)」するためには、例示的な免疫付与コードセグメント850が、免疫付与コンポーネントにて生成または選択される(選択に関しては、例えば処理700を参照)。この例示的なコード850は、(例えば、クライアント側のソフトウェアと関連する)脆弱性の認識を阻止するように動作する例示的な免疫付与関数854「abcd()」を定義するスクリプトを含む。この特定の例においては、この関数abcd()は、<FRAME>タグ属性を検出するため、およびその属性の値がある特定の長さ(例えば、25文字)を超えるか否かを調べるために用いられる変数「TheElement」を含む。この関数abcd()は、変数長の全体(つまり、string=”<FRAME SRC=file://BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB>”)を調べることも、または変数の一部のみを考慮することもできる。例えば、関数abcd()はSRC属性値のみを考慮する。勿論、例示的な免疫付与コードセグメントはこの両方を考慮してもよい。
この例示的なシナリオ800においては、例示的な免疫付与フック874が疑わしいコード830内に、例示的な免疫付与されたコード870を生成するために挿入される。このフック874は、例示的な免疫付与関数854をこのコード870内の「onpropertychange」に従って呼び出す動作をする。したがって、この例示的な免疫付与されたコード870は、例示的な免疫付与関数854を呼び出す例示的なフック874を含む。この関数854に対するコードセグメント850は、脆弱なコード830(例えば、図7の免疫付与されたコード720)に付加されてもよい。
図3との関連で既に述べたように、この例示的な方法300は、スクリプトを含むHTMLコードを受信することと、フックをこのHTMLコード内に挿入することとを含み、ここでこのフックはランタイムエベントに応答し、スクリプトによるブラウザソフトウェアの脆弱性につけこむことを阻止するための動作を呼び出す。したがって、例示的なシナリオ800は、疑わしいコード830を受信することと、例示的なフック874を疑わしいコード830内に挿入することとを含むこのような例示的な方法の実装であるとみなすこともできる。この例示的なフック874は、ランタイムイベントに対応し、疑わしいコード830内のスクリプトがブラウザソフトウェアの脆弱性につけこむように動作するか否かを調べることができる関数を呼び出す動作をする。
フックが脆弱性を解決するためにローカルまたは遠隔に置かれたコードを必要とする他の例示的なシナリオも存在する。例えば、1つの例示的なフックは、クライアントがファイアウォールサーバを呼び出すように仕向け、するとファイアウォールサーバは例示的な免疫付与コードをクライアントに送る。さまざまな例示的フックおよび関連する免疫付与コードは、該当するときは、イベント処理コードとしてみなしてもよい。
ここに説明されるさまざまな例示的技術はコンピュータを既知の脆弱性から、ウェブページに最小限の妨害で保護するように動作し、したがってこのような技術は、既知の脆弱性に対して特有であり、従って焦点を定めた方法で動作する。
さまざまな例示的な技術を、計算の負担を、例えば、ファイアウォールサーバのようなサーバではなく、クライアントコンピュータにシフトするようなやり方にて実装することもできる。この例示的なシナリオ800においては、コード830内のスクリプトを解析する必要性は回避され、コードはそのコードがスクリプトを含むという知識に基づいて免疫付与される。さまざまな例示的な技術は、サンドボキシングと比較して、このような技術ではクライアントが状態を知っていること、およびクライアントコンピュータ上へのユーザ入力を考慮するために有利となりうる
る。
この例示的なシナリオ800は、HTMLコード化されたウェブページを、これがファイアウォールまたはルータデバイスを通過するときに、このHTMLコードに追加のスクリプトを注入することで、免疫付与することを伴う。前述のように、このスクリプトはクライアントコンピュータ上で実行し、これを既知の脆弱性から保護してもよい。
さまざまな例において、挿入された例示的な免疫付与スクリプトは、エベント処理コードを導入し、これが新たなHTML命令(または他の命令)がランタイムに生成されたとき実行される。例えば、新たなHTMLが生成され、ページ内に注入されると、この免疫付与スクリプトは、これが既知の脆弱性を攻撃することがないことを検証した後で始めてその継続を許可する。もしそのスクリプトが攻撃をしかけることを企てているときは、実行は阻止され、攻撃が企てられていないときは、そのページは引き続き妨害されることなく動作する。
さまざまな例示的な技術は、オプションとして、例えば、エベント捕捉またはイベント処理スクリプトに加えて、妥当性チェックの使用を含む。妥当性チェックはページに対してスクリプトの2、3行目毎に含めてよい。このような妥当性のチェックは、適当であるときは、単独で用いてもよい。例えば、例示的な免疫付与コンポーネントは、所与の特定情況においてはこのチェックのみで十分であると判断する場合もある。
さまざまな例示的な方法は、フックを疑わしいコード内に挿入することと、ランタイム中に悪意のある行為を阻止することを含む。例えば、ファイアウォールは、エベント処理スクリプトを疑わしいコード内に挿入するように動作し、クライアントソフトウェアは、ランタイムにおいてその疑わしいコードの悪意ある行為を阻止するためにこのスクリプトを使用する。
動的HTML(DHTML)にはさまざまな例示的方法が適用される。この動的HTMLは、所与のエレメントを修正するHTML属性を変更することができるスクリプトを書くことを可能にする。これらの属性は、imgまたはiframeエレメントに関するSRC属性や、divエレメントに対するスタイル属性を含む。
例示的なコンピューティング環境
これらさまざまな例示的な技術は異なるコンピュータ環境で実装することができる。図9に示されるコンピュータ環境はコンピュータ環境の単に一例に過ぎず、使用の範囲、または使用に適するコンピュータおよびネットワークアーキテクチャの機能に対する制約を示唆することを意図するものではない。さらに、コンピュータ環境は、この例示的なコンピュータ環境内に示されるコンポーネントの任意の1つまたは組み合わせと関連するいかなる依存性または要件も有するものではないと解されるべきである。
図9は、さまざまな例示的な方法が実装される1つの適当なコンピューティングシステム環境900の例を示す。さまざまな例示的なデバイスまたはシステムは、この例示的な環境900の特徴の任意の幾つかを含むことができる。このコンピューティングシステム環境900は、適当なコンピューティング環境の単に一例にすぎず、本発明の使用の範囲または機能に対する制約を示すことを意図するものではない。さらに、コンピュータ環境900は、この例示的な動作環境900内に示されるコンポーネントの任意の1つまたは組み合わせと関連するいかなる依存性または要件も有するものではないと解されるべきである。
さまざまな例示的な方法は、無数の他の汎用または専用コンピューティングシステム環境または構成を用いても動作可能である。実装または使用のために適する既知のコンピューティングシステム、環境、および/または構成には、これに制限されるものではないが、パーソナルコンピュータ、サーバコンピュータ、携帯、またはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、大型汎用コンピュータ、上述の任意のシステムまたはデバイスを含む分散型コンピューティング環境などが含まれる。
さまざまな例示的な方法、用途などが、コンピュータにて実行可能な命令の一般的コンテクスト内、例えば、コンピュータにて実行されるプログラムモジュールのコンテクスト内で説明される。一般には、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データタイプを実装する、ルーティーン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。さまざまな例示的な方法は、更に、タスクは通信ネットワークまたは他の通信(例えば、赤外線等)を通じて結ばれた遠隔処理デバイスにて実行される分散型コンピューティング環境内で実施することもできる。分散型コンピューティング環境内においては、プログラムモジュールは、メモリ格納デバイスを含むローカルおよび遠隔コンピュータ記憶媒体の両方に配置することもできる。
図9を参照して、これらさまざまな例示的な方法を実装するための1つの例示的なシステムは、1つの汎用コンピューティングデバイスをコンピュータ910の形態にて含む。コンピュータ910のコンポーネントとしては、これに制限されるものではないが、処理ユニット920、システムメモリ930、およびシステムメモリ930を含むさまざまなシステムコンポーネントを処理ユニット920に結合するシステムバス921が含まれる。システムバス921は、メモリバスまたはメモリコントローラ、周辺バス、および多様なバスアーキテクチャのいずれかを使用するローカルバスが含まれる幾つかのタイプのバス構造のいずれであってもよい。例示として、このようなバスアーキテクチャには、これに制限するものではないが、ISA(Industry Standard Architecture)バス、MAC(Micro Channel Architecture)バス、EISA (Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびMessanineバスとしても知られているPCI(Peripheral Component Interconnect)バスが含まれる。
コンピュータ910は、典型的には、多様なコンピュータ可読記録媒体を含む。コンピュータ可読記録媒体は、コンピュータ910にてアクセスすることができる利用可能な媒体のいずれであっても良く、これには、揮発性および不揮発性媒体、取り外し可能な媒体および取り外し不能な媒体の両方が含まれる。例示として、コンピュータ可読記録媒体には、これに制限されるものではないが、コンピュータ記憶媒体および通信媒体が含まれる。コンピュータ記憶媒体には、揮発性および不揮発性、取り外し可能取り外し不能な媒体の両方が含まれ、これらは、情報、例えば、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを格納するための任意の方法または技術にて実装される。コンピュータ記憶媒体には、これに制限されるものではないが、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)もしくは他の光学ディスクメモリ、磁気カセット、磁気テープ、磁気ディスクメモリもしくは他の磁気メモリデバイス、または所望の情報を格納するために使用することができ、コンピュータ910にてアクセスすることができる任意の他の媒体が含まれる。通信媒体は、典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、または変調されたデータ信号、例えば、搬送波または他の輸送メカニズム内の他のデータを具現化し、任意の情報配信媒体を含む。「変調されたデータ信号(modulated data signal)」なる用語は、その特徴の1または複数がその信号内に情報を符号化するようなやり方にて設定または変化されている信号を意味する。一例として、通信媒体には、これに制限されるものではないが、有線媒体、例えば、有線ネットワークもしくは直接に結線された接続、および無線媒体、例えば、音響、RF、赤外線および他の無線媒体が含まれる。上述の任意の組合せも、コンピュータ可読記録媒体の範囲内に含まれるとみなされるべきである。
システムメモリ930は、コンピュータ記憶媒体を揮発性および/または不揮発性メモリ、例えば、読み出し専用メモリ(ROM)931およびランダムアクセスメモリ(RAM)932の形態にて含む。ROM931内には、典型的には、情報をコンピュータ910内の要素間で、例えばスタートアップ時に転送することを助ける基本入/出力システム933(BIOS)が格納される。RAM932は、典型的には、処理ユニット920に直ちにアクセスすることができる、および/または処理ユニット920によって現在操作されているデータおよび/またはプログラムモジュールを含む。例示として、これに制限されるものではないが、図9は、オペレーティングシステム934、アプリケーションプログラム935、他のプログラムモジュール936、およびプログラムデータ937を含む。
コンピュータ910は他の取り外し可能な/取り外し不能な、揮発性/不揮発性コンピュータ記憶媒体も含む。単に例示として、図9は、取り外し不能な、不揮発性磁気媒体の読み出しまたは書き込みを行うハードディスクドライブ941、取り外し可能な、不揮発性磁気ディスク952の読み出しまたは書き込みを行う磁気ディスクドライブ951、および取り外し可能な、不揮発性光ディスク956、例えば、CD ROMまたは他の光学媒体(例えば、DVD等)の読み出しまたは書き込みを行う光学ディスクドライブ955を示す。この例示的な動作環境内で用いることができる他の取り外し可能な/取り外し不能な、揮発性/不揮発性コンピュータ記憶媒体としては、これに制限されるものではないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれる。ハードディスクドライブ941が典型的にはシステムバス921にデータメディアインターフェース、例えばインターフェース940を通じて接続され、磁気ディスクドライブ951および光ディスクドライブ955は典型的にはシステムバス921に、オプションとしては取り外し可能なメモリインターフェースとされるデータメディアインターフェースを通じて接続される。この特定の例を説明する目的に対しては、磁気ディスクドライブ951および光ディスクドライブ955は、データメディアインターフェース940を使用する。
上で説明され、図9に示される、ドライブおよびこれらと関連するコンピュータ記憶媒体は、コンピュータ910に対する、コンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの格納場所を提供する。図9において、例えば、ハードディスクドライブ941は、オペレーティングシステム944、アプリケーションプログラム945、他のプログラムモジュール946、およびプログラムデータ947を格納するように示されている。これらコンポーネントは、オペレーティングシステム934、アプリケーションプログラム935、他のプログラムモジュール936,およびプログラムデータ937と、同一のコンポーネントであっても、異なるコンポーネントであってもよいことに注意する。ここでは、オペレーティングシステム944、アプリケーションプログラム945、他のプログラムモジュール946、およびプログラムデータ947には、少なくとも、これらは異なるコピーであることを示すために異なる参照符号が与えられていることに注意する。ユーザはコマンドおよび情報をコンピュータ910内に、例えば、一般にマウス、トラックボール、またはタッチパッドと呼ばれるキーボード962およびポインティングデバイス961などの入力デバイスを通じて入力する。他の入力デバイス(図示せず)として、マイクロホーン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、等を用いてもよい。これらおよび他の入力デバイスは、通常は、処理ユニット920にシステムバス921に結合されているユーザ入力インターフェース960を通じて接続されるが、他のインターフェースおよびバス構造、例えば、パラレルポート、ゲームポートまたはユニバーサルシリアルバス(USB)にて接続してもよい。モニタ991または他のタイプのディスプレイデバイスもシステムバス621に、インターフェース、例えば、ビデオインターフェース990を介して接続される。モニタ991に加えて、コンピュータは、更に、他の周辺出力デバイス、例えば、スピーカおよびプリンタを含んでもよく、これらは出力周辺機器インターフェース995を通じて接続される。
コンピュータ910は、1または複数の遠隔コンピュータ、例えば、遠隔コンピュータ980への論理接続を使用してネットワーク化された環境内にて動作することもできる。遠隔コンピュータ980は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードであっても良く、典型的には、コンピュータ910との関連で上述した特徴の多くまたは全てを含む。図9に示される論理的接続は、ローカルエリアネットワーク(LAN)971およびワイドエリアネットワーク(WAN)973を含むが、しかしながら、他のネットワークを含んでもよい。このようなネットワーキング環境は、事務所や企業レベルのコンピュータネットワーク、イントラネットおよびインターネットにおいては一般的である。
LANネットワーキング環境内で用いられるときは、コンピュータ910はLAN971にネットワークインターフェースまたはアダプタ970を通じて接続される。WANネットワーキング環境内で用いられるときは、コンピュータ910は、典型的には、WAN973、例えば、インターネットを通じて通信を確立するためのモデム972または他の手段を含む。モデム972は、これは内部に配置されるときもまたは外部に配置されるときもあるが、ユーザ入力インターフェース960または他の適当なメカニズムを介してシステムバス921に接続される。ネットワーク化された環境内においては、コンピュータ910との関連で説明されたプログラムモジュール、またはこの一部分は、遠隔記憶デバイスに格納してもよい。例示として、これに制限されるものではないが、図9は、リモートアプリケーションプログラム985が遠隔コンピュータ980上(例えば、遠隔コンピュータ980のメモリ内)に存在するように示す。示されているネットワーク接続は例示であり、これらコンピュータ間に通信リンクを確立するための他の手段を用いることもできる。
さまざまな例示的な方法、デバイス、システムなどが、構造的な特徴および/または方法論的動作に特有の言語で説明されてきたが、添付の特許請求の範囲に記載されている対象は、必ずしも、ここで説明された具体的な特徴および動作に制限されるものではないと解釈されるべきである。むしろ、これら具体的な特徴および動作は、特許請求される対象を実装するための例示的形態として開示されている。
1または複数のネットワークを介してリソースにアクセスするシステムおよび処理の図である。 コード/データに免疫を付与するための1または複数の免疫付与コンポーネントを含む例示的な処理の図である。 ソフトウェア脆弱性への攻撃の危険性を防止または低減するために情報を変換するための1つの例示的な方法の図である。 あるリソースが信頼できるか否かを判定するための1または複数の信頼性コンポーネントを含む例示的な処理の図である。 リソースが信頼できるか否かを判定し、これに応答して、そのリソースからのコード/データに免疫を付与するための例示的な方法の図である。 受信された情報がソフトウェア脆弱性につけこむまたはつけこむことを企てているか否かを判定するための例示的な方法の図である。 特別なコードを疑わしいコード/データと関連づけて、その疑わしいコード/データがソフトウェアの脆弱性につけこむことを阻止することによってコード/データを変換するための例示的な処理の図である。 コードに免疫付与するための例示的なシナリオの図である。 ここで開示されるさまざまな例示的な技術を実装するために用いることができる例示的なコンピューティング環境の図である。

Claims (20)

  1. 要求に応答して情報を受信するステップであって、前記受信情報はソフトウェアサービスが消費するためのものである、受信するステップと、
    前記受信情報にスクリプトを挿入するステップであって、前記スクリプトは、前記受信情報に含まれた前記ソフトウェアサービスの既知の脆弱性につけこむコードの能力を低減または除去する、挿入するステップと、
    前記変換された情報を送信するステップと
    を備えたことを特徴とするコンピュータに実装可能な方法。
  2. 前記要求は、クライアントからの要求であることを特徴とする請求項1に記載のコンピュータに実装可能な方法。
  3. 前記情報リモートサーバから受信することを特徴とする請求項2に記載のコンピュータに実装可能な方法。
  4. 前記送信するステップは、前記スクリプトが挿入された前記受信情報をクライアントに送信することを特徴とする請求項1に記載のコンピュータに実装可能な方法。
  5. 前記受信情報にスクリプトを挿入するステップは、ブラウザソフトウェアの脆弱性につけこむ能力についての前記情報をチェックするステップを備えたことを特徴とする請求項1に記載のコンピュータに実装可能な方法。
  6. 前記受信情報は、HTMLコードを備えたことを特徴とする請求項1に記載のコンピュータに実装可能な方法。
  7. 前記受信情報は、前記コードを含むスクリプトを備えたことを特徴とする請求項1に記載のコンピュータに実装可能な方法。
  8. 前記受信情報は、ブラウザソフトウェアサービスを用いて表示することができるウェブページを備えたことを特徴とする請求項1に記載のコンピュータに実装可能な方法。
  9. 前記受信情報にスクリプトを挿入するステップは、前記受信情報内にフックを挿入するステップを備えたことを特徴とする請求項1に記載のコンピュータに実装可能な方法。
  10. 前記フックは、ランタイムイベントに応答して関数を呼び出すことを特徴とする請求項9に記載のコンピュータに実装可能な方法。
  11. URLが信頼できるリソースに対応するか否かを判定するステップをさらに備えたことを特徴とする請求項1に記載のコンピュータに実装可能な方法。
  12. 前記受信情報にスクリプト挿入するか否かを前記判定に基づいて決定するステップをさらに備えたことを特徴とする請求項11に記載のコンピュータに実装可能な方法。
  13. 請求項1に記載の方法を実行するためのコンピュータ実行可能命令を有する1または複数のコンピュータ可読記録媒体。
  14. スクリプトを含むHTMLコードを受信するステップと、
    前記HTMLコードにフックを挿入するステップであって、前記フックがランタイムイベントに応答して、前記スクリプトによるブラウザソフトウェアの脆弱性につけこまれることを阻止するための動作を呼び出す、挿入するステップと
    を備えたことを特徴とするコンピュータに実装可能な方法。
  15. 前記フックは、関数を呼び出すイベント処理フックを備えたこと
    を特徴とする請求項14に記載のコンピュータに実装可能な方法。
  16. 前記関数は、前記HTMLコードがブラウザソフトウェアの脆弱性につけこむか否かを判定することを特徴とする請求項15に記載のコンピュータに実装可能な方法。
  17. 請求項14に記載の方法を実行するためのコンピュータ実行可能命令を有する1または複数のコンピュータ可読記録媒体。
  18. サーバソフトウェアと免疫付与コンポーネントソフトウェアを備えたファイアウォールサーバであって、
    前記サーバソフトウェアは、ネットワークを介してリソースから情報を受信し、情報をクライアントコンピュータに送信することを可能にさせ
    前記免疫付与コンポーネントソフトウェアは、前記受信情報に含まれた前記クライアントコンピュータのブラウザソフトウェアの脆弱性につけこむコードの能力を低減または除去するスクリプトを、前記受信情報に挿入する
    ことを特徴とするファイアウォールサーバ。
  19. 前記サーバソフトウェアは、前記ファイアウォールサーバが、前記クライアントコンピュータからURLを受信することをさらに可能にし、前記URLは前記ネットワークを介してアクセス可能なリソースに対応することを特徴とする請求項18に記載のファイアウォールサーバ。
  20. 前記ファイアウォールサーバは、前記URLが、信頼できるリソースと関連するか否かを判定し、この判定に少なくとも部分的に基づいて前記情報を前記リソースから受信するか否か、または前記免疫付与コンポーネントソフトウェアを使用して前記リソースから受信した情報に免疫付与するか否かを判断する信頼性コンポーネントをさらに備えることを特徴とする請求項19に記載のファイアウォールサーバ。
JP2008521517A 2005-07-15 2006-07-10 Htmlブラウザおよび拡張機能の既知の脆弱性からの免疫付与 Active JP4912400B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/183,329 US8225392B2 (en) 2005-07-15 2005-07-15 Immunizing HTML browsers and extensions from known vulnerabilities
US11/183,329 2005-07-15
PCT/US2006/026861 WO2007011579A2 (en) 2005-07-15 2006-07-10 Immunizing html browsers and extensions from known vulnerabilities

Publications (2)

Publication Number Publication Date
JP2009501392A JP2009501392A (ja) 2009-01-15
JP4912400B2 true JP4912400B2 (ja) 2012-04-11

Family

ID=37663066

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008521517A Active JP4912400B2 (ja) 2005-07-15 2006-07-10 Htmlブラウザおよび拡張機能の既知の脆弱性からの免疫付与

Country Status (6)

Country Link
US (1) US8225392B2 (ja)
EP (1) EP1904988B1 (ja)
JP (1) JP4912400B2 (ja)
KR (1) KR20080026178A (ja)
CN (1) CN101223562A (ja)
WO (1) WO2007011579A2 (ja)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9219755B2 (en) 1996-11-08 2015-12-22 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US8079086B1 (en) 1997-11-06 2011-12-13 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US7231606B2 (en) 2000-10-31 2007-06-12 Software Research, Inc. Method and system for testing websites
US8239939B2 (en) * 2005-07-15 2012-08-07 Microsoft Corporation Browser protection module
US8112799B1 (en) * 2005-08-24 2012-02-07 Symantec Corporation Method, system, and computer program product for avoiding cross-site scripting attacks
JP4997242B2 (ja) * 2005-08-25 2012-08-08 フォーティファイ ソフトウェア, エルエルシー セキュリティを提供するためのプログラムの解析および補完のための装置および方法
WO2007025279A2 (en) 2005-08-25 2007-03-01 Fortify Software, Inc. Apparatus and method for analyzing and supplementing a program to provide security
US20070113282A1 (en) * 2005-11-17 2007-05-17 Ross Robert F Systems and methods for detecting and disabling malicious script code
US20120144485A9 (en) * 2005-12-12 2012-06-07 Finjan Software, Ltd. Computer security method and system with input parameter validation
US7757289B2 (en) * 2005-12-12 2010-07-13 Finjan, Inc. System and method for inspecting dynamically generated executable code
US7774459B2 (en) 2006-03-01 2010-08-10 Microsoft Corporation Honey monkey network exploration
JP4722730B2 (ja) * 2006-03-10 2011-07-13 富士通株式会社 セキュリティ管理プログラム、セキュリティ管理装置、およびセキュリティ管理方法
US8185737B2 (en) 2006-06-23 2012-05-22 Microsoft Corporation Communication across domains
US20080083012A1 (en) * 2006-06-26 2008-04-03 Dachuan Yu Program instrumentation method and apparatus for constraining the behavior of embedded script in documents
US8495204B2 (en) * 2006-07-06 2013-07-23 Visible Measures Corp. Remote invocation mechanism for logging
US7508803B2 (en) * 2006-09-07 2009-03-24 Motorola, Inc. Transporting management traffic through a multi-hop mesh network
US8732839B2 (en) * 2007-07-31 2014-05-20 Sony Corporation Automatically protecting computer systems from attacks that exploit security vulnerabilities
US9686288B2 (en) 2008-01-25 2017-06-20 Ntt Docomo, Inc. Method and apparatus for constructing security policies for web content instrumentation against browser-based attacks
US9454410B2 (en) 2008-03-04 2016-09-27 Microsoft Technology Licensing, Llc Transparent integration of application components
KR101027928B1 (ko) * 2008-07-23 2011-04-12 한국전자통신연구원 난독화된 악성 웹페이지 탐지 방법 및 장치
WO2010093071A1 (ko) * 2009-02-12 2010-08-19 주식회사 안철수연구소 인터넷 사이트 보안 시스템 및 그 방법
CN101848092A (zh) * 2009-03-25 2010-09-29 华为技术有限公司 恶意代码检测方法和装置
US8214903B2 (en) * 2009-10-02 2012-07-03 International Business Machines Corporation Analysis of scripts
US9532222B2 (en) 2010-03-03 2016-12-27 Duo Security, Inc. System and method of notifying mobile devices to complete transactions after additional agent verification
US9544143B2 (en) 2010-03-03 2017-01-10 Duo Security, Inc. System and method of notifying mobile devices to complete transactions
US8875285B2 (en) * 2010-03-24 2014-10-28 Microsoft Corporation Executable code validation in a web browser
US10805331B2 (en) 2010-09-24 2020-10-13 BitSight Technologies, Inc. Information technology security assessment system
US9064134B1 (en) * 2010-12-06 2015-06-23 Adobe Systems Incorporated Method and apparatus for mitigating software vulnerabilities
US9467463B2 (en) 2011-09-02 2016-10-11 Duo Security, Inc. System and method for assessing vulnerability of a mobile device
US9524388B2 (en) 2011-10-07 2016-12-20 Duo Security, Inc. System and method for enforcing a policy for an authenticator device
US20140053056A1 (en) * 2012-08-16 2014-02-20 Qualcomm Incorporated Pre-processing of scripts in web browsers
US8938796B2 (en) 2012-09-20 2015-01-20 Paul Case, SR. Case secure computer architecture
US9250940B2 (en) 2012-12-21 2016-02-02 Microsoft Technology Licensing, Llc Virtualization detection
US9083736B2 (en) * 2013-01-28 2015-07-14 Hewlett-Packard Development Company, L.P. Monitoring and mitigating client-side exploitation of application flaws
US9338156B2 (en) 2013-02-22 2016-05-10 Duo Security, Inc. System and method for integrating two-factor authentication in a device
US9607156B2 (en) 2013-02-22 2017-03-28 Duo Security, Inc. System and method for patching a device through exploitation
US10171483B1 (en) 2013-08-23 2019-01-01 Symantec Corporation Utilizing endpoint asset awareness for network intrusion detection
US9438615B2 (en) 2013-09-09 2016-09-06 BitSight Technologies, Inc. Security risk management
US9608814B2 (en) 2013-09-10 2017-03-28 Duo Security, Inc. System and method for centralized key distribution
US9092302B2 (en) 2013-09-10 2015-07-28 Duo Security, Inc. System and method for determining component version compatibility across a device ecosystem
US9774448B2 (en) 2013-10-30 2017-09-26 Duo Security, Inc. System and methods for opportunistic cryptographic key management on an electronic device
US9762590B2 (en) 2014-04-17 2017-09-12 Duo Security, Inc. System and method for an integrity focused authentication service
US9979719B2 (en) 2015-01-06 2018-05-22 Duo Security, Inc. System and method for converting one-time passcodes to app-based authentication
US9912692B1 (en) * 2015-03-27 2018-03-06 EMC IP Holding Company LLC Point of sale system protection against information theft attacks
US9641341B2 (en) 2015-03-31 2017-05-02 Duo Security, Inc. Method for distributed trust authentication
EP3304336B1 (en) 2015-06-01 2019-10-09 Duo Security, Inc. Method for enforcing endpoint health standards
US9774579B2 (en) 2015-07-27 2017-09-26 Duo Security, Inc. Method for key rotation
GB201617620D0 (en) * 2016-10-18 2016-11-30 Cybernetica As Composite digital signatures
WO2018130903A1 (en) * 2017-01-11 2018-07-19 Morphisec Information Security Ltd. Protecting computing devices from a malicious process by exposing false information
US10419489B2 (en) * 2017-05-04 2019-09-17 International Business Machines Corporation Unidirectional trust based decision making for information technology conversation agents
US10425380B2 (en) 2017-06-22 2019-09-24 BitSight Technologies, Inc. Methods for mapping IP addresses and domains to organizations using user activity data
US10412113B2 (en) 2017-12-08 2019-09-10 Duo Security, Inc. Systems and methods for intelligently configuring computer security
US10257219B1 (en) 2018-03-12 2019-04-09 BitSight Technologies, Inc. Correlated risk in cybersecurity
US20190294796A1 (en) * 2018-03-23 2019-09-26 Microsoft Technology Licensing, Llc Resolving anomalies for network applications using code injection
US10812520B2 (en) 2018-04-17 2020-10-20 BitSight Technologies, Inc. Systems and methods for external detection of misconfigured systems
US11200323B2 (en) 2018-10-17 2021-12-14 BitSight Technologies, Inc. Systems and methods for forecasting cybersecurity ratings based on event-rate scenarios
US10521583B1 (en) * 2018-10-25 2019-12-31 BitSight Technologies, Inc. Systems and methods for remote detection of software through browser webinjects
US11658962B2 (en) 2018-12-07 2023-05-23 Cisco Technology, Inc. Systems and methods of push-based verification of a transaction
US10726136B1 (en) 2019-07-17 2020-07-28 BitSight Technologies, Inc. Systems and methods for generating security improvement plans for entities
US10848382B1 (en) 2019-09-26 2020-11-24 BitSight Technologies, Inc. Systems and methods for network asset discovery and association thereof with entities
US11032244B2 (en) 2019-09-30 2021-06-08 BitSight Technologies, Inc. Systems and methods for determining asset importance in security risk management
US11082437B2 (en) * 2019-12-17 2021-08-03 Paypal, Inc. Network resources attack detection
US10791140B1 (en) 2020-01-29 2020-09-29 BitSight Technologies, Inc. Systems and methods for assessing cybersecurity state of entities based on computer network characterization
US10893067B1 (en) 2020-01-31 2021-01-12 BitSight Technologies, Inc. Systems and methods for rapidly generating security ratings
US10764298B1 (en) 2020-02-26 2020-09-01 BitSight Technologies, Inc. Systems and methods for improving a security profile of an entity based on peer security profiles
US11023585B1 (en) 2020-05-27 2021-06-01 BitSight Technologies, Inc. Systems and methods for managing cybersecurity alerts
US11122073B1 (en) 2020-12-11 2021-09-14 BitSight Technologies, Inc. Systems and methods for cybersecurity risk mitigation and management
KR102311119B1 (ko) * 2021-03-12 2021-10-13 주식회사 월간해킹 웹 취약점 자동 진단 방법 및 이러한 방법을 수행하는 장치
US12079347B2 (en) 2021-03-31 2024-09-03 BitSight Technologies, Inc. Systems and methods for assessing cybersecurity risk in a work from home environment

Family Cites Families (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2560873B2 (ja) * 1990-02-28 1996-12-04 日本ビクター株式会社 直交変換符号化復号化方法
US5388181A (en) * 1990-05-29 1995-02-07 Anderson; David J. Digital audio compression system
JP3033156B2 (ja) * 1990-08-24 2000-04-17 ソニー株式会社 ディジタル信号符号化装置
EP0559348A3 (en) * 1992-03-02 1993-11-03 AT&T Corp. Rate control loop processor for perceptual encoder/decoder
US5675762A (en) * 1992-04-03 1997-10-07 International Business Machines Corporation System for locking down part of portion of memory and updating page directory with entry corresponding to part of portion of the memory locked down
US5659539A (en) * 1995-07-14 1997-08-19 Oracle Corporation Method and apparatus for frame accurate access of digital audio-visual information
US5819215A (en) * 1995-10-13 1998-10-06 Dobson; Kurt Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data
US5956674A (en) * 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
US5686964A (en) * 1995-12-04 1997-11-11 Tabatabai; Ali Bit rate control mechanism for digital image and video data compression
US6076109A (en) 1996-04-10 2000-06-13 Lextron, Systems, Inc. Simplified-file hyper text protocol
US6553410B2 (en) 1996-02-27 2003-04-22 Inpro Licensing Sarl Tailoring data and transmission protocol for efficient interactive data transactions over wide-area networks
US6266681B1 (en) * 1997-04-08 2001-07-24 Network Commerce Inc. Method and system for inserting code to conditionally incorporate a user interface component in an HTML document
US8225408B2 (en) 1997-11-06 2012-07-17 Finjan, Inc. Method and system for adaptive rule-based content scanners
US6275937B1 (en) * 1997-11-06 2001-08-14 International Business Machines Corporation Collaborative server processing of content and meta-information with application to virus checking in a server network
JP3597686B2 (ja) 1997-12-02 2004-12-08 富士通株式会社 ウィルスチェックネットワークシステム及びウィルスチェック装置
US6115689A (en) * 1998-05-27 2000-09-05 Microsoft Corporation Scalable audio coder and decoder
US6253326B1 (en) 1998-05-29 2001-06-26 Palm, Inc. Method and system for secure communications
US7155737B1 (en) 1999-05-11 2006-12-26 Entrust, Inc. Integrating user specified extensions into an information access system
US6601169B2 (en) 1999-12-30 2003-07-29 Clyde Riley Wallace, Jr. Key-based secure network user states
US6711675B1 (en) 2000-02-11 2004-03-23 Intel Corporation Protected boot flow
US7188363B1 (en) 2000-02-14 2007-03-06 Cisco Technology, Inc. Method and apparatus for adding and updating protocol inspection knowledge to firewall processing during runtime
EP1269286B1 (en) * 2000-03-03 2008-11-19 International Business Machines Corporation System for determining web application vulnerabilities
US7159237B2 (en) 2000-03-16 2007-01-02 Counterpane Internet Security, Inc. Method and system for dynamic network intrusion monitoring, detection and response
US7376835B2 (en) 2000-04-25 2008-05-20 Secure Data In Motion, Inc. Implementing nonrepudiation and audit using authentication assertions and key servers
US7577834B1 (en) 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
US20020129239A1 (en) 2000-05-09 2002-09-12 Clark Paul C. System for secure communication between domains
US20050154885A1 (en) 2000-05-15 2005-07-14 Interfuse Technology, Inc. Electronic data security system and method
FR2811782B1 (fr) 2000-07-12 2003-09-26 Jaxo Europ Systeme de conversion de documents a structure arborescente par parcours selectif de ladite structure
AUPQ924100A0 (en) 2000-08-07 2000-08-31 Sharinga Networks Inc. A method for controlling data at a client device
US7000107B2 (en) 2000-09-30 2006-02-14 Microsoft Corporation System and method for using dynamic web components to remotely control the security state of web pages
US7093193B1 (en) 2000-10-30 2006-08-15 Microsoft Corporation String template pages for generating HTML document
US7191252B2 (en) 2000-11-13 2007-03-13 Digital Doors, Inc. Data security system and method adjunct to e-mail, browser or telecom program
US7062445B2 (en) * 2001-01-26 2006-06-13 Microsoft Corporation Quantization loop with heuristic approach
JP2002259150A (ja) * 2001-03-05 2002-09-13 Fujitsu Prime Software Technologies Ltd ワクチンソフト提供方法及びプログラム
JP2002290900A (ja) 2001-03-23 2002-10-04 Hitachi Ltd 情報安全化装置及び情報保証システム
US20030037261A1 (en) 2001-03-26 2003-02-20 Ilumin Corporation Secured content delivery system and method
US7640434B2 (en) * 2001-05-31 2009-12-29 Trend Micro, Inc. Identification of undesirable content in responses sent in reply to a user request for content
US20030014659A1 (en) 2001-07-16 2003-01-16 Koninklijke Philips Electronics N.V. Personalized filter for Web browsing
US7263561B1 (en) * 2001-08-24 2007-08-28 Mcafee, Inc. Systems and methods for making electronic files that have been converted to a safe format available for viewing by an intended recipient
US20030097591A1 (en) * 2001-11-20 2003-05-22 Khai Pham System and method for protecting computer users from web sites hosting computer viruses
US6934677B2 (en) * 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
US7146313B2 (en) * 2001-12-14 2006-12-05 Microsoft Corporation Techniques for measurement of perceptual audio quality
US7027982B2 (en) * 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
US7240001B2 (en) * 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
US7460993B2 (en) * 2001-12-14 2008-12-02 Microsoft Corporation Adaptive window-size selection in transform coding
US7392545B1 (en) 2002-01-18 2008-06-24 Cigital, Inc. Systems and methods for detecting software security vulnerabilities
US20030163448A1 (en) 2002-02-26 2003-08-28 Sun Microsystems, Inc. Scripting service for translating browser requests into command line interface (CLI) commands
US20030177390A1 (en) 2002-03-15 2003-09-18 Rakesh Radhakrishnan Securing applications based on application infrastructure security techniques
EP1532539B1 (en) 2002-06-06 2015-12-09 Pulse Secure, LLC Method and system for providing secure access to private networks
US7113960B2 (en) 2002-08-22 2006-09-26 International Business Machines Corporation Search on and search for functions in applications with varying data types
US7299190B2 (en) * 2002-09-04 2007-11-20 Microsoft Corporation Quantization and inverse quantization for audio
US7650638B1 (en) 2002-12-02 2010-01-19 Arcsight, Inc. Network security monitoring system employing bi-directional communication
CA2509579C (en) 2002-12-12 2011-10-18 Finite State Machine Labs, Inc. Systems and methods for detecting a security breach in a computer system
AU2003293501A1 (en) * 2002-12-13 2004-07-09 Wholesecurity, Inc. Method, system, and computer program product for security within a global computer network
US7194744B2 (en) 2002-12-17 2007-03-20 International Business Machines Corporation System and method for dynamic exception handling using an external exception handler
JP4320013B2 (ja) 2003-02-26 2009-08-26 株式会社セキュアウェア 不正処理判定方法、データ処理装置、コンピュータプログラム、及び記録媒体
JP4405248B2 (ja) 2003-03-31 2010-01-27 株式会社東芝 通信中継装置、通信中継方法及びプログラム
US20040230825A1 (en) 2003-05-16 2004-11-18 Shepherd Eric Robert Secure browser
US20050015752A1 (en) 2003-07-15 2005-01-20 International Business Machines Corporation Static analysis based error reduction for software applications
US20050066311A1 (en) 2003-09-22 2005-03-24 International Business Machines Corporation Autonomic execution tracking and correction of functions
US7162626B2 (en) 2003-09-25 2007-01-09 Intel Corporation Use of common language infrastructure for sharing drivers and executable content across execution environments
US7694328B2 (en) * 2003-10-21 2010-04-06 Google Inc. Systems and methods for secure client applications
US20050182928A1 (en) 2004-02-12 2005-08-18 Chandar Kamalanathan System and method for secure HTML links
US20050193329A1 (en) 2004-02-27 2005-09-01 Micron Technology, Inc. Systems and methods for creating page based applications using database metadata
US8528063B2 (en) 2004-03-31 2013-09-03 International Business Machines Corporation Cross domain security information conversion
US20050268214A1 (en) 2004-05-31 2005-12-01 De-Jen Lu Simple input method for a web browser
JP2006004136A (ja) 2004-06-17 2006-01-05 Fujitsu Ltd Htmlファイル処理方法及びプログラム
US8244910B2 (en) 2004-07-14 2012-08-14 Ebay Inc. Method and system to modify function calls from within content published by a trusted web site
US20060041834A1 (en) 2004-08-19 2006-02-23 International Business Machines Corporation User-controlled web browser table sorting
US20060053411A1 (en) 2004-09-09 2006-03-09 Ibm Corporation Systems, methods, and computer readable media for consistently rendering user interface components
US20070011744A1 (en) * 2005-07-11 2007-01-11 Cox Communications Methods and systems for providing security from malicious software
US8239939B2 (en) 2005-07-15 2012-08-07 Microsoft Corporation Browser protection module
US20070113282A1 (en) 2005-11-17 2007-05-17 Ross Robert F Systems and methods for detecting and disabling malicious script code
US7904278B2 (en) 2006-05-02 2011-03-08 The Johns Hopkins University Methods and system for program execution integrity measurement
US20090183227A1 (en) 2008-01-11 2009-07-16 Microsoft Corporation Secure Runtime Execution of Web Script Content on a Client

Also Published As

Publication number Publication date
EP1904988A4 (en) 2011-03-23
KR20080026178A (ko) 2008-03-24
EP1904988B1 (en) 2019-04-03
US20070016948A1 (en) 2007-01-18
CN101223562A (zh) 2008-07-16
EP1904988A2 (en) 2008-04-02
WO2007011579A3 (en) 2007-09-27
WO2007011579A2 (en) 2007-01-25
US8225392B2 (en) 2012-07-17
JP2009501392A (ja) 2009-01-15

Similar Documents

Publication Publication Date Title
JP4912400B2 (ja) Htmlブラウザおよび拡張機能の既知の脆弱性からの免疫付与
US10834082B2 (en) Client/server security by executing instructions and rendering client application instructions
US8239939B2 (en) Browser protection module
US8464318B1 (en) System and method for protecting web clients and web-based applications
De Keukelaere et al. Smash: secure component model for cross-domain mashups on unmodified browsers
US7664865B2 (en) Securely hosting a webbrowser control in a managed code environment
JP5254656B2 (ja) ドライブバイ・ファーミングに対するリファラーチェックを介したクライアント側の保護
US7359976B2 (en) Method and system for improved internet security via HTTP-only cookies
JP4184604B2 (ja) コンピュータ/通信ネットワークで実行可能コードのネットワーク・セキュリティを講じるための装置、方法及びシステム
US8291475B2 (en) Secure cross-domain communication for web mashups
JP4625246B2 (ja) クロスサイトスクリプティング脆弱性の自動検出
US20100186089A1 (en) Method and system for protecting cross-domain interaction of a web application on an unmodified browser
US20100037317A1 (en) Mehtod and system for security monitoring of the interface between a browser and an external browser module
US20080295164A1 (en) Mashup component isolation via server-side analysis and instrumentation
US9305174B2 (en) Electronic clipboard protection
WO2016086767A1 (zh) 实现浏览器安全的方法、浏览器客户端和装置
US8448260B1 (en) Electronic clipboard protection
US20080229427A1 (en) Method and apparatus for secure web browsing
US8375423B2 (en) Authenticating a source of a scripted code
US20080301766A1 (en) Content processing system, method and program
US9009821B2 (en) Injection attack mitigation using context sensitive encoding of injected input
US20110321168A1 (en) Thwarting cross-site request forgery (csrf) and clickjacking attacks
US7565543B1 (en) System and method for authenticating a web page
US10032027B2 (en) Information processing apparatus and program for executing an electronic data in an execution environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111208

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120117

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4912400

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150127

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250