JP2008299723A - プログラム検証方法、プログラム検証装置 - Google Patents
プログラム検証方法、プログラム検証装置 Download PDFInfo
- Publication number
- JP2008299723A JP2008299723A JP2007146936A JP2007146936A JP2008299723A JP 2008299723 A JP2008299723 A JP 2008299723A JP 2007146936 A JP2007146936 A JP 2007146936A JP 2007146936 A JP2007146936 A JP 2007146936A JP 2008299723 A JP2008299723 A JP 2008299723A
- Authority
- JP
- Japan
- Prior art keywords
- source code
- program
- data
- edge
- data flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
【解決手段】検証対象コード107を、モデル化プログラム302にて、あらかじめ指定された特徴の明細を記述したモデルを作成し、データフロー解析プログラム304にて、モデル化された検証対象ソースコード107を基にしてデータフロー解析し、脆弱性検出プログラム306にて、データフロー解析の結果として出力したデータパスと脆弱性データベース106とを照合することにより、解析したデータパスのうち脆弱経路となるものを検出するにあたり、検証対象ソースコードのデータフローに着目し、上記処理を実行する前に、着目したデータフローを簡易化することにより、検証対象ソースコード107を縮小化する。
【選択図】図3
Description
実施の形態1は、プログラムの特性としての脆弱性を解析する検証対象ソースコードのデータフローに着目し、そのデータフローのうち、当該検証対象ソースコードにおいて定められる所定範囲において、データが外部から入力し、外部へ出力される箇所を定めたデータフローとなる部分とそうでない他のデータフローを区別し、当該他のデータフローを削除して、検証対象ソースコードを簡易化するものである。なお、本実施形態において、説明するソースコードは、Java(登録商標)言語で記述するものとする。また、前記所定範囲とは例えば、Java(登録商標)言語におけるクラスファイルのことを指す。以下、実施の形態1について詳細に説明する。
図1は、本実施形態のプログラム検証方法を実行するコンピュータ(プログラム検証装置)の構成の一例を図示したものである。
コンピュータ100は、制御手段として機能するプロセッサ101と、記憶手段のうち外部記憶装置として機能するメモリ102と、プロセッサ101が直接読み込む主記憶装置として機能する記憶装置103と、本実施形態のプログラム検証方法の実行を指示する入力手段として機能するキーボード110および表示手段として機能するディスプレイ109から構成されている。
図2は、検出ソフトウェアプログラム104においてなされるデータの入出力の概要を、ブロック図として図示したものである。検出ソフトウェアプログラム104は、検証対象となる検証対象ソースコード107を入力して解析し、脆弱性データベース106に登録されている発生点および使用点を読み出し、それらを基に検証対象ソースコード107(検証対象ソースコード107を簡略化した簡易ソースコード105)に存在する脆弱経路を検出し、検出した脆弱経路を解析結果108として、記憶装置103若しくはディスプレイ109のいずれか、または両方に出力する。
次に、本実施形態で実行されるプログラム検証方法の処理手順について詳細に説明する。
簡易化プログラム301は、ソースコードのうちデータフローに着目して不要部分を削除し簡易化するプログラムである。検証対象ソースコード107について、データフローに必要となる部分(コード)のみを抽出し、抽出されなかったコードは不要部分であると認定し、その不要部分を削除することで検証対象ソースコード107の簡易化、つまり、ソースコードサイズの縮小化を実現する。
まず、検証対象ソースコード107を構文解析プログラム400により構文解析し、構文解析した検証対象コード107に対して、データフロー解析プログラム401によりデータフロー解析を行う。その解析結果として、あるデータフローを構成するエッジを取得する。エッジには、あるデータフローの開始点である開始エッジと、そのデータフローの終端点である終了エッジとがあり、開始エッジと終了エッジを関連付けたデータを「エッジデータ」と呼ぶ。例えば、検証対象ソースコード107として、図5に示すような、簡易化の対象となるJava(登録商標)言語で記述したソースコード500を採りあげる場合、構文解析プログラム400により構文解析し、データフロー解析プログラム401によりデータフロー解析したとき、その解析結果として図6に示すようなエッジ集合600(エッジデータの集まり)を得ることができる。エッジ集合600は、メモリ102が有するエッジデータベース402(図4参照)に登録される。
図7の処理では、まず、処理701で処理を開始し、処理702において、図6で示したエッジ集合600の中から、classフィールド606が同一のエッジ集合を変数Sに求め、判定処理703に制御を移す。
次に、上記で構成したDFDB404(図10)を基に、検証対象ソースコード107から不要部分を削除する、不要部分削除プログラム405の動作の詳細を説明する。図11は、不要部分削除プログラム405の処理の一例をフローチャートとして図示したものである。
以上で、簡易化プログラム301における処理の説明を終了する。簡易化プログラム301の処理の後にはモデル化プログラム302(図3参照)の処理が行われる。
次に、モデル化プログラム302の処理動作について説明する。
モデル化プログラム302は、プログラムの検証として、その特性の一つである脆弱性を検出するために、ソースコードをモデル化するプログラムである。モデル化においては、ソースコードの構文を解析し、ソースコード内の各変数、式および手続き呼び出しに対し、あらかじめ指定された特徴の明細を記述したモデルを作成する。図13および図14は、図12の簡易化されたソースコードをモデル化した結果である。
次に、データフロー解析プログラム304の処理動作について説明する。
この工程のデータフロー解析プログラム304では、図13及び図14に図示したような、モデルデータベース303に登録されたすべてのモデルに対し、データフロー解析プログラム401と同様のデータフロー解析を実行する。なお、前記モデルは既に不要部分を削除して簡易化されたものであるので、データフロー抽出プログラム403により実行される処理(図7及び図8参照)は不要である。そのため、データフロー解析プログラム304による解析の結果、図10で示すDFDB404に登録されるエッジデータ1000と同様のエッジデータ(つまり、numフィールド、toフィールド、to_lineフィールド、fromフィールド、from_lineフィールド、及びclassフィールドの6つのフィールドからなるエントリで構成されたエッジデータ)が求められる。そして、当該エッジデータの一のクラスにおいて、toフィールドの値とfromフィールドの値が等しく、その等しい値を以ってエッジデータを連結したときに生成されるエッジの集合を「データパス」と定義する。データパスが定義されたエッジの集合は、データパスデータベース305(図3)に登録される。
次に、脆弱性検出プログラム306の処理動作について説明する。
脆弱性検出プログラム306では、データフロー解析プログラム304により登録されたデータパスデータベース305と、メモリ102(図1)に記憶され、予め用意していた脆弱性データベース106を参照し、データパスに対して脆弱経路の検出の処理が実行される。
「method」フィールド1702には、ソースコードに用いられるメソッド名が登録される。図17の例では、「getUserValue」が発生点を生じさせるメソッドであり、「writeValue」が使用点を生じさせるメソッドである。
「class」フィールド1703には、「method」フィールド1702に登録されるメソッドが属するクラスが登録される。図17の例では、「Data」が、メソッド「getUserValue」及び「writeValue」が属するクラスである。
このようにして、検証対象ソースコード107におけるプログラムの検証を終了する。
実施の形態1により、以下の効果を奏する。すなわち、本実施形態のプログラム検証方法は、検証対象コードの脆弱経路を検出するために、検証対象コードを、あらかじめ指定された特徴の明細を記述したモデルを作成する工程、モデル化された検証対象ソースコードを基にしてデータフロー解析を行う工程、及びデータフロー解析の結果として出力したデータパスと脆弱性データベースとを照合することにより、解析したデータパスのうち脆弱経路を検出する工程を含むが、検証対象ソースコードのデータフローに着目し、これらの工程を実行する前に、着目したデータフローを簡易化する工程を備えることにより、検証対象ソースコードを縮小化することができる。検証対象ソースコードを縮小化した簡易ソースコードに置き換えることにより、脆弱経路の検出に影響を与えることなく、プログラム解析の際に必要となるメモリ量が低減され、解析対象とするソースコードサイズを拡大することが可能となる。また、検証対象ソースコードの簡易化により、解析時間を短縮することができる。
上記実施の形態1では、すべての検証対象ソースコードを簡易化しているが、検証対象ソースコードのすべてがコンピュータ100に備えられているとは限らない。近年のプログラムの大規模化、モジュール化に伴い、一般に外部ライブラリを利用したプログラムが増加しているためである。そこで、コンピュータ100の外部であらかじめ、ライブラリなどの一部のソースコードのみ簡易化し、モデル化を行い、モデルファイルを予め作成しておき、脆弱性検出の際に、そのモデルファイルをデータフロー解析の工程に入力する形態をとることができる。図18を参照して、その形態に関する説明をする。
図18は、本実施形態の検出ソフトウェアプログラム104の処理手順の一例をブロック図として図示したものである。基本的には図3に図示した処理手順と同様であるので、相違する点についてのみ説明する。
実施の形態2により、以下の効果を奏する。すなわち、検証対象ソースコードが一部(または全部)存在しない場合において、ライブラリなどの外部に存在する検証対象ソースコードに対し、データフローに着目し、簡易化、そして、モデル化したコードをプログラム検証装置として機能するコンピュータに追加する工程を備えるようにした。これにより、不足した検証対象ソースコードを補完し、その部分をなんらかの仮定のもとに近似する場合に比べ、解析精度の低下を防止でき、さらには、解析精度を向上させることができる。
また、既に外部で一部または全部の検証対象ソースコードを簡易化、モデル化しているので、脆弱性の検出の処理時間全体を短縮することができる。
上記実施の形態2では、検出対象ソフトウェアのソースコードの一部が不足している場合、図18のように簡易的に記述した簡易ソースコードを外部入力として用いた。その簡易ソースコードは、プログラム検証装置としてのコンピュータに備えられている検証対象ソースコードとは異なる構文規則を用いることも可能である。実施の形態3ではその点について詳細に説明する。
図19は、実施の形態3の検出ソフトウェアプログラム104の処理手順の一例をブロック図として図示したものである。基本的には図18に図示した処理手順と同様であるが、簡易ソースコード1901、簡易モデル化プログラム1902、簡易モデルデータベース1903、モデル変換データベース1904及びモデル変換プログラム1905が追加されている点で相違する。実施の形態3では、簡易モデルデータベース1903、モデル変換データベース1904及びモデル変換プログラム1905は、コンピュータ100が備えているものとする。以下、その相違する点についてのみ説明する。
図22は、モデル変換プログラム1905の処理の一例をフローチャートとして図示したものである。図22の処理では、まず、処理2201で処理を開始し、制御を処理2202に移す。処理2202において、簡易モデルデータベース1903に登録されたモデルの集合であるモデル集合を変数Mに求め、制御を判定処理2203に移す。
実施の形態3により、以下の効果を奏する。すなわち、この処理により、Java(登録商標)言語では存在しないデータの受け渡しを表現する演算子「<-」を用いることで、元々実装のないソースコードに対するデータフローの定義を与えることが可能となり、さらに、検証対象ソースコード107とは異なる構文規則を用いたソースコード(簡易ソースコード1901)でも外部入力に用いることが可能となる。これにより、不足した検証対象ソースコードを補完し、その部分をなんらかの仮定のもとに近似する場合に比べ、実装の存在しないソースコードを簡易的に追加することができ、データフロー解析の解析精度を向上させることができる。
105 簡易ソースコード
106 脆弱性データベース
107 検証対象ソースコード
108 解析結果
301 簡易化プログラム
302 モデル化プログラム
303 モデルデータベース
304 データフロー解析プログラム
305 データパスデータベース
306 脆弱性検出プログラム
400 構文解析プログラム
401 データフロー解析プログラム
402 エッジデータベース
403 データフロー抽出プログラム
404 データフローデータベース(DFDB)
405 不要部分削除プログラム
1800 外部検証対象ソースコード
1801 外部簡易化プログラム
1802 外部簡易ソースコード
1803 外部モデル化プログラム
1901 簡易ソースコード
1902 簡易モデル化プログラム
1903 簡易モデルデータベース
1904 モデル変換データベース
1905 モデル変換プログラム
Claims (8)
- 検証対象プログラムを検証するプログラム検証装置におけるプログラム検証方法において、
前記検証対象プログラムの検証対象ソースコードのデータフローを解析し、前記データフローの開始エッジ及び終了エッジを定めたエッジデータの集合を取得するステップと、
前記エッジデータの集合から、一のエッジデータの開始エッジが他のエッジデータの終了エッジと一致するエッジデータを抽出するステップと、
前記検証対象ソースコードから、前記抽出したエッジデータ以外のエッジデータに係るソースコードの一部または全部を削除することにより簡易化して、検証用の簡易ソースコードを生成するステップと、
を有することを特徴とするプログラム検証方法。 - 前記プログラム検証装置は、前記検証対象プログラム、プログラムを検証するときに着目する特性を示した特性情報、及び前記簡易ソースコードを検証用にモデル化するためにあらかじめ指定された特徴を記憶する記憶手段を有し、
前記記憶手段から前記指定された特徴を読み出し、前記読み出した特徴に基づいて、前記簡易ソースコードを検証用にモデル化するステップと、
前記モデル化した簡易ソースコードのデータフローを解析し、前記データフローの開始エッジ及び終了エッジを定めたエッジデータの集合を取得し、前記エッジデータの集合から、一のエッジデータの開始エッジと他のエッジデータの終了エッジとを連結したデータパスを生成するステップと、
前記記憶手段から前記特性情報を読み出し、前記読み出した特性情報に基づいて、前記データパスにおける特性の有無を検出するステップと、
を有することを特徴とする請求項1に記載のプログラム検証方法。 - 前記エッジデータを抽出するステップにおいて、
前記抽出されるエッジデータには、前記検証対象ソースコードのうち、一または二以上の処理に対応するソースコードから定まる範囲の外部を前記開始エッジとするエッジデータと、前記範囲の外部を前記終了エッジとするエッジデータが含まれることを特徴とする請求項2に記載のプログラム検証方法。 - 前記範囲は、前記検証対象ソースコードをJava(登録商標)言語で記述した場合には、クラスとして定められたものであることを特徴とする請求項3に記載のプログラム検証方法。
- 前記プログラム検証装置が、前記検証対象プログラムの検証の指示を入力する入力手段を有し、
前記記憶手段が、前記検証するプログラムの一部分を記憶している場合、
前記入力手段により前記プログラムの検証の指示が入力されるとき、前記プログラム検証装置の外部からネットワークを介して、前記検証するプログラムの残りであって前記簡易化と同様の簡易化がなされたものを、外部簡易ソースコードとして生成するステップと、
前記入力手段により前記外部簡易ソースコードを入力するステップとを有し、
前記モデル化するステップにおいて、前記検証するプログラムの一部分に対応するソースコード及び前記外部簡易ソースコードをモデル化し、
前記データパスを生成するステップにおいて、前記モデル化した、前記検証するプログラムの一部分に対応するソースコード及び前記外部簡易ソースコードのデータフローを解析し、前記データフローの開始エッジ及び終了エッジを定めたエッジデータの集合を取得し、前記取得したエッジデータの集合から、一のエッジデータの開始エッジと他のエッジデータの終了エッジとを連結したデータパスを生成し、
前記特性の有無を検出するステップにおいて、前記記憶手段から前記特性情報を読み出し、前記読み出した特性情報に基づいて、前記データパスにおける特性の有無を検出する
ことを特徴とする請求項2から請求項4に記載のプログラム検証方法。 - 前記プログラム検証装置が、前記検証対象プログラムの検証の指示を入力する入力手段を有し、
前記記憶手段が、前記検証するプログラムの一部分を記憶している場合、
前記入力手段により前記プログラムの検証の指示が入力されるとき、前記プログラム検証装置の外部からネットワークを介して、前記検証するプログラムの残りであって前記簡易化と同様の簡易化がなされ、外部簡易ソースコードとして生成するステップと、
前記プログラム検証装置の外部においてあらかじめ指定された特徴に基づいて、前記外部簡易ソースコードを外部モデル化し、前記入力手段により前記外部モデル化した外部簡易ソースコードを入力するステップとを有し、
前記モデル化するステップにおいて、前記検証するプログラムの一部分に対応するソースコードをモデル化し、
前記データパスを生成するステップにおいて、前記モデル化した前記検証するプログラムの一部分に対応するソースコード及び前記外部モデル化した前記外部簡易ソースコードのデータフローを解析し、前記データフローの開始エッジ及び終了エッジを定めたエッジデータの集合を取得し、前記取得したエッジデータの集合から、一のエッジデータの開始エッジと他のエッジデータの終了エッジとを連結したデータパスを生成し、
前記特性の有無を検出するステップにおいて、前記記憶手段から前記特性情報を読み出し、前記読み出した特性情報に基づいて、前記データパスにおける特性の有無を検出する
ことを特徴とする請求項2から請求項4に記載のプログラム検証方法。 - 前記外部簡易ソースコードが前記検証するプログラムの検証対象ソースコードと異なる構文規則で記述されているため、前記外部簡易ソースコードを外部モデル化しても当該外部モデル化した外部簡易ソースコードのデータフローを解析することができない場合、
前記外部簡易ソースコードにおいて、前記外部簡易ソースコードの言語仕様にはないデータの受け渡しを表現する演算子を用いてデータフローであることを示すコードを記述するステップとを有し、
前記外部簡易ソースコードを入力するステップにおいて、前記演算子を含む外部簡易ソースコードを外部モデル化し、前記入力手段により前記外部モデル化した、前記演算子を含む外部簡易ソースコードを入力し、
前記演算子に基づいて、前記外部モデル化した、前記演算子を含む外部簡易ソースコードをモデル変換するステップとを有し、
前記データフローの解析を行うことを特徴とする請求項6に記載のプログラム検証方法。 - 請求項1から請求項7までのプログラム検証方法を実行するプログラム検証装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007146936A JP4951416B2 (ja) | 2007-06-01 | 2007-06-01 | プログラム検証方法、プログラム検証装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007146936A JP4951416B2 (ja) | 2007-06-01 | 2007-06-01 | プログラム検証方法、プログラム検証装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008299723A true JP2008299723A (ja) | 2008-12-11 |
JP4951416B2 JP4951416B2 (ja) | 2012-06-13 |
Family
ID=40173166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007146936A Expired - Fee Related JP4951416B2 (ja) | 2007-06-01 | 2007-06-01 | プログラム検証方法、プログラム検証装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4951416B2 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014507718A (ja) * | 2011-01-31 | 2014-03-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するための方法、コンピュータ・プログラム、およびシステム |
JP2014174577A (ja) * | 2013-03-05 | 2014-09-22 | Ntt Data Corp | 検証装置、検証方法、及びプログラム |
US9501646B2 (en) | 2012-09-26 | 2016-11-22 | Mitsubishi Electric Corporation | Program verification apparatus, program verification method, and computer readable medium |
KR101860674B1 (ko) | 2017-06-20 | 2018-05-23 | 넷마블 주식회사 | 크래시 리포트 그룹핑 방법, 서버 및 컴퓨터 프로그램 |
KR20180138130A (ko) * | 2018-05-15 | 2018-12-28 | 넷마블 주식회사 | 크래시 리포트 그룹핑 방법, 서버 및 컴퓨터 프로그램 |
CN109101819A (zh) * | 2017-06-21 | 2018-12-28 | 中兴通讯股份有限公司 | 一种漏洞检测方法及终端、存储介质 |
CN111737150A (zh) * | 2020-07-24 | 2020-10-02 | 江西师范大学 | 面向Java EE程序SQLIA漏洞的污点分析和验证方法及装置 |
KR20200112765A (ko) * | 2018-05-15 | 2020-10-05 | 넷마블 주식회사 | 크래시 리포트 그룹핑 방법, 서버 및 컴퓨터 프로그램 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0687780A (ja) * | 1990-09-17 | 1994-03-29 | Uop Inc | 一部還元された酸化タングステン(vi)で構成保持された触媒を使用してのフェノール類の脱水によるジアリールエーテル類の製造方法 |
JPH07311694A (ja) * | 1994-05-16 | 1995-11-28 | Hitachi Ltd | プログラム実行パスの解析方法 |
JP2005346578A (ja) * | 2004-06-04 | 2005-12-15 | Ricoh Co Ltd | ファイル抽出システムおよびプログラム |
JP2006011756A (ja) * | 2004-06-24 | 2006-01-12 | Fujitsu Ltd | プログラム変換プログラム、プログラム変換装置およびプログラム変換方法 |
JP2007052625A (ja) * | 2005-08-18 | 2007-03-01 | Hitachi Software Eng Co Ltd | ソースコード脆弱性検査装置 |
-
2007
- 2007-06-01 JP JP2007146936A patent/JP4951416B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0687780A (ja) * | 1990-09-17 | 1994-03-29 | Uop Inc | 一部還元された酸化タングステン(vi)で構成保持された触媒を使用してのフェノール類の脱水によるジアリールエーテル類の製造方法 |
JPH07311694A (ja) * | 1994-05-16 | 1995-11-28 | Hitachi Ltd | プログラム実行パスの解析方法 |
JP2005346578A (ja) * | 2004-06-04 | 2005-12-15 | Ricoh Co Ltd | ファイル抽出システムおよびプログラム |
JP2006011756A (ja) * | 2004-06-24 | 2006-01-12 | Fujitsu Ltd | プログラム変換プログラム、プログラム変換装置およびプログラム変換方法 |
JP2007052625A (ja) * | 2005-08-18 | 2007-03-01 | Hitachi Software Eng Co Ltd | ソースコード脆弱性検査装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014507718A (ja) * | 2011-01-31 | 2014-03-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するための方法、コンピュータ・プログラム、およびシステム |
US9501646B2 (en) | 2012-09-26 | 2016-11-22 | Mitsubishi Electric Corporation | Program verification apparatus, program verification method, and computer readable medium |
JP2014174577A (ja) * | 2013-03-05 | 2014-09-22 | Ntt Data Corp | 検証装置、検証方法、及びプログラム |
KR101860674B1 (ko) | 2017-06-20 | 2018-05-23 | 넷마블 주식회사 | 크래시 리포트 그룹핑 방법, 서버 및 컴퓨터 프로그램 |
WO2018236141A1 (ko) * | 2017-06-20 | 2018-12-27 | 넷마블 주식회사 | 크래시 리포트 그룹핑 방법, 서버 및 컴퓨터 프로그램 |
CN109101819A (zh) * | 2017-06-21 | 2018-12-28 | 中兴通讯股份有限公司 | 一种漏洞检测方法及终端、存储介质 |
KR20180138130A (ko) * | 2018-05-15 | 2018-12-28 | 넷마블 주식회사 | 크래시 리포트 그룹핑 방법, 서버 및 컴퓨터 프로그램 |
KR102158775B1 (ko) | 2018-05-15 | 2020-09-22 | 넷마블 주식회사 | 크래시 리포트 그룹핑 방법, 서버 및 컴퓨터 프로그램 |
KR20200112765A (ko) * | 2018-05-15 | 2020-10-05 | 넷마블 주식회사 | 크래시 리포트 그룹핑 방법, 서버 및 컴퓨터 프로그램 |
KR102256894B1 (ko) * | 2018-05-15 | 2021-06-01 | 넷마블 주식회사 | 크래시 리포트 그룹핑 방법, 서버 및 컴퓨터 프로그램 |
CN111737150A (zh) * | 2020-07-24 | 2020-10-02 | 江西师范大学 | 面向Java EE程序SQLIA漏洞的污点分析和验证方法及装置 |
CN111737150B (zh) * | 2020-07-24 | 2023-09-15 | 江西师范大学 | 面向Java EE程序SQLIA漏洞的污点分析和验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4951416B2 (ja) | 2012-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109426722B (zh) | Sql注入缺陷检测方法、***、设备及存储介质 | |
Gao et al. | Checking smart contracts with structural code embedding | |
US10133650B1 (en) | Automated API parameter resolution and validation | |
US10146532B2 (en) | Apparatus and method for detecting code cloning of software | |
JP4951416B2 (ja) | プログラム検証方法、プログラム検証装置 | |
Yu et al. | Automata-based symbolic string analysis for vulnerability detection | |
US7240279B1 (en) | XML patterns language | |
CN103164249B (zh) | 用于脚本语言编译器的扩展机制 | |
RU2610241C2 (ru) | Способ и система синтеза текста на основе извлеченной информации в виде rdf-графа с использованием шаблонов | |
US8219901B2 (en) | Method and device for filtering elements of a structured document on the basis of an expression | |
EP2407887B1 (en) | Solving hybrid constraints to validate specification requirements of a software module | |
CN110383238A (zh) | 用于基于模型的软件分析的***和方法 | |
Nguyen et al. | Cross-language program slicing for dynamic web applications | |
JP2010507165A (ja) | ソースコード内のセキュリティ脆弱性の検出 | |
US9311058B2 (en) | Jabba language | |
US20170300305A1 (en) | Executable guidance experiences based on implicitly generated guidance models | |
KR101356676B1 (ko) | 컴퓨팅 환경에서 표현식을 번역하는 방법, 소프트웨어 및시스템 | |
Zhong et al. | An empirical study on API parameter rules | |
CN114911711A (zh) | 一种代码缺陷分析方法、装置、电子设备及存储介质 | |
CN113885876A (zh) | 一种参数校验方法、装置、存储介质及计算机*** | |
Nisbet et al. | Presentations of rase knowledge mark-up | |
Anderson et al. | Supporting analysis of SQL queries in PHP AiR | |
Poulding et al. | The automated generation of humancomprehensible XML test sets | |
US10789067B2 (en) | System and method for identifying open source usage | |
Anantharaman et al. | A format-aware reducer for scriptable rewriting of PDF files |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090811 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120126 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120214 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120312 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150316 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |