JP2023158623A - コード類似性に基づくファジーテスト方法、装置及び記憶媒体 - Google Patents
コード類似性に基づくファジーテスト方法、装置及び記憶媒体 Download PDFInfo
- 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
Links
- 238000010998 test method Methods 0.000 title claims abstract description 11
- 238000012360 testing method Methods 0.000 claims abstract description 163
- 230000002159 abnormal effect Effects 0.000 claims abstract description 73
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000004458 analytical method Methods 0.000 claims abstract description 43
- 230000001960 triggered effect Effects 0.000 claims abstract description 18
- 230000035772 mutation Effects 0.000 claims description 40
- 238000004422 calculation algorithm Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 26
- 230000015654 memory Effects 0.000 claims description 25
- 235000000334 grey box Nutrition 0.000 claims description 8
- 244000085685 grey box Species 0.000 claims description 8
- 238000010899 nucleation Methods 0.000 claims 1
- 238000004364 calculation method Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 9
- 210000000077 angora Anatomy 0.000 description 7
- 238000011109 contamination Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000002547 anomalous effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000020509 sex determination Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
- G06F8/751—Code clone detection
-
- 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)
- 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
Description
Claims (7)
- コード類似性に基づくファジーテスト方法であって、
テスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップと、
類似度分析に基づいて、テスト対象のコードにおける類似コード情報を決定するステップであって、前記類似コード情報はテスト対象のコードにおける類似コード、異常なクラッシュの位置コードにおける類似コード及びテスト対象のコードにおける脆弱性データベースコードに類似したコードを含むステップと、
前記類似コード情報に基づきファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップと、
前記テスト対象のコードにおける異常なクラッシュの位置コード及び類似コード情報における異常なクラッシュの位置コードに基づいて、テスト対象のコードにおける脆弱性情報を決定するステップと、を含み、
類似度分析に基づいて、テスト対象のコードにおける類似コード情報を決定するステップは、
テスト対象のコードをコード行レベルのコードファイル及びコードブロックレベルのコードファイルに切り分けるステップと、
コード行レベルのコードファイルに対して類似度分析を行い、第1の類似コードを得るステップと、
コードブロックレベルのコードファイルに対して類似度分析を行い、第2の類似コードを得るステップと、
第1の類似コード及び第2の類似コードに基づきテスト対象のコードにおける類似コード情報を得るステップと、
異常なクラッシュの位置コードをコード行レベル及びコードブロックレベルにおいてテスト対象のコードと類似度分析を行い、異常なクラッシュの位置コードにおけるコード行類似コード及びコードブロック類似コードを得るステップと、
テスト対象のコードを予め設定された脆弱性データベースにおけるコードと類似度分析を行い、テスト対象のコードにおける脆弱性データベースコードに類似したコードを得るステップと、を含み、
前記類似コード情報に基づきファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップは、
コードブロックレベルにおけるコードブロックと類似コード情報におけるコードとの間の距離を計算するステップと、
グレイボックスファジーテストにおける各シードが通ったコードブロックの対応する距離の平均値を計算するステップと、
平均値が最も小さい場合の対応するシードを選択して変異を行った後にテスト対象のコードに入力してファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップと、
- テスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップは、
グレイボックスファジーテストアルゴリズムに基づきテスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップを含む、ことを特徴とする請求項1に記載のコード類似性に基づくファジーテスト方法。 - グレイボックスファジーテストアルゴリズムに基づきテスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るステップは、
リソーススケジューリングアルゴリズムを用いてテスト対象のコードにおけるファジーテストを行う条件文を選択するステップと、
初期シードに対して汚染追跡を行い、前記初期シードにおける条件文への入りに影響を与えるキーバイトを得るステップと、
勾配降下アルゴリズムを用いて前記キーバイトに対して変異を行い、変異シードを得るステップと、
テスト対象のコードにおける条件文に入ることができる解を得るまで、変異シードをテスト対象のコードに入力して実行するステップと、
得られた解をファジーテストを行うように選択された文に入力し、予め設定された時間内に異常なクラッシュをトリガーできなくなるまで、上記汚染追跡、シード変異及び実行のプロセスを繰り返すステップと、を含む、ことを特徴とする請求項2に記載のコード類似性に基づくファジーテスト方法。 - 平均値が最も小さい場合の対応するシードを選択して変異を行った後にテスト対象のコードに入力してファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップは、
各シードの対応する平均値に基づいて平均値が最も小さい場合の対応するシードを類似コード情報のファジーテストのテストシードとして選択するステップと、
勾配降下アルゴリズムを用いて前記テストシードに対して変異を行い、変異シードを得るステップと、
グレイボックスファジーテストアルゴリズムに基づき、変異シードを用いてテスト対象のコードに入力しファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップと、を含む、ことを特徴とする請求項1に記載のコード類似性に基づくファジーテスト方法。 - コード類似性に基づくファジーテスト装置であって、
テスト対象のコードから選択された文に対してファジーテストを行い、トリガーされた異常なクラッシュの位置コードを得るための第1のテストモジュールと、
類似度分析に基づいて、テスト対象のコードにおける類似コード情報を決定するための類似分析モジュールであって、前記類似コード情報はテスト対象のコードにおける類似コード、異常なクラッシュの位置コードにおける類似コード及びテスト対象のコードにおける脆弱性データベースコードに類似したコードを含む類似分析モジュールと、
前記類似コード情報に基づきファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るための第2のテストモジュールと、
前記テスト対象のコードにおける異常なクラッシュの位置コード及び類似コード情報における異常なクラッシュの位置コードに基づいて、テスト対象のコードにおける脆弱性情報を決定するための脆弱性決定モジュールと、を含み、
類似度分析に基づいて、テスト対象のコードにおける類似コード情報を決定するステップは、
テスト対象のコードをコード行レベルのコードファイル及びコードブロックレベルのコードファイルに切り分けるステップと、
コード行レベルのコードファイルに対して類似度分析を行い、第1の類似コードを得るステップと、
コードブロックレベルのコードファイルに対して類似度分析を行い、第2の類似コードを得るステップと、
第1の類似コード及び第2の類似コードに基づきテスト対象のコードにおける類似コード情報を得るステップと、
異常なクラッシュの位置コードをコード行レベル及びコードブロックレベルにおいてテスト対象のコードと類似度分析を行い、異常なクラッシュの位置コードにおけるコード行類似コード及びコードブロック類似コードを得るステップと、
テスト対象のコードを予め設定された脆弱性データベースにおけるコードと類似度分析を行い、テスト対象のコードにおける脆弱性データベースコードに類似したコードを得るステップと、を含み、
前記類似コード情報に基づきファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップは、
コードブロックレベルにおけるコードブロックと類似コード情報におけるコードとの間の距離を計算するステップと、
グレイボックスファジーテストにおける各シードが通ったコードブロックの対応する距離の平均値を計算するステップと、
平均値が最も小さい場合の対応するシードを選択して変異を行った後にテスト対象のコードに入力してファジーテストを再び行い、類似コード情報における異常なクラッシュの位置コードを得るステップと、
- 請求項1~4のいずれか1項に記載のコード類似性に基づくファジーテスト方法を前記コンピュータに実行させるためのコンピュータ命令が記憶されている、ことを特徴とするコンピュータ可読記憶媒体。
- 電子機器であって、メモリ及びプロセッサを含み、前記メモリと前記プロセッサは互いに通信可能に接続され、前記メモリにはコンピュータ命令が記憶されており、前記プロセッサは前記コンピュータ命令を実行することにより請求項1~4のいずれか1項に記載のコード類似性に基づくファジーテスト方法を実行する、ことを特徴とする電子機器。
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)
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)
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)
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 | 四川大学 | 一种基于函数级代码相似性的漏洞检测方法 |
-
2022
- 2022-04-18 CN CN202210401549.6A patent/CN114491566B/zh active Active
- 2022-11-15 JP JP2022182775A patent/JP7290784B1/ja active Active
Patent Citations (5)
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 |