JP6395986B2 - 鍵生成源特定装置、鍵生成源特定方法及び鍵生成源特定プログラム - Google Patents
鍵生成源特定装置、鍵生成源特定方法及び鍵生成源特定プログラム Download PDFInfo
- Publication number
- JP6395986B2 JP6395986B2 JP2018523118A JP2018523118A JP6395986B2 JP 6395986 B2 JP6395986 B2 JP 6395986B2 JP 2018523118 A JP2018523118 A JP 2018523118A JP 2018523118 A JP2018523118 A JP 2018523118A JP 6395986 B2 JP6395986 B2 JP 6395986B2
- Authority
- JP
- Japan
- Prior art keywords
- generation source
- key
- key generation
- function
- analysis
- 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
- 238000000034 method Methods 0.000 title claims description 88
- 238000004458 analytical method Methods 0.000 claims description 85
- 230000008569 process Effects 0.000 claims description 71
- 238000012545 processing Methods 0.000 claims description 49
- 238000000605 extraction Methods 0.000 claims description 33
- 239000000284 extract Substances 0.000 claims description 10
- 230000003068 static effect Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 81
- 238000004891 communication Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 12
- 238000007792 addition Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
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/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- 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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- 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
-
- 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/567—Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Description
非特許文献1には、既知暗号アルゴリズムのテンプレートを用意し、そのテンプレートと、評価対象のアルゴリズムに同一の入力を与えた際に、出力が同一であればテンプレートのアルゴリズムと同一であると判断する技術が開示されている。
動的に鍵を生成するマルウェアは、例えば、感染端末上のIPアドレスを、暗号鍵を生成するシードとして用いて、暗号に利用する鍵を生成し、盗み出す機密ファイルの暗号化を行う。この場合、異なる端末では異なる鍵が生成され、暗号に利用される。そのため、被害が発生した端末の鍵(以降、被害鍵と呼ぶ)と、マルウェア解析環境での鍵(以降、解析鍵と呼ぶ)とが異なる。ここで、漏えい情報は被害環境で発生しているため、被害鍵により暗号化されている。そのため、解析環境で手に入る解析鍵では、暗号化された通信ログを復号することができない。
このように、従来の技術では、解析鍵の特定は可能であったが、被害鍵の特定はできないという課題があった。
マルウェアに暗号処理を実行させ、前記暗号処理の実行状況を表す実行トレースを取得し、前記実行トレースに基づいて、前記暗号処理で用いられた暗号鍵を解析鍵として特定する鍵特定部と、
前記実行トレースから、前記解析鍵が依存する命令のリストを命令リストとして抽出する抽出部と、
前記命令リストに含まれる呼出命令により呼び出された関数が、動的に変化する動的情報を取得する動的取得関数であるか否かを判定し、前記呼出命令により呼び出された関数が前記動的取得関数である場合に、前記命令リストを、前記暗号処理において前記解析鍵を生成したプログラムの少なくとも一部である鍵生成源の候補として取得する取得部と
を備えた。
まず、動的な鍵生成について図1から図3を用いて説明する。
図1は、マルウェアが動的に鍵を生成する例を示す図である。
この例で示すマルウェアは、感染端末上のIPアドレスを、暗号鍵を生成するシードとして用いて、暗号に利用する鍵を生成し、盗み出す機密ファイルの暗号化を行う。この場合、異なる端末では異なる鍵が生成され、暗号処理に利用される。
図2は、異なる鍵がそれぞれの被害端末で生成される様子を示す図である。被害端末Aと被害端末Bとは、同一のマルウェアに感染しているが、マルウェアの暗号処理で用いられる鍵は異なる。
図3は、マルウェアにより暗号化された暗号化ファイルの復号を依頼されたSOC(Security Operation Center)/CSIRT(Computer Security Incident Response Team)エンジニアが、解析鍵では復号できない様子を示している。図3に示すように、マルウェアを解析する場合、被害が発生した被害環境における被害鍵と、マルウェアの解析環境での解析鍵とは異なる。漏えい情報は被害環境で発生しているため、被害鍵により暗号化されている。そのため、解析環境で手に入る解析鍵では、暗号化された通信ログといった機密ファイルを復号することができない。
マルウェアにより暗号化された暗号化ファイルを復号するために、マルウェアが利用する暗号アルゴリズムと暗号鍵とを特定する必要がある。しかし、マルウェアが感染した端末の環境情報を利用して鍵を生成する場合、解析環境で得られる鍵では被害環境で発生した暗号化ファイルを復号することができない。そこで、本実施の形態では、解析環境において特定できた鍵の情報を元に、どの環境情報を鍵生成源として利用しているかを特定し、暗号通信の復号にかかる手間を削減することができる鍵生成源特定装置10について説明する。
図4を用いて、本実施の形態に係る鍵生成源特定装置10の構成について説明する。
本実施の形態において、鍵生成源特定装置10は、コンピュータである。鍵生成源特定装置10は、プロセッサ910を備えると共に、記憶装置920、入力インタフェース930、出力インタフェース940といった他のハードウェアを備える。記憶装置920は、メモリと補助記憶装置とを有する。
以下の説明では、鍵生成源特定装置10における鍵特定部11(実行トレース抽出部110、解析鍵特定部120)と、鍵生成源取得部130(抽出部31、取得部32)との機能を、鍵生成源特定装置10の「部」の機能という。
また、記憶部140は、記憶装置920で実現される。
プロセッサ910は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ910は、具体的には、CPU(Central Processing Unit)等である。
出力インタフェース940は、ディスプレイといった表示装置のケーブルが接続されるポートである。出力インタフェース940は、例えば、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。ディスプレイは、具体的には、LCD(Liquid Crystal Display)である。
なお、鍵生成源特定装置10の「部」の機能を実現するプログラムを鍵生成源特定プログラム520ともいう。また、鍵生成源特定プログラムプロダクトと称されるものは、鍵生成源特定プログラム520が記録された記憶媒体及び記憶装置であり、見た目の形式に関わらず、コンピュータ読み取り可能なプログラムをロードしているものである。
実行トレース抽出部110は、マルウェアを実際に動作させ、その際の動作記録である実行トレース111を取得する。この時、マルウェアには暗号処理を実行させることで、暗号処理を実行した実行トレース111を取得する。実行トレース111の取得には、例えば、IntelのPinや、QEMUといった技術を利用する。
実行トレース111とはプログラムの動作記録のことである。実際には、プログラムを実行した際に実行された命令のアドレス、命令(オペコード)、命令対象(オペランド)、メモリあるいはレジスタへのアクセス情報、呼び出した関数名といった情報によって構成される。
図6を用いて、本実施の形態に係る鍵生成源特定装置10の鍵生成源特定方法510及び鍵生成源特定プログラム520の鍵生成源特定処理S100について説明する。また、図7を用いて、本実施の形態に係る鍵生成源取得部130による鍵生成源取得処理S130について説明する。
図6及び図7に示すように、鍵生成源特定処理S100は、鍵特定処理S10(実行トレース抽出処理S110及び解析鍵特定処理S120)と、鍵生成源取得処理S130(抽出処理S20及び取得処理S30)とを有する。
鍵特定処理S10において、鍵特定部11は、マルウェアに暗号処理を実行させ、暗号処理の実行状況を表す実行トレース111を取得する実行トレース抽出処理S110を実行する。ここでは、鍵特定部11は、解析環境において暗号処理を実行する。また、鍵特定部11は、実行トレース111に基づいて、解析環境において実行された暗号処理で用いられた暗号鍵を解析鍵121として特定する解析鍵特定処理S120を実行する。
実行トレース抽出処理S110において、実行トレース抽出部110は、解析対象であるマルウェアを取得し、暗号処理を実行させ、実行トレース111を取得する。具体的には、実行トレース抽出部110には、ユーザにより入力インタフェース930を介して解析対象であるマルウェアが入力される。実行トレース抽出部110は、入力されたマルウェアに暗号処理を実行させることで実行トレース111を得る。
解析鍵特定処理S120において、解析鍵特定部120は、実行トレース抽出部110により得られた実行トレース111を取得する。解析鍵特定部120は、実行トレース111を解析することにより、解析鍵121を取得する。
鍵生成源取得処理S130において、鍵生成源取得部130の抽出部31は、実行トレース111から、解析鍵121が依存する命令のリストを命令リスト311として抽出する抽出処理S10を実行する。また、鍵生成源取得部130の取得部32は、命令リスト311に含まれる呼出命令により呼び出された関数が、動的に変化する動的情報を取得する動的取得関数411であるか否かを判定する。取得部32は、呼出命令により呼び出された関数が動的取得関数411である場合に、命令リスト311を、暗号処理において解析鍵121を生成したプログラムの少なくとも一部である鍵生成源321の候補として取得する取得処理S20を実行する。以下、鍵生成源321の候補を鍵生成源候補322として説明する。
ステップS131において、抽出部31は、実行トレース111における解析鍵121の位置を取得する。具体的には、抽出部31は、解析鍵特定部120が特定した解析鍵121の情報として、解析鍵121が実行トレース111上でどこに存在しているかの情報を受け取る。
図8は、解析鍵特定部120からの情報を元に、実行トレース111上でどのメモリが解析鍵121であるかを特定している様子を示している。ここでは、解析鍵121が16進数で「AAAAA」でありmem2に格納されていた場合を考える。ここで、mem1、mem2とはメモリの領域を指している。
ステップS132において、抽出部31は、特定した解析鍵121の位置mem2から、解析鍵121が依存する命令、すなわち解析鍵121と依存関係にある命令を追跡する。具体的には、抽出部31は、テイント解析手法を用いて、解析鍵121の位置mem2から解析鍵121と依存関係のある命令を追跡していく。テイント解析については、非特許文献2のような手法を用いることで対応する。
まず、mem2はecxの値が格納されているため、ecxの値に依存している。次に、その前段でecxはeaxの値と加算した結果を格納している。更に、その前段でeaxはmem1の値を格納している。このように依存関係を辿っていくと、最終的にmem2の値はmem1の値に依存していることが分かる。
図10は、テイント解析による解析を行った結果の命令リスト311を示す図である。命令リスト311は、アセンブルリストである。
図10のアセンブルリストは、実行トレース111全体に渡ってテイント解析による解析を行った結果である。図10に示すように、アセンブルリストは複数取得される場合がある。
動的取得関数411は、暗号処理の実行環境に応じて動的に変化する情報を動的情報(外部情報)として取得する関数である。
関数データベース141とは、Winsocketのような通信API(Application Programming Interface)や、ファイル読み込みを行うAPIといった、外部情報を取得するようなAPIが動的取得関数411として登録されているものである。関数データベース141は、外部情報参照関数データベースともいう。
外部情報は、動的情報とも称され、プログラム内のテーブルといったハードコードされた情報ではないものを指し、IPアドレスやMACアドレス、時間といった環境毎に変化する情報のことを指す。
まず、取得部32は、複数のアセンブルリストから、判定を行う判定対象のアセンブルリストを取り出す。次に、鍵生成源取得部130は、取り出したアセンブルリストから、call命令により呼び出した関数を抽出する。この場合、gethostnameがその関数である。次に、取得部32は、gethostnameが関数データベース141に存在しているかを確認するために、gethostnameのクエリを、関数データベース141に送信する。関数データベース141では、このクエリが存在しているかを検索する。図11の関数データベース141の例であれば、gethostnameは存在するため、レスポンスとしてTrueを返す。ここで、関数データベース141に存在しないクエリを送信した場合、レスポンスとしてFalseを返す。取得部32は、Trueを受け取った時、判定対象のアセンブルリストが鍵生成源候補322であると判定する。そして、取得部32は、鍵生成源候補322であると判定したアセンブルリストを鍵生成源321として決定する。
鍵生成源特定装置10は、他のネットワークと通信する通信インタフェースを有していてもよい。通信インタフェースは、レシーバとトランスミッタとを備える。具体的には、通信インタフェースは通信チップまたはNIC(Network Interface Card)である。通信インタフェースはデータを通信する通信部として機能する。レシーバはデータを受信する受信部として機能し、トランスミッタはデータを送信する送信部として機能する。
図13は、本実施の形態の変形例に係る鍵生成源特定装置10の構成を示す図である。
図13に示すように、鍵生成源特定装置10は、処理回路909、入力インタフェース930、出力インタフェース940といったハードウェアを備える。
以上のように、本実施の形態に係る鍵生成源特定装置10によれば、マルウェアから、被害鍵を特定するために重要な情報である鍵生成源を自動で得ることができる。よって、本実施の形態に係る鍵生成源特定装置10によれば、マルウェアによる暗号通信を復号する手間を大きく削減することができる。
本実施の形態では、主に、実施の形態1との差異について説明する。
本実施の形態において、実施の形態1で説明した構成と同様の構成には同一の符号を付し、その説明を省略する。
図14を用いて、本実施の形態に係る鍵生成源特定装置10aの構成について説明する。
鍵生成源特定装置10aは、実施の形態1の構成に加えて、鍵生成源取得部130に決定部33を備える。また、鍵生成源特定装置10aは、さらに、記憶部140にプログラムデータベース142を備える。その他の機能構成とハードウェア構成については、実施の形態1と同様である。よって、鍵生成源特定装置10aの機能構成は、鍵生成源特定装置10の機能構成に決定部33とプログラムデータベース142とが加わっている。また、鍵生成源特定装置10aの「部」の機能は、鍵生成源特定装置10の「部」の機能に決定部33の機能が加わっている。
なお、本実施の形態では、取得部32から鍵生成源候補322を受け取るものとする。
決定部33は、鍵生成源候補322と鍵生成プログラムテンプレートとの類似度412を算出し、この類似度412に基づいて、鍵生成源候補322が鍵生成プログラムテンプレートに類似するか否かを判定する。決定部33は、鍵生成源候補322が鍵生成プログラムテンプレートに類似する場合に鍵生成源候補322を鍵生成源321として決定する。言い換えると、決定部33は、取得部32により取得された鍵生成源候補322から、鍵生成源321を決定する。決定部33は、鍵生成源候補322に対して、どの鍵生成源候補322が実際に鍵生成源321であるかの絞り込みを行う。
テイントの誤伝搬とは、本来依存関係がなく、追跡しないデータに対して誤ってテイントが伝搬してしまうことをいう。図15は、テイントが誤伝搬するような場合を示している。
図15のアセンブルリストにおいてテイント解析を行うと、図9と同様にmem2がmem1に依存している結果が得られる。しかし、「xor eax,eax」はeaxの値によらずeaxに0を代入する処理である。そのため、実際にはmem1とmem2の間には依存関係がない。このように、実際には依存関係がないにも関わらず、依存関係があるようにデータがテイントされることをテイントの誤伝搬という。
テイントの誤伝搬が生じることを踏まえると、正確に鍵生成源321を特定するためには、誤伝搬により誤った結果を含む鍵生成源候補322から、正しい鍵生成源321に絞り込む必要がある。
図16を用いて、本実施の形態に係る鍵生成源特定装置10aの鍵生成源特定処理S100aについて説明する。
鍵生成源特定処理S100aは、実行トレース抽出処理S110と、解析鍵特定処理S120と、鍵生成源取得処理S130と、判定処理S140を有する。実行トレース抽出処理S110と解析鍵特定処理S120と鍵生成源取得処理S130とは、実施の形態1で説明した処理と同様である。
ここで、プログラムデータベース142には、予め鍵を生成するプログラムのアセンブルリストを鍵生成プログラムテンプレートとして登録してある。決定部33は、鍵生成源候補322の各々が含まれるアセンブルリストを、プログラムデータベース142に登録されたアセンブルリストと比較し、類似しているかどうかを判定する。
レーベンシュタイン距離とは編集距離とも呼ばれる、二つの文字列の距離を測定する際に用いられる尺度である。同一の文字列とするために、文字の追加及び削除が何回必要か、その回数を距離として用いる。ここで、変更は、文字を削除した後に追加するため、2回分の操作が必要である。
まず、比較対象であるアセンブルリスト、すなわち鍵生成源候補322のアセンブルリストと、プログラムデータベース142に登録されたアセンブルリストとの各々において、オペコードだけのリストに編集する。レーベンシュタイン距離の比較は、このオペコードリストに対して行う。
次に、比較対象であるオペコードリストが、プログラムデータベース142に登録されたアセンブルリストから得られたオペコードリストと全く同じになるには、何回の追加及び削除が必要であるかを測定する。ここで、追加及び削除はオペコード単位で行われる。この回数が、二つのオペコードリスト間の距離であり、距離が閾値より低い場合、比較対象であったアセンブルリストが鍵生成源321である、または鍵生成源321を含むと判定する。
図17の例では、4行目のオペコードが異なっている点と、6行目にオペコードが存在していない。そのため、この二つのオペコードリストの距離は「3」である。この値が閾値より低ければ、比較対象であったアセンブルリストが鍵生成源321を含むと判定する。
類似度の比較には、他にもファジーハッシュの一致を確認する方法や、機械学習により鍵生成プログラムの特徴を抽出し利用するといった方法がある。
以上のように、本実施の形態に係る鍵生成源特定装置10aによれば、マルウェアから、被害鍵を特定するために重要な情報である鍵生成源を、精度が高い状態で、自動で得る事ができるようになり、マルウェアによる暗号通信を復号する手間を大きく削減することが可能となる。
本実施の形態では、主に、実施の形態1との差異について説明する。
本実施の形態において、実施の形態1で説明した構成と同様の構成には同一の符号を付し、その説明を省略する。
図18を用いて、本実施の形態に係る鍵生成源特定装置10bの構成について説明する。
鍵生成源特定装置10bは、実施の形態1の構成に加えて、プログラム生成部150を備える。その他の機能構成とハードウェア構成については、実施の形態1と同様である。よって、鍵生成源特定装置10bの機能構成は、鍵生成源特定装置10の機能構成にプログラム生成部150が加わっている。また、鍵生成源特定装置10bの「部」の機能は、鍵生成源特定装置10の「部」の機能にプログラム生成部150の機能が加わっている。なお、ここでは、実施の形態1に本実施の形態が加わった形態を示すが、本実施の形態は実施の形態2に対して追加しても同様に成立する。
図19を用いて、本実施の形態に係る鍵生成源特定装置10bの鍵生成源特定処理S100bについて説明する。
生成源特定処理S100bは、実行トレース抽出処理S110と、解析鍵特定処理S120と、鍵生成源取得処理S130と、プログラム生成処理S150を有する。実行トレース抽出処理S110と解析鍵特定処理S120と鍵生成源取得処理S130とは、実施の形態1で説明した処理と同様である。
プログラム生成処理S150は、実行トレース111に記録されたアセンブルリストをそのまま辿れば、必ず鍵生成プログラム151となることを利用している処理である。
図20に示すように、鍵生成プログラム151は、鍵生成源321として決定されたアセンブルリストに、プロローグ処理のアセンブルリストが付加されて生成される。
まず、プログラム生成部150は、鍵生成源321として決定されたアセンブルリストを取得する。鍵生成源321として決定されたアセンブルリストによれは、実行された順にアセンブラを読むことにより鍵生成のアルゴリズムを得ることができる。
更に、プログラム生成部150は、実行トレース111からプログラム開始時点でのメモリ状態を抽出することで、プログラムの静的変数も設定することが可能となる。プログラム生成部150は、鍵生成源が呼び出すメモリに対応した静的変数を設定するプロローグ処理を行うアセンブルリストを生成する。プログラム生成部150は、鍵生成源321として決定されたアセンブルリストの前に、プロローグ処理を行うようにプログラムを作成することで、アセンブラで書かれた鍵生成プログラム151を作成することができる。
以上のように、本実施の形態に係る鍵生成源特定装置10bによれば、マルウェアから、鍵生成源と鍵生成プログラムを自動で得る事ができる。本実施の形態に係る鍵生成源特定装置10bによれば、被害環境での環境情報を利用して鍵生成プログラムから被害鍵を生成することが可能となり、マルウェアによる暗号通信を復号する手間を大きく削減することが可能となる。
本実施の形態では、主に、実施の形態1との差異について説明する。
本実施の形態において、実施の形態1で説明した構成と同様の構成には同一の符号を付し、その説明を省略する。
図21を用いて、本実施の形態に係る鍵生成源特定装置10cの構成について説明する。
鍵生成源特定装置10cは、実施の形態1の構成に加えて、被害鍵取得部160を備える。その他の機能構成とハードウェア構成については、実施の形態1と同様である。よって、鍵生成源特定装置10cの機能構成は、鍵生成源特定装置10の機能構成に被害鍵取得部160が加わっている。また、鍵生成源特定装置10cの「部」の機能は、鍵生成源特定装置10の「部」の機能に被害鍵取得部160の機能が加わっている。なお、ここでは、実施の形態1に本実施の形態が加わった形態を示すが、本実施の形態は実施の形態2あるいは実施の形態3に対して追加しても同様に成立する。
なお、本実施の形態では、被害鍵取得部160は、取得部32から鍵生成源321を受け取るものとする。
図22を用いて、本実施の形態に係る鍵生成源特定装置10cの生成源特定処理S100cについて説明する。
生成源特定処理S100cは、実行トレース抽出処理S110と、解析鍵特定処理S120と、鍵生成源取得処理S130と、被害鍵取得処理S160を有する。実行トレース抽出処理S110と解析鍵特定処理S120と鍵生成源取得処理S130とは、実施の形態1で説明した処理と同様である。
以上のように、本実施の形態に係る鍵生成源特定装置10cによれば、マルウェアから、被害鍵を自動で得る事ができる。本実施の形態に係る鍵生成源特定装置10cによれば、被害環境での情報を利用して被害鍵を自動で生成することが可能となり、マルウェアによる暗号通信を復号する手間を大きく削減することが可能となる。
なお、上記の実施の形態は、本質的に好ましい例示であり、本発明、その適用物や用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。上記の実施の形態は、本手法の理解を助けるためのものであって、発明を限定するためのものではない。
Claims (9)
- マルウェアに暗号処理を実行させ、前記暗号処理の実行状況を表す実行トレースを取得し、前記実行トレースに基づいて、前記暗号処理で用いられた暗号鍵を解析鍵として特定する鍵特定部と、
前記実行トレースから、前記解析鍵が依存する命令のリストを命令リストとして抽出する抽出部と、
前記命令リストに含まれる呼出命令により呼び出された関数が、動的に変化する動的情報を取得する動的取得関数であるか否かを判定し、前記呼出命令により呼び出された関数が前記動的取得関数である場合に、前記命令リストを、前記暗号処理において前記解析鍵を生成したプログラムの少なくとも一部である鍵生成源の候補として取得する取得部と
を備えた鍵生成源特定装置。 - 前記鍵生成源特定装置は、
前記動的取得関数を格納した関数データベースを備え、
前記取得部は、
前記呼出命令により呼び出された関数が前記関数データベースに含まれるか否かを判定し、前記呼出命令により呼び出された関数が前記関数データベースに含まれる場合に、前記命令リストを前記鍵生成源の候補として取得する請求項1に記載の鍵生成源特定装置。 - 前記鍵生成源特定装置は、
プログラムのテンプレートを格納するプログラムデータベースと、
前記鍵生成源の候補と前記テンプレートとの類似度を算出し、前記類似度に基づいて、前記鍵生成源の候補が前記テンプレートに類似するか否かを判定し、前記鍵生成源の候補が前記テンプレートに類似する場合に前記鍵生成源の候補を前記鍵生成源として決定する決定部と
を備えた請求項1または2に記載の鍵生成源特定装置。 - 前記取得部は、
前記鍵生成源の候補を前記鍵生成源として決定する請求項1または2に記載の鍵生成源特定装置。 - 前記動的取得関数は、前記暗号処理の実行環境に応じて動的に変化する情報を前記動的情報として取得する請求項1から4のいずれか1項に記載の鍵生成源特定装置。
- 前記鍵生成源特定装置は、
前記鍵生成源に基づいて、前記実行環境において実行される前記暗号処理で用いられる暗号鍵を生成する鍵生成プログラムを生成するプログラム生成部を備えた請求項5に記載の鍵生成源特定装置。 - 前記鍵生成源特定装置は、
前記鍵生成源と前記動的取得関数が呼び出す前記動的情報と前記実行環境とに基づいて、前記暗号処理が実行された際の暗号鍵を被害鍵として取得する被害鍵取得部を備えた請求項5または6に記載の鍵生成源特定装置。 - 鍵特定部が、マルウェアに暗号処理を実行させ、前記暗号処理の実行状況を表す実行トレースを取得し、前記実行トレースに基づいて、前記暗号処理で用いられた暗号鍵を解析鍵として特定し、
抽出部が、前記実行トレースから、前記解析鍵が依存する命令のリストを命令リストとして抽出し、
取得部が、前記命令リストに含まれる呼出命令により呼び出された関数が、動的に変化する動的情報を取得する動的取得関数であるか否かを判定し、前記呼出命令により呼び出された関数が前記動的取得関数である場合に、前記命令リストを、前記暗号処理において前記解析鍵を生成したプログラムの少なくとも一部である鍵生成源の候補として取得する鍵生成源特定方法。 - マルウェアに暗号処理を実行させ、前記暗号処理の実行状況を表す実行トレースを取得し、前記実行トレースに基づいて、前記暗号処理で用いられた暗号鍵を解析鍵として特定する鍵特定処理と、
前記実行トレースから、前記解析鍵が依存する命令のリストを命令リストとして抽出する抽出処理と、
前記命令リストに含まれる呼出命令により呼び出された関数が、動的に変化する動的情報を取得する動的取得関数であるか否かを判定し、前記呼出命令により呼び出された関数が前記動的取得関数である場合に、前記命令リストを、前記暗号処理において前記解析鍵を生成したプログラムの少なくとも一部である鍵生成源の候補として取得する取得処理と
をコンピュータに実行させる鍵生成源特定プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/067929 WO2017216924A1 (ja) | 2016-06-16 | 2016-06-16 | 鍵生成源特定装置、鍵生成源特定方法及び鍵生成源特定プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6395986B2 true JP6395986B2 (ja) | 2018-09-26 |
JPWO2017216924A1 JPWO2017216924A1 (ja) | 2018-10-11 |
Family
ID=60663063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018523118A Expired - Fee Related JP6395986B2 (ja) | 2016-06-16 | 2016-06-16 | 鍵生成源特定装置、鍵生成源特定方法及び鍵生成源特定プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20190121968A1 (ja) |
JP (1) | JP6395986B2 (ja) |
CN (1) | CN109313688A (ja) |
WO (1) | WO2017216924A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10461421B1 (en) * | 2019-05-07 | 2019-10-29 | Bao Tran | Cellular system |
CN110569091B (zh) * | 2019-09-02 | 2022-12-02 | 深圳市丰润达科技有限公司 | 单片机按键处理方法、装置及计算机可读存储介质 |
US10694399B1 (en) * | 2019-09-02 | 2020-06-23 | Bao Tran | Cellular system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009181335A (ja) * | 2008-01-30 | 2009-08-13 | Nippon Telegr & Teleph Corp <Ntt> | 解析システム、解析方法および解析プログラム |
WO2016030927A1 (ja) * | 2014-08-28 | 2016-03-03 | 三菱電機株式会社 | プロセス解析装置、プロセス解析方法、及びプロセス解析プログラム |
WO2016093182A1 (ja) * | 2014-12-09 | 2016-06-16 | 日本電信電話株式会社 | 特定装置、特定方法および特定プログラム |
-
2016
- 2016-06-16 CN CN201680086556.4A patent/CN109313688A/zh not_active Withdrawn
- 2016-06-16 JP JP2018523118A patent/JP6395986B2/ja not_active Expired - Fee Related
- 2016-06-16 WO PCT/JP2016/067929 patent/WO2017216924A1/ja active Application Filing
- 2016-06-16 US US16/094,450 patent/US20190121968A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009181335A (ja) * | 2008-01-30 | 2009-08-13 | Nippon Telegr & Teleph Corp <Ntt> | 解析システム、解析方法および解析プログラム |
WO2016030927A1 (ja) * | 2014-08-28 | 2016-03-03 | 三菱電機株式会社 | プロセス解析装置、プロセス解析方法、及びプロセス解析プログラム |
WO2016093182A1 (ja) * | 2014-12-09 | 2016-06-16 | 日本電信電話株式会社 | 特定装置、特定方法および特定プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20190121968A1 (en) | 2019-04-25 |
CN109313688A (zh) | 2019-02-05 |
JPWO2017216924A1 (ja) | 2018-10-11 |
WO2017216924A1 (ja) | 2017-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Subedi et al. | Forensic analysis of ransomware families using static and dynamic analysis | |
US10586026B2 (en) | Simple obfuscation of text data in binary files | |
US11314864B2 (en) | Memory layout based monitoring | |
US8621237B1 (en) | Protecting against cryptographic key exposure in source code | |
US9501646B2 (en) | Program verification apparatus, program verification method, and computer readable medium | |
Suarez-Tangil et al. | Stegomalware: Playing hide and seek with malicious components in smartphone apps | |
JP2012027710A (ja) | ソフトウェア検出方法及び装置及びプログラム | |
JP6395986B2 (ja) | 鍵生成源特定装置、鍵生成源特定方法及び鍵生成源特定プログラム | |
JPWO2018070404A1 (ja) | マルウェア解析装置、マルウェア解析方法、及び、マルウェア解析プログラムが格納された記録媒体 | |
US10735457B2 (en) | Intrusion investigation | |
Ali et al. | Agent-based vs agent-less sandbox for dynamic behavioral analysis | |
Lee et al. | Classification and analysis of security techniques for the user terminal area in the internet banking service | |
Senanayake et al. | Labelled Vulnerability Dataset on Android source code (LVDAndro) to develop AI-based code vulnerability detection models. | |
TW201942788A (zh) | 應用程式資訊的儲存、處理方法及裝置 | |
JP6454617B2 (ja) | マルウェア動作環境推定方法、その装置およびシステム | |
Heid et al. | Android Data Storage Locations and What App Developers Do with It from a Security and Privacy Perspective. | |
Albalawi et al. | Memory deduplication as a protective factor in virtualized systems | |
US11138319B2 (en) | Light-weight context tracking and repair for preventing integrity and confidentiality violations | |
Alghamdi et al. | Detect keyloggers by using Machine Learning | |
TW201629767A (zh) | 爲符合準則之資料決定保護性措施之技術 | |
US20160210474A1 (en) | Data processing apparatus, data processing method, and program | |
Ravula et al. | Learning attack features from static and dynamic analysis of malware | |
US11263328B2 (en) | Encrypted log aggregation | |
Vidyarthi et al. | Identifying ransomware-specific properties using static analysis of executables | |
KR101934381B1 (ko) | 해킹툴 탐지 방법 및 이를 수행하는 사용자 단말 및 서버 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180703 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20180703 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20180724 |
|
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: 20180731 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180828 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6395986 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |