JP2015011436A - プロセッサ - Google Patents

プロセッサ Download PDF

Info

Publication number
JP2015011436A
JP2015011436A JP2013134898A JP2013134898A JP2015011436A JP 2015011436 A JP2015011436 A JP 2015011436A JP 2013134898 A JP2013134898 A JP 2013134898A JP 2013134898 A JP2013134898 A JP 2013134898A JP 2015011436 A JP2015011436 A JP 2015011436A
Authority
JP
Japan
Prior art keywords
stack
program
stack memory
information
storage 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.)
Pending
Application number
JP2013134898A
Other languages
English (en)
Inventor
伊藤 智康
Tomoyasu Ito
智康 伊藤
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.)
Denso Corp
Original Assignee
Denso 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 Denso Corp filed Critical Denso Corp
Priority to JP2013134898A priority Critical patent/JP2015011436A/ja
Publication of JP2015011436A publication Critical patent/JP2015011436A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

【課題】スタックオーバーフロー攻撃があっても本来のプログラムの実行を継続できるプロセッサを提供する。【解決手段】プログラム及びプログラムで使用するデータが記憶される第1記憶装置3とは別に、第1スタックメモリ7に対するプッシュ又はポップの実行時のみ、CPU2がアクセスできる第2記憶装置4を備える。CPU2には第1スタックメモリ7に対応する第1スタックポインタ8とは別に、第2記憶装置4に定義される第2スタックメモリ9に対応する第2スタックポインタ10を用意する。CPU2はサブルーチンを呼び出す際に、退避レジスタ情報及び戻りアドレス情報を第1スタックメモリ7へプッシュすると、第2スタックメモリ9にも前記各情報のプッシュを行い、前記各情報を第1スタックメモリ7からポップすると第2スタックメモリ9からも対応する情報のポップを行う。両者の情報内容が異なればスタックオーバーフローの発生を検出し、第2スタックメモリ9からポップしたアドレス情報をプログラムカウンタに、レジスタ情報を各レジスタにロードする。【選択図】図1

Description

本発明は、スタックオーバーフロー攻撃に対する防御機能を備えたプロセッサに関する。
従来、プロセッサがプログラムを実行する際に、セキュリティ上の脆弱性を突くスタックオーバーフロー攻撃(スタックスマッシング)と呼ばれる手法が深刻なセキュリティ上の問題になっている。この対策技術として、主プログラムから呼び出されたサブプログラムの実行終了時に、主プログラムへの戻りアドレス情報を主記憶装置とは別の記憶装置に保存しておき、主記憶装置の戻りアドレス情報が、プログラムの実行により誤って、若しくは意図的に書き変えられている場合に、戻りアドレス情報が正しくないことを検出する技術が提案されている(例えば、特許文献1参照)。
特開2009−230479号公報
特許文献1の技術によれば、主プログラムへの戻りアドレス情報が書き換えられた場合でも、正しい戻りアドレス値を主記憶装置以外の記憶装置から読み出すことができる。しかしながら、主記憶装置のレジスタ情報もスタックオーバーフロー攻撃によって書き換えられる場合がある。すると、サブプログラムの実行を終了した後、適切な主プログラムのアドレスに戻ったとしても、前記レジスタ情報が書き換えられていればプログラムを正しく継続実行できないおそれがある。
本発明は、上記事情に鑑みてなされたもので、スタックオーバーフロー攻撃があっても本来のプログラムの実行を継続できるプロセッサを提供することを目的とする。
請求項1記載のプロセッサによれば、プログラム及びそのプログラムで使用するデータが記憶される第1記憶装置とは別個に、第1記憶装置に定義される第1スタックメモリ領域に対するプッシュ命令又はポップ命令の実行時のみ、CPUがアクセス可能となるように構成される第2記憶装置を備える。また、CPUは、第1スタックメモリ領域のアクセスアドレス情報を保持する第1スタックポインタとは別に、第2記憶装置に定義される第2スタックメモリ領域のアクセスアドレス情報を保持する第2スタックポインタを用意する。
CPUは、主プログラムからサブプログラムを呼び出す際に、退避させるレジスタ情報と戻りアドレス情報とを第1スタックメモリ領域へプッシュする命令を実行すると、第2スタックメモリ領域に対しても前記レジスタ情報及び前記アドレス情報のプッシュ動作を同時に行う。
そして、前記情報を第1スタックメモリ領域からポップする命令を実行すると、第2スタックメモリ領域についても対応する情報のポップ動作を同時に行い、それらの情報内容を比較して、両者が異なればスタックオーバーフローの発生を検出する。加えて、第2スタックメモリ領域からポップしたアドレス情報をプログラムカウンタにロードし、第2スタックメモリ領域からポップしたレジスタ情報を対応する各レジスタにロードする。
すなわち、プログラムから参照できるのは第1記憶装置のみであり、たとえ改竄されたプログラムが実行されても第2記憶装置にアクセスすることはできず、第2スタックメモリ領域の内容は保持される。そして、スタックオーバーフローの発生が検出されると、第2スタックメモリ領域からポップした戻りアドレス情報がプログラムカウンタにロードされると同時にレジスタ情報が対応する各レジスタにロードされるので、CPUは本来のプログラムの実行を確実に継続することができる。
請求項2記載のプロセッサによれば、請求項1と同様の第1及び第2記憶装置を備えて、更に、緊急時用プログラムが記憶される第3記憶装置を別途備える。また、CPUは、同様に第1及び第2スタックポインタを用い、これらに対するプッシュ動作及びポップ動作についても、請求項1と同様に行う。そして、2つのスタックメモリ領域からポップした情報の内容を比較して、両者が異なればスタックオーバーフローの発生を検出し、かつプログラムカウンタに緊急時用プログラムへのアクセスアドレスをロードして、当該緊急時用プログラムを実行する。すなわち、スタックオーバーフローの発生が検出されると、緊急時用プログラムが実行されるので、その実行によりスタックオーバーフローの発生に対処することができる。
第1実施形態であり、プロセッサの構成を、要旨に係る部分について示す機能ブロック図 CPUによる処理内容を、要旨に係る部分について示すフローチャート 第2実施形態を示す図1相当図 図2相当図 セキュリティプログラムの内容を示すフローチャート
(第1実施形態)
図1に示すように、プロセッサ1は、CPU2と、第1記憶装置3と、第2記憶装置4とを備えており、第1記憶装置3及び第2記憶装置4は、何れもRAMで構成されている。第1記憶装置3には、CPU2による初期処理において、図示しないプログラムROMから、プログラム及び当該プログラムにおいて使用されるデータが、それぞれプログラム領域5,データ領域6にロードされている。
データ領域6には、第1スタックメモリ7(第1スタックメモリ領域)が設定されている。CPU2は、前記プログラムにおけるメインルーチン(主プログラム)の実行中に、サブルーチン(サブプログラム)を実行する(呼び出す)際に、退避させるアドレス及びデータレジスタ等の情報と、メインルーチンへの戻りアドレス情報とを第1スタックメモリ7にプッシュする命令を実行する。また、サブルーチンの実行を終了してメインルーチンにリターンする際には、退避させたレジスタ情報及びアドレス情報を復帰させるため、第1スタックメモリ7よりこれらをポップする命令を実行する。この場合、CPU2は、第1スタックメモリ7に対するアクセスアドレス情報を、第1スタックポインタ8において保持する。
また、第2記憶装置4には、第2スタックメモリ9(第2スタックメモリ領域)が設定されている。CPU2は、上述したように、第1スタックメモリ7に対するプッシュ,ポップ命令を実行する際に、前記レジスタ情報及びアドレス情報のプッシュ,ポップを、第2スタックメモリ9に対しても全く同様に実行する。そして、CPU2は、第2スタックメモリ9に対するアクセスアドレス情報を、第1スタックポインタ8とは別個に設けられている第2スタックポインタ10において保持する。
尚、第2スタックメモリ9に対するプッシュ,ポップ命令の実行は、プログラムによって制御されるのではなく、CPU2内部のハードロジックで自動的に実行される。したがって、第2スタックメモリ9については、プログラムからは参照できない(直接操作できない)ようになっている。また、第2記憶装置4は、第2スタックメモリ9を設定するためのみにアクセスされて使用され、その他の用途には使用されない。
次に、本実施形態の作用について説明する。図2において、CPU2は、命令フェッチの対象とするメモリを第1記憶装置3とするようにプログラムカウンタをセットして(S1)命令フェッチを行う(S2)。フェッチした命令が、プッシュ命令,ポップ命令の何れでもなければ(S3,S8:NO)、前記命令を実行してから(S6)ステップS2に戻る。
フェッチした命令がプッシュ命令であり(S3:YES)、プッシュする対象がメインルーチンへの戻りアドレス情報(S4:YES),或いは退避させるレジスタ情報であれば(S5:YES)、それらを第1,第2記憶装置3,4の双方について、すなわち第1,第2スタックメモリ7,9の双方にプッシュする(S7)。それから、ステップS2に戻る。
一方、フェッチした命令がポップ命令であり(S8:YES)、ポップする対象が戻りアドレス情報(S9:YES),或いは退避させたレジスタ情報であれば(S10:YES)、それらを、第1,第2記憶装置3,4の双方から、すなわち第1,第2スタックメモリ7,9の双方からポップする(S11)。そして、CPU2は、2つのスタックメモリ7,9からそれぞれポップした値を比較して、両者の値が等しいか否かを判断する(S12)。
ここで、両者の値が等しければ(YES)ステップS6に移行し、両者の値が異なれば(NO)、第1スタックメモリ7に退避させた情報が書き換えられたことを示すので、スタックオーバーフローを検出したことになる(S13)。したがって、第1スタックメモリ7からポップした情報は使用せず、それに替えて第2スタックメモリ9からポップした情報を使用する(S14)。すなわち、第2スタックメモリ9からポップしたアドレス情報をプログラムカウンタにロードし、第2スタックメモリ9からポップしたレジスタ情報を対応する各レジスタにロードして処理を実行する。
以上のように本実施形態によれば、プログラム及びそのプログラムで使用するデータが記憶される第1記憶装置3とは別個に、第1記憶装置3に定義される第1スタックメモリ7に対するプッシュ命令又はポップ命令の実行時のみ、CPU2がアクセス可能となるように構成される第2記憶装置4を備える。また、CPU2には、第1スタックメモリ7のアクセスアドレス情報を保持する第1スタックポインタ8とは別に、第2記憶装置4に定義される第2スタックメモリ9のアクセスアドレス情報を保持する第2スタックポインタ10を用意する。
CPU2は、プログラムのメインルーチンからサブルーチンを呼び出す際に、退避させるレジスタ情報と戻りアドレス情報とを第1スタックメモリ7へプッシュする命令を実行すると、第2スタックメモリ9に対しても前記各情報のプッシュ動作を同時に行い、前記各情報を第1スタックメモリ7からポップする命令を実行すると、第2スタックメモリ9からも対応する情報のポップ動作を同時に行い、それらの情報内容を比較して、両者が異なればスタックオーバーフローの発生を検出する。加えて、第2スタックメモリ9からポップしたアドレス情報をプログラムカウンタにロードし、第2スタックメモリ9からポップしたレジスタ情報を対応する各レジスタにロードする。
すなわち、プログラムから参照できるのは第1記憶装置3のみであるから、たとえ改竄されたプログラムが実行されて、第1記憶装置3側の第1スタックメモリ7が不正に書き換えられることがあっても第2記憶装置4にアクセスすることはできず、第2スタックメモリ9の内容は保持される。そして、スタックオーバーフローの発生が検出されると、第2スタックメモリ9からポップした戻りアドレス情報がプログラムカウンタにロードされると同時にレジスタ情報が対応する各レジスタにロードされるので、CPU2は本来のプログラムの実行を確実に継続することができる。
(第2実施形態)
以下、第1実施形態と同一部分には同一符号を付して説明を省略し、以下異なる部分について説明する。図3に示すように、第2実施形態のプロセッサ12は、CPU2に替わるCPU12を備えると共に、第3記憶装置13を備えている。第3記憶装置13には
セキュリティプログラム14(緊急時用プログラム)が配置されるが、第3記憶装置13はROMでも良いし、第1記憶装置3と同様に、ROMからロードされたセキュリティプログラム14が配置されているRAMでも良い。セキュリティプログラム14は、以下に説明するように、CPU2がスタックオーバーフローを検出した際に、その検出を外部に通知するためのプログラムである。
次に、第2実施形態の作用について説明する。図4に示すように、第2実施形態では、CPU12がステップS13においてスタックオーバーフローを検出すると、命令フェッチメモリを、第1記憶装置3から第3記憶装置13に切り換え(S21)、プログラムカウンタ(PC)の値を、セキュリティプログラム14のスタート番地に書き換える(S22)。尚、これらのステップS21及びS22の処理も、ハードロジックで行われる。それからステップS2に移行するので、セキュリティプログラム14の実行が開始される。
図5に示すように、セキュリティプログラム14では、第2記憶装置4をデータ記憶用のメモリとして使用する(S31)。そして、命令フェッチを行い(S32)データを読み出すと(S33)、フェッチした命令を実行し(S34)、実行した結果得られたデータを第2記憶装置4に書き込んで記憶させる(S35)。それからステップS32に戻る。このセキュリティプログラム14の実質的な処理内容は、前述のように、スタックオーバーフローの検出をプロセッサ12の外部に通知するもので、例えばペリフェラルのI/Oポートにスタックオーバーフロー信号を出力したり、外部ステータスレジスタのスタックオーバーフロー通知レジスタにおいてスタックオーバーフローのアサート信号をキャプチャしておくことで、外部システムに通知するなどの処理を行うようにしても良い。
以上のように第2実施形態によれば、プロセッサ11に、セキュリティプログラム14が記憶される第3記憶装置13を別途備える。そして、CPU12は、スタックオーバーフローの発生を検出すると、プログラムカウンタにセキュリティプログラム14へのアクセスアドレスをロードして、当該セキュリティプログラム14を実行する。したがって、その実行によりスタックオーバーフローの発生に対処することができる。
本発明は上記した、又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
スタックオーバーフローが検出された場合、CPU2をリセットさせるとともに、プログラムROMより第1記憶装置3にプログラムをリロードさせて再度実行させても良い。
緊急時用プログラムは、セキュリティプログラム14に限ることなく、スタックオーバーフローが検出された際に実行することが適切なプログラムを、個別の設計に応じて適宜選択すれば良い。
第1,第3記憶装置については、処理時間に問題がなければ、書き換え可能なROMを用いても良い。
図面中、1はプロセッサ、2はCPU、3は第1記憶装置、4は第2記憶装置、7は第1スタックメモリ(第1スタックメモリ領域)、8は第1スタックポインタ、9は第2スタックメモリ(第2スタックメモリ領域)、10は第2スタックポインタを示す。

