JP4739644B2 - 悪質コード検出方法 - Google Patents
悪質コード検出方法 Download PDFInfo
- Publication number
- JP4739644B2 JP4739644B2 JP2002508176A JP2002508176A JP4739644B2 JP 4739644 B2 JP4739644 B2 JP 4739644B2 JP 2002508176 A JP2002508176 A JP 2002508176A JP 2002508176 A JP2002508176 A JP 2002508176A JP 4739644 B2 JP4739644 B2 JP 4739644B2
- Authority
- JP
- Japan
- Prior art keywords
- control device
- checksum
- storage device
- malicious code
- test data
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
Description
(技術分野)
本発明は、コード実行制御装置において、悪質コードを検出する方法に関し、特にコンピュータに限定されるものではない。また、本発明は、本方法に従って動作するテスト装置に関する。
【0002】
(背景技術)
悪質コード、例えば、コンピュータウイルスは、現代のコード実行システムにおいて、深刻な問題を引き起す場合が多い。このような悪質コードは、ロード後当初は潜在的状態にあり、その後、起動されると、システム内に記憶されたデータ及び実行可能なソフトウェアの保全性に広範なダメージを引き起こす可能性がある。
【0003】
現在、例えば、実行可能コードを暗号化した後に使用前に復号化する、及び、秘密鍵又は公開鍵暗号法を使用した認証署名の使用など、実行可能コードの信頼性を検証する幾つかの技法が利用可能である。これらの技法は、無許可のコードがシステム内にロードされ、その中で実行されるのを防止するために採用されている。しかしながら、暗号化コード又は秘密鍵が、正規の所有者から盗まれて、第三者の所有となった場合、その第三者は、復号化コード及び対応する公開鍵に対して正しく検証する悪質コードを生成することができる。
【0004】
発明者らは、悪質コードが第1及び第2の問題を引き起こすことを理解している。第1の問題は、悪質コードがコード実行システム内にロードされるのを防止する対策に関するものである。第2の問題は、実行可能コードがロードされたコード実行制御装置に、そのコードの信頼性に関する疑念が存在する場合、危殆化されたか否かを判断することに関するものである。例えば、悪質コードがコード実行システム内にロードされたことが疑われる状況において、そのコードを実行し続けると、コード実行システムからアクセス可能な貴重なデータベースに、高額な損害をもたらし兼ねない。逆に、コード実行システムをリセットし、その後再プログラムすると、メーカーへのシステムの返送を伴う、それ自体が高価な訓練となり兼ねない。更に、多くの状況において、例えば、悪質コードを含む装置の消去などの、他の保護対策を遂行することができるように、公開鍵などの認証手続きを通過した悪質コードを配信しようとしたか否かを知ることが不可欠となるであろう。
【0005】
また、発明者らは、悪質コードは、該悪質コードがアクティブであるときに、コード実行制御装置内で非常に僅かなメモリスペースを占有した、及び重要な内部装置メモリ、又は該制御装置からアクセス可能な外部メモリのみを使用した巧妙な方法で構築することができる場合が多いことを理解している。このような悪質コードを検出しようとすることは、特に、大部分の時間の間はほぼ正常に機能しているように見える、外見上は正規の実行可能コードで埋め込まれたときには、非常に困難となる。
【0006】
(発明の開示)
従って、本発明は、いつ悪質コードがコード実行制御装置内にロードされたかを検出する方法を提供しようとするものである。
【0007】
本発明の第1の態様によれば、コード実行制御装置において悪質コードを検出する方法が提供されており、該方法は、(a)情報量を低減することなく実質的に圧縮を受けないテストデータを生成し、制御装置の外部記憶装置に該テストデータをイメージデータとして記憶する段階と、(b)テストデータを制御装置の記憶装置内にロードする段階と、(c)制御装置の記憶装置内に記憶されたテストデータに基づいて、チェックサム計算を実行して第1のチェックサム値を生成し、イメージデータに基づいて、対応するチェックサム計算を実行して第2のチェックサム値を生成し、次に、第1のチェックサム値を第2のチェックサム値と比較して、制御装置の記憶装置内にあるテストデータが、改ざんされているかどうかを判断する段階と、(d)悪質コードが制御装置内に存在するかどうかを判断するために、制御装置の記憶装置内にある十分なテストデータが、チェックサムテストされるまで、段階(c)を繰り返す段階とを含む。
【0008】
本発明には、制御装置の記憶装置内のテストデータに関するチェックサム値を計算して、イメージデータに関して計算された対応するチェックサム値と比較することによって、制御装置の記憶装置内に存在する悪質コードを検出することができるという利点がある。
【0009】
テストデータが圧縮を受けつけないことによって、制御装置の記憶装置に存在する任意の悪質コードは、テストデータを圧縮することによりその存在を隠すことができない。このテストデータは、1つ又はそれ以上の乱数シーケンスを含むことが特に好ましく、これは、乱数シーケンスが、その性質上、関連の情報を損失することなく圧縮することができないためである。
【0010】
好都合には、本発明は更に、該装置内に記憶されたソフトウェア・アプリケーションの名称を明らかにするように問合せされた後、段階(b)を実行して、前記制御装置の記憶装置内の前記アプリケーションを上書きする段階を含む。
【0011】
制御装置に悪質コードがないことを確立するために、本発明が適用される場合、制御装置によって明らかにされたソフトウェア・アプリケーションの改ざんされていないバージョンが、段階(d)の後に制御装置にロードされることが好ましい。このような改ざんされていないソフトウェアのロードによって、制御装置は、本方法を適用する前の以前の状態に戻すことができる。
【0012】
制御装置内にある悪質コードが、本方法を実行するときに必要とされるチェックサム値を予測することをより困難にするために、段階(c)において行われるチェックサム計算は、制御装置の記憶装置のメモリ・ロケーションの1つ又はそれ以上のシーケンス上に基づいて、制御装置に発行されたチャレンジに応じて実行され、各チャレンジは、暗号チェックサム計算を用いてチェックサムされる制御装置のメモリ・ロケーションと、及びまた、計算を開始する1つ又はそれ以上の関連付けられた初期設定ベクトルとを指定することが有益である。悪質コードは、選択されたメモリ・ロケーション又は本方法で使用される初期設定ベクトルを予測することはできないので、悪質コードがチェックサム値を予め計算してその後にテストデータを圧縮して、悪質コードの存在を隠すことは更に困難である。
【0013】
有利には、悪質コードが自身を隠すのを更に困難にするために、上述の1つ又はそれ以上のシーケンスが、その中でメモリ・ロケーションをスキップすることができる。このようなロケーションのスキップは、制御装置の記憶装置を幾つかの異なる方法でテストすることができ、その結果、悪質コードが自身を隠すことが更に困難になるという利点を提供する。
【0014】
段階(c)における少なくとも1つのチェックサム計算は、制御装置の記憶装置内にあるインタフェースソフトウェア上で行われ、このインタフェースソフトウェアが、テストデータを制御装置の記憶装置に通信し、且つ、制御装置の記憶装置からデータを出力するように動作することができ、また、このインタフェースソフトウェアは、比較のためのイメージデータ内に含まれることが好ましい。インタフェースソフトウェアのこのようなテストは、その中に悪質コードが存在する危険を低減するのに役立つ。
【0015】
有益なことには、本方法は、制御装置の記憶装置が悪質コードを含むか否かを判断するのに、制御装置がチェックサム計算を出力する迅速性を利用することができる。悪質コードが存在する場合、悪質コードがチェックサム計算からその正体を隠すには、更に多くの段階を必要とすることが多い。
【0016】
本方法に従って制御装置をテストするとき、制御装置は、段階(c)のチェックサム計算中に、制御装置の外部記憶装置へのアクセスを禁止するのが好ましい。制御装置がそのような外部記憶装置と通信することができる場合、悪質コードは、このような外部記憶装置内に存在することによってその正体を隠すことができ、或いは、外部記憶装置にテストデータを記憶して、悪質コードの存在を制御装置内に隠すことが可能である。
【0017】
段階(c)において、暗号ハッシュアルゴリズムがチェックサムの計算に使用されることが好ましい。暗号ハッシュアルゴリズムによって生成されたチェックサムは模擬することが困難であり、従って、このようなアルゴリズムの使用によって、悪質コードが、その存在を制御装置内で隠すことがさらに困難になる。適切な暗号ハッシュアルゴリズムの例は、以下である。
(a)インターネット技術特別調査委員会(IETF)文書、RFC 1321、「MD5 Message−Digest Algorithm」(1992年)で定義された「MD5」、及び(b)米国国立標準技術研究所(NIST)文書、「FIPS Publication 180:Secure Hash Standard(SHS)」(1993年)、及び「Announcement of Weakness in the Secure Hash Standard」(1994)で定義された「SHA−1」
【0018】
本発明の第2の態様において、コード実行制御装置に問合せて、制御装置が悪質コードを含むか否か判断する本発明の第1の態様による方法を適用可能なテスト装置を提供する。
【0019】
ここで、本発明の実施形態について例証としてのみ、以下の図を参照しながら説明する。
【0020】
(発明を実施するための最良の形態)
ここで図1によれば、10で表されたコード実行制御装置のハードウェアが示されている。該制御装置10は、筐体20、主記憶装置30、コード実行プロセッサ40、及び関連する随時読取り/書込みメモリ(RAM)50を含む。RAM50、プロセッサ40、及び主記憶装置30は、プロセッサ40がRAM50及び記憶装置30内のデータにアクセスし、又データを記憶することができるように電気的に又は光学的に相互接続されている。更に、制御装置10は、該制御装置10の外部にあるネットワーク70と通信するための電気的又は光学的なインタフェース60を含む。ネットワーク70は、例えば、テスト制御装置、又は替わりに、相互接続されたコンピュータ装置のネットワークとすることができる。
【0021】
制御装置10が携帯用コード実行制御装置である場合、RAM50は、通常256バイトのデータ記憶容量を含む。更に、主記憶装置30は、通常8Mバイトのデータ記憶容量を含むE2ROM不揮発性メモリの形で提供される。更に、プロセッサ40は、通常、インタフェース60を与える双方向バッファポートを含む、8ビット又は16ビットマイクロコントローラとして提供される。
【0022】
また、制御装置10は、替わりに、プロセッサ40が相互接続されたデジタル・プロセッサ・アレイを備え、RAM50が多くのギガバイトの半導体データ記憶容量を備え、主記憶装置30が多くのギガバイトの記憶容量を有する光学的、磁気的、及び半導体のデータ記憶媒体を含む大規模コンピュータとすることができる。
【0023】
動作においては、外部ネットワーク70は、インタフェース60を介して制御装置10と通信する。ネットワーク70が実行可能コードを制御装置10に送ると、制御装置10は、該コードを主記憶装置30に記憶する。更に、プロセッサ40には、状況に応じて適用された処理の有無を問わず、データの特定項目の記憶、又は、データの特定項目の主記憶装置30からの出力を指示することができる。主記憶装置30は、例えば、取り外されている制御装置10に電力が供給されている場合でさえ、中に記憶されているデータを保持するように動作可能である。
【0024】
ここで、実行可能コード、即ちソフトウェアに関して制御装置10が構成されている方法について、図1及び図2を参照しながら説明する。実行可能コード、即ちアプリケーション1からnまでが、ここで、nは0を含まない正の整数、主記憶装置30に記憶されており、ハンドラとして知られている実行可能コードオブジェクト100のソフトウェア制御の下で動作するインタフェース60を介して制御装置10にロードされる。ハンドラ100は、ネットワーク70と、主記憶装置30と、RAM50との間のデータ及び実行可能コードの全てのフローを処理する。
【0025】
制御装置10が、ネットワーク70と共に動作しているとき、ネットワーク70は、ハンドラ100を介して主記憶装置30にアクセスすることができる。或いは、ネットワーク70は、プロセッサ40の1つ又はそれ以上のアプリケーションの実行を開始するように、ハンドラ100に指示することができ、ハンドラ100は、同時に、制御装置10とのデータフローのやりとりを処理するための1つ又はそれ以上のアプリケーションを実行する。
【0026】
従って、通常の状況においては、ネットワーク70は、ハンドラ100を介して制御装置10と通信することのみが可能である。
【0027】
アプリケーションを制御装置10にロードする前に、該アプリケーションは、その信頼性を保証するための供給側当事者の秘密鍵を使用して、該当事者によって署名される。その後、ネットワーク70及び、また必要であればハンドラ100は、秘密鍵に対応する公開鍵を使用してアプリケーションを検証することができる。このような認証手順によって、制御装置10が無許可の悪質アプリケーションをその主記憶装置30にロードするリスクが低減される。
【0028】
ソフトウェアを認証するための秘密鍵と対応する公開鍵のペアの使用は公知であり、この鍵はコードからなる。該コードは、ペアの一方のコードが、単にそのペアの他方のコードの知識からは合理的に生成することはできないものとなっている。供給側当事者が、制御装置10内に記録するためのソフトウェア・アプリケーションをネットワーク70に供給する場合、供給側当事者は、その鍵の1つを使用してアプリケーションに「署名」し、ネットワーク70には明かされない「秘密鍵」としてこの鍵を秘密に保つ。しかしながら、供給側当事者は、ペアの鍵の他方をネットワーク70に、そして、そこから制御装置10に明らかにするが、これは、供給側当事者の「公開鍵」として知られている。従って、供給側当事者によって供給された公開鍵は、供給側当事者が所有する秘密鍵を使用して署名されたアプリケーションの信頼性を検証するために、ネットワーク70及び制御装置10により使用されることができる。
【0029】
秘密鍵及び公開鍵の生成は、米国特許第4,200,770号から知られており、相補的な鍵の生成に関して、引用により本明細書に組み込まれる。秘密鍵及び公開鍵は、通常、約200バイトの長さがであり、該米国特許で説明されている数学的変換を用いて生成することができる。
【0030】
ここで、秘密鍵を使用するソフトウェア・アプリケーションの従来の「署名」について更に詳細に説明する。
【0031】
第1のアプローチにおいて、「署名」は、対応する暗号化アプリケーションを生成するための秘密鍵を使用した、ソフトウェア・アプリケーション全体の暗号化を含む。暗号化アプリケーションは、秘密鍵に対応する公開鍵を使用して復号化することができる。他の関係のない公開鍵では、暗号化ソフトウェア・アプリケーションの復号化に成功して、制御装置10で使用される実行可能な実行可能コードを生成することはできない。ハンドラ100が、復号化を行うときにこのような実行不能な実行可能コードを発見した場合、ハンドラ100は、それによりこの実行可能コードは信頼できず、主記憶装置30内で実行又は保持すべきではないと判断する。
【0032】
第2のアプローチにおいて、「署名」は、供給側当事者と、ネットワーク70及び制御装置10との両方に既知のチェックサム生成プログラムを使用して、ソフトウェア・アプリケーションの暗号チェックサムを計算する。公知の暗号チェックサム生成プログラムには、「Message Digest5」(MD5)及び「Secure Hash Algorithm」(SHA又はSHA−1)などがある。チェックサムは、比較的短く、通常、長さが16バイトから20バイトまでの範囲にある。供給側当事者は、秘密鍵を使用して、ソフトウェア・アプリケーションの周知のチェックサム生成プログラムを用いて生成されたチェックサムを暗号化し、次に、メッセージ認証コード(MAC)とも呼ばれる暗号化されたチェックサムと共に暗号化されていないソフトウェア・アプリケーションをネットワーク70に、及びそこから制御装置10に供給することができる。ネットワーク70が、ソフトウェア・アプリケーションを供給側当事者から受け取ると、ネットワーク70、同様に制御装置10は、周知のチェックサム生成プログラムを適用して、暗号化されていないソフトウェア・アプリケーション用のオペレータ・チェックサムを生成することができる。次に、ネットワーク70及び制御装置10は、供給側当事者によって供給された暗号チェックサムを、供給側当事者の公開鍵を使用して復号化して復号化チェックサムを生成することができ、次に、ネットワーク70及び制御装置10は、復号化チェックサムをオペレータチェックサムと比較する。復号化チェックサムがオペレータチェックサムと全く同じである場合、ネットワーク70及び制御装置10は、それによりそのソフトウェア・アプリケーションを信頼できると判断することになる。復号化されたチェックサムとオペレータチェックサムが同じではない場合、ネットワーク70及び制御装置10は、そのソフトウェア・アプリケーションは疑わしいと特定したことになる。
【0033】
ソフトウェア・アプリケーションに「署名」する第2のアプローチの方が、第1のアプローチよりも速く且つ計算量が少いが、これは、チェックサム生成が実行上で計算的に短時間の作業であり、16バイトから20バイトのチェックサムの暗号化は、例えば、数十メガバイトのサイズになり兼ねないソフトウェア及びデータ全体の暗号化よりも簡単であるからである。
【0034】
「署名」という用語は、発明者らによって発明を説明するために使用される場合、上述のように、第1のアプローチによる署名又は第2のアプローチによる署名をいうことを意図する。
【0035】
ネットワーク70へ、及びそこから制御装置10へソフトウェア・アプリケーションを供給する当事者の秘密鍵が、第三者によって盗まれた場合には問題が起こる可能性がある。この後、この第三者は、悪質なコードを作成し、秘密鍵を用いて署名して、その悪質コードをソフトウェア・アプリケーションとして、ネットワーク70に供給することができる。ネットワーク70及び制御装置10はいずれも、対応する公開鍵を使用してそのアプリケーションの信頼性をチェックする際、悪質なコードを検出することはできない。
【0036】
後に秘密鍵が盗まれたことが明らかになった場合、秘密鍵によって署名されたソフトウェア・アプリケーションは、悪質なコードとして疑われるようになる。この際に、主記憶装置30内に記憶された、1つ又はそれ以上のソフトウェア・アプリケーションに悪質コードが含まれているか否かを判断するために、如何にして制御装置10をテストするかという問題が生じる。
【0037】
悪質コードが、インタフェース60及びプロセッサ40を介して装置内にロードされたとき、幾つかの方法でこの悪質コードを記憶することができる。即ち、(a)悪質コードは、ハンドラ100を上書き又は主記憶装置30内でハンドラ100と共存して、ハンドラ100の動作を模擬する、また更に、例えば、制御装置10の正当な所有者の銀行口座から第三者が持つ銀行口座へ送金するような、第三者に利益をもたらす機能を実行する、悪質ハンドラとして機能することができる。
(b)悪質コードは、ソフトウェア・アプリケーションとして記憶され、ハンドラ100を経由してネットワーク70から呼び出し可能であり、ソフトウェア・アプリケーションは、制御装置10の所有者の損害の原因となる無許可の機能を実行するように動作可能である。
(c)悪質コードは、主記憶装置30内に記憶された正規のアプリケーション及びハンドラ100によって操作されるデータとして記憶することができ、このデータにより、結果的に無許可の機能が実行されることになる。
【0038】
ハンドラ100が悪質ハンドラによって置き換えられた場合、この悪質ハンドラは、ネットワーク70からインタフェース60を介して問合された際に、記憶装置30内に記憶された1つ又はそれ以上の第三者の悪質アプリケーションの存在を隠匿することができる。そのような状況においては、制御装置10は、ネットワーク70から見ると正しく機能しているかのように見える。制御装置10が引続き使用されると、例えば、ネットワーク70及び関連のデータベースの高額な不正行為につながる可能性がある。従って、いつ疑わしい悪質コードが制御装置10にロードされたか、特に、いつ秘密鍵と公開鍵による認証手順が、秘密鍵の盗難によって回避されたかを検出する方法が必要とされている。
【0039】
ここで、いつ悪質コードが制御装置10内にロードされたかを検出する本発明による方法について、図3及び図4を参照して説明する。図3において、制御装置10は、インタフェース60を介してテスト装置200に接続された構成で示されている。この構成において、制御装置10は、意図的に、テスト装置200とのみ通信することができるように配置されている。このような制限された通信は、制御装置10内に存在する悪質コードが、テスト装置200から自身を隠すために他の装置と通信するか、又は制御装置の外部の記憶装置を使用するのを防止するために使用される。
【0040】
本方法の段階Aにおいて、ハンドラ100及び1つ又はそれ以上のソフトウェア・アプリケーションを含む制御装置10は、テスト装置200に接続されている。このとき、テスト装置200は、インタフェース60を介してハンドラ100と通信し、ハンドラ内に記憶されたアプリケーションのリスト210を明らかにするように要求する。特定の状況においては、ネットワーク70自体が、制御装置10内にロードされたアプリケーションの記録を保持する。しかしながら、このような記録は、本発明の方法を実行する上では不可欠なものではない。このようにして、ハンドラ100は、制御装置10内に記憶されたアプリケーションのリストを伝達することによって装置200に応答する。
【0041】
ハンドラ100が悪質ハンドラになるように改ざんされていた場合、ハンドラは、テスト装置200に偽って、正規のアプリケーションと同様に制御装置10内に記憶された1つ又はそれ以上の悪質アプリケーションの存在を隠すことができる。
【0042】
テスト装置200がリスト210をハンドラ100から受け取ったとき、テスト装置200は、リスト210を自らの記憶装置に記憶する。
【0043】
本発明の段階Bにおいて、テスト装置200は、テストハンドラ220として知られているソフトウェア・アプリケーションを、インタフェース60を介して制御装置10に送り、該制御装置は、このテストハンドラを主記憶装置30の特定のロケーションに記憶する。この段階では、制御装置10は、ハンドラ100と、テストハンドラ220と、及び該制御装置がリスト210内でテスト装置200に公表したアプリケーションのみを含んでいるはずである。
【0044】
制御装置10が悪質コードにより危殆化されていた場合、テスト装置200に対してリスト210内で公表されていないアプリケーションを含む可能性があり、ハンドラ100自体が悪質コードを含む可能性がある。
【0045】
ネットワーク70が、制御装置10内に記憶されているべきアプリケーションの独自のリストを有し、このネットワーク70のリストが、前記リスト210と一致しない場合、テスト装置200は、そこから、推定される悪質追加コードの介入によって、制御装置10が危殆化されていたと判断する。
【0046】
次に、テスト装置200は、制御装置10にテストハンドラ220を実行するように指示を続ける。更に、テスト装置200は、ハンドラ100及びテストハンドラ220が占有すべき主記憶装置30のロケーションを、予め認識している。従って、これらのハンドラ100、200によって占有されていない記憶装置30のロケーションは、ソフトウェア・アプリケーションを記憶するのに利用可能であるはずである。
【0047】
次に、テスト装置200は、制御装置10の主記憶装置30がどのように表示されるべきかを示す参照イメージ230を該テスト装置の記憶装置内に生成する。参照イメージ230を生成後、テスト装置200は、乱数R0からRmまでのシーケンスを生成して、ハンドラ100、200によって占有されていない参照イメージ230のロケーションを乱数で埋める。また、テスト装置200は、インタフェース60を介してこれらの乱数をテストハンドラに受け渡し、該乱数を参照イメージ230のロケーションに対応する主記憶装置30内のロケーションに記憶するように指示する。
【0048】
乱数には、情報量を減らすことなく圧縮することができない特性がある。従って、悪質アプリケーションが、制御装置10の主記憶装置30内に記憶されており、ハンドラ100が、悪質ハンドラである場合、該悪質ハンドラは、乱数を圧縮して、悪質アプリケーションの存在を隠すことはできず、これは、後述するように、乱数を圧縮しようとするこのような試みは、テスト装置200によって検出されることができるからである。
【0049】
テスト装置200は、ハンドラ100、200によって占有されているロケーションを除く主記憶装置30の全てのロケーションが埋まるまで、テストハンドラ220を介して制御装置10に乱数を供給し続ける。
【0050】
本方法の段階Cにおいて、テスト装置200は、初期設定ベクトル(IV)を含む手順を用いて、乱数R0からRmまでが主記憶装置30内に正しく記録されたか否かをテストするために、制御装置10に問合せる。番号の不正な記録が特定された場合、このような不正な記録は、悪質アプリケーションの行為、即ち、ハンドラ100が危殆化されたことを示すものである。
【0051】
制御装置10に問合せたとき、テスト装置200は、インタフェース60を介してチャレンジ(challenge)をテストハンドラ220に送る。チャレンジは、主記憶装置30内の開始ロケーションのシーケンス及び初期設定ベクトル(IV)を指定するものである。次に、テストハンドラ220は、供給されたIV(初期設定ベクトル)を使用して、暗号ハッシュアルゴリズムを初期化した後に、指定されたロケーションのシーケンスの内容を順番にこのアルゴリズムに送る。テストハンドラ220のアルゴリズムは、長さが通常128又は160ビットオーダーであり、結果として得られた第1のチェックサムを計算する。次に、テストハンドラ220は、テストハンドラ220に供給されたのと同一のIV及び同一の暗号ハッシュアルゴリズムを使用して、参照イメージ230内に記憶されたデータに基づいて、対応する第2のチェックサムを計算する。第1及び第2のチェックサムが同一でない場合、テスト装置200は、それにより制御装置10が危殆化されていると判断する。逆に、第1及び第2のチェックサムが同一である場合、テスト装置200は、別のチャレンジを使用して制御装置10に問合せる。必要であれば、テスト装置200は、1つ又はそれ以上のハンドラ100及びテストハンドラ220によって占有されているロケーションを含む主記憶装置30全体に問合せることができる。ハンドラ100が危殆化されて悪質ハンドラとなっている場合、テスト装置200は、このような危殆化を検出することができる。
【0052】
テスト装置200は、多くの異なる初期設定ベクトルを使用して制御装置10に問合せて、また、必要であれば、関連するチェックサムを計算する際に使用される変化する長さのシーケンスを指定することが好ましい。このような複数の問合せは、装置内の悪質ハンドラが、悪質アプリケーションの存在を隠そうとして、チェックサムを予め計算し、次に、乱数が制御装置10に供給されたときに該乱数を圧縮しようとするのを防止するのに効果的である。
【0053】
これらのシーケンスは、少なくとも1つのハンドラ100及びテストハンドラ220によって占有されたロケーションを含むのが好ましい。更に、該シーケンスは、任意選択的に1つ又はそれ以上のロケーションを交互にスキップして、悪質コードが制御装置10内で自身を隠すのを更に困難にすることができる。このようなスキップは、図4においてシーケンス1及び3で示されている。図4のシーケンス2は、主記憶装置30内の連続的なメモリ・ロケーションに対応するものである。シーケンス3は、ハンドラ100、200によって占有されたロケーションを含む。
【0054】
多くの互いに異なる初期設定ベクトルで制御装置10に問合せた後、制御装置10が危殆化されていないと判断された場合、本方法は段階Dに進む。制御装置10が危殆化されている場合には、アラームが起動する。
【0055】
本方法の段階Dにおいて、テスト装置200は、任意選択的に制御装置10内に記憶されたテストハンドラ220を上書きして、このハンドラ220の実行可能コードが、その後制御装置10上で実行されるアプリケーションに開示されるのを防ぎ、次に、リスト210内に記録されているアプリケーションの正規に承認されたバージョンをロードする。このようなロードにより、結果的に、制御装置10にはハンドラ100の危殆化されていないバージョン、即ち1つ又はそれ以上の正規のアプリケーションを含み、主記憶装置30内の残りのロケーションは、乱数で埋められる。本テスト装置は、必要であれば、1つ又はそれ以上の正規のアプリケーションをロードする前に、乱数を有する主記憶装置30を任意選択的に消去することができる。
【0056】
本方法は、たとえ制御装置10内に記憶された公開鍵に対応する盗まれた秘密鍵によって署名されたアプリケーションが、制御装置10内にロードされたとしても、制御装置10内の悪質コードの存在を検出することができるという利点をもたらす。更にまた、本方法によって、正規の危殆化されていないアプリケーションを、本方法の終了時に制御装置10内に再ロードすることができ、その結果、制御装置10が改めて使用可能になる。
【0057】
本発明の方法は、全ての起こり得る悪質コードを検出できるわけではない。例えば、悪質コードが、危殆化されていない形態にあるハンドラ100上で動作してハンドラを圧縮し、次に、圧縮されていないハンドラ100によって元々占有されていた記憶装置のスペースに、圧縮されたハンドラ100及び悪質コードを記憶することができる場合、本方法を回避することができる。しかしながら、この悪質コードは、本方法の段階C中にテストされるとき、テストハンドラと接続して、圧縮されていないハンドラ100によって通常占有されているロケーションの値のシーケンスを、テストハンドラに供給することが可能でなければならない。テスト装置200は、必要であれば、制御装置10からの問合せに対する応答性を時間調整することによって、このような圧縮に敏感にすることができ、即ち、圧縮されていないコードは、より多くの時間を要するため、このような方法で動作する悪質コードは、通常よりも遅い応答に基づいて検出することができる。
【0058】
上述したように、制御装置10は多くの異なる形態を取ることができることが理解されるであろう。本発明の上述の方法は、制御装置10が、携帯用個人用品目である場合、並びに、複雑なコンピュータ設備である場合の両方に適用可能である。
【0059】
また、本発明の範囲から逸脱することなく、本発明の方法に対して変更を行うことができることを当業者には理解されるであろう。例えば、段階Bにおいて、制御装置10の主記憶装置30は、提供される乱数以外の他のデータで埋めることができるが、この他のデータは、制御装置10内に存在することができる任意の悪質コードによって、検出不能に圧縮されないものであり、これは、他のデータが圧縮されれば、悪質コードにその存在を持続するメモリスペースを提供する可能性があるからである。更に、段階Cにおいて、チェックサムを生成するために読み取られるロケーションのシーケンスは、制御装置10の問合せがより少なくても容認できる場合には、必ずしも主記憶装置30全体に綿密に策定される必要はない。更に、段階Cにおいてチェックサムを生成するための暗号ハッシュアルゴリズムの使用が説明されているが、暗号ハッシュアルゴリズムと組み合わせて又はその代わりに、チェックサムを生成するための他のアプローチを使用することができる。
【0060】
制御装置10内へのテストハンドラ220のロードが説明されているが、段階Bにおいてテスト装置200から供給される乱数を、ハンドラ100自体が主記憶装置30にロードできるように構成されることが可能であり、これにより、テストハンドラ220を制御装置10にロードする必要が無くなる。
【図面の簡単な説明】
【図1】 携帯用コード実行制御装置のハードウェアの概略図である。
【図2】 ソフトウェア・アプリケーション及び図1の装置の記憶装置内にロードされたハンドラの図である。
【図3】 本発明によるテスト装置に接続された図1及び図2に示す制御装置の図である。
【図4】 いつ悪質コードが図1から図3までの装置内にロードされたかを検出する方法の段階を示す図である。
Claims (11)
- コード実行制御装置において、悪質コードを検出する方法であって、
(a)情報量を低減することなく実質的に圧縮を受けないテストデータを生成し、前記制御装置の外部記憶装置に該テストデータをイメージデータとして記憶する段階と、
(b)前記テストデータを前記制御装置の記憶装置内にロードする段階と、
(c)前記制御装置の記憶装置内に記憶された前記テストデータに基づいて、チェックサム計算を実行して第1のチェックサム値を生成し、前記イメージデータに基づいて、対応するチェックサム計算を実行して第2のチェックサム値を生成し、次に、前記第1のチェックサム値を該第2のチェックサム値と比較して、前記制御装置の記憶装置内にある前記テストデータが、改ざんされているかどうかを判断する段階と、
(d)悪質コードが前記制御装置内に存在するかどうかを判断するために、前記制御装置の記憶装置内にある十分なテストデータが、チェックサムテストされるまで、段階(c)を繰り返す段階と
を含むことを特徴とする方法。 - 前記制御装置は、該装置内に記憶されたソフトウェア・アプリケーションの名称を明らかにするように問合せされた後、段階(b)を実行して、前記制御装置の記憶装置内の前記アプリケーションを上書きすることを特徴とする、請求項1に記載の方法。
- 前記制御装置に悪質コードがないと判明したとき、段階(d)の後に、前記制御装置によって明らかにされた前記ソフトウェア・アプリケーションの改ざんされていないバージョンが、前記制御装置にロードされることを特徴とする、請求項2に記載の方法。
- 前記テストデータは、1つ又はそれ以上の乱数シーケンスを含むことを特徴とする、請求項1、2、又は3のいずれかに記載の方法。
- 段階(c)で行われるチェックサム計算は、前記制御装置の記憶装置のメモリ・ロケーションの1つ又はそれ以上のシーケンスに基づき、前記メモリ・ロケーションを特定するため、且つ前記チェックサム計算において使用される1つ又はそれ以上の初期設定ベクトルを特定するために、チャレンジを使用して実行されることを特徴とする、請求項1から4のいずれか1つに記載の方法。
- 前記1つ又はそれ以上のシーケンスは、その中のメモリ・ロケーションをスキップすることを特徴とする、請求項5に記載の方法。
- 段階(c)における少なくとも1つのチェックサム計算を、前記制御装置の記憶装置内に存在するインタフェース・ソフトウェア上で行い、該インタフェース・ソフトウェアは、前記テストデータを前記制御装置の記憶装置に通信し、且つ、前記制御装置の記憶装置からデータを出力するように動作することができ、また、前記インタフェースソフトウェアが、比較のための前記イメージデータに含まれることを特徴とする、請求項1から6のいずれか1つに記載の方法。
- 前記制御装置がチェックサム計算を出力する迅速性を、前記制御装置の記憶装置が悪質コードを含むか否の判断に使用することを特徴とする、請求項1から7のいずれか1つに記載の方法。
- 段階(c)における前記チェックサムの計算中には、前記制御装置の外部記憶装置へのアクセスを禁止することを特徴とする、請求項1から8のいずれか1つに記載の方法。
- 暗号ハッシュアルゴリズムが、前記チェックサムを計算するのに使用されることを特徴とする、請求項1から9のいずれか1つに記載の方法。
- コード実行制御装置に問合せて、前記制御装置が悪質コードを含むか否か判断する、請求項1から10のいずれか1つに記載の方法の適用が実施可能であるテスト装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0016273.5 | 2000-07-01 | ||
GB0016273A GB2364404B (en) | 2000-07-01 | 2000-07-01 | Method of detecting malicious code |
PCT/GB2001/002955 WO2002003175A2 (en) | 2000-07-01 | 2001-07-02 | Method of detecting malicious code |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004503006A JP2004503006A (ja) | 2004-01-29 |
JP4739644B2 true JP4739644B2 (ja) | 2011-08-03 |
Family
ID=9894898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002508176A Expired - Fee Related JP4739644B2 (ja) | 2000-07-01 | 2001-07-02 | 悪質コード検出方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7131036B2 (ja) |
EP (1) | EP1299789B1 (ja) |
JP (1) | JP4739644B2 (ja) |
CN (1) | CN1205521C (ja) |
AT (1) | ATE306099T1 (ja) |
AU (2) | AU6622801A (ja) |
DE (1) | DE60113844T8 (ja) |
GB (1) | GB2364404B (ja) |
WO (1) | WO2002003175A2 (ja) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7421587B2 (en) * | 2001-07-26 | 2008-09-02 | Mcafee, Inc. | Detecting computer programs within packed computer files |
EP1495395B1 (en) * | 2002-04-13 | 2009-03-25 | Computer Associates Think, Inc. | System and method for detecting malicicous code |
GB0212318D0 (en) * | 2002-05-28 | 2002-07-10 | Symbian Ltd | Tamper evident removable media storing executable code |
KR100509650B1 (ko) * | 2003-03-14 | 2005-08-23 | 주식회사 안철수연구소 | 코드 삽입 기법을 이용한 악성 스크립트 감지 방법 |
KR100503386B1 (ko) * | 2003-03-14 | 2005-07-26 | 주식회사 안철수연구소 | 제어흐름과 자료흐름을 고려한 악성 행위 패턴 감지 방법 |
KR100503387B1 (ko) | 2003-03-14 | 2005-07-26 | 주식회사 안철수연구소 | 악성 암호화 스크립트에 대한 분석 및 해독 방법 |
DE10324507A1 (de) * | 2003-05-28 | 2004-12-30 | Francotyp-Postalia Ag & Co. Kg | Verfahren zum Laden von Daten in eine Speichereinrichtung |
US7325185B1 (en) * | 2003-08-04 | 2008-01-29 | Symantec Corporation | Host-based detection and prevention of malicious code propagation |
JP2005100362A (ja) * | 2003-08-29 | 2005-04-14 | Canon Inc | プログラム書き換え可能な電子装置およびプログラム書き換え方法 |
ATE510270T1 (de) * | 2004-06-09 | 2011-06-15 | Nxp Bv | System zur einmalauthentifizierung |
TWI254883B (en) | 2004-10-15 | 2006-05-11 | Hon Hai Prec Ind Co Ltd | Method and system for checking the bios rom data |
CN100356337C (zh) * | 2004-10-16 | 2007-12-19 | 鸿富锦精密工业(深圳)有限公司 | 基本输入输出系统只读存储器数据检测系统及方法 |
KR100670005B1 (ko) * | 2005-02-23 | 2007-01-19 | 삼성전자주식회사 | 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법 |
US7725735B2 (en) * | 2005-03-29 | 2010-05-25 | International Business Machines Corporation | Source code management method for malicious code detection |
US7895651B2 (en) | 2005-07-29 | 2011-02-22 | Bit 9, Inc. | Content tracking in a network security system |
US8984636B2 (en) | 2005-07-29 | 2015-03-17 | Bit9, Inc. | Content extractor and analysis system |
US8272058B2 (en) | 2005-07-29 | 2012-09-18 | Bit 9, Inc. | Centralized timed analysis in a network security system |
US9177153B1 (en) | 2005-10-07 | 2015-11-03 | Carnegie Mellon University | Verifying integrity and guaranteeing execution of code on untrusted computer platform |
US7996901B2 (en) * | 2006-03-31 | 2011-08-09 | Lenovo (Singapore) Pte. Ltd. | Hypervisor area for email virus testing |
US8151352B1 (en) * | 2006-07-14 | 2012-04-03 | Bitdefender IPR Managament Ltd. | Anti-malware emulation systems and methods |
US8135994B2 (en) * | 2006-10-30 | 2012-03-13 | The Trustees Of Columbia University In The City Of New York | Methods, media, and systems for detecting an anomalous sequence of function calls |
US8136095B2 (en) * | 2007-12-19 | 2012-03-13 | Microsoft Corporation | Relations in fuzzing data |
US8286133B2 (en) * | 2007-12-19 | 2012-10-09 | Microsoft Corporation | Fuzzing encoded data |
CN101304409B (zh) * | 2008-06-28 | 2011-04-13 | 成都市华为赛门铁克科技有限公司 | 恶意代码检测方法及系统 |
JP5378883B2 (ja) * | 2009-05-28 | 2013-12-25 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理装置および画像処理方法 |
US8918575B2 (en) * | 2009-09-14 | 2014-12-23 | Broadcom Corporation | Method and system for securely programming OTP memory |
CN101763481B (zh) * | 2010-01-15 | 2011-07-27 | 北京工业大学 | 基于lzw压缩算法的未知恶意代码检测方法 |
KR101138748B1 (ko) * | 2010-01-22 | 2012-04-24 | 주식회사 안철수연구소 | 악성 코드 차단 장치, 시스템 및 방법 |
US20120222083A1 (en) * | 2011-02-28 | 2012-08-30 | Nokia Corporation | Method and apparatus for enforcing data privacy |
DE102012217743B4 (de) * | 2012-09-28 | 2018-10-31 | Siemens Ag | Überprüfung einer Integrität von Eigenschaftsdaten eines Gerätes durch ein Prüfgerät |
US9852290B1 (en) * | 2013-07-12 | 2017-12-26 | The Boeing Company | Systems and methods of analyzing a software component |
US9202057B2 (en) * | 2013-08-30 | 2015-12-01 | Symantec Corporation | Systems and methods for identifying private keys that have been compromised |
US9479521B2 (en) | 2013-09-30 | 2016-10-25 | The Boeing Company | Software network behavior analysis and identification system |
GB2554096B (en) * | 2016-09-20 | 2019-03-20 | Advanced Risc Mach Ltd | Handling of inter-element address hazards for vector instructions |
WO2018160341A1 (en) * | 2017-03-03 | 2018-09-07 | Google Llc | Secure code jump and execution gating |
US10248577B2 (en) | 2017-04-07 | 2019-04-02 | International Business Machines Corporation | Using a characteristic of a process input/output (I/O) activity and data subject to the I/O activity to determine whether the process is a suspicious process |
US10282543B2 (en) | 2017-05-03 | 2019-05-07 | International Business Machines Corporation | Determining whether to destage write data in cache to storage based on whether the write data has malicious data |
US10445497B2 (en) | 2017-05-03 | 2019-10-15 | International Business Machines Corporation | Offloading processing of writes to determine malicious data from a first storage system to a second storage system |
EP4111338A1 (en) * | 2020-03-19 | 2023-01-04 | Huawei Technologies Co., Ltd. | Code integrity protection in devices having limited computing resources |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1091427A (ja) * | 1996-06-11 | 1998-04-10 | Internatl Business Mach Corp <Ibm> | 署名入り内容の使用の安全を保証する方法及びシステム |
JPH11143840A (ja) * | 1997-11-05 | 1999-05-28 | Hitachi Ltd | 分散オブジェクトシステムおよびその方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5050212A (en) * | 1990-06-20 | 1991-09-17 | Apple Computer, Inc. | Method and apparatus for verifying the integrity of a file stored separately from a computer |
US5475625A (en) * | 1991-01-16 | 1995-12-12 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Method and arrangement for monitoring computer manipulations |
US5454000A (en) * | 1992-07-13 | 1995-09-26 | International Business Machines Corporation | Method and system for authenticating files |
JPH06242957A (ja) * | 1993-02-16 | 1994-09-02 | Fujitsu Ltd | プログラム実行制御装置 |
JPH07146788A (ja) * | 1993-11-22 | 1995-06-06 | Fujitsu Ltd | ウイルス診断機構の作成システムと作成方法並びにウイルス診断機構と診断方法 |
US5493649A (en) * | 1994-06-21 | 1996-02-20 | Microsoft Corporation | Detecting corruption in a computer program at execution time using a checksum |
US5613002A (en) * | 1994-11-21 | 1997-03-18 | International Business Machines Corporation | Generic disinfection of programs infected with a computer virus |
US5608801A (en) * | 1995-11-16 | 1997-03-04 | Bell Communications Research, Inc. | Efficient cryptographic hash functions and methods for amplifying the security of hash functions and pseudo-random functions |
US5768372A (en) * | 1996-03-13 | 1998-06-16 | Altera Corporation | Method and apparatus for securing programming data of a programmable logic device |
US5974250A (en) * | 1996-12-13 | 1999-10-26 | Compaq Computer Corp. | System and method for secure information transmission over a network |
EP1056010A1 (en) * | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | Data integrity monitoring in trusted computing entity |
-
2000
- 2000-07-01 GB GB0016273A patent/GB2364404B/en not_active Revoked
-
2001
- 2001-07-02 CN CNB01814666XA patent/CN1205521C/zh not_active Expired - Fee Related
- 2001-07-02 AT AT01943695T patent/ATE306099T1/de not_active IP Right Cessation
- 2001-07-02 US US10/312,303 patent/US7131036B2/en not_active Expired - Fee Related
- 2001-07-02 EP EP01943695A patent/EP1299789B1/en not_active Expired - Lifetime
- 2001-07-02 WO PCT/GB2001/002955 patent/WO2002003175A2/en active IP Right Grant
- 2001-07-02 JP JP2002508176A patent/JP4739644B2/ja not_active Expired - Fee Related
- 2001-07-02 AU AU6622801A patent/AU6622801A/xx active Pending
- 2001-07-02 DE DE60113844T patent/DE60113844T8/de active Active
- 2001-07-02 AU AU2001266228A patent/AU2001266228B2/en not_active Ceased
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1091427A (ja) * | 1996-06-11 | 1998-04-10 | Internatl Business Mach Corp <Ibm> | 署名入り内容の使用の安全を保証する方法及びシステム |
JPH11143840A (ja) * | 1997-11-05 | 1999-05-28 | Hitachi Ltd | 分散オブジェクトシステムおよびその方法 |
Also Published As
Publication number | Publication date |
---|---|
ATE306099T1 (de) | 2005-10-15 |
US7131036B2 (en) | 2006-10-31 |
CN1449515A (zh) | 2003-10-15 |
GB2364404A (en) | 2002-01-23 |
JP2004503006A (ja) | 2004-01-29 |
GB0016273D0 (en) | 2000-08-23 |
WO2002003175A3 (en) | 2002-08-01 |
DE60113844T8 (de) | 2006-06-08 |
WO2002003175A2 (en) | 2002-01-10 |
EP1299789A2 (en) | 2003-04-09 |
EP1299789B1 (en) | 2005-10-05 |
DE60113844D1 (de) | 2005-11-10 |
AU2001266228B2 (en) | 2007-06-07 |
GB2364404B (en) | 2002-10-02 |
CN1205521C (zh) | 2005-06-08 |
DE60113844T2 (de) | 2006-03-16 |
US20030159090A1 (en) | 2003-08-21 |
AU6622801A (en) | 2002-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4739644B2 (ja) | 悪質コード検出方法 | |
AU2001266228A1 (en) | Method of detecting malicious code | |
US7526654B2 (en) | Method and system for detecting a secure state of a computer system | |
US11126718B2 (en) | Method for decrypting data encrypted by ransomware | |
US8250373B2 (en) | Authenticating and verifying an authenticable and verifiable module | |
US8533492B2 (en) | Electronic device, key generation program, recording medium, and key generation method | |
JP4898790B2 (ja) | ファームウェアへの認証の追加実装 | |
US8171275B2 (en) | ROM BIOS based trusted encrypted operating system | |
US20060005046A1 (en) | Secure firmware update procedure for programmable security devices | |
US8949989B2 (en) | Auditing a device | |
JP2001516908A (ja) | 不正な侵入を防ぐ方法および装置 | |
JP2001514834A (ja) | 安全決定性暗号鍵発生システムおよび方法 | |
US11409872B2 (en) | Confirming a version of firmware loaded to a processor-based device | |
US7945790B2 (en) | Low-cost pseudo-random nonce value generation system and method | |
US20150127930A1 (en) | Authenticated device initialization | |
KR20090003797A (ko) | 인증 재전송 공격 방지 방법 및 인증 시스템 | |
CN108199827B (zh) | 客户端代码完整性校验方法、存储介质、电子设备及系统 | |
TWI524208B (zh) | Encryption and Decryption of Function Library of Open System | |
CN113190831A (zh) | 一种基于tee的操作系统应用完整性度量方法及系统 | |
KR100561497B1 (ko) | 소프트웨어 보안 인증 경로 | |
KR20080045708A (ko) | 메모리 카드 제어기 펌웨어의 하드웨어 드라이버 무결성체크 | |
CN111614467B (zh) | 系统后门防御方法、装置、计算机设备和存储介质 | |
CN114818005B (zh) | 一种Linux系统完整性检查方法与系统 | |
JP3433413B2 (ja) | ユーザ認証装置および方法 | |
CN115859337B (zh) | 基于内核的防止设备破解方法、设备、服务器及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20040629 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040701 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20040701 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20070201 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080319 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110316 |
|
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: 20110407 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110428 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4739644 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140513 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |