JP2023158623A - コード類似性に基づくファジーテスト方法、装置及び記憶媒体 - Google Patents

コード類似性に基づくファジーテスト方法、装置及び記憶媒体 Download PDF

Info

Publication number
JP2023158623A
JP2023158623A JP2022182775A JP2022182775A JP2023158623A JP 2023158623 A JP2023158623 A JP 2023158623A JP 2022182775 A JP2022182775 A JP 2022182775A JP 2022182775 A JP2022182775 A JP 2022182775A JP 2023158623 A JP2023158623 A JP 2023158623A
Authority
JP
Japan
Prior art keywords
code
similar
tested
fuzzy
information
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
Application number
JP2022182775A
Other languages
English (en)
Other versions
JP7290784B1 (ja
Inventor
李雨欣
Yuxin Li
庄宇飛
Yufei Zhuang
蘇一博
Yibo Su
于▲チィー▼
Qi Yu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yangtze River Three Gorges Group Co Ltd
Original Assignee
Yangtze River Three Gorges Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yangtze River Three Gorges Group Co Ltd filed Critical Yangtze River Three Gorges Group Co Ltd
Application granted granted Critical
Publication of JP7290784B1 publication Critical patent/JP7290784B1/ja
Publication of JP2023158623A publication Critical patent/JP2023158623A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • G06F8/751Code clone detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】コンピュータセキュリティ技術分野に関し、コード類似性に基づくファジーテスト方法、装置及び記憶媒体を提供する。【解決手段】方法は、テスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップと、類似度分析に基づいて、テスト対象のコードにおける類似コード情報を決定するテップと、類似コード情報に基づきファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップと、最終的にテスト対象のコードにおける脆弱性情報を決定するステップと、を含む。【選択図】図1

Description

本発明は、コンピュータセキュリティ技術分野に関し、具体的には、コード類似性に基づくファジィテスト方法、装置及び記憶媒体に関する。
ソフトウェアクローニングとはソースコードをコピーしてペーストすることで再利用することである。これらのクローンは、新しい環境や用途に適応するように少し改変されることがある。コードクローニングの問題は、コピー毎にオリジナルドキュメントのエラーを修正しなければならないため、拡張や調整などの変更を行う場合も複数回行う必要がある。しかし、作成者は、通常、コードコピーの位置を記録しない。この場合、これらを検出することは非常に困難である。
コードの再利用により、ソフトウェアシステムに複数の類似するコードが発生し、それによりソフトウェアシステムにおける全ての脆弱性を修復することが困難であり、すなわち脆弱性は複数のソフトウェアプログラムに存在する可能性があり、十分に追跡できない。これは類似する脆弱性がプログラムにおける異なる場所に潜むことを引き起こす。すべての脆弱性インスタンスを網羅することができないため、すべての脆弱性を修復プログラムで簡単に解決することはできない。追跡コードを再利用するのが簡単であるような気がするが、プログラム数が多いため、実際には管理できない。
これに鑑みて、本発明の実施例は、従来技術における、コードの再利用のためソフトウェアシステムにおいて全ての脆弱性検出を行う効率が低くなるという技術的問題を解決するように、コード類似性に基づくファジーテスト方法、装置及び記憶媒体を提供する。
本発明が提供する技術的解決手段は以下のとおりである。
本発明の実施例の第1態様は、テスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップと、類似度分析に基づいて、テスト対象のコードにおける類似コード情報を決定するステップであって、前記類似コード情報はテスト対象のコードにおける類似コード、異常なクラッシュの位置コードにおける類似コード及びテスト対象のコードにおける脆弱性データベースコードに類似したコードを含むステップと、前記類似コード情報に基づきファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップと、前記テスト対象のコードにおける異常なクラッシュの位置コード及び類似コード情報における異常なクラッシュの位置コードに基づいて、テスト対象のコードにおける脆弱性情報を決定するステップと、を含むコード類似性に基づくファジーテスト方法を提供する。
選択的には、テスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップは、グレイボックスファジーテストアルゴリズムに基づきテスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップを含む。
選択的には、グレイボックスファジーテストアルゴリズムに基づきテスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップは、リソーススケジューリングアルゴリズムを用いてテスト対象のコードにおけるファジーテストを行う条件文を選択するステップと、初期シードに対して汚染点追跡を行い、前記初期シードにおける条件文への入りに影響を与えるキーバイトを得るステップと、勾配降下アルゴリズムを用いて前記キーバイトに対して変異を行い、変異シードを得るステップと、テスト対象のコードにおける条件文に入ることができる解を得るまで、変異シードをテスト対象のコードに入力して実行するステップと、得られた解をファジーテストを行うように選択された文に入力し、予め設定された時間内に異常なクラッシュをトリガーできなくなるまで、上記汚染点追跡、シード変異及び実行のプロセスを繰り返すステップと、を含む。
選択的には、類似度分析に基づいて、テスト対象のコードにおける類似コード情報を決定するステップは、テスト対象のコードをコード行レベルのコードファイル及びコードブロックレベルのコードファイルに切り分けるステップと、コード行レベルのコードファイルに対して類似度分析を行い、第1の類似コードを得るステップと、コードブロックレベルのコードファイルに対して類似度分析を行い、第2の類似コードを得るステップと、第1の類似コード及び第2の類似コードに基づきテスト対象のコードにおける類似コード情報を得るステップと、を含む。
選択的には、類似度分析に基づいて、テスト対象のコードにおける類似コード情報を決定するステップは、異常なクラッシュの位置コードをコード行レベル及びコードブロックレベルにおいてテスト対象のコードと類似度分析を行い、異常なクラッシュの位置コードにおけるコード行類似コード及びコードブロック類似コードを得るステップと、テスト対象のコードを予め設定された脆弱性データベースにおけるコードと類似度分析を行い、テスト対象のコードにおける脆弱性データベースコードに類似したコードを得るステップと、をさらに含む。
選択的には、前記類似コード情報に基づきファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップは、コードブロックレベルにおけるコードブロックと類似コード情報におけるコードとの間の距離を計算するステップと、グレイボックスファジーテストにおける各シードが通ったコードブロックの対応する距離の平均値を計算するステップと、平均値が最も小さい場合の対応するシードを選択して変異を行った後にテスト対象のコードに入力してファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップと、を含む。
選択的には、平均値が最も小さい場合の対応するシードを選択して変異を行った後にテスト対象のコードに入力してファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップは、各シードの対応する平均値に基づいて平均値が最も小さい場合の対応するシードを類似コード情報のファジーテストのテストシードとして選択するステップと、勾配降下アルゴリズムを用いて前記テストシードに対して変異を行い、変異シードを得るステップと、グレイボックスファジーテストアルゴリズムに基づき、変異シードを用いてテスト対象のコードに入力しファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップと、を含む。
選択的には、以下の式により、コードブロックレベルにおけるコードブロックと類似コード情報におけるコードとの間の距離を計算する
(式中、コードブロックレベルの目標距離d(m,T)はコードブロックレベルにおけるコードブロックmと類似コード情報におけるコードとの間の距離を表し、Tは類似コード情報におけるコード集合を表し、Tはコードブロックmが呼び出した関数iの制御フローグラフGにおけるコードブロックの集合を表し、cは関数レベルの距離を拡大する定数であり、N(m)はコードブロックmが呼び出した関数の集合を表し、
式中、R(n,T)は関数呼び出しグラフにおける関数nから到達可能なすべての目標関数の集合を表す)。
以下の式により、グレイボックスファジーテストにおける各シードが通ったコードブロックの対応する距離の平均値を計算する
本発明の実施例の第2態様は、テスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るための第1のテストモジュールと、類似度分析に基づいて、テスト対象のコードにおける類似コード情報を決定するための類似分析モジュールであって、前記類似コード情報はテスト対象のコードにおける類似コード、異常なクラッシュの位置コードにおける類似コード及びテスト対象のコードにおける脆弱性データベースコードに類似したコードを含む類似分析モジュールと、前記類似コード情報に基づきファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るための第2のテストモジュールと、前記テスト対象のコードにおける異常なクラッシュの位置コード及び類似コード情報における異常なクラッシュの位置コードに基づいて、テスト対象のコードにおける脆弱性情報を決定するための脆弱性決定モジュールと、を含むコード類似性に基づくファジーテスト装置を提供する。
本発明の実施例の第3態様は、本発明の実施例の第1態様及び第1態様のいずれかに記載のコード類似性に基づくファジーテスト方法を前記コンピュータに実行させるためのコンピュータ命令が記憶されているコンピュータ可読記憶媒体を提供する。
本発明の実施例の第4態様は、メモリ及びプロセッサを含み、前記メモリと前記プロセッサは互いに通信可能に接続され、前記メモリにはコンピュータ命令が記憶されており、前記プロセッサは前記コンピュータ命令を実行することにより本発明の実施例の第1態様及び第1態様のいずれかに記載のコード類似性に基づくファジーテスト方法を実行する電子機器を提供する。
本発明に係る技術的解決手段は、以下の効果を有する。
本発明の実施例に係るコード類似性に基づくファジーテスト方法、装置及び記憶媒体は、類似コード情報をガイドとして、テスト対象のコードと類似コード情報に対してファジーテストを行い、そのうち、コード類似度分析が静的方法であり、ファジーテストが動的方法であり、該ファジーテスト方法は2つの方法を組み合わせたものであり、コード類似度の計算はファジーテストに目標を提供し、ファジーテストはコード類似度の計算にサンプルを提供し、2つの方法を組み合わせることにより、コードの再使用やコピーによって引き起こされる脆弱性を可能な限り見つけるという効果が実現される。そして、プログラムの作成者は大規模なプロジェクトのコードプログラムを作成する過程で、コードのコピーや再使用を行うことが多く、この現象はプログラムの安全性の問題をもたらしている。該方法はコード類似性を導入することにより、プログラムコードに対して多角度的な類似性研究を行い、そのうちの潜在的な隠れた危険コードを比較全面的に見つけ、ソフトウェア脆弱性を発見する可能性を大幅に向上させるとともに、ファジーテストの脆弱性発見の速度を加速させ、ファジーテストの効率は効果的に向上する。
本発明の具体的な実施形態又は従来技術における技術的解決手段をより明確に説明するために、以下、具体的な実施形態又は従来技術の記述のために使用した図面を簡単に説明するが、明らかに、以下に記述した図面は本発明のいくつかの実施形態であり、当業者にとって、創造的な労力をせずに、これらの図面に基づいて他の図面を得ることもできる。
本発明の実施例に係るコード類似性に基づくファジーテスト方法のフローチャートである。 本発明の別の実施例に係るコード類似性に基づくファジーテスト方法のフローチャートである。 本発明の別の実施例に係るコード類似性に基づくファジーテスト方法のフローチャートである。 本発明の別の実施例に係るコード類似性に基づくファジーテスト方法のフローチャートである。 本発明の実施例に係るコード類似性に基づくファジーテスト装置の構造ブロック図である。 本発明の実施例に係るコンピュータの読み取り可能な記憶媒体の構造概略図である。 本発明の実施例に係る電子機器の構造概略図である。
当業者が本発明の解決手段をより良好に理解できるために、以下、本発明の実施例における図面を参照しながら、本発明の実施例における技術的解決手段を明確で完全に記述し、明らかなように、記述される実施例は本発明の一部の実施例に過ぎず、すべての実施例ではない。本発明の実施例に基づき、当業者であれば、創造的な労働を必要とせずに取得するすべてのその他の実施例はいずれも本発明の保護範囲に属する。
本発明の明細書、特許請求の範囲及び上記図面における用語「第1」、「第2」、「第3」、「第4」等は類似する対象を区別するために用いられ、特定の順序又は優先順位を記述するために用いられる必要はない。ここで記述される実施例がここで示され又は記述されたもの以外の順序で実施されることを可能にするために、このように使用された数字は適した場合であれば互いに取り替え可能なことは、理解されるべきである。また、用語「含む」と「有する」及びそれらの任意の変形は、非排他的な包含物をカバーすることを意図し、たとえば、一連のステップ又はユニットを含む過程、方法、システム、製品又は機器は明確に示されるこれらのステップ又はユニットに限定される必要がなく、明瞭に示されていない又はこれらの過程、方法、製品又は機器に固有の他のステップ又はユニットを含んでもよい。
本発明の実施例によれば、コード類似性に基づくファジーテスト方法を提供し、説明する必要があるものとして、図面のフローチャートに示されるステップはたとえば一組のコンピュータ実行可能命令のコンピュータシステムに実行され得、且つ、フローチャートには論理的順序が示されているが、場合によって、ここでの順序と異なる順序で示され又は記述されるステップを実行することができる。
本実施例では、コード類似性に基づくファジーテスト方法を提供し、コンピュータ、携帯電話、タブレットPC等の電子機器に適用されており、図1は本発明の実施例に係るコード類似性に基づくファジーテスト方法のフローチャートであり、図1に示すように、該方法は以下のステップを含む。
ステップS101:テスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得る。具体的に、テスト対象のコードに対してファジーテストを行う時に、初期シードを選定しリソーススケジューリングアルゴリズムを用いて条件文を選択してから、初期シードをテスト対象のコードに入力し実行する。実行中、異常なクラッシュが検出された場合にプログラム脆弱性が発見されたと見なす。これにより、脆弱性情報を決定するために、ファジーテスト時のテスト対象のコードにおけるトリガーされた異常なクラッシュの位置コードを収集することができる。
ステップS102:類似度分析に基づいて、テスト対象のコードにおける類似コード情報を決定し、前記類似コード情報はテスト対象のコードにおける類似コード、異常なクラッシュの位置コードにおける類似コード及びテスト対象のコードにおける脆弱性データベースコードに類似したコードを含む。
具体的に、コードの再使用により、ソフトウェアシステムには複数の類似又は同一のコードを含む可能性がある。ソフトウェアシステムにおけるコードのすべての脆弱性をより効率的且つ包括的に検出するために、テスト対象のコードに対して類似性分析を行って、テスト対象のコードにおけるすべての類似コードを取得することができる。同時に、テスト対象のコードを脆弱性があると検出されたコードと類似分析を行い、得られる類似コード情報は後続のファジーテスト過程を指導することができ、それによりファジーテストの効率が向上する。
類似コード情報の決定は具体的に、テスト対象のコードをコード行レベルのコードファイル及びコードブロックレベルのコードファイルに切り分けるステップと、コード行レベルのコードファイルに対して類似度分析を行い、第1の類似コードを得るステップと、コードブロックレベルのコードファイルに対して類似度分析を行い、第2の類似コードを得るステップと、第1の類似コード及び第2の類似コードに基づきテスト対象のコードにおける類似コード情報を得るステップと、異常なクラッシュの位置コードをコード行レベル及びコードブロックレベルにおいてテスト対象のコードと類似度分析を行い、異常なクラッシュの位置コードにおけるコード行類似コード及びコードブロック類似コードを得るステップと、テスト対象のコードを予め設定された脆弱性データベースにおけるコードと類似度分析を行い、テスト対象のコードにおける脆弱性データベースコードに類似したコードを得るステップと、を含む。
テスト対象のコードに対して類似性分析を行う時に、コード行レベル及びコードブロックレベルという2つのレベルに切り分けられる。コード行レベルのコードファイルは複数のコード行ファイルを含み、複数のコード行ファイルに対して類似度分析を行い、複数のコード行における類似コードを決定し、同様に、コードブロックファイルに含まれる複数のコードブロックが類似度分析を行うと複数の類似したコードブロックを得ることもできる。検出された異常なクラッシュの位置コードに対して同様にコード行レベル及びコードブロックレベルにおいて類似性分析を行う。この他、テスト対象のコードのみを考慮すると脆弱性があるすべての位置コードを検出できない恐れがあるので、テスト対象のコードを予め設定された脆弱性データベースにおけるコードと類似度分析を行うことができる。該予め設定された脆弱性データベースは既存の知られている脆弱性データベース、たとえばCVE(Common Vulnerabilities & Exposures、共通の脆弱性及びリスク)脆弱性データベース及び脆弱性修復プログラムデータベース(VPD、Virtural Private Database)等であってもよい。
類似度分析を行う時に、既存の類似度分析ツールで実現することができ、たとえば、simツールを用いるか、又はその他のツール又はアルゴリズムで類似度分析を行う。simツールで類似度分析を行う場合、その主な分析プロセスは、入力をトークンに変換し、循環的に読み取ってトークンシーケンスを取得し、ハッシュテーブルを使用してフォワード参照テーブルを構築しマッチングを行うことを含む。
ステップS103:前記類似コード情報に基づきファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得る。具体的に、上記ステップでテスト対象のコードにおけるすべてのコード類似情報を決定した後に、該類似コードを新たなテスト対象のコードとしてファジーテストを行い続け、該類似コード情報における異常なクラッシュの位置コードを得る。
ステップS104:前記テスト対象のコードにおける異常なクラッシュの位置コード及び類似コード情報における異常なクラッシュの位置コードに基づいて、テスト対象のコードにおける脆弱性情報を決定する。ファジーテストを行う時に、異常なクラッシュが発生するとプログラム脆弱性が発見されたと見なすため、テスト対象のコードにおける異常なクラッシュの位置コード及び類似コード情報を利用した後に発見された異常なクラッシュの位置コードを収集することによりテスト対象のコードにおけるプログラム脆弱性を決定することができる。
本発明の実施例に係るコード類似性に基づくファジーテスト方法は、類似コード情報をガイドとして、テスト対象のコードと類似コード情報に対してファジーテストを行い、そのうち、コード類似度分析が静的方法であり、ファジーテストが動的方法であり、該ファジーテスト方法は2つの方法を組み合わせたものであり、コード類似度の計算はファジーテストに目標を提供し、ファジーテストはコード類似度の計算にサンプルを提供し、2つの方法を組み合わせることにより、コードの再使用やコピーによって引き起こされる脆弱性を可能な限り見つけるという効果が実現される。そして、プログラムの作成者は大規模なプロジェクトのコードプログラムを作成する過程で、コードのコピーや再使用を行うことが多く、この現象はプログラムの安全性の問題をもたらしている。該方法はコード類似性を導入することにより、プログラムコードに対して多角度的な類似性研究を行い、そのうちの潜在的な隠れた危険コードを比較全面的に見つけ、ソフトウェア脆弱性を発見する可能性を大幅に向上させるとともに、ファジーテストの脆弱性発見の速度を加速させ、ファジーテストの効率は効果的に向上する。
一態様では、テスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップは、グレイボックスファジーテストアルゴリズムに基づきテスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップを含む。具体的に、グレイボックスファジーテストを用いる場合、グレイボックステストツールAngoraで具体的なファジーテスト過程を実現することができ、又は他のファジーテストツールを用いてもよい。Angoraの主な目標は非記号実行の手段によってパス制約を解決することで、アクセスのコード被覆領域を増すことである。パス制約を効果的に解決するために、Angoraテストツールは主に、効率的なバイトレベル汚染点追跡、コンテキスト依存のパス分岐検出、勾配降下に基づく検索及び入力長さのインテリジェントな修正等といういくつかのキー技術を導入している。
図2に示すように、グレイボックスファジーテストアルゴリズムに基づきテスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップは以下のステップを含む。
ステップS201:リソーススケジューリングアルゴリズムを用いてテスト対象のコードにおけるファジーテストを行う条件文を選択する。グレイボックスファジーテストアルゴリズムを選択する場合、Angoraにおいてリソーススケジューリングアルゴリズムを使用してテスト対象のコードからファジーテストを行うコード文を選択することができる。すなわち、シードがどの条件文に入るかを選択する。リソーススケジューリングアルゴリズムを用いることにより、Angoraはテスト対象のコードにおいて新たな発見されていないコードブロックを最大確率で見つけることができる。具体的に、リソーススケジューリングアルゴリズムについて、従来の知られているアルゴリズムを選択して実現されてもよく、本発明の実施例はここで繰り返し説明しない。
ステップS202:初期シードに対して汚染点追跡を行い、前記初期シードにおける条件文への入りに影響を与えるキーバイトを得る。具体的に、初期シードはグレイボックスファジーテストを行う前に予め決定されてもよい。コード文を選択した後、初期シードを入力し、その後汚染点追跡アルゴリズムを用いて初期シードにおける条件文への入りに影響を与えるキーバイトを得る。そのうち、分岐条件文はテスト対象のコードにおける判断文の判断条件であり、たとえばプログラムにおけるif、switch等である。汚染点追跡により初期シードにおける重要な部分のスクリーニングを実現することができ、具体的な汚染点追跡方法については従来の知られている方法を用いることができる。
ステップS203:勾配降下アルゴリズムを用いて前記キーバイトに対して変異を行い、変異シードを得る。初期シードからスクリーニングされたキーバイトについては、勾配降下アルゴリズムを用いて変異を行って、変異シードを得ることができる。同様に、該勾配降下アルゴリズムは従来の知られているアルゴリズムを用いてもよい。
ステップS204:テスト対象のコードにおける条件文に入ることができる解を得るまで、変異シードをテスト対象のコードに入力して実行する。そのうち、変異シードをテスト対象のコードに入力して実行し、条件文を実行した後にコードブロックが続くと条件文に入る解が見つけられる。該解は入力された変異シードである。
ステップS205:得られる解をファジーテストを行うように選択された次の条件文に入力し、予め設定された時間内に異常なクラッシュをトリガーできなくなるまで、上記汚染点追跡、シード変異及び実行のプロセスを繰り返す。具体的に、対応する解を得た後、上記ステップを繰り返し続け、次のファジーテストを行う文を選択し、得られる解もしくは対応する変異シードを該文に入力し、上記ステップの汚染点追跡、シード変異及び解の取得のプロセスを繰り返し、その後、得られる解を次のファジーテストを行う文に入力し、上記プロセスを連続的に繰り返して、予め設定された時間内に異常なクラッシュをトリガーできなくなるまで、該プロセスを終了する。そのうち、該予め設定された時間は実際の状況に応じて決定される。
一実施形態では、図3に示すように、前記類似コード情報に基づきファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップは以下のステップを含む。
ステップS301:コードブロックレベルにおけるコードブロックと類似コード情報におけるコードとの間の距離を計算する。具体的に、テスト対象のコードにおける異常なクラッシュの位置コードをより迅速に決定するために、指向性計算の方式で対応するプロセスを短縮することができる。先ず、上記切り分けられたコードブロックと決定された類似コード情報におけるコードとの間の距離を計算する。そのうち、該距離を計算する際に、静的処理プロセスで計算してもよく、すなわち、非実行プロセスで対応する距離を計算する。
具体的に、上記切り分けられたコードブロックと決定された類似コード情報におけるコードとの間の距離はプログラム制御フローグラフにおける2つのコードブロックの間の距離によって決定される。そのうち、プログラム制御フローグラフは制御フローグラフとも呼ばれ、1つのプロセス又はプログラムの抽象的な表現であり、コンパイラに使用される抽象的なデータ構造であり、コンパイラにより内部にメンテナンスされており、1つのプログラムの実行中にトラバーサルするすべてのパスを表す。それはグラフの形態で1つのプロセス内のすべての基本ブロックが実行する可能性のある流れを表し、1つのプロセスのリアルタイム実行プロセスを反映することもできる。
コードブロックレベルにおけるコードブロックと類似コード情報におけるコードとの間の距離は、コードブロックレベルの目標距離d(m,T)とも呼ばれ、1つのコードブロックmから類似コード情報におけるコードである目標コードブロック集合Tまでの距離として定義され、その計算式は、
で表される。
で表される(式中、R(n,T)は呼び出しグラフにおけるnから到達可能なすべての目標関数の集合である)。
ステップS302:グレイボックスファジーテストにおける各シードが通ったコードブロックの対応する距離の平均値を計算する。上記ステップS201~ステップS205において、計算により複数の解もしくは複数の変異シードが得られており、これらの変異シードは上記ステップにおいてそれぞれテスト対象のコードに入力されて実行され、各変異シードがテスト対象のコードにおいて実行される時に通ったコードブロックをそれぞれ決定し、各コードブロックについてステップS301の計算により1つの距離を得ることができ、次に、各変異シードが通ったコードブロックの対応する距離に対して加算を行って平均値を求めることにより、各変異シードについて1つの距離値(対応する平均値)を得ることができる。
具体的な計算式は、
ステップS303:平均値が最も小さい場合の対応するシードを選択して変異を行った後にテスト対象のコードに入力してファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得る。具体的に、上記計算により各変異シードの対応する距離値を得て、その後、これらの距離値を比較して、距離値が最も小さい場合の対応する変異シードを選択し、該変異シードに対して変異を行った後に実行プログラムに入力することにより対応する目標コード箇所(類似コード情報)を位置決めすることができる。そのうち、変異際に勾配降下アルゴリズムを用いて実現されてもよく、その後、グレイボックスファジーテストアルゴリズムに基づき、変異シードを用いてテスト対象のコードに入力しファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得る。
1つの実施形態では、図4に示すように、コード類似性に基づく該ファジーテスト方法は以下のプロセスで実現される。初期シードに対して変異を行った後に被テスト又はテスト対象プログラムに入力してAngoraにおいてグレイボックスファジーテストを行い、その後、グレイボックスファジーテストで得られる異常なクラッシュの位置コードを類似度分析ツールで分析し、一部の類似コード情報を得、同時に、テスト対象プログラムをコード用切り分けツールで切り分けてマルチレベルのコードファイル(コードブロックレベルのコードファイル及びコード行レベルのコードファイルを含む)を得、切り分けられたマルチレベルのコードファイル及び予め設定された脆弱性データベースを同様に類似度分析ツールで分析し、一部の類似コード情報を得、切り分けられたマルチレベルのコードファイルに対して同様に類似コード情報に加えて完成した類似コード情報を得る。得られた類似コード情報に対して指向性計算(距離及び平均値を計算する)により、Angoraに基づいてファジーテストを行い、最終的にテスト対象のコードにおける異常なクラッシュの位置コードを得る。
本発明の実施例はコード類似性に基づくファジーテスト装置をさらに提供し、図5に示すように、該装置は、第1のテストモジュールと、類似分析モジュールと、第2のテストモジュールと、脆弱性決定モジュールとを含む。
第1のテストモジュールは、テスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るために用いられ、具体的な内容は上記方法実施例の対応する部分を参照でき、ここで繰り返し説明しない。
類似分析モジュールは、類似度分析に基づいて、テスト対象のコードにおける類似コード情報を決定するために用いられ、前記類似コード情報はテスト対象のコードにおける類似コード、異常なクラッシュの位置コードにおける類似コード及びテスト対象のコードにおける脆弱性データベースコードに類似したコードを含み、具体的な内容は上記方法実施例の対応する部分を参照でき、ここで繰り返し説明しない。
第2のテストモジュールは、前記類似コード情報に基づきファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るために用いられ、具体的な内容は上記方法実施例の対応する部分を参照でき、ここで繰り返し説明しない。
脆弱性決定モジュールは、前記テスト対象のコードにおける異常なクラッシュの位置コード及び類似コード情報における異常なクラッシュの位置コードに基づいて、テスト対象のコードにおける脆弱性情報を決定するために用いられる。具体的な内容は上記方法実施例の対応する部分を参照でき、ここで繰り返し説明しない。
本発明の実施例に係るコード類似性に基づくファジーテスト装置は、類似コード情報をガイドとして、テスト対象のコードと類似コード情報に対してファジーテストを行い、そのうち、コード類似度分析が静的方法であり、ファジーテストが動的方法であり、該ファジーテスト装置は2つの方法を組み合わせたものであり、コード類似度の計算はファジーテストに目標を提供し、ファジーテストはコード類似度の計算にサンプルを提供し、2つの方法を組み合わせることにより、コードの再使用やコピーによって引き起こされる脆弱性を可能な限り見つけるという効果が実現される。そして、プログラムの作成者は大規模なプロジェクトのコードプログラムを作成する過程で、コードのコピーや再使用を行うことが多く、この現象はプログラムの安全性の問題をもたらしている。該装置はコード類似性を導入することにより、プログラムコードに対して多角度的な類似性研究を行い、そのうちの潜在的な隠れた危険コードを比較全面的に見つけ、ソフトウェア脆弱性を発見する可能性を大幅に向上させるとともに、ファジーテストの脆弱性発見の速度を加速させ、ファジーテストの効率は効果的に向上する。
本発明の実施例に係るコード類似性に基づくファジーテスト装置の機能についての記述の細部は上記実施例におけるコード類似性に基づくファジーテスト方法についての記述を参照する。
本発明の実施例は記憶媒体をさらに提供し、図6に示すように、プロセッサにより実行されると上記実施例におけるコード類似性に基づくファジーテスト方法のステップを実現するコンピュータプログラム601が記憶されている。該記憶媒体にはオーディオ/ビデオストリームデータ、特徴フレームデータ、相互作用要求シグナリング、暗号化されたデータ及び予め設定されたデータの大きさ等が記憶されている。そのうち、記憶媒体は磁気ディスク、光ディスク、読み出し専用メモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、フラッシュメモリ(Flash Memory)、ハードディスク(Hard Disk Drive、HDDと略される)又はソリッドステートドライブ(Solid-State Drive、SSD)等であってもよく、前記記憶媒体はさらに上記の種類のメモリの組み合わせを含んでもよい。
当業者であれば、理解できるように、上記実施例の方法における全部又は一部のプロセスの実現は、コンピュータプログラムによって関連ハードウェアに命令を出して完成することができ、前記プログラムはコンピュータ可読記憶媒体等に記憶されてもよく、該プログラムが実行されるとき、上記各方法の実施例のプロセスを含んでもよい。そのうち、前記記憶媒体は磁気ディスク、光ディスク、読み出し専用メモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random AccessMemory、RAM)、フラッシュメモリ(Flash Memory)、ハードディスク(Hard Disk Drive、HDDと略される)又はソリッドステートドライブ(Solid-State Drive、SSD)等であってもよく、前記記憶媒体はさらに上記種類のメモリの組み合わせを含んでもよい。
本発明の実施例は電子機器をさらに提供し、図7に示すように、該電子機器はプロセッサ51及びメモリ52を含んでもよく、プロセッサ51及びメモリ52はバス又はその他の形態で接続されてもよく、図7ではバスで接続されることを例にとる。
プロセッサ51は中央プロセッサ(Central Processing Unit、CPU)であってもよい。プロセッサ51は更に他の汎用プロセッサ、デジタル信号プロセッサ(Digital Signal Processor、DSP)、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、フィールドプログラマブルゲートアレイ(Field-Programmable Gate Array、FPGA)又は他のプログラマブルロジックデバイス、ディスクリートゲート又はトランジスタ論理デバイス、ディスクリートハードウェア部品等のチップ、又は上記各種のチップの組み合わせであってもよい。
メモリ52は非一時的コンピュータ可読記憶媒体として、非一時的ソフトウェアプログラム、非一時的コンピュータ実行可能プログラム及びモジュール、例えば本発明の実施例における対応するプログラム命令/モジュールを記憶するために用いることができる。プロセッサ51はメモリ52に記憶される非一時的ソフトウェアプログラム、命令及びモジュールを実行することにより、プロセッサの様々な機能アプリケーション及びデータ処理を実行し、すなわち上記方法実施例におけるコード類似性に基づくファジーテスト方法を実現する。
メモリ52はプログラム記憶領域及びデータ記憶領域を含んでもよく、プログラム記憶領域はオペレーティング装置、少なくとも1つの機能に必要なアプリケーションプログラムを記憶してもよく、データ記憶領域はプロセッサ51が作成したデータ等を記憶してもよい。この他、メモリ52は高速ランダムアクセスメモリを含んでもよく、さらに非一時的メモリ、たとえば少なくとも1つの磁気ディスク記憶デバイス、フラッシュメモリデバイス、又はその他の非一時的ソリッドステートメモリデバイスを含んでもよい。いくつかの実施例では、選択的には、メモリ52はプロセッサ51に対して遠隔設置されたメモリを含み、これらの遠隔メモリはネットワークを介してプロセッサ51に接続され得る。上記ネットワークの実例はインターネット、イントラネット、ローカルエリアネットワーク、モバイル通信ネット及びこれらの組み合わせを含むが、これらに限らない。
前記1つ又は複数のモジュールは前記メモリ52に記憶され、前記プロセッサ51によって実行されると、図1~4に示される実施例におけるコード類似性に基づくファジーテスト方法を実行する。
上記電子機器の具体的な細部は図1~図4に示される実施例における対応する関連記述及び効果を対応的に参照して理解することができ、ここで繰り返し説明しない。
図面を参照しながら本発明の実施例を記述しているが、当業者であれば、本発明の精神及び範囲を逸脱することなく様々な修正や変形を行うことができ、このような修正や変形はいずれも添付の請求項によって限定される範囲内に属する。

