JP2009521737A - Javascriptプログラムの不安全動作安を検出するため、及び防止するための方法及び装置 - Google Patents
Javascriptプログラムの不安全動作安を検出するため、及び防止するための方法及び装置 Download PDFInfo
- Publication number
- JP2009521737A JP2009521737A JP2008540189A JP2008540189A JP2009521737A JP 2009521737 A JP2009521737 A JP 2009521737A JP 2008540189 A JP2008540189 A JP 2008540189A JP 2008540189 A JP2008540189 A JP 2008540189A JP 2009521737 A JP2009521737 A JP 2009521737A
- Authority
- JP
- Japan
- Prior art keywords
- code
- javascript
- arg
- script program
- window
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
Abstract
スクリプトプログラムの不安全動作を検出するため、及び防止するための方法及び装置が、本明細書で開示される。一実施形態において、その方法は、第1の安全ポリシーに基づくスクリプトプログラムの静的解析を実行して、そのスクリプトプログラムの不安全動作を検出する工程、及びそのスクリプトプログラムが実行された際に、その安全ポリシーに対する違反が生じた場合、そのスクリプトプログラムの実行を防止する工程を含む。
【選択図】 なし
【選択図】 なし
Description
[0001]本特許出願は、2005年11月10日に出願した「A Method and Apparatus for Detecting and Preventing Unsafe Behavior of JavaScript Programs」という名称の対応する特許仮出願第60/735772号、及び2005年11月10日に出願した「A Method and Apparatus for Policy−Guided Transformation of JavaScript Programs to Guarantee Safety」という名称の特許仮出願第60/735513号の優先権を主張し、これらの出願を参照により組み込む。
[0002]本発明は、コンピュータプログラミングの分野に関し、より詳細には、本発明は、プログラムの不安全動作を検出すること、及び防止することに関する。
[0003]Webブラウザセキュリティには、深刻な問題が存在する。多数の攻撃が、クライアント側ブラウザに対して行われて、機微なユーザ情報(パスワード、オンラインID)の保全性を危うくし、クライアントマシンのパフォーマンスを極度に低下させている。これらの攻撃は、しばしば、JavaScriptのような普及しているクライアント側のスクリプト言語に見られる計算機能を濫用し、ブラウザ及びスクリプトインタープリタ(解釈プログラム)の実装エラーを濫用する。セキュリティ状況は、さらに多様な移動体ブラウザ(及び潜在的なセキュリティ上の欠陥)、及び悪意のあるスクリプトがデバイスリソースを濫用する機会を有する携帯電話デバイス上で、潜在的にさらに悪化している。
[0004]一般的で、有害な攻撃のいくつかの例には、以下に詳しく説明されるとおり、クロスサイトスクリプティング、フィッシング、サービス拒否、及びAPI濫用が含まれる。
[0005]XSS(クロスサイトスクリプティング)は、Webベースのアプリケーションにおいてよく見られる最も重大なセキュリティ脆弱性の1つである。そのような脆弱性は、攻撃者が、信頼されるWebサーバによって生成されたWebページに或るスクリプト(例えば、JavaScript)を挿入することを可能にする。ブラウザは、その挿入されたスクリプトを、そのスクリプトがサーバによって提供されたかのように実行する。ブラウザのセキュリティ規制は、Webページの出所に基づくので、そのスクリプトは、セキュリティ規制を回避して、そのWebアプリケーションのドメインと同一の許可のもとでブラウザによって実行される。この状況が、図2に示される。一般に、XSS脆弱性は、利用するのが非常に容易である。XSS脆弱性の利用は、無知なユーザが、電子メール又はインスタントメッセージからのリンクをクリックすること、又は単に、Webフォーラムを読むことから始まる可能性がある。XSS脆弱性を利用して、悪意のある人々が、迷惑な動作(例えば、ブラウザホームページの変更)から、偽情報の提示(例えば、ホスティングHTMLを動的に変更することによる)、アカウント乗っ取り(例えば、クッキーからユーザのログイン及びパスワードを盗むことによる)までに及ぶ様々な攻撃を仕掛けることが可能である。ブラウザの実装上の欠陥(セキュリティホール)の利用と相俟って、攻撃者が、ユーザファイルを読み取ることや、悪意のあるプログラムを実行することなどの、さらに大きな被害をもたらすことが可能である。
[0006]JavaScriptは、DOM(ドキュメントオブジェクトモデル)を介して、又はネットワークアクセスを提供する様々なAPIを介して、いくつかのハンドセットリソース(handset resources)へのアクセスを提供するため、悪意のあるJavaScriptコードが、これらのリソースを濫用する可能性が存在する。対象となるリソースには、以下が含まれる。すなわち、JavaScriptが、DOMの一部分であるクッキーへの書込みアクセスを許されていることから、ディスクスペース、JavaScriptが、そのJavaScriptが出所であるサイトとの接続を開くことができることから、ネットワーク使用(特に、そのような使用は、ユーザの注意を引いているウインドウから生成されるウインドウの内側に隠され、そのため、意図していないネットワーク使用をもたらす可能性がある)、ウインドウサイズ、ウインドウ位置付けなどのユーザインターフェース要素(JavaScriptは、JavaScriptが開くウインドウに関するこれらの属性を、DOMを介して変更する能力を有する)、及び「戻るボタン」などのブラウザ要素の見込まれる機能(悪意のあるJavaScriptは、制御スレッドが、戻るボタンを介して、又は異なるリンクをクリックすることにより、或る特定のページを離れようと試みた際に生じるイベントを再プログラミングすることができる)である。
[0007]フィッシング(別名、スプーフィング)は、社会工学に基づく或る形態の攻撃である。フィッシングは、信頼される相手(例えば、銀行Webサイト)を装って被害者を騙して、機微な情報(例えば、パスワード及びクレジットカード番号)を明かさせる。ますます多くのフィッシング攻撃が行われており、標的は、通常、銀行及びオンライン支払いサービスの顧客である。これらの攻撃によってもたらされる被害は、相当な金銭的損失や身元情報の盗難という深刻なものであることが可能である。
[0008]IEなどのブラウザにおいて、JavaScriptは、clipboardDataという名称のオブジェクトを介して、ユーザのクリップボードへのアクセスを有する。このオブジェクトは、3つのクリップボード活動、すなわち、クリアすること、読み取ること、及び書き込むことのためのAPIを提供する。例えば、以下の単純化なスクリプトが、クリップボードからテキストを読み取り、そのテキストをブラウザにおいて表示する。
document.write(window.clipboardData.getData(’Text’));
document.write(window.clipboardData.getData(’Text’));
[0009]クリップボードが、潜在的に、現在のWebページと、システムの他の部分との間で共有されるリソースの役割をすることが可能であることを見て取ることは、難しくない。これにより、同一の出所のポリシーを回避するためのチャネルがもたらされることが可能である。オブジェクト「ClipboardData」は、異なるドメインを出所とするページの間でデータを転送することを意図していない。残念ながら、上記の一行の単純なスクリプトが、クリップボードデータを取得することに、そのデータが現在のドメインからのページによってあらかじめ設定されていない場合でも成功する。
[0010]JavaScript APIの一部の悪意のある使用は、迷惑な影響をもたらす、又は他の攻撃を仕掛けることを容易にする可能性がある。1つのよくあるそのようなエクスプロイト(セキュリティ上の弱点)が、ポップアップ(及びポップアンダ)の使用である。今日、多くのポップアップブロッカが利用可能である。
[0011]スクリプティング攻撃に対する一部の既存の解決策は、場当たり的であり、かなり限られている。第1に、実装上の抜け穴が、パッチを適用することによってふさがれることが可能であるが、過去15年間のパーソナルコンピューティング経験は、そのような事前対応の動作を頼りにすることができないことを示している。第2に、ポップアップなどの迷惑行為から保護し、フィッシング攻撃を検出するヒューリスティック(発見的教授法)を提供するブラウザプラグインツールが存在する。しかし、これらのツールによって暗黙に使用される安全ポリシーは、ユーザ又は操作者によって拡張可能ではなく、攻撃カテゴリ自体全部ではなく、或る特定の攻撃カテゴリの非常に特殊な事例だけを捕捉する。例えば、ポップアップブロッカは、JavaScriptによって開かれるウインドウの数、又はそれらのウインドウの位置、或いはそのようなウインドウが、意図されないネットワーク通信を実行するかどうかを制限しない。
[0012]スクリプトプログラムの不安全動作を検出するため、及び防止するための方法及び装置が、本明細書で開示される。一実施形態では、方法は、第1の安全ポリシーに基づくスクリプトプログラムの静的解析を実行して、そのスクリプトプログラムの不安全動作を検出する工程、及びそのスクリプトプログラムが実行された際に、その安全ポリシーの違反が生じた場合、そのスクリプトプログラムの実行を防止する工程を含む。
[0013]本発明は、後段で与えられる詳細な説明、及び本発明の様々な実施形態の添付の図面から、より完全に理解されるが、説明及び図面は、本発明をそれらの特定の実施形態に限定するものと解釈されてはならず、単に説明及び理解を目的とする。
[0026]スクリプト(例えば、JavaScript)プログラムによる所与の安全ポリシーに対する違反を検出し、防止する様々な技術が提示される。本明細書で説明される技術は、クロスサイトスクリプティング攻撃、サービス拒否攻撃、及びブラウザ及び/又はJavaScriptインタープリタの実装上の欠陥を悪用する他の攻撃から保護するのに使用されることが可能である。一実施形態では、これらの技術は、静的解析と動的監視の両方を使用して、入ってくるスクリプトをフィルタ処理する。フィルタを通過したスクリプトは、安全ポリシーに関して証明できる形で安全である、又は実行時において安全違反の直前に実行を停止するように計装される。これらの技術の一特徴は、スクリプトセマンティクス(script semantics)が変更されず、その結果、スクリプトのいずれの有用な機能も、誤って変更されないことが確実にされる。
[0027]また、所与の安全ポリシーに基づいて、信頼できないスクリプトの動作を制限する様々な技術も提示される。本明細書で説明される技術は、フィッシング、共有されるリソースの濫用、悪意のあるAPI使用、予期されない動作、サービス拒否攻撃から保護するのに使用されることが可能である。一実施形態では、これらの技術は、ターゲットスクリプトに対してコード書き換えを使用する。潜在的に悪意のあるスクリプトを停止する代わりに、コードが、実行するのが安全であるように変更される。したがって、一実施形態では、もたらされるスクリプトは、実行時エラーをまったく有さないことが保証される。これらの技術の1つの際立った特徴は、スクリプトセマンティクスが、解析中に変更されて、悪意のないスクリプトの早計な終了が防止される(偽陽性が少なくなる)ことである。このことは、静的解析及び動的監視によってポリシーについての違反を許さない前段で説明される技術に対して補完的である。
[0028]一実施形態では、安全特性は、様々な攻撃を範囲に含むことができる拡張可能なポリシー指定言語で表現され、例えば、JavaScriptのようなスクリプティング言語における前後関係において、これらの技術を展開するのに使用されることが可能なアーキテクチャが提示される。一実施形態では、ポリシー言語は、多くの異なる種類の攻撃からの保護のためのフィルタ及びインスツルメンタ(instrumentors)のプログラムを書くために使用される。後段で、以上が、どのように、XSS、フィッシング、DOS、並びに検証されていない入力及び引数から保護するのに役立つかについての例が与えられる。また、以上は、セキュリティパッチ又はウイルス定義が開発されるよりも前に、迅速なパッチ前フィルタを展開するのに役立つことも可能である。
[0029]以下の説明において、本発明のより完全な説明を提供する多数の詳細が示される。しかし、本発明は、これらの特定の詳細なしに実施されることも可能であることが、当業者には明白であろう。その他、よく知られている構造及びデバイスは、本発明を不明瞭にするのを避けるため、詳細にではなく、ブロック図の形態で示される。
[0030]以下の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作のアルゴリズム及び記号表現に関して提示される。これらのアルゴリズム記述及びアルゴリズム表現は、当業者によって、当業者の作業の内容を他の当業者に最も効率的に伝えるのに使用される手段である。アルゴリズムは、本明細書において、さらに一般的にも、所望される結果をもたらす自己矛盾のない一連のステップであると考えられる。これらのステップは、物理量の物理的操作を要求するステップである。通常、ただし、必然的にではなく、これらの量は、格納される、転送される、組み合わされる、比較される、又はそれ以外で操作されることが可能な電気信号又は磁気信号の形態をとる。ときとして、主に一般的な用法の理由で、これらの信号をビット、値、要素、シンボル、文字、項、数などと呼ぶことが好都合であることが分かっている。
[0031]しかし、これら、及び類似する用語のすべては、適切な物理量に関連付けられるべきであり、単に、これらの量に付けられる便利なラベルに過ぎないことに留意されたい。特に明記しない限り、以下の説明から明らかなとおり、この説明の全体で、「処理すること」又は「計算すること」又は「算出すること」又は「決定すること」又は「表示すること」などの用語を利用する説明は、コンピュータシステムのレジスタ内及びメモリ内の物理(電子)量として表されるデータを操作して、コンピュータシステムメモリ内又はコンピュータシステムレジスタ内、或いは他のそのような情報記憶デバイス内、情報伝送デバイス内、又は情報表示デバイス内の物理量として同様に表される他のデータに変換する、コンピュータシステム、又は類似した電子コンピューティングデバイスのアクション及びプロセスを指すものと理解される。
[0032]また、本発明は、本明細書における動作を実行するための装置にも関する。この装置は、要求される目的のために特別に構築されてもよく、或いはコンピュータの中に格納されたコンピュータプログラムによって選択的に活性化される、又は再構成される汎用コンピュータを含んでもよい。そのようなコンピュータプログラムは、フロッピーディスク、光ディスク、CD−ROM、及び光磁気ディスクを含む任意のタイプのディスク、コンピュータシステムバスにそれぞれが結合される、ROM(読み取り専用メモリ)、RAM(ランダムアクセスメモリ)、EPROM、EEPROM、磁気カード又は光カード、或いは電子命令を格納するのに適した任意のタイプの媒体などの、ただし、以上には限定されないコンピュータ可読媒体の中に格納されることが可能である。
[0033]本明細書で提示されるアルゴリズム及び表示は、いずれの特定のコンピュータ又は他の装置とも本来的に関係していない。様々な汎用システムが、本発明の教示によるプログラムで使用されることが可能であり、或いは要求された方法ステップを実行する、より特化された装置を構築することが好都合であると判明する可能性もある。様々なこれらのシステムに関する要求される構造は、以下の説明から現れる。さらに、本発明は、いずれか特定のプログラミング言語に関連して説明されることはない。様々なプログラミング言語を使用して、本明細書で説明される本発明の教示が実施されることが可能であることが理解されよう。
[0034]マシン可読媒体には、マシン(例えば、コンピュータ)によって読み取り可能な形態で情報を格納するため、又は伝送するための任意の機構が含まれる。例えば、マシン可読媒体には、「ROM」(読み取り専用メモリ)、「RAM」(ランダムアクセスメモリ)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気形態、光形態、音響形態、又は他の形態の伝搬される信号(例えば、搬送波、赤外線信号、デジタル信号など)などが含まれる。
静的解析に基づく技術の概要
[0035]クロスサイトスクリプティング、サービス拒否攻撃、APIの濫用を含め、様々な攻撃を防止するのに使用されることが可能であり、一般的な、拡張可能なポリシーベースのフレームワークに合う静的解析技術が、本明細書で説明される。図1は、そのような技術を展開するための一般的なフレームワークを示すブロック図である。図1を参照すると、プログラムコード101(例えば、JavaScriptコード)が、静的アナライザ(静的解析手段)102に入力される。安全ポリシー103に基づき、静的アナライザ102は、コード101を実行することなしにコード101の安全性を静的に判定しようとして、プログラムコード101を検査する。安全でないコードの場合、静的アナライザ102は、このコードを完全に拒否する。それ以外の場合、このプログラムコードは、実行時違反エラーがまったく生じないことを確実にする0又は1つ以上の動的検査でプログラムコード101を計装する動的アノテータ(annotator)104に入力される。一実施形態では、動的アノテータ104は、実行時の結果が静的に判定されることが可能でない位置だけに、これらの検査を配置する。これらの検査は、実行時に違反が間もなく生じる場合、プログラムの実行を停止するのに使用される。一実施形態では、ポリシー言語、及び関連する技術は、多くの異なる種類の攻撃から保護するためのコードフィルタを書くために提供される。
[0035]クロスサイトスクリプティング、サービス拒否攻撃、APIの濫用を含め、様々な攻撃を防止するのに使用されることが可能であり、一般的な、拡張可能なポリシーベースのフレームワークに合う静的解析技術が、本明細書で説明される。図1は、そのような技術を展開するための一般的なフレームワークを示すブロック図である。図1を参照すると、プログラムコード101(例えば、JavaScriptコード)が、静的アナライザ(静的解析手段)102に入力される。安全ポリシー103に基づき、静的アナライザ102は、コード101を実行することなしにコード101の安全性を静的に判定しようとして、プログラムコード101を検査する。安全でないコードの場合、静的アナライザ102は、このコードを完全に拒否する。それ以外の場合、このプログラムコードは、実行時違反エラーがまったく生じないことを確実にする0又は1つ以上の動的検査でプログラムコード101を計装する動的アノテータ(annotator)104に入力される。一実施形態では、動的アノテータ104は、実行時の結果が静的に判定されることが可能でない位置だけに、これらの検査を配置する。これらの検査は、実行時に違反が間もなく生じる場合、プログラムの実行を停止するのに使用される。一実施形態では、ポリシー言語、及び関連する技術は、多くの異なる種類の攻撃から保護するためのコードフィルタを書くために提供される。
クロスサイトスクリプティング攻撃からの保護
[0036]一実施形態では、クライアント側ソリューションが提供される。このアプローチは、いずれのスクリプトに悪意があるかを識別し、それらの悪意のあるスクリプトをフィルタ処理することではなく、ユーザセキュリティに影響を及ぼすクリティカルな(決定的な)動作に的を絞ることによる、クリティカルなユーザリソースの保護に基づく。そのようにする際に、このアプローチは、ユーザの自由裁量のために警報を発する。
[0036]一実施形態では、クライアント側ソリューションが提供される。このアプローチは、いずれのスクリプトに悪意があるかを識別し、それらの悪意のあるスクリプトをフィルタ処理することではなく、ユーザセキュリティに影響を及ぼすクリティカルな(決定的な)動作に的を絞ることによる、クリティカルなユーザリソースの保護に基づく。そのようにする際に、このアプローチは、ユーザの自由裁量のために警報を発する。
[0037]本明細書では、すべてのクリティカルなリソースは、一様に扱われ、secret(解決の鍵)と呼ばれる。このsecretは、例えば、以下のエンティティ(構成要素)のいずれかであることが可能である。すなわち、クッキーファイル、パスワードフィールド(又は「password」という型を有するテキストボックス)、ブラウザ設定、初期化されていないクリップボードからのデータ、及び履歴エントリである。本明細書では、URLに対するすべてのネットワーク要求は、load(URL)として一様に扱われる。loadは、例えば、以下のエンティティのいずれかであることが可能である。すなわち、現在のページを読み込むため(例えば、location.href=URL)、フォームのため(例えば、action=URL)、イメージのため(例えば、img src=URL)、フレームのため(例えば、iframe src=URL)、及びレイヤオブジェクトのため、つまり、load(URL,width)である。
[0038]ユーザリソースの前述の一様な扱いに基づき、図3は、XSSと関係のあるJavaScript及びDOM APIの本質的な要素の抽象化を示す。ドメイン名D、URL U、及び値Vはすべて、文字列(ストリング)である。ブール(ブーリアン)bは、0又は1である。環境Ψが、変数xを型Tに位置付け(マップ)する。型Tは、ドメイン名のリストである。式は、secret、部分式に対する演算op、値V、又は変数Xである。コマンドは、割り当て、条件、ネットワーク要求、又は終了である。
フローベースの計装
[0039]一実施形態では、クリティカルなユーザリソースが、静的アナライザによって、それらのリソースの所有者(同一の出所のポリシーによって使用されるドメイン名)でタグが付けられ、それらのリソースの情報フローが、静的アナライザによって解析され、実行時検査(警報)が、動的アノテータ(注釈付け手段)によって、クリティカルな情報が、現在のHTMLの出所とは異なるドメインに間もなく送信されるプログラムポイントに挿入される。図4は、静的解析に基づく、開示される汎用の技術の特化された事例であるフローベースの計装のためのプロセスの一実施形態のブロック図である。図4を参照すると、JavaScriptコード401が、入力されて、フローアナライザ402によって受け取られ、アナライザ402は、情報フローポリシー403に従って、そのコードの様々なリソース(例えば、URL、クッキーなど)にタグを付ける。結果のタグ付けされたコードは、動的アノテータ404に入力されて、フローアナライザ402によって特定されたプログラムポイントに検査が挿入される。一実施形態では、もたらされるコードは、違反が間もなく生じる場合、これらの挿入された検査が、プログラム実行を停止するため、実行時に常に安全に実行される。
[0039]一実施形態では、クリティカルなユーザリソースが、静的アナライザによって、それらのリソースの所有者(同一の出所のポリシーによって使用されるドメイン名)でタグが付けられ、それらのリソースの情報フローが、静的アナライザによって解析され、実行時検査(警報)が、動的アノテータ(注釈付け手段)によって、クリティカルな情報が、現在のHTMLの出所とは異なるドメインに間もなく送信されるプログラムポイントに挿入される。図4は、静的解析に基づく、開示される汎用の技術の特化された事例であるフローベースの計装のためのプロセスの一実施形態のブロック図である。図4を参照すると、JavaScriptコード401が、入力されて、フローアナライザ402によって受け取られ、アナライザ402は、情報フローポリシー403に従って、そのコードの様々なリソース(例えば、URL、クッキーなど)にタグを付ける。結果のタグ付けされたコードは、動的アノテータ404に入力されて、フローアナライザ402によって特定されたプログラムポイントに検査が挿入される。一実施形態では、もたらされるコードは、違反が間もなく生じる場合、これらの挿入された検査が、プログラム実行を停止するため、実行時に常に安全に実行される。
[0040]図5は、どのようにタグに注釈が付けられ、どのように検査が挿入されるかを明確に表現するJavaScript計装の例である。このJavaScript計装は、静的環境Ψの助けを借りて実行される。この環境は、式のsecretを決定するのに役立つ。式は、以下のいずれか1つが成立する場合、現在のドメインのsecret情報を含む。すなわち、その式が、secretである。その式が、引数として部分式を含む。その式が、現在のドメイン名でタグが付けられている変数である。
[0041]計装システムは、プログラムコードを検査し、必要な場合に、そのプログラムコードに対する変更を実行する。割り当てに関して、システムは、割り当てのターゲットに対応するsecretでタグが付けられるように、環境を更新する。URLを読み込むことに関して、システムは、そのURLが、そのURLに書かれたとおりのターゲットドメインに属さないsecret情報を含む場合、ユーザの自由裁量のために警報を挿入する。システムは、計装中、他のコマンドは変更せず、これらの規則は、自明であり、省かれる。
緩い計装
[0042]代替の実施形態では、いくつかの緩いアプローチが、より容易に展開されることが可能であるが(より少ない規則)、正確さが劣る(潜在的に、より多くのユーザ対話)。以下の代替の実施形態の組合せが、使用されることが可能である。
[0042]代替の実施形態では、いくつかの緩いアプローチが、より容易に展開されることが可能であるが(より少ない規則)、正確さが劣る(潜在的に、より多くのユーザ対話)。以下の代替の実施形態の組合せが、使用されることが可能である。
[0043]1つの代替の実施形態では、secretを読み取った後のload(URL)を防止するのに、以下の計装が実行される。プログラムの開始時に、グローバルフラグ変数が、ユーザリソースのために使用される。secretエンティティが読み取られると、このフラグが、設定される。これらのリソースを漏らすことが可能なAPI呼び出しの前に、コードが挿入されて、このフラグが設定されているかどうかを確認する。APIは、このフラグが設定されていない場合、通常どおりに進む。設定されている場合、挿入されたコードは、ユーザに警報を発し、先に進むかどうかを尋ねる。この計装を誘導する規則は、以下のとおり与えられる。
[0044]別の代替の実施形態において、load(URL)に埋め込まれたsecretを防止し、その一方で、loadの引数における変数の使用を許さないようにするのに、以下の計装が、実行される。具体的には、URLが、loadの引数として解析されて、そのURLが、secret又は変数を含むかどうかを判定する検査が行われる。
[0045]一実施形態では、現在のHTMLの出所とは異なるドメインからのスクリプトへのポインタを許さないようにするのに、以下の計装が、実行される。URLを読み込む際、そのURLのドメイン、及びそのURLのターゲットが、検査される。そのドメインが、現在のドメインではなく、ターゲットが、JavaScriptファイルである場合、警報が、挿入されて、ユーザは、先に進むかどうかを尋ねられる。それ以外の場合、読み込みは、通常どおり進む。
[0046]一実施形態では、計装は、他の補足的な技術と一緒に適用されて、偽陽性の数を減らすことが可能である。例えば、ホワイトリスト(ブラックリスト)が、知られている安全な(脆弱な)サイトを許す(ブロックする)のに役立つ。
サービス拒否攻撃から保護すること
[0047]一実施形態では、サービス拒否攻撃を検出し、防止するため、リソース濫用と関係するAPI呼び出しに制限が課せられる。そのような制限を表現するように定義された指定言語が、以下に与えられる。
[0047]一実施形態では、サービス拒否攻撃を検出し、防止するため、リソース濫用と関係するAPI呼び出しに制限が課せられる。そのような制限を表現するように定義された指定言語が、以下に与えられる。
[0048] Policy := (FunctionSpec,InstrumentationSpec)
FunctionSpec := (FunctionName, Arglist)
Arglist := Arg *
Arg := Var | Const
InstrumentationSpec := Instrumentation *
Instrumentation := Pred(Arg) | StaticPred(Arg)
Pred(Arg) := Compare(Arg, Arg) |
Pred(Arg) AND Pred(Arg) |
Pred(Arg) OR Pred(Arg) |
NOT Pred(Arg) |
Fun(Arg)
StaticPred(Arg) := Compare(Arg, Const) |
StaticPred(Arg) AND StaticPred(Arg) |
StaticPred(Arg) OR StaticPred(Arg) |
NOT StaticPred(Arg)
Fun(Arg) := Arg IN Arg*
Compare(x, y) := x = y | x < y | x > y |
Compare (x, y) AND Compare (x, y)
FunctionSpec := (FunctionName, Arglist)
Arglist := Arg *
Arg := Var | Const
InstrumentationSpec := Instrumentation *
Instrumentation := Pred(Arg) | StaticPred(Arg)
Pred(Arg) := Compare(Arg, Arg) |
Pred(Arg) AND Pred(Arg) |
Pred(Arg) OR Pred(Arg) |
NOT Pred(Arg) |
Fun(Arg)
StaticPred(Arg) := Compare(Arg, Const) |
StaticPred(Arg) AND StaticPred(Arg) |
StaticPred(Arg) OR StaticPred(Arg) |
NOT StaticPred(Arg)
Fun(Arg) := Arg IN Arg*
Compare(x, y) := x = y | x < y | x > y |
Compare (x, y) AND Compare (x, y)
[0049]安全ポリシーは、前述の言語で表現される。所与のJavaScriptコードが、ポリシーにおける関数呼び出しと合致する場合はいつでも、対応する動的検査が、その呼び出しの直前に挿入される。図6は、計装を実行するシステムのブロック図である。図6を参照すると、プログラムコード601(例えば、JavaScriptコード)が、安全フィルタを含むポリシー603の中で指定された関数呼び出しと合致する動的計装ユニット602に入力されて、ユニット602よって受け取られる。合致が見つかった場合、動的計装ユニット602は、その関数呼び出しより前に動的検査を追加する。終了すると、動的計装ユニット602は、安全に実行される形態で、そのコードを出力する。
[0050]一実施形態では、挿入された動的計装のさらなる静的最適化が、実行される。このことは、前述の言語においてStaticPred計装を介して表現される。所与のJavaScriptコードとの安全ポリシーの合致が、計装の一環としていくらかのStaticPredを含む場合、それらの述語(predicates)が成立するか否かについての静的判定が行われる。これにより、動的計装のいくつかが排除されることが可能であり、その結果、最終的なコードの効率が高められるとともに、場合により、StaticPredの1つに障害が生じる場合に、コード全体の実行が先回りして阻止される。図7は、この計装を実行するシステムのブロック図である。図7を参照すると、プログラムコード701(例えば、JavaScriptコード)が、安全フィルタを含むポリシー703の中で指定された関数呼び出しと合致する動的計装ユニット702に入力されて、ユニット702よって受け取られる。合致が見つかった場合、動的計装ユニット702は、その関数呼び出しより前に動的検査を追加する。終了すると、動的計装ユニット702は、計装されたコード704を出力する。その後、計装されたコード704は、StaticPred述語が成立するか否かを判定する静的最適化ユニット705に入力される。静的に成立する述語に関して、動的計装ユニット702によって追加された対応する動的検査が、計装されたコード704から除去される。その後、結果のコードが出力される。
コード書き換えに基づく技術の概要
[0051]フィッシング、クリップボードなどの共有リソースの濫用、悪意のあるAPI使用、予期されない動作(behavior)、及びサービス拒否攻撃を含め、様々な攻撃に対抗するのに使用されることが可能なコード書き換え技術が、以下に示される。図8は、これらの技術の一実施形態の一般的なフレームワークのブロック図である。図8を参照すると、プログラムコード801(例えば、JavaScriptコード)が、コード書き換えユニット802によって受け取られる。安全な変換を指定する安全ポリシー803に基づき、コード書き換えユニット802は、プログラムコード801の中の潜在的に悪意のある(JavaScript)コードを、同一の機能を実行するコードの安全なバージョンで置き換える。一実施形態では、JavaScriptコードは、安全ポリシーによって指定される変換が、安全を保証するようにコードのセマンティクスを注意深く変更するので、実行時エラーなしに、常に安全に実行されることが可能である。
[0051]フィッシング、クリップボードなどの共有リソースの濫用、悪意のあるAPI使用、予期されない動作(behavior)、及びサービス拒否攻撃を含め、様々な攻撃に対抗するのに使用されることが可能なコード書き換え技術が、以下に示される。図8は、これらの技術の一実施形態の一般的なフレームワークのブロック図である。図8を参照すると、プログラムコード801(例えば、JavaScriptコード)が、コード書き換えユニット802によって受け取られる。安全な変換を指定する安全ポリシー803に基づき、コード書き換えユニット802は、プログラムコード801の中の潜在的に悪意のある(JavaScript)コードを、同一の機能を実行するコードの安全なバージョンで置き換える。一実施形態では、JavaScriptコードは、安全ポリシーによって指定される変換が、安全を保証するようにコードのセマンティクスを注意深く変更するので、実行時エラーなしに、常に安全に実行されることが可能である。
[0052]一実施形態では、これらの技術には、詳細が以下に与えられる、多くの異なる種類の攻撃から保護するためのコードリライタ(code rewriters)を指定するためのポリシー言語、及び関連する技術が含まれる。
フィッシングから保護すること
[0053]フィッシングから保護するのに、一実施形態では、ユーザに、Webサイトの実際の情報が提示され、そのため、攻撃者が、何者かになりすますことが、より困難になる。
[0053]フィッシングから保護するのに、一実施形態では、ユーザに、Webサイトの実際の情報が提示され、そのため、攻撃者が、何者かになりすますことが、より困難になる。
Webページの出所
[0054]Webページの出所に関して、ブラウザのロケーションバーは、現在のWebページが読み込まれたURLを表示する。そのURLのコンテンツは、JavaScriptの制御から外れている。しかし、JavaScriptは、新たなウインドウ(例えば、ポップアップ)を開く際、ロケーションバーを完全に隠す能力を有する。このことは、現在のWebページの出所を隠すためにフィッシング攻撃によって、しばしば、使用される。ブラウザの関係するナビゲーションコントロールは、ステータスバーである。JavaScriptは、このステータスバーのコンテンツを恣意的なテキストで更新することができる。また、JavaScriptは、ステータスバーを表示しないことを選択することもできる。
[0054]Webページの出所に関して、ブラウザのロケーションバーは、現在のWebページが読み込まれたURLを表示する。そのURLのコンテンツは、JavaScriptの制御から外れている。しかし、JavaScriptは、新たなウインドウ(例えば、ポップアップ)を開く際、ロケーションバーを完全に隠す能力を有する。このことは、現在のWebページの出所を隠すためにフィッシング攻撃によって、しばしば、使用される。ブラウザの関係するナビゲーションコントロールは、ステータスバーである。JavaScriptは、このステータスバーのコンテンツを恣意的なテキストで更新することができる。また、JavaScriptは、ステータスバーを表示しないことを選択することもできる。
[0055]一実施形態では、計装ユニットは、ロケーションバー及びステータスバーが、ブラウザユーザによってカスタマイズ可能なポリシーに基づいて適切に表示されるように、Webページのコンテンツを計装する。これは、新たなウインドウを開くための、そのWebページのAPI使用を検査すること、及び有用なナビゲーションコントロールを隠すコードを書き換えることによって達せられることが可能である。
[0056]以下は、新たなウインドウの作成のための例示的な計装を示す。この実施形態では、ロケーションフラグ及びステータスフラグを偽、いいえ、又は0に設定すること、或いは単にロケーションフラグ及びステータスフラグを除外することを含め、ロケーションフラグ及びステータスフラグを偽に設定する方法が、検査される。
open(URL, windowName, location=false, status=false)
⇒ open(URL,windowName, location=true, status=true)
open(URL, windowName, location=false, status=false)
⇒ open(URL,windowName, location=true, status=true)
[0057]スクリプトが新たなウインドウを開く他の方法(API)が、存在する。例えば、クロムレスポップアップウインドウ(chromeless pop-up windows)が、特殊なAPI createPopupを使用して作成されることが可能である。一実施形態では、計装ユニットは、ユーザのポリシーに基づいてコードを計装する。このポリシーが、クロムレスポップアップを許すことである場合(このオプションを選択することは、ユーザが、クロムレスポップアップウインドウ内のフィッシング攻撃に、例えば、これらのウインドウ内のリンクを決してクリックしないことにより、引っ掛からないだけ十分に自らに知識と経験があると信じていることを示唆する)、このAPIに対する呼び出しは、そのままにされる。ポリシーが、クロムレスポップアップを許さないことである場合、計装ユニットは、このAPIに対する呼び出しを基本的なオープンAPIを使用してプログラムを書く。
ステータスバーを更新すること
[0058]これらの技術の一実施形態では、ステータスバーを更新することに関して、入ってくるコードは、そのページの出所が、ステータスバー内に表示されるように書き換えられる。単純には、このことは、以下のスクリプトをすべてのウインドウ内に挿入することによって行われることが可能である。すなわち、
window.status=location.href.
[0058]これらの技術の一実施形態では、ステータスバーを更新することに関して、入ってくるコードは、そのページの出所が、ステータスバー内に表示されるように書き換えられる。単純には、このことは、以下のスクリプトをすべてのウインドウ内に挿入することによって行われることが可能である。すなわち、
window.status=location.href.
[0059]実際には、Webページは、ステータスバーを利用して、様々な情報を表示する。一実施形態では、コード計装ユニットは、所与のテキスト情報と、ページの出所との連結を表示するように、ステータスバーへのアクセスを計装する。
window.status="Welcome to DoCoMo USA Labs!"
⇒window.status=location.href + " | " + "Welcome to DoCoMo USALabs!"
window.status="Welcome to DoCoMo USA Labs!"
⇒window.status=location.href + " | " + "Welcome to DoCoMo USALabs!"
[0060]一実施形態では、HTMLの動的フィーチャ(dynamicfeatures)を使用して、ページの出所と、所与のテキスト情報とが交互に表示される。そのようにすることの例は、タイマAPIなどの高度なJavaScriptフィーチャの使用を要求する。一実施形態では、出所(ドメイン名)の他に、現在のWebページについてのさらなる情報が、明らかにされる。いくつかの例には、その出所が、どこでホストされているか、及びその出所が、いつ作成されたかが含まれる。また、そのような情報を、ブラウザウインドウの別の領域内、又は「バルーン(balloon)」内で表示することも可能である。
[0061]要約として、プログラム(例えば、JavaScript)コードを計装することにより、そのWebページのホスティングドメインについての情報が、明確に表示される。このことは、ユーザが、詐欺的なURLを評価するのに役立つ(例えば、curious.comが、CitibankのWebサイトである可能性は低く、或いはBank of Americaが、日本においてホストされている可能性は低い)。
欺きのURL
[0062]攻撃者は、URLにおいて特殊な文字を使用して、ユーザを欺く。そのWebページのコンテンツを検査することにより、そのような疑わしいURLを識別することができる。
[0062]攻撃者は、URLにおいて特殊な文字を使用して、ユーザを欺く。そのWebページのコンテンツを検査することにより、そのような疑わしいURLを識別することができる。
[0063]シンボル@が、ときとして、URLにおいて使用される。元々の意図は、このシンボルの前にユーザ名フィールド及び/又はパスワードフィールドを含めることを許すことである。URLの実際の目的は以下のドメイン名である。例えば、http://docomo.com@curious.comは、docomo.comではなく、curious.comを参照する。そのようなURLは、ユーザを騙して、そのページの偽の出所を信じ込ませる可能性がある。そのようなURLを識別すると、前述の技術を使用して、実際のドメイン名をユーザに提示することが可能である。
[0064]同様に、http://www.docomo.com.curious.com/も、欺いている。さらに、パーセンテージ記号(percentage sign)の後に続く数字の使用(エスケープシーケンス、escape sequences)は、通常、欺くこと以外、実際的な用途をまったく有さない。一実施形態では、これらすべての疑わしいURLは、ユーザに提示される前に適切に解析され、解析(パース)される。
[0065]前述した技術を補完して一般的な既存の方法が、使用されることが可能である。一方で、知られているフィッシングドメインのブラックリスト知識ベースを保持することができる。他方で、大きい金融組織のドメイン名のホワイトリストを保持し、パターンマッチングを使用して、欺きのURL(例えば、DOCOMO.COM対D0C0M0.COM)を検索することができる。こうすることは、攻撃者が、誰かがその攻撃に引っ掛かる可能性が高いように、多数のユーザを有する組織を、通常、標的にするため、有効である可能性が高い。
共有リソースの濫用から保護すること
[0066]IEなどのブラウザにおいて、JavaScriptは、clipboardDataという名称のオブジェクトを介して、ユーザのクリップボードへのアクセスを有する。このオブジェクトは、3つのクリップボード活動、すなわちクリアすること、読み取ること、及び書き込むことのためのAPIを提供する。例えば以下の単純なスクリプトが、クリップボードからテキストを読み取り、そのテキストをブラウザにおいて表示する。
document.write(window.clipboardData.getData(’Text’));
[0066]IEなどのブラウザにおいて、JavaScriptは、clipboardDataという名称のオブジェクトを介して、ユーザのクリップボードへのアクセスを有する。このオブジェクトは、3つのクリップボード活動、すなわちクリアすること、読み取ること、及び書き込むことのためのAPIを提供する。例えば以下の単純なスクリプトが、クリップボードからテキストを読み取り、そのテキストをブラウザにおいて表示する。
document.write(window.clipboardData.getData(’Text’));
[0067]クリップボードが、潜在的に、現在のWebページと、システムの他の部分との間で共有されるリソースの役割をすることが可能であることを見て取ることは、難しくない。これにより、同一の出所のポリシーを回避するためのチャネルがもたらされることが可能である。オブジェクト、ClipboardDataは、異なるドメインを出所とするページの間でデータを転送することを意図していない。残念ながら、上記の一行の単純なスクリプトが、クリップボードデータを取得することに、そのデータが現在のドメインからのページによってあらかじめ設定されていない場合でも、成功する。
[0068]前述したクリップボードの例は、このカテゴリの攻撃に関する標準的な例として本明細書で使用される。一実施形態では、Webページのいずれかの部分が、クリップボードを読み取ろうと試みる場合、そのページが読み込まれる際に、クリップボードデータをクリアすることが強制される。一実施形態では、そうすることは、Webページの先頭に以下のスクリプトを挿入することによって行われる。クリップボード読み取りがページ内で行われるかどうかを判定する単純な静的解析が、必要とされる。
document.write(window.clipboardData.clearData(’Text’,’URL’,’File’,’HTML’,’Image’))
document.write(window.clipboardData.clearData(’Text’,’URL’,’File’,’HTML’,’Image’))
[0069]一般に、この技術は、現在のWebページと、システムの他の部分との間の潜在的に共有される任意のリソースに適用されることが可能である。
悪意のあるAPI使用から保護すること
[0070]一実施形態では、既存のブラウザの限られた制限が、カスタマイズされたポリシーによって許される方法で、いくつかのAPI呼び出しを書き換えることによって強化される。一実施形態では、関係のあるウインドウAPI呼び出しに対する位置引数及びサイズ引数は、それらのウインドウが予期される範囲内に入るように変更される。
window.moveto(x,y) =>
window.moveto(x % screen.availWidth, y %
screen.availHeight)
window.resizeTo(x,y) =>
window.resizeTo(((x>screen.availWidth) ?
screen.availWidth : x),
((y>screen.availHeight) ?
screen.availHeight : y))
[0070]一実施形態では、既存のブラウザの限られた制限が、カスタマイズされたポリシーによって許される方法で、いくつかのAPI呼び出しを書き換えることによって強化される。一実施形態では、関係のあるウインドウAPI呼び出しに対する位置引数及びサイズ引数は、それらのウインドウが予期される範囲内に入るように変更される。
window.moveto(x,y) =>
window.moveto(x % screen.availWidth, y %
screen.availHeight)
window.resizeTo(x,y) =>
window.resizeTo(((x>screen.availWidth) ?
screen.availWidth : x),
((y>screen.availHeight) ?
screen.availHeight : y))
[0071]正しい計装が実行履歴についての情報を要求するため、一部のAPI呼び出しは、このように直接的に計装されることができない。API「moveBy(deltaX,deltaY)及びresizeBy(deltaX,deltaY)」は、2つのそのような例であり、これらのAPIは、絶対値によってではなく、オフセット(offsets)によってウインドウの位置及びサイズを変更する。この事例では、計装はより高度であり、計装ユニットはウインドウについての情報をまず獲得し、次に、ターゲット引数を計算し、それらの呼び出しを異なる呼び出しで置き換える。このことが、以下に例示される。
window.moveBy(dx,dy) =>
window.moveto((window.screenX+dx)% screen.availWidth,
(window.screenX+dx) % screen.availWidth)
window.resizeBy(dx,dy) =>
window.resizeTo(((window.outerWidth+dx>
screen.availWidth) ?
screen.availWidth :
(window.outerWidth+dx)),
((window.outerHeight+dy >
screen.availHeight) ?
screen.availHeight :
(window.outerHeight+dy)))
これらの特定の書き換え規則は、実際に攻撃のためのしばしば、不当に利用される手段である、いくつかの「乱暴な(wild)」ウインドウを防止する。例えば、目に見えないウインドウ(境界外の、又は背景の)は、Webサーバにひそかに接続することが可能である。他の攻撃と組み合わさって、このウインドウは、貴方のシステムにキー操作を記録するためのコード(keystroke-logging code)をダウンロードする、或いはリモートPCにファイル又はパスワードをアップロードすることが可能である。匿名のプロキシサイトの使用とともに、被害者は、そのリモートコンピュータのロケーションをたどることさえできない。
window.moveBy(dx,dy) =>
window.moveto((window.screenX+dx)% screen.availWidth,
(window.screenX+dx) % screen.availWidth)
window.resizeBy(dx,dy) =>
window.resizeTo(((window.outerWidth+dx>
screen.availWidth) ?
screen.availWidth :
(window.outerWidth+dx)),
((window.outerHeight+dy >
screen.availHeight) ?
screen.availHeight :
(window.outerHeight+dy)))
これらの特定の書き換え規則は、実際に攻撃のためのしばしば、不当に利用される手段である、いくつかの「乱暴な(wild)」ウインドウを防止する。例えば、目に見えないウインドウ(境界外の、又は背景の)は、Webサーバにひそかに接続することが可能である。他の攻撃と組み合わさって、このウインドウは、貴方のシステムにキー操作を記録するためのコード(keystroke-logging code)をダウンロードする、或いはリモートPCにファイル又はパスワードをアップロードすることが可能である。匿名のプロキシサイトの使用とともに、被害者は、そのリモートコンピュータのロケーションをたどることさえできない。
予期されない振舞いからの保護
[0072]JavaScriptは、事件(events)が起きた際に、情報のデータ又はプロンプトの有用な処理のために、様々なイベントハンドラ(事件処理部)を作成することが可能である。例えば、Webページは、ブラウザの現在のコンテンツをアンロードする前に、ユーザの入力を保存するか、又は破棄するかについて、ユーザに確認することが可能である。このことは、ユーザがフォームデータをサブミットすること、又は保存することなしに、ウインドウを誤って閉じる場合に役立つ。悪意のある人々によって利用された場合、同一の能力が、ユーザによって容易に閉じられることが可能でない「しつこい(persistent)」ウインドウなどの、迷惑な動作を展開するのに使用されることが可能である。以下は、onunloadイベントハンドラを利用して、現在のウインドウが閉じられる直前に新たなウインドウを再生成する単純な攻撃である。
<html>
<head>
<title>PersistentWindow</title>
<scripttype="text/javascript">
function respawn() {
window.open(URL)
}
</script>
</head>
<body onunload="respawn()">
Content of the webpage loaded from URL.
</body>
</html>
[0072]JavaScriptは、事件(events)が起きた際に、情報のデータ又はプロンプトの有用な処理のために、様々なイベントハンドラ(事件処理部)を作成することが可能である。例えば、Webページは、ブラウザの現在のコンテンツをアンロードする前に、ユーザの入力を保存するか、又は破棄するかについて、ユーザに確認することが可能である。このことは、ユーザがフォームデータをサブミットすること、又は保存することなしに、ウインドウを誤って閉じる場合に役立つ。悪意のある人々によって利用された場合、同一の能力が、ユーザによって容易に閉じられることが可能でない「しつこい(persistent)」ウインドウなどの、迷惑な動作を展開するのに使用されることが可能である。以下は、onunloadイベントハンドラを利用して、現在のウインドウが閉じられる直前に新たなウインドウを再生成する単純な攻撃である。
<html>
<head>
<title>PersistentWindow</title>
<scripttype="text/javascript">
function respawn() {
window.open(URL)
}
</script>
</head>
<body onunload="respawn()">
Content of the webpage loaded from URL.
</body>
</html>
[0073]悪意のあるハンドラスクリプトのセマンティクスと、ハンドラの意図される用途との間の相違に注目されたい。一実施形態では、クライアントは、アンロードハンドラ内にある場合、API window.open()に対する呼び出しを無視することにより、この攻撃から保護される。何らかの静的解析を使用して、ハンドラのコードが検査され、つまり、open()API呼び出しは、ハンドラの最高レベルコードの中に直接に存在しないことが可能であり、別個に定義された関数の中に密閉されることも可能である。
[0074]一般に、他の多数のイベントハンドラが、同様の方法で利用されることが可能である。より具体的には、ウインドウオブジェクトに関して、一実施形態では、
・ ハンドラ「onbeforeunload」及び「onload」内から新たなウインドウを開く、
・ ハンドラ「onmove」、「onresize」、「onresizeend」、及び「onresizestart」内からウインドウを移動し、サイズ変更する、
・ ハンドラ「onblur」、「onbeforedeactivate」、「ondeactivate」、「onfocus」、及び「onactivate」内からフォーカスを変更する
API呼び出しは、無視される
・ ハンドラ「onbeforeunload」及び「onload」内から新たなウインドウを開く、
・ ハンドラ「onmove」、「onresize」、「onresizeend」、及び「onresizestart」内からウインドウを移動し、サイズ変更する、
・ ハンドラ「onblur」、「onbeforedeactivate」、「ondeactivate」、「onfocus」、及び「onactivate」内からフォーカスを変更する
API呼び出しは、無視される
[0075]この技術は、例えば、「document」及び「form」などの他のブラウザオブジェクトにも適用可能であることに留意されたい。
サービス拒否攻撃から保護すること
[0076]静的解析に基づくサービス拒否攻撃からの保護については、前段で説明された。以下に、コード書き換えに基づくサービス拒否攻撃からの別の保護について説明する。
[0076]静的解析に基づくサービス拒否攻撃からの保護については、前段で説明された。以下に、コード書き換えに基づくサービス拒否攻撃からの別の保護について説明する。
[0077]サービス拒否攻撃を抑制するために、一実施形態では、そのようなリソース濫用と関係があるAPI呼び出しに関する安全動作が提供される。以下に、そのような安全動作を表現することが可能な指定言語が、定義される。
[0078]安全ポリシーが、以下の言語で表現される。
Policy := (FunctionSpec, SafeFunctionSpec)
FunctionSpec := (FunctionName, Arglist)
Arglist := Arg *
Arg := Var | Const
SafeFunctionSpec := (FunctionName,SafeArgList)
SafeArgList := SafeArg *
SafeArg := IF Safe(Arg) THEN Arg ELSEMakeSafe(Arg)
Safe(Arg) := Pred(Arg) | StaticPred(Arg)
Pred(Arg) := Compare(Arg, Arg) |
Pred(Arg) AND Pred(Arg) |
Pred(Arg) OR Pred(Arg) |
NOT Pred(Arg) |
Fun(Arg)
StaticPred(Arg) := Compare(Arg, Const) |
StaticPred(Arg) AND StaticPred(Arg) |
StaticPred(Arg) OR StaticPred(Arg) |
NOT StaticPred(Arg)
Fun(Arg) := Arg IN Arg*
Compare(x, y) := x = y | x < y | x >y |
Compare (x, y) AND Compare (x, y)
Policy := (FunctionSpec, SafeFunctionSpec)
FunctionSpec := (FunctionName, Arglist)
Arglist := Arg *
Arg := Var | Const
SafeFunctionSpec := (FunctionName,SafeArgList)
SafeArgList := SafeArg *
SafeArg := IF Safe(Arg) THEN Arg ELSEMakeSafe(Arg)
Safe(Arg) := Pred(Arg) | StaticPred(Arg)
Pred(Arg) := Compare(Arg, Arg) |
Pred(Arg) AND Pred(Arg) |
Pred(Arg) OR Pred(Arg) |
NOT Pred(Arg) |
Fun(Arg)
StaticPred(Arg) := Compare(Arg, Const) |
StaticPred(Arg) AND StaticPred(Arg) |
StaticPred(Arg) OR StaticPred(Arg) |
NOT StaticPred(Arg)
Fun(Arg) := Arg IN Arg*
Compare(x, y) := x = y | x < y | x >y |
Compare (x, y) AND Compare (x, y)
[0079]所与のJavaScriptコードが、ポリシーの中の関数呼び出しと合致する場合はいつでも、対応する呼び出しが、安全なバージョンで置き換えられる。図9は、書き換えを実行するシステムの一実施形態のブロック図である。図9を参照すると、プログラムコード901(例えば、JavaScriptコード)が、濫用可能なAPIに対する安全な変換を含むポリシー903の中で指定された関数呼び出しと合致するコードリライタ902に入力され、リライタ902によって受け取られる。合致が見つかった場合、コード書き換えユニット902は、その関数呼び出しを、ポリシー1003によって指定された安全なバージョンで置き換える。終了すると、動的計装ユニット902は、安全に実行される濫用可能なAPIの安全なバージョンを有するコード904を出力する。
[0080]前述の指定システムにおける基本的な考えは、関数呼び出しが、その呼び出しの安全なバージョンとペアにされることである。安全なバージョンにおいて、一実施形態では、SafeArg構文によって表現されるガードが、各引数の前に置かれる。このガードは、一般的に言って、引数に対する述語であり、関数呼び出しを、元の関数の本文の直前の対応するコードで書き換えることによって実施される。
[0081]一実施形態では、書き換えられたコードのさらなる静的最適化が実行される。このことは、この言語におけるStaticPredを介して表現される。所与のJavaScriptコードとの安全ポリシー合致が、書き換えの一環としてStaticPredを含む場合、これらの述語が成立するか否かを静的に判定することが、ときとして、可能である。このことは、書き換えのいくつかを最適化する可能性をもたらし、その結果、最終的なコードの効率を高めるとともに、場合により、StaticPredに障害が生じる場合に、コード全体の実行を先回りして阻止する。図10は、計装を実行するシステムの代替の実施形態のブロック図である。図10を参照すると、プログラムコード1001(例えば、JavaScriptコード)が、濫用可能なAPIに対する安全な変換を含むポリシー1003の中で指定された関数呼び出しと合致するコードリライタ1002に入力され、リライタ1002によって受け取られる。合致が見つかった場合、コードリライタ1002は、その関数呼び出しを、ポリシー1003によって指定された安全なバージョンで置き換える。終了すると、コードリライタ1002は、濫用可能なAPIの安全なバージョンを有するコード1004を出力する。静的オプティマイザ(最適化手段)1005が、コード1004の静的な最適化を実行し、その後、コード1004は、安全に実行される。
状態追跡
[0082]一実施形態では、或る特定のAPIが呼び出される回数に限度を課すことによってサービス拒否攻撃から保護するため、このカウントを追跡するグローバル変数が使用される。これを行うため、一実施形態では、前述の安全変換言語を使用して、問題のAPIが、元のAPIを包むだけでなく、元のAPIが呼び出されるたびに内部変数をインクリメントする安全なバージョンで置き換えられる。このため、この技術を使用して、例えば、JavaScriptによって生成されるウインドウの数が制限されることが可能である。
[0082]一実施形態では、或る特定のAPIが呼び出される回数に限度を課すことによってサービス拒否攻撃から保護するため、このカウントを追跡するグローバル変数が使用される。これを行うため、一実施形態では、前述の安全変換言語を使用して、問題のAPIが、元のAPIを包むだけでなく、元のAPIが呼び出されるたびに内部変数をインクリメントする安全なバージョンで置き換えられる。このため、この技術を使用して、例えば、JavaScriptによって生成されるウインドウの数が制限されることが可能である。
展開アーキテクチャの例
[0083]図11は、前述した技術の展開のための一般的なアーキテクチャの一実施形態のブロック図である。図11を参照すると、セキュアな(安全な)プロキシ1101が、クライアントブラウザ1102を実行するクライアントデバイスと、インターネット1103のそれ以外の部分との間のネットワーク上に存在する。このクライアントへのすべてのトラフィック、及びこのクライアントからのすべてのトラフィックは、プロキシ1101を通過し、プロキシ1101において、このトラフィックが、解析されることが可能であり、セキュリティ上の欠陥を利用するコンテンツが、潜在的にフィルタ処理されることが可能である。一実施形態では、プロキシ1101は、HTTPヘッダコンテンツ(例えば、URL)やHTTP応答コンテンツ(JavaScriptなどの)などの、クライアントがインターネット1103から取得(fetch)する様々な種類のコンテンツを扱うためのフィルタを有する。より具体的には、クライアントブラウザ1102は、ユーザ入力1106を受け取ることができる。クライアントブラウザ1102は、ページ要求1151を生成する。プロキシ1101は、ページ要求1151を受信し、URLフィルタ処理1161を使用してURLをフィルタ処理し、HTTP要求ヘッダフィルタ1162を使用してHTTP要求ヘッダをフィルタ処理する。フィルタ処理の後、プロキシ1101は、ページ要求1151をインターネット1103に転送する。ページ要求1151に対するインターネット1103からの応答が、プロキシ1101によって受信され、プロキシ1101は、HTTP応答ヘッダフィルタ1164を使用して、ヘッダをフィルタ処理する。HTTP応答ヘッダフィルタ1164によるフィルタ処理の後、プロキシ1101は、HTMLコンテンツフィルタ1163及び/又はJavaScriptフィルタ−インスツルメンタ1110を使用して、コンテンツをフィルタ処理する。HTMLコンテンツフィルタ1163とJavaScriptフィルタ−インスツルメンタ1110のいずれか、又は両方の出力を表すフィルタ処理されたコンテンツ1152が、プロキシ1101から出力され、クライアントブラウザ1102に送信される。また、HTMLコンテンツフィルタ1163及びJavaScriptフィルタ−インスツルメンタ1110の出力は、フィルタ処理されたコンテンツの攻撃プロファイリングに基づくブラウザ開発を円滑にするのに使用されることも可能である。
[0083]図11は、前述した技術の展開のための一般的なアーキテクチャの一実施形態のブロック図である。図11を参照すると、セキュアな(安全な)プロキシ1101が、クライアントブラウザ1102を実行するクライアントデバイスと、インターネット1103のそれ以外の部分との間のネットワーク上に存在する。このクライアントへのすべてのトラフィック、及びこのクライアントからのすべてのトラフィックは、プロキシ1101を通過し、プロキシ1101において、このトラフィックが、解析されることが可能であり、セキュリティ上の欠陥を利用するコンテンツが、潜在的にフィルタ処理されることが可能である。一実施形態では、プロキシ1101は、HTTPヘッダコンテンツ(例えば、URL)やHTTP応答コンテンツ(JavaScriptなどの)などの、クライアントがインターネット1103から取得(fetch)する様々な種類のコンテンツを扱うためのフィルタを有する。より具体的には、クライアントブラウザ1102は、ユーザ入力1106を受け取ることができる。クライアントブラウザ1102は、ページ要求1151を生成する。プロキシ1101は、ページ要求1151を受信し、URLフィルタ処理1161を使用してURLをフィルタ処理し、HTTP要求ヘッダフィルタ1162を使用してHTTP要求ヘッダをフィルタ処理する。フィルタ処理の後、プロキシ1101は、ページ要求1151をインターネット1103に転送する。ページ要求1151に対するインターネット1103からの応答が、プロキシ1101によって受信され、プロキシ1101は、HTTP応答ヘッダフィルタ1164を使用して、ヘッダをフィルタ処理する。HTTP応答ヘッダフィルタ1164によるフィルタ処理の後、プロキシ1101は、HTMLコンテンツフィルタ1163及び/又はJavaScriptフィルタ−インスツルメンタ1110を使用して、コンテンツをフィルタ処理する。HTMLコンテンツフィルタ1163とJavaScriptフィルタ−インスツルメンタ1110のいずれか、又は両方の出力を表すフィルタ処理されたコンテンツ1152が、プロキシ1101から出力され、クライアントブラウザ1102に送信される。また、HTMLコンテンツフィルタ1163及びJavaScriptフィルタ−インスツルメンタ1110の出力は、フィルタ処理されたコンテンツの攻撃プロファイリングに基づくブラウザ開発を円滑にするのに使用されることも可能である。
[0084]前述した技術は、JavaScriptフィルタ−インスツルメンタユニット1110において実行される。
[0085]セキュリティディスクリプタ(記述子)ファイル1120は、前述した技術によって実施されるポリシー指定のいずれかに対応する。
コンピュータシステムの例
[0086]図12は、本明細書で説明される動作の1つ又は複数を実行することが可能な例示的なコンピュータシステムのブロック図である。図12を参照すると、コンピュータシステム1200が、例示的なクライアントコンピュータシステム又はサーバコンピュータシステムを備えることが可能である。コンピュータシステム1200は、情報を通信するための通信機構又はバス1211と、情報を処理するためにバス1211に結合されたプロセッサ1212とを備える。プロセッサ1212は、マイクロプロセッサを含むが、例えば、Pentium(商標)、PowerPC(商標)、Alpha(商標)などのマイクロプロセッサに限定されない。
[0086]図12は、本明細書で説明される動作の1つ又は複数を実行することが可能な例示的なコンピュータシステムのブロック図である。図12を参照すると、コンピュータシステム1200が、例示的なクライアントコンピュータシステム又はサーバコンピュータシステムを備えることが可能である。コンピュータシステム1200は、情報を通信するための通信機構又はバス1211と、情報を処理するためにバス1211に結合されたプロセッサ1212とを備える。プロセッサ1212は、マイクロプロセッサを含むが、例えば、Pentium(商標)、PowerPC(商標)、Alpha(商標)などのマイクロプロセッサに限定されない。
[0087]システム1200は、情報、及びプロセッサ1212によって実行されるべき命令を格納するためのRAM(ランダムアクセスメモリ)、又は他の動的記憶デバイス1204(メインメモリと呼ばれる)をさらに備える。また、メインメモリ1204は、プロセッサ1212による命令の実行中に、一時的変数、又は他の中間情報を格納するために使用されることも可能である。
[0088]また、コンピュータシステム1200は、プロセッサ1212のための静的情報及び命令を格納するためにバス1211に結合されたROM(読み取り専用メモリ)及び/又は他の静的記憶デバイス1206、並びに磁気ディスク又は光ディスク、及び対応するディスクドライブなどのデータ記憶デバイス1207も備える。データ記憶デバイス1207は、情報及び命令を格納するためにバス1211に結合される。
[0089]コンピュータシステム1200は、コンピュータユーザに情報を表示するためにバス1211に結合された、CRT(陰極線管)又はLCD(液晶ディスプレイ)などのディスプレイデバイス1221にさらに結合されることが可能である。また、英数字キー又は他のキーを含む英数字入力デバイス1222が、情報及びコマンド選択をプロセッサ1212に通信するために、バス1211に結合されることも可能である。さらなるユーザ入力デバイスは、方向情報及びコマンド選択をプロセッサ1212に通信するため、及びディスプレイ1221上でカーソルの動きを制御するために、バス1211に結合される、マウス、トラックボール、トラックパッド、スタイラス、又はカーソル方向キーなどの、カーソルコントロール1223である。
[0090]バス1211に結合されることが可能な別のデバイスは、紙、フィルム、又は類似したタイプの媒体などの媒体上に情報を記録するために使用されることが可能なハードコピーデバイス1224である。バス1211に結合されることが可能な別のデバイスは、電話デバイス又はハンドヘルドパームデバイスに通信する有線/無線通信能力1225である。
[0091]システム1200の構成要素、及び関連するハードウェアのいずれか、又はすべてが、本発明において使用されることが可能であることに留意されたい。しかし、コンピュータシステムの他の構成は、これらのデバイスのいくつか、又はすべてを含むことが可能であること理解することができよう。
[0092]本発明の多くの代替形態及び変形形態が、以上の説明を読んだ後、間違いなく、当業者には明白となろうが、例示として示され、説明されるいずれの特定の実施形態も、限定するものと考えられることはまったく意図していないものと理解されたい。したがって、様々な実施形態の詳細への言及は、それ自体、本発明に不可欠であると見なされる特徴だけを記載する特許請求の範囲を限定することは意図していない。
Claims (4)
- 第1の安全ポリシーに基づくスクリプトプログラムの静的解析を実行して、前記スクリプトプログラムの不安全動作を検出する工程と、及び
前記スクリプトプログラムが実行される際に、前記安全ポリシーについての違反が生じる場合、前記スクリプトプログラムの実行を防止する工程とを含む方法。 - システムによって実行されると、
第1の安全ポリシーに基づくスクリプトプログラムの静的解析を実行して、前記スクリプトプログラムの不安全動作を検出する工程と、及び
前記スクリプトプログラムが実行される際に、前記安全ポリシーについての違反が生じる場合、前記スクリプトプログラムの実行を防止する工程とを含む方法を、前記システムに実行させる命令が格納された1つ又は複数のコンピュータ可読媒体を有する製造品。 - 第1の安全ポリシーに基づいてスクリプトプログラムを解析する工程と、及び
前記スクリプトプログラムの安全な実行を確実にするように前記スクリプトプログラムを変更する工程とを含む方法。 - システムによって実行されると、
第1の安全ポリシーに基づいてスクリプトプログラムを解析する工程と、及び
前記スクリプトプログラムの安全な実行を確実にするように前記スクリプトプログラムを変更する工程とを含む方法を、前記システムに実行させる命令が格納された1つ又は複数のコンピュータ可読媒体を有する製造品。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US73551305P | 2005-11-10 | 2005-11-10 | |
US73577205P | 2005-11-10 | 2005-11-10 | |
US11/594,524 US20070107057A1 (en) | 2005-11-10 | 2006-11-07 | Method and apparatus for detecting and preventing unsafe behavior of javascript programs |
PCT/US2006/043627 WO2007058882A2 (en) | 2005-11-10 | 2006-11-08 | A method and apparatus for detecting and preventing unsafe behavior of javascript programs |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009521737A true JP2009521737A (ja) | 2009-06-04 |
JP2009521737A5 JP2009521737A5 (ja) | 2010-01-14 |
Family
ID=37946322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008540189A Pending JP2009521737A (ja) | 2005-11-10 | 2006-11-08 | Javascriptプログラムの不安全動作安を検出するため、及び防止するための方法及び装置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US20070107057A1 (ja) |
EP (2) | EP1962220A1 (ja) |
JP (1) | JP2009521737A (ja) |
CN (1) | CN101356535B (ja) |
WO (1) | WO2007058882A2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010536107A (ja) * | 2007-08-15 | 2010-11-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ発信源の追跡及びデータ伝送の制御 |
JP2011501278A (ja) * | 2007-10-15 | 2011-01-06 | ベイジン ライジング インフォメーション テクノロジー カンパニー、リミテッド | コンピュータにおける悪意プログラム自動保護方法及び装置 |
JP2015501961A (ja) * | 2011-11-07 | 2015-01-19 | クアルコム,インコーポレイテッド | 情報の流れを把握するための値内のラベルの符号化 |
US9501646B2 (en) | 2012-09-26 | 2016-11-22 | Mitsubishi Electric Corporation | Program verification apparatus, program verification method, and computer readable medium |
WO2020021686A1 (ja) * | 2018-07-26 | 2020-01-30 | 日本電気株式会社 | 解析支援装置、解析支援方法、及びコンピュータ読み取り可能な記録媒体 |
US11409886B2 (en) | 2017-07-31 | 2022-08-09 | Nec Corporation | Program verification system, method, and program |
Families Citing this family (146)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8245049B2 (en) * | 2004-06-14 | 2012-08-14 | Microsoft Corporation | Method and system for validating access to a group of related elements |
US8078740B2 (en) | 2005-06-03 | 2011-12-13 | Microsoft Corporation | Running internet applications with low rights |
US20060282830A1 (en) * | 2005-06-13 | 2006-12-14 | Microsoft Corporation | Analysis of the impact of application programs on resources stored in data stores |
JP2007287124A (ja) * | 2006-04-18 | 2007-11-01 | Softrun Inc | インターネット接続サイトの分析を通じたフィッシング防止方法及びその方法を実現するためのコンピュータプログラムを記録した記録媒体 |
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 |
JP4908131B2 (ja) * | 2006-09-28 | 2012-04-04 | 富士通株式会社 | 非即時処理存在可能性の表示処理プログラム,装置,および方法 |
US8938773B2 (en) | 2007-02-02 | 2015-01-20 | Websense, Inc. | System and method for adding context to prevent data leakage over a computer network |
US20080234998A1 (en) * | 2007-03-22 | 2008-09-25 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Coordinating instances of a thread or other service in emulation |
US9378108B2 (en) * | 2007-03-22 | 2016-06-28 | Invention Science Fund I, Llc | Implementing performance-dependent transfer or execution decisions from service emulation indications |
US8874425B2 (en) * | 2007-03-22 | 2014-10-28 | The Invention Science Fund I, Llc | Implementing performance-dependent transfer or execution decisions from service emulation indications |
US8495708B2 (en) * | 2007-03-22 | 2013-07-23 | The Invention Science Fund I, Llc | Resource authorizations dependent on emulation environment isolation policies |
US8438609B2 (en) * | 2007-03-22 | 2013-05-07 | The Invention Science Fund I, Llc | Resource authorizations dependent on emulation environment isolation policies |
US20080235001A1 (en) * | 2007-03-22 | 2008-09-25 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Implementing emulation decisions in response to software evaluations or the like |
US20080235000A1 (en) * | 2007-03-22 | 2008-09-25 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Implementing security control practice omission decisions from service emulation indications |
US9558019B2 (en) * | 2007-03-22 | 2017-01-31 | Invention Science Fund I, Llc | Coordinating instances of a thread or other service in emulation |
US8438653B2 (en) * | 2007-04-10 | 2013-05-07 | Microsoft Corporation | Strategies for controlling use of a resource that is shared between trusted and untrusted environments |
US20080295164A1 (en) * | 2007-05-24 | 2008-11-27 | International Business Machines Corporation | Mashup component isolation via server-side analysis and instrumentation |
US10019570B2 (en) | 2007-06-14 | 2018-07-10 | Microsoft Technology Licensing, Llc | Protection and communication abstractions for web browsers |
US8181246B2 (en) | 2007-06-20 | 2012-05-15 | Imperva, Inc. | System and method for preventing web frauds committed using client-scripting attacks |
US20090125977A1 (en) * | 2007-10-31 | 2009-05-14 | Docomo Communications Laboratories Usa, Inc. | Language framework and infrastructure for safe and composable applications |
US20090119769A1 (en) * | 2007-11-05 | 2009-05-07 | Microsoft Corporation | Cross-site scripting filter |
US8914774B1 (en) | 2007-11-15 | 2014-12-16 | Appcelerator, Inc. | System and method for tagging code to determine where the code runs |
US8954989B1 (en) | 2007-11-19 | 2015-02-10 | Appcelerator, Inc. | Flexible, event-driven JavaScript server architecture |
US8260845B1 (en) | 2007-11-21 | 2012-09-04 | Appcelerator, Inc. | System and method for auto-generating JavaScript proxies and meta-proxies |
US8719451B1 (en) | 2007-11-23 | 2014-05-06 | Appcelerator, Inc. | System and method for on-the-fly, post-processing document object model manipulation |
US8566807B1 (en) | 2007-11-23 | 2013-10-22 | Appcelerator, Inc. | System and method for accessibility of document object model and JavaScript by other platforms |
EP2065824A1 (en) * | 2007-11-30 | 2009-06-03 | Fox Entertainment Group | HTML filter for prevention of cross site scripting attacks |
US8819539B1 (en) | 2007-12-03 | 2014-08-26 | Appcelerator, Inc. | On-the-fly rewriting of uniform resource locators in a web-page |
US8806431B1 (en) | 2007-12-03 | 2014-08-12 | Appecelerator, Inc. | Aspect oriented programming |
US8756579B1 (en) | 2007-12-03 | 2014-06-17 | Appcelerator, Inc. | Client-side and server-side unified validation |
US8938491B1 (en) | 2007-12-04 | 2015-01-20 | Appcelerator, Inc. | System and method for secure binding of client calls and server functions |
US8527860B1 (en) | 2007-12-04 | 2013-09-03 | Appcelerator, Inc. | System and method for exposing the dynamic web server-side |
US8285813B1 (en) | 2007-12-05 | 2012-10-09 | Appcelerator, Inc. | System and method for emulating different user agents on a server |
US8335982B1 (en) | 2007-12-05 | 2012-12-18 | Appcelerator, Inc. | System and method for binding a document object model through JavaScript callbacks |
US8639743B1 (en) * | 2007-12-05 | 2014-01-28 | Appcelerator, Inc. | System and method for on-the-fly rewriting of JavaScript |
US9172707B2 (en) * | 2007-12-19 | 2015-10-27 | Microsoft Technology Licensing, Llc | Reducing cross-site scripting attacks by segregating HTTP resources by subdomain |
US8438636B2 (en) * | 2008-01-11 | 2013-05-07 | Microsoft Corporation | Secure and extensible policy-driven application platform |
US8621495B2 (en) * | 2008-01-18 | 2013-12-31 | Microsoft Corporation | Methods and apparatus for securing frames from other frames |
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 |
US8387139B2 (en) * | 2008-02-04 | 2013-02-26 | Microsoft Corporation | Thread scanning and patching to disable injected malware threats |
US10395187B2 (en) | 2008-02-11 | 2019-08-27 | Clearshift Corporation | Multilevel assignment of jobs and tasks in online work management system |
US9130986B2 (en) | 2008-03-19 | 2015-09-08 | Websense, Inc. | Method and system for protection against information stealing software |
US9015842B2 (en) | 2008-03-19 | 2015-04-21 | Websense, Inc. | Method and system for protection against information stealing software |
US8806618B2 (en) * | 2008-03-31 | 2014-08-12 | Microsoft Corporation | Security by construction for distributed applications |
US8424082B2 (en) | 2008-05-08 | 2013-04-16 | Google Inc. | Safely executing an untrusted native code module on a computing device |
US9058483B2 (en) | 2008-05-08 | 2015-06-16 | Google Inc. | Method for validating an untrusted native code module |
US9524344B2 (en) * | 2008-06-03 | 2016-12-20 | Microsoft Corporation | User interface for online ads |
US20090299862A1 (en) * | 2008-06-03 | 2009-12-03 | Microsoft Corporation | Online ad serving |
US8291079B1 (en) | 2008-06-04 | 2012-10-16 | Appcelerator, Inc. | System and method for developing, deploying, managing and monitoring a web application in a single environment |
US8880678B1 (en) | 2008-06-05 | 2014-11-04 | Appcelerator, Inc. | System and method for managing and monitoring a web application using multiple cloud providers |
US20090327869A1 (en) * | 2008-06-27 | 2009-12-31 | Microsoft Corporation | Online ad serving |
US8640244B2 (en) * | 2008-06-27 | 2014-01-28 | Microsoft Corporation | Declared origin policy |
US8245200B2 (en) * | 2008-07-11 | 2012-08-14 | International Business Machines Corporation | Method, system, and apparatus for dynamically injecting logging statements into web 2.0 javascript applications |
US8230506B1 (en) * | 2008-07-15 | 2012-07-24 | Zscaler, Inc. | Proxy communication detection |
US9176754B2 (en) | 2008-07-16 | 2015-11-03 | Google Inc. | Method and system for executing applications using native code modules |
US8782797B2 (en) * | 2008-07-17 | 2014-07-15 | Microsoft Corporation | Lockbox for mitigating same origin policy failures |
US7596620B1 (en) | 2008-11-04 | 2009-09-29 | Aptana, Inc. | System and method for developing, deploying, managing and monitoring a web application in a single environment |
US8522200B2 (en) | 2008-08-28 | 2013-08-27 | Microsoft Corporation | Detouring in scripting systems |
US8931084B1 (en) * | 2008-09-11 | 2015-01-06 | Google Inc. | Methods and systems for scripting defense |
US8990116B2 (en) * | 2008-10-07 | 2015-03-24 | Mocana Corporation | Preventing execution of tampered application code in a computer system |
JP2010092376A (ja) * | 2008-10-10 | 2010-04-22 | Softbank Mobile Corp | 情報処理装置、情報処理方法及び情報処理プログラム |
US8701185B2 (en) * | 2008-10-14 | 2014-04-15 | At&T Intellectual Property I, L.P. | Method for locating fraudulent replicas of web sites |
US8510713B1 (en) | 2008-10-31 | 2013-08-13 | Google Inc. | Method and system for validating a disassembler |
GB2478098B (en) * | 2008-11-19 | 2013-07-10 | Secure Works Inc | System and method for run-time attack prevention |
EP2392114B1 (en) | 2009-01-30 | 2021-01-20 | British Telecommunications public limited company | Secure web-based service provision |
US8413239B2 (en) * | 2009-02-22 | 2013-04-02 | Zscaler, Inc. | Web security via response injection |
DE102009011679A1 (de) * | 2009-02-23 | 2010-08-26 | Pilz Gmbh & Co. Kg | Verfahren und Vorrichtung zum Erstellen eines Anwenderprogrammes für eine Sicherheitssteuerung |
CN101895516B (zh) * | 2009-05-19 | 2014-08-06 | 北京启明星辰信息技术股份有限公司 | 一种跨站脚本攻击源的定位方法及装置 |
US8621613B1 (en) * | 2009-05-26 | 2013-12-31 | Amazon Technologies, Inc. | Detecting malware in content items |
US8797337B1 (en) | 2009-07-02 | 2014-08-05 | Google Inc. | Graphics scenegraph rendering for web applications using native code modules |
CN101964025B (zh) * | 2009-07-23 | 2016-02-03 | 北京神州绿盟信息安全科技股份有限公司 | Xss检测方法和设备 |
JP5526654B2 (ja) * | 2009-08-20 | 2014-06-18 | 富士通株式会社 | データ送信プログラム、データ送信装置および操作手順書編集方法 |
US8214903B2 (en) | 2009-10-02 | 2012-07-03 | International Business Machines Corporation | Analysis of scripts |
US20120089481A1 (en) * | 2009-11-24 | 2012-04-12 | Chain Reaction Ecommerce, Inc. | Securing sensitive information with a trusted proxy frame |
US8387143B2 (en) * | 2009-11-30 | 2013-02-26 | Citrix Systems, Inc. | Systems and methods for aggressive window probing |
US9210184B2 (en) * | 2009-12-29 | 2015-12-08 | International Business Machines Corporation | Determining the vulnerability of computer software applications to attacks |
US9058489B2 (en) * | 2010-01-25 | 2015-06-16 | Samsung Electronics Co., Ltd. | Marking documents with executable text for processing by computing systems |
US8997217B2 (en) * | 2010-01-25 | 2015-03-31 | Samsung Electronics Co., Ltd. | Safely processing and presenting documents with executable text |
US8473925B2 (en) | 2010-05-11 | 2013-06-25 | Ca, Inc. | Conditional dynamic instrumentation of software in a specified transaction context |
US8782612B2 (en) * | 2010-05-11 | 2014-07-15 | Ca, Inc. | Failsafe mechanism for dynamic instrumentation of software using callbacks |
US8566800B2 (en) | 2010-05-11 | 2013-10-22 | Ca, Inc. | Detection of method calls to streamline diagnosis of custom code through dynamic instrumentation |
US8826444B1 (en) * | 2010-07-09 | 2014-09-02 | Symantec Corporation | Systems and methods for using client reputation data to classify web domains |
US10372899B2 (en) * | 2010-07-22 | 2019-08-06 | International Business Machines Corporation | Method and apparatus for context-aware output escaping using dynamic content marking |
US10375107B2 (en) * | 2010-07-22 | 2019-08-06 | International Business Machines Corporation | Method and apparatus for dynamic content marking to facilitate context-aware output escaping |
EP2413257B1 (en) * | 2010-07-26 | 2017-04-26 | Sony DADC Austria AG | Method for replacing an illegitimate copy of a software program with legitimate copy and corresponding system |
CA2711855A1 (en) | 2010-08-25 | 2010-11-03 | Ibm Canada Limited - Ibm Canada Limitee | Secure third party scripting environment |
US8938729B2 (en) | 2010-10-12 | 2015-01-20 | Ca, Inc. | Two pass automated application instrumentation |
TWI435235B (zh) * | 2010-11-04 | 2014-04-21 | Inst Information Industry | 電腦蠕蟲治療系統以及方法以及儲存電腦蠕蟲治療方法之電腦可讀取記錄媒體 |
US8788884B2 (en) * | 2010-12-07 | 2014-07-22 | Massachusetts Institute Of Technology | Automatic correction of program logic |
US9342274B2 (en) | 2011-05-19 | 2016-05-17 | Microsoft Technology Licensing, Llc | Dynamic code generation and memory management for component object model data constructs |
US8881101B2 (en) | 2011-05-24 | 2014-11-04 | Microsoft Corporation | Binding between a layout engine and a scripting engine |
US20120303453A1 (en) * | 2011-05-26 | 2012-11-29 | Yahoo! Inc. | Methods and systems for securely targeting advertisements on login pages |
US8949992B2 (en) | 2011-05-31 | 2015-02-03 | International Business Machines Corporation | Detecting persistent vulnerabilities in web applications |
US9224010B2 (en) | 2011-09-01 | 2015-12-29 | International Business Machines Corporation | Secure document creation from potentially unsecure source templates |
US10445528B2 (en) * | 2011-09-07 | 2019-10-15 | Microsoft Technology Licensing, Llc | Content handling for applications |
US9223976B2 (en) * | 2011-09-08 | 2015-12-29 | Microsoft Technology Licensing, Llc | Content inspection |
US8572750B2 (en) * | 2011-09-30 | 2013-10-29 | International Business Machines Corporation | Web application exploit mitigation in an information technology environment |
US10157049B2 (en) * | 2011-10-26 | 2018-12-18 | International Business Machines Corporation | Static analysis with input reduction |
US8752015B2 (en) | 2011-12-05 | 2014-06-10 | Ca, Inc. | Metadata merging in agent configuration files |
US9411616B2 (en) | 2011-12-09 | 2016-08-09 | Ca, Inc. | Classloader/instrumentation approach for invoking non-bound libraries |
US20130185623A1 (en) * | 2012-01-12 | 2013-07-18 | International Business Machines Corporation | Instructing web clients to ignore scripts in specified portions of web pages |
US9049222B1 (en) * | 2012-02-02 | 2015-06-02 | Trend Micro Inc. | Preventing cross-site scripting in web-based e-mail |
CN103679018B (zh) * | 2012-09-06 | 2018-06-12 | 百度在线网络技术(北京)有限公司 | 一种检测csrf漏洞的方法和装置 |
BR112015006653A2 (pt) * | 2012-09-28 | 2017-07-04 | Hewlett Packard Development Co | sistema de computação, meio de armazenamento legível por máquina não transitório e método |
CN103729287B (zh) * | 2012-10-16 | 2018-01-05 | 百度在线网络技术(北京)有限公司 | 一种前端javascript组件的测试方法和装置 |
US9241259B2 (en) | 2012-11-30 | 2016-01-19 | Websense, Inc. | Method and apparatus for managing the transfer of sensitive information to mobile devices |
US10032659B2 (en) * | 2012-12-28 | 2018-07-24 | Sunedison Semiconductor Limited (Uen201334164H) | Methods and systems for preventing unsafe operations |
US9098722B2 (en) * | 2013-03-15 | 2015-08-04 | Prevoty, Inc. | Systems and methods for parsing user-generated content to prevent attacks |
US9313223B2 (en) | 2013-03-15 | 2016-04-12 | Prevoty, Inc. | Systems and methods for tokenizing user-generated content to enable the prevention of attacks |
US9904541B2 (en) * | 2013-05-09 | 2018-02-27 | Microsoft Technology Licensing, Llc | Semantic baselining |
CN103258163B (zh) * | 2013-05-15 | 2015-08-26 | 腾讯科技(深圳)有限公司 | 一种脚本病毒识别方法、装置及系统 |
US9430452B2 (en) | 2013-06-06 | 2016-08-30 | Microsoft Technology Licensing, Llc | Memory model for a layout engine and scripting engine |
US9158935B2 (en) * | 2013-06-07 | 2015-10-13 | Microsoft Technology Licensing, Llc | Automatic mediation of resource access in mobile applications |
US9152694B1 (en) * | 2013-06-17 | 2015-10-06 | Appthority, Inc. | Automated classification of applications for mobile devices |
US9774620B2 (en) * | 2013-06-18 | 2017-09-26 | Microsoft Technology Licensing, Llc | Automatic code and data separation of web application |
CN103413073B (zh) * | 2013-07-09 | 2016-01-20 | 北京深思数盾科技有限公司 | 一种保护java可执行程序的方法及设备 |
US9798981B2 (en) | 2013-07-31 | 2017-10-24 | Entit Software Llc | Determining malware based on signal tokens |
CN105431859A (zh) * | 2013-07-31 | 2016-03-23 | 惠普发展公司,有限责任合伙企业 | 指示恶意软件的信号标记 |
CN104519007A (zh) * | 2013-09-26 | 2015-04-15 | 深圳市腾讯计算机系统有限公司 | 一种漏洞检测的方法及服务器 |
US9154492B2 (en) * | 2013-09-27 | 2015-10-06 | The University Of North Carolina At Charlotte | Moving target defense against cross-site scripting |
US9922131B2 (en) | 2013-11-06 | 2018-03-20 | Hipmunk, Inc. | Graphical user interface machine to present a window |
US9390177B2 (en) | 2014-03-27 | 2016-07-12 | International Business Machines Corporation | Optimizing web crawling through web page pruning |
KR102192479B1 (ko) * | 2014-04-23 | 2020-12-17 | 삼성전자주식회사 | 전자 장치의 프로그램 코드 분석 방법 및 전자 장치 |
CN105282096A (zh) * | 2014-06-18 | 2016-01-27 | 腾讯科技(深圳)有限公司 | Xss 漏洞检测方法和装置 |
US10419483B1 (en) * | 2014-09-17 | 2019-09-17 | Amazon Technologies, Inc. | Time-bounded execution for privileged code |
US9781145B2 (en) * | 2014-11-25 | 2017-10-03 | International Business Machines Corporation | Persistent cross-site scripting vulnerability detection |
CN104468546B (zh) * | 2014-11-27 | 2018-01-09 | 微梦创科网络科技(中国)有限公司 | 一种网络信息处理方法及防火墙装置、系统 |
CN104462985A (zh) * | 2014-11-28 | 2015-03-25 | 北京奇虎科技有限公司 | bat漏洞的检测方法以及装置 |
US9953158B1 (en) * | 2015-04-21 | 2018-04-24 | Symantec Corporation | Systems and methods for enforcing secure software execution |
US10769351B2 (en) * | 2015-05-08 | 2020-09-08 | Citrix Systems, Inc. | Rendering based on a document object model |
US10574631B2 (en) | 2015-05-11 | 2020-02-25 | Finjan Mobile, Inc. | Secure and private mobile web browser |
US9684788B2 (en) * | 2015-06-29 | 2017-06-20 | International Business Machines Corporation | Self-repair and distributed-repair of applications |
CN106156616B (zh) * | 2016-06-24 | 2019-08-23 | 武汉斗鱼网络科技有限公司 | 一种网站脚本攻击的防御方法及防御系统 |
US11062019B2 (en) | 2016-07-04 | 2021-07-13 | Traffic Guard Dg Ltd. | System and method for webpages scripts validation |
US11194914B2 (en) * | 2016-07-04 | 2021-12-07 | Mcafee, Llc | Method and apparatus to detect security vulnerabilities in a web application |
US10462145B2 (en) * | 2016-07-15 | 2019-10-29 | The Directv Group, Inc. | Method and apparatus for controlling access to custom browser functionality |
US10728274B2 (en) * | 2016-09-22 | 2020-07-28 | Check Point Software Technologies Ltd. | Method and system for injecting javascript into a web page |
WO2018080819A1 (en) * | 2016-10-24 | 2018-05-03 | Finjan Mobile, Inc. | Secure and private mobile web browser |
CN106789959A (zh) * | 2016-12-01 | 2017-05-31 | 北京锐安科技有限公司 | 一种数据安全处理器和处理方法 |
US10275596B1 (en) * | 2016-12-15 | 2019-04-30 | Symantec Corporation | Activating malicious actions within electronic documents |
US20190188384A1 (en) * | 2017-12-19 | 2019-06-20 | Crowdstrike, Inc. | Detecting script-based malware |
US20190294780A1 (en) * | 2018-03-26 | 2019-09-26 | International Business Machines Corporation | System and method for executing operating system level virtualization software objects |
CN112685314A (zh) * | 2021-01-05 | 2021-04-20 | 广州知图科技有限公司 | 一种JavaScript引擎安全测试方法及测试系统 |
CN112799753B (zh) * | 2021-01-08 | 2023-04-25 | 杭州雾联科技有限公司 | 一种全屏独占屏蔽方法、装置、设备及介质 |
CN114430339A (zh) * | 2021-12-25 | 2022-05-03 | 深圳太极云软技术有限公司 | 一种网络请求的过滤方法、装置、终端和可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04259036A (ja) * | 1991-02-13 | 1992-09-14 | Nec Corp | プログラム変換方式及びプログラム不正動作検出機構 |
JPH10187434A (ja) * | 1996-12-20 | 1998-07-21 | Nec Corp | セキュリティ確保方式 |
JP2002514326A (ja) * | 1996-11-08 | 2002-05-14 | フィンジャン ソフトウェア,リミテッド | 悪意のあるダウンローダブルからコンピュータおよびネットワークを保護するためのシステムおよび方法 |
JP2002513961A (ja) * | 1998-05-01 | 2002-05-14 | マイクロソフト コーポレイション | インテリジェントトラストマネジメントの方法およびシステム |
JP2003067210A (ja) * | 2001-08-22 | 2003-03-07 | Just Syst Corp | プログラム実行防止装置、プログラム実行防止方法、その方法をコンピュータに実行させるプログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2004287810A (ja) * | 2003-03-20 | 2004-10-14 | Nec Corp | 不正アクセス防止システム、不正アクセス防止方法、および不正アクセス防止プログラム |
JP2004318816A (ja) * | 2003-03-31 | 2004-11-11 | Toshiba Corp | 通信中継装置、通信中継方法及びプログラム |
JP2005267605A (ja) * | 2004-02-16 | 2005-09-29 | Hitachi Ltd | Web表示方法、装置及びプログラム |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812850A (en) * | 1995-11-13 | 1998-09-22 | Object Technology Licensing Corp. | Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution |
US5745738A (en) * | 1996-05-29 | 1998-04-28 | Microsoft Corporation | Method and engine for automating the creation of simulations for demonstrating use of software |
WO1998003920A1 (fr) * | 1996-07-22 | 1998-01-29 | Sony Corporation | Changeur de supports, procedes de verrouillage et deverrouillage, procede d'execution de commandes d'execution et ordinateur adressant de telles commandes au changeur |
US6760903B1 (en) * | 1996-08-27 | 2004-07-06 | Compuware Corporation | Coordinated application monitoring in a distributed computing environment |
US6154844A (en) * | 1996-11-08 | 2000-11-28 | Finjan Software, Ltd. | System and method for attaching a downloadable security profile to a downloadable |
US5983348A (en) * | 1997-09-10 | 1999-11-09 | Trend Micro Incorporated | Computer network malicious code scanner |
US8225408B2 (en) * | 1997-11-06 | 2012-07-17 | Finjan, Inc. | Method and system for adaptive rule-based content scanners |
US7975305B2 (en) * | 1997-11-06 | 2011-07-05 | Finjan, Inc. | Method and system for adaptive rule-based content scanners for desktop computers |
US20020112049A1 (en) * | 2000-12-14 | 2002-08-15 | International Business Machines Corporation | Measuring response time for a computer accessing information from a network |
US7243267B2 (en) * | 2002-03-01 | 2007-07-10 | Avaya Technology Llc | Automatic failure detection and recovery of applications |
CN1412714A (zh) * | 2002-09-12 | 2003-04-23 | 福建榕基软件开发有限公司 | 网络隐患扫描系统 |
US7150008B2 (en) * | 2002-10-25 | 2006-12-12 | Microsoft Corporation | Non-invasive rule-based binary analysis of software assemblies |
-
2006
- 2006-11-07 US US11/594,524 patent/US20070107057A1/en not_active Abandoned
- 2006-11-08 JP JP2008540189A patent/JP2009521737A/ja active Pending
- 2006-11-08 WO PCT/US2006/043627 patent/WO2007058882A2/en active Application Filing
- 2006-11-08 EP EP08157802A patent/EP1962220A1/en not_active Withdrawn
- 2006-11-08 EP EP06837233A patent/EP1955249A2/en not_active Withdrawn
- 2006-11-08 CN CN2006800508031A patent/CN101356535B/zh active Active
-
2010
- 2010-04-02 US US12/753,731 patent/US20100257603A1/en not_active Abandoned
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04259036A (ja) * | 1991-02-13 | 1992-09-14 | Nec Corp | プログラム変換方式及びプログラム不正動作検出機構 |
JP2002514326A (ja) * | 1996-11-08 | 2002-05-14 | フィンジャン ソフトウェア,リミテッド | 悪意のあるダウンローダブルからコンピュータおよびネットワークを保護するためのシステムおよび方法 |
JPH10187434A (ja) * | 1996-12-20 | 1998-07-21 | Nec Corp | セキュリティ確保方式 |
JP2002513961A (ja) * | 1998-05-01 | 2002-05-14 | マイクロソフト コーポレイション | インテリジェントトラストマネジメントの方法およびシステム |
JP2003067210A (ja) * | 2001-08-22 | 2003-03-07 | Just Syst Corp | プログラム実行防止装置、プログラム実行防止方法、その方法をコンピュータに実行させるプログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2004287810A (ja) * | 2003-03-20 | 2004-10-14 | Nec Corp | 不正アクセス防止システム、不正アクセス防止方法、および不正アクセス防止プログラム |
JP2004318816A (ja) * | 2003-03-31 | 2004-11-11 | Toshiba Corp | 通信中継装置、通信中継方法及びプログラム |
JP2005267605A (ja) * | 2004-02-16 | 2005-09-29 | Hitachi Ltd | Web表示方法、装置及びプログラム |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010536107A (ja) * | 2007-08-15 | 2010-11-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ発信源の追跡及びデータ伝送の制御 |
JP2011501278A (ja) * | 2007-10-15 | 2011-01-06 | ベイジン ライジング インフォメーション テクノロジー カンパニー、リミテッド | コンピュータにおける悪意プログラム自動保護方法及び装置 |
JP2015501961A (ja) * | 2011-11-07 | 2015-01-19 | クアルコム,インコーポレイテッド | 情報の流れを把握するための値内のラベルの符号化 |
US9501646B2 (en) | 2012-09-26 | 2016-11-22 | Mitsubishi Electric Corporation | Program verification apparatus, program verification method, and computer readable medium |
US11409886B2 (en) | 2017-07-31 | 2022-08-09 | Nec Corporation | Program verification system, method, and program |
WO2020021686A1 (ja) * | 2018-07-26 | 2020-01-30 | 日本電気株式会社 | 解析支援装置、解析支援方法、及びコンピュータ読み取り可能な記録媒体 |
JPWO2020021686A1 (ja) * | 2018-07-26 | 2021-08-02 | 日本電気株式会社 | 解析支援装置、解析支援方法、及びプログラム |
JP7040618B2 (ja) | 2018-07-26 | 2022-03-23 | 日本電気株式会社 | 解析支援装置、解析支援方法、及びプログラム |
US11860604B2 (en) | 2018-07-26 | 2024-01-02 | Nec Corporation | Analysis assistance apparatus, analysis assistance method, and computer-readable recording medium |
Also Published As
Publication number | Publication date |
---|---|
WO2007058882A3 (en) | 2007-07-05 |
CN101356535B (zh) | 2011-08-24 |
US20070107057A1 (en) | 2007-05-10 |
US20100257603A1 (en) | 2010-10-07 |
CN101356535A (zh) | 2009-01-28 |
EP1962220A1 (en) | 2008-08-27 |
WO2007058882A2 (en) | 2007-05-24 |
EP1955249A2 (en) | 2008-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009521737A (ja) | Javascriptプログラムの不安全動作安を検出するため、及び防止するための方法及び装置 | |
US8266700B2 (en) | Secure web application development environment | |
US8800042B2 (en) | Secure web application development and execution environment | |
Stock et al. | Precise client-side protection against {DOM-based}{Cross-Site} scripting | |
Lu et al. | Blade: an attack-agnostic approach for preventing drive-by malware infections | |
KR101442654B1 (ko) | 동작 샌드박싱용 시스템 및 방법 | |
US9058489B2 (en) | Marking documents with executable text for processing by computing systems | |
Kirda et al. | Client-side cross-site scripting protection | |
US20100037317A1 (en) | Mehtod and system for security monitoring of the interface between a browser and an external browser module | |
US11586726B2 (en) | Secure web framework | |
Shalini et al. | Prevention of cross-site scripting attacks (xss) on web applications in the client side | |
Yang et al. | {Iframes/Popups} Are Dangerous in Mobile {WebView}: Studying and Mitigating Differential Context Vulnerabilities | |
Onarlioglu et al. | Sentinel: Securing legacy firefox extensions | |
Satish et al. | Web browser security: different attacks detection and prevention techniques | |
Saini et al. | The darker side of firefox extension | |
Saini et al. | Colluding browser extension attack on user privacy and its implication for web browsers | |
Hadpawat et al. | Analysis of prevention of XSS attacks at client side | |
Raman | JaSPIn: JavaScript based Anomaly Detection of Cross-site scripting attacks | |
Telikicherla et al. | CORP: a browser policy to mitigate web infiltration attacks | |
Xuan et al. | DroidPill: Pwn Your Daily-Use Apps | |
Jansen et al. | Guidelines on active content and mobile code | |
Afonso et al. | A hybrid framework to analyze web and os malware | |
Nayak et al. | Exposing and Addressing Security Vulnerabilities in Browser Text Input Fields | |
Jain | Survey on Web Browser and Their Extensions | |
Wu et al. | Detection of Android Malware Behavior in Browser Downloads |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091104 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091104 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111213 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120410 |