JP5901668B2 - 静的解析中に発生した警告をグループ化するシステムおよび方法 - Google Patents
静的解析中に発生した警告をグループ化するシステムおよび方法 Download PDFInfo
- Publication number
- JP5901668B2 JP5901668B2 JP2014025029A JP2014025029A JP5901668B2 JP 5901668 B2 JP5901668 B2 JP 5901668B2 JP 2014025029 A JP2014025029 A JP 2014025029A JP 2014025029 A JP2014025029 A JP 2014025029A JP 5901668 B2 JP5901668 B2 JP 5901668B2
- Authority
- JP
- Japan
- Prior art keywords
- warnings
- similar
- alerts
- warning
- application code
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Description
#define SIZE 10
int rColors[SIZE], gColors[SIZE], bColors[SIZE];
1. void func(int r, int g, int b)
2. {
3. // ‘n’と’factor’の値は知られていない。
4. ...
5. factor = getDivFactor();
6. if((r/factor > rval1) && ...)
7. rColors[n] = r;
8.
9. if((g/factor > gval1) && ...)
10. gColors[n] = g;
11.
12. if((b/factor > bval1) && ...)
13. bColors[n] = b;
14.
15. gradient = getGradient(
rColors[n],gColors[n],bColors[n]);
16. ...
17. }
−警告Wに類似するとして特定された他の警告から1また2以上のMRE/MLEが存在する。WはFWでなければならない。
−警告Wに類似するとして特定された他の警告からMRE/MLEが存在しない。正確にWはFWでなければならない。
−ZD6の分母は、ZD9への各パスとしてZD9とZD12でMREである。ZD12は、ZD6を通り、変数‘factor’は中間で修正されない。
−ZD9の分母は、ZD12でMREである。しかし、ZD9がZD6に先行しないので、ZD6でMREであることができない。
−AIOB7(またはAIOB10、AIOB13)のインデックスnは、他のいずれのAIOBポイントでMREでない。なぜなら、それらを含むことなくパスが存在するからである。
−警告のみの解析と共にプログラムポイントを考慮する。安全または安全でないとして特定されたPOIsがMRE計算から無視される。
−MREs計算からの関数呼び出しおよび揮発性関数を含むEOIsを無視する。なぜなら、計算されたLWとFWsのレビュー判断で要求された保証がそれらの存在とともに与えられることができないからである。
−修正された変数の情報は、分離“May-Kill/Modified”データフロー問題として計算されるべきである。
−配列が計算する消された情報に含まれるとき、保守的なアプローチが採られるべきである。(arr[0]+b)のような関数は、‘i’の値が未知であるとき、“arr[i]=n”プログラムポイント後に到達されるべきでない。
−1AIOB15のnのインデックスは、AIOB7からの全てのパスがはまた1AIOB15を通り、それらのインデックスnが中間で修正されないように、AIOB7でMLEである。同様に、ライン15での警告からのインデックスは、AIOB7、AIOB10、AIOB13でMLEsである。
−AIOB13のインデックスは、AIOB7とAIOB10警告でMLEである。なぜなら、AIOB7とAIOB10を通り、AIOB13を通らないパスが存在するからである。
効率的なMREs計算のために与えられる考慮が、MLEs計算のために同様にあってもよい。
−WとWLの警告のEOIs(および配列サイズのような他の要求される情報)が類似する場合。
−WLに相当する頂点に入ってくる辺がない場合。
・ZD6のインデックスは、ZD9とZD12に対するMREであり、したがって、ZD6からZD9とZD12にそれぞれの辺がある。
・ZD9のインデックスがZD12に対するMREに対するインデックスであるとしても、それぞれの辺は、ZD9のための頂点が(エッジ付加の第2のコンストレイントにより)入ってくる辺を有しているので、加えられない。
int arr[10];
void func(const int* baseAddr, const int* currPtr)
{ // valは、0から9の値の割り当てを得る。
int val = currPtr - baseAddr;
switch (switchVar)
{
case 1: func1(val); break;
case 2: func2(val); break;
case 3: func3(val); break;
default: break;
}
}
void func1(int p1)
{
if(...) arr[p1] = ...;
else if (...) arr[p1] = ...;
}
void func2(int p2)
{
if(...) arr[p2] = ...;
else if (...) arr[p2] = ...;
}
void func3(int p3)
{
if(...) arr[p3] = ...;
else if (...) arr[p3] = ...;
}
・配列サイズは、MPGを使用するAIOB警告をグループ化するためにマッチすべきである。
・v+l、v、v−lのようなEOIsを有する警告は、EOIsが構造の点で異なるので、MPGを使用してグループ化されない。
・EOIsのようなa+b+c & a+b+cを有する警告は、各変数(a、b、c)が同じ修正ポイントから値を得る場合に限り、MPGを使用してグループ化される。
Claims (10)
- アプリケーションコードの静的解析中に発生した複数の警告をグループ化する方法であって、当該方法は、
前記複数の警告を発生させるために前記アプリケーションコードを解析する工程と、
前記複数の警告から、構造的かつ意味的に類似する関心のある式(EOI)を有する複数の類似する警告を特定する工程と、
前記複数の類似する警告をそれぞれ含む、1または2以上の前記警告のグループを形成する工程と、
前記複数の類似する警告のグループのそれぞれから代表的な警告を計算する工程と、を含み、
前記代表的な警告を計算する工程は、前記複数の類似する警告の前記グループ内の前記代表的な警告以外の警告が、前記代表的な警告のレビュー判断に従うように、実行され、
前記代表的な警告が安全であると判断された場合、当該グループ内の前記代表的な警告以外の警告が安全であると判明し、前記代表的な警告が安全ではないと判断された場合、当該グループ内の警告が個別にレビューされる必要があることが判明し、
前記解析する工程と、前記特定する工程と、前記形成する工程と、前記計算する工程とは、メモリーに保存された、プログラム化した命令を使用するプロセッサーによって実行されることを特徴とするアプリケーションコードの静的解析中に発生した複数の警告をグループ化する方法。 - 情報計算のフォワードフローにおける前記代表的な警告を計算するためのマストリーチングエクスプレッションズ(MREs)を計算する工程、または、
情報計算のバックワードフローにおける前記代表的な警告を計算するためのマストライブエクスプレッションズ(MLEs)を計算する工程、をさらに含む請求項1に記載のアプリケーションコードの静的解析中に発生した複数の警告をグループ化する方法。 - 前記複数の類似する警告は、互いに到達可能であり、
前記複数の類似する警告の前記EOIからの変数は、前記複数の類似する警告のプログラムポイント間で修正されず、
前記複数の類似する警告のうちの一つの前記警告の前記EOIによって得られる値は、前記一つの警告以外の前記複数の類似する警告の前記EOIからの値を含む請求項1に記載のアプリケーションコードの静的解析中に発生した複数の警告をグループ化する方法。 - 前記1または2以上の警告のグループは、前記アプリケーションコードのシングルコード認証のために形成される請求項1に記載のアプリケーションコードの静的解析中に発生した複数の警告をグループ化する方法。
- アプリケーションコードの静的解析中に発生した複数の警告をグループ化するシステムであって、当該システムは、
プロセッサーと、
前記プロセッサーに連結されたメモリーとを含み、
前記プロセッサーは、前記メモリーに保存された複数のモジュールを実行することができ、
前記複数のモジュールは、
前記複数の警告を発生させるために前記アプリケーションコードを解析するように構成された解析モジュールと、
前記複数の警告から、構造的かつ意味的に類似する関心のある式(EOI)を有する複数の類似する警告を特定するように構成された特定モジュールと、
前記複数の類似する警告をそれぞれ含む、1または2以上の前記警告のグループを形成するように構成されたグループ化モジュールと、
前記複数の類似する警告のグループのそれぞれから代表的な警告を計算するように構成された計算モジュールと、を含み、
前記計算モジュールは、前記複数の類似する警告の前記グループ内の前記代表的な警告以外の警告が、前記代表的な警告のレビュー判断に従うように、前記代表的な警告を計算し、
前記代表的な警告が安全であると判断された場合、当該グループ内の前記代表的な警告以外の警告が安全であると判明し、前記代表的な警告が安全ではないと判断された場合、当該グループ内の警告が個別にレビューされる必要があることが判明することを特徴とするアプリケーションコードの静的解析中に発生した複数の警告をグループ化するシステム。 - 前記計算モジュールは、
情報計算のフォワードフローにおける前記代表的な警告を計算するためのマストリーチングエクスプレッションズ(MREs)を計算するように構成されている、または、
情報計算のバックワードフローにおける前記代表的な警告を計算するためのマストライブエクスプレッションズ(MLEs)を計算するように構成されている請求項5に記載のアプリケーションコードの静的解析中に発生した複数の警告をグループ化するシステム。 - 前記複数の類似する警告は、互いに到達可能であり、
前記複数の類似する警告の前記EOIからの変数は、前記複数の類似する警告のプログラムポイント間で修正されず、
前記複数の類似する警告のうちの一つの前記警告の前記EOIによって得られる値は、前記一つの警告以外の前記複数の類似する警告の前記EOIからの値を含む請求項5に記載のアプリケーションコードの静的解析中に発生した複数の警告をグループ化するシステム。 - 前記1または2以上の警告のグループは、前記アプリケーションコードのシングルコード認証のために形成される請求項5に記載のアプリケーションコードの静的解析中に発生した複数の警告をグループ化するシステム。
- アプリケーションコードの静的解析中に発生した複数の警告をグループ化するシステムであって、当該システムは、
前記複数の警告を発生させるために前記アプリケーションコードを解析するように構成された解析モジュールと、
前記複数の警告から複数の類似する警告を特定するように構成された特定モジュールと、
前記複数の類似する警告をそれぞれ含む、1または2以上の前記警告のグループを形成するように構成されたグループ化モジュールと、
前記複数の類似する警告のグループのそれぞれから代表的な警告を計算するように構成された計算モジュールと、を含み、
前記複数の類似する警告の関心のある式(EOI)は、同じ順番で現れる同じオペレーターを有し、
前記複数の類似する警告の前記EOIにおける変数は、前記アプリケーションコードにおける同じ修正ポイントからの変数を取得し、
前記計算モジュールは、前記複数の類似する警告の前記グループ内の前記代表的な警告以外の警告が、前記代表的な警告のレビュー判断に従うように、前記代表的な警告を計算し、
前記代表的な警告が安全であると判断された場合、当該グループ内の前記代表的な警告以外の警告が安全であると判明し、前記代表的な警告が安全ではないと判断された場合、当該グループ内の警告が個別にレビューされる必要があることが判明することを特徴とするアプリケーションコードの静的解析中に発生した複数の警告をグループ化するシステム。 - 特定のグループにおける前記複数の類似する警告の前記代表的な警告のレビューは、前記特定のグループにおける前記代表的な警告以外の前記複数の類似する警告のレビューを保証し、前記各警告の前記レビューは前記各警告に対応する前記修正ポイントにおける前記変数の値を参照することにより実行される請求項9に記載のアプリケーションコードの静的解析中に発生した複数の警告をグループ化するシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN596/MUM/2013 | 2013-02-28 | ||
IN596MU2013 | 2013-02-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014170530A JP2014170530A (ja) | 2014-09-18 |
JP5901668B2 true JP5901668B2 (ja) | 2016-04-13 |
Family
ID=51389277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014025029A Expired - Fee Related JP5901668B2 (ja) | 2013-02-28 | 2014-02-13 | 静的解析中に発生した警告をグループ化するシステムおよび方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9384017B2 (ja) |
JP (1) | JP5901668B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8707111B2 (en) * | 2011-02-09 | 2014-04-22 | Ebay Inc. | High-volume distributed script error handling |
JP6116639B2 (ja) * | 2014-09-29 | 2017-04-19 | タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited | クラスタ化されたコード解析警告のレビューのための方法およびシステム |
EP3285171B1 (en) * | 2016-08-11 | 2021-11-24 | Tata Consultancy Services Limited | System and method for cause point analysis for effective handling of static analysis alarms |
JP6840966B2 (ja) | 2016-09-15 | 2021-03-10 | 富士通株式会社 | 参考情報出力プログラム、参考情報出力方法、及び参考情報出力装置 |
EP3564819B1 (en) | 2016-12-29 | 2021-03-17 | Mitsubishi Electric Corporation | Program analysis system, program analyzer, program analysis method, and analysis program |
US11200144B1 (en) * | 2017-09-05 | 2021-12-14 | Amazon Technologies, Inc. | Refinement of static analysis of program code |
CN107844415B (zh) * | 2017-09-28 | 2021-02-05 | 西安电子科技大学 | 一种基于插值的模型检测路径缩减方法、计算机 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4720778A (en) * | 1985-01-31 | 1988-01-19 | Hewlett Packard Company | Software debugging analyzer |
US5764883A (en) * | 1996-03-28 | 1998-06-09 | Hewlett-Packard Co. | System and method for checking for dynamic resource misuse in a computer program |
JP4457127B2 (ja) * | 1998-11-27 | 2010-04-28 | パナソニック株式会社 | プロセッサ、コンパイル装置及びコンパイルプログラムを記録している記録媒体 |
JP3857842B2 (ja) * | 1999-11-16 | 2006-12-13 | 富士通株式会社 | プログラム分析装置及び記録媒体 |
US6978443B2 (en) * | 2002-01-07 | 2005-12-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for organizing warning messages |
US20070128899A1 (en) * | 2003-01-12 | 2007-06-07 | Yaron Mayer | System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows |
JP4203478B2 (ja) | 2005-02-15 | 2009-01-07 | リンナイ株式会社 | 給湯システム |
US20070016894A1 (en) * | 2005-07-15 | 2007-01-18 | Sreedhar Vugranam C | System and method for static analysis using fault paths |
US8141049B2 (en) * | 2007-03-14 | 2012-03-20 | Nec Laboratories America, Inc. | System and method for scalable flow and context-sensitive pointer alias analysis |
JP5369565B2 (ja) * | 2008-09-12 | 2013-12-18 | 日本電気株式会社 | プログラムのエラー情報出力装置、エラー情報出力方法およびエラー情報出力プログラム |
US8726254B2 (en) * | 2009-06-20 | 2014-05-13 | Microsoft Corporation | Embedded annotation and program analysis |
US8527966B2 (en) * | 2009-09-17 | 2013-09-03 | International Business Machines Corporation | Source code inspection method and system |
JP5342407B2 (ja) * | 2009-10-30 | 2013-11-13 | 株式会社日立製作所 | プログラム解析方法、プログラム解析プログラムおよびプログラム解析装置 |
US20110276843A1 (en) | 2010-05-05 | 2011-11-10 | International Business Machines Corporation | Intelligent error-reporting apparatus and method |
DE112011103505T5 (de) * | 2010-12-16 | 2013-12-05 | International Business Machines Corp. | Verfahren zum Validieren von Laufzeitreferenzen |
US20120222009A1 (en) | 2011-02-24 | 2012-08-30 | Ayewah Nathaniel E | Defective code warning resolution analysis |
JP5665128B2 (ja) * | 2011-05-30 | 2015-02-04 | 日本電気通信システム株式会社 | 静的解析支援装置、静的解析支援方法、及びプログラム |
-
2014
- 2014-02-13 JP JP2014025029A patent/JP5901668B2/ja not_active Expired - Fee Related
- 2014-02-19 US US14/184,530 patent/US9384017B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014170530A (ja) | 2014-09-18 |
US9384017B2 (en) | 2016-07-05 |
US20140244645A1 (en) | 2014-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5901668B2 (ja) | 静的解析中に発生した警告をグループ化するシステムおよび方法 | |
US11748480B2 (en) | Policy-based detection of anomalous control and data flow paths in an application program | |
US10387236B2 (en) | Processing data errors for a data processing system | |
US10095602B2 (en) | Automated code analyzer | |
CN109992970B (zh) | Java反序列化漏洞检测系统和方法 | |
US10176234B2 (en) | Impact analysis | |
US20140157417A1 (en) | Methods and systems for architecture-centric threat modeling, analysis and visualization | |
US20180165258A1 (en) | Methods for improved auditing of web sites and devices thereof | |
US11868489B2 (en) | Method and system for enhancing data privacy of an industrial system or electric power system | |
US9613362B2 (en) | Monitoring a situation by comparing parallel data streams | |
US20230208882A1 (en) | Policy - aware vulnerability mapping and attack planning | |
WO2019055378A1 (en) | METHOD AND APPARATUS FOR FINDING LONG PROCESSES IN A CODE | |
US10268461B2 (en) | Global data flow optimization for machine learning programs | |
US11115439B2 (en) | Automated security solutions identification and architecture design | |
Schrettner et al. | Impact analysis in the presence of dependence clusters using Static Execute After in WebKit | |
JP5706940B2 (ja) | ランタイム実行障害のソースを識別するシステム及び方法 | |
EP3058519A2 (en) | Case-based reasoning | |
CN117375879A (zh) | 一种冗余检测方法、装置、电子设备及存储介质 | |
US20230118857A1 (en) | Peer risk benchmarking using generative adversarial networks | |
CN116680699A (zh) | 一种漏洞优先级排序系统、方法、计算机设备及存储介质 | |
US9619765B2 (en) | Monitoring a situation by generating an overall similarity score | |
TW201546629A (zh) | 語意限制技術 | |
US20150112914A1 (en) | Case-based reasoning | |
CN110554925B (zh) | 面向死锁检查的非阻塞mpi程序符号执行方法、系统及介质 | |
US20150112912A1 (en) | Case-based reasoning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141216 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150316 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150331 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150901 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151130 |
|
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: 20160301 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160308 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5901668 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 |
|
LAPS | Cancellation because of no payment of annual fees |