JP2014170530A - 静的解析中に発生した警告をグループ化するシステムおよび方法 - Google Patents
静的解析中に発生した警告をグループ化するシステムおよび方法 Download PDFInfo
- Publication number
- JP2014170530A JP2014170530A JP2014025029A JP2014025029A JP2014170530A JP 2014170530 A JP2014170530 A JP 2014170530A JP 2014025029 A JP2014025029 A JP 2014025029A JP 2014025029 A JP2014025029 A JP 2014025029A JP 2014170530 A JP2014170530 A JP 2014170530A
- 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.)
- Granted
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)
Abstract
【解決手段】解析モジュール212は、警告を発生するためにアプリケーションコードを解析する。特定モジュール214は、構造的かつ意味的に類似する関心度に基づいて、発生した類似する警告を特定するように構成されている。その結果、類似する警告の関心度(EOI)は同じ順序で現れる同じオペレーターを有し、類似する警告のEOIにおける変数は、アプリケーションコードにおける同じ修正ポイントから値を得る。グループ化モジュール216は、特定された類似する警告の1または2以上のグループを形成する。計算モジュール218は、各グループから代表的な警告を計算するように構成されている。その結果、代表的な警告とそれ以外の警告はそれらのレビュー判断の関係に従う。
【選択図】図2
Description
類似する警告の関心度(EOI)は、同じ指令に現れる同じオペレーターを有する。そして、類似する警告のEOIにおける変数は、アプリケーションコードにおける同じ修正ポイントからの値を得る。システムは、警告の1または2以上のグループを形成するように構成されたグループ化モジュールを含む。警告の1または2以上のグループのそれぞれは、類似する警告を含む。
#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 (12)
- アプリケーションコードの静的解析中に発生した警告をグループ化する方法であって、当該方法は、
前記警告を発生するために前記アプリケーションコードを解析する工程と、
前記警告から、構造的かつ意味的に類似する関心度(EOI)を有する類似する警告を特定する工程と、
前記警告の1または2以上のグループを形成する工程と、を含み、
前記1または2以上のグループのそれぞれは、前記類似する警告を含み、
前記解析する工程と、前記特定する工程と、前記形成する工程とは、メモリーに保存された、プログラム化した命令を使用するプロセッサによって実行されることを特徴とするアプリケーションコードの静的解析中に発生した警告をグループ化する方法。 - 前記1または2以上のグループのそれぞれから代表的な警告を計算する工程とをさらに含み、
前記代表的な警告以外の前記グループにおける前記警告は、前記代表的な警告のレビュー判断に従い、
前記代表的な警告のレビューは、前記代表的な警告以外の前記グループにおける前記警告の前記レビューを保証する請求項1に記載のアプリケーションコードの静的解析中に発生した警告をグループ化する方法。 - 前記計算する工程は、
情報計算のフォワードフローにおける前記代表的な警告を計算するためのマストリーチングエクスプレッションズ(MREs)を計算する工程、または、
情報計算のバックワードフローにおける前記代表的な警告を計算するためのマストライブエクスプレッションズ(MLEs)を計算する工程、をさらに含む請求項2に記載のアプリケーションコードの静的解析中に発生した警告をグループ化する方法。 - 前記類似する警告は、互いに到達可能であり、
前記類似する警告の前記EOIからの変数は、前記類似する警告のプログラムポイント間で修正されず、
前記類似する警告のうちの少なくとも一つの警告のEOIによって得られる値は、前記少なくとも一つの警告以外の類似する警告の前記EOIからの値を含む請求項1に記載のアプリケーションコードの静的解析中に発生した警告をグループ化する方法。 - 前記1または2以上のグループは、前記アプリケーションコードのシグナル認証のために形成される請求項1に記載のアプリケーションコードの静的解析中に発生した警告をグループ化する方法。
- アプリケーションコードの静的解析中に発生した警告をグループ化するシステムであって、当該システムは、
プロセッサーと、
前記プロセッサーに連結されたメモリーとを含み、
前記プロセッサーは、前記メモリーに保存された複数のモジュールを実行することができ、
前記複数のモジュールは、
前記警告を発生するために前記アプリケーションコードを解析するように構成された解析モジュールと、
前記警告から、構造的かつ意味的に類似する関心度(EOI)を有する類似する警告を特定するように構成された特定モジュールと、
前記警告の1または2以上のグループを形成するように構成されたグループ化モジュールと、を含み、
前記1または2以上のグループのそれぞれは、前記類似する警告を含むことを特徴とする警告をグループ化するシステム。 - 前記1または2以上のグループのそれぞれから代表的な警告を計算するように構成された計算モジュールをさらに含み、
前記代表的な警告以外の前記グループにおける前記警告は、前記代表的な警告のレビュー判断に従い、
前記代表的な警告のレビューは、前記代表的な警告以外の前記グループにおける前記警告の前記レビューを保証する請求項6に記載のアプリケーションコードの静的解析中に発生した警告をグループ化するシステム。 - 前記計算モジュールは、
情報計算のフォワードフローにおける前記代表的な警告を計算するためのマストリーチングエクスプレッションズ(MREs)を計算するように構成されている、または、
情報計算のバックワードフローにおける前記代表的な警告を計算するためのマストライブエクスプレッションズ(MLEs)を計算するように構成されている請求項7に記載のアプリケーションコードの静的解析中に発生した警告をグループ化するシステム。 - 前記類似する警告は、互いに到達可能であり、
前記類似する警告の前記EOIからの変数は、前記類似する警告のプログラムポイント間で修正されず、
前記類似する警告のうちの少なくとも一つの警告のEOIによって得られる値は、前記少なくとも一つの警告以外の類似する警告の前記EOIからの値を含む請求項6に記載のアプリケーションコードの静的解析中に発生した警告をグループ化するシステム。 - 前記1または2以上のグループは、前記アプリケーションコードのシグナル認証のために形成される請求項6に記載のアプリケーションコードの静的解析中に発生した警告をグループ化するシステム。
- アプリケーションコードの静的解析中に発生した警告をグループ化するシステムであって、当該システムは、
前記警告を発生するために前記アプリケーションコードを解析するように構成された解析モジュールと、
前記警告から類似する警告を特定するように構成された特定モジュールと、
前記警告の1または2以上のグループを形成するように構成されたグループ化モジュールと、を含み、
前記類似する警告の関心度(EOI)は、同じ順番で現れる同じオペレーターを有し、
前記類似する警告の前記EOIにおける変数は、前記アプリケーションコードにおける同じ修正ポイントからの変数を得、
前記1または2以上のグループのそれぞれは、前記類似する警告を含み、
前記解析と、前記特定と、前記形成とは、メモリーに保存された、プログラム化した命令を使用するプロセッサによって実行されることを特徴とするアプリケーションコードの静的解析中に発生した警告をグループ化するシステム。 - 特定のグループにおける前記類似する警告のうちの一つの警告のレビューは、前記一つの警告以外の前記特定のグループにおける前記類似する警告の前記レビューを保証する請求項11に記載のアプリケーションコードの静的解析中に発生した警告をグループ化するシステム。
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 true JP2014170530A (ja) | 2014-09-18 |
JP5901668B2 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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016071895A (ja) * | 2014-09-29 | 2016-05-09 | タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited | クラスタ化されたコード解析警告のレビューのための方法およびシステム |
JP2018026135A (ja) * | 2016-08-11 | 2018-02-15 | タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited | 静的解析警告の効率的な運用のための原因ポイント解析のためのシステム及び方法 |
WO2018123065A1 (ja) | 2016-12-29 | 2018-07-05 | 三菱電機株式会社 | プログラム解析システム、プログラム解析装置、プログラム解析方法および解析プログラム |
US10318258B2 (en) | 2016-09-15 | 2019-06-11 | Fujitsu Limited | Reference information output method and reference information output device |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8707111B2 (en) * | 2011-02-09 | 2014-04-22 | Ebay Inc. | High-volume distributed script error handling |
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 | 西安电子科技大学 | 一种基于插值的模型检测路径缩减方法、计算机 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001142688A (ja) * | 1999-11-16 | 2001-05-25 | Fujitsu Ltd | プログラム分析装置及び記録媒体 |
JP2007280419A (ja) * | 1998-11-27 | 2007-10-25 | Matsushita Electric Ind Co Ltd | プロセッサ、コンパイル装置及びコンパイルプログラムを記録している記録媒体 |
JP2010067103A (ja) * | 2008-09-12 | 2010-03-25 | Nec Corp | プログラムのエラー情報出力装置、エラー情報出力方法およびエラー情報出力プログラム |
JP2011096082A (ja) * | 2009-10-30 | 2011-05-12 | Hitachi Ltd | プログラム解析方法、プログラム解析プログラムおよびプログラム解析装置 |
JP2012248050A (ja) * | 2011-05-30 | 2012-12-13 | Nec Commun Syst Ltd | 静的解析支援装置、静的解析支援方法、及びプログラム |
Family Cites Families (12)
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 |
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 |
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 |
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 |
-
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
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007280419A (ja) * | 1998-11-27 | 2007-10-25 | Matsushita Electric Ind Co Ltd | プロセッサ、コンパイル装置及びコンパイルプログラムを記録している記録媒体 |
JP2001142688A (ja) * | 1999-11-16 | 2001-05-25 | Fujitsu Ltd | プログラム分析装置及び記録媒体 |
JP2010067103A (ja) * | 2008-09-12 | 2010-03-25 | Nec Corp | プログラムのエラー情報出力装置、エラー情報出力方法およびエラー情報出力プログラム |
JP2011096082A (ja) * | 2009-10-30 | 2011-05-12 | Hitachi Ltd | プログラム解析方法、プログラム解析プログラムおよびプログラム解析装置 |
JP2012248050A (ja) * | 2011-05-30 | 2012-12-13 | Nec Commun Syst Ltd | 静的解析支援装置、静的解析支援方法、及びプログラム |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016071895A (ja) * | 2014-09-29 | 2016-05-09 | タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited | クラスタ化されたコード解析警告のレビューのための方法およびシステム |
JP2018026135A (ja) * | 2016-08-11 | 2018-02-15 | タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited | 静的解析警告の効率的な運用のための原因ポイント解析のためのシステム及び方法 |
US10318258B2 (en) | 2016-09-15 | 2019-06-11 | Fujitsu Limited | Reference information output method and reference information output device |
WO2018123065A1 (ja) | 2016-12-29 | 2018-07-05 | 三菱電機株式会社 | プログラム解析システム、プログラム解析装置、プログラム解析方法および解析プログラム |
US11068381B2 (en) | 2016-12-29 | 2021-07-20 | Mitsubishi Electric Corporation | Program analysis device, program analysis system, program analysis method and computer readable medium |
Also Published As
Publication number | Publication date |
---|---|
JP5901668B2 (ja) | 2016-04-13 |
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 | |
US9544327B1 (en) | Prioritizing security findings in a SAST tool based on historical security analysis | |
CN110704290B (zh) | 日志分析方法及装置 | |
US20140157417A1 (en) | Methods and systems for architecture-centric threat modeling, analysis and visualization | |
JP2021528749A (ja) | 自動パケットレスネットワーク到達可能性分析 | |
US9613362B2 (en) | Monitoring a situation by comparing parallel data streams | |
US20230208882A1 (en) | Policy - aware vulnerability mapping and attack planning | |
CN106471470B (zh) | 一种模型驱动的基于亲和性的网络功能的方法和装置 | |
JP2018005896A (ja) | シミュレーションジョブを実行するためのシステム、コントローラ、方法、及びプログラム | |
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) | ランタイム実行障害のソースを識別するシステム及び方法 | |
US20230118857A1 (en) | Peer risk benchmarking using generative adversarial networks | |
CN117375879A (zh) | 一种冗余检测方法、装置、电子设备及存储介质 | |
EP3058519A2 (en) | Case-based reasoning | |
CN116680699A (zh) | 一种漏洞优先级排序系统、方法、计算机设备及存储介质 | |
US20150206075A1 (en) | Efficient Decision Making | |
TW201546629A (zh) | 語意限制技術 | |
US9619765B2 (en) | Monitoring a situation by generating an overall similarity score | |
Aditham et al. | A novel control-flow based intrusion detection technique for big data systems | |
Wang et al. | An Automatic Planning‐Based Attack Path Discovery Approach from IT to OT Networks |
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 |