• 検索結果がありません。

デバイスアドレスのランダム化による制御プログラム難読化方式の一提案

N/A
N/A
Protected

Academic year: 2021

シェア "デバイスアドレスのランダム化による制御プログラム難読化方式の一提案"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)情報処理学会第 75 回全国大会. 3F-4. 入出力アドレスのランダム化による 制御プログラム難読化方式の一提案 勝田 喬雄† 三浦 昭浩† 古澤 康一† 橋本 遼太† 三菱電機株式会社 情報技術総合研究所†. 1.. はじめに 近年、組込み機器に対するセキュリティ上の脅 威が増加している。その一例として、組込み機器 から不正に読み出された制御プログラムの閲覧/ 編集が行われ、ノウハウが漏えいしたり、不正コ ピーした制御プログラムを用いた組込み機器の模 倣品が製造され市場に出回ったりする問題があり、 早急な対策が求められている。 制御プログラムの不正な閲覧/編集を防ぐ方法 の一つとして、制御プログラムの難読化がある[1]。 難読化を適用した制御プログラムはそのままで実 行可能だが、閲覧/編集は困難である。よって、 難読化を適用した制御プログラムを実行する際に 特別な処理が必要ない。そのため、ファームウェ アの更新が難しい組込み機器に対しても、適用が 容易である。しかし、難読化を適用した制御プロ グラムは不正コピーが正常に動作してしまうので、 そのままでは模倣品の製造を防止できない。 制御プログラムは、組込み機器が制御する周辺 機器の入出力に割り当てられた識別番号である入 出力アドレスを用いて、周辺機器からの入力に基 づく演算処理を実行し、その結果を出力して、周 辺機器を制御している。このため、制御プログラ ムを閲覧/編集するためには、入出力アドレスを 正しく把握する必要がある。 本稿では、制御プログラムの入出力アドレスの 割り当てをランダム化し、その際に組込み機器の 固有情報を利用して組込み機器と制御プログラム を関連付ける難読化方式を提案する。本方式によ り入出力アドレスを正しく把握できなくなるので、 制御プログラムの不正な閲覧/編集を困難にする ことができる。また、制御プログラムを他の組込 み機器に不正コピーした場合は、固有情報が異な るので難読化を正しく解除できないようにし、正 常動作できなくすることにより、模倣品の製造を 防止することが可能となる。. に変換することで、制御プログラムと周辺機器と の入出力の関係を複雑にし、閲覧/編集を困難に する。入出力アドレスを変換する際は、変換テー ブルを使用する。制御プログラムの実行時は、組 込み機器のファームウェアと連携して難読化した 制御プログラムを実行する。以下、変換テーブル の作成方法と入出力アドレスの変換方法及び難読 化した制御プログラムの実行方法の詳細を述べる。. 2.1. 変換テーブルの作成方法 図 1 に変換テーブルの作成方法の概要を示す。 変換テーブルは組込み機器を一意に識別するため の固有情報と、付加情報を使用して作成する。固 有情報の例としては MAC アドレスなどが考えられ る。固有情報だけを用いて変換テーブルを作成す ると、常に同じ値の変換テーブルになってしまう ため付加情報(例えばタイムスタンプ)と組み合 わせることで、毎回異なる変換テーブルを作成す る。変換テーブルの作成手順は以下の通りである。 (1) 組込み機器で利用可能な入出力アドレスをイン デックスとして配列を作成する。 (2) 組込み機器から固有情報を取得する。 (3) 付加情報を作成する。 (4) 固有情報と付加情報から乱数を作成する。 (5) 作成した乱数を使用して変換後の数値に該当す る配列をランダムソートする。 上記のように、変換後の入出力アドレスが難読 化対象の組込み機器で実際に割り当てられている 入出力アドレスになるように変換テーブルを作成 する。これにより、難読化した制御プログラムの 難読化を解除しなくても何らかの動作はするので、 制御プログラムとして妥当なものになることから、 既存の難読化方式と組み合わせて制御プログラム を保護することが可能となる。 (1). 乱数. 提案方式の概要 提案方式は、制御プログラム内の入出力アドレ スをランダムに入れ替え、異なる入出力アドレス. 変換前. 0. 1. 2. 3. 4. 5. 6. 7. 変換後. 0. 1. 2. 3. 4. 5. 6. 7. 2.. “A proposal of obfuscation method by randomizing the I/O addresses of the control program” † Information Technology R&D Center, Mitsubishi Electric Corporation. (4). (5) 作成した乱数を使用して変換後の 数値をランダムソートする。. 変換テーブル. 固有 情報. 付加 情報. (2). (3). 割り当て可能な 入出力アドレス. 変換前. 0. 1. 2. 3. 4. 5. 6. 7. 変換後. 6. 3. 4. 1. 5. 7. 0. 2. 図 1 変換テーブル作成方法. 3-511. Copyright 2013 Information Processing Society of Japan. All Rights Reserved..

(2) 情報処理学会第 75 回全国大会. 2.2. 入出力アドレスの変換方法 入出力アドレス変換の流れは、まず制御プログ ラムから入出力アドレスを一つ読み出し、変換テ ーブルを参照し、入出力アドレスを変換する。こ の入出力アドレスの変換処理を全ての入出力アド レスを変換し終えるまで繰り返す。 図2に入出力アドレスの変換例を示す。 SWITCH_INPUT_0のアドレス0x00は変換テーブル を 参 照 す る と 0x06 に な る 。 よ っ て 、 変 換 後 に SWITCH_INPUT_0を操作しようとするとアドレス 0x06の入出力を操作することになるので、実際に は、LED_OUTPUT_2を操作することになる。 次に、入出力アドレスの変換によるコードの変 換例を、図3のサンプルコードを用いて説明する。 入出力アドレス変換前のサンプルコードの動作は SWITCH_INPUT_0 が ON に な る と LED_OUTPUT_0 が ON に な り 、 SWITCH_INPUT_1 が ON に な る と LED_OUTPUT_1がONになる。入出力アドレス変換 後の制御プログラムの動作は前述の変換規則に従 うと、実際の入出力の動作は、LED_OUTPUT_2が ON に な る と LED_OUTPUT_1 が ON に な り 、 SWITCH_INPUT_3 が ON に な る と LED_OUTPUT_3 がONになる。このように、入出力アドレスの変換 により実行結果が変化する。 変換後. 変換前 入出力. アドレス. アドレス 入出力. SWITCH_INPUT_0. 0x00. 0x06. LED_OUTPUT_2. SWITCH_INPUT_1. 0x01. 0x03. SWITCH_INPUT_3. SWITCH_INPUT_2. 0x02. 0x04. LED_OUTPUT_0. SWITCH_INPUT_3. 0x03. 0. 1. 2. 3. 4. 5. 6. 7. 0x01. SWITCH_INPUT_1. LED_OUTPUT_0. 0x04. 6. 3. 4. 1. 5. 7. 0. 2. 0x05. LED_OUTPUT_1. LED_OUTPUT_1. 0x05. LED_OUTPUT_2 LED_OUTPUT_3. 変換テーブル. 0x07. LED_OUTPUT_3. 0x06. ※変換テーブルの0x0 0x00 は省略している。. SWITCH_INPUT_0. 0x07. 0x02. SWITCH_INPUT_2. 図 2 入出力アドレス変換の概要 変換前. 変換後の実際の動作. void main(void){ if( SWITCH_INPUT_0 == ON LED_OUTPUT_0 = ON ; } if( SWITCH_INPUT_1 == ON ){ LED_OUTPUT_1 = ON ; } return ; }. void main(void){ if( LED_OUTPUT_2 == ON ){ LED_OUTPUT_1 = ON; } if( SWITCH_INPUT_3 == ON ){ LED_OUTPUT_3 = ON; } return ; }. (1) 固有情報と付加情報を読み出して、変換テーブ ルを作成する。 (2) 変換テーブルを使用して、難読化したときと逆 の変換を行い、難読化を解除する。 (3) 難読化を解除した制御プログラムを実行する。 手順(1)で作成する変換テーブルは、難読化時と 同じ情報を使用して作成することにより、難読化 時に作成した変換テーブルと同一のものになるの で、正しく難読化を解除可能である。. 3.. 提案方式の効果 提案方式の効果として、以下が挙げられる。 (1) 制御プログラムの閲覧/編集の困難化 制御プログラムと周辺機器との入出力の関係は 制御プログラムの閲覧/編集を行うためには重要 な情報となる。よって、入出力アドレスの入れ替 えにより、攻撃者が制御プログラムを取得しても、 その閲覧/編集は困難になる。 (2) 制御プログラムの模倣品製造の防止 固有情報の異なる組込み機器や、正規の組込み 機器(難読化の解除ができるファームウェアを搭 載した組込み機器)以外の組込み機器で制御プロ グラムを動作させた場合は、難読化を正しく解除 できず、正常動作できないため、模倣品の製造を 防止できる。 (3) 難読化方式の解析の困難化 タイムスタンプなどの付加情報を使用すること で変換テーブルにランダム性を持たせており、同 じ制御プログラムを同じ組込み機器と対応付けて 難読化した際にも、異なる難読化結果を得ること ができるので、難読化方式の解析が困難になる。 (4) 他の難読化方式との組み合わせ可能化 難読化した制御プログラムは制御プログラムと して妥当なものとして扱えるので、本方式を既存 の難読化方式と組み合わせて使用して制御プログ ラムを保護することも可能である。本方式を既存 の難読化方式と組み合わせて使用することで、模 倣品の製造を防止しながら、本方式のみを適用し た場合よりも不正な閲覧/編集を困難にすること が可能である。. 図 3 サンプルコード. 4.. 2.3. 難読化した制御プログラムの実行方法 組込み機器は制御プログラムを実行する際、制 御プログラムの難読化を解除してから実行する。 難読化の解除には、固有情報と付加情報が必要に なる。固有情報は、難読化時に組込み機器から読 み出した情報なので、組込み機器内で読み出すこ とができる。しかし、付加情報は難読化時に作成 した情報なので、難読化した制御プログラムを組 込み機器に送信する際に、一緒に送信しておく必 要がある。制御プログラム実行時の手順は以下の 通りである。. 終わりに 本稿では、制御プログラムの不正な閲覧/編集 を困難にし、模倣品の製造を防止する方式の一つ として、組込み機器の固有情報と関連付けて、入 出力アドレスをランダム化する難読化方式につい て提案した。 今後は、提案方式の実装及び評価を進めていく。 参考文献 [1] 門田暁人, C.Thomborson , “ソフトウェアプロテ クションの技術動向(前編)”, 情報処理, Vol46, No.4, pp.431-437, Apr. 2005.. 3-512. Copyright 2013 Information Processing Society of Japan. All Rights Reserved..

(3)

参照

関連したドキュメント

横断歩行者の信号無視者数を減少することを目的 とした信号制御方式の検討を行った。信号制御方式

(1)電線共同溝の整備手法については、浅層埋設方式や小型ボックス活用埋設方式等について検討が行わ れてきており、

 第一の方法は、不安の原因を特定した上で、それを制御しようとするもので

算処理の効率化のliM点において従来よりも優れたモデリング手法について提案した.lMil9f

この節では mKdV 方程式を興味の中心に据えて,mKdV 方程式によって統制されるような平面曲線の連 続朗変形,半離散 mKdV

LLVM から Haskell への変換は、各 LLVM 命令をそれと 同等な処理を行う Haskell のプログラムに変換することに より、実現される。

研究計画書(様式 2)の項目 27~29 の内容に沿って、個人情報や提供されたデータの「①利用 目的」

方式で 45 ~ 55 %、積上げ方式で 35 ~ 45% 又は純費用方式で 35 ~ 45 %)の選択制 (※一部例外を除く)