







本発明は、通信回線を通じてコンピュータに不正に侵入する行為に対するセキュリティ処理を施すための情報処理システムに関し、特に、Webアプリケーションの脆弱性に対して対策を施すための技術に関する。 The present invention relates to an information processing system for performing security processing against an act of illegally entering a computer through a communication line, and more particularly to a technique for taking measures against a vulnerability of a Web application.
従来より、他人のユーザIDやパスワードなどを使って、本来自分が利用する権限を持っていないコンピュータを不正に使用したり、OSやアプリケーションソフトなどに存在するセキュリティ上の脆弱性(セキュリティホール)を攻撃してコンピュータに不正に侵入したりする行為が、不正アクセス行為として知られていた。このような不正アクセス行為により、保存しているデータやプログラムが改ざんされたり、コンピュータが利用不能な状態に追い込まれたりするといった被害がしばしば生じていた。近年では特に、Webアプリケーションの脆弱性が狙われる事件が頻繁に起きていて、顧客名簿等の個人情報の流出が社会的にも問題となっている。 Traditionally, unauthorized use of a computer that you do not have the authority to use by using someone else's user ID or password, or security vulnerabilities (security holes) that exist in OS, application software, etc. The act of attacking and intruding into a computer illegally was known as an unauthorized access act. Such unauthorized access actions often caused damage such as tampering with stored data and programs and driving the computer into an unusable state. In recent years, in particular, cases in which vulnerability of Web applications is targeted have frequently occurred, and the leakage of personal information such as customer lists has become a social problem.
Webアプリケーションの脆弱性に対する攻撃としては、いくつかの手法が知られている。主な攻撃手法として、例えば、クロスサイトスクリプティング、ディレクトリトラバーサル、OSコマンドインジェクション、SQLインジェクション等が知られている。従来のファイアウォールは、IPアドレスやポートレベルでのフィルタリングに限定されるため、上述のHTTPレベルの攻撃に対しては、基本的に防御できない。そこで、Webアプリケーションの脆弱性に対する攻撃を防御するためには、従来のファイアウォール等とは別にセキュリティ対策を講じる必要があり、主に以下の2つの対策が採られていた。 Several methods are known as attacks against the vulnerabilities of Web applications. As main attack techniques, for example, cross-site scripting, directory traversal, OS command injection, SQL injection, and the like are known. Since conventional firewalls are limited to filtering at the IP address and port level, they are basically unable to defend against the above-mentioned HTTP level attacks. Therefore, in order to defend against attacks against web application vulnerabilities, it is necessary to take security measures separately from conventional firewalls, and the following two measures have been mainly taken.
1つは、Webアプリケーション毎の個別対策、すなわち、Webアプリケーションそのものにセキュリティチェック機能の作り込みを行うことである。Webアプリケーションはユーザが独自に作ることが多いため、Webアプリケーションの開発段階で、上記攻撃を防御または阻止するようにWebアプリケーションを作りこめばよい。 One is to create a security check function for each Web application, that is, the Web application itself. Since a web application is often created by a user, the web application may be created so as to prevent or prevent the attack at the development stage of the web application.
もう1つは、Webアプリケーションファイアウォールの導入による一括対策である。Webアプリケーションファイアウォールは、アプリケーションレベルで動作するため、HTTP等の内容を見て不正なアクセスと判定した場合には、そのリクエストまたはレスポンスをWebサーバに渡す前に拒否することが可能となる。このようなWebアプリケーションファイアウォールとして、例えば、mod_securityが知られている(非特許文献1)。mod_securityは、リクエストの中に設定登録したキーワードが含まれているかどうかを判断するものであり、GETやPOSTなどのリクエストに対してフィルタリングを行う機能などを有している。
ところで、Webアプリケーション毎に個別対策をするためには、Webアプリケーションの開発者自身がセキュリティに対する高度の専門知識を持つことが要求されるが、そのような専門知識を開発者が持ち、またフォローアップすることは困難であった。また、専門知識を有していたとしても、ちょっとしたミスや見落としによって、Webアプリケーションに脆弱性が作り込まれてしまうことがあった。さらに、開発段階で脆弱性に気付いていても、納期や予算の関係等で、そのままの状態で運用せざるを得ないこともある。 By the way, in order to take individual measures for each web application, it is required that the developer of the web application itself has a high level of security expertise. The developer has such expertise and follows up. It was difficult to do. Even if you have expertise, vulnerabilities may be built into Web applications due to minor mistakes or oversights. Furthermore, even if the vulnerability is noticed at the development stage, it may be forced to operate as it is due to the delivery date and budget.
一方、mod_securityなどのWebアプリケーションファイアウォールを導入する場合、複数のWebアプリケーションの全てのリクエストに適用される最大公約数的な一律な対策を取ることはできるが、個々のWebアプリケーションの個別のパラメータ毎にきめ細かく検査項目を設定することはできなかった。そのため、きめ細かく個別にセキュリティチェックしようとすると、Webアプリケーションファイアウォールのみに頼るのでなく、結局、Webアプリケーション毎に作り込みを行わざるを得なかった。 On the other hand, when a web application firewall such as mod_security is introduced, it is possible to take a uniform measure of the greatest common divisor applied to all requests of a plurality of web applications, but for each individual parameter of each web application. The inspection items could not be set in detail. For this reason, when trying to perform a detailed security check individually, it is not necessary to rely only on the Web application firewall, but eventually it has to be built for each Web application.
本発明は、かかる実情に鑑み、Webアプリケーションの脆弱性対策として必要な処理をライブラリとして提供することを目的としている。特に、個々のWebアプリケーションの個別のパラメータ毎にきめ細かく検査項目を設定可能なツールを提供しようとするものである。 In view of such circumstances, an object of the present invention is to provide, as a library, processing necessary as a countermeasure for vulnerability of a Web application. In particular, the present invention intends to provide a tool capable of finely setting inspection items for each individual parameter of each Web application.
上記課題を解決するため、本発明の情報処理システムは、個別のパラメータ毎に、1以上の検査項目に対する検査の要否を対応付けて記憶する設定ファイルと、所定の攻撃に対する検査等を行う検査プログラムを、検査項目毎にそれぞれ記憶するライブラリと、Webアプリケーションにリクエストが入力されたとき、上記設定ファイルを参照して、上記リクエストの引数として渡されるパラメータに基づいて、検査を要する検査項目を特定し、当該特定した検査項目の検査プログラムを上記ライブラリから呼び出して実行する入力値検査手段と、を備える。かかる発明によれば、Webアプリケーションの脆弱性対策をパラメータ毎に容易かつ効率的に行うことができる。 In order to solve the above problems, the information processing system according to the present invention includes a setting file that stores the necessity of inspection for one or more inspection items in association with each individual parameter, and an inspection that performs an inspection for a predetermined attack, etc. A library that stores the program for each inspection item, and when a request is input to the Web application, the inspection file that requires inspection is specified based on the parameter passed as an argument of the request with reference to the setting file And input value inspection means for calling and executing the inspection program for the specified inspection item from the library. According to this invention, it is possible to easily and efficiently perform vulnerability countermeasures for Web applications for each parameter.
また、上記情報処理システムにおいて、上記検査プログラムは、上記リクエストの引数として渡されるパラメータが、所定の文字または文字列を含んでいるか否かを検出する機能と、パラメータが所定の文字または文字列を含んでいることを検出した場合には、当該文字または文字列を別の文字または文字列に置換(サニタイズ)する処理、または、エラー処理を実行する機能と、を備える。かかる発明によれば、Webアプリケーションの脆弱性対策として、サニタイズ又はエラー処理を行うことが可能となる。 In the information processing system, the inspection program detects whether the parameter passed as an argument of the request includes a predetermined character or character string, and the parameter includes a predetermined character or character string. When it is detected that the character string is included, a function of replacing (sanitizing) the character or character string with another character or character string or a function of executing error processing is provided. According to this invention, it is possible to perform sanitization or error processing as a countermeasure for vulnerability of the Web application.
さらに、上記情報処理システムにおいて、上記検査項目は、URLで使用が許可されない文字を使用しているかどうかの検査、OSコマンドインジェクションの検査、ディレクトリトラバーサルの検査、SQLインジェクションの検査、またはクロスサイトスクリプティングの検査、のいずれかを含むことを特徴とする。かかる発明によれば、公知の攻撃に対して、Webアプリケーションの脆弱性対策を容易かつ効率的に行うことができる。 Further, in the information processing system, the inspection item is an inspection of whether or not a character that is not permitted in the URL is used, an inspection of OS command injection, an inspection of directory traversal, an inspection of SQL injection, or cross-site scripting. Including any of inspection. According to this invention, it is possible to easily and efficiently take measures against vulnerability of Web applications against known attacks.
好適には、上記情報処理システムにおいて、上記入力値検査手段は、OSコマンドインジェクションの検査を、他の検査よりも後に行うように制御されることを特徴とする。かかる発明によれば、Webアプリケーションの脆弱性対策処理を効率的に実行することが可能となる。 Preferably, in the information processing system, the input value inspection unit is controlled to perform an OS command injection inspection after other inspections. According to this invention, it becomes possible to efficiently execute the vulnerability countermeasure processing of the Web application.
また、上記情報処理システムにおいて、上記設定ファイルはさらに、パラメータ毎に、入力を許可する書式のルールを記憶可能に構成され、上記入力値検査手段は、上記設定ファイルに入力を許可する書式のルールが記憶されていれば上記ルールを参照して、上記受信手段により受信した入力の引数として渡されるパラメータが上記書式のルールを満たす場合には、エラーと判定しないで、当該パラメータを受け入れることを特徴とする。かかる発明は、例外的に入力を許可したい場合に有効である。 Further, in the information processing system, the setting file is further configured to be able to store a rule of a format allowing input for each parameter, and the input value checking means is a rule of a format allowing input to the setting file. If the parameter passed as the input argument received by the receiving means satisfies the rule of the above format, the parameter is accepted without determining that it is an error. And This invention is effective when it is desired to permit input exceptionally.
さらに、上記情報処理システムにおいて、上記設定ファイルの設定内容に基づいて、Webアプリケーションの脆弱性を判定することを特徴とする。かかる発明によれば、設定ファイルを使用するのみで、Webアプリケーションのセキュリティ対策の程度を把握することが可能となる。 Furthermore, in the information processing system, the vulnerability of the Web application is determined based on the setting contents of the setting file. According to this invention, it becomes possible to grasp the level of security measures for the Web application only by using the setting file.
また、個別のパラメータ毎に、1以上の検査項目に対する検査の要否を対応付けて記憶する設定ファイルと、所定の攻撃に対する検査等を行う検査プログラムを、検査項目毎にそれぞれ記憶するライブラリと、を備える情報処理システムにおいて、Webアプリケーションに入力されるリクエストの検査を行う情報処理方法であって、Webアプリケーションにリクエストが入力されたとき、上記設定ファイルを参照して、上記リクエストの引数として渡されるパラメータに基づいて、検査を要する検査項目を特定するステップと、上記特定した検査項目の検査プログラムを上記ライブラリから呼び出して実行するステップと、を備える。 Further, for each individual parameter, a setting file for storing the necessity of inspection for one or more inspection items in association with each other, a library for storing an inspection program for performing inspection for a predetermined attack, etc. for each inspection item, An information processing method for inspecting a request input to a Web application in an information processing system comprising: when a request is input to the Web application, the configuration file is referenced and passed as an argument of the request The method includes a step of specifying an inspection item that requires inspection based on the parameter, and a step of calling and executing the inspection program of the specified inspection item from the library.
さらに好適には、上記情報処理方法において、上記ライブラリは、少なくとも、OSコマンドインジェクションの検査を行う検査プログラムを備え、検査プログラムを上記ライブラリから呼び出して実行するにあたり、OSコマンドインジェクションの検査プログラムを、他の検査プログラムよりも後に実行するように制御されることを特徴とする情報処理方法。 More preferably, in the information processing method, the library includes at least an inspection program for inspecting an OS command injection, and when the inspection program is called from the library and executed, An information processing method controlled to be executed after the inspection program.
本発明のプログラムは、本発明の情報処理方法の各ステップをコンピュータに実行させることを特徴とする。本発明のプログラムは、CD−ROM等の光学ディスク、磁気ディスク、半導体メモリなどの各種の記録媒体を通じて、又は通信ネットワークなどを介してダウンロードすることにより、コンピュータにインストール又はロードすることができる。 The program of the present invention causes a computer to execute each step of the information processing method of the present invention. The program of the present invention can be installed or loaded on a computer through various recording media such as an optical disk such as a CD-ROM, a magnetic disk, or a semiconductor memory, or via a communication network.
なお、本明細書等において、手段とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合も含む。また、1つの手段が有する機能が2つ以上の物理的手段により実現されても、2つ以上の手段の機能が1つの物理的手段により実現されてもよい。 In this specification and the like, the means does not simply mean a physical means, but includes a case where the functions of the means are realized by software. Further, the function of one means may be realized by two or more physical means, or the functions of two or more means may be realized by one physical means.
なお、本明細書等において、Webアプリケーションとは、Webブラウザからのリクエストに応じてプログラムを実行し、結果をクライアントに送信するアプリケーションのことをいう。例えば、CGI(Common Gateway Interface)を使用して、Webブラウザからの要求に応じて、動的にページを生成する機能や、データベースと連携したトランザクション処理を行う機能などを有する。また、リクエストとは、Webアプリケーションに対して所定の処理等を要求することをいう。 In this specification and the like, a Web application refers to an application that executes a program in response to a request from a Web browser and transmits a result to a client. For example, using a common gateway interface (CGI), it has a function of dynamically generating a page in response to a request from a Web browser, a function of performing transaction processing in cooperation with a database, and the like. A request means a request for a predetermined process or the like to a Web application.
本発明によれば、Webアプリケーションの脆弱性対策として必要な処理をライブラリとして提供し、特に、個々のWebアプリケーションの個別のパラメータ毎にきめ細かく検査項目を設定可能なツールを提供することが可能となる。また、本ツールを使用することによって、Webアプリケーション開発の工数およびコストを削減することができるという優れた効果を奏し得る。 According to the present invention, it is possible to provide processing necessary as a countermeasure against vulnerability of a Web application as a library, and in particular, it is possible to provide a tool that can set inspection items in detail for each individual parameter of each Web application. . In addition, by using this tool, it is possible to achieve an excellent effect that man-hours and costs for developing a Web application can be reduced.
以下、本情報処理システムの実施の形態について図面を参照しつつ説明する。 Hereinafter, an embodiment of the information processing system will be described with reference to the drawings.
図1は、本実施形態に係る情報処理システムの概略構成を示す図である。図1に示すように、本情報処理システム10は、クライアント端末20と所定のネットワーク(インターネット等のネットワーク)30を介して相互に接続されることにより構成される。 FIG. 1 is a diagram illustrating a schematic configuration of an information processing system according to the present embodiment. As shown in FIG. 1, the
情報処理システム10は、1以上のコンピュータがLANで接続されて構成され、例えば、Web情報を送信するWebサーバ12、Webアプリケーションを実行するWebアプリケーションサーバ14、データベースを操作するデータベースサーバ16、およびファイアウォール18を備える。ここで、Webサーバ12は、Webブラウザなどのクライアントソフトウェアの要求に応じて、インターネットなどのネットワークを通じて、HTML文書や画像、Webアプリケーションによる処理結果等を送信する機能を有するコンピュータ又はソフトウェアである。Webアプリケーションサーバ14とは、Webアプリケーションを実行して各種の業務処理を行う機能を有するコンピュータ又はソフトウェアである。また、データベースサーバ16とは、リクエストに応じてデータベースに蓄積された情報を検索・出力する機能を有するコンピュータ又はソフトウェアである。ファイアウォール18とは、IPアドレスやポートレベルでのフィルタリングを行うコンピュータ又はソフトウェアである。 The
Webサーバ12、Webアプリケーションサーバ14、およびデータベースサーバ15は、単一のコンピュータより構成されるものであっても、LANで接続された複数のコンピュータより構成されるものであってもよい。また、単一のコンピュータが複数のサーバ機能を備えてもよい。 The
クライアント端末20は、情報処理システム10との間で通信を行って、各種の情報を送受信するための端末装置であり、好適には、Webページをブラウジングする機能を備えている。例えば、情報処理システム10のWebサーバ12に情報を要求(リクエスト)したり、Webサーバ12またはWebアプリケーションサーバ14の提供する情報を受信して表示したりする。クライアント端末20は、いわゆるパーソナルコンピュータ等、汎用のコンピュータや携帯端末装置を適用することができるが、情報処理システム10との間で通信を行って情報を送受信できるものであればよい。 The
ネットワーク30は、情報処理システム10とクライアント端末20との間で情報を送受信するための通信回線である。例えば、LAN、インターネット、専用線、パケット通信網、電話回線、企業内ネットワーク、その他の通信回線、それらの組み合わせ等のいずれであってもよく、有線、無線の両方を含むものである。 The
図2は情報処理システム10の備えるコンピュータの概略構成を示すブロック図である。情報処理システム10の備えるコンピュータは、図2に示すようなCPU101、ROMやRAM等のメモリ102、各種の情報を格納する外部記憶装置103、入力インタフェース104、出力インタフェース105、通信インタフェース106及びこれらを結ぶバス107を備える汎用のコンピュータを適用することができる。 FIG. 2 is a block diagram illustrating a schematic configuration of a computer included in the
図3は、本実施形態の情報処理システム10の機能構成を示したブロック図である。図3に示すように、情報処理システム10は、本実施形態における主な構成として、ネットワーク30と接続され、クライアント端末20との間でデータ通信を行うための通信部110と、Webアプリケーション120と、各種情報を記憶するための記憶部130とを備える。 FIG. 3 is a block diagram illustrating a functional configuration of the
Webアプリケーション120は、設定ファイル132の格納先、ライブラリ134へのパス、エラー情報の出力先等を設定するための初期化処理手段122と、Webアプリケーションへのリクエストの引数として渡されるパラメータに基づいて、必要な検査項目を特定し、当該特定した検査項目に係る検査プログラムを呼び出してパラメータの検査を行う入力値検査手段124と、検査の結果、パラメータに危険な文字または文字列が含まれていると判断された場合に、エラー情報を出力するエラー情報出力手段126と、設定ファイル132の設定内容に基づいて、セキュリティレベルをレポートするためのセキュリティレベル判定手段128とをさらに備える。入力値検査手段124は、後述の設定ファイル132とライブラリ134とを用いてパラメータの検査を行う。なお、これらの各機能手段は、CPUが、メモリ、外部記憶装置などに記憶された所定のプログラム(本発明の方法を規定したプログラム等)を実行することにより実現される。 The
記憶部130は、各パラメータに対して、検査項目毎に検査を要するか否かを対応付けて記憶する設定ファイル132と、所定の攻撃手法に対する検査用のプログラムを記憶するライブラリ134とをさらに備える。ライブラリ134は、Webアプリケーションの脆弱性の対策を行うためのプログラム(関数)群をまとめたものである。所定の攻撃等に対する検査を示す検査項目毎に、当該検査を行うためのプログラムを備える。そして、検査したい入力パラメータを本ライブラリで提供されるプログラムに渡すと、検査指示に従い危険文字または許可文字のチェック、および所定の攻撃に対しては入力パラメータの無害化(サニタイズ)等を行う。 The
本実施形態におけるライブラリは、URL使用許可文字のチェック、並びに、OSコマンドインジェクション、ディレクトリトラバーサル、SQLコマンドインジェクション、及びクロスサイトスクリプティングの各攻撃の検査、という検査項目を実行するためのプログラム群を提供する。各検査プログラムの動作の概略は次のとおりである。すなわち、各検査プログラム毎に、それぞれ危険文字または文字列(以下、文字または文字列をあわせて「文字列」という)が予め設定されている。サニタイズ処理を行う場合には、サニタイズ後の文字列も予め設定される。そして、渡されたパラメータが当該危険文字列と一致するかどうかをパターンマッチングにより検索し、危険文字列と一致する場合、サニタイズ後の文字列が設定されていれば危険文字列の置換処理(サニタイズ処理)を行い、それ以外の場合は、エラー情報を返す。 The library according to the present embodiment provides a program group for executing inspection items such as URL use permission character check, and OS command injection, directory traversal, SQL command injection, and cross-site scripting inspection inspection. . The outline of the operation of each inspection program is as follows. That is, for each inspection program, a dangerous character or a character string (hereinafter referred to as a “character string” together with the character or the character string) is set in advance. When the sanitization process is performed, a character string after sanitization is also set in advance. Then, pattern matching is used to search whether the passed parameter matches the dangerous character string. If it matches the dangerous character string, if the string after sanitization is set, the dangerous character string replacement process (sanitize) Otherwise, return error information.
URL使用許可文字のチェックを行うための検査プログラムは、「|」、「<」、「>」など、URLでの使用が許可されない文字を使用していないかどうかをチェックする。使用許可文字以外の文字を検出したときには、エラー情報を返す。なお、本検査項目は、URLのパラメータ部が環境変数として設定される「QUERY_STRING」と「PATH_INFO」の場合のみ処理対象としてもよい。 The inspection program for checking the URL use permission character checks whether or not a character such as “|”, “<”, “>” or the like that is not permitted to be used in the URL is used. When a character other than the permitted characters is detected, error information is returned. This inspection item may be a processing target only in the case of “QUERY_STRING” and “PATH_INFO” in which the parameter part of the URL is set as an environment variable.
OSコマンドインジェクションの検査プログラムは、検査対象パラメータに、OS用のコマンドとして使用される文字が投入されていた場合にエラー情報を返す。例えば、パラメータに「&」、「;」、「|」、「<」、「>」などの文字が含まれている場合はエラーと判定する。なお、OSコマンドインジェクションとは、リクエストにOSコマンドを混ぜ込み、サーバ上で任意のOSコマンドを実行させる攻撃であり、「open()」、「system()」、「exec()」等の危険関数・演算子にパラメータを引数として与えてしまう場合に、セキュリティ上の問題となる。 The inspection program for OS command injection returns error information when a character used as an OS command is input to the inspection target parameter. For example, if the parameter includes characters such as “&”, “;”, “|”, “<”, “>”, it is determined as an error. The OS command injection is an attack that mixes an OS command in a request and executes an arbitrary OS command on the server, and is dangerous such as “open ()”, “system ()”, “exec ()”, etc. If a parameter is given to a function or operator as an argument, it becomes a security problem.
ディレクトリトラバーサルの検査プログラムは、CGI変数をファイルパス名の一部として使用している場合、該当する変数(パラメータ)にこのチェックを行う。「../」、「./」など、外部入力に相対パスが投入されるとエラー情報を返す。 The directory traversal inspection program performs this check on the corresponding variable (parameter) when the CGI variable is used as a part of the file path name. Error information is returned when a relative path is input to an external input such as “../” or “./”.
SQLコマンドインジェクションの検査プログラムは、CGI変数をSQLの一部として使用する場合にチェックを行うものであり、禁止文字列を検出すると、自動的にサニタイズを行い、処理を継続する。例えば、「’(シングルクォート)」、「¥(バックスラッシュ)」、「%」などの文字列を検出したとき、それぞれ「’’」、「¥¥」、「¥¥%」に置換するというサニタイズ処理を行う。 The SQL command injection inspection program checks when a CGI variable is used as a part of SQL, and when a prohibited character string is detected, it automatically sanitizes and continues the process. For example, when a character string such as “'(single quote)”, “¥ (backslash)”, “%” is detected, it is replaced with “' '”, “¥¥”, “¥¥%”, respectively. Process.
クロスサイトスクリプティングの検査プログラムは、クロスサイトスクリプティング攻撃で使用される文字列の有無をチェックするものであり、禁止文字列を検出すると、サニタイズできるものは自動的にサニタイズを行い、処理を継続する。サニタイズできない場合は、エラー情報を返す。例えば、「<」、「>」、「”」、「’」、「&」などのようにHTMLエンコードでサニタイズできる文字列を検出した場合は、それぞれ「&lt;」、「&gt;」、「&#39;」、「&quot;」、「&amp;」に置換する。また、例えば、「javascript:」、「about:」などの擬似プロトコルを使う危険文字列を検出した場合、及び、「onload」、「onclick」などの危険なイベントハンドラ文字列を検出した場合は、サニタイズできないためエラー情報を返す。 The cross-site scripting inspection program checks for the presence of a character string used in a cross-site scripting attack. When a prohibited character string is detected, the one that can be sanitized is automatically sanitized and the processing is continued. If sanitization is not possible, error information is returned. For example, when a character string that can be sanitized by HTML encoding, such as “<”, “>”, “” ”,“ ′ ”,“ & ”, is detected,“ < ”,“ > ”,“ ', """, "&". For example, when a dangerous character string using a pseudo protocol such as “#"setting file" filenames="2007047884-5.png,2007047884-8.png" state="{{state}}">setting file 132 in a regular expression in advance, detects whether the passed parameter satisfies the rule, and allows the input parameter to be permitted. When the character string rule is satisfied, a program having a function of permitting use of the input parameter is provided. As a result, the administrator of the Web application can set and register a character string or the like that should be allowed to be used exceptionally, so that fine security settings can be made. This function is particularly effective when a failure occurs only by using the inspection program provided in advance by the
なお、本実施形態のライブラリでは、SQLコマンドインジェクション及びクロスサイトスクリプティングの各検査プログラムは、自動的にサニタイズして処理を継続するものであるが、サニタイズを行わないで、禁止文字列を検出するとエラー情報を返すものとしてもよい。なお、検出する文字列を全角文字で例示しているが、実際に検出するのは半角文字である。 In the library of this embodiment, the SQL command injection and cross-site scripting inspection programs automatically sanitize and continue processing. However, if a prohibited character string is detected without sanitizing, an error occurs. Information may be returned. In addition, although the character string to detect is illustrated by the full-width character, what is actually detected is a half-width character.
次に、情報処理システム10の記憶部130が備える設定ファイル132のデータ構成について、図4を用いて説明する。 Next, the data structure of the
図4は、本実施形態における設定ファイル132の構成を示した概略図である。設定ファイル132は、各パラメータ毎に、検査項目を設定登録するものである。図4において、「入力許可正規表現」、「URL」、「OS」、「DT」、「SQL」、「XSS」は、それぞれ検査項目名を示している。「入力許可正規表現」とは、入力を許可する文字種別に関する検査項目である。「URL」は、URL使用許可文字のチェックを示す。「OS」は、OSコマンドインジェクションの検査を示す。「DT」は、ディレクトリトラバーサルの検査を示す。「SQL」は、SQLインジェクションの検査を示す。「XSS」は、クロスサイトスクリプティングの検査を示す。 FIG. 4 is a schematic diagram showing the configuration of the
Webアプリケーションの管理者等は、各パラメータ毎に、検査を要する検査項目を予め個別に設定する。「URL」、「OS」、「DT」、「SQL」、「XSS」の各検査項目については、検査を要する場合は「1」をセットする。「入力許可正規表現」は、入力を許可する文字種別のルールを正規表現で記述する。また、検査を要しない検査項目には「0」をセットする。 A Web application administrator or the like individually sets in advance inspection items that require inspection for each parameter. For the inspection items “URL”, “OS”, “DT”, “SQL”, and “XSS”, “1” is set when inspection is required. “Input-permitted regular expression” describes a rule of a character type that permits input in a regular expression. In addition, “0” is set to an inspection item that does not require inspection.
図4(a)の例では、パラメータ名「ENQ_FILE」に対しては、AからZまでの英字3文字プラス0から9までの数字5文字で記述されていれば入力を許可し、さらに、「URL」、「OS」、「DT」、「SQL」、「XSS」の各検査を行うことを示している。また、パラメータ名「PRESENT」に対しては、「SQL」の検査のみを行うことを示している。 In the example of FIG. 4A, the parameter name “ENQ_FILE” is permitted to be input if it is described by 3 alphabetic characters from A to Z plus 5 numerals from 0 to 9, and “ This indicates that each inspection of “URL”, “OS”, “DT”, “SQL”, and “XSS” is performed. For the parameter name “PRESENT”, only “SQL” is inspected.
また、全てのパラメータをまとめて、一律に検査を要する検査項目を設定することもできる。例えば、設定ファイルにおいて、パラメータ名「ALLPARAM」を用いた設定は、全てのパラメータに適用されるものとしてもよい。図4の(b)に示す例は、全てのパラメータに対して一律に、「URL」、「OS」、「DT」、「SQL」、「XSS」の各検査を行うことを示している。なお、ALLPARAMを使用して全てのパラメータに適用される検査項目を設定した上で、更に個別のパラメータについて特有の検査を行いたい場合は、ALLPARAMを定義した設定ファイルと、個別に検査したいパラメータだけを定義した設定ファイルを別に作成して、ライブラリを二回呼ぶようにしてもよい。これは例えば、ALLPARAMを用いて、最大公約数的なルールを設定し、あるパラメータのみについて、さらに追加ルールを設定したいような場合に有効である。 It is also possible to set inspection items that require uniform inspection by putting all parameters together. For example, the setting using the parameter name “ALLPARAM” in the setting file may be applied to all parameters. The example shown in (b) of FIG. 4 indicates that each inspection of “URL”, “OS”, “DT”, “SQL”, and “XSS” is performed uniformly for all parameters. If you want to perform specific inspections for individual parameters after setting inspection items that apply to all parameters using ALLPARAM, only the settings file that defines ALLPARAM and the parameters that you want to individually inspect. It is also possible to create a separate configuration file that defines the library and call the library twice. This is effective, for example, when using ALLPARAM to set a rule of the greatest common divisor and to set an additional rule only for a certain parameter.
なお、図4の例では、テーブル形式で設定ファイルを管理する例を示したが、各パラメータ毎に検査を要する検査項目を個別に設定可能な形式であれば、これに限定されるものではない。 In the example of FIG. 4, an example in which the setting file is managed in a table format is shown. However, the configuration file is not limited to this as long as the inspection items that require inspection for each parameter can be individually set. .
次に、上記のように構成される情報処理システムの動作の概要について説明する。 Next, an outline of the operation of the information processing system configured as described above will be described.
図5は、本実施形態における情報処理システムによる処理の流れを示すフローチャートである。まず、情報処理システム10の通信部110がクライアント端末20からWebアプリケーションに対するリクエストを受け付ける(S500)。次に、入力値検査手段124は、受信したリクエストからパラメータを抽出する。そして、初期化処理手段122の設定に基づいて設定ファイル132を参照して、当該パラメータについて、検査を要する検査項目を特定する(S510)。その後、入力検査手段124は検査を要する検査項目について検査を実行する(S520〜S570)。 FIG. 5 is a flowchart showing a flow of processing by the information processing system in the present embodiment. First, the
まず、入力許可正規表現のチェックを行う場合、すなわち、設定ファイル132の入力許可正規表現に入力を許可する書式のルールが正規表現で設定されている場合は、入力パラメータが当該書式のルールに合致するかどうかをチェックする。合致する場合は、そのまま処理を継続する。一方、合致しない場合はエラー情報を返して、処理を中断・終了する。入力許可正規表現に0がセットされている場合は、入力許可正規表現のチェックを行うことなく処理を継続する(S520)。 First, when checking the input permission regular expression, that is, when the rule of the format allowing input to the input permission regular expression of the
次に、入力検査手段124は、検査を要する検査項目についてライブラリ134の検査プログラムを呼び出して、検査を実行する。URL使用許可文字のチェック(S530)、ディレクトリトラバーサルの検査(S540)、SQLコマンドインジェクションの検査(S550)、クロスサイトスクリプティングの検査(S560)、OSコマンドインジェクションの検査(S570)を順に行う。SQLコマンドインジェクションの検査及びクロスサイトスクリプティングの検査では、危険文字列を検出したとき、自動的にサニタイズを行い、処理を継続する。また、各検査を実行してエラー情報が返ってきた場合は処理を中断・終了するが、そうでない場合は、処理を継続する。また、検査を要しない検査項目については、その検査を行うことなく処理を継続する。なお、エラー情報が返ってきた場合に、エラー情報をログに記録してもよい。これにより、エラーの分析が可能となり、分析結果をセキュリティ対策に反映させることができる。また、エラー情報が返ってきた場合に、予め設定した者に対して、電子メールを送付するようにしてもよい。これにより、Webアプリケーションが攻撃を受けた場合に、素早く対策を取ることが可能となる。 Next, the
ところで、本実施形態では、OSコマンドインジェクションの検査は、サニタイズが必要な検査の後、すなわち、コマンドインジェクションの検査及びクロスサイトスクリプティングの検査の後に行う。そして、OSコマンドインジェクションの検査では、「&(アンパサント)」や「;(セミコロン)」等を検出するが、サニタイズ後に現れる文字列とパターンマッチングして、検出した文字列がサニタイズ後の文字列であると判定すれば、OSコマンドインジェクション攻撃の危険はない、すなわち、エラーではないと判断し、そのまま処理を継続する。ここで、サニタイズ後に現れる文字列とは、例えば、前述の「&lt;」、「&gt;」、「&#39;」、「&quot;」、「&amp;」などである。 By the way, in this embodiment, the OS command injection inspection is performed after the inspection that requires sanitization, that is, after the command injection inspection and the cross-site scripting inspection. In the inspection of the OS command injection, “& (ampersand)”, “; (semi-colon)”, etc. are detected, but pattern matching is performed with the character string that appears after sanitization, and the detected character string is the character string after sanitization. If it is determined that there is an OS command injection attack, that is, it is determined that there is no error, and the processing is continued as it is. Here, the character string that appears after sanitization is, for example, “<”, “>”, “'”, “"”, “&”, and the like.
仮に、OSコマンドインジェクションの検査をサニタイズが必要な検査の前に行ってしまうと、例えば、パラメータに「&」が含まれる場合、OSコマンドインジェクションの検査の段階で「&」を検出すると、当該「&」が以後の検査でサニタイズ可能かどうかに関わらず危険文字列と判断して、エラー情報を返し、処理を中断・終了してしまう。これに対して、OSコマンドインジェクションの検査を、サニタイズが必要な検査の後にもってくると、当初のリクエスト中に「&」や「;」が存在しても、OSコマンドインジェクションの検査を行う段階で既にサニタイズされている。したがって、OSコマンドインジェクションの検査を行う段階で「&」や「;」を検出しても、これらがサニタイズ後の文字列(「&anp;」等)であれば、エラーと判断しないで処理を継続すればよい。これにより、エラーによる処理の中断を極力なくしつつ、OSコマンドインジェクション攻撃に対する防御を適切に取ることが可能となる。 If the OS command injection inspection is performed before the inspection that requires sanitization, for example, if “&” is included in the parameter, if “&” is detected at the stage of the OS command injection inspection, the “ Regardless of whether “&” can be sanitized in subsequent inspections, it is determined to be a dangerous character string, error information is returned, and the process is interrupted or terminated. On the other hand, if the inspection of OS command injection comes after the inspection that requires sanitization, even if “&” and “;” are present in the initial request, at the stage of performing the inspection of OS command injection. Already sanitized. Therefore, even if "&" or ";" is detected at the stage of performing the OS command injection inspection, if these are character strings after sanitization ("&" etc.), the processing is continued without determining that there is an error. do it. As a result, it is possible to appropriately protect against an OS command injection attack while minimizing interruption of processing due to an error.
なお、検査を行う順番は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。本実施形態では、OSコマンドインジェクションの検査を、サニタイズが必要な検査の後に行うという以外、検査を行う順番は任意に決定可能である。しかしながら、OSコマンドインジェクションの検査以外の検査について、一般的には、発生頻度の高い処理を先に行う方がトータルの処理スピードを早くすることができる。なお、本実施形態の検査順序は、発生頻度を踏まえた検査順序の一例である。 Note that the inspection order can be arbitrarily changed or executed in parallel as long as the processing contents do not contradict each other. In the present embodiment, the order of performing the inspection can be arbitrarily determined except that the inspection of the OS command injection is performed after the inspection that requires sanitization. However, for inspections other than the OS command injection inspection, it is generally possible to increase the total processing speed by performing processing with high occurrence frequency first. Note that the inspection order of the present embodiment is an example of an inspection order based on the occurrence frequency.
以下、本情報処理システムの機能や動作を実施例に基づいて詳細に説明する。 Hereinafter, functions and operations of the information processing system will be described in detail based on examples.
図6はWebアプリケーションに本発明のライブラリを呼び出す処理を組み込んだ場合の概略構成図である。本ライブラリを使用して脆弱性対策を施す場合、Webアプリケーション中に、初期化処理の設定と検査用関数を呼び出すための記述(スクリプト)を挿入する。初期化処理とは、ライブラリへのパス、設定ファイルの格納先、エラー情報格納用配列変数の宣言、検査対象のパラメータの指定等の初期設定を行うものであり、図3の初期化処理手段122に対応するものである。また、検査用関数の呼び出しとは、本発明のライブラリを呼び出して検査用関数を実行するためのものであり、図3の入力値検査手段124に対応するものである。これにより、Webアプリケーションにリクエストが入力される度ごとに、ライブラリから必要な検査用関数を呼び出して、入力パラメータの検査を行うことが可能となる。 FIG. 6 is a schematic configuration diagram when processing for calling a library of the present invention is incorporated in a Web application. When taking vulnerability countermeasures using this library, a description (script) for calling the setting of initialization processing and the function for inspection is inserted into the Web application. The initialization processing is to perform initialization such as the path to the library, the storage location of the setting file, the declaration of the array variable for storing error information, the specification of the parameter to be inspected, and the initialization processing means 122 of FIG. It corresponds to. The call of the checking function is for calling the library of the present invention and executing the checking function, and corresponds to the input value checking means 124 in FIG. Thus, every time a request is input to the Web application, it is possible to call a necessary checking function from the library and check the input parameter.
図7は複数のWebアプリケーションに本発明のライブラリを呼び出す処理を組み込んだ場合の概略構成図である。本実施例に示すように、Webアプリケーション毎に、異なる設定ファイルを指定することができる。これは、予め複数の設定ファイルを用意しておき、各Webアプリケーションの初期化処理において、それぞれ異なる設定ファイルを指定することにより実現される。これにより、同種のパラメータであっても、Webアプリケーション毎に異なる検査を実行することが可能となる。なお、図7において、初期化処理a、b、cは、図3の初期化処理手段122に対応するものであり、各Webアプリケーションの検査用関数呼び出しとは、図3の入力値検査手段124に対応するものである。 FIG. 7 is a schematic configuration diagram when processing for calling a library of the present invention is incorporated in a plurality of Web applications. As shown in the present embodiment, a different setting file can be designated for each Web application. This is realized by preparing a plurality of setting files in advance and designating different setting files in the initialization process of each Web application. As a result, even for parameters of the same type, different inspections can be executed for each Web application. In FIG. 7, initialization processes a, b, and c correspond to the
図8はWebサーバに本発明のライブラリをプラグインした場合の概略構成図である。本実施例では、Webサーバに本発明のライブラリをプラグインして、上記実施例と同様に初期化処理および検査用関数呼び出しの設定をする。なお、これらは図3の初期化処理手段122および入力値検査手段124に対応するものである。これにより、Webサーバにリクエストが入力された場合、Webアプリケーションにリクエストを渡す前に、パラメータの検査を行うことが可能となる。このとき、実施例2と同様に、複数の設定ファイルを備えることで、リクエストが渡されるWebアプリケーション毎に、異なる検査を実行することが可能となる。なお、本実施例ではWebサーバにプラグインするものとしたが、Webアプリケーションサーバや、ファイアウォールにプラグインしてもよい。 FIG. 8 is a schematic configuration diagram when the library of the present invention is plugged into the Web server. In this embodiment, the library of the present invention is plugged in to the Web server, and the initialization process and the inspection function call are set in the same manner as in the above embodiment. These correspond to the initialization processing means 122 and the input value inspection means 124 of FIG. As a result, when a request is input to the Web server, it is possible to inspect parameters before passing the request to the Web application. At this time, as in the second embodiment, by providing a plurality of setting files, it is possible to execute different inspections for each Web application to which a request is passed. In this embodiment, the plug-in is performed on the Web server. However, the plug-in may be performed on the Web application server or the firewall.
本発明における設定ファイルの設定は、各パラメータ及び各検査項目に対するセキュリティチェック状況を示すので、設定ファイルを使用して、WebアプリケーションまたはWebサイトのセキュリティレベル(安全性)を判定することができる。本実施例では、Webサイトのセキュリティレベルを、各検査項目のスコアと検査項目の網羅性によって評価する例を示す。 Since the setting file setting in the present invention indicates the security check status for each parameter and each inspection item, the setting file can be used to determine the security level (safety) of the Web application or Web site. In this embodiment, an example is shown in which the security level of a website is evaluated based on the score of each inspection item and the coverage of the inspection item.
まず、検査項目ごとにスコアを設定する。例えば、URL使用許可文字のチェックを2点、ディレクトリトラバーサルの検査及びクロスサイトスクリプティングの検査を4点、SQLコマンドインジェクションの検査およびOSコマンドインジェクションの検査を5点、などと設定する。さらに、入力許可正規表現ルールを使用している場合、文字列ごとに与えられた減額スコア分だけ、スコアをマイナスする。例えば、入力許可正規表現で、半角スペースを許可している場合は4点のマイナス、「’」(シングルクォーテーション)を許可している場合は1点のマイナス、などと設定する。次に、設定ファイルでALLPARAM(全パラメータについて一律に適用される設定)を使用している場合は、網羅性スコアを2、ALLPARAMを使用していない場合は、網羅性スコアを1とする。そして、数1式によりセキュリティレベルを算出する。
セキュリティレベル
=網羅性スコア×(検査項目ごとのスコアの和−減額スコア)の平均値 (数1)First, a score is set for each inspection item. For example, the URL use permission character check is set to 2 points, the directory traversal check and the cross-site scripting check are set to 4 points, the SQL command injection check and the OS command injection check are set to 5 points, and the like. Furthermore, when the input permission regular expression rule is used, the score is decremented by the reduced score given for each character string. For example, in an input-permitted regular expression, if a half-width space is permitted, a minus of 4 points is set, and if “'” (single quotation) is allowed, a minus of a point is set. Next, if ALLPARAM (setting uniformly applied to all parameters) is used in the setting file, the completeness score is 2, and if ALLPARAM is not used, the completeness score is 1. Then, the security level is calculated by the equation (1).
Security level = Comprehensiveness score x (Sum of scores for each test item-Average score) (Number 1)
例えば、設定ファイルでALLPARAMを使用し、全検査項目に1をセットした場合、数2式に示すように、セキュリティレベルは満点の40点となる。
2×{5+5+4+4+2}=40 (数2)For example, if ALLPARAM is used in the setting file and 1 is set for all inspection items, the security level is 40 points as shown in Equation 2.
2 × {5 + 5 + 4 + 4 + 2} = 40 (Equation 2)
パラメータAにSQLとOSを除く検査項目に1をセットし、入力許可正規表現で半角スペースを許可して、パラメータBの全検査項目に1をセットした場合、数3式に示すように、セキュリティレベルは13点となる。
1×{(0+0+4+4+2−4)+(5+5+4+4+2)}÷2=13 (数3)If parameter A is set to 1 except for SQL and OS, half-width spaces are allowed in the input allowed regular expression, and 1 is set for all parameters B, the security will be as shown in
1 × {(0 + 0 + 4 + 4 + 2-4) + (5 + 5 + 4 + 4 + 2)} ÷ 2 = 13 (Equation 3)
このように、設定ファイルを使用してセキュリティレベルを算出することができるため、Webサイトの管理者等は、算出されたセキュリティレベルのスコアによって、自己の管理するWebサイトの安全性を容易に把握することが可能となる。なお、スコアの設定はセキュリティポリシー等に応じて設定可能である。 As described above, since the security level can be calculated using the setting file, the administrator of the website can easily grasp the safety of the website managed by the website based on the score of the calculated security level. It becomes possible to do. The score can be set according to a security policy or the like.
なお、本発明の情報処理システムは、上記した実施の形態または実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得るものである。 The information processing system of the present invention is not limited to the above-described embodiments or examples, and various modifications can be made without departing from the gist of the present invention.
10 情報処理システム
20 クライアント端末
30 ネットワーク10
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005228856AJP2007047884A (en) | 2005-08-05 | 2005-08-05 | Information processing system |
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005228856AJP2007047884A (en) | 2005-08-05 | 2005-08-05 | Information processing system |
| Publication Number | Publication Date |
|---|---|
| JP2007047884Atrue JP2007047884A (en) | 2007-02-22 |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005228856APendingJP2007047884A (en) | 2005-08-05 | 2005-08-05 | Information processing system |
| Country | Link |
|---|---|
| JP (1) | JP2007047884A (en) |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010026749A (en)* | 2008-07-18 | 2010-02-04 | Fujitsu Ltd | Check quality analysis support program, method and apparatus |
| JP2010157211A (en)* | 2008-12-31 | 2010-07-15 | Internatl Business Mach Corp <Ibm> | Data processing system and method for monitoring black box web application security scan, and computer program |
| JP2011503715A (en)* | 2007-11-05 | 2011-01-27 | マイクロソフト コーポレーション | Cross-site scripting filter |
| WO2012011270A1 (en)* | 2010-07-21 | 2012-01-26 | 日本電気株式会社 | Web vulnerability patching device, web server, web vulnerability patching method, and program |
| JP2012043344A (en)* | 2010-08-23 | 2012-03-01 | Canon Inc | Information processor, information processing method, and program |
| JP2012527691A (en)* | 2009-05-19 | 2012-11-08 | サイバーセキュアー, インコーポレイテッド | System and method for application level security |
| JP2013512489A (en)* | 2009-11-30 | 2013-04-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method, apparatus, and computer program for security verification |
| JP2013520748A (en)* | 2010-02-26 | 2013-06-06 | アリババ・グループ・ホールディング・リミテッド | Software hot deployment |
| US8646029B2 (en) | 2011-05-24 | 2014-02-04 | Microsoft Corporation | Security model for a layout engine and scripting engine |
| WO2014021190A1 (en) | 2012-08-01 | 2014-02-06 | 三菱電機株式会社 | Program execution device and program analysis device |
| JP2014096124A (en)* | 2012-11-12 | 2014-05-22 | Shunji Sugaya | User terminal, illegal site information management server, illegal request interruption method, and illegal request interruption program |
| JP2014532222A (en)* | 2011-09-29 | 2014-12-04 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Methods, computer program products, and equipment for evaluating downgrader code in application code (automatic detection of defects and incompatibility issues in information flow downgraders) |
| US9342274B2 (en) | 2011-05-19 | 2016-05-17 | Microsoft Technology Licensing, Llc | Dynamic code generation and memory management for component object model data constructs |
| US9430452B2 (en) | 2013-06-06 | 2016-08-30 | Microsoft Technology Licensing, Llc | Memory model for a layout engine and scripting engine |
| JP7320211B1 (en)* | 2023-06-12 | 2023-08-03 | 株式会社エーアイセキュリティラボ | Systems, methods and programs for testing website vulnerabilities |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011503715A (en)* | 2007-11-05 | 2011-01-27 | マイクロソフト コーポレーション | Cross-site scripting filter |
| JP2013242924A (en)* | 2007-11-05 | 2013-12-05 | Microsoft Corp | Cross-site scripting filter |
| JP2010026749A (en)* | 2008-07-18 | 2010-02-04 | Fujitsu Ltd | Check quality analysis support program, method and apparatus |
| JP2010157211A (en)* | 2008-12-31 | 2010-07-15 | Internatl Business Mach Corp <Ibm> | Data processing system and method for monitoring black box web application security scan, and computer program |
| JP2012527691A (en)* | 2009-05-19 | 2012-11-08 | サイバーセキュアー, インコーポレイテッド | System and method for application level security |
| JP2013512489A (en)* | 2009-11-30 | 2013-04-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method, apparatus, and computer program for security verification |
| JP2013520748A (en)* | 2010-02-26 | 2013-06-06 | アリババ・グループ・ホールディング・リミテッド | Software hot deployment |
| JP2012027618A (en)* | 2010-07-21 | 2012-02-09 | Nec Corp | Web vulnerability repair device, web server, web vulnerability repair method, and program |
| WO2012011270A1 (en)* | 2010-07-21 | 2012-01-26 | 日本電気株式会社 | Web vulnerability patching device, web server, web vulnerability patching method, and program |
| US9392011B2 (en) | 2010-07-21 | 2016-07-12 | Nec Corporation | Web vulnerability repair apparatus, web server, web vulnerability repair method, and program |
| JP2012043344A (en)* | 2010-08-23 | 2012-03-01 | Canon Inc | Information processor, information processing method, and program |
| US10248415B2 (en) | 2011-05-19 | 2019-04-02 | Microsoft Technology Licensing, Llc | Dynamic code generation and memory management for component object model data constructs |
| US9342274B2 (en) | 2011-05-19 | 2016-05-17 | Microsoft Technology Licensing, Llc | Dynamic code generation and memory management for component object model data constructs |
| US8646029B2 (en) | 2011-05-24 | 2014-02-04 | Microsoft Corporation | Security model for a layout engine and scripting engine |
| US8881101B2 (en) | 2011-05-24 | 2014-11-04 | Microsoft Corporation | Binding between a layout engine and a scripting engine |
| US8904474B2 (en) | 2011-05-24 | 2014-12-02 | Microsoft Corporation | Security model for a layout engine and scripting engine |
| US9830305B2 (en) | 2011-05-24 | 2017-11-28 | Microsoft Technology Licensing, Llc | Interface definition language extensions |
| US8918759B2 (en) | 2011-05-24 | 2014-12-23 | Microsoft Corporation | Memory model for a layout engine and scripting engine |
| US9830306B2 (en) | 2011-05-24 | 2017-11-28 | Microsoft Technology Licensing, Llc | Interface definition language extensions |
| US9116867B2 (en) | 2011-05-24 | 2015-08-25 | Microsoft Technology Licensing, Llc | Memory model for a layout engine and scripting engine |
| US9244896B2 (en) | 2011-05-24 | 2016-01-26 | Microsoft Technology Licensing, Llc | Binding between a layout engine and a scripting engine |
| US9582479B2 (en) | 2011-05-24 | 2017-02-28 | Microsoft Technology Licensing, Llc | Security model for a layout engine and scripting engine |
| US8689182B2 (en) | 2011-05-24 | 2014-04-01 | Microsoft Corporation | Memory model for a layout engine and scripting engine |
| JP2014532222A (en)* | 2011-09-29 | 2014-12-04 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Methods, computer program products, and equipment for evaluating downgrader code in application code (automatic detection of defects and incompatibility issues in information flow downgraders) |
| US9507933B2 (en) | 2012-08-01 | 2016-11-29 | Mitsubishi Electric Corporation | Program execution apparatus and program analysis apparatus |
| JP5863973B2 (en)* | 2012-08-01 | 2016-02-17 | 三菱電機株式会社 | Program execution device and program analysis device |
| CN104508672B (en)* | 2012-08-01 | 2017-05-17 | 三菱电机株式会社 | Program execution device and program analysis device |
| CN104508672A (en)* | 2012-08-01 | 2015-04-08 | 三菱电机株式会社 | Program execution device and program analysis device |
| WO2014021190A1 (en) | 2012-08-01 | 2014-02-06 | 三菱電機株式会社 | Program execution device and program analysis device |
| JP2014096124A (en)* | 2012-11-12 | 2014-05-22 | Shunji Sugaya | User terminal, illegal site information management server, illegal request interruption method, and illegal request interruption program |
| US9430452B2 (en) | 2013-06-06 | 2016-08-30 | Microsoft Technology Licensing, Llc | Memory model for a layout engine and scripting engine |
| US10282238B2 (en) | 2013-06-06 | 2019-05-07 | Microsoft Technology Licensing, Llc | Memory model for a layout engine and scripting engine |
| US10353751B2 (en) | 2013-06-06 | 2019-07-16 | Microsoft Technology Licensing, Llc | Memory model for a layout engine and scripting engine |
| JP7320211B1 (en)* | 2023-06-12 | 2023-08-03 | 株式会社エーアイセキュリティラボ | Systems, methods and programs for testing website vulnerabilities |
| Publication | Publication Date | Title |
|---|---|---|
| US12282549B2 (en) | Methods and apparatus for malware threat research | |
| US10587647B1 (en) | Technique for malware detection capability comparison of network security devices | |
| US8443449B1 (en) | Silent detection of malware and feedback over a network | |
| US10447730B2 (en) | Detection of SQL injection attacks | |
| RU2610254C2 (en) | System and method of determining modified web pages | |
| JP6155521B2 (en) | Detect and prevent illegal purchases of content on the Internet | |
| CN109155774B (en) | System and method for detecting security threats | |
| Wurzinger et al. | SWAP: Mitigating XSS attacks using a reverse proxy | |
| US8266700B2 (en) | Secure web application development environment | |
| US9183377B1 (en) | Unauthorized account monitoring system and method | |
| US20180075233A1 (en) | Systems and methods for agent-based detection of hacking attempts | |
| JP6001781B2 (en) | Unauthorized access detection system and unauthorized access detection method | |
| JP5863973B2 (en) | Program execution device and program analysis device | |
| US20190222587A1 (en) | System and method for detection of attacks in a computer network using deception elements | |
| JP2007047884A (en) | Information processing system | |
| US20070072661A1 (en) | Windows message protection | |
| CN111177727B (en) | Vulnerability detection method and device | |
| JP5549281B2 (en) | Unauthorized intrusion detection and prevention system, client computer, unauthorized intrusion detection and prevention device, method and program | |
| JP6623128B2 (en) | Log analysis system, log analysis method, and log analysis device | |
| JP5413010B2 (en) | Analysis apparatus, analysis method, and program | |
| Bhuiyan et al. | API vulnerabilities: Current status and dependencies | |
| Sharif | Web attacks analysis and mitigation techniques | |
| TWI470468B (en) | System and method for detecting web malicious programs and behaviors | |
| CN107733853A (en) | Page access method, apparatus, computer and medium | |
| US8433798B2 (en) | Altering software behavior based on internet connectivity |
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal | Free format text:JAPANESE INTERMEDIATE CODE: A131 Effective date:20091013 | |
| A02 | Decision of refusal | Free format text:JAPANESE INTERMEDIATE CODE: A02 Effective date:20100304 |