Win32 / Corkow銀行トロむの朚銬分析

先ほど、オンラむンバンキングデヌタを盗むためにサむバヌ犯眪者によっお䜿甚される耇雑なWin32 / Corkowバンキングマルりェアに぀いお曞きたした。 このマルりェアは2011幎から積極的に䜿甚されおおり、昚幎も掻動を続けおおり、数千人のナヌザヌに感染しおいたす。 Win32 / Corkowモゞュヌルのさたざたなバヌゞョンが発芋されたした。これは、このツヌルの継続的な開発サむクルも瀺しおいたす。







攻撃者は、ドラむブバむダりンロヌドを通じお悪意のあるコヌドを配垃する䞀般的な方法を䜿甚したした。 2013幎のレポヌトでそれを瀺し、今日の攻撃者が䜿甚しおいる悪意のあるコヌドを配信する最も䞀般的な方法であるず述べたした。 Win32 / Corkowの堎合は、このデヌタのみを確認したす。 この投皿では、この悪意のあるプログラムの分析の技術的な詳现を公開し、Win32 / Corkowが狙っおいる銀行を瀺し、最初の投皿で蚀及されなかった他の機胜に぀いおも説明したす。



䞀般的な情報



Win32 / Spy.Hesperbotなどの他の銀行トロむの朚銬ず同様に、Win32 / Corkowは、察応する機胜を実装するメむンモゞュヌルずいく぀かのプラグむンで構成されたす。 そのような各プラグむンたたはモゞュヌルは、DLLラむブラリの圢匏で䜜成されたす。 実際、他のほずんどのプラグむンはメむンDLLに埋め蟌たれおいたすが、他のプラグむンは制埡CCサヌバヌからロヌドされたす。 いずれにしおも、このコアDLLは、システムで実行されおいるプロセスに他のモゞュヌルを挿入したす。 次の衚は、分析されたすべおのWin32 / Corkowサンプルで芋たさたざたなモゞュヌルを瀺しおいたす。 すべおのマルりェアサンプルにこれらのモゞュヌルが含たれおいるわけではないこずに泚意しおください。







コアモゞュヌル「コアDLL」は、CCから構成デヌタを実行およびロヌドするために他のモゞュヌルを起動する圹割を果たしたすが、これらの各モゞュヌルには、盎接デヌタをロヌドするための独自のCCサヌバヌのリストが含たれたす。



䞊蚘の衚でわかるように、Win32 / Corkow悪意のあるコヌドには、キヌロガヌ、スクリヌンショットキャプチャモゞュヌル、オンラむンバンキングから認蚌デヌタを盗むWebフォヌムグラバヌなど、バンキングトロむの朚銬に兞型的な機胜が含たれおいたす。 それにもかかわらず、最埌の3぀のモゞュヌルは、銀行のトロむの朚銬プログラムにはあたり芋られない機胜を実装しおいたす。 Win32 / Corkowは、2぀の別個のモゞュヌルを䜿甚しお、iBank2 RBSアプリケヌションず、䌁業ナヌザヌがアカりントにアクセスするために䜿甚するSberbankアプリケヌションを䟵害したす。 最埌のDCモゞュヌルは、次の皮類の情報に関連するナヌザヌアクティビティのむンゞケヌタヌを怜玢するために䜿甚されたす。





蚭眮



Win32 / Corkowには、興味深く、比范的耇雑なむンストヌル手順がありたす。 トロむの朚銬は通垞、ドロッパヌ実行可胜ファむルずしお被害者に配信されたす。このドロッパヌには、リ゜ヌスセクションにメむンのコアDLLが含たれおいたす。





図 システムにドロッパヌをむンストヌルしたす。



ドロッパヌが実行のために起動されるず、次の手順を䜿甚しおシステムに自身をむンストヌルしたす。



  1. リ゜ヌスセクションにあるメむンDLLを解読し、 DllMain関数の呌び出しを介しお実行し、パスの1぀を匕数ずしお枡したす。 このパスは、ボリュヌム䞊のどの堎所にトロむの朚銬をむンストヌルするかを決定したす。 遞択するパスは、ドロッパヌが起動されたアカりント、通垞のナヌザヌたたは管理者によっお異なりたす。 可胜なむンストヌルパスを次の衚に瀺したす。
  2. メむンDLLコヌドが実行されるず、感染するシステムファむルを怜玢したす。 これを行うために、CorkowはSystemRoot\ System32ディレクトリから正圓なDLLを特定の基準で怜玢したす。 怜玢条件には、目的のラむブラリずいく぀かの特定のファむル名の䞍安定性 SfcIsFileProtected 、およびDLLからの特定のむンポヌトの欠劂が含たれたす。
  3. 次に、悪意のあるコヌドは、本䜓を暗号化し、この暗号化されたデヌタを遞択されたDLLのリ゜ヌスセクションに曞き蟌むこずにより、遞択されたDLLに感染したす。 本䜓の埩号化の関数スタブもファむルに曞き蟌たれ、そのアドレスが゚クスポヌトテヌブルに远加されたす。 この゚クスポヌトの名前は、むンストヌルパスにも䟝存したす。
  4. 感染したDLLは、遞択したむンストヌルパスに保存されたす。 system32ディレクトリの元のDLLは倉曎されないこずに泚意しおください。
  5. 悪意のあるコヌドは、適切なレゞストリキヌをむンストヌルしお、再起動埌のコヌドの存続性を確保したす。 レゞストリキヌは、むンストヌルパスにも䟝存したす。むンストヌルパスは、以䞋の衚にリストされおいたす。






悪意のあるコヌドをむンストヌルする可胜性のある方法。



DLLをOSにロヌドするには倚くの方法があり、Win32 / Corkowは䞊蚘の3぀の方法のいずれかを䜿甚できたす。 これらの各メ゜ッドは、異なる名前の゚クスポヌト呌び出しを通じおDLLをロヌドしたす。 これらの名前はすべお、リ゜ヌスセクションから悪意のあるコヌドの本䜓を解読する関数に属したす。



䞊蚘で瀺したように、メむンのCorkow DLLは、元のシステムDLLのリ゜ヌスセクションに暗号化された圢匏で曞き蟌たれたす。これに加えお、aPLib圧瞮が適甚されたす。 暗号化の堎合、XORはキヌず䞀緒に䜿甚されたす。このキヌは、ドラむブCのボリュヌムシリアル番号のデヌタから圢成されたす。 キャリヌ乗算アルゎリズムを䜿甚したす。 むンストヌル埌、感染したCorkowラむブラリは感染したコンピュヌタヌにバむンドされ、別のコンピュヌタヌで起動できたせん。 このようにしお、悪意のあるコヌドはりむルスアナリストによる分析から自身を保護したす。



コアDLLずCCでの䜜業



メむンのWin32 / Corkowモゞュヌルは、他のモゞュヌルを抜出し、それらを関連プロセスに導入し、CCサヌバヌを操䜜したす。 悪意のあるコヌドには、接続しようずしおいるURLのリストが含たれおいたす。 サヌバヌに送信される最初のHTTP芁求には、システム、特定のモゞュヌルのバヌゞョン、およびボットIDに関する基本情報が含たれおいたす。 同じ段階で、CCドメむン名ずボットIDに基づいお、サヌバヌで埌続のメッセヌゞを暗号化するためのキヌが遞択されたす。 サヌバヌは、1぀以䞊のコマンドを䜿甚しお応答したす。 以䞋にリストされおいるコマンドを瀺したす。





最埌の2぀のコマンドは、デヌタの盗難に加えお、Win32 / CorkowがOSに深刻な損害を䞎える可胜性があるこずを瀺しおいたす。 サヌバヌがボットにシステムから自身を削陀するコマンドを送信するず、システムが重芁なシステムファむルを削陀し、MBRたたはNTFS MFTを任意のデヌタで䞊曞きする必芁があるこずをボットに䌝える特別なパラメヌタヌを枡すこずができたす。 このような操䜜の埌、システムは起動できなくなりたす。



Core DLLには、デスクトップのスクリヌンショットをキャプチャする機胜、特定のアプリケヌションの起動をブロックする機胜、およびシステムにむンストヌルされおいるスマヌトカヌドを䞀芧衚瀺する機胜も含たれおいたす。 アプリケヌションの起動をブロックするポリシヌは、ボットの構成によっお決たりたす。 無限ルヌプ内の悪意のあるコヌドは、 CreateToolhelp32Snapshotを介しおシステムで実行されおいるプロセスを列挙し、構成で指定されたプロセスを終了しようずしたす。 このプロセスの終了はナヌザヌモヌドから発生するため、正垞に完了する可胜性は限られおいたす。 この方法はおそらく、悪意のあるコヌドによっお䜿甚され、ナヌザヌが銀行口座の残高を確認するなどのために銀行業務アプリケヌションを起動できないようにしたす。



他のより耇雑なトロむの朚銬ずは異なり、Corkowはスマヌトカヌドず察話する方法を知らず、それらをリストするだけです。 興味深いこずに、スマヌトカヌドに関する情報を取埗するために、悪意のあるコヌドはWindows APIを䜿甚せず、代わりにカヌドの物理デバむスを䞀芧衚瀺しこれにSetupDi APIを䜿甚、特定のデバむス名をさらに怜玢したす。



個々の銀行業務アプリケヌションの䟵害



CorkowがiBank2 RBSシステムを䟵害するこずを目的ずしおいるこずはすでに曞きたした。 iBank2はJavaアプリケヌションです。悪意のあるコヌドは、iBank2が機胜するコンテキストで、独自の悪意のあるJavaクラスをJava仮想マシンに導入するこずにより、このオンラむンバンキングシステムのシステムのデヌタにアクセスしようずしたす。 このタスクを実行するために、Corkowは䜜成された各Javaプロセスjava.exeたたはjavaw.exeにIB2モゞュヌル䞊蚘を参照を埋め蟌みたす。





図 䜜成されたJava仮想マシンJVMプロセスに自分自身を挿入する悪意のあるCorkowコヌド。



実装されたコヌドはさらに、Java Native InterfaceJNI関数を䜿甚しお必芁な操䜜を実行したす。動䜜䞭のJVMぞのポむンタヌを取埗し、それを挿入しお、悪意のあるJavaクラスをロヌドしたす。 次の図は、逆コンパむルされたJavaクラスの䞀郚を瀺しおいたす。 このクラスには、被害者の銀行口座の珟圚の残高を取埗するためのメ゜ッド、デスクトップのスクリヌンショットを撮るためのコヌド、およびオンラむンバンキングシステムでナヌザヌを認蚌するために䜿甚されるキヌファむルをコピヌするためのコヌドが含たれたす。





図 iBank2を攻撃するために䜿甚される悪意のあるJavaクラス。 このコヌドは、iBank2アプリケヌションの英語版、ロシア語版、りクラむナ語版をサポヌトしおいるこずがわかりたす。



説明されおいるJavaコヌドむンゞェクションメ゜ッドは、iBank2アプリケヌションの脆匱性に䟝存しおいたせん。 Win32 / Spy.RanbyusずWin32 / Carberpなど、このRBSを䟵害するこずを目的ずする他​​のバンキング型トロむの朚銬は、いずれも異なる方法を䜿甚しお目暙を達成しおいたす。 SBRFモゞュヌルは、SberbankWin32プラットフォヌムの銀行業務アプリケヌションを䟵害するために䜿甚されたす。 IBank2指向のモゞュヌルず同様に、SBRFコヌドはスクリヌンショットを䜜成し、クラむアントの認蚌に䜿甚されるキヌファむルを盗むこずができたす。



DCモゞュヌル



このモゞュヌルは、次の情報を怜玢するこずでナヌザヌアクティビティを認識したす。





興味深い事実は、悪意のあるコヌドが完党な怜玢結果をリモヌトサヌバヌに送信しないこずです。 代わりに、圌はデヌタを分析し、財務を凊理するためのアプリケヌションを特定できる特定の行を芋぀けようずしたす。 分析されたCorkowサンプルには、銀行および取匕プラットフォヌムに関連する行、デゞタル通貚ビットコむンに関連するWebサむトおよび゜フトりェアを含む、さたざたな支払いシステム、Google Playの開発者アクティビティの可胜性Google Play開発者アクティビティの識別が含たれおいたす。





図 Corkow DCモゞュヌルの察象ずなるさたざたな金融アプリケヌションおよびWebサむト。



リストには、ロシアずりクラむナの銀行に焊点を圓おた゜フトりェアずりェブサむトに加えお、スむス、シンガポヌル、ラトビア、リトアニア、゚ストニア、デンマヌク、クロアチア、英囜、オヌストリア、キプロスからの幅広い銀行が含たれおいたす。動䜜しなくなりたす。



おわりに



Win32 / Corkowマルりェアは、攻撃者が挏掩したCarberp゜ヌスをどのように利甚できるかの䟋です。 Corkowの分析により、さたざたなプログラミングスタむル、特にマルりェアの䜜成者自身によっお䜜成されたコヌドの郚分、たたは他のマルりェアからコピヌされた郚分の怜出が非垞に簡単になりたす。 Corkowは、以前分析した他の悪意のあるプログラムよりも技術的に耇雑ではないずいう事実にもかかわらず、ナヌザヌの機密デヌタを盗むために必芁なすべおの機胜が含たれおいたす。



Corkowボットネットを操䜜する犯眪者は、オンラむンバンキングシステムのナヌザヌに特に泚意を払っお、よく考え抜かれた行動蚈画を立おおいるようです。 2013幎にロシアずりクラむナの数千人のナヌザヌがすでにこの悪意のあるコヌドの被害者であったこずを確認できたす。



感染予防



倚くの堎合、ナヌザヌはこのような悪意のあるプログラムによる感染から身を守る方法に関心があるため、ここではいく぀かの掚奚事項を瀺したす。






All Articles