Claims (7)

  1. コード類似性に基づくファジーテスト方法であって、
    テスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップと、
    類似度分析に基づいて、テスト対象のコードにおける類似コード情報を決定するステップであって、前記類似コード情報はテスト対象のコードにおける類似コード、異常なクラッシュの位置コードにおける類似コード及びテスト対象のコードにおける脆弱性データベースコードに類似したコードを含むステップと、
    前記類似コード情報に基づきファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップと、
    前記テスト対象のコードにおける異常なクラッシュの位置コード及び類似コード情報における異常なクラッシュの位置コードに基づいて、テスト対象のコードにおける脆弱性情報を決定するステップと、を含み、
    類似度分析に基づいて、テスト対象のコードにおける類似コード情報を決定するステップは、
    テスト対象のコードをコード行レベルのコードファイル及びコードブロックレベルのコードファイルに切り分けるステップと、
    コード行レベルのコードファイルに対して類似度分析を行い、第1の類似コードを得るステップと、
    コードブロックレベルのコードファイルに対して類似度分析を行い、第2の類似コードを得るステップと、
    第1の類似コード及び第2の類似コードに基づきテスト対象のコードにおける類似コード情報を得るステップと、
    異常なクラッシュの位置コードをコード行レベル及びコードブロックレベルにおいてテスト対象のコードと類似度分析を行い、異常なクラッシュの位置コードにおけるコード行類似コード及びコードブロック類似コードを得るステップと、
    テスト対象のコードを予め設定された脆弱性データベースにおけるコードと類似度分析を行い、テスト対象のコードにおける脆弱性データベースコードに類似したコードを得るステップと、を含み、
    前記類似コード情報に基づきファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップは、
    コードブロックレベルにおけるコードブロックと類似コード情報におけるコードとの間の距離を計算するステップと、
    グレイボックスファジーテストにおける各シードが通ったコードブロックの対応する距離の平均値を計算するステップと、
    平均値が最も小さい場合の対応するシードを選択して変異を行った後にテスト対象のコードに入力してファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップと、
  2. テスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップは、
    グレイボックスファジーテストアルゴリズムに基づきテスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップを含む、ことを特徴とする請求項1に記載のコード類似性に基づくファジーテスト方法。
  3. グレイボックスファジーテストアルゴリズムに基づきテスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップは、
    リソーススケジューリングアルゴリズムを用いてテスト対象のコードにおけるファジーテストを行う条件文を選択するステップと、
    初期シードに対して汚染追跡を行い、前記初期シードにおける条件文への入りに影響を与えるキーバイトを得るステップと、
    勾配降下アルゴリズムを用いて前記キーバイトに対して変異を行い、変異シードを得るステップと、
    テスト対象のコードにおける条件文に入ることができる解を得るまで、変異シードをテスト対象のコードに入力して実行するステップと、
    得られた解をファジーテストを行うように選択された文に入力し、予め設定された時間内に異常なクラッシュをトリガーできなくなるまで、上記汚染追跡、シード変異及び実行のプロセスを繰り返すステップと、を含む、ことを特徴とする請求項2に記載のコード類似性に基づくファジーテスト方法。
  4. 平均値が最も小さい場合の対応するシードを選択して変異を行った後にテスト対象のコードに入力してファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップは、
    各シードの対応する平均値に基づいて平均値が最も小さい場合の対応するシードを類似コード情報のファジーテストのテストシードとして選択するステップと、
    勾配降下アルゴリズムを用いて前記テストシードに対して変異を行い、変異シードを得るステップと、
    グレイボックスファジーテストアルゴリズムに基づき、変異シードを用いてテスト対象のコードに入力しファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップと、を含む、ことを特徴とする請求項1に記載のコード類似性に基づくファジーテスト方法。
  5. コード類似性に基づくファジーテスト装置であって、
    テスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るための第1のテストモジュールと、
    類似度分析に基づいて、テスト対象のコードにおける類似コード情報を決定するための類似分析モジュールであって、前記類似コード情報はテスト対象のコードにおける類似コード、異常なクラッシュの位置コードにおける類似コード及びテスト対象のコードにおける脆弱性データベースコードに類似したコードを含む類似分析モジュールと、
    前記類似コード情報に基づきファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るための第2のテストモジュールと、
    前記テスト対象のコードにおける異常なクラッシュの位置コード及び類似コード情報における異常なクラッシュの位置コードに基づいて、テスト対象のコードにおける脆弱性情報を決定するための脆弱性決定モジュールと、を含み、
    類似度分析に基づいて、テスト対象のコードにおける類似コード情報を決定するステップは、
    テスト対象のコードをコード行レベルのコードファイル及びコードブロックレベルのコードファイルに切り分けるステップと、
    コード行レベルのコードファイルに対して類似度分析を行い、第1の類似コードを得るステップと、
    コードブロックレベルのコードファイルに対して類似度分析を行い、第2の類似コードを得るステップと、
    第1の類似コード及び第2の類似コードに基づきテスト対象のコードにおける類似コード情報を得るステップと、
    異常なクラッシュの位置コードをコード行レベル及びコードブロックレベルにおいてテスト対象のコードと類似度分析を行い、異常なクラッシュの位置コードにおけるコード行類似コード及びコードブロック類似コードを得るステップと、
    テスト対象のコードを予め設定された脆弱性データベースにおけるコードと類似度分析を行い、テスト対象のコードにおける脆弱性データベースコードに類似したコードを得るステップと、を含み、
    前記類似コード情報に基づきファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップは、
    コードブロックレベルにおけるコードブロックと類似コード情報におけるコードとの間の距離を計算するステップと、
    グレイボックスファジーテストにおける各シードが通ったコードブロックの対応する距離の平均値を計算するステップと、
    平均値が最も小さい場合の対応するシードを選択して変異を行った後にテスト対象のコードに入力してファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップと、
  6. 請求項1~4のいずれか1項に記載のコード類似性に基づくファジーテスト方法を前記コンピュータに実行させるためのコンピュータ命令が記憶されている、ことを特徴とするコンピュータ可読記憶媒体。
  7. 電子機器であって、メモリ及びプロセッサを含み、前記メモリと前記プロセッサは互いに通信可能に接続され、前記メモリにはコンピュータ命令が記憶されており、前記プロセッサは前記コンピュータ命令を実行することにより請求項1~4のいずれか1項に記載のコード類似性に基づくファジーテスト方法を実行する、ことを特徴とする電子機器。
JP2022182775A 2022-04-18 2022-11-15 コード類似性に基づくファジーテスト方法、装置及び記憶媒体 Active JP7290784B1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210401549.6A CN114491566B (zh) 2022-04-18 2022-04-18 一种基于代码相似性的模糊测试方法、装置及存储介质
CN202210401549.6 2022-04-18

Publications (2)

Publication Number Publication Date
JP7290784B1 JP7290784B1 (ja) 2023-06-13
JP2023158623A true JP2023158623A (ja) 2023-10-30

Family

ID=81489633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022182775A Active JP7290784B1 (ja) 2022-04-18 2022-11-15 コード類似性に基づくファジーテスト方法、装置及び記憶媒体

Country Status (2)

Country Link
JP (1) JP7290784B1 (ja)
CN (1) CN114491566B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116383834B (zh) * 2023-06-02 2023-08-08 北京邮电大学 针对源码漏洞检测工具异常的检测方法以及相关设备
CN117033171B (zh) * 2023-06-28 2024-03-26 清华大学 触发软件漏洞的输入数据的复现方法、装置、设备及介质
CN117290856B (zh) * 2023-11-14 2024-02-23 广州红海云计算股份有限公司 基于软件自动化测试技术的智能测试管理系统
CN118132453A (zh) * 2024-05-10 2024-06-04 中移(杭州)信息技术有限公司 固件测试方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08241192A (ja) * 1995-01-17 1996-09-17 At & T Corp コードセグメント対応インタフェ−ス生成装置及びその方法
JP2004062394A (ja) * 2002-07-26 2004-02-26 Toshiba Corp 類似修正箇所検索方法とそのためのプログラム
JP2015179312A (ja) * 2014-03-18 2015-10-08 株式会社東芝 情報処理装置、情報処理方法およびプログラム
JP2018136763A (ja) * 2017-02-22 2018-08-30 三菱電機株式会社 類似関数抽出装置および類似関数抽出プログラム
US20200065226A1 (en) * 2018-08-22 2020-02-27 Fujitsu Limited Automated software program repair of similar code snippets

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098352B2 (en) * 2013-07-17 2015-08-04 Deja Vu Security, Llc Metaphor based language fuzzing of computer code
CN109635568B (zh) * 2018-11-26 2023-05-26 华中科技大学 一种基于静态分析和模糊测试相结合的并发漏洞检测方法
CN110008710B (zh) * 2019-04-15 2022-11-18 上海交通大学 基于深度强化学习和程序路径插桩的漏洞检测方法
CN111831562A (zh) * 2020-07-08 2020-10-27 信联科技(南京)有限公司 一种基于机器学习的模糊测试用例生成方法及运行该方法的计算机设备与可读存储介质
CN112800423B (zh) * 2021-01-26 2022-10-11 北京航空航天大学 一种二进制代码授权漏洞检测方法
CN113901474B (zh) * 2021-09-13 2022-07-26 四川大学 一种基于函数级代码相似性的漏洞检测方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08241192A (ja) * 1995-01-17 1996-09-17 At & T Corp コードセグメント対応インタフェ−ス生成装置及びその方法
JP2004062394A (ja) * 2002-07-26 2004-02-26 Toshiba Corp 類似修正箇所検索方法とそのためのプログラム
JP2015179312A (ja) * 2014-03-18 2015-10-08 株式会社東芝 情報処理装置、情報処理方法およびプログラム
JP2018136763A (ja) * 2017-02-22 2018-08-30 三菱電機株式会社 類似関数抽出装置および類似関数抽出プログラム
US20200065226A1 (en) * 2018-08-22 2020-02-27 Fujitsu Limited Automated software program repair of similar code snippets

Also Published As

Publication number Publication date
CN114491566B (zh) 2022-07-05
JP7290784B1 (ja) 2023-06-13
CN114491566A (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
JP7290784B1 (ja) コード類似性に基づくファジーテスト方法、装置及び記憶媒体
US11693962B2 (en) Malware clustering based on function call graph similarity
EP3506139A1 (en) Malware detection in event loops
US9584541B1 (en) Cyber threat identification and analytics apparatuses, methods and systems
US11586735B2 (en) Malware clustering based on analysis of execution-behavior reports
US20200380125A1 (en) Method for Detecting Libraries in Program Binaries
CN113918951B (zh) 基于抽象语法树的恶意代码检测方法、装置及电子设备
Martín et al. Android malware characterization using metadata and machine learning techniques
CN112035359A (zh) 程序测试方法、装置、电子设备及存储介质
US11522885B1 (en) System and method for information gain for malware detection
US20140310812A1 (en) Identifying security vulnerabilities related to inter-process communications
US8607352B2 (en) Classification of code constructs using string analysis
US11222115B2 (en) Data scan system
US10146740B1 (en) Sparse data set processing
CN114238980B (zh) 一种工控设备漏洞挖掘方法、系统、设备及存储介质
Akram et al. DroidMD: an efficient and scalable android malware detection approach at source code level
JP2022522790A (ja) ブロックチェーントランザクションを追跡するための方法およびデバイス
Rafiq et al. AndroMalPack: enhancing the ML-based malware classification by detection and removal of repacked apps for Android systems
CN117579395A (zh) 一种应用人工智能进行网络安全漏洞扫描的方法及系统
US11321453B2 (en) Method and system for detecting and classifying malware based on families
CN110472415B (zh) 一种恶意程序的确定方法及装置
KR20170060279A (ko) 탐지 규칙 검증 장치 및 방법
CN112347479A (zh) 恶意软件检测的误报纠正方法、装置、设备和存储介质
US11356853B1 (en) Detection of malicious mobile apps
CN115586920B (zh) 脆弱代码片段克隆检测方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221115

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20230227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230511

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: 20230523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230601

R150 Certificate of patent or registration of utility model

Ref document number: 7290784

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150