Claims (3)

  1. CPU(2)と、
    このCPUにより実行されるプログラム及び前記プログラムで使用されるデータが記憶される第1記憶装置(3)と、
    この第1記憶装置に定義される第1スタックメモリ領域(7)に対するプッシュ命令又はポップ命令の実行時のみ、前記CPUがアクセス可能となるように構成される第2記憶装置(4)とを備え、
    前記CPUは、
    前記第1スタックメモリ領域のアクセスアドレス情報を保持する第1スタックポインタ(8)と、
    前記第2記憶装置に定義される第2スタックメモリ領域(9)のアクセスアドレス情報を保持する第2スタックポインタ(10)とを備え、
    主プログラムを実行することでサブプログラムを呼び出す際に、退避させるレジスタ情報と、主プログラムへの戻りアドレス情報とを前記第1スタックメモリ領域へプッシュする命令を実行すると、前記第2スタックメモリ領域に対しても前記レジスタ情報及び前記アドレス情報のプッシュ動作を同時に行い、
    前記アドレス情報及び前記レジスタ情報を、前記第1スタックメモリ領域からポップする命令を実行すると、前記第2スタックメモリ領域についても前記アドレス情報及び前記レジスタ情報のポップ動作を同時に行い、
    前記2つのスタックメモリ領域からポップした情報の内容を比較して、両者が異なればスタックオーバーフローの発生を検出し、かつ前記第2スタックメモリ領域からポップしたアドレス情報をプログラムカウンタにロードすると共に、前記第2スタックメモリ領域からポップしたレジスタ情報を、対応する各レジスタにロードすることを特徴とするプロセッサ。
  2. CPU(12)と、
    このCPUにより実行されるプログラム及び前記プログラムで使用されるデータが記憶される第1記憶装置と、
    この第1記憶装置に定義される第1スタックメモリ領域に対するプッシュ命令又はポップ命令の実行時のみ、前記CPUがアクセス可能となるように構成される第2記憶装置と、
    緊急時用プログラム(14)が記憶される第3記憶装置(13)とを備え、
    前記CPUは、
    前記第1スタックメモリ領域のアクセスアドレス情報を保持する第1スタックポインタと、
    前記第2記憶装置に定義される第2スタックメモリ領域のアクセスアドレス情報を保持する第2スタックポインタとを備え、
    主プログラムを実行することでサブプログラムを呼び出す際に、退避させるレジスタ情報と、主プログラムへの戻りアドレス情報とを前記第1スタックメモリ領域へプッシュする命令を実行すると、前記第2スタックメモリ領域に対しても前記レジスタ情報及び前記アドレス情報のプッシュ動作を同時に行い、
    前記アドレス情報及び前記レジスタ情報を、前記第1スタックメモリ領域からポップする命令を実行すると、前記第2スタックメモリ領域についても前記アドレス情報及び前記レジスタ情報のポップ動作を同時に行い、
    前記2つのスタックメモリ領域からポップした情報の内容を比較して、両者が異なればスタックオーバーフローの発生を検出し、かつプログラムカウンタに前記緊急時用プログラムへのアクセスアドレスをロードして、当該緊急時用プログラムを実行することを特徴とするプロセッサ。
  3. 前記緊急時用プログラムは、前記スタックオーバーフローの発生を外部に報知する処理を行うプログラムであることを特徴とする請求項2記載のプロセッサ。
