JPWO2020240830A1 - 検知装置、検知方法、及び、検知プログラム - Google Patents
検知装置、検知方法、及び、検知プログラム Download PDFInfo
- Publication number
- JPWO2020240830A1 JPWO2020240830A1 JP2021522572A JP2021522572A JPWO2020240830A1 JP WO2020240830 A1 JPWO2020240830 A1 JP WO2020240830A1 JP 2021522572 A JP2021522572 A JP 2021522572A JP 2021522572 A JP2021522572 A JP 2021522572A JP WO2020240830 A1 JPWO2020240830 A1 JP WO2020240830A1
- Authority
- JP
- Japan
- Prior art keywords
- binary
- source
- control flow
- block
- flow graph
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Abstract
Description
作業用PC(Personal Computer)等においてコンパイル等を実行することに対するクラウドにおいてコンパイル等を実行することの利点として、コンパイル時間が短縮する等、開発効率が向上することが挙げられる。
出力として得られたバイナリコードにバックドアが埋め込まれていることがあり、
バックドアを検出することは極めて困難である。
そのため、動的解析によってバックドアを探す場合、膨大な工数を要する。
特許文献1の技術によれば、2つのCFGそれぞれの内部に存在する基本ブロックについて、それらの内容、及び/又は、局所近傍に基づいてマッチングすることにより、両者に共通する基本ブロックを特定することができる。
そのため、静的解析により、バックドアである可能性が高い箇所を効率良く抽出することができないという課題があった。
バイナリコードの制御フローグラフであるバイナリ制御フローグラフと、前記バイナリコードに対応するソースコードの制御フローグラフであるソース制御フローグラフとの差分を抽出する差分抽出部と、
前記差分に基づいて前記バイナリコードに存在する異常を抽出する異常抽出部と
を備える。
以下、本実施の形態について、図面を参照しながら詳細に説明する。
本実施の形態に係る検知装置100は、コンパイル等をする際にバイナリコードに組み込まれた任意の異常を検知することができる。
しかし、以下の説明において、前記異常がバックドアに係るものである場合について説明する。従って、下記のバックドアという記述を、他の異常に関する用語に置き換えても良い。
バックドアは、サイバー攻撃の1種である。
図1は、本実施の形態に係る検知装置100の構成例である。
本図に示すように、ソース解析部120は、中間コード生成部210と、ソースCFG(Control Flow Graph、制御フローグラフ)生成部220とから構成される。
ソース解析部120は、具体例としては、ソースコードからCFGを生成することができる既存のコンパイラ基盤である。
即ち、ソース解析部120は、
ソース200(ソースコード)に基づいて中間コード201を生成する中間コード生成部210と、
中間コード201に基づいてソースCFG(制御フローグラフ)202を生成するソースCFG(制御フローグラフ)生成部220と
を備える。
CFGは、プログラムに含まれる処理を、分岐を含まない処理の塊である基本ブロックに分割し、基本ブロックから基本ブロックへの遷移を線で表現することにより、プログラム実行時の処理の流れをグラフで表現したものである。
基本ブロックは、CFGにおける用語である。
本図の矢印は、検知装置100の実行中に、データが流れ得ることを表す。
本図に示すように、バイナリ解析部130は、逆アセンブル部310と、バイナリCFG生成部320とから構成される。
即ち、バイナリ解析部130は、
バイナリ300(バイナリコード)を逆アセンブルする逆アセンブル部310と、
逆アセンブル部310が逆アセンブルした結果に基づいてバイナリCFG(制御フローグラフ)302を生成するバイナリCFG(制御フローグラフ)生成部320と
を備える。
バイナリ解析部130は、具体例としては、バイナリコードからCFGを生成することができる既存の逆アセンブルツールである。
本図に示すように、差分抽出部140は、特徴量計算部610と、特徴量比較部620とから構成される。
差分抽出部140は、バイナリ300(バイナリコード)の制御フローグラフであるバイナリCFG(制御フローグラフ)302と、バイナリ300(バイナリコード)に対応するソース200(ソースコード)の制御フローグラフであるソースCFG(制御フローグラフ)202との差分を抽出する。
本図に示すように、異常抽出部150は、異常特徴リスト152と、リスト比較部151とから構成される。
異常抽出部150は、差分抽出部140が抽出した差分に基づいてバイナリ300(バイナリコード)に存在する異常を抽出する。
異常抽出部150は、
異常の特徴を異常特徴として記憶している異常特徴リスト152を有し、
異常特徴に基づいて異常を抽出することができる。
異常抽出部150は、異常としてバックドアであると考えられるものを抽出しても良い。
異常特徴リスト152は、異常特徴としてバックドアの特徴を記憶していても良い。
異常特徴リスト152が格納するデータの形式は、任意であって良い。バックドアの特徴的な振る舞いは、任意の振る舞いであって良い。
検知装置100は、本図に示すH/W15から構成される。
検知装置100は、典型的には、汎用PC(Personal Computer)から構成される。
プロセッサ11は、メモリ12と接続されており、演算に必要なデータの一時記憶、及び/又は、データの保存を行い、メモリ12に格納されたプログラムを読み出して実行する。
本実施の形態に係る検知装置100の動作を説明する。
検知装置100の動作手順は、検知方法に相当する。また、検知装置100の動作を実現するプログラムは、検知プログラムに相当する。
本フローチャートに示す処理の順序は、適宜変更しても良い。
ソース解析部120は、ソース200に対応するソースCFG202を生成する。
ソース解析部120は、ソース200(ソースコード)を解析し、ソース200(ソースコード)の制御フローグラフを、ソースCFG(制御フローグラフ)202として生成する。
バイナリ解析部130は、バイナリ300に対応するバイナリCFG302を生成する。
バイナリ解析部130は、バイナリ300(バイナリコード)を解析し、バイナリ300(バイナリコード)の制御フローグラフを、バイナリCFG(制御フローグラフ)302として生成する。
ソース200に対応するバイナリコードであり、
ソース200をクラウドに構築された開発環境においてコンパイルした結果として生成されたバイナリコードである。
ステップS101と、ステップS102とを任意の順序で実行して良く、
ステップS101と、ステップS102とを並列に実行しても良い。
差分抽出部140は、ソースCFG202と、バイナリCFG302とのそれぞれについて特徴量を計算し、その計算結果から、両者の差分箇所を特定する。
差分抽出部140は、任意の特徴量を採用して良い。
異常抽出部150は、差分箇所の中から、バックドアの特徴的な振る舞いに合致する箇所を特定し、バックドアである可能性が高い箇所を更に絞り込む。
図8は、ソース解析部120の動作を示すフローチャートの例である。
本フローチャートに示す処理の順序は、適宜変更しても良い。
ソース解析部120は、ソース200を入力とし、本フローチャートの処理を実行する。
中間コード生成部210は、入力されたソース200の構文を解析した上で、中間コード201を生成する。
ソースCFG生成部220は、中間コード201から、ソースCFG202を生成する。
本図より、
Func_a400は、5つの基本ブロック(ブロックa401と、ブロックb402と、ブロックc403と、ブロックd404と、ブロックe405)から構成されており、
ブロックa401は、Func_a400の先頭の基本ブロックであり、
ブロックe405は、Func_a400の終端の基本ブロックであり、
ブロックa401からブロックb402又はブロックc403を経由してブロックe405への遷移が存在し、
ブロックd404は、どこからも遷移せず、どこへも遷移しない基本ブロックであることが分かる。
図10は、バイナリ解析部130の動作を示すフローチャートの例である。
本フローチャートに示す処理の順序は、適宜変更しても良い。
バイナリ解析部130は、バイナリ300を入力とし、本フローチャートの処理を実行する。
逆アセンブル部310は、
入力されたバイナリ300を逆アセンブルし、
アセンブラコード301を生成する。
バイナリCFG生成部320は、アセンブラコード301から、バイナリCFG302を生成する。
本図より、
Func_X500は5つの基本ブロック(ブロックV501と、ブロックW502と、ブロックX503と、ブロックY504と、ブロックZ505)から構成されており、
ブロックV501は、Func_X500の先頭の基本ブロックであり、
ブロックZ505は、Func_X500の終端の基本ブロックであり、
ブロックV501からブロックW502、又は、ブロックX503と、ブロックY504とを経由してブロックZ505への遷移が存在することが分かる。
図12は、差分抽出部140の動作を示すフローチャートの例である。
本フローチャートに示す処理の順序は、適宜変更しても良い。
差分抽出部140は、図2に示すソース解析部120が生成したソースCFG202と、図3に示すバイナリ解析部130が生成したバイナリCFG302とを入力とし、本フローチャートの処理を実行する。
特徴量計算部610は、ソースCFG202に基づいてソース特徴情報601を生成する。
特徴量計算部610は、ソース特徴情報601を、ソース200、又は、バイナリ300の関数毎に生成しても良く、別の区分毎に作成しても良い。
特徴量計算部610は、具体例としては、Func_a400の基本ブロック数と、基本ブロック間の線の数と、基本ブロック内の実行命令数と等を集計し、図13のソース特徴情報601を生成する。
図13のソース特徴情報601は、ブロック700と、IN数701と、INブロック702と、OUT数703と、OUTブロック704と、Step数705とから構成される。
ブロック700には、本例において、ブロックa401と、ブロックb402と、ブロックc403と、ブロックd404と、ブロックe405とが格納される。
IN数701には、共に0が格納され、
INブロック702には、共に遷移先がないことを示すNULLが格納される。
IN数701には、共に1が格納され、
INブロック702には、共にブロックa401を示す「a」が格納される。
IN数701には、2が格納され、
INブロック702には、ブロックb402と、ブロックc403とを示す「b」と「c」とが格納される。
OUT数703には、2が格納され、
OUTブロック704には、ブロックb402と、ブロックc403とを示す「b」と「c」とが格納される。
OUT数703には、共に1が格納され、
OUTブロック704には、共にブロックe405を示す「e」が格納される。
OUT数703には、共に0が格納され、
OUTブロック704には、共にNULLが格納される。
Step数705の各値は、一例である。
特徴量計算部610は、ステップS141と同様に、バイナリCFG302に基づいてバイナリ特徴情報602を生成する。
特徴量計算部610は、バイナリ特徴情報602を関数毎に生成しても良い。
特徴量計算部610は、具体例としては、Func_X500の基本ブロック数と、基本ブロック間の線の数と、基本ブロック内の実行命令数と等を集計し、図14のバイナリ特徴情報602を生成する。
本例のバイナリ特徴情報602は、ブロック800と、IN数801と、INブロック802と、OUT数803と、OUTブロック804と、Step数805との各項目から構成される。
各項目の定義は、それぞれブロック700〜Step数705の各項目と同一である。
バイナリ特徴情報602の各項目の値は、Func_X500のCFGに対応したものである。ただし、Step数805の各値は、一例である。
ステップS141と、ステップS142とを任意の順序で実行して良く、
ステップS141と、ステップS142とを並列に実行しても良い。
特徴量比較部620は、
ソース特徴情報601と、バイナリ特徴情報602との間で各関数の特徴を比較することにより、ソースCFG202と、バイナリCFG302との全ての関数について、対応している関数(以下、対応関数)が存在するか否かを判断し、
ソース特徴情報601と、バイナリ特徴情報602との対応関係がある全ての関数間で各基本ブロックの特徴を比較することにより、ソースCFG202と、バイナリCFG302との全ての基本ブロックについて、対応している基本ブロック(以下、対応ブロック)が存在するか否かを判断し、
対応ブロック間に差分が存在するか否かを判断し、
差分情報をまとめた差分情報603を生成する。
差分情報は、対応関数が存在しない関数の情報と、対応ブロックが存在しない基本ブロックの情報と、対応ブロック間に差分が存在する対応ブロックの情報との総称である。
関数と、基本ブロックとの差分情報の一部又は全部を差分と呼ぶ。
なお、特徴量比較部620は、本ステップの処理において、ソースCFG202のグラフ構造と、バイナリCFG302のグラフ構造とを総合的に考慮して対応する基本ブロックが存在するか否かを判断しても良い。
ソースCFG202の基本ブロックが、バイナリCFG302の基本ブロックと対応している場合、
ソースCFG202の基本ブロックは、バイナリCFG302の基本ブロックの対応ブロックであり、
バイナリCFG302の基本ブロックは、ソースCFG202の基本ブロックの対応ブロックである。バイナリCFG302の基本ブロックが、ソースCFG202の基本ブロックに対応している場合についても同様である。
ブロックb402が、ブロックW502と、
ブロックc403が、ブロックX503と、
ブロックe405が、ブロックZ505と、それぞれ対応していることが分かる。
以下、本例を用いて差分情報603を説明する。
本図の差分情報603は、ファイル900と、Func901と、対応Func902と、ブロック903と、対応ブロック904と、IN数905と、INブロック906と、OUT数907と、OUTブロック908と、Step数909との各項目から構成される。
本例においては、Func_a400と、Func_X500とが対応する関数であるため、Func901にFunc_a400が示される場合、対応Func902にはFunc_X500の関数の名前が格納される。
Func901に示される関数に対応する関数が存在しない場合、対応Func902にはNULLが格納される。
本例において、ブロックa401と、ブロックd404と、ブロックV501と、ブロックY504とが差分であるため、これらのラベル名が格納される。
本例において、ブロック903にブロックa401が示される場合、対応ブロック904には、ブロックV501が格納される。
ブロックd404と、ブロックY504とのように、対応ブロックが存在しない場合、対応ブロック904にはNULLが格納される。
図16は、異常抽出部150の動作を示すフローチャートの例である。
本フローチャートに示す処理の順序は、適宜変更しても良い。
異常抽出部150は、差分情報603を入力とし、以下の処理を実行する。
リスト比較部151は、差分情報603に格納された差分情報の中に、異常特徴リスト152に格納された条件と合致するものが存在するか否かを確認し、
条件と合致するものに基づいて異常候補情報155を生成する。
異常抽出部150は、差分情報603の中から、バックドアの特徴的な振る舞いに合致している差分情報を抽出する。
異常特徴リスト152は、バックドアの特徴的な振る舞いに関する情報が格納されたリストである。
異常特徴リスト152に格納された条件と合致する差分情報は、バックドアに対応する情報である可能性が高いと考えられる。
異常特徴リスト152は、バックドア以外の異常の特徴的な振る舞いに関する情報を格納していても良い。
異常特徴リスト152の情報は、差分情報603に関する条件式であっても良い。
本例において、バックドアの特徴的な振る舞いとして、2つの条件を例示している。
「No.1:ソースCFG202に存在しない関数がバイナリCFG302に存在する」については、図15の差分情報603において、ファイル900がバイナリCFG302であり、かつ、対応Func902がNULLであるものが該当する。
なお、異常特徴リスト152に格納された条件と合致しなかった、ブロックa401と、ブロックd404と、ブロックV501とについては、コンパイル時の最適化によって、基本ブロック内の不要な処理が削除された、あるいは、基本ブロック全体が削除されたために生じた差分であると考えられる。
異常候補情報155は、Func921と、対応Func922と、ブロック923と、対応ブロック924と、IN数925と、INブロック926と、OUT数927と、OUTブロック928と、Step数929との各項目から構成される。
各項目の定義は、図15に示したFunc901〜Step数909の各項目と同一であるため、ここでの説明は割愛する。
リスト比較部151は、異常候補情報155を出力する。
差分抽出部140は、
ソースCFG(制御フローグラフ)202の基本ブロックの数と、基本ブロック間の接続情報と、基本ブロック内の命令数とをソース特徴情報601として生成し、
バイナリCFG(制御フローグラフ)302の基本ブロックの数と、基本ブロック間の接続情報と、基本ブロック内の命令数とをバイナリ特徴情報602として生成し、
差分として、ソース特徴情報601と、バイナリ特徴情報602との差分を抽出する。
以上のように、本実施の形態によれば、
差分抽出部140は、バイナリCFG302と、ソースCFG202との差分に基づいて差分情報603を生成し、
異常抽出部150は、差分情報603の中から、バックドアの特徴的な振る舞いに合致している差分情報を抽出するため、
バイナリ300にバックドアが埋め込まれている場合に、CFGを用いた静的解析により、埋め込まれたバックドアである可能性が高い箇所を抽出することができる。
さらに、本実施の形態によれば、コンパイル時の最適化処理により、ソースCFG202と、バイナリCFG302との間に差分が生じた場合であっても、最適化処理の影響による差分を除外し、バックドアが埋め込まれている可能性の高い箇所を抽出することができる。
検知装置100は、ソース解析部120を備えなくても良い。
本変形例において、
差分抽出部140は、他の装置等が生成したソースCFG202を利用し、
検知装置100は、任意の方法によりソースCFG202を取り込んで良い。
検知装置100は、バイナリ解析部130を備えなくても良い。
本変形例において、
差分抽出部140は、他の装置等が生成したバイナリCFG302を利用し、
検知装置100は、任意の方法によりバイナリCFG302を取り込んで良い。
特徴量比較部620は、ステップS143において、ソースCFG202のある基本ブロックと、バイナリCFG302のある基本ブロックとについて、ソースCFG202のグラフ構造と、バイナリCFG302のグラフ構造とを考慮した場合に対応関係を見出せる場合であっても、両基本ブロックの特徴間に差異がある場合、互いに対応していないと判断しても良い。
特徴量比較部620は、ステップS143において、ソースCFG202のある関数と、バイナリCFG302のある関数とについても同様に判断しても良い。
本実施の形態では、各機能構成要素をソフトウェアで実現する場合を説明した。しかし、変形例として、各機能構成要素はハードウェアで実現されても良い。
***他の実施の形態***
前述した実施の形態の任意の構成要素の変形、もしくは実施の形態において任意の構成要素の省略が可能である。
Claims (8)
- バイナリコードの制御フローグラフであるバイナリ制御フローグラフと、前記バイナリコードに対応するソースコードの制御フローグラフであるソース制御フローグラフとの差分を抽出する差分抽出部と、
前記差分に基づいて前記バイナリコードに存在する異常を抽出する異常抽出部と
を備える検知装置。 - 前記異常抽出部は、
異常の特徴を異常特徴として記憶している異常特徴リストを有し、
前記異常特徴に基づいて前記異常を抽出する請求項1に記載の検知装置。 - 前記異常抽出部は、前記異常としてバックドアであると考えられるものを抽出し、
前記異常特徴リストは、前記異常特徴として前記バックドアの特徴を記憶している請求項2に記載の検知装置。 - 前記ソースコードを解析し、前記ソースコードの前記制御フローグラフを、前記ソース制御フローグラフとして生成するソース解析部と、
前記バイナリコードを解析し、前記バイナリコードの前記制御フローグラフを、前記バイナリ制御フローグラフとして生成するバイナリ解析部と
を備える請求項1から3のいずれか1項に記載の検知装置。 - 前記ソース解析部は、
前記ソースコードに基づいて中間コードを生成する中間コード生成部と、
前記中間コードに基づいて前記ソース制御フローグラフを生成するソース制御フローグラフ生成部と
を備え、
前記バイナリ解析部は、
前記バイナリコードを逆アセンブルする逆アセンブル部と、
前記逆アセンブル部が逆アセンブルした結果に基づいて前記バイナリ制御フローグラフを生成するバイナリ制御フローグラフ生成部と
を備える請求項4に記載の検知装置。 - 前記差分抽出部は、
前記ソース制御フローグラフの基本ブロックの数と、前記基本ブロック間の接続情報と、前記基本ブロック内の命令数とをソース特徴情報として生成し、
前記バイナリ制御フローグラフの前記基本ブロックの数と、前記基本ブロック間の接続情報と、前記基本ブロック内の命令数とをバイナリ特徴情報として生成し、
前記差分として、前記ソース特徴情報と、前記バイナリ特徴情報との差分を抽出する請求項4又は5に記載の検知装置。 - 差分抽出部が、バイナリコードの制御フローグラフであるバイナリ制御フローグラフと、前記バイナリコードに対応するソースコードの制御フローグラフであるソース制御フローグラフとの差分を抽出し、
異常抽出部が、前記差分に基づいて前記バイナリコードに存在する異常を抽出する検知方法。 - コンピュータに、
バイナリコードの制御フローグラフであるバイナリ制御フローグラフと、前記バイナリコードに対応するソースコードの制御フローグラフであるソース制御フローグラフとの差分を抽出させ、
前記差分に基づいて前記バイナリコードに存在する異常を抽出させる検知プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/021753 WO2020240830A1 (ja) | 2019-05-31 | 2019-05-31 | 検知装置、検知方法、及び、検知プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6945768B2 JP6945768B2 (ja) | 2021-10-06 |
JPWO2020240830A1 true JPWO2020240830A1 (ja) | 2021-10-21 |
Family
ID=73553717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021522572A Active JP6945768B2 (ja) | 2019-05-31 | 2019-05-31 | 検知装置、検知方法、及び、検知プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6945768B2 (ja) |
WO (1) | WO2020240830A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240037010A1 (en) * | 2021-03-23 | 2024-02-01 | Nec Corporation | Program analysis apparatus, program analysis method, and non-transitory computer readable medium storing program |
WO2023062768A1 (en) * | 2021-10-14 | 2023-04-20 | Nec Corporation | Backdoor detecting apparatus, backdoor detecting method,and backdoor detecting program |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07141196A (ja) * | 1993-06-28 | 1995-06-02 | Hokkaido Nippon Denki Software Kk | ループ外分岐を持つループの展開方式 |
JP2000276356A (ja) * | 1999-03-25 | 2000-10-06 | Nec Software Kobe Ltd | コンパイル装置、コンパイル方法およびコンパイラプログラムを記録した記録媒体 |
JP2009098851A (ja) * | 2007-10-16 | 2009-05-07 | Mitsubishi Electric Corp | 不正コード検出システム |
JP2013152559A (ja) * | 2012-01-24 | 2013-08-08 | Toshiba Corp | プログラム比較解析装置およびプログラム比較解析方法 |
US20150013011A1 (en) * | 2013-07-01 | 2015-01-08 | Sap Ag | Modular static application security testing |
US20180157843A1 (en) * | 2016-12-01 | 2018-06-07 | International Business Machines Corporation | Detection of compiler injected security flaws |
-
2019
- 2019-05-31 JP JP2021522572A patent/JP6945768B2/ja active Active
- 2019-05-31 WO PCT/JP2019/021753 patent/WO2020240830A1/ja active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07141196A (ja) * | 1993-06-28 | 1995-06-02 | Hokkaido Nippon Denki Software Kk | ループ外分岐を持つループの展開方式 |
JP2000276356A (ja) * | 1999-03-25 | 2000-10-06 | Nec Software Kobe Ltd | コンパイル装置、コンパイル方法およびコンパイラプログラムを記録した記録媒体 |
JP2009098851A (ja) * | 2007-10-16 | 2009-05-07 | Mitsubishi Electric Corp | 不正コード検出システム |
JP2013152559A (ja) * | 2012-01-24 | 2013-08-08 | Toshiba Corp | プログラム比較解析装置およびプログラム比較解析方法 |
US20150013011A1 (en) * | 2013-07-01 | 2015-01-08 | Sap Ag | Modular static application security testing |
US20180157843A1 (en) * | 2016-12-01 | 2018-06-07 | International Business Machines Corporation | Detection of compiler injected security flaws |
Non-Patent Citations (1)
Title |
---|
岩本一樹、和▲崎▼克己: "制御フロー解析によるAndroidマルウェア検出方法の提案", コンピュータセキュリティシンポジウム2011(CSS2011)論文集[CD−ROM], vol. 2011, no. 3, JPN6019030778, 12 October 2011 (2011-10-12), JP, pages 714 - 719, ISSN: 0004571742 * |
Also Published As
Publication number | Publication date |
---|---|
WO2020240830A1 (ja) | 2020-12-03 |
JP6945768B2 (ja) | 2021-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11567759B1 (en) | Generating source code from binary files | |
US8843912B2 (en) | Optimization of an application to reduce local memory usage | |
JP6164054B2 (ja) | 情報処理装置、コンパイル方法およびコンパイラプログラム | |
US20200065226A1 (en) | Automated software program repair of similar code snippets | |
US9405906B1 (en) | System and method for enhancing static analysis of software applications | |
JP6945768B2 (ja) | 検知装置、検知方法、及び、検知プログラム | |
US20220164170A1 (en) | Usage-based software library decomposition | |
US10229273B2 (en) | Identifying components for static analysis of software applications | |
JP6925433B2 (ja) | データ検証装置、データ検証方法及びデータ検証プログラム | |
US20170337112A1 (en) | Code update based on detection of change in runtime code during debugging | |
JP2009129204A (ja) | コード検査システム及びコード検査方法及びプログラム | |
US10956241B1 (en) | Unified container for hardware and software binaries | |
JP2016128941A (ja) | 出力判定装置、出力判定方法、出力判定プログラム、及び、静的解析装置 | |
CN113574511A (zh) | 测试用例生成装置、测试用例生成方法和测试用例生成程序 | |
US20150310332A1 (en) | Predicting outcome based on input | |
US9354870B2 (en) | Maintaining integrity of output of code generators | |
JPWO2020157795A1 (ja) | 試験装置、試験方法および試験プログラム | |
GB2590414A (en) | Anomaly detection for code management | |
GB2590415A (en) | Software code management | |
GB2590416A (en) | Logistic model for code management | |
US11294647B1 (en) | Support apparatus and design support method | |
JP6390217B2 (ja) | ソフトウェア変更プログラム、ソフトウェア変更装置、及びソフトウェア変更方法 | |
KR101225577B1 (ko) | 어셈블리 언어 코드의 분석 장치 및 방법 | |
JP6081144B2 (ja) | ソースコード解析装置 | |
JP2012059202A (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210617 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210617 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20210617 |
|
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: 20210817 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210914 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6945768 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |