JP6320475B2 - 誤検出の効率的な排除に基づく静的解析 - Google Patents

誤検出の効率的な排除に基づく静的解析 Download PDF

Info

Publication number
JP6320475B2
JP6320475B2 JP2016174414A JP2016174414A JP6320475B2 JP 6320475 B2 JP6320475 B2 JP 6320475B2 JP 2016174414 A JP2016174414 A JP 2016174414A JP 2016174414 A JP2016174414 A JP 2016174414A JP 6320475 B2 JP6320475 B2 JP 6320475B2
Authority
JP
Japan
Prior art keywords
cnv
variable
assertion
static analysis
variables
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
Application number
JP2016174414A
Other languages
English (en)
Other versions
JP2017062780A (ja
Inventor
トゥカラム ビー ムスケ
トゥカラム ビー ムスケ
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.)
Tata Consultancy Services Ltd
Original Assignee
Tata Consultancy Services 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 Tata Consultancy Services Ltd filed Critical Tata Consultancy Services Ltd
Publication of JP2017062780A publication Critical patent/JP2017062780A/ja
Application granted granted Critical
Publication of JP6320475B2 publication Critical patent/JP6320475B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

関連出願及び優先権への相互参照
本願は、2015年9月15日にインド国特許庁に提出された特許出願番号第3537/MUM/2015号の利益を主張し、当該インド国特許出願の開示内容の全ては、本明細書に組み込まれる。
本明細書に記載される本発明は、一般的に、アプリケーションコードの静的解析から生じる解析警告から誤検出の効率的な排除に関するものであり、より具体的には、静的解析警告から誤検出の静的解析ベースの効率的な排除を容易にするシステム及び方法に関するものである。
アプリケーションコードの欠陥検出のための静的解析技術は、ソフトウェアの品質及び信頼性を確保するために実際に広く用いられている。初めに、静的解析ツールを実行することにより、アプリケーションコードは、静的解析を用いて解析され、1以上の静的解析警告を生成する。ツールが、警告に対応するプログラムポイントにおける安全性について決定することができないときに、解析ツールによって、これらの警告は、生成され、ユーザに報告される。実際には、何度も、警告の大部分は、静的解析ツールによって用いられる概算によって誤って生成され、それらは、誤検出と呼ばれる。静的解析警告のマニュアルでのレビューは、静的解析ツールによって報告される静的解析警告から誤検出及び真のエラーをマニュアルで識別することにより、信頼できるソフトウェアを構成することの実際のニーズを満たすために不可避となっている。当該レビューがマニュアルで行われるため、マニュアルレビュー処理と関連付けられる高いコストが存在する。マニュアルレビューのコストは、静的解析結果の精度を向上させる、又は静的解析警告から誤検出を自動的に識別及び排除することによって、低減される。
モデル検査は、静的解析と比較して、特性識別においてより正確である。しかし、大規模なコード断片のモデル検査は、しばしば、ソフトウェアシステムのサイズ及び複雑さが増大するに従って、拡張性(スケーラビリティ)及び低いパフォーマンスの問題に直面する。これらの問題は、状態空間爆発によるモデルチェッカーによって直面される。
モデル検査及び静的解析は、アプリケーションコードにおいて警告を探索するためによく知られた技術である。これらの2つの技術は、ソフトウェアの品質及び信頼性を確保するために実際に価値があることが証明されているが、それらは、拡張性、精度及び効率のメトリクスで補完する。
補完される静的解析及びモデル検査の技術は、共に組み合わせられ、個別にそれらによって得られる結果よりも優れた結果を実現する。モデルチェッカーは、静的解析とのカスケードで用いられ、静的解析によって生成された誤検出を排除する。
増分(incremental)アプローチは、非常に大規模なコードアプリケーションでのモデルチェッカーの非拡張性の問題を解決するために用いられる。このアプローチは、最小コードコンテクストで開始し、その後、必要な場合にコンテクストを増加し、実際に有益となるものが探索される。このアプローチでは、アサーションのモデル検査は、コンテクストの外側から値を受け付ける変数が任意の値を取るようにモデル化されるスモール呼び出し(コーリング)コンテクストで開始する。コンテクストの外側からのこのような値を取る変数は、入力変数と呼ばれる。入力変数は、非決定的選択関数を通じて任意の値を生成することにより、初期化される。呼び出しコンテクストは、呼び出しチェインにおいてより高い場所への呼び出し元を含むために、必要な基準に拡張されてもよい。この呼び出しコンテクストが、出来る限り小さい呼び出しコンテクストを保持することによって拡張性を補助しているが、モデル検査を用いてアサーションを処理するために必要な時間を増加する同一のアサーションにためのモデルチェッカーへの複数の呼び出しを必要とする。呼び出しコンテクストの増分爆発(incremental expansion)は、より小さいコンテクストでのモデル検査が反例を探索するときに要求される。生成される反例は、対応する入力変数への任意の値を生成するために、プログラムコードにおけるステートメントにより変数に割り当てられた値ではなく、コンテクストの外側に導入される非決定的選択関数である。すなわち、アサーションにおいて含まれる変数が、非決定的選択関数によって生成される、アサーションのポイントにおいて、任意の値を取ることが可能であるとき、アサーションは、値の一部又は値の他の組み合わせにより妨害される。このような場合には、モデルチェッカーを用いることは、対応する警告の解決での補助にはならず、アサーション検証は冗長である。
よって、本システム及び方法は、属性識別時に生成される静的解析警告から1以上の誤検出の静的解析ベースの効率的な排除を記述する。
以下は、実施形態の基本的な理解を提供するために、本開示の一部の実施形態の簡素化した概要を示す。この概要は、実施形態の広範な要約ではない。実施形態のキーとなる/クリティカルな要素を識別すること、又は実施形態の範囲を詳述することを意図するものではない。その唯一の目的は、以下に示されるより詳細な説明への序として簡素化した形態で一部の実施形態を示すためのものである。
前記の記載を考慮して、本明細書の実施形態は、誤検出の効率的な排除のためのモデルチェッカーへの冗長性検証呼び出しを識別するためのシステム及び方法を提供し、それにより、誤検出のモデル検査ベースの排除時のパフォーマンスを向上する。
一態様では、誤検出の効率的な排除のための方法を提供する。前記方法は、静的アナライザーモジュールを用いて静的解析警告を生成するために、前記アプリケーションコードで静的解析を行う。前記方法は、更に、アノテータモジュールを用いて静的解析警告のそれぞれに対応するアサーションを生成する。前記方法は、更に、cnv変数識別モジュールを用いて静的解析により1以上の全種類非決定的値(complete−range non−deterministic value(cnv))変数のセットを演算する。前記方法は、更に、cnv変数チェッカーモジュールを用いて、1以上のアサーション変数が、アサーションプログラムポイントにおけるcnv変数であるかどうかをチェックする。更に、冗長性呼び出し識別モジュールを用いて、静的解析警告のそれぞれに対応する各生成されたアサーションに対する検証呼び出しが、冗長又は非冗長であるかどうかを判定する。また、次のステップでは、前記方法は、誤検出を効率的に排除させるために、冗長性検証呼び出しをスキップする。最終的に、最後のステップでは、誤検出の効率的な排除及びモデルチェッカの呼び出しを生じるために冗長性検証呼び出しを識別して、非冗長性アサーション検証呼び出しを識別し、アサーション検証モジュールを用いて検証の結果に応じて誤検出としての対応する静的解析警告を排除する。
別の態様では、アプリケーションコードの静的解析において誤検出の効率的な排除のためのシステムを提供する。前記システムは、プロセッサと、前記プロセッサと通信可能に結合され、前記プロセッサによって読み取り可能な命令を含むメモリと、複数の静的解析警告を生成するために、アプリケーションコードを解析するように構成される静的アナライザーモジュールと、前記複数の静的解析警告のそれぞれに対応するアサーションを生成するように構成されるアノテータモジュールと、静的解析技術を用いて前記アプリケーションコードの各アサーションに対応する1以上のcnv変数のセットを演算するように構成される全種類非決定的値(complete−range non−deterministic value(cnv))変数識別モジュールと、生成された前記アサーションに対する変数が、アサーションプログラムポイントでのcnv変数であるか否かをチェックするように構成されるcnv変数チェッカーモジュールと、前記複数の静的解析警告のそれぞれに対応する、生成された各アサーションに対する1以上の検証呼び出しが、冗長である又は非冗長であるかどうかを識別する冗長性呼び出し識別モジュールであって、前記システムは、誤検出を効率的に排除するために、1以上の判定された冗長性検証呼び出しをスキップする、冗長性呼び出し識別モジュールと、1以上の非冗長性検証呼び出しを識別するためにモデルチェッカーを呼び出し、検証の結果に応じて、誤検出として、対応する静的解析警告を排除するアサーション識別モジュールと、を備える。
別の態様では、本開示は、また、データフロー解析を通じて全種類非決定的変数(以下cnv変数という)の演算についても提供する。データフロー解析は、制御フローパスによる実行パスの静的近似に基づく。cnv変数は、各種方法で演算され、異なる解析を用いて演算されうることが理解されるであろう。
本明細書に記載のブロック図は、本発明の原理を具現化する例示的なシステムの概念的な見方を示すことが当業者によって理解されるべきである。同様に、フローチャート、フロー図、状態遷移図、擬似コード等は、このようなコンピュータ装置又はプロセッサかどうかが明示的に示された、コンピュータ可読媒体で実質的に表され、コンピュータ装置又はプロセッサによってそのように実行される各種プロセスを示す。
本明細書の実施形態は、図面を参照しながら以下の詳細な説明からより良く理解されるであろう。
図1は、本開示の実施形態に係るアプリケーションコードの静的解析時に生成される静的解析警告からの誤検出の効率的な排除のためのシステムを示すブロック図である。 図2は、本開示の実施形態に係るアプリケーションコードの静的解析の誤検出の効率的な排除のための方法を示すブロック図である。
本開示の全ての特徴を示す本発明の一部の実施形態を詳細に説明する。
文言「構成される」、「有する」、「含む」、「備える」及びそれらの他の形式は、同等な意味であり、これら文言は、これらの文言のいずれか1つに続く事項または複数の事項のオープンなリストを意味するが、そのような事項に限定されるような排他的でクローズドなリストを意味するものではなく、また、列挙された事項のみに限定されることを意味するものではない。
また、本明細書及び添付の特許請求の範囲において用いられる、単数形“a”、“an”、“the”は、文脈が明確に示していなければ、複数形も含むことを留意されなければならない。本明細書で説明されるシステム及び方法と同様又は同等な任意のシステム及び方法は、本開示の実施形態の実施又は試験に使用することができるが、好ましい、システム及び方法が説明される。説明及び理解の目的のための以下の説明では、本開示の範囲を限定しないことを意図する多数の実施形態を参照する。
本開示の1以上のコンポーネントは、明細書の理解のためにモジュールとして説明される。例えば、モジュールは、ロジックゲート、半導体デバイス、集積回路又は他のディスクリート構成要素を含むハードウェア回路において内蔵型の構成要素を含んでもよい。モジュールは、また、例示のプロセッサのためのハードウェアエンティティにより実行されるソフトウェアプログラムの一部であってもよい。ソフトウェアプログラムとしてのモジュールの実装は、プロセッサ又は他のハードウェアエンティティにより実行されるべきロジカルな命令のセットを含んでもよい。
開示される実施形態は、本開示の単なる例示であり、様々な形態で具体化されてもよい。
図面に示される要素は、以下により詳細に説明されるように相互運用する。しかし、詳細な説明を示す前に、以下の全ての説明は、記載される特定の実施にかかわらず、限定的ではなく、事実上、例示的であることが留意される。例えば、実施の、選択された態様、特徴又は構成要素は、メモリに記憶されるように示されるが、消耗警告システム及び方法と一致するシステム及び方法の全部又は一部は、他の機械可読媒体に亘って分散されて記憶される、又は他の機械可読媒体から読み出されてもよい。
本開示の方法のステップは、入力で動作し、出力を生成することにより、本開示の機能を実行するために、コンピュータ可読媒体上で明らかに具体化されたプログラムを実行する1以上のコンピュータプロセッサによって行われてもよい。適切なプロセッサは、実施例により、汎用又は特殊用途のマイクロプロセッサの両方を含む。一般的に、プロセッサは、(例えば、リードオンリーメモリ及び/又はランダムアクセスメモリのような)メモリから命令及びデータを受信し(読み出し)、メモリに命令及びデータを書き込む(記憶する)。コンピュータプログラム命令及びデータを明らかに具体化するために適したストレージデバイスは、例えば、EPROM、EEPROM及びフラッシュメモリデバイスを含む、半導体メモリデバイスのような不揮発性メモリ、内蔵ハードディスク及びリムーバブルディスクのような磁気ディスク、及びCD−ROMの全ての形態を含む。前述のいずれかは、特別に設計されたASIC(application−specific integrated circuits)又はFPGAs(Field−Programmable Gate Arrays)によって補われる又は組み込まれてもよい。コンピュータは、一般的に、内蔵ディスク(図示せず)又はリムーバブルディスクのような非一時的コンピュータ可読媒体からプログラム及びデータを受信する(読み出す)、及び非一時的コンピュータ可読媒体にプログラム及びデータを書き込む(記憶する)こともできる。
前述のことを考慮して、本明細書の実施形態は、誤検出の効率的な排除のための冗長性検証呼び出しを識別するためのシステム及び方法を提供し、これにより、誤検出のモデル検査ベースの排除時の性能を向上させる。一態様では、本開示は、制御フローパス(データフロー解析)による実行パスの静的近似を通じてcnv変数の演算のためにも提供する。
用語集−説明付きの、実施形態で用いられる用語
本明細書で説明された開示は、当業者に本開示を理解させるためのいくつかの用語及び概念を定義する。
a)アサーション変数(Assertion Variables):アサーションは、演算式で生じる変数の値での制約を記述するブール演算式(boolean expression)である。アサーションで生じる変数は、アサーション変数と呼ばれる。
b)入力変数:プロシージャ(procedure)での演算は、呼び出しコンテクストからの値を取るグローバル変数及び仮引数に依存しうる。このような変数は、プロシージャの入力変数と呼ばれる。入力変数は、プロシージャ特有であり、それらは、可変変数である。これらの変数は、プロシージャトランジティブリ(procedure transitively)によって呼び出される(渡される)関数におけるパスを含むプロシージャにおけるパスのいずれかに書き込まれる前に、読み出される。
c)非決定的選択関数(Non−deterministic Choice Functions):誤検出のモデル検査ベース排除時に、アサーションは、アサーションがプロシージャ又はそのトランジティブリコールド(transitively called)関数のうちの1つのいずれかのステートメントに現れるプロシージャのコンテクストにおいて識別される。アサーション検証の拡張性のため、プロシージャは、呼び出し階層(call hierarchy)でのアサーションにできるだけ近くなるように選択されてもよく、プロシージャの呼び出し元は無視される。しかし、プロシージャの入力変数へのコード割り当て値が無視されるため、これは、不正確さのコストを強いられ、アサーションは、入力の任意の値に対して識別されるべきである。任意の値は、非決定的選択関数を用いることにより、入力変数に割り当てられる。これらの関数によって生成される非決定的な値の範囲は、それらのリターンタイプによって決定される。
d)全範囲非決定的値変数(Complete−range Non−deterministic Value Variables):非決定的選択関数によってプロシージャの入力変数に割り当てられる値は、データ依存性の結果としてプロシージャにおける他の変数に割り当てられてもよい。これらの値は、制御又はデータ依存性を通じても制約されてもよい。非決定論的値の全範囲を取る変数は、全範囲非決定的値変数(cnv変数)として分類され、プログラムステートメントにより割り当てられる固定値である他の変数のセットは、非cnv変数として分類される(これらは、部分的な範囲のみを取る又は非決定的値の範囲にない)。
e)全範囲非決定的値式(Complete−Range Non−deterministic Value Expressions):ステートメントで生じる式は、同一ポイントでの、同一コンテクストにおけるcnv変数を用いる評価が、式の値の全範囲で生じる場合、プロシージャの呼び出しコンテクストにおいてcnv式と呼ばれる。
本開示は、冗長性呼び出しを識別する及び排除することにより、アサーションにためのモデルチェッカー呼び出しの数を最小化することを本明細書で開示する。変数がアサーションのポイントでの全ての取り得る値を許可されない非冗長性呼び出しは、モデルチェッカーによって識別される。本開示では、cnv変数の演算に影響を与える要因は、以下のようになる。
a)コンテクスト感度(Context Sensitivity):非決定的選択関数を含む割り当ては、アサーションの検証時/検証のための考慮下で呼び出しコンテクストを開始するプロシージャのスタートでの任意の値を入力変数に割り当てるために行われてもよい。プロシージャに対するこれらの関数に基づいて、変数は、プロシージャでのプログラムポイントにおいてcnv変数かどうかを識別される。異なるプロシージャは、それらに対する異なる入力変数を有してもよい。したがって、プログラムポイントにおける変数は、特定の呼び出しコンテクスト(プロシージャ)に対するcnv変数であるが、他の呼び出しコンテクスト(プロシージャ)ではない。
b)フロー感度(Flow Sensitivity):変数により取られる非決定的値の範囲は、プログラムポイント特有であり、異なるプログラムポイントで異なってもよい。フロー感度は、以下の2つの依存により、変数のcnv状態(変数がcnv変数であるか非cnv変数であるか)に影響を与える:
i)データ依存(Data Dependence):プログラムポイントでのcnv変数は、非cnv変数の値に影響を与え、その状態に変換する又はその逆であってもよい。
ii)制御依存(Control Dependence):cnv変数を含む条件は、分岐のそれらの真又は偽に沿って変数の値を制限し、よって、条件の効果の内側で非cnv変数としてcnv変数をなす。しかし、条件の効果の外側で、非cnv変数は、その状態を取り戻し、cnv変数がちょうど条件の前である場合に、cnv変数になる。
c)May/Must到達可能性(May/Must Reachability):プログラムポイントでの変数のcnv状態は、変数がcnvであることに沿うパスに依存する。変数が、プログラムポイントに到達するパス毎に沿うcnv変数であるとき、変数は、当該ポイントにおいてmust−cnv変数であるといえる。変数が一部に沿うが、必ずしもプログラムポイントに到達する全てのパスを通じる必要はないcnv変数である場合、may−cnv変数と呼ばれる。
モデル検査技術は、特性検証において正確であるが、拡張性が欠如しており、大規模かつ複雑なアプリケーションコードでのその広範な使用に損害を及ぼす。静的解析は、大規模かつ複雑なアプリケーションコードでのプログラミングエラーを探索可能である。しかし、静的解析の精度の欠如により、当該技術は、実際には、その多くが誤検出である多数の警告を生じる。静的解析及びモデル検査により直面されるこれらの問題を解決するために、それらは、交互に組み合わせられる(カスケード)。カスケードアプローチでは、アサーションは、静的解析により報告される各警告に対応して生成され、アサーションは、起こりうるエラー又は誤検出のいずれかとして警告を分類するために、モデルチェッカーを用いて識別される。アサーションがモデルチェッカーによって識別される場合、識別されるアサーションに対応する警告は、誤検出であり、排除される(ユーザへ最終的な報告から除去される)。モデルチェッカーによるアサーションの識別が、反例(counter example)を生成するとき、警告は、維持し、排除されない。しかし、このアプローチは、性能が乏しいという問題を有する。
本明細書で提案される開示は、モデル検査の非拡張性で処理しつつ、誤検出の効率的な排除のためのシステム及び方法である。
本開示の例示的な実施形態に係る、アプリケーションコードの静的解析における誤検出のモデル検査ベースの効率的な排除のためのシステム(100)は、図1に示される。システム(100)は、プロセッサ(102)及びプロセッサ(102)と接続したメモリ(104)を含む。メモリ(102)は、静的アナライザモジュール(106)、アノテータモジュール(108)、cnv変数識別モジュール(110)、cnvチェッカーモジュール(112)、冗長性呼び出し識別モジュール(114)及びアサーション検証モジュール(116)のような複数のモジュールを更に備える。
好ましい実施形態では、静的アナライザモジュール(106)は、複数の静的解析警告を生成するために、アプリケーションコードを解析するように構成される。これらの静的解析警告の多くは、誤って報告され、一般に、誤検出と呼ばれる。これらの誤検出は、静的解析の不正確さによるものである。
好ましい実施形態では、アノテータモジュール(108)は、アサーションを生成し、各生成されたアサーションは、複数の静的解析警告からの各静的解析警告に対応する。
好ましい実施形態では、cnv変数識別モジュール(110)は、データフロー解析を用いて、cnv変数の1以上のセットを演算するように構成される。cnv変数の演算は、静的解析技術を通じたものであり、静的解析技術は、データフロー解析、アブストラクトインタープリテーション(abstract interpretation)、制御フロー等でありうることが理解される。本開示では、cnv変数の演算は、データフロー解析でのみ説明されている。冗長性としての検証呼び出しの識別でのcnv変数のセットの影響は、cnv変数の演算における変動の依存とは異なっていてもよい。演算において用いられる近似のため、cnv変数の演算において変動が生じる。
更に、cnv変数識別モジュール(110)は、データフロー解析を通じてcnv変数を識別してもよい。データフロー解析は、制御フローパスによる実行パスの静的近似に基づく。2種類の近似が存在し、(a)制御フローパスによる実行パスの過大近似(over−approximation)、及び(b)プログラムポイントでのセットの過大近似又は過小近似(under−approximation)である。cnv変数識別モジュール(110)は、異なる2種類のcnv変数:a) may−cnv変数、及びb) must−cnv変数を演算する。may−cnv変数解析は、cnv変数のセットを過大近似する一方で、must−cnv変数解析は、cnv変数のセットを過小近似する。真のcnv変数の過大近似は、データフロー解析を用いて演算され、ここで、過大近似は、cnv変数として一部の非cnv変数の演算及び報告を含んでもよい。過大近似アプローチにより、解析は、より冗長であるが、低い精度の検証呼び出しを識別してもよい。過小近似アプローチにより、解析は、わずかに冗長だが、精度が向上した検証呼び出しを識別する。なぜなら、セットに含まれる各変数が、よりcnv変数になりやすいが、一部の偽物でないcnv変数を見落としてしまうためである。よって、プログラムポイントでの変数のcnv状態は、変数がcnv変数であることに沿うパスに依存する。変数が、プログラムポイントに到達するパス毎に沿うcnv変数であるとき、変数は、当該ポイントでのmust−cnv変数といわれる。変数が、一部のパスに沿うが、プログラムポイントに到達する全てのパスには沿わない場合、変数は、may−cnv変数である。
好ましい実施形態では、cnvチェッカーモジュール(112)は、アサーションでの1以上の変数がcnv変数であるかどうかをチェックする。
好ましい実施形態では、冗長性呼び出し識別モジュール(114)は、モデルチェッカーへの1以上のアサーション検証呼び出しが、cnv変数チェッカーモジュール(112)により得られる結果に基づいて、冗長又は非冗長であるかを識別する。cnv変数は、全ての冗長性検証呼び出しを正確に識別しないが、アサーション検証呼び出しを識別するための効率的なアプローチを提供する。
好ましい実施形態では、アサーション検証モジュール(116)は、冗長性呼び出し識別モジュール(114)が、非冗長性として一部のアサーション検証呼び出しを識別するとき、複数のアサーションからアサーションを識別するためにモデルチェッカーを呼び出すように構成される。検証の結果に基づいて、識別されたアサーションに対応する警告は、エラー又は誤検出であると決定される。モデルチェッカーは、エントリー関数、及びアサーションとして表される、識別される特性を取る。特定されたエントリー関数は、アサーションが識別されるべき検証コードコンテクストを示す。アサーションが、全ての実行パスに対して保持する場合、モデルチェッカーは、検証成功を報告する(すなわち、アサーションは、与えられたコードコンテクストで保持する)。このような場合には、検証成功が、静的解析警告に対応するアサーションの検証に対して報告されるとき、警告は、誤検出であり、排除される。アサーションが、実行パスのいずれかに対して保持しない場合、モデルチェッカーは、特性違反に至るエラートレースを生じる又は特性の違反を単に報告し、対応する警告は維持する、すなわち、排除されない。
以下の表1に示されるように、本開示の実施形態に係る実施例を参照し、ここで、静的解析を用いるアプリケーションの検証は、ライン39において、ゼロ除算警告を報告する。この警告は、静的アナライザにより誤って報告され、誤検出である。変数denomがゼロになりうる唯一の方法は、ライン34において、変数pがゼロである場合である。これは、ライン23において、ゼロとなる関数f3への呼び出しの実引数varを要求し、これは、変数factorの値に依存する(ライン22)。i<jを満たす指標変数の組み合わせに対するアレイarrの初期化を与えると、ライン12におけるアサイメントのRHSは、ゼロにはならず、factorの実現性を除外し、denomはゼロとなる。
実施例の警告を扱うためには、アサーションは、警告ポイントに加えられる。ライン39におけるゼロ除算警告に対応する、アサーションは、ライン38に加えられる。実施例の簡潔な説明のために、Aは、ラインnでのアサーションを示すために用いられ、プロシージャfで開始する呼び出しコンテクストでのその検証は、V(A,f)と示される。与えられた表1では、モデルチェッカーへの第1の呼び出しは、f3(p and ch)のコンテクストの外側からの値を受け付ける変数に割り当てられた非決定的値を有するV(A38,f3)である。これらの値は、f3のスタートに割り当てられ、以下に示される。
モデルチェッカーは、0としてpの値を選択することにより検証呼び出しV(A38,f3)に対する反例を自明に探索する。反例が生成されるため、警告は、誤検出としてマークされることができず、よって、検証コードコンテクストは、関数f3の呼び出し元(関数f2)に拡張される必要がある。第2の検証呼び出しでは、V(A38,f2)は、f2(var,ch,and factor:上記の図に示される)のコンテクストの外側からの値を受け付ける変数に割り当てられた非決定的値で呼び出しコンテクストを拡張する。モデルチェッカーは、再度、var及び0となるべき係数を選択することにより、反例を報告する。同様に、反例生成で、コンテクストは、関数f1に拡張される。第3の呼び出しでは、V(A38,f1)は、f1(ch)のコンテクストの外側からの値を受け付ける変数に非決定的値を割り当てる。ここで、値i及びjにかかわらず、モデルチェッカーは、係数に対する値0を探索することができず、アサーションA38が常に保持することを宣言する。よって、検証呼び出しV(A38,f1)は、誤検出となるライン39での警告を排除する。
表1から、モデルチェッカーは、同一のアサーションに対して複数回呼び出され、第1及び第2の呼び出しは、誤検出の排除には寄与しない。これらの呼び出しは、反例を生成する。なぜなら、非決定的選択関数により割り当てられた値は、制約されないアサーションポイントに到達するためである。故に、これらの呼び出しは、実証可能な方法で冗長となってもよい。
プログラムポイントでの変数vのcnv状態は、vがcnvであることに沿うパスに依存する。変数vが、プログラムポイントに到達する各パスに沿うcnvであるとき、変数vは、当該ポイントでのmust−cnv変数と呼ばれる。cnvが、プログラムポイントに到達する一部のパスに沿うが、全てのパスに沿わない場合、may−cnv変数となる。
intra−procedura1設定に容易に引き上げられるintra−procedura1設定でのcnv変数の識別のためのデータフロー解析を参照する。データフロー解析では、Nは、解析されるプログラムの制御フローグラフにおけるノードのセットとし、Vは、プログラム変数のセットとする。ノードn∈Nで、変数v∈Vのcnv状態のシェードとしてS={CNV,nCNV,nCNV,nCNV}を定義する。
i)CNV:vはcnv変数である。
ii)nCNV:vは、非cnv変数又は式へのデータ依存によりcnv変数ではない。
iii)nCNV:vは、制御依存によりcnv変数である(その値が、条件のtrueの分岐から到達可能なパスに沿って制約されるとき)。
iv)nCNV:vは、制御依存によりcnv変数である(その値が、条件のfalseの分岐から到達可能なパスに沿って制約されるとき)。
データフロー解析を用いてmay−cnv及びmust−cnv変数を演算するための束を以下に示す。前述のものは、本開示の例示的な実施形態にのみ関連するものであり、本開示の趣旨及び範囲から逸脱しない範囲で多数の変更がなされてもよいことが理解されるであろう。
表2に示されるように、本開示の実施形態に係る別の実施例によれば、1以上の冗長性検証呼び出し(redundant verification calls(RVCs))は、cnv変数を通じて識別されてもよい。RVCsの識別でのmay−cnv及びmust−cnv変数の影響は、異なっており、これは、2つの演算で使用される近似の性質のためである。may−cnv解析は、cnv変数のセットを過大近似する一方で、must−cnvは、cnv変数のセットを過小近似する。過大近似により、may−cnv変数は、よりRVCsを識別するが、精度が低くなる。過小近似により、must−cnv変数は、あまりRVCsを識別しないが、精度が増加する。なぜなら、セットに含まれる各変数は、よりcnv変数となりやすいが、一部の偽物でないcnv変数を見落としてしまうためである。
cnv変数のセットのインパクトを解析するための実施例である表2を参照すると、RVCsでのmay−cnv及びmust−cnv変数は、2つの演算で使用される近似のために、異なっている。must−cnv変数解析は、ライン12において、cnv変数となる変数vを発見し、RVCとしてV(A12,foo)を発見する一方で、vは、ライン12で値1を有するように保証される。ライン11での条件がvを含まないため、vは、制約されない。実際上、ライン12で実行されるがライン5で実行されない実行パスを考慮する。明確には、ライン12を通過する各パスは、ライン5も通過する必要があるため、このような実行パスはない。データフロー解析を用いて演算されるcnv変数のセットが真のcnv変数の過大近似であるため、非cnv変数を含めることは、cnv変数として報告される。このような誤った報告により、このような演算されたcnv変数の使用は、最終的には、誤検出を排除するために実際に要求される1以上のモデル検査呼び出しを排除する。
アプリケーションコードの静的解析時に生成される1以上の誤検出のモデルチェッカーベースの効率的な排除を促進するための方法(200)を示す図2を参照する。
好ましい実施形態では、ステップ202において、アプリケーションコードは、静的アナライザーモジュール(106)により解析される。更に、解析に基づいて、警告が静的アナライザーモジュール(106)によって生成される。
好ましい実施形態では、ステップ204において、アノテータモジュール(108)は、静的アナライザーモジュール(106)により生成される各警告に対応するアサーションを生成するために用いられる。
好ましい実施形態では、ステップ206において、cnv変数識別モジュール(110)は、アノテータモジュール(108)により生成されるアサーションの全てのプログラムポイントでのcnv変数のセットを識別する。
好ましい実施形態では、ステップ208において、cnv変数チェッカーモジュール(112)は、アサーション変数がcnv変数かどうかをチェックする。次のステップ210において、アサーション変数がcnv変数である場合には、冗長性呼び出し識別モジュール(114)は、冗長性として対応するアサーションを識別するために、モデル検査呼び出しを識別するように構成される。
好ましい実施形態では、ステップ(212)において、アサーション変数がcnv変数ではないときには、アサーション識別モジュール(116)は、複数のアサーションからアサーションを識別するためにモデルチェッカーを呼び出す。検証結果に基づいて、識別されたアサーションに対応する警告は、エラー又は誤検出として決定される。
ステップ208の条件が、cnv変数チェッカーモジュール(112)によってマッチされない、つまり、最後のステップ(212)において、アサーション変数がcnv変数ではない場合、アサーション識別モジュール(116)は、複数のアサーションからアサーションを識別するためにモデルチェッカーを呼び出す。検証結果に基づいて、識別されたアサーションに対応する警告は、エラー又は誤検出として決定される。
本明細書での本開示の実施形態は、検証呼び出しが、より反例を生成しやすいときに、アプリケーションコードの静的解析警告に対応する同一のアサーションについてモデルチェッカーを一又は複数回呼び出すという未解決の問題を解決する。よって、実施形態は、アプリケーションコードの静的解析時に生成される誤検出のモデル検査/モデルチェッカーベースの効率的な排除を促進するためのシステム及び方法を提供する。上記を考慮すると、本開示は、静的解析により生成される複数の誤検出から1以上の誤検出の効率的な排除に至ることが理解されるであろう。更に、上記は、本開示の例示的な実施形態のみに関するものであり、本開示の趣旨及び範囲から逸脱せずに多数の変更がなされてもよいことが理解されるべきである。

Claims (11)

  1. アプリケーションコードの静的解析で生成される誤検出の効率的な排除のための方法であって、
    静的アナライザーモジュールを用いて複数の静的解析警告を生成するために、前記アプリケーションコードで静的解析を行うステップと、
    アノテータモジュールを用いて前記複数の静的解析警告のそれぞれに対応するアサーションを生成するステップと、
    cnv変数識別モジュールを用いて静的解析により1以上の全種類非決定的値(complete−range non−deterministic value(cnv))変数のセットを演算するステップであって、前記cnv変数は、非決定論的選択関数によって生成された非決定論的値の全範囲を取る変数である、ステップと、
    cnv変数チェッカーモジュールを用いて、生成された前記アサーションに関する1以上の変数が、アサーションプログラムポイントのそれぞれにおいてcnv変数であるかチェックするステップと、
    冗長性呼び出し識別モジュールを用いて、生成された前記アサーション内の1つ以上のcnv変数の存在に基づいて、前記複数の静的解析警告のそれぞれに対応する各生成されたアサーションに対する1以上の検証呼び出しが冗長であるか判定するステップと、
    誤検出を効率的に排除させるために、1以上の判定された冗長性検証呼び出しをスキップするステップと、
    アサーション検証モジュールを用いることにより、1以上の非冗長性検証呼び出しを検証するためにモデルチェッカーを呼び出すステップと、
    検証の結果に応じて、誤検出として、対応する静的解析警告を、前記アサーション検証モジュールによって排除するステップと、
    を備える方法。
  2. プログラムポイントでの変数のcnv状態は、変数の値を割り当てる又は制限し、前記プログラムポイントに到達するパスに依存し、前記変数の前記cnv状態は、前記変数がcnv変数であるか、非cnv変数であるかを示す請求項1に記載の方法。
  3. 前記cnv状態の演算は、少なくとも1つの静的解析技術を用いて、制御依存及びデータ依存の効果を考慮すること、及び少なくとも1つの近似を用いてそれらを演算することを含む請求項に記載の方法。
  4. 前記静的解析技術は、データフロー解析、アブストラクト‐インタープリテーション及び制御フローグラフトラバーサルを含む請求項3に記載の方法。
  5. 前記変数が、プログラムポイントに到達する全てのパスに沿ってcnv変数であるとき、変数は、当該プログラムポイントでのmust‐cnv変数といわれる、請求項1に記載の方法。
  6. 前記変数が、プログラムポイントに到達する一部のパスに沿ってcnv変数であるが、必ずしも前記プログラムポイントに到達する全てのパスに沿ってcnv変数であるというわけではないとき、変数は、当該プログラムポイントでのmay−cnv変数といわれる、請求項1に記載の方法。
  7. 演算で用いられる近似の性質のため、冗長性検証呼び出しの識別でのmay−cnv変数の影響は、冗長性検証呼び出しの識別でのmust‐cnv変数の影響と異なる、請求項1に記載の方法。
  8. 冗長性検証呼び出しの識別は、前記アサーションプログラムポイントでのcnv変数となるべき単一又は全てのアサーション変数の分類を用いる請求項1に記載の方法。
  9. アサーションコードの静的解析での誤検出の効率的な排除のためのシステムであって、 プロセッサと、
    前記プロセッサと通信可能に結合され、前記プロセッサによって読み取り可能な命令を含むメモリと、
    複数の静的解析警告を生成するために、アプリケーションコードを解析するように構成される静的アナライザーモジュールと、
    前記複数の静的解析警告のそれぞれに対応するアサーションを生成するように構成されるアノテータモジュールと、
    静的解析技術を用いて前記アプリケーションコードの各アサーションに対応する1以上のcnv変数のセットを演算するように構成され、前記cnv変数は、非決定論的選択関数によって生成された非決定論的値の全範囲を取る変数である、全種類非決定的値(complete−range non−deterministic value(cnv))変数識別モジュールと、
    生成された前記アサーションに関する変数が、アサーションプログラムポイントのそれぞれにおいてcnv変数であるかチェックするように構成されるcnv変数チェッカーモジュールと、
    生成された前記アサーション内の1つ以上のcnv変数の存在に基づいて、前記複数の静的解析警告のそれぞれに対応する、各生成されたアサーションに対する1以上の検証呼び出しが冗長であるか識別するように構成される冗長性呼び出し識別モジュールであって、前記システムは、誤検出を効率的に排除するために、1以上の判定された冗長性検証呼び出しをスキップする、冗長性呼び出し識別モジュールと、
    1以上の非冗長性検証呼び出しを検証するためにモデルチェッカーを呼び出し、検証の結果に応じて、誤検出として、対応する静的解析警告を排除するように構成されるアサーション検証モジュールと、
    を備えるシステム。
  10. 前記アサーション検証モジュールは、コンテクスト拡張又はインクリメンタル検証アプローチが用いられるかどうかに応じて、一回以上アサーションを識別する請求項9に記載のシステム。
  11. アプリケーションコードの静的解析における誤検出の効率的な排除のための命令を記憶するコンピュータ可読媒体であって、前記命令は、
    静的アナライザーモジュールを用いて複数の静的解析警告を生成するために、前記アプリケーションコードで静的解析を行うステップと、
    アノテータモジュールを用いて前記複数の静的解析警告のそれぞれに対応するアサーションを生成するステップと、
    cnv変数識別モジュールを用いて静的解析により1以上の全種類非決定的値(complete−range non−deterministic value(cnv))変数のセットを演算するステップであって、前記cnv変数は、非決定論的選択関数によって生成された非決定論的値の全範囲を取る変数である、ステップと、
    cnv変数チェッカーモジュールを用いて、生成された前記アサーションに関する1以上の変数が、アサーションプログラムポイントのそれぞれにおいてcnv変数であるかチェックするステップと、
    冗長性呼び出し識別モジュールを用いて、生成された前記アサーション内の1つ以上のcnv変数の存在に基づいて、前記複数の静的解析警告のそれぞれに対応する各生成されたアサーションに対する1以上の検証呼び出しが冗長であるか判定するステップと、
    誤検出を効率的に排除させるために、1以上の判定された冗長性検証呼び出しをスキップするステップと、
    アサーション検証モジュールを用いることにより、1以上の非冗長性検証呼び出しを検証するためにモデルチェッカーを呼び出すステップと、
    検証の結果に応じて、誤検出として、対応する静的解析警告を、前記アサーション検証モジュールによって排除するステップと、
    を備えるコンピュータ可読媒体。
JP2016174414A 2015-09-15 2016-09-07 誤検出の効率的な排除に基づく静的解析 Active JP6320475B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN3537/MUM/2015 2015-09-15
IN3537MU2015 2015-09-15

Publications (2)

Publication Number Publication Date
JP2017062780A JP2017062780A (ja) 2017-03-30
JP6320475B2 true JP6320475B2 (ja) 2018-05-09

Family

ID=56883547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016174414A Active JP6320475B2 (ja) 2015-09-15 2016-09-07 誤検出の効率的な排除に基づく静的解析

Country Status (3)

Country Link
US (1) US10002064B2 (ja)
EP (1) EP3144816A1 (ja)
JP (1) JP6320475B2 (ja)

Families Citing this family (179)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9250894B2 (en) * 2012-09-07 2016-02-02 National Instruments Corporation Sequentially constructive model of computation
US10181051B2 (en) 2016-06-10 2019-01-15 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US10289867B2 (en) 2014-07-27 2019-05-14 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US9729583B1 (en) 2016-06-10 2017-08-08 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10068093B2 (en) * 2015-12-10 2018-09-04 Sap Se Machine-checkable code-annotations for static application security testing
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10423996B2 (en) 2016-04-01 2019-09-24 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US10706447B2 (en) 2016-04-01 2020-07-07 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US11004125B2 (en) 2016-04-01 2021-05-11 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10706176B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data-processing consent refresh, re-prompt, and recapture systems and related methods
US10873606B2 (en) 2016-06-10 2020-12-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10572686B2 (en) 2016-06-10 2020-02-25 OneTrust, LLC Consent receipt management systems and related methods
US10997315B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US10706131B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US11138299B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10796260B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Privacy management systems and methods
US10282692B2 (en) * 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10944725B2 (en) 2016-06-10 2021-03-09 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10853501B2 (en) 2016-06-10 2020-12-01 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11151233B2 (en) 2016-06-10 2021-10-19 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10430740B2 (en) 2016-06-10 2019-10-01 One Trust, LLC Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US10496846B1 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing and communications systems and methods for the efficient implementation of privacy by design
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US11100444B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US11146566B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10565236B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US10467432B2 (en) 2016-06-10 2019-11-05 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US10289870B2 (en) 2016-06-10 2019-05-14 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10839102B2 (en) 2016-06-10 2020-11-17 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US10706379B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for automatic preparation for remediation and related methods
US10509894B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10949170B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US10282700B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US10242228B2 (en) 2016-06-10 2019-03-26 OneTrust, LLC Data processing systems for measuring privacy maturity within an organization
US10803200B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US10586075B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10783256B2 (en) 2016-06-10 2020-09-22 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US10509920B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for processing data subject access requests
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10614247B2 (en) 2016-06-10 2020-04-07 OneTrust, LLC Data processing systems for automated classification of personal information from documents and related methods
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US11057356B2 (en) 2016-06-10 2021-07-06 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10510031B2 (en) * 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US10776517B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US10592692B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for central consent repository and related methods
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11087260B2 (en) 2016-06-10 2021-08-10 OneTrust, LLC Data processing systems and methods for customizing privacy training
US10776514B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for the identification and deletion of personal data in computer systems
US10607028B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10708305B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Automated data processing systems and methods for automatically processing requests for privacy-related information
US11025675B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11038925B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US10503926B2 (en) 2016-06-10 2019-12-10 OneTrust, LLC Consent receipt management systems and related methods
US10565397B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10346638B2 (en) 2016-06-10 2019-07-09 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10204154B2 (en) 2016-06-10 2019-02-12 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10416966B2 (en) 2016-06-10 2019-09-17 OneTrust, LLC Data processing systems for identity validation of data subject access requests and related methods
US10235534B2 (en) 2016-06-10 2019-03-19 OneTrust, LLC Data processing systems for prioritizing data subject access requests for fulfillment and related methods
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US11138242B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11410106B2 (en) 2016-06-10 2022-08-09 OneTrust, LLC Privacy management systems and methods
US10437412B2 (en) 2016-06-10 2019-10-08 OneTrust, LLC Consent receipt management systems and related methods
US10726158B2 (en) 2016-06-10 2020-07-28 OneTrust, LLC Consent receipt management and automated process blocking systems and related methods
US10438017B2 (en) 2016-06-10 2019-10-08 OneTrust, LLC Data processing systems for processing data subject access requests
US10642870B2 (en) 2016-06-10 2020-05-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10346637B2 (en) 2016-06-10 2019-07-09 OneTrust, LLC Data processing systems for the identification and deletion of personal data in computer systems
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10798133B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US10353673B2 (en) 2016-06-10 2019-07-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US10896394B2 (en) 2016-06-10 2021-01-19 OneTrust, LLC Privacy management systems and methods
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11023842B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10353674B2 (en) 2016-06-10 2019-07-16 OneTrust, LLC Data processing and communications systems and methods for the efficient implementation of privacy by design
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11228620B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10452864B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US10885485B2 (en) 2016-06-10 2021-01-05 OneTrust, LLC Privacy management systems and methods
US10769301B2 (en) 2016-06-10 2020-09-08 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US10181019B2 (en) 2016-06-10 2019-01-15 OneTrust, LLC Data processing systems and communications systems and methods for integrating privacy compliance systems with software development and agile tools for privacy design
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US10565161B2 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for processing data subject access requests
US10440062B2 (en) 2016-06-10 2019-10-08 OneTrust, LLC Consent receipt management systems and related methods
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10169609B1 (en) 2016-06-10 2019-01-01 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11144622B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Privacy management systems and methods
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US10706174B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for prioritizing data subject access requests for fulfillment and related methods
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10282559B2 (en) * 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10776518B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Consent receipt management systems and related methods
US10496803B2 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US10585968B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10713387B2 (en) 2016-06-10 2020-07-14 OneTrust, LLC Consent conversion optimization systems and related methods
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10452866B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10275614B2 (en) 2016-06-10 2019-04-30 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US11200341B2 (en) 2016-06-10 2021-12-14 OneTrust, LLC Consent receipt management systems and related methods
US11157600B2 (en) 2016-06-10 2021-10-26 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10454973B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US10848523B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11074367B2 (en) 2016-06-10 2021-07-27 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US10762236B2 (en) 2016-06-10 2020-09-01 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10289866B2 (en) 2016-06-10 2019-05-14 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10241892B2 (en) * 2016-12-02 2019-03-26 International Business Machines Corporation Issuance of static analysis complaints
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US11200144B1 (en) * 2017-09-05 2021-12-14 Amazon Technologies, Inc. Refinement of static analysis of program code
EP3493051A1 (en) * 2017-11-30 2019-06-05 The MathWorks, Inc. System and methods for evaluating compliance of implementation code with a software architecture specification
DE102018003142A1 (de) 2017-12-13 2019-06-13 The Mathworks, Inc. Automatische Einstellung von Multitasking-Konfigurationen für ein Codeprüfsystem
US11144675B2 (en) 2018-09-07 2021-10-12 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11474795B2 (en) * 2018-09-11 2022-10-18 Apple Inc. Static enforcement of provable assertions at compile
CN109491923B (zh) * 2018-12-14 2021-11-12 东软集团股份有限公司 新增异常代码的确定方法、装置、介质及电子设备
EP3910478B1 (en) * 2020-05-15 2023-03-01 Tata Consultancy Services Limited Method and system for classification and ranking of delta alarms
US11314632B2 (en) * 2020-05-19 2022-04-26 Tata Consultancy Services Limited Method and system for identification and elimination of false positives from delta alarms
EP4179435A1 (en) 2020-07-08 2023-05-17 OneTrust LLC Systems and methods for targeted data discovery
EP4189569A1 (en) 2020-07-28 2023-06-07 OneTrust LLC Systems and methods for automatically blocking the use of tracking tools
US11475165B2 (en) 2020-08-06 2022-10-18 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
US11436373B2 (en) 2020-09-15 2022-09-06 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US11526624B2 (en) 2020-09-21 2022-12-13 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
US11579851B2 (en) * 2020-09-22 2023-02-14 Tata Consultancy Services Limited Method and system for identification of redundant function-level slicing calls
EP4241173A1 (en) 2020-11-06 2023-09-13 OneTrust LLC Systems and methods for identifying data processing activities based on data discovery results
US11765193B2 (en) 2020-12-30 2023-09-19 International Business Machines Corporation Contextual embeddings for improving static analyzer output
WO2022159901A1 (en) 2021-01-25 2022-07-28 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
WO2022170047A1 (en) 2021-02-04 2022-08-11 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
US20240111899A1 (en) 2021-02-08 2024-04-04 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
US20240098109A1 (en) 2021-02-10 2024-03-21 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
US11775348B2 (en) 2021-02-17 2023-10-03 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
WO2022178219A1 (en) 2021-02-18 2022-08-25 OneTrust, LLC Selective redaction of media content
US11533315B2 (en) 2021-03-08 2022-12-20 OneTrust, LLC Data transfer discovery and analysis systems and related methods
CN112699057B (zh) * 2021-03-24 2021-06-18 广州弘一信息科技股份有限公司 一种软件开发过程中的预警系统
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11704226B2 (en) * 2021-09-23 2023-07-18 Intel Corporation Methods, systems, articles of manufacture and apparatus to detect code defects
US20230129536A1 (en) * 2021-10-22 2023-04-27 Tata Consultancy Services Limited Method and system for identifying static analysis alarms based on semantics of changed source code
CN114936109A (zh) * 2022-05-25 2022-08-23 南通大学 一种基于模型检测的反例故障定位方法
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US7516446B2 (en) * 2002-06-25 2009-04-07 International Business Machines Corporation Method and apparatus for efficient and precise datarace detection for multithreaded object-oriented programs
US7519952B2 (en) * 2003-07-28 2009-04-14 International Business Machines Corporation Detecting an integrity constraint violation in a database by analyzing database schema, application and mapping and inserting a check into the database and application
US8006233B2 (en) * 2007-02-21 2011-08-23 International Business Machines Corporation System and method for the automatic verification of privilege-asserting and subject-executed code
US8402439B2 (en) * 2008-06-27 2013-03-19 Microsoft Corporation Program analysis as constraint solving
JP4959640B2 (ja) * 2008-07-10 2012-06-27 富士ソフト株式会社 モデル検査支援装置及びプログラム
US8276123B1 (en) * 2008-07-22 2012-09-25 Juniper Networks, Inc. Adaptive regression test selection within testing environments
US8359578B2 (en) * 2008-10-01 2013-01-22 Nec Laboratories America, Inc. Symbolic reduction of dynamic executions of concurrent programs
US8448145B2 (en) * 2008-10-07 2013-05-21 Nec Laboratories America, Inc. Methods and systems for reducing verification conditions for concurrent programs using mutually atomic transactions
US8776027B2 (en) * 2009-03-06 2014-07-08 Microsoft Corporation Extracting and collecting platform use data
US8336034B2 (en) * 2009-04-30 2012-12-18 Nec Laboratories America, Inc. Modular bug detection with inertial refinement
US9389987B1 (en) * 2010-08-22 2016-07-12 Panaya Ltd. Method and system for identifying missing test scenarios by comparing authorized processes with available test scenarios
US8595701B2 (en) * 2011-02-04 2013-11-26 Fujitsu Limited Symbolic execution and test generation for GPU programs
US8732669B2 (en) * 2011-03-11 2014-05-20 Oracle International Corporation Efficient model checking technique for finding software defects
JP2013065258A (ja) * 2011-09-20 2013-04-11 Nec Corp 情報処理装置、情報処理方法及び情報処理プログラム
US8756587B2 (en) 2011-09-30 2014-06-17 International Business Machines Corporation Static analysis of computer software applications
US8745578B2 (en) * 2011-12-04 2014-06-03 International Business Machines Corporation Eliminating false-positive reports resulting from static analysis of computer software
CN103294594B (zh) 2013-05-08 2016-01-06 南京大学 一种基于测试的静态分析误报消除方法
US9652360B2 (en) * 2014-04-04 2017-05-16 Fujitsu Limited Crawling for extracting a model of a GUI-based application
US9619375B2 (en) * 2014-05-23 2017-04-11 Carnegie Mellon University Methods and systems for automatically testing software