JP2013134898A 2013-06-27 2013-06-27 プロセッサ Pending JP2015011436A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013134898A JP2015011436A (ja) 2013-06-27 2013-06-27 プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013134898A JP2015011436A (ja) 2013-06-27 2013-06-27 プロセッサ

Publications (1)

Publication Number Publication Date
JP2015011436A true JP2015011436A (ja) 2015-01-19

Family

ID=52304566

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013134898A Pending JP2015011436A (ja) 2013-06-27 2013-06-27 プロセッサ

Country Status (1)

Country Link
JP (1) JP2015011436A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017123119A (ja) * 2016-01-08 2017-07-13 株式会社デンソー 電子制御装置
WO2019237865A1 (zh) * 2018-06-12 2019-12-19 杨力祥 一种数据保护方法及计算装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02304635A (ja) * 1989-05-19 1990-12-18 Pfu Ltd プログラム暴走検知方法
JPH08123686A (ja) * 1994-10-24 1996-05-17 Matsushita Electric Ind Co Ltd マイクロコンピュータ
JP2001511271A (ja) * 1997-01-15 2001-08-07 シーメンス アクチエンゲゼルシヤフト ソフトウェアプログラムの規定通りの実行を監視するための方法
US20050044292A1 (en) * 2003-08-19 2005-02-24 Mckeen Francis X. Method and apparatus to retain system control when a buffer overflow attack occurs
JP2007148529A (ja) * 2005-11-24 2007-06-14 Nippon Telegr & Teleph Corp <Ntt> バッファオーバーフロー検知装置、バッファオーバーフロー検知方法およびバッファオーバーフロー検知プログラム
JP2009230479A (ja) * 2008-03-24 2009-10-08 Toshiba Microelectronics Corp マイクロプロセッサ
JP2010224908A (ja) * 2009-03-24 2010-10-07 Fujitsu Semiconductor Ltd 情報処理装置およびデータ修復方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02304635A (ja) * 1989-05-19 1990-12-18 Pfu Ltd プログラム暴走検知方法
JPH08123686A (ja) * 1994-10-24 1996-05-17 Matsushita Electric Ind Co Ltd マイクロコンピュータ
JP2001511271A (ja) * 1997-01-15 2001-08-07 シーメンス アクチエンゲゼルシヤフト ソフトウェアプログラムの規定通りの実行を監視するための方法
US20050044292A1 (en) * 2003-08-19 2005-02-24 Mckeen Francis X. Method and apparatus to retain system control when a buffer overflow attack occurs
JP2007148529A (ja) * 2005-11-24 2007-06-14 Nippon Telegr & Teleph Corp <Ntt> バッファオーバーフロー検知装置、バッファオーバーフロー検知方法およびバッファオーバーフロー検知プログラム
JP2009230479A (ja) * 2008-03-24 2009-10-08 Toshiba Microelectronics Corp マイクロプロセッサ
JP2010224908A (ja) * 2009-03-24 2010-10-07 Fujitsu Semiconductor Ltd 情報処理装置およびデータ修復方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6016020579; Ruby B. Lee et al.: 'Enlisting Hardware Architecture to Thwart Malicious Code Injection' Proceeding of the International Conference on Security in Pervasive Computing(SPC-2003) , 2003, Springer *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017123119A (ja) * 2016-01-08 2017-07-13 株式会社デンソー 電子制御装置
WO2019237865A1 (zh) * 2018-06-12 2019-12-19 杨力祥 一种数据保护方法及计算装置
CN110598406A (zh) * 2018-06-12 2019-12-20 杨力祥 一种数据保护方法及计算装置
CN110598406B (zh) * 2018-06-12 2022-08-23 杨力祥 一种数据保护方法及计算装置

Similar Documents

Publication Publication Date Title
TWI769595B (zh) 用以保護影子堆疊之處理器、方法、系統和指令
US8301856B2 (en) Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag
US7917753B2 (en) Transferring control between programs of different security levels
US8959318B2 (en) Illegal mode change handling
US7752427B2 (en) Stack underflow debug with sticky base
US9760374B2 (en) Stack pointer and memory access alignment control
KR101618535B1 (ko) 시스템 사전 부팅 동안 개선된 판독 전용 메모리 록킹을 이용하는 안전한 데이터 보호
US20140229717A1 (en) Binary translator driven program state relocation
US10503932B2 (en) Secure mode state data access tracking
US10121010B2 (en) System and method for preventing execution of malicious instructions stored in memory and malicious threads within an operating system of a computing device
US20160171213A1 (en) Apparatus and method for controlling instruction execution to prevent illegal accesses to a computer
JP2015011436A (ja) プロセッサ
KR102613643B1 (ko) 예외 처리
US11307795B2 (en) Electronic processing devices and memory control methods thereof
CN108701031B (zh) 寄存器访问控制
JP2015115052A (ja) マイクロプロセッサ、コンピュータ、異常対応方法、及び異常対策プログラム
JP2014110012A (ja) 情報処理システム
US20090158267A1 (en) System and method for inserting authorized code into a program
JP4370227B2 (ja) プロセッサ
US20150186140A1 (en) Opcode trapping
JP2006065396A (ja) メモリ管理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150915

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160607

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161206