JP5844809B2 - プログラミングルール違反に対するソースコードマイニング - Google Patents
プログラミングルール違反に対するソースコードマイニング Download PDFInfo
- Publication number
- JP5844809B2 JP5844809B2 JP2013525394A JP2013525394A JP5844809B2 JP 5844809 B2 JP5844809 B2 JP 5844809B2 JP 2013525394 A JP2013525394 A JP 2013525394A JP 2013525394 A JP2013525394 A JP 2013525394A JP 5844809 B2 JP5844809 B2 JP 5844809B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- sequence
- group
- subsequence
- software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000005065 mining Methods 0.000 title claims description 36
- 238000000034 method Methods 0.000 claims description 50
- 238000010606 normalization Methods 0.000 claims description 25
- 238000010586 diagram Methods 0.000 claims description 17
- 238000004458 analytical method Methods 0.000 claims description 15
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000000682 scanning probe acoustic microscopy Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000037303 wrinkles Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- 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/60—Protecting data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Virology (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Bioethics (AREA)
- Stored Programmes (AREA)
Description
本出願は2010年8月24日に出願された米国暫定出願61/376,260(特許文献1)の恩恵を要求し、それはここに参照として採り入れられる。
従って本発明の1実施形態によれば、ソフトウェアコード分析の方法であって、共通パターンにより特徴付けられる命令シークエンスのグループを識別するために、ソフトウェアソースコードの本体をコンピュータにより自動的に処理するステップと;共通パターンの基準からの偏移を含むグループ内のシークエンスを発見するステップと;そして偏移をソフトウェアソースコード内の潜在的脆弱性として報告するステップと;を有することを特徴とするソフトウェアコード分析の方法が提供される。
ある実施形態では、ソフトウェアソースコードの本体を処理するステップは、コードを正規化するステップと、そして正規化されたコード内でシークエンスを識別するステップを有する。典型的にコードを正規化するステップは、コード内に所定のタイプのエンティティのネームを発見するステップと、そしてコードに出現するネームをタイプのインジケータと置き換えるステップを有する。ネームがタイプのインジケータと置き換えられたエンティティは、変数及び/又は定数からなってよい。さらにあるいは、コードがオブジェクト指向言語で書かれている場合、ネームが置き換えられた前記エンティティは、クラス及び/又はメンバーからなる。
開示された実施形態では、ソフトウェアコードの本体を処理するステップは、コードを一連のタグに変換するステップと、そしてシークエンスマイニングアルゴリズムを適用して一連のタグ内に出現するグループ内のシークエンスを識別するステップを有する。
本発明の1実施形態による、ソースコード分析のシステム20及び方法を概略示す図1及び図2を参照する。図1はシステムのブロック図であり、一方図2は方法の主要ステップを示す流れ図である。システム20の構成要素は上記の特許文献2で記載されるソースコード分析システムのそれと類似しており、それに本特許出願で記載されるシークエンスマイニング関連の特性が追加されている。簡略化のため、ここではこれらの追加された特性についてのみ記載する。
正規化ステップ42はコードに対する多くの異なるオペレーションを通常含む。例えば、コードのネーム、値、アサインメント及び条件は以下のように正規化されてもよい:
・ローカル変数名はそれらのタイプに置き換えられる。
・定数は一般的にタイプ情報付きのCONSTとラベル付けされる。
・アサインメントは関数呼び出しから除外される。
・メソッド呼び出しは、アサインメント、条件、及び他の制御コマンドから除外される。(例えば、図5のシークエンス72の「Rect=Item.GetBounds():Rect」参照)
・関係演算子は正規化される。例えば:
・グローバルに定義された(パブリック)クラスはネームで使用される。(例えば、シークエンス72の「Item.Getbound...」)
・パブリック及び保護内部クラスはネームで使用される。プライベート内部クラスのネームは通常タグ「CLASS」と「MEMBER」により置換される。
・メソッド−ローカルクラスのネームはタグ「CLASS」と「MEMBER」により置換される。
・プライベート内部クラスのメンバーは(それらの可視性に関わらず)対応する外部クラスのメンバーとして取り扱われる。
・パブリックメンバーネームはそれぞれのタイプ情報に付随するネームにより置換される。(例えば、示されるようにタグ「Rect=Item.GetBounds():Rect」により)
・保護メンバーネームはそれぞれのタイプ情報に付随するネームにより置換されてもよい。
・プライベートメンバーのネームはそれぞれのタイプ情報が付随したタグ「CLASS」と「MEMBER」により置換される。
・所与のネームが多相性の場合は、全ての後継に亘って一般化するため基本タイプが使用されてもよい。
・オペレーションの喪失(例えばキャッチブロックのロギング)
キャッチブロック(通常Java(登録商標)における例外処理に使用される)は通常一定のロギングオペレーションを含む。開発者は時々ロギングオペレーションの使用を忘れる。シークエンスマイニングはタグの正常なシークエンス「Try−>SensitiveOperation−>Catch−>Log」を識別し、従ってこのルールを破るコード内のシークエンスを発見してもよい。
多くの場合、要注意オペレーションはユーザが認証された又は特定の許可を与えられた後にのみ呼び出されるべきである。シークエンスマイニングは正常なシークエンス「IfUsersAuthenticated−>DoSensitiveOperation」を識別し、そしてそれによってユーザ許可の事前チェック無く「要注意オペレーション」が呼び出されたシークエンスを発見する。
ウェブサイトのクロスサイトスクリプティング脆弱性は、悪意のクライアント側スクリプトを他のユーザが閲覧するウェブページに注入することを許す。この問題を軽減するためヘルパー関数(.NET環境におけるHTMLEncodeのような)を呼び出し、1人のユーザにより入力されたストリングをそのユーザに応答する前に「修正」することが一般的である。シークエンスマイニングはヘルパー関数を正しい順番で呼び出す正確なパターンを学習し、そしてこの順番からの偏移を識別するように使用可能である。
プログラマーは多くの場合ユーザ許可がチェックされる場所にコード内バックドアを設置する。例えばステートメント:「If(UserIsAdministrator or Username=‘MatySIMAN’)はプログラマーMaty Siman用のバックドアを作るのに使用可能である。シークエンスマイニングは、正確な許可シークエンスを学習し、そしてコード内にバックドアが残された場合に発生する偏移を識別するために使用可能である。
ビジネスプロセスは多くの場合、パラメータに対しアクションを起こす前に、そのパラメータが適切な領域にあるかの認証を必要とする。例えば、顧客にある商品をある価格で購入したことに対し請求を起こす前に、商品の価格と数量が正の値であることが認証されなくてはならない(そうでなければ顧客は請求されるのではなくクレジットを与えられてしまうからである)。シークエンスマイニングは、パラメータ認証関数を含む正常な販売オペレーションのパターンを学習し、そしてその後適切な認証が呼び出されなかったケースを識別する。
ソフトウェアコードから得られたタグシークエンスのシークエンスマイニングの準備として、システム20のオペレータは3つの「定数」(パラメータ値)を定義する:
A.「サポート」値−「共通」シークエンスとして見做されるための最小出現回数。
B.「最小長さ」―受容可能な最短シークエンス(これがないと、多くの単一アイテムのシークエンスが「共通」と見做される。)
C.「コンフィデンス」−(X−>Y)のコンフィデンスとは:我々がサブシークエンスXに出会う場合に、Yに出会う確立である。例えば、我々がストリング「abcdefg」に出会うと、それに「hij」が続く可能性が高い−従ってコンフィデンスが高い(例えば50%)。
以下の事例では我々はサポートレベル「60」、最小長さ「3」そしてコンフィデンス「50%」と設定する。
A.順番は重要である。
B.2つのアイテムは隣接する必要はない。
Claims (35)
- コンピュータによるソフトウェアコード分析の方法であって、
前記コードの流れ図を生成するため、ソフトウェアソースコードの本体をコンピュータにより自動的に正規化するステップと、
ここにおいて前記流れ図は前記ソフトウェアコード内の命令を示すタグのシークエンスを含み;
前記流れ図の前記タグのシークエンス内の複数のサブシークエンスの1つのグループを識別するため、前記流れ図にシークエンスマイニング手法を適用するステップと、
ここにおいて前記グループ内の前記サブシークエンスは互いに類似しており;
前記識別されたサブシークエンスの1つのグループに対し、1つの共通基準パターンを決定するステップと;
前記共通基準パターンから閾値を超えて偏移する、前記グループ内の1つのサブシークエンスをプロセッサにより発見するステップと;そして
前記閾値を超えて偏移するサブシークエンスを前記ソフトウェアソースコード内の潜在的脆弱性として報告するステップと;
を有し、
ここにおいて前記サブシークエンス内の前記タグは、前記シークエンス内と同じ順序を有し、しかし前記サブシークエンス内の隣接するタグは前記シークエンス内では必ずしも隣接しない、
ことを特徴とするソフトウェアコード分析の方法。 - 前記ソフトウェアソースコードの本体を正規化するステップは、前記コードのドキュメントオブジェクトモデル(DOM)を生成するステップを有する、ことを特徴とする請求項1に記載の方法。
- 前記シークエンスマイニング手法を適用するステップは、ユーザ設定の半径より大きくない最大差異を有する、命令のサブシークエンスの1つの推計学的グループを識別するステップを有する、ことを特徴とする請求項1に記載の方法。
- 前記コードを正規化するステップは、前記コード内で所定のタイプのエンティティのネームを発見するステップと、そして前記コードに出現する前記ネームを前記タイプのインジケータと置き換えるステップを有する、ことを特徴とする請求項1に記載の方法。
- ネームが前記タイプのインジケータと置き換えられる前記エンティティは、変数及び定数からなるエンティティのグループから選択される、ことを特徴とする請求項4に記載の方法。
- 前記コードはオブジェクト指向言語で書かれ、そしてネームが前記タイプの前記インジケータと置き換えられる前記エンティティは、クラスとメンバーからなるエンティティのグループから選択される、ことを特徴とする請求項4に記載の方法。
- 前記コードを基準化するステップは、前記コード内に所定のタイプの制御ブロックを発見するステップと、ここにそれぞれの前記制御ブロックは前記コードのラインを有し、そして、前記コードのラインを、前記制御ブロックの前記タイプに対し事前定義されたフォーマットの、前記コードのラインに対応する一連のタグと置き換えるステップを有する、ことを特徴とする請求項1に記載の方法。
- 前記シークエンスマイニング手法を適用するステップは、GSP、SPADEまたはPrefixSpanを適用するステップを有する、
ことを特徴とする請求項1に記載の方法。 - 前記サブシークエンスにおける偏移は前記ソフトウェアコード内の欠落したオペレーションを含む、ことを特徴とする請求項1−7のいずれかに記載の方法。
- 前記サブシークエンスにおける偏移は、要注意オペレーションを実行する許可のチェック不履行を含む、ことを特徴とする請求項1−7のいずれかに記載の方法。
- 前記サブシークエンスにおける偏移は、規定の呼び出しシークエンスの順守違反を含む、ことを特徴とする請求項1−7のいずれかに記載の方法。
- 前記サブシークエンスにおける偏移は、前記コード内に残されたバックドアに関連する、ことを特徴とする請求項1−7のいずれかに記載の方法。
- 前記サブシークエンスにおける偏移は、前記コード内で実行されるビジネスロジックの誤りを含む、ことを特徴とする請求項1−7のいずれかに記載の方法。
- ソフトウェアコード分析用の機器であって、
ソフトウェアソースコードの本体を記憶するように構成されたメモリと、そして
プロセッサと、を有し、
前記プロセッサは、
前記コードの流れ図を生成するため、前記ソフトウェアソースコードを自動的に正規化するステップと、ここにおいて前記流れ図は前記ソフトウェアコード内の命令を示すタグのシークエンスを含み;
前記タグのシークエンス内の複数のサブシークエンスの1つのグループを識別するため、前記ソースコードの前記流れ図にシークエンスマイニング手法を適用するステップと、ここにおいて前記グループ内の前記サブシークエンスは互いに類似しており;
前記識別されたサブシークエンスの1つのグループに対し、1つの共通基準パターンを決定するステップと;
前記共通基準パターンから閾値を超えて偏移する、前記グループ内の1つのサブシークエンスを発見するステップと;そして
前記偏移を前記ソフトウェアソースコード内の潜在的脆弱性として報告するステップと;
を実行するように構成され、
ここにおいて前記サブシークエンス内の前記タグは、前記シークエンス内と同じ順序を有し、しかし前記サブシークエンス内の隣接するタグは前記シークエンス内では必ずしも隣接しない、
ことを特徴とするソフトウェアコード分析用の機器。 - 前記プロセッサは、前記ソフトウェアソースコードの正規化において、前記コードのドキュメントオブジェクトモデル(DOM)を生成するように構成される、ことを特徴とする請求項14に記載の機器。
- 前記プロセッサは、前記コード内に所定のタイプのエンティティのネームを発見し、そして前記コードに出現する前記ネームを前記タイプのインジケータと置き換えるように構成される、ことを特徴とする請求項14に記載の機器。
- ネームが前記タイプのインジケータと置き換えられる前記エンティティは、変数及び定数からなるエンティティのグループから選択される、ことを特徴とする請求項16に記載の機器。
- 前記コードはオブジェクト指向言語で書かれ、そしてネームが前記タイプのインジケータと置き換えられる前記エンティティは、クラスとメンバーからなるエンティティのグループから選択される、ことを特徴とする請求項16に記載の機器。
- 前記プロセッサは、前記コード内に所定のタイプの制御ブロックを発見するステップと、ここにそれぞれの前記制御ブロックは前記コードのラインを有し、そして、前記コードのラインを、前記制御ブロックの前記タイプに対し事前定義されたフォーマットの、前記コードのラインに対応する一連のタグと置き換えるステップとにより、前記コードを正規化するように構成される、ことを特徴とする請求項14に記載の機器。
- 前記サブシークエンスにおける偏移は前記ソフトウェアコード内の欠落オペレーションを含む、ことを特徴とする請求項14−19のいずれかに記載の機器。
- 前記サブシークエンスにおける偏移は、要注意オペレーションを実行する許可のチェック不履行を含む、ことを特徴とする請求項14−19のいずれかに記載の機器。
- 前記サブシークエンスにおける偏移は、規定の呼び出しシークエンスの順守違反を含む、ことを特徴とする請求項14−19のいずれかに記載の機器。
- 前記サブシークエンスにおける偏移は、前記コード内に残されたバックドアに関連する、ことを特徴とする請求項14−19のいずれかに記載の機器。
- 前記サブシークエンスにおける偏移は、前記コード内で実行されるビジネスロジックの誤りを含む、ことを特徴とする請求項14−19のいずれかに記載の機器。
- プログラム命令が記憶されるコンピュータ読み取り可能媒体であって、
前記命令はコンピュータに読み取られた時に、コンピュータに対し、
ソフトウェアコードの流れ図を生成するため、ソフトウェアソースコードの本体を正規化するステップと、ここにおいて前記流れ図は前記ソフトウェアコード内の命令を示すタグのシークエンスを含み;
前記タグのシークエンス内の複数のサブシークエンスの1つのグループを識別するため、前記ソースコードの前記流れ図にシークエンスマイニング手法を適用するステップと、ここにおいて前記グループ内の前記サブシークエンスは互いに類似しており;
前記識別されたサブシークエンスの1つのグループに対し、1つの共通基準パターンを決定するステップと、
前記共通基準パターンから閾値を超えて偏移する、前記グループ内の1つのサブシークエンスを発見するステップと;そして
前記偏移を前記ソフトウェアソースコード内の潜在的脆弱性として報告するステップと;
を実行するようにさせ、
ここにおいて前記サブシークエンス内の前記タグは、前記シークエンス内と同じ順序を有し、しかし前記サブシークエンス内の隣接するタグは前記シークエンス内では必ずしも隣接しない、
ことを特徴とするコンピュータ読み取り可能媒体。 - 前記命令は前記コンピュータに対し、前記ソフトウェアソースコードを正規化するステップにおいて、前記コードのドキュメントオブジェクトモデル(DOM)を生成するようにさせる、ことを特徴とする請求項25に記載のコンピュータ読み取り可能媒体。
- 前記コードを基準化するステップは、前記コード内に所定のタイプのエンティティのネームを発見するステップと、そして前記コードに出現する前記ネームを前記タイプのインジケータと置き換えるステップを有する、ことを特徴とする請求項25に記載のコンピュータ読み取り可能媒体。
- ネームが前記タイプのインジケータと置き換えられる前記エンティティは、変数及び定数からなるエンティティのグループから選択される、ことを特徴とする請求項27に記載のコンピュータ読み取り可能媒体。
- 前記コードはオブジェクト指向言語で書かれ、そしてネームが前記タイプのインジケータと置き換えられた前記エンティティは、クラスとメンバーからなるエンティティのグループから選択される、ことを特徴とする請求項27に記載のコンピュータ読み取り可能媒体。
- 前記コードを基準化するステップは、前記コード内に所定のタイプの制御ブロックを発見するステップと、ここにそれぞれの前記制御ブロックは前記コードのラインを有し、そして、前記コードのラインを、前記制御ブロックの前記タイプに対し事前定義されたフォーマットの、前記コードのラインに対応する一連のタグと置き換えるステップを有する、ことを特徴とする請求項25に記載のコンピュータ読み取り可能媒体。
- 前記サブシークエンスにおける偏移は前記ソフトウェアコード内の欠落オペレーションを含む、ことを特徴とする請求項25−30のいずれかに記載のコンピュータ読み取り可能媒体。
- 前記サブシークエンスにおける偏移は、要注意オペレーションを実行する許可のチェック不履行を含む、ことを特徴とする請求項25−30のいずれかに記載のコンピュータ読み取り可能媒体。
- 前記サブシークエンスにおける偏移は、規定の呼び出しシークエンスの順守怠慢を含む、ことを特徴とする請求項25−30のいずれかに記載のコンピュータ読み取り可能媒体。
- 前記サブシークエンスにおける偏移は、前記コード内に残されたバックドアに関連する、ことを特徴とする請求項25−30のいずれかに記載のコンピュータ読み取り可能媒体。
- 前記サブシークエンスにおける偏移は、前記コード内で実行されるビジネスロジックの誤りを含む、ことを特徴とする請求項25−30のいずれかに記載のコンピュータ読み取り可能媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US37626010P | 2010-08-24 | 2010-08-24 | |
US61/376,260 | 2010-08-24 | ||
PCT/IB2011/053671 WO2012025865A1 (en) | 2010-08-24 | 2011-08-22 | Mining source code for violations of programming rules |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2013536522A JP2013536522A (ja) | 2013-09-19 |
JP2013536522A5 JP2013536522A5 (ja) | 2015-10-15 |
JP5844809B2 true JP5844809B2 (ja) | 2016-01-20 |
Family
ID=45722971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013525394A Active JP5844809B2 (ja) | 2010-08-24 | 2011-08-22 | プログラミングルール違反に対するソースコードマイニング |
Country Status (5)
Country | Link |
---|---|
US (1) | US9141806B2 (ja) |
EP (1) | EP2609506B1 (ja) |
JP (1) | JP5844809B2 (ja) |
IL (1) | IL224090A (ja) |
WO (1) | WO2012025865A1 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2092424B1 (en) | 2006-10-19 | 2015-12-30 | Checkmarx Ltd. | Locating security vulnerabilities in source code |
US8869287B2 (en) * | 2012-12-31 | 2014-10-21 | International Business Machines Corporation | Hybrid analysis of vulnerable information flows |
US9569617B1 (en) * | 2014-03-05 | 2017-02-14 | Symantec Corporation | Systems and methods for preventing false positive malware identification |
US9361635B2 (en) * | 2014-04-14 | 2016-06-07 | Yahoo! Inc. | Frequent markup techniques for use in native advertisement placement |
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 |
CN106575337A (zh) * | 2014-08-20 | 2017-04-19 | 日本电信电话株式会社 | 漏洞发现装置、漏洞发现方法以及漏洞发现程序 |
CN104615542B (zh) * | 2015-02-11 | 2017-12-01 | 中国科学院软件研究所 | 一种基于函数调用的脆弱性关联分析辅助漏洞挖掘的方法 |
US9749345B2 (en) | 2015-04-22 | 2017-08-29 | International Business Machines Corporation | Reporting security vulnerability warnings |
US20170329691A1 (en) * | 2016-05-12 | 2017-11-16 | Synopsys, Inc. | Systems and methods for using semantic queries to analyze software |
US10339320B2 (en) | 2016-11-18 | 2019-07-02 | International Business Machines Corporation | Applying machine learning techniques to discover security impacts of application programming interfaces |
EP3401827A1 (en) | 2017-05-10 | 2018-11-14 | Checkmarx Ltd. | Method and system of static and dynamic data flow analysis |
EP3432563A1 (en) * | 2017-07-21 | 2019-01-23 | CL Schutzrechtsverwaltungs GmbH | Method for producing a machine-readable controlling and/or operating means |
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 |
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 |
CN110162963B (zh) * | 2019-04-26 | 2021-07-06 | 佛山市微风科技有限公司 | 一种识别过权应用程序的方法 |
WO2021028989A1 (ja) * | 2019-08-09 | 2021-02-18 | 日本電気株式会社 | バックドア検査装置、方法及び非一時的なコンピュータ可読媒体 |
EP3945441A1 (en) | 2020-07-28 | 2022-02-02 | Checkmarx Ltd. | Detecting exploitable paths in application software that uses third-party libraries |
US11934531B2 (en) | 2021-02-25 | 2024-03-19 | Bank Of America Corporation | System and method for automatically identifying software vulnerabilities using named entity recognition |
US12008364B1 (en) * | 2021-06-24 | 2024-06-11 | Amazon Technologies Inc. | Inconsistency-based bug detection |
Family Cites Families (54)
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 |
JP2003050722A (ja) | 2001-08-03 | 2003-02-21 | Sony Corp | プログラム解析システムとプログラム解析方法 |
US7392545B1 (en) | 2002-01-18 | 2008-06-24 | Cigital, Inc. | Systems and methods for detecting software security vulnerabilities |
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 |
JP4789933B2 (ja) | 2004-06-04 | 2011-10-12 | フォーティファイ ソフトウェア, エルエルシー | セキュアーソフトウェアを開発し、テストし、監視するための装置および方法 |
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 |
US7555778B2 (en) | 2004-10-19 | 2009-06-30 | George Mason Intellectual Properties, Inc. | Minimum-cost network hardening |
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 |
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 |
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 |
US8881288B1 (en) * | 2008-10-28 | 2014-11-04 | Intelligent Automation, Inc. | Graphical models for cyber security analysis in enterprise networks |
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 |
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 |
US9305168B2 (en) * | 2013-07-01 | 2016-04-05 | Sap Se | Modular static application security testing |
-
2011
- 2011-08-22 WO PCT/IB2011/053671 patent/WO2012025865A1/en active Application Filing
- 2011-08-22 JP JP2013525394A patent/JP5844809B2/ja active Active
- 2011-08-22 EP EP11819494.3A patent/EP2609506B1/en active Active
- 2011-08-22 US US13/811,271 patent/US9141806B2/en active Active
-
2012
- 2012-12-31 IL IL224090A patent/IL224090A/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
US20130239219A1 (en) | 2013-09-12 |
JP2013536522A (ja) | 2013-09-19 |
US9141806B2 (en) | 2015-09-22 |
EP2609506B1 (en) | 2019-01-16 |
IL224090A (en) | 2017-11-30 |
EP2609506A1 (en) | 2013-07-03 |
WO2012025865A1 (en) | 2012-03-01 |
EP2609506A4 (en) | 2014-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5844809B2 (ja) | プログラミングルール違反に対するソースコードマイニング | |
JP2013536522A5 (ja) | ||
US9715593B2 (en) | Software vulnerabilities detection system and methods | |
US11514172B2 (en) | System and method for information flow analysis of application code | |
Feng et al. | Apposcopy: Semantics-based detection of android malware through static analysis | |
US8769696B2 (en) | Automated detection of flaws and incompatibility problems in information flow downgraders | |
CN114077741B (zh) | 软件供应链安全检测方法和装置、电子设备及存储介质 | |
EP3234851B1 (en) | A system and method for facilitating static analysis of software applications | |
Chan et al. | A method to evaluate CFG comparison algorithms | |
US11888870B2 (en) | Multitenant sharing anomaly cyberattack campaign detection | |
Chandrashekhar et al. | SQL injection attack mechanisms and prevention techniques | |
Homaei et al. | Athena: A framework to automatically generate security test oracle via extracting policies from source code and intended software behaviour | |
Wei et al. | DroidExec: Root exploit malware recognition against wide variability via folding redundant function-relation graph | |
Piskachev et al. | Secucheck: Engineering configurable taint analysis for software developers | |
US11157611B2 (en) | Binary image stack cookie protection | |
Sas et al. | Automatic detection of sources and sinks in arbitrary java libraries | |
Simic et al. | Eliminating SQL injection and cross site scripting using aspect oriented programming | |
Abawajy et al. | Policy-based SQLIA detection and prevention approach for RFID systems | |
Gauthier et al. | Semantic smells and errors in access control models: A case study in PHP | |
Alalfi | An automated approach for privacy leakage identification in iot apps | |
Shezan et al. | Chkplug: Checking gdpr compliance of wordpress plugins via cross-language code property graph | |
JP7452691B2 (ja) | 解析機能付与装置、解析機能付与方法および解析機能付与プログラム | |
Alalfi et al. | A mutation framework for evaluating security analysis tools in IoT applications | |
Jeya Mala et al. | Intelligent Vulnerability Analyzer–A Novel Dynamic Vulnerability Analysis Framework for Mobile Based Online Applications | |
Kober et al. | Towards Automatically Generating Security Analyses from Machine-Learned Library Models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140620 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150415 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150603 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20150824 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150930 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151009 |
|
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: 20151111 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151119 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5844809 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |