JP7235126B2 - バックドア検査装置、バックドア検査方法、及びプログラム - Google Patents

バックドア検査装置、バックドア検査方法、及びプログラム Download PDF

Info

Publication number
JP7235126B2
JP7235126B2 JP2021541827A JP2021541827A JP7235126B2 JP 7235126 B2 JP7235126 B2 JP 7235126B2 JP 2021541827 A JP2021541827 A JP 2021541827A JP 2021541827 A JP2021541827 A JP 2021541827A JP 7235126 B2 JP7235126 B2 JP 7235126B2
Authority
JP
Japan
Prior art keywords
inspection
backdoor
unit
functional block
inspection device
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
JP2021541827A
Other languages
English (en)
Other versions
JPWO2021038704A5 (ja
JPWO2021038704A1 (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2021038704A1 publication Critical patent/JPWO2021038704A1/ja
Publication of JPWO2021038704A5 publication Critical patent/JPWO2021038704A5/ja
Application granted granted Critical
Publication of JP7235126B2 publication Critical patent/JP7235126B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

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

Description

本開示は、バックドア検査装置、バックドア検査方法、及び非一時的なコンピュータ可読媒体に関する。
インフラや企業システムは、複雑化している。このため、インフラや企業システムは、単一の企業のデバイスだけで構成されるのではなく、様々な企業のデバイスを外部から調達しそれらを組み合わせて、構築されている。
しかしながら、近年、これらのデバイスにおいてソフトウェア(ファームウェア)およびハードウェアの両面で、ユーザが認知していない隠された機能又はユーザが予期していない機能が発見される、インシデントが多数報告されている。すなわち、「バックドア」に関連する多数のインシデントが報告されている。「バックドア」とは、例えば、複数の機能を含むソフトウェアに対して該ソフトウェアの一部として組み込まれた、ユーザに知らされていない且つ望まれていない機能として定義できる。
種々の種類のバックドアが存在する。特定の種類のバックドアを検知する方法が、例えば、非特許文献1に開示されている。
F. Schuster and T. Holz, "Towards reducing the attack surface of software backdoors," In Proceedings of the 2013 ACM SIGSAC conference on Computer & communicationssecurity (CCS), 2013.
特表2010-541084号公報 特開2001-142720号公報
本発明者らは、複数種類のバックドアのそれぞれに対して提案されている複数の検知方法のすべてを、検査対象のソフトウェアに対して単純に適用した場合には、無駄な検査処理が発生して処理効率が悪く、更には検査精度が悪くなる、可能性があることを見出した。
また、本発明者は、検査対象のソフトウェアの全体を常に検査する場合、検査のために長い時間を要する可能性があることを見出した。
本開示の目的は、バックドアについての検査効率を向上させることができる、バックドア検査装置、バックドア検査方法、及び非一時的なコンピュータ可読媒体を提供することにある。
第1の態様にかかるバックドア検査装置は、検査対象であるソフトウェアに含まれる複数の機能にそれぞれ対応する複数の機能ブロックを特定する特定手段と、
それぞれ異なるタイプのバックドアについての検査処理を、入力された機能ブロックに対して実行する複数の検査手段と、
特定された各機能ブロックに対応する機能に応じて、前記特定された各機能ブロックを前記複数の検査手段のうちの少なくとも一部に入力する振分手段と、
を具備する。
第2の態様にかかるバックドア検査方法は、バックドア検査装置によって実行されるバックドア検査方法であって、
検査対象であるソフトウェアに含まれる複数の機能にそれぞれ対応する複数の機能ブロックを特定し、
特定された各機能ブロックに対応する機能に応じて、前記特定された各機能ブロックを前記バックドア検査装置の複数の検査手段のうちの少なくとも一部に入力し、
前記複数の検査手段が、入力された機能ブロックに対して、それぞれ異なるタイプのバックドアについての検査処理を実行する。
第3の態様にかかる非一時的なコンピュータ可読媒体は、バックドア検査装置に、
検査対象であるソフトウェアに含まれる複数の機能にそれぞれ対応する複数の機能ブロックを特定し、
特定された各機能ブロックに対応する機能に応じて、前記特定された各機能ブロックを前記バックドア検査装置の複数の検査手段のうちの少なくとも一部に入力し、
前記複数の検査手段が、入力された機能ブロックに対して、それぞれ異なるタイプのバックドアについての検査処理を実行する、
処理を、実行させるプログラムが格納している。
本開示により、バックドアについての検査効率を向上させることができる、バックドア検査装置、バックドア検査方法、及び非一時的なコンピュータ可読媒体を提供することができる。
第1実施形態におけるバックドア検査装置の一例を示すブロック図である。 第2実施形態におけるバックドア検査装置の特定部の一例を示す図である。 コントロールフローグラフの説明に供する図である。 不正パスの説明に供する図である。 隠しコマンドの説明に供する図である。 第3実施形態におけるバックドア検査装置の一例を示す図である。 第4実施形態におけるバックドア検査装置の一例を示す図である。 検査結果表示の一例を示す図である。 検査結果表示の一例を示す図である。 検査結果表示の一例を示す図である。 検査結果表示の一例を示す図である。 第5実施形態におけるバックドア検査装置の一例を示す図である。 第6実施形態におけるバックドア検査装置の一例を示す図である。 第7実施形態におけるバックドア検査装置の一例を示す図である。 第7実施形態におけるバックドア検査装置の処理動作の一例を示すフローチャートである。 他の実施形態<1>におけるバックドア検査装置の一例を示すブロック図である。 他の実施形態<2>におけるバックドア検査装置の一例を示すブロック図である。 他の実施形態<3>におけるバックドア検査装置の一例を示すブロック図である。 他の実施形態<4>におけるバックドア検査装置の一例を示すブロック図である。 他の実施形態<5>におけるバックドア検査装置の利用方法の一例を示すブロック図である。 バックドア検査装置のハードウェア構成例を示す図である。
以下、図面を参照しつつ、実施形態について説明する。なお、実施形態において、同一又は同等の要素には、同一の符号を付し、重複する説明は省略される。
<第1実施形態>
図1は、第1実施形態におけるバックドア検査装置の一例を示すブロック図である。図1においてバックドア検査装置10は、特定部11と、振分部12と、検査部13-1~13-N(Nは2以上の自然数)とを有している。以下では、検査部13-1~13-Nを区別しない場合、検査部13-1~13-Nを纏めて単に検査部13と呼ぶことがある。
特定部11は、検査対象であるソフトウェア(以下では、単に「対象ソフトウェア」と呼ぶことがある)を入力とする。対象ソフトウェアは、コンパイル前のソースコードであってもよいし、コンパイル後のバイナリコードであってもよい。以下では、主に、入力されるソフトウェアがバイナリコードであるものとして説明する。
特定部11は、対象ソフトウェアに含まれる複数の機能にそれぞれ対応する複数の機能ブロック(つまり、コードブロック)を特定する。対象ソフトウェアに含まれる複数の機能は、例えば、認証機能、許可機能、コマンドパーサ機能、及び通信機能などを含んでいてもよい。
振分部12は、特定部11にて特定された各機能ブロックに対応する機能に応じて、特定部11にて特定された各機能ブロックを、検査部13-1~13-Nのうちの少なくとも一部に入力する。振分部12は、例えば、対象ソフトウェアに含まれる複数の機能と各機能に対応する振分先の1つ又は複数の検査部13とを対応付けた「振分ルールテーブル」を用いて、特定部11にて特定された各機能ブロックを振り分けてもよい。
検査部13-1~13-Nは、それぞれ異なるタイプのバックドアについての検査処理を実行する。すなわち、各検査部13は、各検査部13に対応する検査方法を用いて、振分部12から受け取った機能ブロックに対して検査処理を実行する。バックドアのタイプには、例えば、「隠しアカウント」、「認証回避」、「不正な機能(情報漏洩機能及びキルスイッチ等)」等がある。
以上のように第1実施形態によれば、バックドア検査装置10にて特定部11は、対象ソフトウェアに含まれる複数の機能にそれぞれ対応する複数の機能ブロックを特定する。検査部13-1~13-Nは、それぞれ異なるタイプのバックドアについての検査処理を実行する。振分部12は、特定部11にて特定された各機能ブロックに対応する機能に応じて、特定部11にて特定された各機能ブロックを、検査部13-1~13-Nのうちの少なくとも一部に入力する。
このバックドア検査装置10の構成により、バックドアについての検査効率を向上させることができる。すなわち、対象ソフトウェアに含まれる機能の種別と該機能に埋め込まれるバックドアのタイプとの間には相関があると考えられる。そのため、振分部12は、特定部11にて特定された各機能ブロックを、その機能ブロックに対応する機能と相関の高いバックドアタイプについての検査処理を実行する検査部13に入力する。一方で、振分部12は、特定部11にて特定された各機能ブロックを、その機能ブロックに対応する機能と相関の低いバックドアタイプについての検査処理を実行する検査部13には入力しない。これにより、無駄な検査処理が実行されることを回避することができるので、バックドアについての検査効率を向上させることができる。また、検査部13-1~13-Nの全てが特定部11を共有しているので、各検査処理に対して個別に特定処理を行うのに比べて、処理効率を向上させることができる。
以上の説明では、検査部13は振分部12から受け取った機能ブロックに対して検査処理を実行したが、検査部13はソフトウェア全体もしくは複数の機能ブロックに対して検査を行ってもよい。この際、振分部12は、ソフトウェア全体もしくはその一部の機能ブロックの情報を検査部13に渡し、検査部13は機能ブロックの情報に基づいてソフトウェア全体もしくは複数の機能ブロックに対して検査を行ってもよい。
<第2実施形態>
第2実施形態は、上記の特定部の構成例に関する。
図2は、第2実施形態におけるバックドア検査装置の特定部の一例を示す図である。なお、第2実施形態におけるバックドア検査装置の基本構成は、第1実施形態におけるバックドア検査装置10と同じなので、図1を参照して説明する。
第2実施形態におけるバックドア検査装置10は、特定部11と、振分部12と、検査部13-1~13-N(Nは2以上の自然数)とを有している。
特定部11は、図2に示すように、特定処理部11Aと、構造解析部11Bとを有している。
特定処理部11Aは、対象ソフトウェアにおいて、「予め定められた所定機能」に対応する「所定機能ブロック」を特定する。「予め定められた所定機能」は、例えば、「インタフェース機能」、「認証機能(認証ルーチン)」、及び「コマンドパーサ機能(パーサルーチン)」等である。すなわち、「予め定められた所定機能」は、それの後に種々の機能が続く機能である。つまり、「予め定められた所定機能」は、対象ソフトウェアについてのコントロールフローグラフにおいて起点となる機能ブロックに対応する。
特定処理部11Aは、例えば、複数の所定機能と各所定機能に対応する所定機能ブロックの特徴とを対応付けた「特定ルールテーブル(「第1特定テーブル」)」を用いて、所定機能ブロックを特定してもよい。この場合、特定処理部11Aは、特定ルールテーブルに保持されている各所定機能ブロックの特徴にマッチする、対象ソフトウェアの部分を、所定機能ブロックとして特定する。また、特定処理部11Aは、テーブルの代わりに、所定機能を特定するための1つもしくは複数のアルゴリズムやモジュールを実行し、所定機能ブロックを特定してもよい。
構造解析部11Bは、特定処理部11Aにて特定された所定機能ブロックを起点としてコントロールフローを辿ることによって、対象ソフトウェアの構造を解析すると共に、所定機能以外の機能に対応する機能ブロックを特定する。例えば、構造解析部11Bは、特定処理部11Aによって特定された認証機能の機能ブロックを起点としてコントロールフローを辿ることによって、図3に示すようなコントロールフローグラフを作成する。そして、構造解析部11Bは、「特定ルールテーブル(「第2特定テーブル」)」を用いて、所定機能以外の機能に対応する機能ブロックを特定する。「第2特定テーブル」は、起点となる機能ブロックの種別と、該種別に応じて特定すべき特定対象機能ブロックの特徴とを対応付けている。例えば、「第2特定テーブル」において、起点となるコードブロックである「認証機能の機能ブロック」に対しては、「特定対象機能ブロックの特徴」として、「コントロールフローグラフにおいて認証ルーチンを通った後に存在する機能ブロック」が対応付けられている。また、例えば、「第2特定テーブル」において、起点となる機能ブロックである「コマンドパーサ機能の機能ブロック」に対しては、「特定対象機能ブロックの特徴」として、「パーサによってディスパッチされるコマンド又は関数を含む機能ブロック」が対応付けられている。なお、図3に示すコントロールフローグラフにおいて、「認証機能の機能ブロック」及び「(図3にて丸で示されている)特定対象機能ブロック」は、それぞれ「ノード」と呼ぶこともできる。また、図3に示すコントロールフローグラフにおいて、矢印は、コントロールフローに対応する。
検査部13-1~13-Nには、例えば、「認証回避」のバックドアについての検査処理を実行する検査部13が含まれる。ここで、検査部13-1が「認証回避」のバックドアについての検査処理を実行するものとする。この場合、検査部13-1は、図4に示すように、構造解析部11Bによって作成されたコントロールフローグラフにおいて、認証機能ブロックB11を通らずに、構造解析部11Bにて特定された機能ブロックB21(つまり、認証が必要な実行部分)に至る「パス(不正パス)P1」を検出する。
また、検査部13-1~13-Nには、例えば、「隠しコマンド」のバックドアについての検査処理を実行する検査部13が含まれる。ここで、検査部13-2が「隠しコマンド」のバックドアについての検査処理を実行するものとする。この場合、検査部13-1は、図5に示すように、構造解析部11Bによって作成されたコントロールフローグラフにおいて、仕様書に記載が無いコマンド(又は関数)を含む機能ブロックを検出する。図5の例では、機能ブロック「cmdx()」に対応するコマンドが仕様書に記載されていないため、機能ブロック「cmdx()」が検出されている。
この例では、振分部12は、特定部11によって特定された、「認証機能の機能ブロック」を起点とする機能ブロック群(及びコントロールフローグラフ)を、少なくとも検査部13-1に振り分ける。また、振分部12は、特定部11によって特定された、「コマンドパーサ機能の機能ブロック」を起点とする機能ブロック群(及びコントロールフローグラフ)を、少なくとも検査部13-2に振り分ける。
<第3実施形態>
第3実施形態は、セキュリティ対策の有無についてのチェック、及び、検査結果レポートの生成に関する。
図6は、第3実施形態におけるバックドア検査装置の一例を示す図である。図6においてバックドア検査装置20は、特定部11と、振分部12と、検査部13-1~13-N(Nは2以上の自然数)と、対策チェック部21と、レポート生成部22とを有している。
対策チェック部21は、特定部11にて特定された機能ブロック(つまり、検査対象ブロック)に対する「セキュリティ対策」の有無をチェック(判定)する。例えば、対策チェック部21は、セキュリティ対策についての「チェックポイント」を規定する「チェックルールテーブル」を用いて、検査対象ブロックに対する「セキュリティ対策」の有無をチェック(判定)する。例えば、「チェックルールテーブル」には、チェックポイントとして、「スタックカナリアの有無」、及び、「脆弱性の原因となる可能性の高い関数が使用されているか否か」等が規定されている。スタックカナリアは、スタックのオーバーフローを検知するための対策である。また、脆弱性の原因となる可能性の高い関数としては、例えば、「strcpy」等がある。
対策チェック部21は、検査対象ブロックの識別情報と、セキュリティ対策の有無に応じた「危険度指標」とを対応付けて、レポート生成部22へ出力する。「危険度指標」は、危険度を表すスコア(危険度が高いほど高いスコア)であってもよいし、危険度が高いことを示すフラグ(ビット)であってもよい。
レポート生成部22は、「検査結果レポート」を生成する。例えば、「検査結果レポート」は、検査部13-1~13-Nにて検査された各機能ブロックの識別情報と、各機能ブロックについての検査結果(バックドアの有無等)と、各機能ブロックについての危険度指標とを対応付けた状態で、含んでいる。
<第4実施形態>
第4実施形態は、検査結果の表示制御に関する。
図7は、第4実施形態におけるバックドア検査装置の一例を示す図である。図7においてバックドア検査装置30は、特定部11と、振分部12と、検査部13-1~13-N(Nは2以上の自然数)と、表示制御部31とを有している。
表示制御部31は、例えば、図8に示すように、特定部11によるソフトウェアの構造の解析によって得られたコントロールフローグラフを、検査部13-1~13-Nによる検査処理によって検出されたバックドアに対応する機能ブロックを強調した状態で、表示装置(不図示)に表示させる制御を実行してもよい。図8は、検査結果表示の一例を示す図である。図8において、太線の枠で強調されたコードブロックが、バックドアに対応する機能ブロックである。
また、表示制御部31は、例えば、図9に示すように、特定部11によるソフトウェアの構造の解析によって得られたコントロールフローグラフを、検査部13-1~13-Nによる検査処理によって検出されたバックドアに対応する制御フローを強調した状態で、表示装置(不図示)に表示させる制御を実行してもよい。図9は、検査結果表示の一例を示す図である。図9において、太線矢印が、バックドアに対応する制御フローである。
なお、コントロールフローグラフを表示する際に、表示制御部31は、図10に示すように、コードブロック群を機能毎にグルーピングし、枠又は色によってグループを強調した状態で、コントロールフローグラフを表示してもよい。図10は、検査結果表示の一例を示す図である。図10では、枠によってグループが強調されている。
また、表示制御部31は、例えば、図11に示すように、バックドアに対応する関数名と、アドレスと、バックドアタイプとを対応づけたテーブルの形式で、検査結果を表示してもよい。図11は、検査結果表示の一例を示す図である。
<第5実施形態>
第5実施形態は、故意度についての判定、及び、検査結果レポートの生成に関する。具体的には、バックドアには故意に埋め込まれたものと、開発者のミスで埋め込まれたものとが存在するため、どれだけ前者のバックドアの可能性があるかを示す故意度を判定する。
図12は、第5実施形態におけるバックドア検査装置の一例を示す図である。図12においてバックドア検査装置40は、特定部11と、振分部12と、検査部13-1~13-N(Nは2以上の自然数)と、故意度判定部41と、レポート生成部42とを有している。
故意度判定部41は、検査部13-1~13-Nにおいて検出されたバックドアの「故意度」を判定する。例えば、故意度判定部41は、バックドアの故意性が高いケースを規定する「故意性判定テーブル」を用いて、検査部13-1~13-Nにおいて検出されたバックドアの「故意度」を判定する。ここで、バックドアを隠蔽している痕跡が見つけられる場合、該バックドアの故意性は高いと推測される。バックドアの隠蔽の例としては、実行コードの難読化やバックドアが実行されるトリガの複雑化を挙げることができる。また、バグベースのバックドアであっても簡単に発見できるバグをトリガとしているバックドアは、故意性が高いと推測される。このため、「故意性判定テーブル」は、バックドアの故意性が高いケースとして、「実行コードの難読化しているケース」、「バックドアが実行されるトリガの複雑化しているケース」、「簡単に発見できるバグをトリガとしているケース」を規定していてもよい。
故意度判定部41は、故意度についての判定対象機能ブロックの識別情報と、該判定対象機能ブロックについて判定した故意度の指標(故意度指標)とを対応づけて、レポート生成部42へ出力する。
レポート生成部42は、「検査結果レポート」を生成する。例えば、「検査結果レポート」は、検査部13-1~13-Nにて検査された各機能ブロックの識別情報と、各機能ブロックについての検査結果(バックドアの有無等)とを対応付けた状態で、含んでいる。さらに、「検査結果レポート」において、バックドアであると判定された機能ブロックの識別情報には故意度指標が対応付けられている。故意度指標は、故意度を表すスコア(故意度が高いほど高いスコア)であってもよいし、故意度が高いことを示すフラグ(ビット)であってもよい。
<第6実施形態>
ところで、対象ソフトウェアの全体を検査する場合、検査のために長い時間を要する可能性がある。そこで、第6実施形態及び第7実施形態では、信頼性の高いソフトウェアの全体又は一部に対する検査を省略(スキップ)することによって、検査に掛かる時間を削減する。
図13は、第6実施形態におけるバックドア検査装置の一例を示す図である。図13においてバックドア検査装置100は、検査制御部101と、検査部102とを有している。
検査制御部101は、入力制御の対象である機能ブロック(以下では、「対象機能ブロック」と呼ぶことがある)の「信頼度」に応じて、対象機能ブロックを検査部102へ入力させるか否かを制御する。「対象機能ブロック」は、検査対象であるソフトウェア(以下では、「対象ソフトウェア」と呼ぶことがある)に含まれる機能に対応する機能ブロックである。具体的には、検査制御部101は、対象機能ブロックの信頼度が高ければ、対象機能ブロックを検査部102へ入力させない一方で、対象機能ブロックの信頼度が低ければ、対象機能ブロックを検査部102へ入力させる。これにより、検査対象であるソフトウェアの一部の検査を省略することができるので、検査に掛かる時間を削減することができる。
検査部102は、入力された対象機能ブロックに対して、バックドアについての検査処理を実行する。なお、検査部102は、第1実施形態から第5実施形態で説明した振分部12及び検査部13-1~13-N(Nは2以上の自然数)を含む構成を有していてもよい。
以上のように第6実施形態によれば、バックドア検査装置100にて検査制御部101は、対象機能ブロックの信頼度に応じて、対象機能ブロックを検査部102へ入力させるか否かを制御する。
このバックドア検査装置100の構成により、検査対象であるソフトウェアの一部の検査を省略することができるので、検査に掛かる時間を削減することができる。
<第7実施形態>
図14は、第7実施形態におけるバックドア検査装置の一例を示す図である。図14においてバックドア検査装置110は、検査制御部111と、特定部112と、データ管理部113と、記憶部114と、取得部115と、検査部102とを有している。
検査制御部111は、記憶部114に記憶されたデータベース114Aに基づいて、対象ソフトウェアを特定部112へ入力させるか否かを制御する。データベース114Aは、ソフトウェアの署名を保持しているテーブルを含んでいる。例えば、検査制御部111は、対象ソフトウェアの署名と一致する署名がデータベース114Aに保持されていない場合、検査対象のソフトウェアを特定部112に入力する。一方、検査制御部111は、対象ソフトウェアの署名と一致する署名がデータベース114Aに保持されている場合、対象ソフトウェアを特定部112に入力しない。すなわち、検査制御部111は、信頼性の低い対象ソフトウェアを特定部112に入力する一方で、信頼性の高い対象ソフトウェアを特定部112に入力しない。これにより、信頼性の高い対象ソフトウェアの検査を省略することができる。
データベース114Aは、検査部102による過去の検査によってバックドアが検出されなかったソフトウェアの全体のハッシュ値を保持するテーブルを含んでいてもよい。この場合、検査制御部111は、対象ソフトウェアの全体のハッシュ値を算出する。そして、検査制御部111は、算出された対象ソフトウェアの全体のハッシュ値と一致するハッシュ値がデータベース114Aに存在しない場合、対象ソフトウェアを特定部112へ入力する。一方、算出された対象ソフトウェアの全体のハッシュ値と一致するハッシュ値がデータベース114Aに存在する場合、検査制御部111は、対象ソフトウェアを特定部112へ入力しない。すなわち、検査制御部111は、信頼性の低い対象ソフトウェアを特定部112に入力する一方で、信頼性の高い対象ソフトウェアを特定部112に入力しない。これにより、信頼性の高い対象ソフトウェアの検査を省略することができる。
特定部112は、第1実施形態から第5実施形態で説明した特定部11と同様に、対象ソフトウェアに含まれる複数の機能にそれぞれ対応する複数の機能ブロック(つまり、コードブロック)を特定する。
検査制御部111は、特定部112にて特定された各機能ブロック(以下では、「対象機能ブロック」と呼ぶことがある)検査済みの機能ブロックであるか否かを判定する。検査制御部111は、対象機能ブロックが検査済みでない場合、対象機能ブロックを検査部102へ入力させる。一方、対象機能ブロックが検査済みである場合、検査制御部111は、対象機能ブロックを検査部102へ入力させない。例えば、データベース114Aは、検査部102による過去の検査によってバックドアが検出されなかった機能ブロックについてのハッシュ値を保持するテーブルを含んでいる。そして、検査制御部111は、特定部112にて特定された各機能ブロック(以下では、「対象機能ブロック」と呼ぶことがある)のハッシュ値を算出する。そして、検査制御部111は、算出されたハッシュ値と一致するハッシュ値がデータベース114Aに存在しない場合、対象機能ブロックが検査済みでないと判定する。一方、算出されたハッシュ値と一致するハッシュ値がデータベース114Aに存在する場合、検査制御部111は、対象機能ブロックが検査済みであると判定する。すなわち、検査制御部111は、対象機能ブロックの信頼度が高ければ、対象機能ブロックを検査部102へ入力させない一方で、対象機能ブロックの信頼度が低ければ、対象機能ブロックを検査部102へ入力させる。これにより、検査対象であるソフトウェアの一部の検査を省略することができるので、検査に掛かる時間を削減することができる。
また、データベース114Aは、機能ブロックの署名を保持するテーブルを含んでいてもよい。この場合、検査制御部111は、対象機能ブロックの署名と一致する署名がデータベース114Aに保持されてない場合、対象機能ブロックを検査部102へ入力させる。一方、対象機能ブロックの署名と一致する署名がデータベース114Aに保持されている場合、検査制御部111は、対象機能ブロックを検査部102へ入力させない。すなわち、検査制御部111は、対象機能ブロックの信頼度が高ければ、対象機能ブロックを検査部102へ入力させない一方で、対象機能ブロックの信頼度が低ければ、対象機能ブロックを検査部102へ入力させる。これにより、検査対象であるソフトウェアの一部の検査を省略することができるので、検査に掛かる時間を削減することができる。また、複数の製品(ソフトウェア)において用いられているコードブロックは、1つのソフトウェアについての検査時に1回だけ検査されることになるので、検査に掛かる時間を削減することができる。また、バージョンアップされたソフトウェアを検査する際には、バージョンアップ前のソフトウェアとの差分に対応する機能ブロックについてだけ検査されることになるので、検査に掛かる時間を削減することができる。
データ管理部113は、記憶部114に記憶されているデータベース114Aを管理する。例えば、データ管理部113は、取得部115によってバックドア検査装置110の外部から取得された、ソフトウェアの署名をデータベース114Aに登録する。また、データ管理部113は、検査部102による検査によってバックドアが検出されなかったソフトウェアの全体のハッシュ値を算出し、算出したハッシュ値をデータベース114Aに登録する。また、データ管理部113は、検査部102による検査によってバックドアが検出されなかった機能ブロックについてのハッシュ値を算出し、算出したハッシュ値をデータベース114Aに登録する。また、データ管理部113は、取得部115によってバックドア検査装置110の外部から取得された、機能ブロックの署名をデータベース114Aに登録する。
また、データ管理部113は、特定部112にて特定された各機能ブロックに関する情報をデータベース114Aに登録してもよい。また、データ管理部113は、特定部112にて作成されたコントロールフローグラフをデータベース114Aに登録してもよい。これらの各機能ブロックに関する情報及びコントロールフローグラフは、対象ソフトウェアについての解析の中間データである。
データ管理部113は、ソフトウェア又はコードブロックの作成者に関する情報をメタデータとしてデータベース114Aに登録してもよい。この情報に基づいて、検査制御部111は、対象ソフトウェア及び対象機能ブロックの信頼性を判定してもよい。
また、データ管理部113は、権限を必要とする、命令やAPI呼出に関する情報をメタデータとしてデータベース114Aに登録してもよい。
また、データ管理部113は、取得部115によってバックドア検査装置110の外部から取得された、バックドアであるコードブロックに関する情報を含むブラックリストをメタデータとしてデータベース114Aに登録してもよい。この情報に基づいて、検査制御部111は、対象機能ブロックの信頼性を判定してもよい。
また、データ管理部113は、同じ意味を持つ関数(例えば、文字列比較)に関する情報を含むリストをメタデータとしてデータベース114Aに登録してもよい。この情報を、特定部112は、機能ブロックの特定に用いてもよい。
なお、以上の説明では、データ管理部113、記憶部114、及び、取得部115が、バックドア検査装置110に含まれるものとして説明を行ったが、本実施形態は、これに限定されるものではない。例えば、データ管理部113、記憶部114、及び、取得部115は、バックドア検査装置110と別体で且つ通信可能なサーバ(不図示)に設けられてもよい。
以上の構成を有するバックドア検査装置110の処理動作の一例について説明する。図15は、第7実施形態におけるバックドア検査装置の処理動作の一例を示すフローチャートである。ここでは、特に、検査制御部111による入力制御を説明する。このフローチャートは、例えば、検査制御部111に対象ソフトウェアが入力されたときにスタートする。
検査制御部111は、対象ソフトウェアの署名と一致する署名がデータベース114Aに保持されているか否かを判定する(ステップS101)。
対象ソフトウェアの署名と一致する署名がデータベース114Aに保持されている場合(ステップS101YES)、検査制御部111は対象ソフトウェアを特定部112に入力せず、処理フローは終了する。
対象ソフトウェアの署名と一致する署名がデータベース114Aに保持されていない場合(ステップS101NO)、検査制御部111は、対象ソフトウェアの全体のハッシュ値を算出する(ステップS102)。
検査制御部111は、算出された対象ソフトウェアの全体のハッシュ値と一致するハッシュ値がデータベース114Aに存在するか否かを判定する(ステップS103)。
算出された対象ソフトウェアの全体のハッシュ値と一致するハッシュ値がデータベース114Aに存在する場合(ステップS103YES)、検査制御部111は対象ソフトウェアを特定部112へ入力せず、処理フローは終了する。なお、このとき、検査制御部111は、バックドア検査装置110に第3実施形態のようなレポート生成部22に含まれる場合には、データベース114Aに保持されている対象ソフトウェアの過去の検査結果を含む検査結果レポートを生成させる制御を行ってもよい。
算出された対象ソフトウェアの全体のハッシュ値と一致するハッシュ値がデータベース114Aに存在しない場合(ステップS103NO)、検査制御部111は、対象ソフトウェアを特定部112へ入力する(ステップS104)。これにより、特定部112は、入力された対象ソフトウェアに含まれる複数の機能にそれぞれ対応する複数の機能ブロックを特定する。
検査制御部111は、特定部112にて特定された各機能ブロック(対象機能ブロック)のハッシュ値を算出する(ステップS105)。
検査制御部111は、各対象機能ブロックについて算出されたハッシュ値と一致するハッシュ値がデータベース114Aに存在するか否かを判定する(ステップS106)。
検査制御部111は、算出されたハッシュ値と一致するハッシュ値がデータベース114Aに存在しない対象機能ブロックを検査部102へ入力させる(ステップS107)。
<他の実施形態>
<1>ソフトウェアは、しばしば難読化されていることがある。難読化に対応するために、第1実施形態から第5実施形態のバックドア検査装置に、難読化解除部を設けてもよい。図16は、他の実施形態<1>におけるバックドア検査装置の一例を示すブロック図である。図16は、第1実施形態のバックドア検査装置に難読化解除部を設けた場合のバックドア検査装置の構成が示されている。
図16に示すバックドア検査装置10において難読化解除部14は、対象ソフトウェアの難読化を解除する処理を実行し、難読化解除後の対象ソフトウェアを特定部11へ出力する。
<2>対象ソフトウェアが機器のファームウェアである場合、ファームウェアからプログラムを抽出する必要がある。このため、ファームウェアからプログラムを抽出する抽出部を、第1実施形態から第5実施形態のバックドア検査装置に設けてもよい。図17は、他の実施形態<2>におけるバックドア検査装置の一例を示すブロック図である。図17は、第1実施形態のバックドア検査装置に抽出部を設けた場合のバックドア検査装置の構成が示されている。
図17に示すバックドア検査装置10において抽出部15は、対象ソフトウェアであるファームウェアからプログラムを抽出し、抽出したプログラムを特定部11へ出力する。特定部11は、このプログラムに対して処理を行う。例えば、抽出部15は、binwalk、foremostなどのツールを用いて、ファームウェアからプログラムを抽出してもよい。
<3>第1実施形態から第5実施形態のバックドア検査装置に、検出されたバックドアに対する対処処理を実行する対処処理実行部を設けてもよい。図18は、他の実施形態<3>におけるバックドア検査装置の一例を示すブロック図である。図18は、第1実施形態のバックドア検査装置に対処処理実行部を設けた場合のバックドア検査装置の構成が示されている。
対処処理実行部16は、検査部13-1~13-Nにて検出されたバックドアを、対象ソフトウェアから取り除く処理を行ってもよい。又は、対処処理実行部16は、検査部13-1~13-Nにてバックドアが検出されることをトリガとして、アラートを挙げる処理を行ってもよい。
<4>バグベースのバックドアへの対策のために、第1実施形態から第5実施形態のバックドア検査装置に、脆弱性発見部を設けてもよい。図19は、他の実施形態<4>におけるバックドア検査装置の一例を示すブロック図である。図19は、第1実施形態のバックドア検査装置に脆弱性発見部を設けた場合のバックドア検査装置の構成が示されている。
脆弱性発見部17は、既存の脆弱性発見方法を用いて、特定部11によって特定された各機能ブロックにおける脆弱な部分を探す。脆弱性発見部17によって発見された脆弱な部分に関する情報は、上記の検査結果レポートに含められてもよい。
<5>第1実施形態から第5実施形態のバックドア検査装置は、バイナリ解析装置のプラグインとして用いられてもよい。図20は、他の実施形態<5>におけるバックドア検査装置の利用方法の一例を示すブロック図である。図20は、一例として、第1実施形態のバックドア検査装置がプラグインとして用いられるケースを示している。
バイナリ解析装置200は、例えばIDA ProやGhidraなどのバイナリ解析ツールを用いて、入力されたソフトウェアを解析する。例えば、バイナリ解析装置200は、入力されたソフトウェアを逆アセンブル(又はデコンパイル)し、逆アセンブルされた(又はデコンパイルされた)バイナリ又はコードブロックを、バックドア検査装置10へ出力する。また、バイナリ解析装置200は、認証ルーチン又はパーサ等に関する情報を、バックドア検査装置10へ出力してもよい。
バックドア検査装置10は、バックドアを含むと判定されたコードブロックに関する情報、又は、認証の回避に対応するコントロールフローに関する情報を、バイナリ解析装置200へ出力する。
<6>図21は、バックドア検査装置のハードウェア構成例を示す図である。図21においてバックドア検査装置300は、プロセッサ301と、メモリ302とを有している。プロセッサ301は、例えば、マイクロプロセッサ、MPU(Micro Processing Unit)、又はCPU(Central Processing Unit)であってもよい。プロセッサ301は、複数のプロセッサを含んでもよい。メモリ302は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ302は、プロセッサ301から離れて配置されたストレージを含んでもよい。この場合、プロセッサ301は、図示されていないI/Oインタフェースを介してメモリ302にアクセスしてもよい。
第1実施形態から第7実施形態及び他の実施形態<1>から他の実施形態<5>のバックドア検査装置10,20,30,40,100,110は、それぞれ、図21に示したハードウェア構成を有することができる第1実施形態から第7実施形態及び他の実施形態<1>から他の実施形態<5>のバックドア検査装置10,20,30,40,100,110の特定部11,112と、振分部12と、検査部13,102と、難読化解除部14と、抽出部15と、対処処理実行部16と、脆弱性発見部17と、対策チェック部21と、レポート生成部22,42と、表示制御部31と、故意度判定部41と、検査制御部101,111と、データ管理部113と、取得部115とは、は、プロセッサ301がメモリ302に記憶されたプログラムを読み込んで実行することにより実現されてもよい。記憶部114は、メモリ302によって実現されてもよい。プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、バックドア検査装置10,20,30,40,100,110に供給することができる。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)を含む。さらに、非一時的なコンピュータ可読媒体の例は、CD-ROM(Read Only Memory)、CD-R、CD-R/Wを含む。さらに、非一時的なコンピュータ可読媒体の例は、半導体メモリを含む。半導体メモリは、例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってバックドア検査装置10,20,30,40,100,110に供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをバックドア検査装置10,20,30,40,100,110に供給できる。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
10 バックドア検査装置
11 特定部
11A 特定処理部
11B 構造解析部
12 振分部
13 検査部
14 難読化解除部
15 抽出部
16 対処処理実行部
17 脆弱性発見部
20 バックドア検査装置
21 対策チェック部
22 レポート生成部
30 バックドア検査装置
31 表示制御部
40 バックドア検査装置
41 故意度判定部
42 レポート生成部
100 バックドア検査装置
101 検査制御部
102 検査部
110 バックドア検査装置
111 検査制御部
112 特定部
113 データ管理部
114 記憶部
114A データベース
115 取得部

Claims (9)

  1. 検査対象であるソフトウェアに含まれる複数の機能にそれぞれ対応する複数の機能ブロックを特定する特定手段と、
    それぞれ異なるタイプのバックドアについての検査処理を、入力された機能ブロックに対して実行する複数の検査手段と、
    特定された各機能ブロックに対応する機能に応じて、前記特定された各機能ブロックを前記複数の検査手段のうちの少なくとも一部に入力する振分手段と、
    を具備するバックドア検査装置。
  2. 前記特定手段は、
    前記ソフトウェアにおいて、予め定められた所定機能に対応する所定機能ブロックを特定する特定処理手段と、
    前記特定された所定機能ブロックを起点としてコントロールフローを辿ることによって、前記ソフトウェアの構造を解析すると共に、前記所定機能以外の機能に対応する機能ブロックを特定する構造解析手段と、
    を具備する、請求項1記載のバックドア検査装置。
  3. 前記特定処理手段は、複数の前記所定機能と各所定機能に対応する所定機能ブロックの特徴とを対応付けた特定ルールテーブルを用いて、前記所定機能ブロックを特定する、
    請求項2記載のバックドア検査装置。
  4. 前記振分手段は、前記複数の機能と各機能に対応する振分先の1つ又は複数の検査手段とを対応付けた振分ルールテーブルを用いて、前記特定された各機能ブロックを振り分ける、
    請求項1から3のいずれか1項に記載のバックドア検査装置。
  5. 検査対象の機能ブロックに対する前記検査処理の結果を含むレポートを生成するレポート生成手段をさらに具備する、
    請求項1から4のいずれか1項に記載のバックドア検査装置。
  6. セキュリティ対策についてのチェックポイントを規定するチェックルールテーブルを用いて、前記検査対象の機能ブロックに対するセキュリティ対策の有無を判定する判定手段をさらに具備し、
    前記レポート生成手段は、前記検査対象の機能ブロックに対するセキュリティ対策の有無に応じた危険度指標を前記検査処理の結果に対応付けて、前記レポートに含める、
    請求項5記載のバックドア検査装置。
  7. 前記ソフトウェアの構造の解析によって得られたコントロールフローグラフを、前記複数の検査手段による検査処理によって検出された、バックドアに対応する機能ブロック又はバックドアに対応する制御フローを強調した状態で、表示手段に表示させる制御を実行する表示制御手段をさらに具備する、
    請求項2記載のバックドア検査装置。
  8. バックドア検査装置によって実行されるバックドア検査方法であって、
    検査対象であるソフトウェアに含まれる複数の機能にそれぞれ対応する複数の機能ブロックを特定し、
    特定された各機能ブロックに対応する機能に応じて、前記特定された各機能ブロックを前記バックドア検査装置の複数の検査手段のうちの少なくとも一部に入力し、
    前記複数の検査手段が、入力された機能ブロックに対して、それぞれ異なるタイプのバックドアについての検査処理を実行する、
    バックドア検査方法。
  9. バックドア検査装置に、
    検査対象であるソフトウェアに含まれる複数の機能にそれぞれ対応する複数の機能ブロックを特定し、
    特定された各機能ブロックに対応する機能に応じて、前記特定された各機能ブロックを前記バックドア検査装置の複数の検査手段のうちの少なくとも一部に入力し、
    前記複数の検査手段が、入力された機能ブロックに対して、それぞれ異なるタイプのバックドアについての検査処理を実行する、
    処理を、実行させるプログラム。
JP2021541827A 2019-08-27 2019-08-27 バックドア検査装置、バックドア検査方法、及びプログラム Active JP7235126B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/033409 WO2021038704A1 (ja) 2019-08-27 2019-08-27 バックドア検査装置、バックドア検査方法、及び非一時的なコンピュータ可読媒体

Publications (3)

Publication Number Publication Date
JPWO2021038704A1 JPWO2021038704A1 (ja) 2021-03-04
JPWO2021038704A5 JPWO2021038704A5 (ja) 2022-04-19
JP7235126B2 true JP7235126B2 (ja) 2023-03-08

Family

ID=74683994

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021541827A Active JP7235126B2 (ja) 2019-08-27 2019-08-27 バックドア検査装置、バックドア検査方法、及びプログラム

Country Status (3)

Country Link
US (1) US20220284109A1 (ja)
JP (1) JP7235126B2 (ja)
WO (1) WO2021038704A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240045973A1 (en) * 2021-03-23 2024-02-08 Nec Corporation Symbol narrowing-down apparatus, program analysis apparatus, symbol extraction method, program analysis method, and non-transitory computer readable medium
CN113206849B (zh) * 2021-04-29 2022-12-20 杭州安恒信息安全技术有限公司 一种基于ghidra的漏洞扫描方法、装置及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007200102A (ja) 2006-01-27 2007-08-09 Nec Corp 不正コードおよび不正データのチェックシステム、プログラムおよび方法
US20100031353A1 (en) 2008-02-04 2010-02-04 Microsoft Corporation Malware Detection Using Code Analysis and Behavior Monitoring
JP2012533104A (ja) 2009-07-10 2012-12-20 エフ−セキュア コーポレーション ウイルス対策スキャン
WO2019225214A1 (ja) 2018-05-21 2019-11-28 日本電信電話株式会社 判定方法、判定装置および判定プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7472418B1 (en) * 2003-08-18 2008-12-30 Symantec Corporation Detection and blocking of malicious code
JP2009098851A (ja) * 2007-10-16 2009-05-07 Mitsubishi Electric Corp 不正コード検出システム
JP4798278B2 (ja) * 2009-09-17 2011-10-19 コニカミノルタビジネステクノロジーズ株式会社 ジョブ処理システムおよび画像処理装置、プログラム、画像処理装置の制御方法
JP5690689B2 (ja) * 2011-09-16 2015-03-25 Kddi株式会社 アプリケーション解析装置およびプログラム
US9424427B1 (en) * 2012-03-16 2016-08-23 Bitdefender IPR Management Ltd. Anti-rootkit systems and methods
US8990944B1 (en) * 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
KR101947760B1 (ko) * 2018-09-04 2019-02-13 김종현 스마트콘트랙트의 보안 인증 서버

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007200102A (ja) 2006-01-27 2007-08-09 Nec Corp 不正コードおよび不正データのチェックシステム、プログラムおよび方法
US20100031353A1 (en) 2008-02-04 2010-02-04 Microsoft Corporation Malware Detection Using Code Analysis and Behavior Monitoring
JP2012533104A (ja) 2009-07-10 2012-12-20 エフ−セキュア コーポレーション ウイルス対策スキャン
WO2019225214A1 (ja) 2018-05-21 2019-11-28 日本電信電話株式会社 判定方法、判定装置および判定プログラム

Also Published As

Publication number Publication date
JPWO2021038704A1 (ja) 2021-03-04
WO2021038704A1 (ja) 2021-03-04
US20220284109A1 (en) 2022-09-08

Similar Documents

Publication Publication Date Title
Bao et al. {BYTEWEIGHT}: Learning to recognize functions in binary code
US11048798B2 (en) Method for detecting libraries in program binaries
US20120072988A1 (en) Detection of global metamorphic malware variants using control and data flow analysis
KR101640479B1 (ko) 소스코드기반 소프트웨어 취약점 공격행위 분석시스템
WO2021038705A1 (ja) バックドア検査装置、バックドア検査方法、及び非一時的なコンピュータ可読媒体
WO2018127794A1 (en) Management of security vulnerabilities
JP7235126B2 (ja) バックドア検査装置、バックドア検査方法、及びプログラム
JP2019514119A (ja) ハイブリッドプログラムバイナリ特徴の抽出及び比較
US20220277079A1 (en) Backdoor inspection device, method, and non-transitory computer-readable medium
CN115310087A (zh) 一种基于抽象语法树的网站后门检测方法和系统
Chen et al. Automatic Mining of Security-Sensitive Functions from Source Code.
EP3945441B1 (en) Detecting exploitable paths in application software that uses third-party libraries
JP2009129204A (ja) コード検査システム及びコード検査方法及びプログラム
US20240045973A1 (en) Symbol narrowing-down apparatus, program analysis apparatus, symbol extraction method, program analysis method, and non-transitory computer readable medium
RU168346U1 (ru) Устройство выявления уязвимостей
US20240037215A1 (en) Program analysis device, program analysis method, and computer-readable medium
US20230229783A1 (en) System, method, and non-transitory computer-readable medium
Xie et al. A new detection method for stack overflow vulnerability based on component binary code for third-party component
KR101092342B1 (ko) 파일 축약 정보 생성, 시그니쳐 생성 및 시그너쳐 패턴 검증 장치 및 방법
JP7509312B2 (ja) プログラム解析装置、プログラム解析方法、及び、プログラム
JPWO2020008632A1 (ja) 仮説推論装置、仮説推論方法、及びプログラム
CN113742724B (zh) 一种网络协议软件的安全机制缺陷检测方法
US11574049B2 (en) Security system and method for software to be input to a closed internal network
WO2023073821A1 (ja) バックドア検知装置、バックドア検知方法、及び記録媒体
Xiao et al. Accurate and Efficient Recurring Vulnerability Detection for IoT Firmware

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220202

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230206

R151 Written notification of patent or utility model registration

Ref document number: 7235126

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151