(57)【要約】      （修正有）【課題】エンベデッド機器のセキュリティ脆弱性分析のためにハードウェアボード上の動的バイナリ分析装置および方法を提供する。【解決手段】最初にエンベデッド機器の情報を収集するＳ２１０。次にエンベデッド機器とＪＴＡＧベースでインタフェーシングして、収集された情報に基づいて動的バイナリ分析のための情報を生成しＳ２２０、ソフトウェア処理部がハードウェア処理部とインタフェーシングして、動的バイナリ分析のための情報を受信してディスアセンブリングを行うＳ２３０。ディスアセンブリングを行った結果に基づいてエンベデッド機器のコアプラットフォームを選択するＳ２４０。そしてコアプラットフォームに対する動的バイナリ分析を行ってエンベデッド機器のセキュリティ脆弱性を分析するＳ２５０。【選択図】図４
2018073422.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアボード上の動的バイナリ分析装置を用いる方法において、
エンベデッド機器とインタフェーシングして、収集された情報に基づいて動的バイナリ分析のための情報を生成するステップと、
ソフトウェア処理部がハードウェア処理部とインタフェーシングして、前記動的バイナリ分析のための情報を受信してディスアセンブリングを行うステップと、
前記ディスアセンブリングを行った結果に基づいて前記エンベデッド機器のコアプラットフォームを選択するステップと、
前記コアプラットフォームに対する前記動的バイナリ分析を行って前記エンベデッド機器のセキュリティ脆弱性を分析するステップとを含むことを特徴とするハードウェアボード上の動的バイナリ分析方法。
【請求項２】
前記情報を生成するステップは、
前記収集された情報に基づいて、前記エンベデッド機器のコア情報、レジストリ情報およびバイナリ情報を生成することを特徴とする請求項１に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項３】
前記コア情報は、
前記エンベデッド機器のＣＰＵの種類および詳細情報を含むことを特徴とする請求項２に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項４】
前記レジストリ情報は、
前記エンベデッド機器のフラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）に格納されたレジストリ情報に相応し、前記エンベデッド機器のＣＰＵが用いるレジストリ個数情報およびレジストリに対する初期値情報を含むことを特徴とする請求項３に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項５】
前記バイナリ情報は、
前記エンベデッド機器のＳＤＲＡＭに格納されたバイナリを収集して生成されることを特徴とする請求項４に記載の動的バイナリ分析方法。
【請求項６】
前記情報を生成するステップは、
前記動的バイナリ分析装置が、デバッギング装置を用いて前記エンベデッド機器とインタフェーシングして、前記エンベデッド機器のＣＰＵ、フラッシュメモリおよびＳＤＲＡＭから収集した情報を用いて、前記動的バイナリ情報分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成することを特徴とする請求項５に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項７】
前記ディスアセンブリングを行うステップは、
前記コア情報、前記レジストリ情報および前記バイナリ情報をベアマシンプラットフォームが解析するために、前記ディスアセンブリングを行うことを特徴とする請求項６に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項８】
前記コアプラットフォームを選択するステップは、
前記ディスアセンブリングを行った結果に基づいて前記ベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器のコアプラットフォームを選択することを特徴とする請求項７に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項９】
前記分析するステップは、
前記コアプラットフォームに対するテイント分析（Ｔａｉｎｔ  Ａｎａｌｙｓｉｓ）手法およびコンコリック実行（Ｃｏｎｃｏｌｉｃ  Ｅｘｅｃｕｔｉｏｎ）手法を共に用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析することを特徴とする請求項８に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項１０】
前記分析するステップは、
脆弱性データベースとセキュアコーディングデータベースに基づいて前記コアプラットフォームに対してテイント分析を行って、セキュリティ脆弱性分析およびセキュアコーディング検証の少なくとも１つを行うことを特徴とする請求項９に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項１１】
エンベデッド機器から収集された情報から動的バイナリ分析のための情報を生成するハードウェア処理部と、
前記動的バイナリ分析のための情報に対してディスアセンブリングを行って前記エンベデッド機器のコアプラットフォームを選択し、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析するソフトウェア処理部とを含むことを特徴とするハードウェアボード上の動的バイナリ分析装置。
【請求項１２】
前記ハードウェア処理部は、
前記エンベデッド機器とインタフェーシングして、収集された情報から前記動的バイナリ分析のための情報を生成する情報生成部と、
前記ソフトウェア処理部とインタフェーシングして、前記動的バイナリ分析のための情報を前記ソフトウェア処理部に伝達するハードウェアインタフェース部とを含むことを特徴とする請求項１１に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項１３】
前記ソフトウェア処理部は、
前記ハードウェア処理部とインタフェーシングして、前記動的バイナリ分析のための情報を受信するソフトウェアインタフェース部と、
前記動的バイナリ分析のための情報に対して前記ディスアセンブリングを行う解析部と、
前記ディスアセンブリングを行った結果に基づいて前記コアプラットフォームを選択する選択部と、
前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析する分析部とを含むことを特徴とする請求項１２に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項１４】
前記情報生成部は、
前記収集された情報に基づいて、前記エンベデッド機器のコア情報、レジストリ情報およびバイナリ情報を生成することを特徴とする請求項１３に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項１５】
前記情報生成部は、
前記動的バイナリ分析装置が、デバッギング装置を用いて前記エンベデッド機器とインタフェーシングして、前記エンベデッド機器のＣＰＵ、フラッシュメモリおよびＳＤＲＡＭから収集した情報を用いて、前記動的バイナリ情報分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成することを特徴とする請求項１４に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項１６】
前記解析部は、
前記コア情報、前記レジストリ情報および前記バイナリ情報をベアマシンプラットフォームが解析するために、前記ディスアセンブリングを行うことを特徴とする請求項１５に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項１７】
前記選択部は、
前記ディスアセンブリングを行った結果に基づいて前記ベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器のコアプラットフォームを選択することを特徴とする請求項１６に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項１８】
前記選択部は、
前記ＣＰＵのコア情報、前記フラッシュメモリのレジストリ情報および前記ＳＤＲＡＭのバイナリ情報を前記プラットフォーム情報にそれぞれマッピングして、一致するコアプラットフォームを前記エンベデッド機器のコアプラットフォームとして選択することを特徴とする請求項１７に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項１９】
前記分析部は、
前記コアプラットフォームに対するテイント分析（Ｔａｉｎｔ  Ａｎａｌｙｓｉｓ）手法およびコンコリック実行（Ｃｏｎｃｏｌｉｃ  Ｅｘｅｃｕｔｉｏｎ）手法を共に用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析することを特徴とする請求項１８に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項２０】
前記分析部は、
脆弱性データベースとセキュアコーディングデータベースに基づいて前記コアプラットフォームに対してテイント分析を行って、セキュリティ脆弱性分析およびセキュアコーディング検証の少なくとも１つを行うことを特徴とする請求項１９に記載のハードウェアボード上の動的バイナリ分析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンベデッドセキュリティ技術に関し、より詳細には、エンベデッド機器のセキュリティ脆弱性を分析する技術に関する。
【背景技術】
【０００２】
エンベデッド機器およびシステムは、一般的なＰＣのほか、各種電子製品および情報機器などに設けられたマイクロプロセッサに予め設定された特定機能を行うソフトウェアが内蔵された（Ｅｍｂｅｄｄｅｄ）システムである。
【０００３】
このようなエンベデッドソフトウェアとエンベデッドハードウェア技術は、最近、ＩＴ産業の急成長によって、モノのインターネット（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）、ユビキタスコンピューティング、デジタルコンバージェンス、モバイルインテリジェンスなどの先端技術分野に必須の要素として位置づけられている。
【０００４】
したがって、エンベデッド産業の発達と先端技術の開発に相応するエンベデッドシステムの強いセキュリティ対策が必要な状況である。
【０００５】
最近、エンベデッド機器のセキュリティ脆弱性を分析するための既存のハードウェアベースのＩＣＤ（Ｉｎ−Ｃｉｒｃｕｉｔ  Ｄｅｂｕｇｇｅｒ）装置はデバッギング中心の装置であって、セキュリティ脆弱性の分析は専門家の努力によって行うことができる。
【０００６】
また、既存のソフトウェアベースの動的バイナリ分析装置は、特定装置に設けて、部分的にエンベデッド機器のセキュリティ脆弱性を分析できる。
【０００７】
しかし、エンベデッド機器のセキュリティ脆弱性分析のためのＤＢＡ装置とＩＣＤ装置の連動が難しいため、セキュリティ脆弱性の分析時間および専門スタッフの代替に限界がある。
【０００８】
一方、韓国公開特許第１０−２０１６−００７４０２８号の「産業内モノのインターネット環境における産業機密情報の追跡性確保のための状況認知型暗号化ベースのエンベデッドセキュリティフレームワーク」は、産業環境に適用可能な異機種のノードから構成されたモノのインターネットネットワーク網内に連結されたすべてのエンベデッド装置を設計できるフレームワークの標準を提示することにより、モノのインターネットネットワーク上に接続された非認可ハッキング攻撃あるいは内部の大規模機密資料流出の試みを事前に遮断できる、セキュリティが強化されたモノのインターネットエンベデッドシステムを開示している。
【０００９】
しかし、韓国公開特許第１０−２０１６−００７４０２８号は、エンベデッド装置のセキュリティ脆弱性を分析する方法については言及していない。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、ＩＴデバイスのセキュリティ脆弱性分析のためにハードウェアボード上の動的バイナリ分析方法を提供することを目的とする。
【００１１】
また、本発明は、既存のＩＣＤ装置とＤＢＡ装置を結合するためのモジュールを追加して互いに連動可能に統合することで、エンベデッド機器に対するセキュリティ脆弱性を分析することを目的とする。
【００１２】
さらに、本発明は、エンベデッド機器のセキュリティ脆弱性の分析において、専門スタッフ不足、分析時間制限、多様な個別装置の理解および使用方法習得などの問題点を解決するための統合フレームワークを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の目的を達成するための、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法は、ハードウェアボード上の動的バイナリ分析装置を用いる方法において、エンベデッド機器とインタフェーシングして、収集された情報に基づいて動的バイナリ分析のための情報を生成するステップと、ソフトウェア処理部がハードウェア処理部とインタフェーシングして、前記動的バイナリ分析のための情報を受信してディスアセンブリングを行うステップと、前記ディスアセンブリングを行った結果に基づいて前記エンベデッド機器のコアプラットフォームを選択するステップと、前記コアプラットフォームに対する前記動的バイナリ分析を行って前記エンベデッド機器のセキュリティ脆弱性を分析するステップとを含む。
【００１４】
この時、前記情報を生成するステップは、前記収集された情報に基づいて、前記エンベデッド機器のコア情報、レジストリ情報およびバイナリ情報を生成できる。
【００１５】
この時、前記コア情報は、前記エンベデッド機器のＣＰＵの種類および詳細情報を含むことができる。
【００１６】
この時、前記レジストリ情報は、前記エンベデッド機器のフラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）に格納されたレジストリ情報に相応し、前記エンベデッド機器のＣＰＵが用いるレジストリ個数情報およびレジストリに対する初期値情報を含むことができる。
【００１７】
この時、前記バイナリ情報は、前記エンベデッド機器のＳＤＲＡＭに格納されたバイナリを収集して生成される。
【００１８】
この時、前記情報を生成するステップは、前記動的バイナリ分析装置が、デバッギング装置を用いて前記エンベデッド機器とインタフェーシングして、前記エンベデッド機器のＣＰＵ、フラッシュメモリおよびＳＤＲＡＭから収集した情報を用いて、前記動的バイナリ情報分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【００１９】
この時、前記ディスアセンブリングを行うステップは、前記コア情報、前記レジストリ情報および前記バイナリ情報をベアマシンプラットフォームが解析するために、前記ディスアセンブリングを行うことができる。
【００２０】
この時、前記コアプラットフォームを選択するステップは、前記ディスアセンブリングを行った結果に基づいて前記ベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器のコアプラットフォームを選択できる。
【００２１】
この時、前記分析するステップは、前記コアプラットフォームに対するテイント分析（Ｔａｉｎｔ  Ａｎａｌｙｓｉｓ）手法およびコンコリック実行（Ｃｏｎｃｏｌｉｃ  Ｅｘｅｃｕｔｉｏｎ）手法を共に用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【００２２】
この時、前記分析するステップは、脆弱性データベースとセキュアコーディングデータベースに基づいて前記コアプラットフォームに対してテイント分析を行って、セキュリティ脆弱性分析およびセキュアコーディング検証の少なくとも１つを行うことができる。
【００２３】
また、上記の目的を達成するための、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析装置は、エンベデッド機器から収集された情報から動的バイナリ分析のための情報を生成するハードウェア処理部と、前記動的バイナリ分析のための情報に対してディスアセンブリングを行って前記エンベデッド機器のコアプラットフォームを選択し、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析するソフトウェア処理部とを含む。
【００２４】
この時、前記ハードウェア処理部は、前記エンベデッド機器とＪＴＡＧベースでインタフェーシングして、収集された情報から前記動的バイナリ分析のための情報を生成する情報生成部と、前記ソフトウェア処理部とインタフェーシングして、前記動的バイナリ分析のための情報を前記ソフトウェア処理部に伝達するハードウェアインタフェース部とを含むことができる。
【００２５】
この時、前記ソフトウェア処理部は、前記ハードウェア処理部とインタフェーシングして、前記動的バイナリ分析のための情報を受信するソフトウェアインタフェース部と、前記動的バイナリ分析のための情報に対して前記ディスアセンブリングを行う解析部と、前記ディスアセンブリングを行った結果に基づいて前記コアプラットフォームを選択する選択部と、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析する分析部とを含むことができる。
【００２６】
この時、前記情報生成部は、前記収集された情報に基づいて、前記エンベデッド機器のコア情報、レジストリ情報およびバイナリ情報を生成できる。
【００２７】
この時、前記情報生成部は、前記動的バイナリ分析装置が、デバッギング装置を用いて前記エンベデッド機器とＪＴＡＧベースでインタフェーシングして、前記エンベデッド機器のＣＰＵ、フラッシュメモリおよびＳＤＲＡＭから収集した情報を用いて、前記動的バイナリ情報分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【００２８】
この時、前記解析部は、前記コア情報、前記レジストリ情報および前記バイナリ情報をベアマシンプラットフォームが解析するために、前記ディスアセンブリングを行うことができる。
【００２９】
この時、前記選択部は、前記ディスアセンブリングを行った結果に基づいて前記ベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器のコアプラットフォームを選択できる。
【００３０】
この時、前記選択部は、前記ＣＰＵのコア情報、前記フラッシュメモリのレジストリ情報および前記ＳＤＲＡＭのバイナリ情報を前記プラットフォーム情報にそれぞれマッピングして、一致するコアプラットフォームを前記エンベデッド機器のコアプラットフォームとして選択できる。
【００３１】
この時、前記分析部は、前記コアプラットフォームに対するテイント分析（Ｔａｉｎｔ  Ａｎａｌｙｓｉｓ）手法およびコンコリック実行（Ｃｏｎｃｏｌｉｃ  Ｅｘｅｃｕｔｉｏｎ）手法を共に用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【００３２】
この時、前記分析部は、脆弱性データベースとセキュアコーディングデータベースに基づいて前記コアプラットフォームに対してテイント分析を行って、セキュリティ脆弱性分析およびセキュアコーディング検証の少なくとも１つを行うことができる。
【発明の効果】
【００３３】
本発明は、エンベデッド機器のセキュリティ脆弱性分析のためにハードウェアボード上の動的バイナリ分析方法を提供することを目的とする。
【００３４】
また、本発明は、既存のＩＣＤ装置とＤＢＡ装置を結合するためのモジュールを追加して互いに連動可能に統合することで、エンベデッド機器に対するセキュリティ脆弱性を分析することを目的とする。
【００３５】
さらに、本発明は、エンベデッド機器のセキュリティ脆弱性の分析において、専門スタッフ不足、分析時間制限、多様な個別装置の理解および使用方法習得などの問題点を解決するための統合フレームワークを提供することを目的とする。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析装置を示すブロック図である。
【図２】図１に示されたハードウェア処理部の一例を細部的に示すブロック図である。
【図３】図１に示されたソフトウェア処理部の一例を細部的に示すブロック図である。
【図４】本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法を示す動作フローチャートである。
【図５】本発明の一実施形態に係るエンベデッドシステムのセキュリティ脆弱性を分析するハードウェアボード上の動的バイナリ分析装置を細部的に示す図である。
【図６】本発明の一実施形態に係るコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【００３７】
以下、本発明を添付した図面を参照して詳細に説明する。ここで、繰り返される説明、本発明の要旨をあいまいにし得る公知の機能、および構成に関する詳細な説明は省略する。本発明の実施形態は、当業界における平均的な知識を有する者に本発明をより完全に説明するために提供されるものである。したがって、図面における要素の形状および大きさなどはより明確な説明のために誇張されることがある。
【００３８】
明細書全体において、ある部分がある構成要素を「含む」とする時、これは、特に反対の記載がない限り、他の構成要素を除くのではなく、他の構成要素をさらに包含できることを意味する。
【００３９】
以下、本発明に係る好ましい実施形態を添付した図面を参照して詳細に説明する。
【００４０】
図１は、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析装置を示すブロック図である。
【００４１】
図１を参照すれば、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析装置１００は、ハードウェア処理部１１０と、ソフトウェア処理部１２０と、ユーザインタフェース部１３０とを含む。
【００４２】
本発明の一実施形態によれば、動的バイナリ分析装置１００は、ハードウェアパーツに相応するハードウェア処理部１１０とソフトウェアパーツに相応するソフトウェア処理部１２０とが互いにインタフェーシングして、ハードウェアボード上で動的バイナリ分析を提供できる。
【００４３】
ハードウェア処理部１１０は、エンベデッド機器１０から収集した情報から動的バイナリ分析のための情報を生成できる。
【００４４】
この時、ハードウェア処理部１１０は、動的バイナリ分析装置１００のハードウェアパーツ（Ａｄｖａｎｃｅｄ  ＩＣＥ／ＩＣＤ装置）３１０に相応し得る。
【００４５】
すなわち、ハードウェア処理部１１０は、ロジッグ＆ピンアウトオートスキャナ（Ｌｏｇｉｃ＆Ｐｉｎｏｕｔ  Ａｕｔｏ−Ｓｃａｎｎｅｒ）３１１と、ターゲットインタフェーシングモジュール（Ｔａｒｇｅｔ  Ｉｎｔｅｒｆａｃｉｎｇ  Ｍｏｄｕｌｅ）３１２と、Ａ−ＩＣＤオペレーティングモジュール（Ａ−ＩＣＤ  Ｏｐｅｒａｔｉｎｇ  Ｍｏｄｕｌｅ）３１３と、コアインフォジェネレータ（Ｃｏｒｅ  Ｉｎｆｏ  Ｇｅｎｅｒａｔｏｒ）３１４と、ＨＷ  Ｉ／Ｆモジュール（ＨＷ  Ｉ／Ｆ  Ｍｏｄｕｌｅ）３１５とを含むアドバンスト（Ａｄｖａｎｃｅｄ）ＩＣＥ／ＩＣＤ装置３１０に相応し得る。
【００４６】
ロジッグ＆ピンアウトオートスキャナ（Ｌｏｇｉｃ＆Ｐｉｎｏｕｔ  Ａｕｔｏ−Ｓｃａｎｎｅｒ）３１１は、ＪＴＡＧ  Ｉ／Ｆ（ＳＷＤ）を用いてエンベデッド機器１０を自動的にスキャニングしてインタフェーシングできる。
【００４７】
ターゲットインタフェーシングモジュール（Ｔａｒｇｅｔ  Ｉｎｔｅｒｆａｃｉｎｇ  Ｍｏｄｕｌｅ）３１２は、エンベデッド機器１０のＣＰＵ１１、Ｆｌａｓｈ  Ｍｅｍｏｒｙ１２およびＳＤＲＡＭ１３をインタフェーシングできる。
【００４８】
Ａ−ＩＣＤオペレーティングモジュール（Ａ−ＩＣＤ  Ｏｐｅｒａｔｉｎｇ  Ｍｏｄｕｌｅ）３１３は、アドバンストＩＣＥ／ＩＣＤ装置に対する全般的な運営を行うことができる。
【００４９】
ＪＴＡＧ  Ｉ／Ｆ（ＳＷＤ）は、エンベデッド機器１０をＪＴＡＧベースでインタフェーシングするデバッギング装置に相応し得る。
【００５０】
ハードウェア処理部１１０は、デバッギング装置を用いてエンベデッド機器１０とＪＴＡＧベースでインタフェーシングできる。
【００５１】
この時、デバッギング装置は、エンベデッド機器１０にインタフェーシングを行う多様な装置に相応し得る。
【００５２】
例えば、デバッギング装置に相応し得るＪＴＡＧ  Ｉ／Ｆ（ＳＷＤ）は、チップの内部にバウンダリセル（Ｂｏｕｎｄａｒｙ  Ｃｅｌｌ）を生成し、外部のピンと一対一で連結され、チャネルを生成して動的バイナリ装置１００とエンベデッド機器１０とを連結することができる。
【００５３】
また、ハードウェア処理部１１０は、情報生成部１１１と、ハードウェアインタフェース部１１２とを含むことができる。
【００５４】
情報生成部１１１は、エンベデッド機器１０とインタフェーシングして、収集した情報から前記動的バイナリ分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【００５５】
この時、情報生成部１１１は、コアインフォジェネレータ（Ｃｏｒｅ  Ｉｎｆｏ  Ｇｅｎｅｒａｔｏｒ）３１４に相応し得る。
【００５６】
この時、コア情報は、エンベデッド機器１０のＣＰＵ１１の種類および詳細情報に相応し、ＣＯＲＥ＿Ｉｎｆｏに相応し得る。
【００５７】
この時、レジストリ情報は、動的分析のためのレジスタ情報に相応し、ＲＥＧ＿Ｉｎｆｏに相応し得る。
【００５８】
ＲＥＧ＿Ｉｎｆｏは、識別されたコアに対する初期値情報を含むことができる。
【００５９】
この時、ＲＥＧ＿Ｉｎｆｏは、エンベデッド機器１０のフラッシュメモリ１２上に格納されたレジストリ収集情報に相応し得る。
【００６０】
例えば、識別されたコアプラットフォームがＡＲＭの場合、ＲＥＧ＿Ｉｎｆｏは、コアが１６個のレジストリを用いるとの情報を含み、１６個のレジストリに対する初期値情報を含むことができる。
【００６１】
この時、バイナリ情報は、動的分析のためのバイナリ情報に相応し、ＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙに相応し得る。
【００６２】
ＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙは、エンベデッド機器１０のＳＤＲＡＭ１３上のバイナリを収集して情報生成部１１１が生成した情報に相応し得る。
【００６３】
すなわち、情報生成部１１１は、前記動的バイナリ分析装置１００が、デバッギング装置を用いて前記エンベデッド機器１０とインタフェーシングして、前記エンベデッド機器１０のＣＰＵ１１、フラッシュメモリ１２およびＳＤＲＡＭ１３から収集した情報を用いて、前記動的バイナリ情報分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【００６４】
ハードウェアインタフェース部１１２は、ソフトウェア処理部１２０とインタフェーシングして、前記コア情報、前記レジストリ情報および前記バイナリ情報を前記ソフトウェア処理部１２０に伝達できる。
【００６５】
この時、ハードウェアインタフェース部１１２は、ＨＷ  Ｉ／Ｆモジュール（ＨＷ  Ｉ／Ｆ  Ｍｏｄｕｌｅ）３１５に相応し得る。
【００６６】
ハードウェアインタフェース部１１２は、シリアルコミュニケーション（Ｓｅｒｉａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）、ＴＣＰ／ＩＰソケットネットワーキング（ＴＣＰ／ＩＰ  Ｓｏｃｋｅｔ  Ｎｅｔｗｏｒｋｉｎｇ）およびＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ、リモートプロシージャコール）のいずれか１つを用いて、前記ＣＯＲＥ＿Ｉｎｆｏ、ＲＥＧ＿Ｉｎｆｏ、ＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙをソフトウェア処理部１２０に伝達できる。
【００６７】
ソフトウェア処理部１２０は、コア情報、レジスタ情報およびバイナリ情報に対してディスアセンブリングを行って前記エンベデッド機器１０のコアプラットフォームを選択し、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器１０のセキュリティ脆弱性を分析できる。
【００６８】
この時、ソフトウェア処理部１２０は、ＳＷ  Ｉ／Ｆモジュール（ＳＷ  Ｉ／Ｆ  Ｍｏｄｕｌｅ）３２１と、インタプリタ３２２と、ベアマシンセレクタ３２３とを含むエンベデッドＤＢＡ装置３２０に相応し得る。
【００６９】
この時、エンベデッドＤＢＡ装置３２０は、テイントアナライザ（Ｔａｉｎｔ  Ａｎａｌｙｚｅｒ）３２４と、コンコリックエグゼキュータ（Ｃｏｎｃｏｌｉｃ  Ｅｘｅｃｕｔｏｒ）３２５とをさらに含むことができる。
【００７０】
また、ソフトウェア処理部１２０は、ソフトウェアインタフェース部１２１と、解析部１２２と、選択部１２３と、分析部１２４とを含むことができる。
【００７１】
ソフトウェアインタフェース部１２１は、前記ハードウェア処理部１１０とインタフェーシングして、前記コア情報、前記レジストリ情報および前記バイナリ情報を受信できる。
【００７２】
この時、ソフトウェアインタフェース部１２１は、ＳＷ  Ｉ／Ｆモジュール（ＳＷ  Ｉ／Ｆ  Ｍｏｄｕｌｅ）３２１に相応し得る。
【００７３】
ソフトウェアインタフェース部１２１は、シリアルコミュニケーション（Ｓｅｒｉａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）、ＴＣＰ／ＩＰソケットネットワーキング（ＴＣＰ／ＩＰ  Ｓｏｃｋｅｔ  Ｎｅｔｗｏｒｋｉｎｇ）およびＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ、リモートプロシージャコール）のいずれか１つを用いて、前記ＣＯＲＥ＿Ｉｎｆｏ、ＲＥＧ＿Ｉｎｆｏ、ＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙをハードウェア処理部１１０から受信できる。
【００７４】
解析部１２２は、前記コア情報、前記レジストリ情報および前記バイナリ情報に対して前記ディスアセンブリングを行うことができ、これによりコアインストラクション（ＣＯＲＥ  Ｉｎｓｔｒｕｃｔｉｏｎ）の解析とベアマシン（Ｂａｒｅ  Ｍａｃｈｉｎｅ）の決定に重要な役割を果たすことができる。
【００７５】
この時、解析部１２２は、インタプリタ３２２に相応し得る。
【００７６】
解析部１２２は、ＡＲＭ、ＭＰＩＳ、ＰＰＣおよびＳＨなどのエンベデッド系列のコアプラットフォームを解析できる。
【００７７】
この時、解析部１２２は、前記コア情報、前記レジストリ情報および前記バイナリ情報をベアマシンプラットフォームが解析するために、前記ディスアセンブリングを行うことができる。
【００７８】
選択部１２３は、前記ディスアセンブリングを行った結果に基づいて前記コアプラットフォームを選択できる。
【００７９】
この時、選択部１２３は、前記ディスアセンブリングを行った結果に基づいて前記ベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器１０のコアプラットフォームを選択できる。
【００８０】
この時、選択部１２３が選択可能なコアプラットフォームは、ＡＲＭ、ＭＩＰＳ、ＰＰＣおよびＳＨなどのエンベデッド系列のコアプラットフォームに相応し得る。
【００８１】
この時、選択部１２３は、解析部１２２と連動して、ベアマシンプラットフォームのコアプラットフォームを動的に選択できる。
【００８２】
すなわち、選択部１２３は、前記ＣＰＵ１１のコア情報、前記フラッシュメモリ１２のレジストリ情報および前記ＳＤＲＡＭ１３のバイナリ情報を前記プラットフォーム情報にそれぞれマッピングして、一致するコアプラットフォームを前記エンベデッド機器１０のコアプラットフォームとして選択できる。
【００８３】
また、選択部１２３は、ベアマシンセレクタ（Ｂａｒｅ  Ｍａｃｈｉｎｅ  Ｓｅｌｅｃｔｏｒ）３２３に相応し得る。
【００８４】
分析部１２４は、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【００８５】
この時、分析部１２４は、前記コアプラットフォームに対するテイント分析（Ｔａｉｎｔ  Ａｎａｌｙｓｉｓ）手法およびコンコリック実行（Ｃｏｎｃｏｌｉｃ  Ｅｘｅｃｕｔｉｏｎ）手法を共に用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【００８６】
コンコリック実行手法は、シンボリック実行手法と、コンクリート実行手法とを含むことができる。
【００８７】
また、分析部１２４は、テイント分析手法を行うテイントアナライザ３２４と、コンコリック実行手法を行うコンコリックエグゼキュータ３２５とを含むことができる。
【００８８】
ユーザインタフェース部１３０は、ユーザに動作バイナリ分析情報および過程を出力し、ユーザと相互作用して動的バイナリ分析装置１００を制御できる。
【００８９】
この時、ユーザインタフェース部１３０は、ユーザインタフェースパーツ３３０に相応し得る。
【００９０】
また、ユーザインタフェース部１３０は、ＧＵＩモジュール３３１と、Ｒｕｌｅ−ＤＢモジュール３３２とを含むことができる。
【００９１】
ＧＵＩモジュール３３１は、ハードウェアおよびソフトウェアのセッティング（ｓｅｔｔｉｎｇ）、ランニング（ｒｕｎｎｉｎｇ）およびロギング（ｌｏｇｇｉｎｇ）を出力および実行できる。
【００９２】
Ｒｕｌｅ−ＤＢモジュール３３２は、セキュリティ脆弱性とセキュアコーディングを検証するデータベースを保持できる。
【００９３】
この時、Ｒｕｌｅ−ＤＢモジュール３３２は、Ｖ−ＤＢ（Ｖｕｌｎｅｒａｂｉｌｉｔｙ  Ｄａｔａｂａｓｅ、脆弱性データベース）と、Ｓ−ＤＢ（Ｓｅｃｕｒｅ  Ｃｏｄｉｎｇ  Ｄａｔａｂａｓｅ、セキュアコーディングデータベース）とを含むことができる。
【００９４】
Ｖ−ＤＢは、コアプラットフォームごとにセキュリティ脆弱性を分析するためのデータベースを保持できる。
【００９５】
Ｓ−ＤＢは、コアプラットフォームごとにセキュアコーディングを検証するためのデータベースを保持できる。
【００９６】
したがって、テイントアナライザ３２４は、Ｒｕｌｅ−ＤＢモジュール３３２と連動して、識別されたコアに対してＶ−ＤＢを用いたセキュリティ脆弱性、またはＳ−ＤＢを用いたセキュアコーディングを検証することができる。
【００９７】
すなわち、ハードウェアボード上の動的バイナリ分析装置（ＩＣＥ−ＤＢＡ）１００は、エンベデッド機器１０とハードウェア処理部１１０を介してハードウェア的に直接インタフェーシングし、動的に収集された情報から動的バイナリ分析のための情報を生成して、ソフトウェア処理部１２０によりセキュリティ脆弱性を分析できる。
【００９８】
これにより、エンベデッド機器１０のセキュリティ脆弱性の分析がより簡便になり、速やかに行われる。
【００９９】
図２は、図１に示されたハードウェア処理部の一例を細部的に示すブロック図である。
【０１００】
図２を参照すれば、ハードウェア処理部１１０は、情報生成部１１１と、ハードウェアインタフェース部１１２とを含むことができる。
【０１０１】
情報生成部１１１は、エンベデッド機器１０とインタフェーシングして、収集した情報から前記動的バイナリ分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【０１０２】
この時、情報生成部１１１は、コアインフォジェネレータ（Ｃｏｒｅ  Ｉｎｆｏ  Ｇｅｎｅｒａｔｏｒ）３１４に相応し得る。
【０１０３】
この時、コア情報は、エンベデッド機器１０のＣＰＵ１１の種類および詳細情報に相応し、ＣＯＲＥ＿Ｉｎｆｏに相応し得る。
【０１０４】
この時、レジストリ情報は、動的分析のためのレジスタ情報に相応し、ＲＥＧ＿Ｉｎｆｏに相応し得る。
【０１０５】
ＲＥＧ＿Ｉｎｆｏは、識別されたコアに対する初期値情報を含むことができる。
【０１０６】
この時、ＲＥＧ＿Ｉｎｆｏは、エンベデッド機器１０のフラッシュメモリ（Ｆｌａｓｈ  ｍｅｍｏｒｙ）１２上に格納されたレジストリ収集情報に相応し得る。
【０１０７】
例えば、識別されたコアプラットフォームがＡＲＭの場合、ＲＥＧ＿Ｉｎｆｏは、コアが１６個のレジストリを用いるとの情報を含み、１６個のレジストリに対する初期値情報を含むことができる。
【０１０８】
この時、バイナリ情報は、動的分析のためのバイナリ情報に相応し、ＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙに相応し得る。
【０１０９】
ＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙは、エンベデッド機器１０のＳＤＲＡＭ１３上のバイナリを収集して情報生成部１１１が生成した情報に相応し得る。
【０１１０】
すなわち、情報生成部１１１は、前記動的バイナリ分析装置１００が、デバッギング装置を用いて前記エンベデッド機器１０とインタフェーシングして、前記エンベデッド機器１０のＣＰＵ１１、フラッシュメモリ１２およびＳＤＲＡＭ１３から収集した情報を用いて、前記動的バイナリ情報分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【０１１１】
ハードウェアインタフェース部１１２は、ソフトウェア処理部１２０とインタフェーシングして、前記コア情報、前記レジストリ情報および前記バイナリ情報を前記ソフトウェア処理部１２０に伝達できる。
【０１１２】
この時、ハードウェアインタフェース部１１２は、ＨＷ  Ｉ／Ｆモジュール（ＨＷ  Ｉ／Ｆ  Ｍｏｄｕｌｅ）３１５に相応し得る。
【０１１３】
ハードウェアインタフェース部１１２は、シリアルコミュニケーション（Ｓｅｒｉａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）、ＴＣＰ／ＩＰソケットネットワーキング（ＴＣＰ／ＩＰ  Ｓｏｃｋｅｔ  Ｎｅｔｗｏｒｋｉｎｇ）およびＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ、リモートプロシージャコール）のいずれか１つを用いて、前記ＣＯＲＥ＿Ｉｎｆｏ、ＲＥＧ＿Ｉｎｆｏ、ＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙをソフトウェア処理部１２０に伝達できる。
【０１１４】
図３は、図１に示されたソフトウェア処理部の一例を細部的に示すブロック図である。
【０１１５】
図３を参照すれば、ソフトウェア処理部１２０は、ソフトウェアインタフェース部１２１と、解析部１２２と、選択部１２３と、分析部１２４とを含むことができる。
【０１１６】
ソフトウェア処理部１２０は、コア情報、レジスタ情報およびバイナリ情報に対してディスアセンブリングを行って前記エンベデッド機器１０のコアプラットフォームを選択し、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器１０のセキュリティ脆弱性を分析できる。
【０１１７】
ソフトウェアインタフェース部１２１は、前記ハードウェア処理部１１０とインタフェーシングして、前記コア情報、前記レジストリ情報および前記バイナリ情報を受信できる。
【０１１８】
この時、ソフトウェアインタフェース部１２１は、ＳＷ  Ｉ／Ｆモジュール（ＳＷ  Ｉ／Ｆ  Ｍｏｄｕｌｅ）３２１に相応し得る。
【０１１９】
ソフトウェアインタフェース部１２１は、シリアルコミュニケーション（Ｓｅｒｉａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）、ＴＣＰ／ＩＰソケットネットワーキング（ＴＣＰ／ＩＰ  Ｓｏｃｋｅｔ  Ｎｅｔｗｏｒｋｉｎｇ）およびＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ、リモートプロシージャコール）のいずれか１つを用いて、前記ＣＯＲＥ＿Ｉｎｆｏ、ＲＥＧ＿Ｉｎｆｏ、ＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙをハードウェア処理部１１０から受信できる。
【０１２０】
解析部１２２は、前記コア情報、前記レジストリ情報および前記バイナリ情報に対して前記ディスアセンブリングを行うことができ、これによりコアインストラクション（ＣＯＲＥ  Ｉｎｓｔｒｕｃｔｉｏｎ）の解析とベアマシン（Ｂａｒｅ  Ｍａｃｈｉｎｅ）の決定に重要な役割を果たすことができる。
【０１２１】
この時、解析部１２２は、インタプリタ３２２に相応し得る。
【０１２２】
解析部１２２は、ＡＲＭ、ＭＰＩＳ、ＰＰＣおよびＳＨなどのエンベデッド系列のコアプラットフォームを解析できる。
【０１２３】
この時、解析部１２２は、前記コア情報、前記レジストリ情報および前記バイナリ情報をベアマシンプラットフォームが解析するために、前記ディスアセンブリングを行うことができる。
【０１２４】
選択部１２３は、前記ディスアセンブリングを行った結果に基づいて前記コアプラットフォームを選択できる。
【０１２５】
この時、選択部１２３は、前記ディスアセンブリングを行った結果に基づいて前記エンベデッド機器１０のコアを識別できる。
【０１２６】
この時、選択部１２３は、前記ディスアセンブリングを行った結果に基づいて前記ベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器１０のコアプラットフォームを選択できる。
【０１２７】
この時、選択部１２３が選択可能なコアプラットフォームは、ＡＲＭ、ＭＩＰＳ、ＰＰＣおよびＳＨなどのエンベデッド系列のコアプラットフォームに相応し得る。
【０１２８】
この時、選択部１２３は、解析部１２２と連動して、ベアマシンプラットフォームのコアプラットフォームを動的に選択できる。
【０１２９】
すなわち、選択部１２３は、前記ＣＰＵ１１のコア情報、前記フラッシュメモリ１２のレジストリ情報および前記ＳＤＲＡＭ１３のバイナリ情報を前記プラットフォーム情報にそれぞれマッピングして、一致するコアプラットフォームを前記エンベデッド機器１０のコアプラットフォームとして選択できる。
【０１３０】
また、選択部１２３は、ベアマシンセレクタ（Ｂａｒｅ  Ｍａｃｈｉｎｅ  Ｓｅｌｅｃｔｏｒ）３２３に相応し得る。
【０１３１】
分析部１２４は、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【０１３２】
この時、分析部１２４は、前記コアプラットフォームに対するテイント分析（Ｔａｉｎｔ  Ａｎａｌｙｓｉｓ）手法およびコンコリック実行（Ｃｏｎｃｏｌｉｃ  Ｅｘｅｃｕｔｉｏｎ）手法を共に用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【０１３３】
コンコリック実行手法は、シンボリック実行手法と、コンクリート実行手法とを含むことができる。
【０１３４】
また、分析部１２４は、テイント分析手法を行うテイントアナライザ３２４と、コンコリック実行手法を行うコンコリックエグゼキュータ３２５とを含むことができる。
【０１３５】
図４は、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法を示す動作フローチャートである。
【０１３６】
図４を参照すれば、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法は、まず、エンベデッド機器の情報を収集する（Ｓ２１０）。
【０１３７】
すなわち、ステップＳ２１０は、エンベデッド機器１０から収集した情報から動的バイナリ分析のための情報を生成できる。
【０１３８】
この時、ステップＳ２１０は、デバッギング装置を用いてエンベデッド機器１０とインタフェーシングできる。
【０１３９】
例えば、ステップＳ２１０は、ロジッグ＆ピンアウトオートスキャナ（Ｌｏｇｉｃ＆Ｐｉｎｏｕｔ  Ａｕｔｏ−Ｓｃａｎｎｅｒ）がＪＴＡＧ  Ｉ／Ｆ（ＳＷＤ）を用いてエンベデッド機器１０とインタフェーシングできる。
【０１４０】
ＪＴＡＧ  Ｉ／Ｆ（ＳＷＤ）は、チップの内部にバウンダリセル（Ｂｏｕｎｄａｒｙ  Ｃｅｌｌ）を生成し、外部のピンと一対一で連結され、プロセッサが行える動作を中間のセル（Ｃｅｌｌ）を介して人為的に行うことができる。
【０１４１】
ＪＴＡＧ  Ｉ／Ｆ（ＳＷＤ）は、エンベデッド機器１０をＪＴＡＧベースでインタフェーシングするデバッギング装置に相応し得る。
【０１４２】
また、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法は、動的バイナリ分析のための情報を生成できる（Ｓ２２０）。
【０１４３】
すなわち、ステップＳ２２０は、エンベデッド機器１０とＪＴＡＧベースでインタフェーシングして、収集した情報から前記動的バイナリ分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【０１４４】
この時、コア情報は、エンベデッド機器１０のＣＰＵ１１の種類および詳細情報に相応し、ＣＯＲＥ＿Ｉｎｆｏに相応し得る。
【０１４５】
この時、レジストリ情報は、動的分析のためのレジスタ情報に相応し、ＲＥＧ＿Ｉｎｆｏに相応し得る。
【０１４６】
ＲＥＧ＿Ｉｎｆｏは、識別されたコアに対する初期値情報を含むことができる。
【０１４７】
この時、ＲＥＧ＿Ｉｎｆｏは、エンベデッド機器１０のフラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）１２上に格納されたレジストリ収集情報に相応し得る。
【０１４８】
例えば、識別されたコアプラットフォームがＡＲＭの場合、ＲＥＧ＿Ｉｎｆｏは、コアが１６個のレジストリを用いるとの情報を含み、１６個のレジストリに対する初期値情報を含むことができる。
【０１４９】
この時、バイナリ情報は、動的分析のためのバイナリ情報に相応し、ＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙに相応し得る。
【０１５０】
ＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙは、エンベデッド機器１０のＳＤＲＡＭ１３上のバイナリを収集して情報生成部１１１が生成した情報に相応し得る。
【０１５１】
すなわち、ステップＳ２２０は、前記動的バイナリ分析装置１００が、デバッギング装置を用いて前記エンベデッド機器１０とインタフェーシングして、前記エンベデッド機器１０のＣＰＵ１１、フラッシュメモリ１２およびＳＤＲＡＭ１３から収集した情報を用いて、前記動的バイナリ情報分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【０１５２】
この時、ステップＳ２２０は、ハードウェアインタフェース部１１２がソフトウェア処理部１２０とインタフェーシングして、前記コア情報、前記レジストリ情報および前記バイナリ情報を前記ソフトウェア処理部１２０に伝達できる。
【０１５３】
また、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法は、ディスアセンブリングを行うことができる（Ｓ２３０）。
【０１５４】
すなわち、ステップＳ２３０は、コア情報、レジスタ情報およびバイナリ情報に対してディスアセンブリングを行うことができる。
【０１５５】
この時、ステップＳ２３０は、まず、前記ソフトウェア処理部１２０が前記コア情報、前記レジストリ情報および前記バイナリ情報を受信できる。
【０１５６】
例えば、ステップＳ２３０は、シリアルコミュニケーション（Ｓｅｒｉａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）、ＴＣＰ／ＩＰソケットネットワーキング（Ｓｏｃｋｅｔ  Ｎｅｔｗｏｒｋｉｎｇ）およびＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）を用いて、前記ＣＯＲＥ＿Ｉｎｆｏ、ＲＥＧ＿ＩｎｆｏおよびＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙをハードウェア処理部１１０から受信できる。
【０１５７】
この時、ステップＳ２３０は、前記コア情報、前記レジストリ情報および前記バイナリ情報に対して前記ディスアセンブリングを行うことができ、これによりコアインストラクション（ＣＯＲＥ  Ｉｎｓｔｒｕｃｔｉｏｎ）の解析とベアマシン（Ｂａｒｅ  Ｍａｃｈｉｎｅ）の決定に重要な役割を果たすことができる。
【０１５８】
この時、ステップＳ２３０は、ＡＲＭ、ＭＰＩＳ、ＰＰＣおよびＳＨなどのエンベデッド系列のコアプラットフォームを解析できる。
【０１５９】
この時、ステップＳ２３０は、前記コア情報、前記レジストリ情報および前記バイナリ情報をベアマシンプラットフォームが解析するために、前記ディスアセンブリングを行うことができる。
【０１６０】
また、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法は、エンベデッド機器１０のコアプラットフォームを選択できる（Ｓ２４０）。
【０１６１】
すなわち、ステップＳ２４０は、前記ディスアセンブリングを行った結果に基づいて前記コアプラットフォームを選択できる。
【０１６２】
この時、ステップＳ２４０は、前記ディスアセンブリングを行った結果に基づいて前記ベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器１０のコアプラットフォームを選択できる。
【０１６３】
この時、ステップＳ２４０で選択可能なコアプラットフォームは、ＡＲＭ、ＭＩＰＳ、ＰＰＣおよびＳＨなどのコアプラットフォームに相応し得る。
【０１６４】
この時、ステップＳ２４０は、ベアマシンセレクタがインタプリタと連動して、ベアマシンプラットフォームのコアプラットフォームを動的に選択できる。
【０１６５】
すなわち、ステップＳ２４０は、前記ＣＰＵ１１のコア情報、前記フラッシュメモリ１２のレジストリ情報および前記ＳＤＲＡＭ１３のバイナリ情報を前記プラットフォーム情報にそれぞれマッピングして、一致するコアプラットフォームを前記エンベデッド機器１０のコアプラットフォームとして選択できる。
【０１６６】
また、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法は、セキュリティ脆弱性を分析できる（Ｓ２５０）。
【０１６７】
すなわち、ステップＳ２５０は、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【０１６８】
この時、ステップＳ２５０は、前記コアプラットフォームに対するテイント分析（Ｔａｉｎｔ  Ａｎａｌｙｓｉｓ）手法およびコンコリック実行（Ｃｏｎｃｏｌｉｃ  Ｅｘｅｃｕｔｉｏｎ）手法の少なくとも１つを用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【０１６９】
コンコリック実行手法は、シンボリック実行手法と、コンクリート実行手法とを含むことができる。
【０１７０】
この時、ステップＳ２５０は、Ｒｕｌｅ−ＤＢモジュール３３２と連動して、識別されたコアに対してＶ−ＤＢを用いたセキュリティ脆弱性、またはＳ−ＤＢを用いたセキュアコーディングを検証できる。
【０１７１】
また、ステップＳ２５０は、ユーザインタフェース部１３０を介して動作バイナリ分析情報、過程および結果を出力できる。
【０１７２】
図５は、本発明の一実施形態に係るエンベデッドシステムのセキュリティ脆弱性を分析するハードウェアボード上の動的バイナリ分析装置を細部的に示す図である。
【０１７３】
図５を参照すれば、本発明の一実施形態に係る動的バイナリ分析装置１００は、ハードウェアパーツ（Ａｄｖａｎｃｅｄ  ＩＣＥ／ＩＣＤ装置）３１０と、ソフトウェアパーツ（Ｅｍｂｅｄｄｅｄ  ＤＢＡ装置）３２０と、ユーザインタフェースパーツ（ＧＵＩ＆ＤＢ）３３０とを含むことができる。
【０１７４】
動的バイナリ分析のために動的バイナリ分析装置１００とインタフェーシングされるエンベデッド機器１０は、ＣＰＵ／ＭＣＵ１１と、フラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）１２と、ＳＤＲＡＭ１３とを含むことが分かる。
【０１７５】
アドバンストＩＣＥ／ＩＣＤ（Ａｄｖａｎｃｅｄ  ＩＣＥ／ＩＣＤ）装置３１０は、ロジッグ＆ピンアウトオートスキャナ（Ｌｏｇｉｃ＆Ｐｉｎｏｕｔ  Ａｕｔｏ−Ｓｃａｎｎｅｒ）３１１と、ターゲットインタフェーシングモジュール（Ｔａｒｇｅｔ  Ｉｎｔｅｒｆａｃｉｎｇ  Ｍｏｄｕｌｅ）３１２と、Ａ−ＩＣＤオペレーティングモジュール（Ａ−ＩＣＤ  Ｏｐｅｒａｔｉｎｇ  Ｍｏｄｕｌｅ）３１３と、コアインフォジェネレータ（Ｃｏｒｅ  Ｉｎｆｏ  Ｇｅｎｅｒａｔｏｒ）３１４と、ＨＷ  Ｉ／Ｆモジュール（ＨＷ  Ｉ／Ｆ  Ｍｏｄｕｌｅ）３１５とを含むことができる。
【０１７６】
ロジッグ＆ピンアウトオートスキャナ（Ｌｏｇｉｃ＆Ｐｉｎｏｕｔ  Ａｕｔｏ−Ｓｃａｎｎｅｒ）３１１は、ＪＴＡＧ  Ｉ／Ｆ（ＳＷＤ）を用いてエンベデッド機器１０を自動的にスキャニングしてインタフェーシングできる。
【０１７７】
ＪＴＡＧ  Ｉ／Ｆ（ＳＷＤ）は、エンベデッド機器１０をＪＴＡＧベースでインタフェーシングするデバッギング装置に相応し得る。
【０１７８】
ＪＴＡＧ  Ｉ／Ｆ（ＳＷＤ）は、チップの内部にバウンダリセル（Ｂｏｕｎｄａｒｙ  Ｃｅｌｌ）を生成し、外部のピンと一対一で連結され、チャネルを生成して動的バイナリ装置１００とエンベデッド機器１０をＪＴＡＧベースでインタフェーシングできる。
【０１７９】
ターゲットインタフェーシングモジュール（Ｔａｒｇｅｔ  Ｉｎｔｅｒｆａｃｉｎｇ  Ｍｏｄｕｌｅ）３１２は、エンベデッド機器１０のＣＰＵ１１、フラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）１２およびＳＤＲＡＭ１３をインタフェーシングできる。
【０１８０】
Ａ−ＩＣＤオペレーティングモジュール（Ａ−ＩＣＤ  Ｏｐｅｒａｔｉｎｇ  Ｍｏｄｕｌｅ）３１３は、アドバンストＩＣＥ／ＩＣＤ装置に対する全般的な運営を行うことができる。
【０１８１】
コアインフォジェネレータ（Ｃｏｒｅ  Ｉｎｆｏ  Ｇｅｎｅｒａｔｏｒ）３１４は、エンベデッド機器１０とインタフェーシングして、収集した情報から前記動的バイナリ分析のためのＣＯＲＥ＿Ｉｎｆｏ、ＲＥＧ＿ＩｎｆｏおよびＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙを生成できる。
【０１８２】
ＣＯＲＥ＿Ｉｎｆｏは、ＣＰＵの種類およびＣＰＵ１１に対する詳細情報を含むことができる。
【０１８３】
ＲＥＧ＿Ｉｎｆｏは、識別されたコアに対する初期値情報を含むことができる。
【０１８４】
例えば、識別されたコアプラットフォームがＡＲＭの場合、ＲＥＧ＿Ｉｎｆｏは、コアが１６個のレジストリを用いるとの情報を含み、１６個のレジストリに対する初期値情報を含むことができる。
【０１８５】
ＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙは、動的にエンベデッド機器１０のＳＤＲＡＭ１３上のバイナリを収集した情報に相応し得る。
【０１８６】
ＨＷ  Ｉ／Ｆモジュール（ＨＷ  Ｉ／Ｆ  Ｍｏｄｕｌｅ）３１５は、ＳＷ  Ｉ／Ｆモジュール（ＳＷ  Ｉ／Ｆ  ＭＯＤＵＬＥ）３２１とインタフェーシングして、ＣＯＲＥ＿Ｉｎｆｏ、ＲＥＧ＿ＩｎｆｏおよびＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙをソフトウェアパーツに伝達できる。
【０１８７】
ＨＷ  Ｉ／Ｆ  Ｍｏｄｕｌｅ３１５は、シリアルコミュニケーション（Ｓｅｒｉａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）、ＴＣＰ／ＩＰソケットネットワーキング（ＴＣＰ／ＩＰ  Ｓｏｃｋｅｔ  Ｎｅｔｗｏｒｋｉｎｇ）およびＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ、リモートプロシージャコール）のいずれか１つを用いて、前記ＣＯＲＥ＿Ｉｎｆｏ、ＲＥＧ＿ＩｎｆｏおよびＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙをＳＷ  Ｉ／Ｆモジュール（ＳＷ  Ｉ／Ｆ  Ｍｏｄｕｌｅ）３２１に伝達できる。
【０１８８】
エンベデッドＤＢＡ装置３２０は、ＣＯＲＥ＿Ｉｎｆｏ、ＲＥＧ＿ＩｎｆｏおよびＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙに対してディスアセンブリングを行って前記エンベデッド機器１０のコアプラットフォームを選択し、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器１０のセキュリティ脆弱性を分析できる。
【０１８９】
この時、エンベデッドＤＢＡ装置３２０は、ＳＷ  Ｉ／Ｆモジュール（ＳＷ  Ｉ／Ｆ  Ｍｏｄｕｌｅ）３２１と、インタプリタ３２２と、ベアマシンセレクタ３２３と、テイントアナライザ（Ｔａｉｎｔ  Ａｎａｌｙｚｅｒ）３２４と、コンコリックエグゼキュータ（Ｃｏｎｃｏｌｉｃ  Ｅｘｅｃｕｔｏｒ）３２５とを含むことができる。
【０１９０】
ＳＷ  Ｉ／Ｆモジュール（ＳＷ  Ｉ／Ｆ  Ｍｏｄｕｌｅ）３２１は、シリアルコミュニケーション（Ｓｅｒｉａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）、ＴＣＰ／ＩＰソケットネットワーキング（Ｓｏｃｋｅｔ  Ｎｅｔｗｏｒｋｉｎｇ）およびＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ、リモートプロシージャコール）のいずれか１つを用いて、ＣＯＲＥ＿Ｉｎｆｏ、ＲＥＧ＿Ｉｎｆｏ、ＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙをＨＷ  Ｉ／Ｆモジュール（ＨＷ  Ｉ／Ｆ  Ｍｏｄｕｌｅ）３１５から受信できる。
【０１９１】
インタプリタ３２２は、ＣＯＲＥ＿Ｉｎｆｏ、ＲＥＧ＿Ｉｎｆｏ、ＲＡＭ＿ｄｕｍｐ＿ｂｉｎａｒｙに対して前記ディスアセンブリングを行うことができ、これによりコアインストラクション（ＣＯＲＥ  Ｉｎｓｔｒｕｃｔｉｏｎ）の解析とベアマシン（Ｂａｒｅ  Ｍａｃｈｉｎｅ）の決定に重要な役割を果たすことができる。
【０１９２】
インタプリタ３２２は、ＡＲＭ、ＭＰＩＳ、ＰＰＣおよびＳＨなどのエンベデッドコアプラットフォームを解析できる。
【０１９３】
ベアマシンセレクタ３２３は、前記ディスアセンブリングを行った結果に基づいてベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器１０のコアプラットフォームを選択できる。
【０１９４】
この時、ベアマシンセレクタは、前記識別されたエンベデッド機器１０のコアに対してベアマシンプラットフォームから前記コアプラットフォームを選択できる。
【０１９５】
この時、ベアマシンセレクタ３２３が選択可能なコアプラットフォームは、ＡＲＭ、ＭＩＰＳ、ＰＰＣおよびＳＨなどのエンベデッド系列のコアプラットフォームに相応し得る。
【０１９６】
この時、ベアマシンセレクタ３２３は、インタプリタ３２２と連動して、ベアマシンプラットフォームのコアプラットフォームを動的に選択できる。
【０１９７】
すなわち、ベアマシンセレクタ３２３は、前記ＣＰＵ１１のコア情報、前記フラッシュメモリ１２のレジストリ情報および前記ＳＤＲＡＭ１３のバイナリ情報を前記プラットフォーム情報にそれぞれマッピングして、一致するコアプラットフォームを前記エンベデッド機器１０のコアプラットフォームとして選択できる。
【０１９８】
テイントアナライザ（Ｔａｉｎｔ  Ａｎａｌｙｚｅｒ）３２４およびコンコリックエグゼキュータ（Ｃｏｎｃｏｌｉｃ  Ｅｘｅｃｕｔｏｒ）３２５は、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【０１９９】
この時、テイントアナライザ（Ｔａｉｎｔ  Ａｎａｌｙｚｅｒ）３２４およびコンコリックエグゼキュータ（Ｃｏｎｃｏｌｉｃ  Ｅｘｅｃｕｔｏｒ）３２５は、前記コアプラットフォームに対するテイント分析（Ｔａｉｎｔ  Ａｎａｌｙｓｉｓ）手法およびコンコリック実行（Ｃｏｎｃｏｌｉｃ  Ｅｘｅｃｕｔｉｏｎ）手法の少なくとも１つを用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【０２００】
コンコリック実行手法は、シンボリック実行手法と、コンクリート実行手法とを含むことができる。
【０２０１】
ユーザインタフェースパーツ３３０は、ユーザに動作バイナリ分析情報および過程を出力し、ユーザと相互作用して動的バイナリ分析装置を制御できる。
【０２０２】
この時、ユーザインタフェースパーツは、ＧＵＩモジュール３３１と、Ｒｕｌｅ−ＤＢモジュール３３２とを含むことができる。
【０２０３】
ＧＵＩモジュール３３１は、ハードウェアおよびソフトウェアのセッティング（ｓｅｔｔｉｎｇ）、ランニング（ｒｕｎｎｉｎｇ）およびロギング（ｌｏｇｇｉｎｇ）を出力および実行できる。
【０２０４】
Ｒｕｌｅ−ＤＢモジュール３３２は、セキュリティ脆弱性とセキュアコーディングを検証するデータベースを保持できる。
【０２０５】
この時、Ｒｕｌｅ−ＤＢモジュール３３２は、Ｖ−ＤＢ（Ｖｕｌｎｅｒａｂｉｌｉｔｙ  Ｄａｔａｂａｓｅ、脆弱性データベース）と、Ｓ−ＤＢ（Ｓｅｃｕｒｅ  Ｃｏｄｉｎｇ  Ｄａｔａｂａｓｅ、セキュアコーディングデータベース）とを含むことができる。
【０２０６】
Ｖ−ＤＢは、コアプラットフォームごとにセキュリティ脆弱性を分析するためのデータベースを保持できる。
【０２０７】
Ｓ−ＤＢは、コアプラットフォームごとにセキュアコーディングを検証するためのデータベースを保持できる。
【０２０８】
したがって、テイントアナライザ（Ｔａｉｎｔ  Ａｎａｌｙｚｅｒ）３２４は、Ｒｕｌｅ−ＤＢモジュール３３２と連動して、識別されたコアに対してＶ−ＤＢを用いたセキュリティ脆弱性、またはＳ−ＤＢを用いたセキュアコーディングを検証できる。
【０２０９】
図６は、本発明の一実施形態に係るコンピュータシステムを示すブロック図である。
【０２１０】
図６を参照すれば、本発明の実施形態は、コンピュータで読取可能な記録媒体のようなコンピュータシステム１１００で実現される。図６に示されているように、コンピュータシステム１１００は、バス１１２０を介して互いに通信する１つ以上のプロセッサ１１１０と、メモリ１１３０と、ユーザ入力装置１１４０と、ユーザ出力装置１１５０と、ストレージ１１６０とを含むことができる。また、コンピュータシステム１１００は、ネットワーク１１８０に連結されるネットワークインタフェース１１７０をさらに含むことができる。プロセッサ１１１０は、中央処理装置またはメモリ１１３０やストレージ１１６０に格納されたプロセッシングインストラクションを実行する半導体装置であってもよい。メモリ１１３０およびストレージ１１６０は、多様な形態の揮発性または不揮発性記憶媒体であってもよい。例えば、メモリは、ＲＯＭ１１３１やＲＡＭ１１３２を含むことができる。
【０２１１】
以上、本発明に係るハードウェアボード上の動的バイナリ分析装置および方法は、上記のように説明された実施形態の構成と方法が限定されて適用されるのではなく、上記の実施形態は、多様な変形がなされるように各実施形態の全部または一部が選択的に組み合わされて構成されてもよい。
【符号の説明】
【０２１２】
１０：エンベデッド機器
１００：動的バイナリ分析装置
１１０：ハードウェア処理部
１２０：ソフトウェア処理部
１３０：ユーザインタフェース部
１１１：情報生成部
１１２：ハードウェアインタフェース部
１２１：ソフトウェアインタフェース部
１２２：解析部
１２３：選択部
１２４：分析部
１１００：コンピュータシステム
１１１０：プロセッサ
１１２０：バス
１１３０：メモリ
１１３１：ＲＯＭ
１１３２：ＲＡＭ
１１４０：ユーザ入力装置
１１５０：ユーザ出力装置
１１６０：ストレージ
１１７０：ネットワークインタフェース
１１８０：ネットワーク
【図１】
2018073422.tif 000003
【図２】
2018073422.tif 000004
【図３】
2018073422.tif 000005
【図４】
2018073422.tif 000006
【図５】
2018073422.tif 000007
【図６】
2018073422.tif 000008