Also Published As

Publication number Publication date
JP2017062780A (ja) 2017-03-30
US10002064B2 (en) 2018-06-19
EP3144816A1 (en) 2017-03-22
US20170075787A1 (en) 2017-03-16

Similar Documents

Publication Publication Date Title
JP6320475B2 (ja) 誤検出の効率的な排除に基づく静的解析
US9569345B2 (en) Architectural failure analysis
US8621441B2 (en) System and method for software immunization based on static and dynamic analysis
US7770080B2 (en) Using neighborhood functions to extract logical models of physical failures using layout based diagnosis
US8645761B2 (en) Precise fault localization
US7971193B2 (en) Methods for performining cross module context-sensitive security analysis
CN111104335B (zh) 一种基于多层次分析的c语言缺陷检测方法及装置
US10049031B2 (en) Correlation of violating change sets in regression testing of computer software
JP2008089549A (ja) 論理回路における多重故障の故障箇所推定システム、故障箇所推定方法および故障箇所推定用プログラム
EP3682324A1 (en) Method and apparatus for finding long methods in code
US8365114B2 (en) Logic modification synthesis
US20050262399A1 (en) Aggregating and prioritizing failure signatures by a parsing program
CN102508766A (zh) 一种航天嵌入式c语言软件运行时错误的静态分析方法
JP2018055676A (ja) 自動ソフトウェアプログラム修復
Wotawa Debugging VHDL designs using model-based reasoning
JP2016085152A (ja) 診断装置、診断プログラム及び診断方法
US8015523B2 (en) Method and system for sequential netlist reduction through trace-containment
US10234502B1 (en) Circuit defect diagnosis based on sink cell fault models
CN111241766B (zh) 测试方法与测试系统
Malburg et al. Tuning dynamic data flow analysis to support design understanding
US7650579B2 (en) Model correspondence method and device
US7689399B1 (en) Automatic extraction of design properties
JP2019215867A (ja) ソースコードのプロパティを検証するための方法およびシステム
JP2017041085A (ja) プログラム仕様推定装置、推定方法、および推定プログラム
TWI499787B (zh) 多重故障診斷方法和機器可讀媒體

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170822

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171121

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180403

R150 Certificate of patent or registration of utility model

Ref document number: 6320475

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