JP2010507165A - ソースコード内のセキュリティ脆弱性の検出 - Google Patents
ソースコード内のセキュリティ脆弱性の検出 Download PDFInfo
- Publication number
- JP2010507165A JP2010507165A JP2009532956A JP2009532956A JP2010507165A JP 2010507165 A JP2010507165 A JP 2010507165A JP 2009532956 A JP2009532956 A JP 2009532956A JP 2009532956 A JP2009532956 A JP 2009532956A JP 2010507165 A JP2010507165 A JP 2010507165A
- Authority
- JP
- Japan
- Prior art keywords
- data flow
- flow diagram
- node
- control
- nodes
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Stored Programmes (AREA)
Abstract
【選択図】図1
Description
本出願は、ここに参照文献として取り入れられている2006年10月19日出願のアメリカ仮出願No.60/853,349の利益を要求するものである。
本発明は、コンピュータ・ソフトウェアの脆弱性評価に関するものである。特に、応用プログラムのソースコードを自動的にスキャンし、応用プログラムレベルの脆弱性を検出することに関するものである。
企業のセキュリティ対策は、歴史的にネットワークとホストの安全対策に、即ち「前線防衛」技術に集中してきた。これらの努力にも関わらず、応用プログラムレベルの脆弱性はいまだに重大な危機として残されている。そのような脆弱性の検出のためにはソースコードの構文解析が試みられてきた。この結果、典型的に多数の誤った積極的示唆がもたらされた。1行毎のコード解析も提案されてきた。しかしながらこの方法は、現在のソフトウェアが一般的に数千行のコードで作られるため、非実用的と実証されている。実際、J2EE(Java2標準版、登録商標)のような比較的コンパクトな環境でも、実行モジュールには数千のクラスを含む。
ソースコードを検査するいくつかの試みもなされた。「ソースコード解析システムおよび方法」と題した特許文献5は、応用ソフトウェアに伴うデータベースを生成することを提案している。閲覧ソフトはデータベースの内容へアクセスする。次に、モジュール間通信、データベースや外部ファイルに対する呼び出し、および応用プログラム上の変数の使用などの関連情報が表示される。恐らく、操作者はその表示から脆弱性を特定できる。
演算処理装置は、ソースコードのオブジェクト指向モデルを、夫々の識別子を要素変数に割り当てることにより生成するように動作することができる。
演算処理装置は、モデルを使用し、ノードから構成される制御フロー図を生成し、制御フロー図からデータフロー図を導出し、制御フロー図より制御依存図を導出し、制御フロー図、データフロー図及び制御依存図を分析し、夫々の識別子を使用して既定の要素変数に対する参照を同定することにより、セキュリティ脆弱性を有するソースコードの部位を同定し、ここに既定の要素変数の要素名は、もう一つの要素変数の要素名と同じであり、セキュリティ脆弱性を報告する、ように動作することができる。
演算処理装置は、ソースコードのオブジェクト指向モデルを生成し、ここにコード要素は夫々オブジェクトを表し、モデルを使用して、ノードから構成される制御フロー図を生成し、制御フロー図からデータフロー図を導出し、制御フロー図より制御依存図を導出し、制御フロー図、データフロー図及び制御依存図を分析し、制御依存図の第1部位を1回目に横断処理して制御依存図の処理済部分に標識を付け、その後2回目に標識の付いた部分を含む制御依存図の第2部位を、標識の付いた部分を飛ばして横断処理することにより、セキュリティ脆弱性を有するソースコードの部位を同定し、セキュリティ脆弱性を報告する、ように動作可能である。
演算処理装置は、ソースコードのオブジェクト指向モデルを生成し、ここにコード要素は夫々オブジェクトを表し、モデルを使用して、ノードから構成される制御フロー図を生成し、制御フロー図からデータフロー図を導出し、制御フロー図、データフロー図及び制御依存図を分析し、データフロー図内に、入力が受入れられた第1データフローノード、データが有効とされた第2データフローノード、およびデータが使用された第3データフローノードを同定する工程と、データフロー図から第2データフローノードを削除する工程と、その後第3データフローノードの1つと第1データフローノードの1つがデータフローエッジの1つにより繋がっていることを判定する工程とにより、第3データフローノードの1つが、未評価入力の脆弱性を有することを報告する、ように動作可能である。
演算処理装置は、モデルを使用して、ノードから構成される制御フロー図を生成し、ここに制御フロー図は、ソースコードにおける複数の関数を記述し、変数はさらにグローバル変数からなり、グローバル変数は、関数に、グローバル変数をデータ要素として有する、超グローバル変数として渡され、制御フロー図よりデータフロー図を導出し、制御フロー図より制御依存ノードを有する制御依存図を導出し、制御フロー図、データフロー図及び制御依存図を分析し、セキュリティ脆弱性を有するソースコードの部位を同定して、セキュリティ脆弱性を報告する、ように動作可能である。
命令は、演算処理装置に対し、分析対象のソースコードを入出力装置経由で受け取るようにさせ、ここにソースコードはコード要素と文からなり、文の少なくとも一部は変数を参照するシステムを提供する。
演算処理装置は、ソースコードのオブジェクト指向モデルを生成し、
ここに前記コード要素は夫々オブジェクトを表し、モデルを使用して、制御フロー図を生成し、制御フロー図からデータフロー図を導出し、ここにデータフロー図は、データフローノードと、データフローノードを繋ぐデータフローエッジとからなる、ように動作可能である。
演算処理装置は、第1配列と第2配列を前記データフローノードの夫々に随伴させることにより、データフロー図を導出し、ここに前記第1配列は、随伴されたデータフローノードが依存する変数に関する静的情報を有し、第2配列は、随伴されたデータフローノードに影響を与える他の変数を同定する情報を有し、他の変数はデータフローノードのその他に随伴されている、ように動作可能である。
演算処理装置は、制御フロー図を横断処理し、ノードの夫々において、情報に応じて、データフロー図の対応するデータフローノードの第2配列内に情報を確立し、データフローエッジをデータフローノードと他のデータフローノードと夫々繋ぐことにより生成し、制御フロー図より制御依存ノードを有する制御依存図を導出し、制御フロー図、データフロー図及び制御依存図を分析し、セキュリティ脆弱性を有するソースコードの部位を同定して、セキュリティ脆弱性を報告する、ように動作可能である。
演算処理装置は、モデルを使用して、ノードから構成される制御フロー図を生成し、 ここに各ノードは制御フロー図上で位相順序を有し、ノードの一部は少なくとも1つの子ノードを有し、制御フロー図からデータフロー図を導出し、ここにデータフロー図は、データフローノードと、データフローノードを繋ぐデータフローエッジと、からなり、制御フロー図より制御依存ノードを有する制御依存図を導出するように動作可能である。
演算処理装置は、制御フロー図のノードに対し先天性値を与え、ここに先天性値は、少なくとも1つの子ノードによって平等に継承値として継承され、各ノードで継承値の合計が先天性値に等しい時はその継承値を削除し、ノードの継承値の各継承記録を維持し、ここに継承記録は各継承値の継承元を示すノードの同定番号を含み、制御フロー図の入口ノードを同定し、ノードの最初の1組のノード群を同定し、ここに最初の1組のノード群の構成ノードは継承値を持たず、夫々第1エッジを最初の1組のノード群と入口ノードとの間に確立し、ノードの第2組のノード群を同定し、ここに第2組のノード群の構成ノードは継承値を有し、継承記録において、第2組のノード群間に継承元ノードの近接位相順序を設定し、そして、第2のエッジを第2組のノード群の構成ノードと最接位相順序の継承元ノードとの間に夫々生成する、ことにより制御依存図を導出するように動作可能である。
演算処理装置は、制御フロー図、データフロー図及び制御依存図を分析し、セキュリティ脆弱性を有するソースコードの部位を同定して、セキュリティ脆弱性を報告する、
ように動作可能である。
用語の定義
システム概要
ソースコード解析プログラム―分類
構文解析
DOMビルダ
DOMビルダ40は、2つの主要モジュールから構成される。浅いDOMソルバ42(AST2DOM)は、言語依存の抽象構文木を受けて、ほぼ言語中立の文書オブジェクトモデルを返す。浅いDOMソルバ42の出力は「浅い」言語であり、離れたオブジェクト間の論理的接続はまだ確立されていない。深いDOMソルバ44はその言語の関連仕様に基づきこれらを接続し、完全に言語中立である文書オブジェクトモデルを作成する。含意は、文書オブジェクトモデルを利用するその後の層が言語を意識する必要がないということである。したがって、新しい言語をサポートするためには、せいぜい層24、30、34、38だけが変更の要がある。層38を引き継ぐ層は、ソースコード言語を関知しない。
ソースコードの分析には、符号「i」が同じ変数を示すか、または同じ符号を共有する2つの異なった変数を示すか、を判定する必要がある。2つの行が同じブロックにあるなら、「i」の2つの符号が1つの変数を示す。しかしながら、行が2つの異なったブロックにあるなら、変数の見え方、宣言された位置、内包するクラスの継承した順位により、判定は変わる。浅いDOMソルバ42は変数を認識する。それらの間の接続は、DOMビルダ40によって参照された各変数が「インスタンスID」という名前のデータ要素を割り当てられる、深いDOMソルバ44によって確立される。浅いDOMソルバ42は、たとえ同じ変数を参照していても、参照された各変数に要素「インスタンスID」用の異なった値を割り当てる。したがって、プログラムリスト1では、「i」に対する2つの参照の結果は、たとえ両方が同じ変数を参照してしても要素「インスタンスID」の違う値を受けとる。深いDOMソルバ44では、同じ変数への全ての参照は同じ値が要素「インスタンスID」に割り当てられる。メソッドは、同様のメカニズムを持っているが、要素「インスタンスID」にかわって、メソッド宣言、および呼出しに対し「定義ID」という要素が割り当てられる。
実施形態1
制御フロー図
実施形態2
データフロー図
実施形態3
メタコンストラクタ
制御依存図
多くの異なる順序に変更することができる。
実施形態4
システム依存図
Public void func(myClass ins)
Public void func(THIS,SuperGlobal,myClass
ins)
Public void func(THIS, THIS.VAR3, SuperGlobal, SuperGlobal.Session−Hello, myClass ins, ins.var1, ins.var2).
DOM操作
コード図照会
実施形態5
実施形態6
Result=All.InfluencedBy (All.FindByName(「namespace1.class1.booll」)).
Result=All.DataInfluencedBy (A) / All.DataInfluencedBy (B);
Result=All.InfluencingOn(All.FindByID(3)).InfuencedBy(All.FindByID(5)).
問い合せの供給
脆弱性問い合わせ
未評価入力
実施形態7
連続攻撃
実施形態8
最小特権
実施形態9
If (!Code.Execute(SQLStoredProcedure(「xp..cmdshell」)))
SQLScript.Add(RemovePermissions(「xp..cmdshell」)
最小特権
論理欠陥
実施形態10
Result=FindPlacesWhere(OrdersRetrievedFromDB&&
pagePermission!=Administrator&&
dataNotInfluencedBy(userId).
GUIアクセスの無い頁
実施形態11
FindAllPages − FindUIPageAccessCommand.AccessedPage
機密情報の表示
実施形態12
All.FindSensitiveVariables().DataInfluencingOn(Find_Outputs()).
仮想ディレクトリからの入出力
実施形態13
Find_File_Access().NotDataInfluencedBy(AbsolutePath.
データ合法化関数
インターネット出版。
言い換えれば、引用符が長さで1文字を超えるストリングの端にあると、関数は「誤」となる。
自動ユニット試験
壊れたアクセス制御
実施形態14
保護手段の自動発見
細部最適化問題
プログラムリスト
14 ディスプレイ 16 ソースコード
18 ソースコード分析ソフト
20 セキュリティ関連層 22 SCAエンジン
Claims (66)
- コンピュータプログラムのセキュリティ脆弱性を検出するためのデータ処理システムであって、
コンピュータプログラムの命令を内蔵する記憶装置と、
入出力装置と、
前記記憶装置にアクセスし前記命令を読む演算処理装置と、
からなり、
前記命令は、前記演算処理装置に対し、
分析対象のソースコードを前記入出力装置経由で受け取るようにさせ、
ここに前記ソースコードはコード要素と文からなり、前記文の少なくとも一部は変数を参照し、
前記変数は要素変数を有するデータ構造からなり、
前記要素変数は要素名を有し、
前記命令は前記演算処理装置に対し、
前記ソースコードのオブジェクト指向モデルを生成するようにさせ、
ここに前記コード要素は夫々オブジェクトを表し、
また、前記モデルの生成は、夫々の識別子を前記要素変数に割り当てるステップからなり、
前記演算処理装置は、
前記モデルを使用して、ノードから構成される制御フロー図を生成し、
前記制御フロー図からデータフロー図を導出し、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
前記制御フロー図より制御依存ノードを有する制御依存図を導出し、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析し、前記夫々の識別子を使用して既定の要素変数に対する参照を同定することにより、セキュリティ脆弱性を有する前記ソースコードの部位を同定し、
ここに前記既定の要素変数の前記要素名は、もう一つの要素変数の前記要素名と同じであり、
前記セキュリティ脆弱性を報告する、
ように動作可能であることを特徴とするシステム。 - 前記演算処理装置は、前記セキュリティ脆弱性を除去するために前記ソースコードを変更するように動作可能である、ことを特徴とする請求項1に記載のデータ処理システム。
- 前記演算処理装置は、前記ソースコードの、単一アクションのみが行われる原子要素を表す、前記制御依存図のブロックを定義するために、前記制御依存図をコード切削するように動作可能である、ことを特徴とする請求項1に記載のデータ処理システム。
- 前記演算処理装置は、入力データが有効とされる前記データフロー図のデータフローノードを同定し、前記入力データが前記同定されたデータフローノードにおいて既定の仕様に従って有効とされたことを証明する、ように動作可能であることを特徴とする請求項1に記載のデータ処理システム。
- 前記演算処理装置は、前記ソースコードにソフトウェア故障の木解析を適用するように動作可能である、ことを特徴とする請求項1に記載のデータ処理システム。
- 前記演算処理装置は、前記データ評価関数が誤りとなるシナリオを同定するために、
データ評価関数に対しテストケースを生成するように動作可能である、ことを特徴とする請求項1に記載のデータ処理システム。 - コンピュータプログラムのセキュリティ脆弱性を検出するためのデータ処理システムであって、
コンピュータプログラムの命令を内蔵する記憶装置と、
入出力装置と、
前記記憶装置にアクセスし前記命令を読む演算処理装置と、
からなり、
前記命令は、前記演算処理装置に対し、
分析対象のソースコードを前記入出力装置経由で受け取るようにさせ、
ここに前記ソースコードはコード要素と文からなり、前記文の少なくとも一部は変数を参照し、
前記ソースコードのオブジェクト指向モデルを生成するようにさせ、
ここに前記コード要素は夫々オブジェクトを表し、
前記演算処理装置は、
前記モデルを使用して、ノードから構成される制御フロー図を生成し、
前記制御フロー図からデータフロー図を導出し、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
前記制御フロー図より制御依存ノードを有する制御依存図を導出し、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析し、
前記制御依存図の第1部位を1回目に横断処理して前記制御依存図の処理済部分に標識を付け、その後2回目に前記標識の付いた部分を含む前記制御依存図の第2部位を、前記標識の付いた部分を飛ばして横断処理することにより、
セキュリティ脆弱性を有する前記ソースコードの部位を同定して、
前記セキュリティ脆弱性を報告する、
ように動作可能であることを特徴とするシステム。 - 前記演算処理装置は、前記変数の既定の1つに影響を与える前記制御依存ノードのみを同定するため、前記制御依存図をコード切削するように動作可能であり、前記制御依存図には意味を保存する処理だけが行われる、ことを特徴とする請求項7に記載のデータ処理システム。
- コンピュータプログラムのセキュリティ脆弱性を検出するためのデータ処理システムであって、
コンピュータプログラムの命令を内蔵する記憶装置と、
入出力装置と、
前記記憶装置にアクセスし前記命令を読む演算処理装置と、
からなり、
前記命令は、前記演算処理装置に対し、
分析対象のソースコードを前記入出力装置経由で受け取るようにさせ、
ここに前記ソースコードはコード要素と文からなり、
前記ソースコードのオブジェクト指向モデルを生成するようにさせ、
ここに前記コード要素は夫々オブジェクトを表し、
前記演算処理装置は、
前記モデルを使用して、ノードから構成される制御フロー図を生成し、
前記制御フロー図からデータフロー図を導出し、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
前記制御フロー図より制御依存ノードを有する制御依存図を導出し、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析し
前記データフロー図内に、入力が受入れられた第1データフローノード、データが有効とされた第2データフローノード、およびデータが使用された第3データフローノードを同定する工程と、前記データフロー図から前記第2データフローノードを削除する工程と、その後前記第3データフローノードの1つと前記第1データフローノードの1つが前記データフローエッジの1つにより繋がっていることを判定する工程とにより、
第3データフローノードの1つが、未評価入力の脆弱性を有することを報告する、
ように動作可能であることを特徴とするシステム。 - 前記演算処理装置は、前記データフロー図のデータフローノードを同定し、前記入力データが前記同定されたデータフローノードにおいて既定の仕様に従って有効とされたことを証明する、ように動作可能であることを特徴とする請求項9に記載のデータ処理システム。
- コンピュータプログラムのセキュリティ脆弱性を検出するためのデータ処理システムであって、
コンピュータプログラムの命令を内蔵する記憶装置と、
入出力装置と、
前記記憶装置にアクセスし前記命令を読む演算処理装置と、
からなり、
前記命令は、前記演算処理装置に対し、
分析対象のソースコードを前記入出力装置経由で受け取るようにさせ、
ここに前記ソースコードはコード要素と文からなり、前記文の少なくとも一部は変数を参照し、
前記ソースコードのオブジェクト指向モデルを生成するようにさせ、
ここに前記コード要素は夫々オブジェクトを表し、
前記演算処理装置は、
前記モデルを使用して、ノードから構成される制御フロー図を生成し、
ここに前記制御フロー図は、前記ソースコードにおける複数の関数を記述し、
前記変数はさらにグローバル変数からなり、
前記グローバル変数は、前記制御フロー図からデータフロー図を導出するため、前記関数に、前記グローバル変数をデータ要素として有する、超グローバル変数として渡され、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
前記制御フロー図より制御依存ノードを有する制御依存図を導出し、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析し、
セキュリティ脆弱性を有する前記ソースコードの部位を同定して、
前記セキュリティ脆弱性を報告する、
ように動作可能であることを特徴とするシステム。 - コンピュータプログラムのセキュリティ脆弱性を検出するためのデータ処理システムであって、
コンピュータプログラムの命令を内蔵する記憶装置と、
入出力装置と、
前記記憶装置にアクセスし前記命令を読む演算処理装置と、
からなり、
前記命令は、前記演算処理装置に対し、
分析対象のソースコードを前記入出力装置経由で受け取るようにさせ、
ここに前記ソースコードはコード要素と文からなり、前記文の少なくとも一部は変数を参照し、
前記ソースコードのオブジェクト指向モデルを生成するようにさせ、
ここに前記コード要素は夫々オブジェクトを表し、
前記モデルを使用して、ノードから構成される制御フロー図を生成し、
前記制御フロー図からデータフロー図を導出し、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
ここに前記演算処理装置は、
第1配列と第2配列を前記データフローノードの夫々に随伴させることにより、前記データフロー図を導出し、
ここに前記第1配列は、随伴されたデータフローノードが依存する前記変数に関する
静的情報を有し、
前記第2配列は、前記随伴されたデータフローノードに影響を与える他の変数を同定する情報を有し、
前記他の変数は前記データフローノードのその他のノードに随伴されており、
前記制御フロー図を横断処理し、
前記ノードの夫々において、前記情報に応じて、前記データフロー図の対応するデータフローノードの前記第2配列内に情報を設定し、
前記データフローエッジを前記データフローノードと前記他のデータフローノードと夫々繋ぐことにより生成し、
前記制御フロー図より制御依存ノードを有する制御依存図を導出し、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析し、
セキュリティ脆弱性を有する前記ソースコードの部位を同定して、
前記セキュリティ脆弱性を報告する、
ように動作可能であることを特徴とするシステム。 - コンピュータプログラムのセキュリティ脆弱性を検出するためのデータ処理システムであって、
コンピュータプログラムの命令を内蔵する記憶装置と、
入出力装置と、
前記記憶装置にアクセスし前記命令を読む演算処理装置と、
からなり、
前記命令は、前記演算処理装置に対し、
分析対象のソースコードを前記入出力装置経由で受け取るようにさせ、
ここに前記ソースコードはコード要素と文からなり、前記文の少なくとも一部は変数を参照し、
前記変数は要素変数からなり、
前記要素変数は要素名を有し、
前記ソースコードのオブジェクト指向モデルを生成させ、
ここにおいて前記コード要素は夫々のオブジェクトによって表され、
前記演算処理装置は、
前記モデルを使用して、ノードから構成される制御フロー図を生成し、
ここに前記各ノードは前記制御フロー図上で位相順序を有し、
前記ノードの一部は少なくとも1つの子ノードを有し、
前記制御フロー図からデータフロー図を導出し、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
前記制御フロー図より制御依存ノードを有する制御依存図を導出し、
ここに前記演算処理装置は、
前記制御フロー図の前記ノードに対し先天性値を与えることにより前記制御依存図を導出し、
ここに前記先天性値は、前記少なくとも1つの子ノードによって平等に継承値として継承され、
前記各ノードで継承値の合計が先天性値に等しい時はその継承値を削除し、
前記ノードの前記継承値の各継承記録を維持し、
ここに前記継承記録は前記各継承値の継承元を示す前記ノードの同定番号を含み、
前記制御フロー図の入口ノードを同定し、
前記ノードの最初の1組のノード群を同定し、
ここに前記最初の1組のノード群の構成ノードは前記継承値を持たず、
夫々第1エッジを最初の1組のノード群と前記入口ノードとの間に確立し、
前記ノードの第2組のノード群を同定し、
ここに前記第2組のノード群の構成ノードは前記継承値を有し、
前記継承記録において、前記第2組のノード群間に継承元ノードの近接位相順序を同定し、
第2のエッジを前記第2組のノード群の前記構成ノードと最接位相順序の前記継承元ノードとの間に夫々生成し、
ここにおいて前記演算処理装置は、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析し、
セキュリティ脆弱性を有する前記ソースコードの部位を同定して、
前記セキュリティ脆弱性を報告する、
ように動作可能であることを特徴とするシステム。 - コンピュータプログラムのセキュリティ脆弱性を検出するための、コンピュータにより実現される方法であって、
解析対象のソースコードを受領する工程と、
ここに前記ソースコードはコード要素と文でできており、
前記文の少なくとも一部は変数を参照し、
前記変数は要素変数を有するデータ構造からなり、
前記要素変数は要素名を有し、
前記ソースコードのオブジェクト指向モデルを生成する工程と、
ここに前記コード要素は夫々オブジェクトにて表わされ、
前記モデルを生成する工程は前記要素変数に夫々識別子を割当ることからなり、
前記モデルを使用しノードを有する制御フロー図を生成する工程と、
前記制御フロー図からデータフロー図を導出する工程と、
ここに前記データフロー図はデータフローノードおよび前記データフローノードを接続するデータフローエッジより構成され、
前記制御フロー図より制御依存ノードを有する制御依存図を導出する工程と、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析し、前記夫々の識別子を使用して、既定の要素変数に対する参照を同定することにより、セキュリティ脆弱性を有する前記ソースコードの部位を同定する工程と、
ここに前記既定の要素変数の前記要素名は、もう1つの要素変数の前記要素名と同一であり、
前記セキュリティ脆弱性を報告する工程と、
からなることを特徴とする方法。 - 前記ソースコードはオブジェクト指向言語で記述されていることを特徴とする請求項14に記載の方法。
- 前記オブジェクト指向言語は、現在活性化しているオブジェクトから成り、前記データフロー図は呼び出されるメソッド群から成り、データフロー図を導出する前記工程は、前記現在活性化しているオブジェクトを、前記呼び出されるメソッド群へのパラメータとして使用する工程であることを特徴とする請求項15に記載の方法。
- 前記セキュリティ脆弱性を除去するため、前記ソースコードを変更する工程をさらに含むことを特徴とする請求項14に記載の方法。
- 前記分析工程は、前記ソースコードの、単一アクションのみが行われる原子要素を表わす前記制御依存図のブロックを定義するため、前記制御依存図をコード切削する工程を含むことを特徴とする請求項14に記載の方法。
- 前記分析工程は、問合せ言語を使用して行われることを特徴とする請求項14に記載の方法。
- 前記分析工程は、入力データが有効とされる前記データフロー図のデータフローノードを同定する工程と、前記入力データが前記同定されたデータフローノードにおいて既定の仕様に従って有効とされたことを証明する工程と、を含むことを特徴とする請求項14に記載の方法。
- 前記セキュリティ脆弱性は、前記ソースコードの一部が仕様に従っていないという論理的誤りを含むことを特徴とする請求項14に記載の方法。
- 前記セキュリティ脆弱性は、ユーザのアクセスに対する非強制制限を含むことを特徴とする請求項14に記載の方法。
- 前記分析工程は、データアクセス層の方法論の新しい開示を含むことを特徴とする請求項14に記載の方法。
- 前記セキュリティ脆弱性は、ユーザがウェブページの隠し分野を表示する能力を含むことを特徴とする請求項14に記載の方法。
- 前記セキュリティ脆弱性は、仮想ディレクトリ上で入出力操作が可能であることを含むことを特徴とする請求項14に記載の方法。
- 前記分析工程は、前記ソースコードに対しソフトウェア故障の木解析を適用する工程を含むことを特徴とする請求項14に記載の方法。
- データ検証関数が誤りとなるシナリオを同定するため、前記データ検証関数に対しテストケースを生成する工程をさらに含むことを特徴とする請求項14に記載の方法。
- 前記コンピュータプログラムのオブジェクトに対する、アクセス特権を特定する構成ファイルを自動的に準備する工程をさらに含むことを特徴とする請求項14に記載の方法。
- 前記制御フロー図、前記データフロー図及び前記制御依存図は前記コンピュータプログラムの単一関数に対応することを特徴とする請求項14に記載の方法。
- 前記ソースコードは難読化されていることを特徴とする請求項14に記載の方法。
- コンピュータプログラムのセキュリティ脆弱性を検出するための、コンピュータにより実現される方法であって、
解析対象のソースコードを受領する工程と、
ここに前記ソースコードはコード要素と文でできており、
前記文の少なくとも一部は変数を参照し、
前記ソースコードのオブジェクト指向モデルを生成する工程と、
ここに前記コード要素は夫々オブジェクトにて表わされ、
前記モデルを使用し、ノードから構成される制御フロー図を生成する工程と、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
前記制御フロー図より制御依存ノードを有する制御依存図を導出する工程と、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析し、セキュリティ脆弱性を有する前記ソースコードの部位を同定する工程と、
ここにおいて前記分析工程は、前記制御依存図の第1部位を1回目に横断処理して前記制御依存図の処理済部分に標識を付け、その後2回目に前記標識の付いた部分を含む前記制御依存図の第2部位を、前記標識の付いた部分を飛ばして横断処理する工程を含み、
前記セキュリティ脆弱性を報告する工程と、
からなることを特徴とする方法。 - 前記セキュリティ脆弱性を除去するため、前記ソースコードを変更する工程をさらに含むことを特徴とする請求項31に記載の方法。
- 前記分析工程は、前記変数の既定の1つに影響を与える前記制御依存ノードのみを同定するため、前記制御依存図をコード切削する工程を含み、前記制御依存図には意味を保存する処理だけが行われる、ことを特徴とする請求項31に記載の方法。
- 前記分析工程は、問合せ言語を使用して行われることを特徴とする請求項31に記載の方法。
- 前記制御フロー図、前記データフロー図及び前記制御依存図は前記コンピュータプログラムの単一関数に対応することを特徴とする請求項31に記載の方法。
- コンピュータプログラムのセキュリティ脆弱性を検出するための、コンピュータにより実現される方法であって、
解析対象のソースコードを受領する工程と、
ここに前記ソースコードはコード要素と文でできており、
前記モデルを使用し、ノードから構成される制御フロー図を生成する工程と、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
前記制御フロー図より制御依存ノードを有する制御依存図を導出する工程と、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析し、セキュリティ脆弱性を有する前記ソースコードの部位を同定する工程と、
ここにおいて前記分析工程は、前記データフロー図内に、入力が受入れられた第1データフローノード、データが有効とされた第2データフローノード、およびデータが使用された第3データフローノードを同定する工程を含み、
前記データフロー図から前記第2データフローノードを削除する工程と、
その後前記第3データフローノードの1つと前記第1データフローノードの1つが前記データフローエッジの1つにより繋がっていることを判定する工程と、
前記第3データフローノードが未評価入力の脆弱性を有することを報告する工程と、
からなることを特徴とする方法。 - 前記分析工程は、入力データが有効とされる前記データフロー図のデータフローノードを同定する工程と、前記入力データが前記同定されたデータフローノードにおいて既定の仕様に従って有効とされたことを証明する工程と、を含むことを特徴とする請求項36に記載の方法。
- 前記セキュリティ脆弱性を除去するため、前記ソースコードを変更する工程をさらに含むことを特徴とする請求項36に記載の方法。
- 前記分析工程は、問合せ言語を使用して行われることを特徴とする請求項36に記載の方法。
- 前記制御フロー図、前記データフロー図及び前記制御依存図は前記コンピュータプログラムの単一関数に対応することを特徴とする請求項36に記載の方法。
- コンピュータプログラムのセキュリティ脆弱性を検出するための、コンピュータにより実現される方法であって、
解析対象のソースコードを受領する工程と、
ここに前記ソースコードはコード要素と文でできており、
前記文の少なくとも一部は変数を参照し、
前記ソースコードのオブジェクト指向モデルを生成する工程と、
ここに前記コード要素は夫々オブジェクトにて表わされ、
前記モデルを使用し、ノードから構成される制御フロー図を生成する工程と、
ここに前記制御フロー図は、前記ソースコードにおける複数の関数を記述し、
前記変数はさらにグローバル変数からなり、
前記グローバル変数は、前記関数に、前記グローバル変数をデータ要素として有する、超グローバル変数として渡され、
前記制御フロー図からデータフロー図を導出する工程と、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
前記制御フロー図より制御依存ノードを有する制御依存図を導出する工程と、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析する工程と、
セキュリティ脆弱性を有する前記ソースコードの部位を同定する工程と、
前記セキュリティ脆弱性を報告する工程と、
からなることを特徴とする方法。 - 前記セキュリティ脆弱性を除去するため、前記ソースコードを変更する工程をさらに含むことを特徴とする請求項41に記載の方法。
- 前記分析工程は、問合せ言語を使用して行われることを特徴とする請求項41に記載の方法。
- 前記制御フロー図、前記データフロー図及び前記制御依存図は前記コンピュータプログラムの単一関数に対応することを特徴とする請求項41に記載の方法。
- コンピュータプログラムのセキュリティ脆弱性を検出するための、コンピュータにより実現される方法であって、
解析対象のソースコードを受領する工程と、
ここに前記ソースコードはコード要素と文でできており、
前記文の少なくとも一部は変数を参照し、
前記ソースコードのオブジェクト指向モデルを生成する工程と、
ここに前記コード要素は夫々オブジェクトにて表わされ、
前記モデルを使用し、ノードから構成される制御フロー図を生成する工程と、
前記制御フロー図からデータフロー図を導出する工程と、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
ここに前記データフロー図の導出は、
第1配列と第2配列を前記データフローノードの夫々に随伴させる工程からなり、
ここに前記第1配列は、随伴されたデータフローノードが依存する前記変数に関する
静的情報を有し、
前記第2配列は、前記随伴されたデータフローノードに影響を与える他の変数を同定する情報を有し、
前記他の変数は前記データフローノードのその他のノードに随伴されており、
前記制御フロー図を横断処理する工程と、
前記ノードの夫々において、前記情報に応じて、前記データフロー図の対応するデータフローノードの前記第2配列内に前記情報を設定する工程と、
前記データフローエッジを前記データフローノードと前記他のデータフローノードと夫々繋ぐことにより生成する工程と、
前記制御フロー図より制御依存ノードを有する制御依存図を導出する工程と、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析する工程と、
セキュリティ脆弱性を有する前記ソースコードの部位を同定する工程と、
前記セキュリティ脆弱性を報告する工程と、
からなることを特徴とする方法。 - 前記セキュリティ脆弱性を除去するため、前記ソースコードを変更する工程をさらに含むことを特徴とする請求項45に記載の方法。
- 前記分析工程は、問合せ言語を使用して行われることを特徴とする請求項45に記載の方法。
- 前記制御フロー図、前記データフロー図及び前記制御依存図は前記コンピュータプログラムの単一関数に対応することを特徴とする請求項45に記載の方法。
- コンピュータプログラムのセキュリティ脆弱性を検出するための、コンピュータにより実現される方法であって、
解析対象のソースコードを受領する工程と、
ここに前記ソースコードはコード要素と文でできており、
前記文の少なくとも一部は変数を参照し、
前記変数は要素変数からなり、
前記要素変数は要素名を有し
前記ソースコードのオブジェクト指向モデルを生成する工程と、
ここに前記コード要素は夫々オブジェクトにて表わされ、
前記モデルを使用し、ノードから構成される制御フロー図を生成する工程と、
ここに前記各ノードは前記制御フロー図上で位相順序を有し、
前記ノードの一部は少なくとも1つの子ノードを有し、
前記制御フロー図からデータフロー図を導出する工程と、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
前記制御フロー図より制御依存ノードを有する制御依存図を導出する工程と、
ここに制御依存図を導出する工程は、
前記制御フロー図の前記ノードに対し先天性値を与えるステップと、
ここに前記先天性値は、前記少なくとも1つの子ノードによって平等に継承値として継承され、
前記各ノードで継承値の合計が先天性値に等しい時はその継承値を削除するステップと、
前記ノードの前記継承値の各継承記録を維持するステップと、
ここに前記継承記録は前記各継承値の継承元を示す前記ノードの同定番号を含み、
前記制御フロー図の入口ノードを同定するステップと、
前記ノードの最初の1組のノード群を同定するステップと、
ここに前記最初の1組のノード群の構成ノードは前記継承値を持たず、
夫々第1エッジを最初の1組のノード群と前記入口ノードとの間に確立するステップと、
前記ノードの第2組のノード群を同定するステップと、
ここに前記第2組のノード群の構成ノードは前記継承値を有し、
前記継承記録において、前記第2組のノード群間に継承元ノードの近接位相順序を設定するステップと、
第2のエッジを前記第2組のノード群の前記構成ノードと前記最接位相順序の前記継承元ノードとの間に夫々生成するステップと、からなり、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析し、セキュリティ脆弱性を有する前記ソースコードの部位を同定する工程と、
前記セキュリティ脆弱性を報告する工程と、
からなることを特徴とする方法。 - 前記セキュリティ脆弱性を除去するため、前記ソースコードを変更する工程をさらに含むことを特徴とする請求項49に記載の方法。
- 前記分析工程は、問合せ言語を使用して行われることを特徴とする請求項49に記載の方法。
- 前記制御フロー図、前記データフロー図及び前記制御依存図は前記コンピュータプログラムの単一関数に対応することを特徴とする請求項49に記載の方法。
- コンピュータプログラムのセキュリティ脆弱性を検出するためのコンピュータソフトウエァ製品であって、コンピュータプログラム命令を保管し接触可能でコンピュータ読込み可能な媒体を含み、
前記命令は、コンピュータに読込まれた場合、コンピュータに対しコード要素と文からなるソースコードを受け取らせ、
前記文の少なくとも一部は変数を参照し、
前記変数は要素変数を有するデータ構造からなり、
前記要素変数は要素名を有し、
前記コンピュータはさらに、
前記ソースコードのオブジェクト指向モデルを生成することと、
ここに前記コード要素は夫々オブジェクトにて表わされ、
前記モデルを生成する工程は前記要素変数に夫々識別子を割当ることからなり、
前記モデルを使用しノードを有する制御フロー図を生成することと、
前記制御フロー図からデータフロー図を導出することと、
ここに前記データフロー図はデータフローノードおよび前記データフローノードを接続するデータフローエッジより構成され、
前記制御フロー図より制御依存ノードを有する制御依存図を導出することと、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析し、前記夫々の識別子を使用して、既定の要素変数に対する参照を同定することにより、セキュリティ脆弱性を有する前記ソースコードの部位を同定することと、
ここに前記既定の要素変数の前記要素名は、もう1つの要素変数の前記要素名と同一であり、
前記セキュリティ脆弱性を報告することと、
を命令されることを特徴とする製品。 - 前記セキュリティ脆弱性を除去するため、前記ソースコードを変更する工程をさらに含むことを特徴とする請求項53に記載のコンピュータソフトウエァ製品。
- 前記コンピュータはさらに、前記ソースコードの、単一アクションのみが行われる原子要素を表す、前記制御依存図のブロックを定義するために、前記制御依存図をコード切削するように命令されることを特徴とする請求項53に記載のコンピュータソフトウエァ製品。
- 前記コンピュータはさらに、入力データが有効とされる前記データフロー図のデータフローノードを同定し、前記入力データが前記同定されたデータフローノードにおいて既定の仕様に従って有効とされたことを証明するように命令されることを特徴とする請求項53に記載のコンピュータソフトウエァ製品。
- 前記コンピュータはさらに、前記ソースコードに対しソフトウェア故障の木解析を適用するように命令されることを特徴とする請求項53に記載のコンピュータソフトウエァ製品。
- 前記コンピュータはさらに、データ検証関数が誤りとなるシナリオを同定するため、前記データ検証関数に対しテストケースを生成するように命令されることを特徴とする請求項53に記載のコンピュータソフトウエァ製品。
- 前記コンピュータはさらに、前記コンピュータプログラムのオブジェクト群に対する、アクセス特権を特定する構成ファイルを自動的に準備し、前記アクセス特権が前記オブジェクト群の既定のオブジェクトに対し存在するか否か判定するよう前記構成ファイルに問合わせし、前記オブジェクト群の既定のオブジェクトに対する前記特権を削除するように命令されることを特徴とする請求項53に記載のコンピュータソフトウエァ製品。
- コンピュータプログラムのセキュリティ脆弱性を検出するためのコンピュータソフトウエァ製品であって、コンピュータプログラム命令を保管し接触可能でコンピュータ読込み可能な媒体を含み、
前記命令は、コンピュータに読込まれた場合、コンピュータに対し、
コード要素と文からなるソースコードを受け取らせ、
ここに前記文の少なくとも一部は変数を参照し、
前記ソースコードのオブジェクト指向モデルを生成させ、
ここに前記コード要素は夫々オブジェクトにて表わされ、
前記コンピュータはさらに、
前記モデルを使用し、ノードから構成される制御フロー図を生成し、
前記制御フロー図からデータフロー図を導出し、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
前記制御フロー図より制御依存ノードを有する制御依存図を導出し、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析して、セキュリティ脆弱性を有する前記ソースコードの部位を同定し、
ここにおいて前記分析は、前記制御依存図の第1部位を1回目に横断処理して前記制御依存図の処理済部分に標識を付け、その後2回目に前記標識の付いた部分を含む前記制御依存図の第2部位を、前記標識の付いた部分を飛ばして横断処理することにより行われ、
前記セキュリティ脆弱性を報告する、ように命令されることを特徴とする製品。 - 前記コンピュータはさらに、前記変数の既定の1つに影響を与える前記制御依存ノードのみを同定するため、前記制御依存図をコード切削するように命令され、ここにおいて前記制御依存図には意味を保存する処理だけが行われる、ことを特徴とする請求項60に記載のコンピュータソフトウエァ製品。
- コンピュータプログラムのセキュリティ脆弱性を検出するためのコンピュータソフトウエァ製品であって、コンピュータプログラム命令を保管し接触可能でコンピュータ読込み可能な媒体を含み、
前記命令は、コンピュータに読込まれた場合、コンピュータに対し、
コード要素と文からなるソースコードを受け取らせ、
前記ソースコードのオブジェクト指向モデルを生成させ、
ここに前記コード要素は夫々オブジェクトにて表わされ、
前記コンピュータはさらに、
前記モデルを使用し、ノードから構成される制御フロー図を生成し、
前記制御フロー図からデータフロー図を導出し、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
前記制御フロー図より制御依存ノードを有する制御依存図を導出し、
セキュリティ脆弱性を有する前記ソースコードの部位を同定するために、前記制御フロー図、前記データフロー図及び前記制御依存図を分析し、
ここに前記分析は、
前記データフロー図内に、入力が受入れられた第1データフローノード、データが有効とされた第2データフローノード、およびデータが使用された第3データフローノードを同定するステップと、
前記データフロー図から前記第2データフローノードを削除するステップと、
その後前記第3データフローノードの1つと前記第1データフローノードの1つが前記データフローエッジの1つにより繋がっていることを判定するステップと、により行われ、
前記第3データフローノードが未評価入力の脆弱性を有することを報告する、
ように命令されることを特徴とする製品。 - 前記コンピュータはさらに、入力データが有効とされる前記データフロー図のデータフローノードを同定し、前記入力データが前記同定されたデータフローノードにおいて既定の仕様に従って有効とされたことを証明するように命令されることを特徴とする
請求項62に記載のコンピュータソフトウエァ製品。 - ンピュータプログラムのセキュリティ脆弱性を検出するためのコンピュータソフトウエァ製品であって、コンピュータプログラム命令を保管し接触可能でコンピュータ読込み可能な媒体を含み、
前記命令は、コンピュータに読込まれた場合、コンピュータに対し、
コード要素と文からなるソースコードを受け取らせ、
ここに前記文の少なくとも一部は変数を参照し、
前記ソースコードのオブジェクト指向モデルを生成させ、
ここに前記コード要素は夫々オブジェクトにて表わされ、
前記コンピュータはさらに、
前記モデルを使用し、ノードから構成される制御フロー図を生成し、
ここに前記制御フロー図は、前記ソースコードにおける複数の関数を記述し、
前記変数はさらにグローバル変数からなり、
前記グローバル変数は、前記関数に、前記グローバル変数をデータ要素として有する、超グローバル変数として渡され、
前記制御フロー図からデータフロー図を導出し、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
前記制御フロー図より制御依存ノードを有する制御依存図を導出し、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析し、
セキュリティ脆弱性を有する前記ソースコードの部位を同定し、
前記セキュリティ脆弱性を報告する、
ことを命令されることを特徴とする製品。 - コンピュータプログラムのセキュリティ脆弱性を検出するためのコンピュータソフトウエァ製品であって、コンピュータプログラム命令を保管し接触可能でコンピュータ読込み可能な媒体を含み、
前記命令は、コンピュータに読込まれた場合、コンピュータに対し、
コード要素と文からなるソースコードを受け取らせ、
ここに前記文の少なくとも一部は変数を参照し、
前記ソースコードのオブジェクト指向モデルを生成させ、
ここに前記コード要素は夫々オブジェクトにて表わされ、
前記コンピュータはさらに、
記モデルを使用し、ノードから構成される制御フロー図を生成し、
前記制御フロー図からデータフロー図を導出し、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
ここに前記データフロー図の導出は、
第1配列と第2配列を前記データフローノードの夫々に随伴させる工程からなり、
ここに前記第1配列は、随伴されたデータフローノードが依存する前記変数に関する
静的情報を有し、
前記第2配列は、前記随伴されたデータフローノードに影響を与える他の変数を同定する情報を有し、
前記他の変数は前記データフローノードのその他のノードに随伴されており、
前記制御フロー図を横断処理し、
前記ノードの夫々において、前記情報に応じて、前記データフロー図の対応するデータフローノードの前記第2配列内に前記情報を設定し、
前記データフローエッジを前記データフローノードと前記他のデータフローノードと夫々繋ぐことにより生成し、
前記制御フロー図より制御依存ノードを有する制御依存図を導出し、
前記制御フロー図、前記データフロー図及び前記制御依存図を分析し、
セキュリティ脆弱性を有する前記ソースコードの部位を同定し、
前記セキュリティ脆弱性を報告する、
ことを命令されることを特徴とする製品。 - コンピュータプログラムのセキュリティ脆弱性を検出するためのコンピュータソフトウエァ製品であって、コンピュータプログラム命令を保管し接触可能でコンピュータ読込み可能な媒体を含み、
前記命令は、コンピュータに読込まれた場合、コンピュータに対し、
コード要素と文からなるソースコードを受け取らせ、
ここに前記文の少なくとも一部は変数を参照し、
前記変数は要素変数からなり、
前記要素変数は要素名を有し
前記ソースコードのオブジェクト指向モデルを生成させ、
ここに前記コード要素は夫々オブジェクトにて表わされ、
前記コンピュータはさらに、
前記モデルを使用し、ノードから構成される制御フロー図を生成し、
ここに前記各ノードは前記制御フロー図上で位相順序を有し、
前記ノードの一部は少なくとも1つの子ノードを有し、
前記制御フロー図からデータフロー図を導出し、
ここに前記データフロー図は、データフローノードと、前記データフローノードを繋ぐデータフローエッジと、からなり、
前記制御フロー図より制御依存ノードを有する制御依存図を導出するように命令され、、
前記コンピュータは、
前記制御フロー図の前記ノードに対し先天性値を与えるステップと、
ここに前記先天性値は、前記少なくとも1つの子ノードによって平等に継承値として継承され、
前記各ノードで継承値の合計が先天性値に等しい時はその継承値を削除するステップと、
前記ノードの前記継承値の各継承記録を維持するステップと、
ここに前記継承記録は前記各継承値の継承元を示す前記ノードの同定番号を含み、
前記制御フロー図の入口ノードを同定するステップと、
前記ノードの最初の1組のノード群を同定するステップと、
ここに前記最初の1組のノード群の構成ノードは前記継承値を持たず、
夫々第1エッジを最初の1組のノード群と前記入口ノードとの間に確立するステップと、
前記ノードの第2組のノード群を同定するステップと、
ここに前記第2組のノード群の構成ノードは前記継承値を有し、
前記継承記録において、前記第2組のノード群間に継承元ノードの近接位相順序を同定するステップと、
第2のエッジを前記第2組のノード群の前記構成ノードと最接位相順序の前記継承元ノードとの間に夫々生成するステップと、
の各ステップにより前記制御依存図を導出するように命令され、
前記コンピュータは、
セキュリティ脆弱性を有する前記ソースコードの部位を同定するため、前記制御フロー図、前記データフロー図及び前記制御依存図を分析し、
前記セキュリティ脆弱性を報告する、
ように命令されることを特徴とする製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US85334906P | 2006-10-19 | 2006-10-19 | |
US60/853,349 | 2006-10-19 | ||
PCT/IL2007/001233 WO2008047351A2 (en) | 2006-10-19 | 2007-10-15 | Locating security vulnerabilities in source code |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2010507165A true JP2010507165A (ja) | 2010-03-04 |
JP2010507165A5 JP2010507165A5 (ja) | 2010-10-07 |
JP5042315B2 JP5042315B2 (ja) | 2012-10-03 |
Family
ID=39314446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009532956A Active JP5042315B2 (ja) | 2006-10-19 | 2007-10-15 | ソースコード内のセキュリティ脆弱性の検出 |
Country Status (4)
Country | Link |
---|---|
US (3) | US20100083240A1 (ja) |
EP (1) | EP2092424B1 (ja) |
JP (1) | JP5042315B2 (ja) |
WO (1) | WO2008047351A2 (ja) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101097105B1 (ko) * | 2010-12-23 | 2011-12-22 | 한국저작권위원회 | Sw 소스코드 난독화와 버전 관리시스템과의 연동 방법 및 시스템 |
JP2013061843A (ja) * | 2011-09-14 | 2013-04-04 | Fujifilm Corp | コンピュータ・ソフトウエア解析システムならびにクライアント・コンピュータ,その動作制御方法およびその動作プログラム |
JP2013536522A (ja) * | 2010-08-24 | 2013-09-19 | チェックマークス リミテッド | プログラミングルール違反に対するソースコードマイニング |
JP2014507718A (ja) * | 2011-01-31 | 2014-03-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するための方法、コンピュータ・プログラム、およびシステム |
WO2014050431A1 (ja) | 2012-09-26 | 2014-04-03 | 三菱電機株式会社 | プログラム検証装置、プログラム検証方法およびプログラム検証プログラム |
JP2014174577A (ja) * | 2013-03-05 | 2014-09-22 | Ntt Data Corp | 検証装置、検証方法、及びプログラム |
KR101640479B1 (ko) * | 2015-08-28 | 2016-07-18 | (주)엔키소프트 | 소스코드기반 소프트웨어 취약점 공격행위 분석시스템 |
KR101696694B1 (ko) * | 2015-08-17 | 2017-01-18 | (주)트리니티소프트 | 역추적을 이용한 소스 코드 취약점 분석 방법 및 장치 |
US9654491B2 (en) | 2012-11-13 | 2017-05-16 | Fujitsu Limited | Network filtering apparatus and filtering method |
KR20190052447A (ko) * | 2017-11-08 | 2019-05-16 | 한국전력공사 | Cfg를 이용한 패턴 기반의 소프트웨어 절차변경 동작 감시 장치 및 그 방법 |
US10296746B2 (en) | 2013-07-26 | 2019-05-21 | Fujitsu Limited | Information processing device, filtering system, and filtering method |
KR20190084468A (ko) * | 2018-01-08 | 2019-07-17 | 국방과학연구소 | 함수 정보 요약 장치 및 방법 |
WO2019142335A1 (ja) * | 2018-01-19 | 2019-07-25 | 三菱電機株式会社 | セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラム |
US10628140B2 (en) | 2016-11-17 | 2020-04-21 | Mitsubishi Electric Corporation | Program code generation apparatus |
Families Citing this family (164)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7051322B2 (en) * | 2002-12-06 | 2006-05-23 | @Stake, Inc. | Software analysis framework |
US8108826B2 (en) * | 2004-09-29 | 2012-01-31 | Avaya Inc. | Code-coverage guided prioritized test generation |
EP2092424B1 (en) | 2006-10-19 | 2015-12-30 | Checkmarx Ltd. | Locating security vulnerabilities in source code |
US8429637B2 (en) * | 2008-09-02 | 2013-04-23 | Apple Inc. | System and method for conditional expansion obfuscation |
US8869111B2 (en) * | 2009-01-15 | 2014-10-21 | Infosys Limited | Method and system for generating test cases for a software application |
US8589884B2 (en) * | 2009-01-15 | 2013-11-19 | Infosys Limited | Method and system for identifying regression test cases for a software |
JP5228943B2 (ja) * | 2009-01-27 | 2013-07-03 | 富士通株式会社 | 最小権限違反検出プログラム |
CA2750279C (en) | 2009-02-13 | 2019-03-26 | Ab Initio Technology Llc | Managing task execution |
JP5186443B2 (ja) | 2009-06-30 | 2013-04-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 文字列の妥当性を判定するシステム、方法及びプログラム |
CN101964025B (zh) * | 2009-07-23 | 2016-02-03 | 北京神州绿盟信息安全科技股份有限公司 | Xss检测方法和设备 |
US8612954B2 (en) * | 2009-08-17 | 2013-12-17 | International Business Machines Corporation | Fine slicing: generating an executable bounded slice for program |
US8397300B2 (en) | 2009-09-22 | 2013-03-12 | International Business Machines Corporation | Detecting security vulnerabilities relating to cryptographically-sensitive information carriers when testing computer software |
US8448139B2 (en) * | 2009-10-05 | 2013-05-21 | International Business Machines Corporation | Automatic correction of application based on runtime behavior |
US8584246B2 (en) | 2009-10-13 | 2013-11-12 | International Business Machines Corporation | Eliminating false reports of security vulnerabilities when testing computer software |
US8468512B2 (en) * | 2009-10-30 | 2013-06-18 | International Business Machines Corporation | Abstracting benefit rules from computer code |
JP5381649B2 (ja) * | 2009-11-26 | 2014-01-08 | 富士通株式会社 | 検証対象抽出プログラム、検証対象抽出装置、および検証対象抽出方法 |
US8468605B2 (en) | 2009-11-30 | 2013-06-18 | International Business Machines Corporation | Identifying security vulnerability in computer software |
US8359584B2 (en) * | 2009-12-18 | 2013-01-22 | Microsoft Corporation | Debugging from a call graph |
US9210184B2 (en) | 2009-12-29 | 2015-12-08 | International Business Machines Corporation | Determining the vulnerability of computer software applications to attacks |
US8843902B2 (en) * | 2010-03-12 | 2014-09-23 | XMOS Ltd. | Program flow route constructor |
US10025688B2 (en) * | 2010-03-14 | 2018-07-17 | Virtual Forge GmbH | System and method for detecting data extrusion in software applications |
US8589898B2 (en) * | 2010-03-29 | 2013-11-19 | GM Global Technology Operations LLC | Method and apparatus for analyzing software including a calibrated value |
US8584108B2 (en) * | 2010-03-29 | 2013-11-12 | GM Global Technology Operations LLC | Method and apparatus for analyzing software |
US8910133B2 (en) * | 2010-06-07 | 2014-12-09 | Microsoft Corporation | Library conformity checker |
EP3287896B1 (en) | 2010-06-15 | 2023-04-26 | Ab Initio Technology LLC | Dynamically loading graph-based computations |
US8528095B2 (en) | 2010-06-28 | 2013-09-03 | International Business Machines Corporation | Injection context based static analysis of computer software applications |
US20120102474A1 (en) * | 2010-10-26 | 2012-04-26 | International Business Machines Corporation | Static analysis of client-server applications using framework independent specifications |
US8572747B2 (en) * | 2010-11-19 | 2013-10-29 | International Business Machines Corporation | Policy-driven detection and verification of methods such as sanitizers and validators |
US8667584B2 (en) | 2010-12-15 | 2014-03-04 | International Business Machines Corporation | Formal analysis of the quality and conformance of information flow downgraders |
US8407242B2 (en) * | 2010-12-16 | 2013-03-26 | Microsoft Corporation | Temporal binding for semantic queries |
IL210169A0 (en) | 2010-12-22 | 2011-03-31 | Yehuda Binder | System and method for routing-based internet security |
US20120192280A1 (en) * | 2011-01-20 | 2012-07-26 | Board Of Trustees Of The University Of Illinois | Apparatus for enhancing web application security and method therefor |
US8606866B2 (en) | 2011-02-10 | 2013-12-10 | Kaspersky Lab Zao | Systems and methods of probing data transmissions for detecting spam bots |
JP5654944B2 (ja) * | 2011-05-02 | 2015-01-14 | Kddi株式会社 | アプリケーション解析装置およびプログラム |
US8539466B2 (en) | 2011-05-23 | 2013-09-17 | International Business Machines Corporation | Determining suitable insertion points for string sanitizers in a computer code |
US8516443B2 (en) * | 2011-05-26 | 2013-08-20 | Oracle International Corporation | Context-sensitive analysis framework using value flows |
US8949992B2 (en) * | 2011-05-31 | 2015-02-03 | International Business Machines Corporation | Detecting persistent vulnerabilities in web applications |
US8666999B2 (en) * | 2011-08-02 | 2014-03-04 | Rockwell Automation Technologies, Inc. | Search utility program for software developers |
US8875109B2 (en) * | 2011-08-26 | 2014-10-28 | Fujitsu Limited | Tracking variables in javascript software using a control flow graph |
US8793665B2 (en) * | 2011-08-26 | 2014-07-29 | Fujitsu Limited | Performing taint analysis for javascript software using a control flow graph |
US8769696B2 (en) | 2011-09-29 | 2014-07-01 | International Business Machines Corporation | Automated detection of flaws and incompatibility problems in information flow downgraders |
US9098624B1 (en) | 2011-12-22 | 2015-08-04 | Dell Software Inc. | Deep type parsing |
US8856935B2 (en) | 2012-02-07 | 2014-10-07 | International Business Machines Corporation | Automatic synthesis of unit tests for security testing |
US8806464B2 (en) * | 2012-04-26 | 2014-08-12 | Hewlett-Packard Development Company, L.P. | Process flow optimized directed graph traversal |
CA2777434C (en) | 2012-05-18 | 2019-09-10 | Ibm Canada Limited - Ibm Canada Limitee | Verifying application security vulnerabilities |
CN102693396B (zh) * | 2012-06-11 | 2014-09-17 | 中南大学 | 一种基于虚拟执行模式的Flash漏洞检测方法 |
EP2877926A4 (en) * | 2012-07-26 | 2016-01-27 | Hewlett Packard Development Co | SAFETY TESTING OF AN APPLICATION |
CN107979612A (zh) | 2012-08-18 | 2018-05-01 | 赋格有限公司 | 提供安全的计算机环境的系统和方法 |
WO2014049504A1 (en) * | 2012-09-25 | 2014-04-03 | Checkmarx Ltd. | Detecting malicious advertisements using source code analysis |
US9032530B2 (en) | 2012-09-28 | 2015-05-12 | International Business Machines Corporation | Correcting workflow security vulnerabilities via static analysis and virtual patching |
US9141807B2 (en) * | 2012-09-28 | 2015-09-22 | Synopsys, Inc. | Security remediation |
US9292693B2 (en) | 2012-10-09 | 2016-03-22 | International Business Machines Corporation | Remediation of security vulnerabilities in computer software |
US8966636B2 (en) * | 2012-10-16 | 2015-02-24 | International Business Machines Corporation | Transforming unit tests for security testing |
US10521288B2 (en) * | 2012-11-07 | 2019-12-31 | International Business Machines Corporation | Collaborative application testing |
US10108521B2 (en) | 2012-11-16 | 2018-10-23 | Ab Initio Technology Llc | Dynamic component performance monitoring |
US9507682B2 (en) | 2012-11-16 | 2016-11-29 | Ab Initio Technology Llc | Dynamic graph performance monitoring |
CN103108044B (zh) * | 2013-02-04 | 2015-08-19 | 南京大学 | 一种基于依赖图约减和QoS保持的Web服务组合方法 |
US9384354B2 (en) * | 2013-02-20 | 2016-07-05 | International Business Machines Corporation | Rule matching in the presence of languages with no types or as an adjunct to current analyses for security vulnerability analysis |
US9372785B2 (en) * | 2013-03-07 | 2016-06-21 | Microsoft Technology Licensing, Llc | Identifying implicit assumptions associated with a software product |
US9569334B2 (en) * | 2013-03-14 | 2017-02-14 | Whitehat Security, Inc. | Techniques for traversing representations of source code |
WO2014171950A1 (en) | 2013-04-19 | 2014-10-23 | Hewlett-Packard Development Company, L.P. | Unused parameters of application under test |
US9158922B2 (en) | 2013-05-29 | 2015-10-13 | Lucent Sky Corporation | Method, system, and computer-readable medium for automatically mitigating vulnerabilities in source code |
US9471286B2 (en) * | 2013-06-04 | 2016-10-18 | Microsoft Technology Licensing, Llc | System and method for providing code completion features for code modules |
US9426177B2 (en) * | 2013-07-15 | 2016-08-23 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for detecting security vulnerability for animation source file |
WO2015016901A1 (en) * | 2013-07-31 | 2015-02-05 | Hewlett-Packard Development Company, L.P. | Signal tokens indicative of malware |
US9459986B2 (en) | 2013-08-28 | 2016-10-04 | International Business Machines Corporation | Automatic generation of analysis-equivalent application constructs |
US20150095894A1 (en) * | 2013-09-30 | 2015-04-02 | International Business Machines Corporation | Detecting race condition vulnerabilities in computer software applications |
CA3128713C (en) | 2013-12-05 | 2022-06-21 | Ab Initio Technology Llc | Managing interfaces for dataflow graphs composed of sub-graphs |
US11057416B2 (en) * | 2013-12-19 | 2021-07-06 | Micro Focus Llc | Analyze code that uses web framework using local parameter model |
US10019567B1 (en) * | 2014-03-24 | 2018-07-10 | Amazon Technologies, Inc. | Encoding of security codes |
US20150278526A1 (en) * | 2014-03-25 | 2015-10-01 | Wipro Limited | Computerized systems and methods for presenting security defects |
WO2015155028A1 (en) * | 2014-04-11 | 2015-10-15 | Arima Software Design S.L.L. | Detection of manipulation of applications |
WO2015195125A1 (en) * | 2014-06-19 | 2015-12-23 | Hewlett-Packard Development Company, L.P. | Install runtime agent for security test |
US9852294B1 (en) * | 2014-06-24 | 2017-12-26 | Symantec Corporation | Systems and methods for detecting suspicious applications based on how entry-point functions are triggered |
US10599852B2 (en) | 2014-08-15 | 2020-03-24 | Securisea, Inc. | High performance software vulnerabilities detection system and methods |
US9454659B1 (en) | 2014-08-15 | 2016-09-27 | Securisea, Inc. | Software vulnerabilities detection system and methods |
US9824214B2 (en) | 2014-08-15 | 2017-11-21 | Securisea, Inc. | High performance software vulnerabilities detection system and methods |
CN105487966B (zh) * | 2014-09-17 | 2023-07-25 | 深圳市雅阅科技有限公司 | 程序测试方法、装置及系统 |
US10657262B1 (en) * | 2014-09-28 | 2020-05-19 | Red Balloon Security, Inc. | Method and apparatus for securing embedded device firmware |
WO2016108162A1 (en) | 2015-01-01 | 2016-07-07 | Checkmarx Ltd. | Code instrumentation for runtime application self-protection |
US10282550B1 (en) * | 2015-03-12 | 2019-05-07 | Whitehat Security, Inc. | Auto-remediation workflow for computer security testing |
US9792443B1 (en) * | 2015-03-12 | 2017-10-17 | Whitehat Security, Inc. | Position analysis of source code vulnerabilities |
CN106295346B (zh) * | 2015-05-20 | 2022-08-30 | 深圳市腾讯计算机系统有限公司 | 一种应用漏洞检测方法、装置及计算设备 |
US10095734B2 (en) * | 2015-06-10 | 2018-10-09 | International Business Machines Corporation | Source code search engine |
KR102414250B1 (ko) * | 2015-07-30 | 2022-06-29 | 삼성전자주식회사 | 전자 장치, 컴파일링 방법 및 컴퓨터 판독가능 기록매체 |
US10657134B2 (en) | 2015-08-05 | 2020-05-19 | Ab Initio Technology Llc | Selecting queries for execution on a stream of real-time data |
US10341194B2 (en) | 2015-10-05 | 2019-07-02 | Fugue, Inc. | System and method for building, optimizing, and enforcing infrastructure on a cloud based computing environment |
US10229612B2 (en) | 2015-10-07 | 2019-03-12 | Coursera Inc. | Secure computer-implemented execution and evaluation of programming assignments for on demand courses |
CN105389194B (zh) * | 2015-10-19 | 2019-02-01 | 华为技术有限公司 | 一种确定应用程序计算逻辑的方法及装置 |
US11218510B2 (en) * | 2015-10-28 | 2022-01-04 | Qomplx, Inc. | Advanced cybersecurity threat mitigation using software supply chain analysis |
CA3005263C (en) | 2015-12-21 | 2021-06-15 | Ab Initio Technology Llc | Sub-graph interface generation |
US11593249B2 (en) * | 2015-12-23 | 2023-02-28 | Oracle International Corporation | Scalable points-to analysis via multiple slicing |
KR101645019B1 (ko) | 2016-01-15 | 2016-08-02 | 지티원 주식회사 | 소프트웨어 보안취약점 검출을 위한 규칙명세언어 |
US10366213B2 (en) * | 2016-02-09 | 2019-07-30 | International Business Machines Corporation | Protecting an application via an intra-application firewall |
US9959097B2 (en) * | 2016-03-09 | 2018-05-01 | Bank Of America Corporation | SVN interface system for heterogeneous development environments |
US10387656B2 (en) | 2016-03-21 | 2019-08-20 | Checkmarx Ltd. | Integrated interactive application security testing |
US10210336B2 (en) * | 2016-03-29 | 2019-02-19 | International Business Machines Corporation | Precision-tuned runtime monitoring |
US20170329691A1 (en) * | 2016-05-12 | 2017-11-16 | Synopsys, Inc. | Systems and methods for using semantic queries to analyze software |
US10210077B2 (en) | 2016-05-18 | 2019-02-19 | International Business Machines Corporation | Using multiple sequence alignment to identify security vulnerability code paths |
CN105959335B (zh) * | 2016-07-19 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 一种网络攻击行为检测方法及相关装置 |
US10325097B2 (en) * | 2016-07-19 | 2019-06-18 | Oracle International Corporation | Static detection of context-sensitive cross-site scripting vulnerabilities |
KR20180010053A (ko) * | 2016-07-20 | 2018-01-30 | 주식회사 이븐스타 | 보안 취약점 점검을 위한 위험성 코드 검출 시스템 및 그 방법 |
US10176074B2 (en) * | 2016-09-21 | 2019-01-08 | Lenvio Inc. | Computed call/jump target resolution via behavior computation |
US10339320B2 (en) | 2016-11-18 | 2019-07-02 | International Business Machines Corporation | Applying machine learning techniques to discover security impacts of application programming interfaces |
CN108614695A (zh) * | 2016-12-06 | 2018-10-02 | 北京奇虎科技有限公司 | 快速定位安卓应用代码文件中的指定内容的方法和装置 |
US10581879B1 (en) * | 2016-12-22 | 2020-03-03 | Fireeye, Inc. | Enhanced malware detection for generated objects |
EP3566166B1 (en) * | 2017-01-04 | 2022-03-02 | Checkmarx Ltd. | Management of security vulnerabilities |
US10437714B2 (en) * | 2017-01-25 | 2019-10-08 | Wipro Limited | System and method for performing script-less unit testing |
EP3401827A1 (en) | 2017-05-10 | 2018-11-14 | Checkmarx Ltd. | Method and system of static and dynamic data flow analysis |
US10740470B2 (en) | 2017-05-31 | 2020-08-11 | Shiftleft Inc. | System and method for application security profiling |
CN109214188B (zh) * | 2017-06-30 | 2022-05-27 | 阿里巴巴集团控股有限公司 | 一种漏洞分析方法和装置及数据处理方法和装置 |
US10796240B2 (en) * | 2017-07-22 | 2020-10-06 | QC Ware Corp. | Performing fault tree analysis on quantum computers |
US10872156B2 (en) * | 2017-08-11 | 2020-12-22 | Jpmorgan Chase Bank, N.A. | Typescript security scanner |
US20190052602A1 (en) * | 2017-08-14 | 2019-02-14 | Onapsis, lnc. | Generating rules to detect security vulnerabilities based on vulnerability primitives with entry point finder |
US10275235B2 (en) | 2017-09-18 | 2019-04-30 | International Business Machines Corporation | Adaptable management of web application state in a micro-service architecture |
US10956574B2 (en) | 2017-10-07 | 2021-03-23 | Shiftleft Inc. | System and method for securing applications through an application-aware runtime agent |
US10365905B1 (en) * | 2017-10-26 | 2019-07-30 | Facebook, Inc. | Systems and methods for evaluating application performance changes via comparative call graphs |
US10540255B2 (en) * | 2017-10-31 | 2020-01-21 | Oracle International Corporation | Staged refinement for static analysis |
US10572367B2 (en) * | 2017-11-21 | 2020-02-25 | Accenture Global Solutions Limited | Intelligent code quality monitoring |
US11074362B2 (en) | 2017-12-04 | 2021-07-27 | ShiftLeft, Inc. | System and method for code-based protection of sensitive data |
US10133871B1 (en) | 2017-12-13 | 2018-11-20 | Booz Allen Hamilton Inc. | Method and system for identifying functional attributes that change the intended operation of a compiled binary extracted from a target system |
US10740469B2 (en) | 2017-12-28 | 2020-08-11 | Fmr Llc | Automated secure software development management, risk assessment, and risk remediation |
US10198250B1 (en) * | 2018-01-04 | 2019-02-05 | Accenture Global Solutions Limited | Partitioning based migration of systems to container and microservice based platforms |
US10606570B2 (en) * | 2018-03-08 | 2020-03-31 | Fujitsu Limited | Representing software with an abstract code graph |
US10678916B2 (en) * | 2018-03-20 | 2020-06-09 | Didi Research America, Llc | Malicious program detection |
US11087001B2 (en) | 2018-04-04 | 2021-08-10 | Red Hat, Inc. | Determining location of speculation denial instructions for memory access vulnerabilities |
US10261784B1 (en) * | 2018-06-20 | 2019-04-16 | Terbium Labs, Inc. | Detecting copied computer code using cryptographically hashed overlapping shingles |
US11144840B2 (en) * | 2018-07-26 | 2021-10-12 | International Business Machines Corporation | Completing decision logic to avoid a side effect |
US20200042712A1 (en) * | 2018-07-31 | 2020-02-06 | Veracode, Inc. | Open-source software vulnerability analysis |
US11036866B2 (en) | 2018-10-18 | 2021-06-15 | Denso Corporation | Systems and methods for optimizing control flow graphs for functional safety using fault tree analysis |
US10534912B1 (en) * | 2018-10-31 | 2020-01-14 | Capital One Services, Llc | Methods and systems for multi-tool orchestration |
US10754628B2 (en) * | 2018-11-02 | 2020-08-25 | Microsoft Technology Licensing, Llc | Extracting web API endpoint data from source code to identify potential security threats |
US11514172B2 (en) | 2018-11-15 | 2022-11-29 | Grabango Co. | System and method for information flow analysis of application code |
US11741196B2 (en) | 2018-11-15 | 2023-08-29 | The Research Foundation For The State University Of New York | Detecting and preventing exploits of software vulnerability using instruction tags |
US11265292B1 (en) * | 2019-01-28 | 2022-03-01 | Amazon Technologies, Inc. | Graph based management of virtualized infrastructures |
US11163888B2 (en) * | 2019-02-15 | 2021-11-02 | Oracle International Corporation | Detecting second-order security vulnerabilities via modelling information flow through persistent storage |
CN111611149B (zh) * | 2019-02-22 | 2023-03-31 | 上海信息安全工程技术研究中心 | 基于代码行为单位的程序变量有效定义检测方法及装置 |
US11599644B2 (en) * | 2019-05-17 | 2023-03-07 | Walmart Apollo, Llc | Blocking insecure code with locking |
CN110221973B (zh) * | 2019-05-22 | 2022-12-16 | 湖南泛联新安信息科技有限公司 | 面向c程序缺陷检测的靶向式并行符号执行方法 |
US11636211B2 (en) | 2019-06-27 | 2023-04-25 | Blackberry Limited | Binary static analysis of application structure to identify vulnerabilities |
US11650905B2 (en) | 2019-09-05 | 2023-05-16 | International Business Machines Corporation | Testing source code changes |
CN111027073B (zh) * | 2019-11-28 | 2022-03-22 | 深信服科技股份有限公司 | 漏洞检测方法、装置、设备及存储介质 |
CN110825650B (zh) * | 2019-11-29 | 2023-04-11 | 北京网聘咨询有限公司 | 单元测试覆盖精度检测方法及装置 |
US11440190B1 (en) * | 2020-02-26 | 2022-09-13 | Trend Micro Incorporated | Detecting unsecure data flow in automation task programs |
CN111460450B (zh) * | 2020-03-11 | 2023-02-10 | 西北大学 | 一种基于图卷积网络的源代码漏洞检测方法 |
EP3882782A1 (en) * | 2020-03-20 | 2021-09-22 | Tata Consultancy Services Limited | System and method for sql query extraction in an application |
CN111488582B (zh) * | 2020-04-01 | 2023-09-29 | 杭州云象网络技术有限公司 | 一种基于图神经网络的智能合约重入性漏洞检测的方法 |
EP3945441A1 (en) | 2020-07-28 | 2022-02-02 | Checkmarx Ltd. | Detecting exploitable paths in application software that uses third-party libraries |
US11714615B2 (en) | 2020-09-18 | 2023-08-01 | International Business Machines Corporation | Application migration using cost-aware code dependency graph |
US11610000B2 (en) | 2020-10-07 | 2023-03-21 | Bank Of America Corporation | System and method for identifying unpermitted data in source code |
US11366901B2 (en) * | 2020-10-07 | 2022-06-21 | Bank Of America Corporation | System and method for identifying insider threats in source code |
US11568060B2 (en) * | 2020-12-08 | 2023-01-31 | Oracle International Corporation | Modular taint analysis with access paths |
US20220300615A1 (en) * | 2021-02-12 | 2022-09-22 | Tata Consultancy Services Limited | Method and system for identifying security vulnerabilities |
US11968224B2 (en) | 2021-03-22 | 2024-04-23 | International Business Machines Corporation | Shift-left security risk analysis |
US11550569B2 (en) * | 2021-05-14 | 2023-01-10 | Cyberark Software Ltd. | Discovering and remediating hidden secrets in code files |
CN113467983A (zh) * | 2021-07-16 | 2021-10-01 | 中国银行股份有限公司 | 故障的处理方法、装置、设备及可读存储介质 |
US20230130649A1 (en) * | 2021-10-21 | 2023-04-27 | Dazz, Inc. | Techniques for semantic analysis of cybersecurity event data and remediation of cybersecurity event root causes |
CN113722721B (zh) * | 2021-11-03 | 2022-03-11 | 北京鸿渐科技有限公司 | 一种基于值依赖图的源库模式Java安全漏洞检测方法 |
US20230205496A1 (en) * | 2021-12-23 | 2023-06-29 | OutSystems - Software em Rede, S.A. | Declarative visual programming language code search |
US20230237161A1 (en) * | 2022-01-26 | 2023-07-27 | Microsoft Technology Licensing, Llc | Detection of and protection against cross-site scripting vulnerabilities in web application code |
CN114707152A (zh) * | 2022-02-23 | 2022-07-05 | 北京邮电大学 | 联盟链智能合约的安全漏洞检测方法及装置 |
CN114595148B (zh) * | 2022-03-02 | 2024-04-16 | 北京大学 | 一种基于数据流传播分析的Java空指针引用检测方法及系统 |
US20230376603A1 (en) * | 2022-05-20 | 2023-11-23 | Dazz, Inc. | Techniques for identifying and validating security control steps in software development pipelines |
CN114996149B (zh) * | 2022-06-16 | 2024-05-28 | 南京邮电大学 | 一种基于程序切片度量的代码缺陷预测方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08190475A (ja) * | 1995-01-05 | 1996-07-23 | Fujitsu Ltd | プログラム解析装置 |
JP2003050722A (ja) * | 2001-08-03 | 2003-02-21 | Sony Corp | プログラム解析システムとプログラム解析方法 |
WO2005121953A1 (en) * | 2004-06-04 | 2005-12-22 | Fortify Software, Inc. | Apparatus and method for developing, testing and monitoring secure software |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE182014T1 (de) * | 1989-09-01 | 1999-07-15 | Amdahl Corp | Programmierbarer rechner mit automatischer übersetzung zwischen quell - und zielkode mit versionüberwachung |
US5107418A (en) * | 1990-06-11 | 1992-04-21 | Supercomputer Systems Limited Partnership | Method for representing scalar data dependences for an optimizing compiler |
US5485616A (en) * | 1993-10-12 | 1996-01-16 | International Business Machines Corporation | Using program call graphs to determine the maximum fixed point solution of interprocedural bidirectional data flow problems in a compiler |
US5790858A (en) * | 1994-06-30 | 1998-08-04 | Microsoft Corporation | Method and system for selecting instrumentation points in a computer program |
US5586328A (en) * | 1994-10-21 | 1996-12-17 | Microsoft Corporation | Module dependency based incremental compiler and method |
US5701489A (en) * | 1995-06-06 | 1997-12-23 | International Business Machines Corporation | System for partial in-line expansion of procedure calls during program compilation |
US5742811A (en) | 1995-10-10 | 1998-04-21 | International Business Machines Corporation | Method and system for mining generalized sequential patterns in a large database |
US5875334A (en) * | 1995-10-27 | 1999-02-23 | International Business Machines Corporation | System, method, and program for extending a SQL compiler for handling control statements packaged with SQL query statements |
US5778233A (en) * | 1996-10-11 | 1998-07-07 | International Business Machines Corporation | Method and apparatus for enabling global compiler optimizations in the presence of exception handlers within a computer program |
US5881290A (en) * | 1996-12-09 | 1999-03-09 | Allen-Bradley Company, Llc | Industrial controller decompiler accommodating an expandable instruction set |
CA2200812A1 (en) * | 1997-03-24 | 1998-09-24 | Archambault, Roch George | Optimizing compilation of pointer variables |
US5978588A (en) * | 1997-06-30 | 1999-11-02 | Sun Microsystems, Inc. | Method and apparatus for profile-based code placement using a minimum cut set of the control flow graph |
ATE457492T1 (de) * | 1998-10-10 | 2010-02-15 | Ibm | Programmkodekonvertierung mit verringerter übersetzung |
US6442748B1 (en) * | 1999-08-31 | 2002-08-27 | Accenture Llp | System, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment |
US9525696B2 (en) | 2000-09-25 | 2016-12-20 | Blue Coat Systems, Inc. | Systems and methods for processing data flows |
US7284274B1 (en) * | 2001-01-18 | 2007-10-16 | Cigital, Inc. | System and method for identifying and eliminating vulnerabilities in computer software applications |
US7137103B2 (en) * | 2001-03-08 | 2006-11-14 | International Business Machines Corporation | Coverage analysis of message flows |
US20030056192A1 (en) * | 2001-05-24 | 2003-03-20 | Burgess Allen G. | Source code analysis system and method |
US7392545B1 (en) | 2002-01-18 | 2008-06-24 | Cigital, Inc. | Systems and methods for detecting software security vulnerabilities |
US7299458B2 (en) * | 2002-10-31 | 2007-11-20 | Src Computers, Inc. | System and method for converting control flow graph representations to control-dataflow graph representations |
US7051322B2 (en) * | 2002-12-06 | 2006-05-23 | @Stake, Inc. | Software analysis framework |
US7398516B2 (en) * | 2003-04-18 | 2008-07-08 | Ounce Labs, Inc. | Method and system for detecting race condition vulnerabilities in source code |
US20050015752A1 (en) * | 2003-07-15 | 2005-01-20 | International Business Machines Corporation | Static analysis based error reduction for software applications |
CA2453714A1 (en) * | 2003-12-19 | 2005-06-19 | Ibm Canada Limited - Ibm Canada Limitee | Method, system and product for indentifying and executing locked read regions and locked write regions in programming languages that offer synchronization without explicit means to distinguish between such regions |
JP3966518B2 (ja) * | 2004-03-12 | 2007-08-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラム解析装置、その解析方法及びプログラム |
US7447666B2 (en) | 2004-04-09 | 2008-11-04 | The Boeing Company | System and method for analyzing a pattern in a time-stamped event sequence |
US7975306B2 (en) * | 2004-06-04 | 2011-07-05 | Hewlett-Packard Development Company, L.P. | Apparatus and method for monitoring secure software |
US7565631B1 (en) * | 2004-07-02 | 2009-07-21 | Northwestern University | Method and system for translating software binaries and assembly code onto hardware |
US7363616B2 (en) | 2004-09-15 | 2008-04-22 | Microsoft Corporation | Systems and methods for prioritized data-driven software testing |
US8108826B2 (en) * | 2004-09-29 | 2012-01-31 | Avaya Inc. | Code-coverage guided prioritized test generation |
US20060085156A1 (en) * | 2004-10-18 | 2006-04-20 | Kolawa Adam K | Method and system for predicting memory leaks from unit testing |
US7555778B2 (en) * | 2004-10-19 | 2009-06-30 | George Mason Intellectual Properties, Inc. | Minimum-cost network hardening |
JP4183192B2 (ja) * | 2004-12-28 | 2008-11-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アプリケーション・プログラムの開発支援方法、プログラム、情報処理装置 |
EP1684151A1 (en) | 2005-01-20 | 2006-07-26 | Grant Rothwell William | Computer protection against malware affection |
US7860842B2 (en) * | 2005-03-16 | 2010-12-28 | Oracle International Corporation | Mechanism to detect and analyze SQL injection threats |
US7698694B2 (en) * | 2005-06-08 | 2010-04-13 | Cisco Technology, Inc. | Methods and systems for transforming an AND/OR command tree into a command data model |
US7526758B2 (en) * | 2005-06-30 | 2009-04-28 | Microsoft Corporation | Execution failure investigation using static analysis |
US8239939B2 (en) * | 2005-07-15 | 2012-08-07 | Microsoft Corporation | Browser protection module |
US7849509B2 (en) * | 2005-10-07 | 2010-12-07 | Microsoft Corporation | Detection of security vulnerabilities in computer programs |
US20070143759A1 (en) | 2005-12-15 | 2007-06-21 | Aysel Ozgur | Scheduling and partitioning tasks via architecture-aware feedback information |
US7886272B1 (en) * | 2006-03-16 | 2011-02-08 | Avaya Inc. | Prioritize code for testing to improve code coverage of complex software |
US7720835B2 (en) | 2006-05-05 | 2010-05-18 | Visible Technologies Llc | Systems and methods for consumer-generated media reputation management |
US8365286B2 (en) * | 2006-06-30 | 2013-01-29 | Sophos Plc | Method and system for classification of software using characteristics and combinations of such characteristics |
US7971193B2 (en) * | 2006-07-14 | 2011-06-28 | Hewlett-Packard Development Company, L.P. | Methods for performining cross module context-sensitive security analysis |
EP2092424B1 (en) | 2006-10-19 | 2015-12-30 | Checkmarx Ltd. | Locating security vulnerabilities in source code |
US8468244B2 (en) * | 2007-01-05 | 2013-06-18 | Digital Doors, Inc. | Digital information infrastructure and method for security designated data and with granular data stores |
US20100011441A1 (en) | 2007-05-01 | 2010-01-14 | Mihai Christodorescu | System for malware normalization and detection |
JP2009205269A (ja) | 2008-02-26 | 2009-09-10 | Osaka Univ | 頻出変化パターン抽出装置 |
JP5011234B2 (ja) | 2008-08-25 | 2012-08-29 | 株式会社日立情報システムズ | 攻撃ノード群判定装置およびその方法、ならびに情報処理装置および攻撃対処方法、およびプログラム |
US20100088770A1 (en) | 2008-10-08 | 2010-04-08 | Raz Yerushalmi | Device and method for disjointed computing |
IL197477A0 (en) | 2009-03-08 | 2009-12-24 | Univ Ben Gurion | System and method for detecting new malicious executables, based on discovering and monitoring of characteristic system call sequences |
US8689172B2 (en) | 2009-03-24 | 2014-04-01 | International Business Machines Corporation | Mining sequential patterns in weighted directed graphs |
WO2010126412A1 (en) | 2009-04-28 | 2010-11-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Predicting presence of a mobile user equipment |
WO2012025865A1 (en) | 2010-08-24 | 2012-03-01 | Checkmarx Ltd. | Mining source code for violations of programming rules |
US8510237B2 (en) | 2011-03-15 | 2013-08-13 | Qualcomm Incorporated | Machine learning method to identify independent tasks for parallel layout in web browsers |
US8949271B2 (en) | 2012-10-23 | 2015-02-03 | Liebherr-Werk Nenzing Gmbh | Method for monitoring a number of machines and monitoring system |
-
2007
- 2007-10-15 EP EP07827207.7A patent/EP2092424B1/en active Active
- 2007-10-15 US US12/443,824 patent/US20100083240A1/en not_active Abandoned
- 2007-10-15 WO PCT/IL2007/001233 patent/WO2008047351A2/en active Application Filing
- 2007-10-15 JP JP2009532956A patent/JP5042315B2/ja active Active
-
2013
- 2013-02-21 US US13/772,377 patent/US9128728B2/en active Active
-
2015
- 2015-07-28 US US14/810,495 patent/US20150332055A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08190475A (ja) * | 1995-01-05 | 1996-07-23 | Fujitsu Ltd | プログラム解析装置 |
JP2003050722A (ja) * | 2001-08-03 | 2003-02-21 | Sony Corp | プログラム解析システムとプログラム解析方法 |
WO2005121953A1 (en) * | 2004-06-04 | 2005-12-22 | Fortify Software, Inc. | Apparatus and method for developing, testing and monitoring secure software |
JP2008502046A (ja) * | 2004-06-04 | 2008-01-24 | フォーティファイ ソフトウェア, インコーポレイテッド | セキュアーソフトウェアを開発し、テストし、監視するための装置および方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013536522A (ja) * | 2010-08-24 | 2013-09-19 | チェックマークス リミテッド | プログラミングルール違反に対するソースコードマイニング |
KR101097105B1 (ko) * | 2010-12-23 | 2011-12-22 | 한국저작권위원회 | Sw 소스코드 난독화와 버전 관리시스템과의 연동 방법 및 시스템 |
JP2014507718A (ja) * | 2011-01-31 | 2014-03-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するための方法、コンピュータ・プログラム、およびシステム |
JP2013061843A (ja) * | 2011-09-14 | 2013-04-04 | Fujifilm Corp | コンピュータ・ソフトウエア解析システムならびにクライアント・コンピュータ,その動作制御方法およびその動作プログラム |
WO2014050431A1 (ja) | 2012-09-26 | 2014-04-03 | 三菱電機株式会社 | プログラム検証装置、プログラム検証方法およびプログラム検証プログラム |
US9501646B2 (en) | 2012-09-26 | 2016-11-22 | Mitsubishi Electric Corporation | Program verification apparatus, program verification method, and computer readable medium |
US9654491B2 (en) | 2012-11-13 | 2017-05-16 | Fujitsu Limited | Network filtering apparatus and filtering method |
JP2014174577A (ja) * | 2013-03-05 | 2014-09-22 | Ntt Data Corp | 検証装置、検証方法、及びプログラム |
US10296746B2 (en) | 2013-07-26 | 2019-05-21 | Fujitsu Limited | Information processing device, filtering system, and filtering method |
KR101696694B1 (ko) * | 2015-08-17 | 2017-01-18 | (주)트리니티소프트 | 역추적을 이용한 소스 코드 취약점 분석 방법 및 장치 |
WO2017039136A1 (ko) * | 2015-08-28 | 2017-03-09 | (주)엔키소프트 | 소스코드기반 소프트웨어 취약점 공격행위 분석시스템 |
KR101640479B1 (ko) * | 2015-08-28 | 2016-07-18 | (주)엔키소프트 | 소스코드기반 소프트웨어 취약점 공격행위 분석시스템 |
US10628140B2 (en) | 2016-11-17 | 2020-04-21 | Mitsubishi Electric Corporation | Program code generation apparatus |
KR20190052447A (ko) * | 2017-11-08 | 2019-05-16 | 한국전력공사 | Cfg를 이용한 패턴 기반의 소프트웨어 절차변경 동작 감시 장치 및 그 방법 |
KR102392642B1 (ko) | 2017-11-08 | 2022-04-29 | 한국전력공사 | Cfg를 이용한 패턴 기반의 소프트웨어 절차변경 동작 감시 장치 및 그 방법 |
KR20190084468A (ko) * | 2018-01-08 | 2019-07-17 | 국방과학연구소 | 함수 정보 요약 장치 및 방법 |
KR102092192B1 (ko) * | 2018-01-08 | 2020-03-23 | 국방과학연구소 | 함수 정보 요약 장치 및 방법 |
WO2019142335A1 (ja) * | 2018-01-19 | 2019-07-25 | 三菱電機株式会社 | セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラム |
JP6608569B1 (ja) * | 2018-01-19 | 2019-11-20 | 三菱電機株式会社 | セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラム |
Also Published As
Publication number | Publication date |
---|---|
EP2092424A4 (en) | 2011-11-02 |
US20100083240A1 (en) | 2010-04-01 |
WO2008047351A3 (en) | 2009-05-07 |
WO2008047351A2 (en) | 2008-04-24 |
EP2092424B1 (en) | 2015-12-30 |
US20130167241A1 (en) | 2013-06-27 |
JP5042315B2 (ja) | 2012-10-03 |
EP2092424A2 (en) | 2009-08-26 |
US20150332055A1 (en) | 2015-11-19 |
US9128728B2 (en) | 2015-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5042315B2 (ja) | ソースコード内のセキュリティ脆弱性の検出 | |
US11216256B2 (en) | Determining based on static compiler analysis that execution of compiler code would result in unacceptable program behavior | |
CN109426722B (zh) | Sql注入缺陷检测方法、系统、设备及存储介质 | |
US9298924B2 (en) | Fixing security vulnerability in a source code | |
Sheard | Languages of the future | |
Anderson et al. | Design and implementation of a fine-grained software inspection tool | |
Alhuzali et al. | Chainsaw: Chained automated workflow-based exploit generation | |
CN110383238A (zh) | 用于基于模型的软件分析的系统和方法 | |
Kim et al. | DAPP: automatic detection and analysis of prototype pollution vulnerability in Node. js modules | |
Abi-Antoun et al. | Analyzing security architectures | |
JP4951416B2 (ja) | プログラム検証方法、プログラム検証装置 | |
Zhang et al. | Blockaid: Data access policy enforcement for web applications | |
Arasteh et al. | Forensic memory analysis: From stack and code to execution history | |
Ko et al. | Weakly sensitive analysis for JavaScript object‐manipulating programs | |
Pati et al. | A survey report of enhancements to the visitor software design pattern | |
Raad et al. | DOM: specification and client reasoning | |
Letarte et al. | Security model evolution of PHP web applications | |
Afonin et al. | Validation of safety-like properties for entity-based access control policies | |
Sarkar et al. | Flow-insensitive static analysis for detecting integer anomalies in programs | |
Rodrigues et al. | Towards a structured specification of coding conventions | |
Melnik et al. | Enforcing secure coding rules for the C programming language using the eclipse development environment | |
Nicolay et al. | Static detection of user-specified security vulnerabilities in client-side javascript | |
Xiao et al. | Performing high efficiency source code static analysis with intelligent extensions | |
Tu | On navigation and analysis of software architecture evolution | |
Liu et al. | An approach for the maintenance of input validation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100813 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100813 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120321 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120528 |
|
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: 20120620 |
|
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: 20120710 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5042315 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150720 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |