特開2018-73422(P2018-73422A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 韓國電子通信研究院の特許一覧

特開2018-73422ハードウェアボード上の動的バイナリ分析装置および方法
<>
  • 特開2018073422-ハードウェアボード上の動的バイナリ分析装置および方法 図000003
  • 特開2018073422-ハードウェアボード上の動的バイナリ分析装置および方法 図000004
  • 特開2018073422-ハードウェアボード上の動的バイナリ分析装置および方法 図000005
  • 特開2018073422-ハードウェアボード上の動的バイナリ分析装置および方法 図000006
  • 特開2018073422-ハードウェアボード上の動的バイナリ分析装置および方法 図000007
  • 特開2018073422-ハードウェアボード上の動的バイナリ分析装置および方法 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2018-73422(P2018-73422A)
(43)【公開日】2018年5月10日
(54)【発明の名称】ハードウェアボード上の動的バイナリ分析装置および方法
(51)【国際特許分類】
   G06F 21/57 20130101AFI20180406BHJP
【FI】
   G06F21/57 370
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【全頁数】23
(21)【出願番号】特願2017-208537(P2017-208537)
(22)【出願日】2017年10月27日
(31)【優先権主張番号】10-2016-0144772
(32)【優先日】2016年11月1日
(33)【優先権主張国】KR
(71)【出願人】
【識別番号】596180076
【氏名又は名称】韓國電子通信研究院
【氏名又は名称原語表記】Electronics and Telecommunications Research Institute
(74)【代理人】
【識別番号】100091982
【弁理士】
【氏名又は名称】永井 浩之
(74)【代理人】
【識別番号】100091487
【弁理士】
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100082991
【弁理士】
【氏名又は名称】佐藤 泰和
(74)【代理人】
【識別番号】100105153
【弁理士】
【氏名又は名称】朝倉 悟
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100152205
【弁理士】
【氏名又は名称】吉田 昌司
(72)【発明者】
【氏名】チェ、ビョン−チョル
(72)【発明者】
【氏名】パク、ジョン−ソプ
(72)【発明者】
【氏名】ナ、ジュン−チャン
(72)【発明者】
【氏名】ジン、スン−フン
(57)【要約】      (修正有)
【課題】エンベデッド機器のセキュリティ脆弱性分析のためにハードウェアボード上の動的バイナリ分析装置および方法を提供する。
【解決手段】最初にエンベデッド機器の情報を収集するS210。次にエンベデッド機器とJTAGベースでインタフェーシングして、収集された情報に基づいて動的バイナリ分析のための情報を生成しS220、ソフトウェア処理部がハードウェア処理部とインタフェーシングして、動的バイナリ分析のための情報を受信してディスアセンブリングを行うS230。ディスアセンブリングを行った結果に基づいてエンベデッド機器のコアプラットフォームを選択するS240。そしてコアプラットフォームに対する動的バイナリ分析を行ってエンベデッド機器のセキュリティ脆弱性を分析するS250。
【選択図】図4
【特許請求の範囲】
【請求項1】
ハードウェアボード上の動的バイナリ分析装置を用いる方法において、
エンベデッド機器とインタフェーシングして、収集された情報に基づいて動的バイナリ分析のための情報を生成するステップと、
ソフトウェア処理部がハードウェア処理部とインタフェーシングして、前記動的バイナリ分析のための情報を受信してディスアセンブリングを行うステップと、
前記ディスアセンブリングを行った結果に基づいて前記エンベデッド機器のコアプラットフォームを選択するステップと、
前記コアプラットフォームに対する前記動的バイナリ分析を行って前記エンベデッド機器のセキュリティ脆弱性を分析するステップとを含むことを特徴とするハードウェアボード上の動的バイナリ分析方法。
【請求項2】
前記情報を生成するステップは、
前記収集された情報に基づいて、前記エンベデッド機器のコア情報、レジストリ情報およびバイナリ情報を生成することを特徴とする請求項1に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項3】
前記コア情報は、
前記エンベデッド機器のCPUの種類および詳細情報を含むことを特徴とする請求項2に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項4】
前記レジストリ情報は、
前記エンベデッド機器のフラッシュメモリ(Flash Memory)に格納されたレジストリ情報に相応し、前記エンベデッド機器のCPUが用いるレジストリ個数情報およびレジストリに対する初期値情報を含むことを特徴とする請求項3に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項5】
前記バイナリ情報は、
前記エンベデッド機器のSDRAMに格納されたバイナリを収集して生成されることを特徴とする請求項4に記載の動的バイナリ分析方法。
【請求項6】
前記情報を生成するステップは、
前記動的バイナリ分析装置が、デバッギング装置を用いて前記エンベデッド機器とインタフェーシングして、前記エンベデッド機器のCPU、フラッシュメモリおよびSDRAMから収集した情報を用いて、前記動的バイナリ情報分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成することを特徴とする請求項5に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項7】
前記ディスアセンブリングを行うステップは、
前記コア情報、前記レジストリ情報および前記バイナリ情報をベアマシンプラットフォームが解析するために、前記ディスアセンブリングを行うことを特徴とする請求項6に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項8】
前記コアプラットフォームを選択するステップは、
前記ディスアセンブリングを行った結果に基づいて前記ベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器のコアプラットフォームを選択することを特徴とする請求項7に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項9】
前記分析するステップは、
前記コアプラットフォームに対するテイント分析(Taint Analysis)手法およびコンコリック実行(Concolic Execution)手法を共に用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析することを特徴とする請求項8に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項10】
前記分析するステップは、
脆弱性データベースとセキュアコーディングデータベースに基づいて前記コアプラットフォームに対してテイント分析を行って、セキュリティ脆弱性分析およびセキュアコーディング検証の少なくとも1つを行うことを特徴とする請求項9に記載のハードウェアボード上の動的バイナリ分析方法。
【請求項11】
エンベデッド機器から収集された情報から動的バイナリ分析のための情報を生成するハードウェア処理部と、
前記動的バイナリ分析のための情報に対してディスアセンブリングを行って前記エンベデッド機器のコアプラットフォームを選択し、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析するソフトウェア処理部とを含むことを特徴とするハードウェアボード上の動的バイナリ分析装置。
【請求項12】
前記ハードウェア処理部は、
前記エンベデッド機器とインタフェーシングして、収集された情報から前記動的バイナリ分析のための情報を生成する情報生成部と、
前記ソフトウェア処理部とインタフェーシングして、前記動的バイナリ分析のための情報を前記ソフトウェア処理部に伝達するハードウェアインタフェース部とを含むことを特徴とする請求項11に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項13】
前記ソフトウェア処理部は、
前記ハードウェア処理部とインタフェーシングして、前記動的バイナリ分析のための情報を受信するソフトウェアインタフェース部と、
前記動的バイナリ分析のための情報に対して前記ディスアセンブリングを行う解析部と、
前記ディスアセンブリングを行った結果に基づいて前記コアプラットフォームを選択する選択部と、
前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析する分析部とを含むことを特徴とする請求項12に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項14】
前記情報生成部は、
前記収集された情報に基づいて、前記エンベデッド機器のコア情報、レジストリ情報およびバイナリ情報を生成することを特徴とする請求項13に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項15】
前記情報生成部は、
前記動的バイナリ分析装置が、デバッギング装置を用いて前記エンベデッド機器とインタフェーシングして、前記エンベデッド機器のCPU、フラッシュメモリおよびSDRAMから収集した情報を用いて、前記動的バイナリ情報分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成することを特徴とする請求項14に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項16】
前記解析部は、
前記コア情報、前記レジストリ情報および前記バイナリ情報をベアマシンプラットフォームが解析するために、前記ディスアセンブリングを行うことを特徴とする請求項15に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項17】
前記選択部は、
前記ディスアセンブリングを行った結果に基づいて前記ベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器のコアプラットフォームを選択することを特徴とする請求項16に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項18】
前記選択部は、
前記CPUのコア情報、前記フラッシュメモリのレジストリ情報および前記SDRAMのバイナリ情報を前記プラットフォーム情報にそれぞれマッピングして、一致するコアプラットフォームを前記エンベデッド機器のコアプラットフォームとして選択することを特徴とする請求項17に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項19】
前記分析部は、
前記コアプラットフォームに対するテイント分析(Taint Analysis)手法およびコンコリック実行(Concolic Execution)手法を共に用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析することを特徴とする請求項18に記載のハードウェアボード上の動的バイナリ分析装置。
【請求項20】
前記分析部は、
脆弱性データベースとセキュアコーディングデータベースに基づいて前記コアプラットフォームに対してテイント分析を行って、セキュリティ脆弱性分析およびセキュアコーディング検証の少なくとも1つを行うことを特徴とする請求項19に記載のハードウェアボード上の動的バイナリ分析装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エンベデッドセキュリティ技術に関し、より詳細には、エンベデッド機器のセキュリティ脆弱性を分析する技術に関する。
【背景技術】
【0002】
エンベデッド機器およびシステムは、一般的なPCのほか、各種電子製品および情報機器などに設けられたマイクロプロセッサに予め設定された特定機能を行うソフトウェアが内蔵された(Embedded)システムである。
【0003】
このようなエンベデッドソフトウェアとエンベデッドハードウェア技術は、最近、IT産業の急成長によって、モノのインターネット(Internet of Things)、ユビキタスコンピューティング、デジタルコンバージェンス、モバイルインテリジェンスなどの先端技術分野に必須の要素として位置づけられている。
【0004】
したがって、エンベデッド産業の発達と先端技術の開発に相応するエンベデッドシステムの強いセキュリティ対策が必要な状況である。
【0005】
最近、エンベデッド機器のセキュリティ脆弱性を分析するための既存のハードウェアベースのICD(In−Circuit Debugger)装置はデバッギング中心の装置であって、セキュリティ脆弱性の分析は専門家の努力によって行うことができる。
【0006】
また、既存のソフトウェアベースの動的バイナリ分析装置は、特定装置に設けて、部分的にエンベデッド機器のセキュリティ脆弱性を分析できる。
【0007】
しかし、エンベデッド機器のセキュリティ脆弱性分析のためのDBA装置とICD装置の連動が難しいため、セキュリティ脆弱性の分析時間および専門スタッフの代替に限界がある。
【0008】
一方、韓国公開特許第10−2016−0074028号の「産業内モノのインターネット環境における産業機密情報の追跡性確保のための状況認知型暗号化ベースのエンベデッドセキュリティフレームワーク」は、産業環境に適用可能な異機種のノードから構成されたモノのインターネットネットワーク網内に連結されたすべてのエンベデッド装置を設計できるフレームワークの標準を提示することにより、モノのインターネットネットワーク上に接続された非認可ハッキング攻撃あるいは内部の大規模機密資料流出の試みを事前に遮断できる、セキュリティが強化されたモノのインターネットエンベデッドシステムを開示している。
【0009】
しかし、韓国公開特許第10−2016−0074028号は、エンベデッド装置のセキュリティ脆弱性を分析する方法については言及していない。
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明は、ITデバイスのセキュリティ脆弱性分析のためにハードウェアボード上の動的バイナリ分析方法を提供することを目的とする。
【0011】
また、本発明は、既存のICD装置とDBA装置を結合するためのモジュールを追加して互いに連動可能に統合することで、エンベデッド機器に対するセキュリティ脆弱性を分析することを目的とする。
【0012】
さらに、本発明は、エンベデッド機器のセキュリティ脆弱性の分析において、専門スタッフ不足、分析時間制限、多様な個別装置の理解および使用方法習得などの問題点を解決するための統合フレームワークを提供することを目的とする。
【課題を解決するための手段】
【0013】
上記の目的を達成するための、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法は、ハードウェアボード上の動的バイナリ分析装置を用いる方法において、エンベデッド機器とインタフェーシングして、収集された情報に基づいて動的バイナリ分析のための情報を生成するステップと、ソフトウェア処理部がハードウェア処理部とインタフェーシングして、前記動的バイナリ分析のための情報を受信してディスアセンブリングを行うステップと、前記ディスアセンブリングを行った結果に基づいて前記エンベデッド機器のコアプラットフォームを選択するステップと、前記コアプラットフォームに対する前記動的バイナリ分析を行って前記エンベデッド機器のセキュリティ脆弱性を分析するステップとを含む。
【0014】
この時、前記情報を生成するステップは、前記収集された情報に基づいて、前記エンベデッド機器のコア情報、レジストリ情報およびバイナリ情報を生成できる。
【0015】
この時、前記コア情報は、前記エンベデッド機器のCPUの種類および詳細情報を含むことができる。
【0016】
この時、前記レジストリ情報は、前記エンベデッド機器のフラッシュメモリ(Flash Memory)に格納されたレジストリ情報に相応し、前記エンベデッド機器のCPUが用いるレジストリ個数情報およびレジストリに対する初期値情報を含むことができる。
【0017】
この時、前記バイナリ情報は、前記エンベデッド機器のSDRAMに格納されたバイナリを収集して生成される。
【0018】
この時、前記情報を生成するステップは、前記動的バイナリ分析装置が、デバッギング装置を用いて前記エンベデッド機器とインタフェーシングして、前記エンベデッド機器のCPU、フラッシュメモリおよびSDRAMから収集した情報を用いて、前記動的バイナリ情報分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【0019】
この時、前記ディスアセンブリングを行うステップは、前記コア情報、前記レジストリ情報および前記バイナリ情報をベアマシンプラットフォームが解析するために、前記ディスアセンブリングを行うことができる。
【0020】
この時、前記コアプラットフォームを選択するステップは、前記ディスアセンブリングを行った結果に基づいて前記ベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器のコアプラットフォームを選択できる。
【0021】
この時、前記分析するステップは、前記コアプラットフォームに対するテイント分析(Taint Analysis)手法およびコンコリック実行(Concolic Execution)手法を共に用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【0022】
この時、前記分析するステップは、脆弱性データベースとセキュアコーディングデータベースに基づいて前記コアプラットフォームに対してテイント分析を行って、セキュリティ脆弱性分析およびセキュアコーディング検証の少なくとも1つを行うことができる。
【0023】
また、上記の目的を達成するための、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析装置は、エンベデッド機器から収集された情報から動的バイナリ分析のための情報を生成するハードウェア処理部と、前記動的バイナリ分析のための情報に対してディスアセンブリングを行って前記エンベデッド機器のコアプラットフォームを選択し、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析するソフトウェア処理部とを含む。
【0024】
この時、前記ハードウェア処理部は、前記エンベデッド機器とJTAGベースでインタフェーシングして、収集された情報から前記動的バイナリ分析のための情報を生成する情報生成部と、前記ソフトウェア処理部とインタフェーシングして、前記動的バイナリ分析のための情報を前記ソフトウェア処理部に伝達するハードウェアインタフェース部とを含むことができる。
【0025】
この時、前記ソフトウェア処理部は、前記ハードウェア処理部とインタフェーシングして、前記動的バイナリ分析のための情報を受信するソフトウェアインタフェース部と、前記動的バイナリ分析のための情報に対して前記ディスアセンブリングを行う解析部と、前記ディスアセンブリングを行った結果に基づいて前記コアプラットフォームを選択する選択部と、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析する分析部とを含むことができる。
【0026】
この時、前記情報生成部は、前記収集された情報に基づいて、前記エンベデッド機器のコア情報、レジストリ情報およびバイナリ情報を生成できる。
【0027】
この時、前記情報生成部は、前記動的バイナリ分析装置が、デバッギング装置を用いて前記エンベデッド機器とJTAGベースでインタフェーシングして、前記エンベデッド機器のCPU、フラッシュメモリおよびSDRAMから収集した情報を用いて、前記動的バイナリ情報分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【0028】
この時、前記解析部は、前記コア情報、前記レジストリ情報および前記バイナリ情報をベアマシンプラットフォームが解析するために、前記ディスアセンブリングを行うことができる。
【0029】
この時、前記選択部は、前記ディスアセンブリングを行った結果に基づいて前記ベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器のコアプラットフォームを選択できる。
【0030】
この時、前記選択部は、前記CPUのコア情報、前記フラッシュメモリのレジストリ情報および前記SDRAMのバイナリ情報を前記プラットフォーム情報にそれぞれマッピングして、一致するコアプラットフォームを前記エンベデッド機器のコアプラットフォームとして選択できる。
【0031】
この時、前記分析部は、前記コアプラットフォームに対するテイント分析(Taint Analysis)手法およびコンコリック実行(Concolic Execution)手法を共に用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【0032】
この時、前記分析部は、脆弱性データベースとセキュアコーディングデータベースに基づいて前記コアプラットフォームに対してテイント分析を行って、セキュリティ脆弱性分析およびセキュアコーディング検証の少なくとも1つを行うことができる。
【発明の効果】
【0033】
本発明は、エンベデッド機器のセキュリティ脆弱性分析のためにハードウェアボード上の動的バイナリ分析方法を提供することを目的とする。
【0034】
また、本発明は、既存のICD装置とDBA装置を結合するためのモジュールを追加して互いに連動可能に統合することで、エンベデッド機器に対するセキュリティ脆弱性を分析することを目的とする。
【0035】
さらに、本発明は、エンベデッド機器のセキュリティ脆弱性の分析において、専門スタッフ不足、分析時間制限、多様な個別装置の理解および使用方法習得などの問題点を解決するための統合フレームワークを提供することを目的とする。
【図面の簡単な説明】
【0036】
図1】本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析装置を示すブロック図である。
図2図1に示されたハードウェア処理部の一例を細部的に示すブロック図である。
図3図1に示されたソフトウェア処理部の一例を細部的に示すブロック図である。
図4】本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法を示す動作フローチャートである。
図5】本発明の一実施形態に係るエンベデッドシステムのセキュリティ脆弱性を分析するハードウェアボード上の動的バイナリ分析装置を細部的に示す図である。
図6】本発明の一実施形態に係るコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0037】
以下、本発明を添付した図面を参照して詳細に説明する。ここで、繰り返される説明、本発明の要旨をあいまいにし得る公知の機能、および構成に関する詳細な説明は省略する。本発明の実施形態は、当業界における平均的な知識を有する者に本発明をより完全に説明するために提供されるものである。したがって、図面における要素の形状および大きさなどはより明確な説明のために誇張されることがある。
【0038】
明細書全体において、ある部分がある構成要素を「含む」とする時、これは、特に反対の記載がない限り、他の構成要素を除くのではなく、他の構成要素をさらに包含できることを意味する。
【0039】
以下、本発明に係る好ましい実施形態を添付した図面を参照して詳細に説明する。
【0040】
図1は、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析装置を示すブロック図である。
【0041】
図1を参照すれば、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析装置100は、ハードウェア処理部110と、ソフトウェア処理部120と、ユーザインタフェース部130とを含む。
【0042】
本発明の一実施形態によれば、動的バイナリ分析装置100は、ハードウェアパーツに相応するハードウェア処理部110とソフトウェアパーツに相応するソフトウェア処理部120とが互いにインタフェーシングして、ハードウェアボード上で動的バイナリ分析を提供できる。
【0043】
ハードウェア処理部110は、エンベデッド機器10から収集した情報から動的バイナリ分析のための情報を生成できる。
【0044】
この時、ハードウェア処理部110は、動的バイナリ分析装置100のハードウェアパーツ(Advanced ICE/ICD装置)310に相応し得る。
【0045】
すなわち、ハードウェア処理部110は、ロジッグ&ピンアウトオートスキャナ(Logic&Pinout Auto−Scanner)311と、ターゲットインタフェーシングモジュール(Target Interfacing Module)312と、A−ICDオペレーティングモジュール(A−ICD Operating Module)313と、コアインフォジェネレータ(Core Info Generator)314と、HW I/Fモジュール(HW I/F Module)315とを含むアドバンスト(Advanced)ICE/ICD装置310に相応し得る。
【0046】
ロジッグ&ピンアウトオートスキャナ(Logic&Pinout Auto−Scanner)311は、JTAG I/F(SWD)を用いてエンベデッド機器10を自動的にスキャニングしてインタフェーシングできる。
【0047】
ターゲットインタフェーシングモジュール(Target Interfacing Module)312は、エンベデッド機器10のCPU11、Flash Memory12およびSDRAM13をインタフェーシングできる。
【0048】
A−ICDオペレーティングモジュール(A−ICD Operating Module)313は、アドバンストICE/ICD装置に対する全般的な運営を行うことができる。
【0049】
JTAG I/F(SWD)は、エンベデッド機器10をJTAGベースでインタフェーシングするデバッギング装置に相応し得る。
【0050】
ハードウェア処理部110は、デバッギング装置を用いてエンベデッド機器10とJTAGベースでインタフェーシングできる。
【0051】
この時、デバッギング装置は、エンベデッド機器10にインタフェーシングを行う多様な装置に相応し得る。
【0052】
例えば、デバッギング装置に相応し得るJTAG I/F(SWD)は、チップの内部にバウンダリセル(Boundary Cell)を生成し、外部のピンと一対一で連結され、チャネルを生成して動的バイナリ装置100とエンベデッド機器10とを連結することができる。
【0053】
また、ハードウェア処理部110は、情報生成部111と、ハードウェアインタフェース部112とを含むことができる。
【0054】
情報生成部111は、エンベデッド機器10とインタフェーシングして、収集した情報から前記動的バイナリ分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【0055】
この時、情報生成部111は、コアインフォジェネレータ(Core Info Generator)314に相応し得る。
【0056】
この時、コア情報は、エンベデッド機器10のCPU11の種類および詳細情報に相応し、CORE_Infoに相応し得る。
【0057】
この時、レジストリ情報は、動的分析のためのレジスタ情報に相応し、REG_Infoに相応し得る。
【0058】
REG_Infoは、識別されたコアに対する初期値情報を含むことができる。
【0059】
この時、REG_Infoは、エンベデッド機器10のフラッシュメモリ12上に格納されたレジストリ収集情報に相応し得る。
【0060】
例えば、識別されたコアプラットフォームがARMの場合、REG_Infoは、コアが16個のレジストリを用いるとの情報を含み、16個のレジストリに対する初期値情報を含むことができる。
【0061】
この時、バイナリ情報は、動的分析のためのバイナリ情報に相応し、RAM_dump_binaryに相応し得る。
【0062】
RAM_dump_binaryは、エンベデッド機器10のSDRAM13上のバイナリを収集して情報生成部111が生成した情報に相応し得る。
【0063】
すなわち、情報生成部111は、前記動的バイナリ分析装置100が、デバッギング装置を用いて前記エンベデッド機器10とインタフェーシングして、前記エンベデッド機器10のCPU11、フラッシュメモリ12およびSDRAM13から収集した情報を用いて、前記動的バイナリ情報分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【0064】
ハードウェアインタフェース部112は、ソフトウェア処理部120とインタフェーシングして、前記コア情報、前記レジストリ情報および前記バイナリ情報を前記ソフトウェア処理部120に伝達できる。
【0065】
この時、ハードウェアインタフェース部112は、HW I/Fモジュール(HW I/F Module)315に相応し得る。
【0066】
ハードウェアインタフェース部112は、シリアルコミュニケーション(Serial Communication)、TCP/IPソケットネットワーキング(TCP/IP Socket Networking)およびRPC(Remote Procedure Call、リモートプロシージャコール)のいずれか1つを用いて、前記CORE_Info、REG_Info、RAM_dump_binaryをソフトウェア処理部120に伝達できる。
【0067】
ソフトウェア処理部120は、コア情報、レジスタ情報およびバイナリ情報に対してディスアセンブリングを行って前記エンベデッド機器10のコアプラットフォームを選択し、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器10のセキュリティ脆弱性を分析できる。
【0068】
この時、ソフトウェア処理部120は、SW I/Fモジュール(SW I/F Module)321と、インタプリタ322と、ベアマシンセレクタ323とを含むエンベデッドDBA装置320に相応し得る。
【0069】
この時、エンベデッドDBA装置320は、テイントアナライザ(Taint Analyzer)324と、コンコリックエグゼキュータ(Concolic Executor)325とをさらに含むことができる。
【0070】
また、ソフトウェア処理部120は、ソフトウェアインタフェース部121と、解析部122と、選択部123と、分析部124とを含むことができる。
【0071】
ソフトウェアインタフェース部121は、前記ハードウェア処理部110とインタフェーシングして、前記コア情報、前記レジストリ情報および前記バイナリ情報を受信できる。
【0072】
この時、ソフトウェアインタフェース部121は、SW I/Fモジュール(SW I/F Module)321に相応し得る。
【0073】
ソフトウェアインタフェース部121は、シリアルコミュニケーション(Serial Communication)、TCP/IPソケットネットワーキング(TCP/IP Socket Networking)およびRPC(Remote Procedure Call、リモートプロシージャコール)のいずれか1つを用いて、前記CORE_Info、REG_Info、RAM_dump_binaryをハードウェア処理部110から受信できる。
【0074】
解析部122は、前記コア情報、前記レジストリ情報および前記バイナリ情報に対して前記ディスアセンブリングを行うことができ、これによりコアインストラクション(CORE Instruction)の解析とベアマシン(Bare Machine)の決定に重要な役割を果たすことができる。
【0075】
この時、解析部122は、インタプリタ322に相応し得る。
【0076】
解析部122は、ARM、MPIS、PPCおよびSHなどのエンベデッド系列のコアプラットフォームを解析できる。
【0077】
この時、解析部122は、前記コア情報、前記レジストリ情報および前記バイナリ情報をベアマシンプラットフォームが解析するために、前記ディスアセンブリングを行うことができる。
【0078】
選択部123は、前記ディスアセンブリングを行った結果に基づいて前記コアプラットフォームを選択できる。
【0079】
この時、選択部123は、前記ディスアセンブリングを行った結果に基づいて前記ベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器10のコアプラットフォームを選択できる。
【0080】
この時、選択部123が選択可能なコアプラットフォームは、ARM、MIPS、PPCおよびSHなどのエンベデッド系列のコアプラットフォームに相応し得る。
【0081】
この時、選択部123は、解析部122と連動して、ベアマシンプラットフォームのコアプラットフォームを動的に選択できる。
【0082】
すなわち、選択部123は、前記CPU11のコア情報、前記フラッシュメモリ12のレジストリ情報および前記SDRAM13のバイナリ情報を前記プラットフォーム情報にそれぞれマッピングして、一致するコアプラットフォームを前記エンベデッド機器10のコアプラットフォームとして選択できる。
【0083】
また、選択部123は、ベアマシンセレクタ(Bare Machine Selector)323に相応し得る。
【0084】
分析部124は、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【0085】
この時、分析部124は、前記コアプラットフォームに対するテイント分析(Taint Analysis)手法およびコンコリック実行(Concolic Execution)手法を共に用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【0086】
コンコリック実行手法は、シンボリック実行手法と、コンクリート実行手法とを含むことができる。
【0087】
また、分析部124は、テイント分析手法を行うテイントアナライザ324と、コンコリック実行手法を行うコンコリックエグゼキュータ325とを含むことができる。
【0088】
ユーザインタフェース部130は、ユーザに動作バイナリ分析情報および過程を出力し、ユーザと相互作用して動的バイナリ分析装置100を制御できる。
【0089】
この時、ユーザインタフェース部130は、ユーザインタフェースパーツ330に相応し得る。
【0090】
また、ユーザインタフェース部130は、GUIモジュール331と、Rule−DBモジュール332とを含むことができる。
【0091】
GUIモジュール331は、ハードウェアおよびソフトウェアのセッティング(setting)、ランニング(running)およびロギング(logging)を出力および実行できる。
【0092】
Rule−DBモジュール332は、セキュリティ脆弱性とセキュアコーディングを検証するデータベースを保持できる。
【0093】
この時、Rule−DBモジュール332は、V−DB(Vulnerability Database、脆弱性データベース)と、S−DB(Secure Coding Database、セキュアコーディングデータベース)とを含むことができる。
【0094】
V−DBは、コアプラットフォームごとにセキュリティ脆弱性を分析するためのデータベースを保持できる。
【0095】
S−DBは、コアプラットフォームごとにセキュアコーディングを検証するためのデータベースを保持できる。
【0096】
したがって、テイントアナライザ324は、Rule−DBモジュール332と連動して、識別されたコアに対してV−DBを用いたセキュリティ脆弱性、またはS−DBを用いたセキュアコーディングを検証することができる。
【0097】
すなわち、ハードウェアボード上の動的バイナリ分析装置(ICE−DBA)100は、エンベデッド機器10とハードウェア処理部110を介してハードウェア的に直接インタフェーシングし、動的に収集された情報から動的バイナリ分析のための情報を生成して、ソフトウェア処理部120によりセキュリティ脆弱性を分析できる。
【0098】
これにより、エンベデッド機器10のセキュリティ脆弱性の分析がより簡便になり、速やかに行われる。
【0099】
図2は、図1に示されたハードウェア処理部の一例を細部的に示すブロック図である。
【0100】
図2を参照すれば、ハードウェア処理部110は、情報生成部111と、ハードウェアインタフェース部112とを含むことができる。
【0101】
情報生成部111は、エンベデッド機器10とインタフェーシングして、収集した情報から前記動的バイナリ分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【0102】
この時、情報生成部111は、コアインフォジェネレータ(Core Info Generator)314に相応し得る。
【0103】
この時、コア情報は、エンベデッド機器10のCPU11の種類および詳細情報に相応し、CORE_Infoに相応し得る。
【0104】
この時、レジストリ情報は、動的分析のためのレジスタ情報に相応し、REG_Infoに相応し得る。
【0105】
REG_Infoは、識別されたコアに対する初期値情報を含むことができる。
【0106】
この時、REG_Infoは、エンベデッド機器10のフラッシュメモリ(Flash memory)12上に格納されたレジストリ収集情報に相応し得る。
【0107】
例えば、識別されたコアプラットフォームがARMの場合、REG_Infoは、コアが16個のレジストリを用いるとの情報を含み、16個のレジストリに対する初期値情報を含むことができる。
【0108】
この時、バイナリ情報は、動的分析のためのバイナリ情報に相応し、RAM_dump_binaryに相応し得る。
【0109】
RAM_dump_binaryは、エンベデッド機器10のSDRAM13上のバイナリを収集して情報生成部111が生成した情報に相応し得る。
【0110】
すなわち、情報生成部111は、前記動的バイナリ分析装置100が、デバッギング装置を用いて前記エンベデッド機器10とインタフェーシングして、前記エンベデッド機器10のCPU11、フラッシュメモリ12およびSDRAM13から収集した情報を用いて、前記動的バイナリ情報分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【0111】
ハードウェアインタフェース部112は、ソフトウェア処理部120とインタフェーシングして、前記コア情報、前記レジストリ情報および前記バイナリ情報を前記ソフトウェア処理部120に伝達できる。
【0112】
この時、ハードウェアインタフェース部112は、HW I/Fモジュール(HW I/F Module)315に相応し得る。
【0113】
ハードウェアインタフェース部112は、シリアルコミュニケーション(Serial Communication)、TCP/IPソケットネットワーキング(TCP/IP Socket Networking)およびRPC(Remote Procedure Call、リモートプロシージャコール)のいずれか1つを用いて、前記CORE_Info、REG_Info、RAM_dump_binaryをソフトウェア処理部120に伝達できる。
【0114】
図3は、図1に示されたソフトウェア処理部の一例を細部的に示すブロック図である。
【0115】
図3を参照すれば、ソフトウェア処理部120は、ソフトウェアインタフェース部121と、解析部122と、選択部123と、分析部124とを含むことができる。
【0116】
ソフトウェア処理部120は、コア情報、レジスタ情報およびバイナリ情報に対してディスアセンブリングを行って前記エンベデッド機器10のコアプラットフォームを選択し、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器10のセキュリティ脆弱性を分析できる。
【0117】
ソフトウェアインタフェース部121は、前記ハードウェア処理部110とインタフェーシングして、前記コア情報、前記レジストリ情報および前記バイナリ情報を受信できる。
【0118】
この時、ソフトウェアインタフェース部121は、SW I/Fモジュール(SW I/F Module)321に相応し得る。
【0119】
ソフトウェアインタフェース部121は、シリアルコミュニケーション(Serial Communication)、TCP/IPソケットネットワーキング(TCP/IP Socket Networking)およびRPC(Remote Procedure Call、リモートプロシージャコール)のいずれか1つを用いて、前記CORE_Info、REG_Info、RAM_dump_binaryをハードウェア処理部110から受信できる。
【0120】
解析部122は、前記コア情報、前記レジストリ情報および前記バイナリ情報に対して前記ディスアセンブリングを行うことができ、これによりコアインストラクション(CORE Instruction)の解析とベアマシン(Bare Machine)の決定に重要な役割を果たすことができる。
【0121】
この時、解析部122は、インタプリタ322に相応し得る。
【0122】
解析部122は、ARM、MPIS、PPCおよびSHなどのエンベデッド系列のコアプラットフォームを解析できる。
【0123】
この時、解析部122は、前記コア情報、前記レジストリ情報および前記バイナリ情報をベアマシンプラットフォームが解析するために、前記ディスアセンブリングを行うことができる。
【0124】
選択部123は、前記ディスアセンブリングを行った結果に基づいて前記コアプラットフォームを選択できる。
【0125】
この時、選択部123は、前記ディスアセンブリングを行った結果に基づいて前記エンベデッド機器10のコアを識別できる。
【0126】
この時、選択部123は、前記ディスアセンブリングを行った結果に基づいて前記ベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器10のコアプラットフォームを選択できる。
【0127】
この時、選択部123が選択可能なコアプラットフォームは、ARM、MIPS、PPCおよびSHなどのエンベデッド系列のコアプラットフォームに相応し得る。
【0128】
この時、選択部123は、解析部122と連動して、ベアマシンプラットフォームのコアプラットフォームを動的に選択できる。
【0129】
すなわち、選択部123は、前記CPU11のコア情報、前記フラッシュメモリ12のレジストリ情報および前記SDRAM13のバイナリ情報を前記プラットフォーム情報にそれぞれマッピングして、一致するコアプラットフォームを前記エンベデッド機器10のコアプラットフォームとして選択できる。
【0130】
また、選択部123は、ベアマシンセレクタ(Bare Machine Selector)323に相応し得る。
【0131】
分析部124は、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【0132】
この時、分析部124は、前記コアプラットフォームに対するテイント分析(Taint Analysis)手法およびコンコリック実行(Concolic Execution)手法を共に用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【0133】
コンコリック実行手法は、シンボリック実行手法と、コンクリート実行手法とを含むことができる。
【0134】
また、分析部124は、テイント分析手法を行うテイントアナライザ324と、コンコリック実行手法を行うコンコリックエグゼキュータ325とを含むことができる。
【0135】
図4は、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法を示す動作フローチャートである。
【0136】
図4を参照すれば、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法は、まず、エンベデッド機器の情報を収集する(S210)。
【0137】
すなわち、ステップS210は、エンベデッド機器10から収集した情報から動的バイナリ分析のための情報を生成できる。
【0138】
この時、ステップS210は、デバッギング装置を用いてエンベデッド機器10とインタフェーシングできる。
【0139】
例えば、ステップS210は、ロジッグ&ピンアウトオートスキャナ(Logic&Pinout Auto−Scanner)がJTAG I/F(SWD)を用いてエンベデッド機器10とインタフェーシングできる。
【0140】
JTAG I/F(SWD)は、チップの内部にバウンダリセル(Boundary Cell)を生成し、外部のピンと一対一で連結され、プロセッサが行える動作を中間のセル(Cell)を介して人為的に行うことができる。
【0141】
JTAG I/F(SWD)は、エンベデッド機器10をJTAGベースでインタフェーシングするデバッギング装置に相応し得る。
【0142】
また、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法は、動的バイナリ分析のための情報を生成できる(S220)。
【0143】
すなわち、ステップS220は、エンベデッド機器10とJTAGベースでインタフェーシングして、収集した情報から前記動的バイナリ分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【0144】
この時、コア情報は、エンベデッド機器10のCPU11の種類および詳細情報に相応し、CORE_Infoに相応し得る。
【0145】
この時、レジストリ情報は、動的分析のためのレジスタ情報に相応し、REG_Infoに相応し得る。
【0146】
REG_Infoは、識別されたコアに対する初期値情報を含むことができる。
【0147】
この時、REG_Infoは、エンベデッド機器10のフラッシュメモリ(Flash Memory)12上に格納されたレジストリ収集情報に相応し得る。
【0148】
例えば、識別されたコアプラットフォームがARMの場合、REG_Infoは、コアが16個のレジストリを用いるとの情報を含み、16個のレジストリに対する初期値情報を含むことができる。
【0149】
この時、バイナリ情報は、動的分析のためのバイナリ情報に相応し、RAM_dump_binaryに相応し得る。
【0150】
RAM_dump_binaryは、エンベデッド機器10のSDRAM13上のバイナリを収集して情報生成部111が生成した情報に相応し得る。
【0151】
すなわち、ステップS220は、前記動的バイナリ分析装置100が、デバッギング装置を用いて前記エンベデッド機器10とインタフェーシングして、前記エンベデッド機器10のCPU11、フラッシュメモリ12およびSDRAM13から収集した情報を用いて、前記動的バイナリ情報分析のための前記コア情報、前記レジストリ情報および前記バイナリ情報を生成できる。
【0152】
この時、ステップS220は、ハードウェアインタフェース部112がソフトウェア処理部120とインタフェーシングして、前記コア情報、前記レジストリ情報および前記バイナリ情報を前記ソフトウェア処理部120に伝達できる。
【0153】
また、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法は、ディスアセンブリングを行うことができる(S230)。
【0154】
すなわち、ステップS230は、コア情報、レジスタ情報およびバイナリ情報に対してディスアセンブリングを行うことができる。
【0155】
この時、ステップS230は、まず、前記ソフトウェア処理部120が前記コア情報、前記レジストリ情報および前記バイナリ情報を受信できる。
【0156】
例えば、ステップS230は、シリアルコミュニケーション(Serial Communication)、TCP/IPソケットネットワーキング(Socket Networking)およびRPC(Remote Procedure Call)を用いて、前記CORE_Info、REG_InfoおよびRAM_dump_binaryをハードウェア処理部110から受信できる。
【0157】
この時、ステップS230は、前記コア情報、前記レジストリ情報および前記バイナリ情報に対して前記ディスアセンブリングを行うことができ、これによりコアインストラクション(CORE Instruction)の解析とベアマシン(Bare Machine)の決定に重要な役割を果たすことができる。
【0158】
この時、ステップS230は、ARM、MPIS、PPCおよびSHなどのエンベデッド系列のコアプラットフォームを解析できる。
【0159】
この時、ステップS230は、前記コア情報、前記レジストリ情報および前記バイナリ情報をベアマシンプラットフォームが解析するために、前記ディスアセンブリングを行うことができる。
【0160】
また、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法は、エンベデッド機器10のコアプラットフォームを選択できる(S240)。
【0161】
すなわち、ステップS240は、前記ディスアセンブリングを行った結果に基づいて前記コアプラットフォームを選択できる。
【0162】
この時、ステップS240は、前記ディスアセンブリングを行った結果に基づいて前記ベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器10のコアプラットフォームを選択できる。
【0163】
この時、ステップS240で選択可能なコアプラットフォームは、ARM、MIPS、PPCおよびSHなどのコアプラットフォームに相応し得る。
【0164】
この時、ステップS240は、ベアマシンセレクタがインタプリタと連動して、ベアマシンプラットフォームのコアプラットフォームを動的に選択できる。
【0165】
すなわち、ステップS240は、前記CPU11のコア情報、前記フラッシュメモリ12のレジストリ情報および前記SDRAM13のバイナリ情報を前記プラットフォーム情報にそれぞれマッピングして、一致するコアプラットフォームを前記エンベデッド機器10のコアプラットフォームとして選択できる。
【0166】
また、本発明の一実施形態に係るハードウェアボード上の動的バイナリ分析方法は、セキュリティ脆弱性を分析できる(S250)。
【0167】
すなわち、ステップS250は、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【0168】
この時、ステップS250は、前記コアプラットフォームに対するテイント分析(Taint Analysis)手法およびコンコリック実行(Concolic Execution)手法の少なくとも1つを用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【0169】
コンコリック実行手法は、シンボリック実行手法と、コンクリート実行手法とを含むことができる。
【0170】
この時、ステップS250は、Rule−DBモジュール332と連動して、識別されたコアに対してV−DBを用いたセキュリティ脆弱性、またはS−DBを用いたセキュアコーディングを検証できる。
【0171】
また、ステップS250は、ユーザインタフェース部130を介して動作バイナリ分析情報、過程および結果を出力できる。
【0172】
図5は、本発明の一実施形態に係るエンベデッドシステムのセキュリティ脆弱性を分析するハードウェアボード上の動的バイナリ分析装置を細部的に示す図である。
【0173】
図5を参照すれば、本発明の一実施形態に係る動的バイナリ分析装置100は、ハードウェアパーツ(Advanced ICE/ICD装置)310と、ソフトウェアパーツ(Embedded DBA装置)320と、ユーザインタフェースパーツ(GUI&DB)330とを含むことができる。
【0174】
動的バイナリ分析のために動的バイナリ分析装置100とインタフェーシングされるエンベデッド機器10は、CPU/MCU11と、フラッシュメモリ(Flash Memory)12と、SDRAM13とを含むことが分かる。
【0175】
アドバンストICE/ICD(Advanced ICE/ICD)装置310は、ロジッグ&ピンアウトオートスキャナ(Logic&Pinout Auto−Scanner)311と、ターゲットインタフェーシングモジュール(Target Interfacing Module)312と、A−ICDオペレーティングモジュール(A−ICD Operating Module)313と、コアインフォジェネレータ(Core Info Generator)314と、HW I/Fモジュール(HW I/F Module)315とを含むことができる。
【0176】
ロジッグ&ピンアウトオートスキャナ(Logic&Pinout Auto−Scanner)311は、JTAG I/F(SWD)を用いてエンベデッド機器10を自動的にスキャニングしてインタフェーシングできる。
【0177】
JTAG I/F(SWD)は、エンベデッド機器10をJTAGベースでインタフェーシングするデバッギング装置に相応し得る。
【0178】
JTAG I/F(SWD)は、チップの内部にバウンダリセル(Boundary Cell)を生成し、外部のピンと一対一で連結され、チャネルを生成して動的バイナリ装置100とエンベデッド機器10をJTAGベースでインタフェーシングできる。
【0179】
ターゲットインタフェーシングモジュール(Target Interfacing Module)312は、エンベデッド機器10のCPU11、フラッシュメモリ(Flash Memory)12およびSDRAM13をインタフェーシングできる。
【0180】
A−ICDオペレーティングモジュール(A−ICD Operating Module)313は、アドバンストICE/ICD装置に対する全般的な運営を行うことができる。
【0181】
コアインフォジェネレータ(Core Info Generator)314は、エンベデッド機器10とインタフェーシングして、収集した情報から前記動的バイナリ分析のためのCORE_Info、REG_InfoおよびRAM_dump_binaryを生成できる。
【0182】
CORE_Infoは、CPUの種類およびCPU11に対する詳細情報を含むことができる。
【0183】
REG_Infoは、識別されたコアに対する初期値情報を含むことができる。
【0184】
例えば、識別されたコアプラットフォームがARMの場合、REG_Infoは、コアが16個のレジストリを用いるとの情報を含み、16個のレジストリに対する初期値情報を含むことができる。
【0185】
RAM_dump_binaryは、動的にエンベデッド機器10のSDRAM13上のバイナリを収集した情報に相応し得る。
【0186】
HW I/Fモジュール(HW I/F Module)315は、SW I/Fモジュール(SW I/F MODULE)321とインタフェーシングして、CORE_Info、REG_InfoおよびRAM_dump_binaryをソフトウェアパーツに伝達できる。
【0187】
HW I/F Module315は、シリアルコミュニケーション(Serial Communication)、TCP/IPソケットネットワーキング(TCP/IP Socket Networking)およびRPC(Remote Procedure Call、リモートプロシージャコール)のいずれか1つを用いて、前記CORE_Info、REG_InfoおよびRAM_dump_binaryをSW I/Fモジュール(SW I/F Module)321に伝達できる。
【0188】
エンベデッドDBA装置320は、CORE_Info、REG_InfoおよびRAM_dump_binaryに対してディスアセンブリングを行って前記エンベデッド機器10のコアプラットフォームを選択し、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器10のセキュリティ脆弱性を分析できる。
【0189】
この時、エンベデッドDBA装置320は、SW I/Fモジュール(SW I/F Module)321と、インタプリタ322と、ベアマシンセレクタ323と、テイントアナライザ(Taint Analyzer)324と、コンコリックエグゼキュータ(Concolic Executor)325とを含むことができる。
【0190】
SW I/Fモジュール(SW I/F Module)321は、シリアルコミュニケーション(Serial Communication)、TCP/IPソケットネットワーキング(Socket Networking)およびRPC(Remote Procedure Call、リモートプロシージャコール)のいずれか1つを用いて、CORE_Info、REG_Info、RAM_dump_binaryをHW I/Fモジュール(HW I/F Module)315から受信できる。
【0191】
インタプリタ322は、CORE_Info、REG_Info、RAM_dump_binaryに対して前記ディスアセンブリングを行うことができ、これによりコアインストラクション(CORE Instruction)の解析とベアマシン(Bare Machine)の決定に重要な役割を果たすことができる。
【0192】
インタプリタ322は、ARM、MPIS、PPCおよびSHなどのエンベデッドコアプラットフォームを解析できる。
【0193】
ベアマシンセレクタ323は、前記ディスアセンブリングを行った結果に基づいてベアマシンプラットフォームに予め格納されたプラットフォーム情報とマッピングして、前記エンベデッド機器10のコアプラットフォームを選択できる。
【0194】
この時、ベアマシンセレクタは、前記識別されたエンベデッド機器10のコアに対してベアマシンプラットフォームから前記コアプラットフォームを選択できる。
【0195】
この時、ベアマシンセレクタ323が選択可能なコアプラットフォームは、ARM、MIPS、PPCおよびSHなどのエンベデッド系列のコアプラットフォームに相応し得る。
【0196】
この時、ベアマシンセレクタ323は、インタプリタ322と連動して、ベアマシンプラットフォームのコアプラットフォームを動的に選択できる。
【0197】
すなわち、ベアマシンセレクタ323は、前記CPU11のコア情報、前記フラッシュメモリ12のレジストリ情報および前記SDRAM13のバイナリ情報を前記プラットフォーム情報にそれぞれマッピングして、一致するコアプラットフォームを前記エンベデッド機器10のコアプラットフォームとして選択できる。
【0198】
テイントアナライザ(Taint Analyzer)324およびコンコリックエグゼキュータ(Concolic Executor)325は、前記コアプラットフォームに対する動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【0199】
この時、テイントアナライザ(Taint Analyzer)324およびコンコリックエグゼキュータ(Concolic Executor)325は、前記コアプラットフォームに対するテイント分析(Taint Analysis)手法およびコンコリック実行(Concolic Execution)手法の少なくとも1つを用いて、前記動的バイナリ分析により前記エンベデッド機器のセキュリティ脆弱性を分析できる。
【0200】
コンコリック実行手法は、シンボリック実行手法と、コンクリート実行手法とを含むことができる。
【0201】
ユーザインタフェースパーツ330は、ユーザに動作バイナリ分析情報および過程を出力し、ユーザと相互作用して動的バイナリ分析装置を制御できる。
【0202】
この時、ユーザインタフェースパーツは、GUIモジュール331と、Rule−DBモジュール332とを含むことができる。
【0203】
GUIモジュール331は、ハードウェアおよびソフトウェアのセッティング(setting)、ランニング(running)およびロギング(logging)を出力および実行できる。
【0204】
Rule−DBモジュール332は、セキュリティ脆弱性とセキュアコーディングを検証するデータベースを保持できる。
【0205】
この時、Rule−DBモジュール332は、V−DB(Vulnerability Database、脆弱性データベース)と、S−DB(Secure Coding Database、セキュアコーディングデータベース)とを含むことができる。
【0206】
V−DBは、コアプラットフォームごとにセキュリティ脆弱性を分析するためのデータベースを保持できる。
【0207】
S−DBは、コアプラットフォームごとにセキュアコーディングを検証するためのデータベースを保持できる。
【0208】
したがって、テイントアナライザ(Taint Analyzer)324は、Rule−DBモジュール332と連動して、識別されたコアに対してV−DBを用いたセキュリティ脆弱性、またはS−DBを用いたセキュアコーディングを検証できる。
【0209】
図6は、本発明の一実施形態に係るコンピュータシステムを示すブロック図である。
【0210】
図6を参照すれば、本発明の実施形態は、コンピュータで読取可能な記録媒体のようなコンピュータシステム1100で実現される。図6に示されているように、コンピュータシステム1100は、バス1120を介して互いに通信する1つ以上のプロセッサ1110と、メモリ1130と、ユーザ入力装置1140と、ユーザ出力装置1150と、ストレージ1160とを含むことができる。また、コンピュータシステム1100は、ネットワーク1180に連結されるネットワークインタフェース1170をさらに含むことができる。プロセッサ1110は、中央処理装置またはメモリ1130やストレージ1160に格納されたプロセッシングインストラクションを実行する半導体装置であってもよい。メモリ1130およびストレージ1160は、多様な形態の揮発性または不揮発性記憶媒体であってもよい。例えば、メモリは、ROM1131やRAM1132を含むことができる。
【0211】
以上、本発明に係るハードウェアボード上の動的バイナリ分析装置および方法は、上記のように説明された実施形態の構成と方法が限定されて適用されるのではなく、上記の実施形態は、多様な変形がなされるように各実施形態の全部または一部が選択的に組み合わされて構成されてもよい。
【符号の説明】
【0212】
10:エンベデッド機器
100:動的バイナリ分析装置
110:ハードウェア処理部
120:ソフトウェア処理部
130:ユーザインタフェース部
111:情報生成部
112:ハードウェアインタフェース部
121:ソフトウェアインタフェース部
122:解析部
123:選択部
124:分析部
1100:コンピュータシステム
1110:プロセッサ
1120:バス
1130:メモリ
1131:ROM
1132:RAM
1140:ユーザ入力装置
1150:ユーザ出力装置
1160:ストレージ
1170:ネットワークインタフェース
1180:ネットワーク
図1
図2
図3
図4
図5
図6