JP2010508573A - 暗号ハッシュを用いたウィルス位置決定法 - Google Patents
暗号ハッシュを用いたウィルス位置決定法 Download PDFInfo
- Publication number
- JP2010508573A JP2010508573A JP2009534700A JP2009534700A JP2010508573A JP 2010508573 A JP2010508573 A JP 2010508573A JP 2009534700 A JP2009534700 A JP 2009534700A JP 2009534700 A JP2009534700 A JP 2009534700A JP 2010508573 A JP2010508573 A JP 2010508573A
- Authority
- JP
- Japan
- Prior art keywords
- file
- hash
- virus
- sequence
- blocks
- 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.)
- Granted
Links
- 241000700605 Viruses Species 0.000 title claims abstract description 119
- 230000004807 localization Effects 0.000 title abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 92
- 238000004422 calculation algorithm Methods 0.000 claims description 43
- 230000009385 viral infection Effects 0.000 abstract description 4
- 208000036142 Viral infection Diseases 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 65
- 208000015181 infectious disease Diseases 0.000 description 46
- 238000001514 detection method Methods 0.000 description 24
- 238000012795 verification Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- YTAHJIFKAKIKAV-XNMGPUDCSA-N [(1R)-3-morpholin-4-yl-1-phenylpropyl] N-[(3S)-2-oxo-5-phenyl-1,3-dihydro-1,4-benzodiazepin-3-yl]carbamate Chemical compound O=C1[C@H](N=C(C2=C(N1)C=CC=C2)C1=CC=CC=C1)NC(O[C@H](CCN1CCOCC1)C1=CC=CC=C1)=O YTAHJIFKAKIKAV-XNMGPUDCSA-N 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000002155 anti-virotic effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000007123 defense Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013496 data integrity verification Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000012631 diagnostic technique Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- 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
- G06F21/562—Static detection
- G06F21/565—Static detection by checking file integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
Description
「衝突困難(collision-intractable)」ハッシュ関数、または「衝突なし(collision-free)」、「衝突困難(collision-resistant)」、及び時として「暗号(cryptographic)」関数として知られている、暗号法でしばしば用いられる数学的ツールが、ファイルやメッセージなどの整合性検証を必要とする用途を含むいくつかの用途において非常にしばしば用いられている。これらのツールまたは関数は以下のように定義される:すなわちそれらは、入力として任意の長さの二進(バイナリ)文字列(圧縮されるべきファイルを示す)を受け取り、出力として固定サイズ(例えば128または160ビット)の二進文字列(元のファイルのハッシュまたはフィンガープリント(指紋)を示す)を返す。ハッシュ関数への入力が160ビットよりはるかに長い場合、ハッシュ関数の任意の単一出力の原像(preimage)の数は非常に大きくなる。さらに、これらの関数によって期待される驚くべき特性は、任意のアルゴリズムでもそれを実行に成功するのに実行不可能な時間(例えば、数世紀またはそれ以上)を要するであろうという意味において、同一の出力へマップ(写像)されるたった2つの原像を見つけることすら、いかなる効率的なアルゴリズムにとっても計算困難でありそうだからである。
kをセキュリティパラメータとし、H={Hw}k∈Nを関数
Hw:{0,1}k×{0,1}a→{0,1}b
の族(family)とする、ここでa>bであり、wは|w|=kを満足する関数インデックスである。以下の条件、
(1)各wに対してHwを算出する(kについての)確率的多項式時間アルゴリズムが存在する;
(2)任意の確率的多項式時間アルゴリズムAに関し、wが一様に選択された場合に、Hw(x1)=Hw(x2)となるような確率A(w)=(x1,x2)が最大でε(k)となる、どんな逆多項式よりも漸近的に小さい関数εが存在する;
が成り立つ場合に、Hを衝突困難ハッシュ関数(collision-resistant hash function)の族であると言う。
大半のインターネットウィルスをそれらウィルスの感染手法、すなわち以下に詳細に説明する、上書き(Overwriting)、先頭追加(Prepending)、追加(Appending)、及び埋め込み(Embedding)の1つにしたがうように特徴づけることができる。
この感染手法では、ウィルスは、ホストのコードの一部を交換することによって、ホストまたはターゲット実行可能ファイルに感染する。ウィルスにとってこれを実現可能な1つの方法は、正規のデータファイルを開くであろうように、書き込みのために簡単にターゲットファイルを開き、その後、ウィルス自身のコピーをファイルにセーブすることである。これによって損傷ファイルが発生することになる。損傷した実行可能ファイルが、そのあとで、その所有者によって実行開始されるとき、オペレーティングシステムは、元のターゲットプログラムの代わりにウィルスコードを実行するだろう。この感染手法は、通常、ターゲットファイルにダメージを与え、それを使用不能にする。
この感染手法では、ウィルスは、どのウィルスが感染したいホストまたはターゲット実行可能ファイルの先頭にそのコードを挿入し、損傷した実行可能ファイルを生成する。この技術は、一般に、上書き技術より精巧であり、例えばウィルスNimdaによって使用された。損傷ファイルが、そのあとで、その所有者によって実行開始されるとき、ウィルスコードが実行可能プログラムの先頭に位置し、次に意図されたすなわち元のターゲットプログラムが位置するので、オペレーティングシステムは、最初にウィルスコードを実行するだろう。この感染手法は、ターゲットファイルを破損するようには見せないだけでなく、コードの所有者によって簡単に検出できない、という効果も持っている。事実、そのようなウィルスの存在は容易に検出できない。
この感染手法では、ウィルスは、そのウィルスが感染したいホストまたはターゲット実行可能ファイルの終わりにそのコードを挿入し、さらに、通常、ウィルスコードの先頭へのジャンプも感染または損傷したファイルの先頭に挿入する。損傷した実行可能ファイルが、そのあとで、その所有者によって実行開始されるとき、オペレーティングシステムは、まず、ジャンプしてウィルスコードを実行し、次に、意図したプログラム、すなわち元のターゲットプログラムの制御に戻るであろう。先頭追加手法と同様に、この感染手法を用いたウィルスの存在を検出するのは容易ではない。この手法は、例えばウィルスMichelangeloで使用された。
この感染手法では、ウィルスは、1個のコードまたは別個のファイル中のコードを指すコマンドを、シェルスクリプト、Perlのスクリプト、Java(登録商標)のクラスファイル、または正規の実行可能ファイルに最終的にコンパイルされる1つまたは複数のファイルのソースコードのどこにでも挿入する。この手法が見られた例はほとんどないが、実行可能命令を含んだあらゆるプログラムがウィルスの潜在的なターゲットであるということに注意しなければならない。
上述したように、整合性検証技術は、ファイルを実行する前に、そのファイルへの予期しない変更を検出しようとするものである。暗号ハッシュに基づいた整合性検証は以下のように行うことができる。
上記の技術を拡張して、整合性を検査するだけでなく、2つのファイル間の差異についての付加的情報を明らかにすることもできる。上記の整合性検証技術の基礎的な特性は、以下のように言い直すことができる。ファイルM(1)及びM(2)、及びそれらのハッシュhash(1)及びhash(2)が与えられると、M(1)=M(2)ならば1であり、そうでなければ0である定義される関数p(M(1),M(2))を決定する効率的なアルゴリズムDIFFが存在する。アルゴリズムDIFFは、入力p、hash(1)及びhash(2)を用いて、単純にhash(1)=hash(2)かどうかを検査し、もしそうならば1を返し、そうでない場合には0を返す。この手法はより広範な関数に、特に、例えば書換え型(rewriting)、追加型、先頭追加型及び埋め込み型の感染手法のような上述した感染手法によって引き起こされる、M(1)とM(2)との間の差異に関する情報を検出する関数に、一般化することができる。例えば、p-revealing(p−顕示)衝突困難ハッシュ関数は、2つのファイルM(1),M(2)を返す任意の効率的な敵対者に対して、入力としてM(1)及びM(2)の2つのハッシュを受け取る際に関数p(M(1),M(2))を算出できる効率的なアルゴリズムDetが存在するような、衝突困難ハッシュ関数として形式的に定義される。ここでpは、通常、2つのファイル間の差異に関する何らかの情報を返す関数である。任意の衝突困難ハッシュ関数はM(1)とM(2)との間の差異の性質に関する有用な情報を明らかにするのを支援するようには見えないが、従来のものから発展したより複雑な衝突困難ハッシュ関数を考案して有用な情報を得ることができる。
上述のように、書換え型感染手法では、ウィルスは、ターゲットファイルのいくつかのブロックを書き換える。ほとんどの場合、損傷ファイルは、書換えの後でさえ同一サイズのままであり、書き換えられたブロックが隣接して配置されている。本発明に基づく方法は、ファイルからのブロックのシーケンスに対してできるだけ多くのハッシュを算出し、ファイルのいかなる位置でも連続するブロックのセグメントを書き換えるウィルスの位置決定を後でできるようしている。したがって、ファイル中のブロック数をnとすると、位置決定ハッシュ関数は、ファイルブロックの4(log2 n−l)個のシーケンスに対してハッシュを算出するので、4(log n−1)個のハッシュが算出される、すなわち、log n−1個のグループの各々に対して4つのハッシュが算出される。例えば、n=1024の場合、4×(10−1)すなわち36個のハッシュが算出される。図3は、書換え型感染に対するウィルス位置診断ハッシュ計算の例示実施形態において、ハッシュ計算がなされるファイルブロック14,16,18,20のシーケンスから構成されたグループ22を示している。なお、i番目のグループ22では、n/2i+1ブロックだけファイルを巡回的に回転させ、第1のシーケンス14及び第2のシーケンス16に分割を再適用することにより、第3のシーケンス18及び第4のシーケンス20が得られることに留意されたい。
M1=M2の場合は0;
(b−a)<(n/4)、かつ、M1(a),M1(a+1),…,M1(b)及びM2(a),M2(a+1),…,M2(b)だけがM1とM2とが異なるブロックである場合に(a,b); それ以外の場合には⊥。
この第1のステップで、Mの中のブロックは、各シーケンスがn/2個のブロックの連結によって得られる、次のように定義される4つのシーケンスにグループ化される:
S1,1=M(0)|…|M(n/2−1),
S1,2=M(n/2)|…|M(n−l),
S1,3=M(n/4)|…|M(3n/4−1),
S1,4=M(0)|…|M(n/4−1)|M(3n/4)|…|M(n−1))。
ステップ1を拡張して、M中のブロックは、各シーケンスがn/2j個のブロックの連結によって得られる、次のように定義される2×2j個のシーケンスにグループ化される:
Sj,i=M((i−1)*n/2j)|…|M(i*n/2j−1),
Sj,i+2j=M(((i−1)*n/2j+n/2j+1) mod n)|…|M((i*n/2j+n/2j+1−l) mod n),
ここで、i=1,…,2jである(なお、Sj,i+2jでのブロックのインデックスは、n/2j+1だけ巡回的にSj,iのインデックスをシフトすることによって得られる)。
i=1,2の場合には、
hj,i=H(Sj,i|Sj,i+2|Sj,i+4|…|Sj,i+2j-2),
i=3,4の場合には、
hj,i=H(Sj,i-2+2j|Sj,i+2j|Sj,i+2j+2|…|Sj,i+2j+2j-4)。
1. M'の入力に対してRew−pHを適用したときの、出力h'=((h'1,i,h'2,i,…,h'log n-1,i))i=1,2,3,4を算出する(ステップS1);
2. すべてのインデックス(j,i),j∈{1,…,log n−1},i∈{1,2,3,4}に対して、hj,i≠h'j,iの場合にはtj,i=1となり、hj,i=h'j,iの場合にはtj,i=0となるtj,iを算出する(ステップS2);
3. S={1,…,n},j=1を設定し、入力ペア(S,j)についてプロシージャ(手順)Rew−RecLoc(下に定義される)を実行したときに返されるブロックTのシーケンスを出力する(ステップS3);
ステップS4では、プロシージャRew−RecLocを実行する。プロシージャRew−RecLoc(S,j)は、以下のように定義され、図4Bに示されている:
1. すべてのインデックスi∈{1,2,3,4}に対してtj,i=1の場合には(ステップS5)には、T=Sを戻り値として返し、停止する;
2. tj,i*=0となるようにi*を定める(ステップS6);
3. i*=1または2場合には(ステップS7)、群Sj,i,Sj,i+2,Sj,i+4,…,Sj,i+2j-2からのブロックを群Sからすべて取り除く(ステップS8);
4. i*=3または4の場合には(ステップS9)、群Sj,i-2+2j,Sj,i+2j,Sj,i+2j+2,…,Sj,i+2j+2j-4からのブロックを群Sからすべて取り除く(ステップ10);
5. プロシージャRew−RecLoc(S,j+1)を実行する(ステップS11)。
追加型感染手法と先頭追加型感染手法とを対称的な方法でを扱うことができる。上述のように、追加型感染手法ではウィルスはターゲットファイル10の末端に追加されるが、先頭追加型感染手法ではウィルスはターゲットファイル10の先頭に追加される。結果として、両方の感染手法においては、損傷してしまったまたはその疑いのあるファイル12のファイルサイズは大きくなり、ウィルスが追加または先頭追加された後、以前のファイルサイズが失われる可能性がある。本発明に基づく方法では、ファイルの末端に連続するブロックのセグメントを追加する(または、先頭にセグメントを先頭追加する)ウィルスの位置決定を行うことをあとで行うために、ホストファイル10からのブロックのシーケンスについての多くのハッシュを算出する。損傷していないターゲットファイル10のブロック数がnであり、損傷しているファイル12のブロック数がn'であると仮定する。すると、l個のブロックからなるメッセージの入力上で、構造は、たかだかlog4/3 l/4個のファイルブロックシーケンスを、したがってたかだかlog4/3 l/4個のハッシュを返す、すなわち、log4/3 l/4個のフェーズのおのおのに対して1つのハッシュを返す。例えば、l=1024の場合には20個のハッシュがある。
M1=M2の場合は0;
|M2|<2|M1|であり、及びi=1,…,x−1に対してM1(i)=M2(i)であり、かつi=xに対してM1(i)≠M2(i)である場合はx;
それ以外の場合には⊥。
1. j←1及びMj=Mと設定する;
2. 2k<l/2となる最大の正の整数kを算出し、Mjから、シーケンスSj,1=Mj(1),…,Mj(2k)を得て、ハッシュhj=H(Sj)を算出する;
3. 反復が終わるように新しい入力Mj+1が0または1個のブロックを有するようになるまで、l−2k+1+1≧1場合に、Mj+1=Mj(2k+1+1)|…|Mj(l)上でステップ2を再帰的に繰り返し、j=j+1とする:
4. m=log4/3 l/4に対して、算出されたハッシュ(h1,h2,.…,hm)をすべて返す。
1. j←1及びMj=Mを設定する(ステップS12);
2. 2k<n'/2となる最大の正の整数kを算出し、Mjから次の2つのブロックシーケンス:Sj,i=Mj(1),…,Mj(2k-1)及びSj,2=Mj(1),…,Mj(2k)を得て、i=1,2に対してハッシュh1,j=H(Sj,i)を算出する(ステップS13);
3. 反復が終わるように新しい入力Mj+1が0または1つのブロックを有するようになるまで、l−2k+1+1≧1場合に、Mj+1=Mj(2k+1+1)|…|Mj(l)上でステップ2を再帰的に繰り返し、j=j+1とする(ステップS15);
4. m'=log4/3 n'/4に対して、(h1,i,h2,i,…,hm',i)i=1,2がすべての算出されたハッシュを表すものとする(ステップS15);
5. m'=m(ステップS16)の場合、i=2に設定し(ステップS17)、そうでなければi=1に設定する(ステップS18);
6. h'=(h'1,h'2,…,h'm')=(h1,i,h2,i,…,hm',i)に設定する(ステップS19);
7. すべてのインデックスj∈{1,…,m'}に対して、hj≠h'jの場合tj=1とない、hj=h'jの場合にtj=0となるtjを算出する(ステップS20);
8. S={1,…,n},j=1と設定し、入力ペア(S,j)に対してプロシージャApp−RecLoc(下に定義される)を適用したときに返されるペアを出力する(ステップS21);
ステップS22では、プロシージャApp−RecLocを実行するプロシージャApp−RecLoc(S,j)は、以下のように定義され、図6Bに示されている:
1. tj,i=1の場合には、T=Sを戻り値として返し、停止する(ステップS23);
2. ブロックシーケンスSからブロックシーケンスSj,iからのブロックをすべて取り除く(ステップS24);
3. プロシージャApp−RecLoc(S,j+1)を実行する(ステップS25)。
上述のように埋め込み型感染手法では、ウィルスは、先頭または末端ではない、ターゲットファイル10の中間部分のどこかに挿入され、それによりターゲットファイル10より大きなサイズを有する疑わしいファイル12が生成される。本発明に基づく方法は、損傷したファイル12のどこかに連続するブロックのセグメントを埋め込むウィルスの位置決定をあとで行うために、ターゲットファイル10からのブロックのシーケンスについての多くのハッシュを算出する。ターゲットファイル10のブロック数がnであり、損傷しているファイル12のブロック数がn'であると仮定する。すると、l個のブロックを有するメッセージの入力上で、この構造は、ファイルブロックについてのたかだか8・(log2 l−1)個のシーケンスを、したがって8・(log l−1)個のハッシュを返す。すなわち、log l個のフェーズのおのおのに対して8つのハッシュを返す。例えば、n=1024の場合には、8×(10−1)=72のハッシュがあることになる。
M1=M2の場合は0;
b−a<n/2であって、i=1,…,a−1に対してM1(i)=M2(i)であり、i1=b+1,…,n及びi2=i1+b−1+1に対してM1(i1)=M2(i2)である場合には、(a,b);
それ以外の場合には⊥。
2k<l/2となる最大の正の整数kを算出する。この第1のステップにおいて、Mのブロックは、それぞれがl/2個のブロックの連結によって得られる4つのシーケンスにグループ化され、それらは次のように定義される:
S1,1=M(0)|…|M(2k−1),
S1,2=M(2k)|…|M(l−1),
S1,3=M(2k-1)|…|M(l−1−2k-1),
S1,4=M(0)|…|M(2k-1−1)|M(l−1−2k-1)|…|M(n−1)。
ステップ1を拡張して、M中のブロックは、各シーケンスがn/2j個のブロックの連結によって得られる、次のように定義される2×2j個のシーケンスにグループ化される:
c,d=1,…,2jに対して、シーケンスSj,i=M((c−1)*2k/2j)|…|M(c*2k/2j−1)|M(2k+(d−1)*(l−2k)/2j)|…|M(2k+d*l/2j−1));及び
そのブロックのインデックスがシーケンスSj,iのインデックスを2k/2jだけ巡回的にシフトすることによって得られるという点を除いて、シーケンスSj,iと同様に定義されているシーケンスSj,i+2j。
i=1,2の場合には、
hj,i=H(Sj,i|Sj,i+2|Sj,i+4|…|Sj,i+2j-2);
i=3,4の場合には、
hj,i=H(Sj,i-2+2j|Sj,i+2j|Sj,i+2j+2|…|Sj,i+2j+2j-4)。
既知の2つの技術と比較した場合における、上で説明した本発明に基づく技術の適用可能性及び性能の概要が、図9及び図10に示されている。
本発明は、2006年10月31日に出願された米国仮特許出願第60/855,710号の利益を主張し、その全内容及び開示は参照によりここに組み込まれる。
Claims (5)
- ファイルブロックのシーケンスを算出するステップと、
ホストファイルからの前記ファイルブロックのシーケンスの第1のハッシュを計算するステップと、
感染ファイルからの前記ファイルブロックのシーケンスの第2のハッシュを計算するステップと、
前記ファイルブロックのシーケンスを有する前記第1のハッシュと前記第2のハッシュとを比較するステップと、
を含み、
前記第1のハッシュと前記第2のハッシュとのいくつかが一致しない場合にウィルスの位置を出力する、ウィルス位置決定方法。 - 前記第1のハッシュを計算するステップ及び前記第2のハッシュを計算するステップは、衝突困難ハッシュ関数、デジタル署名方式、メッセージ認証コード、及び疑似乱数関数の1つを用いて行われる、請求項1に記載の方法。
- 前記ファイルブロックのシーケンスを算出するステップは、出力が、書換え型、追加型または埋め込み型ウィルスの位置をそれぞれ返す、書き換え型アルゴリズム、追加型アルゴリズム及び埋め込み型アルゴリズムの1つ用いて行われる、請求項1に記載の方法。
- 前記ウィルスは、ホストファイルからの改変された内容を有する前記ファイルブロックのシーケンスである、請求項1に記載の方法。
- 前記ウィルスの前記位置は、小さな乗法量を超える分だけ前記ウィルスよりも大きい量以下である前記ファイルブロックのシーケンスである前記ファイルブロックのシーケンスである、請求項1に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US85571006P | 2006-10-31 | 2006-10-31 | |
US60/855,710 | 2006-10-31 | ||
PCT/US2007/022899 WO2008054732A2 (en) | 2006-10-31 | 2007-10-30 | Virus localization using cryptographic hashing |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010508573A true JP2010508573A (ja) | 2010-03-18 |
JP4997373B2 JP4997373B2 (ja) | 2012-08-08 |
Family
ID=39344881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009534700A Active JP4997373B2 (ja) | 2006-10-31 | 2007-10-30 | 暗号ハッシュを用いたウィルス位置決定法 |
Country Status (7)
Country | Link |
---|---|
US (3) | US8191146B2 (ja) |
EP (1) | EP2080312B1 (ja) |
JP (1) | JP4997373B2 (ja) |
KR (1) | KR101303532B1 (ja) |
CN (1) | CN101641675B (ja) |
MX (1) | MX345979B (ja) |
WO (1) | WO2008054732A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104025107A (zh) * | 2011-11-02 | 2014-09-03 | 比特梵德知识产权管理有限公司 | 模糊列入白名单反恶意软件系统及方法 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9652613B1 (en) | 2002-01-17 | 2017-05-16 | Trustwave Holdings, Inc. | Virus detection by executing electronic message code in a virtual machine |
US8402529B1 (en) | 2007-05-30 | 2013-03-19 | M86 Security, Inc. | Preventing propagation of malicious software during execution in a virtual machine |
US20090235357A1 (en) * | 2008-03-14 | 2009-09-17 | Computer Associates Think, Inc. | Method and System for Generating a Malware Sequence File |
US10262136B1 (en) * | 2008-08-04 | 2019-04-16 | Zscaler, Inc. | Cloud-based malware detection |
GB0822619D0 (en) * | 2008-12-11 | 2009-01-21 | Scansafe Ltd | Malware detection |
US8676759B1 (en) * | 2009-09-30 | 2014-03-18 | Sonicwall, Inc. | Continuous data backup using real time delta storage |
US8640241B2 (en) * | 2009-11-16 | 2014-01-28 | Quatum Corporation | Data identification system |
JP5340185B2 (ja) * | 2010-01-19 | 2013-11-13 | 日本放送協会 | ファイル処理装置及びプログラム |
JP5553670B2 (ja) * | 2010-04-19 | 2014-07-16 | キヤノン株式会社 | 管理装置、その制御方法およびプログラム |
US8769691B1 (en) * | 2011-02-14 | 2014-07-01 | Trend Micro, Inc. | Network traffic reduction |
US9652616B1 (en) * | 2011-03-14 | 2017-05-16 | Symantec Corporation | Techniques for classifying non-process threats |
US8745750B2 (en) | 2011-04-21 | 2014-06-03 | Microsoft Corporation | Origination verification using execution transparent marker context |
CN102970294A (zh) * | 2012-11-21 | 2013-03-13 | 网神信息技术(北京)股份有限公司 | 安全网关的病毒检测方法及装置 |
US9280369B1 (en) | 2013-07-12 | 2016-03-08 | The Boeing Company | Systems and methods of analyzing a software component |
US9852290B1 (en) * | 2013-07-12 | 2017-12-26 | The Boeing Company | Systems and methods of analyzing a software component |
US9396082B2 (en) | 2013-07-12 | 2016-07-19 | The Boeing Company | Systems and methods of analyzing a software component |
US9336025B2 (en) | 2013-07-12 | 2016-05-10 | The Boeing Company | Systems and methods of analyzing a software component |
US9479521B2 (en) | 2013-09-30 | 2016-10-25 | The Boeing Company | Software network behavior analysis and identification system |
CN106682506B (zh) * | 2016-05-06 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 一种病毒程序检测方法和终端 |
RU2634178C1 (ru) * | 2016-10-10 | 2017-10-24 | Акционерное общество "Лаборатория Касперского" | Способ обнаружения вредоносных составных файлов |
GB2562079B (en) * | 2017-05-04 | 2021-02-10 | Arm Ip Ltd | Continuous hash verification |
RU2659739C1 (ru) * | 2017-09-29 | 2018-07-03 | Акционерное общество "Лаборатория Касперского" | Способ контроля доступа к составным файлам |
JP6911723B2 (ja) * | 2017-11-16 | 2021-07-28 | 富士通株式会社 | ネットワーク監視装置、ネットワーク監視方法及びネットワーク監視プログラム |
CN109766084B (zh) * | 2018-12-28 | 2021-04-23 | 百富计算机技术(深圳)有限公司 | 支付应用的定制开发方法、装置、计算机设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005050441A1 (en) * | 2003-11-19 | 2005-06-02 | Telefonaktiebolaget L M Ericsson (Publ) | Updating data in a mobile terminal |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5408642A (en) * | 1991-05-24 | 1995-04-18 | Symantec Corporation | Method for recovery of a computer program infected by a computer virus |
US5613002A (en) * | 1994-11-21 | 1997-03-18 | International Business Machines Corporation | Generic disinfection of programs infected with a computer virus |
US5485575A (en) * | 1994-11-21 | 1996-01-16 | International Business Machines Corporation | Automatic analysis of a computer virus structure and means of attachment to its hosts |
US7234167B2 (en) * | 2001-09-06 | 2007-06-19 | Mcafee, Inc. | Automatic builder of detection and cleaning routines for computer viruses |
GB2392590B (en) * | 2002-08-30 | 2005-02-23 | Toshiba Res Europ Ltd | Methods and apparatus for secure data communication links |
US7055008B2 (en) * | 2003-01-22 | 2006-05-30 | Falconstor Software, Inc. | System and method for backing up data |
US7373519B1 (en) * | 2003-04-09 | 2008-05-13 | Symantec Corporation | Distinguishing legitimate modifications from malicious modifications during executable computer file modification analysis |
US20040172551A1 (en) * | 2003-12-09 | 2004-09-02 | Michael Connor | First response computer virus blocking. |
US7475427B2 (en) * | 2003-12-12 | 2009-01-06 | International Business Machines Corporation | Apparatus, methods and computer programs for identifying or managing vulnerabilities within a data processing network |
-
2007
- 2007-10-30 MX MX2009004666A patent/MX345979B/es active IP Right Grant
- 2007-10-30 KR KR1020097011187A patent/KR101303532B1/ko active IP Right Grant
- 2007-10-30 US US11/978,773 patent/US8191146B2/en active Active
- 2007-10-30 WO PCT/US2007/022899 patent/WO2008054732A2/en active Application Filing
- 2007-10-30 CN CN200780040571.6A patent/CN101641675B/zh active Active
- 2007-10-30 EP EP07867310.0A patent/EP2080312B1/en active Active
- 2007-10-30 JP JP2009534700A patent/JP4997373B2/ja active Active
-
2012
- 2012-02-29 US US13/408,728 patent/US8572743B2/en active Active
- 2012-02-29 US US13/408,690 patent/US8578498B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005050441A1 (en) * | 2003-11-19 | 2005-06-02 | Telefonaktiebolaget L M Ericsson (Publ) | Updating data in a mobile terminal |
JP2007515708A (ja) * | 2003-11-19 | 2007-06-14 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 携帯端末内のデータ更新方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104025107A (zh) * | 2011-11-02 | 2014-09-03 | 比特梵德知识产权管理有限公司 | 模糊列入白名单反恶意软件系统及方法 |
JP2014534531A (ja) * | 2011-11-02 | 2014-12-18 | ビットディフェンダー アイピーアール マネジメント リミテッド | ファジーホワイトリスト化アンチマルウェアシステムおよび方法 |
CN104025107B (zh) * | 2011-11-02 | 2017-02-22 | 比特梵德知识产权管理有限公司 | 模糊列入白名单反恶意软件系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2080312B1 (en) | 2015-07-08 |
US8572743B2 (en) | 2013-10-29 |
EP2080312A2 (en) | 2009-07-22 |
KR101303532B1 (ko) | 2013-09-03 |
MX2009004666A (es) | 2010-02-17 |
CN101641675A (zh) | 2010-02-03 |
US8578498B2 (en) | 2013-11-05 |
US20120159181A1 (en) | 2012-06-21 |
JP4997373B2 (ja) | 2012-08-08 |
KR20090113247A (ko) | 2009-10-29 |
EP2080312A4 (en) | 2013-09-25 |
WO2008054732A3 (en) | 2008-08-07 |
WO2008054732A2 (en) | 2008-05-08 |
US20120167223A1 (en) | 2012-06-28 |
MX345979B (es) | 2017-02-24 |
CN101641675B (zh) | 2014-06-25 |
US8191146B2 (en) | 2012-05-29 |
US20080134337A1 (en) | 2008-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4997373B2 (ja) | 暗号ハッシュを用いたウィルス位置決定法 | |
JP6670907B2 (ja) | スクリプトの実行をブロックするシステム及び方法 | |
US10339312B2 (en) | System and method for detecting malicious compound files | |
US8713686B2 (en) | System and method for reducing antivirus false positives | |
US5613002A (en) | Generic disinfection of programs infected with a computer virus | |
US8533835B2 (en) | Method and system for rapid signature search over encrypted content | |
Spinellis | Reliable identification of bounded-length viruses is NP-complete | |
JP6353498B2 (ja) | ユーザ機器上でマルウェアを検出するためにアンチウィルス記録セットを生成するシステム及び方法 | |
Ronen et al. | Pseudo constant time implementations of TLS are only pseudo secure | |
WO2015007224A1 (zh) | 基于云安全的恶意程序查杀的方法、装置和服务器 | |
US7353386B2 (en) | Method and device for authenticating digital data by means of an authentication extension module | |
Lee et al. | Compression-based analysis of metamorphic malware | |
US7367056B1 (en) | Countering malicious code infections to computer files that have been infected more than once | |
Li et al. | Practical analysis framework for software-based attestation scheme | |
Di Crescenzo et al. | Cryptographic hashing for virus localization | |
KR101092342B1 (ko) | 파일 축약 정보 생성, 시그니쳐 생성 및 시그너쳐 패턴 검증 장치 및 방법 | |
Huidobro et al. | Obfuscation procedure based on the insertion of the dead code in the crypter by binary search | |
RU2628922C1 (ru) | Способ определения похожести составных файлов | |
Braga et al. | From Dragondoom to Dragonstar: Side-channel Attacks and Formally Verified Implementation of WPA3 Dragonfly Handshake | |
RU2659739C1 (ru) | Способ контроля доступа к составным файлам | |
JP6207392B2 (ja) | 異常検出装置、異常検出方法、及び異常検出プログラム | |
Tsioutsias | Analysis and evaluation of ROPInjector | |
Song et al. | Automatic vulnerability locating in binary patches | |
Alashwali | Secure Verifiable Remote Attestation of Embedded Devices | |
WO2016013926A1 (en) | A system and method to secure distribution and execution of library files in a client-server environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100615 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20100615 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100621 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110916 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20111216 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20111226 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120116 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120123 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120216 |
|
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: 20120309 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20120321 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120326 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4997373 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: 20150525 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 |
|
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 |