Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Virtual rootkit

1,706 views

Published on

Hypervisor !!

Published in: Education
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Virtual rootkit

  1. 1. Virtual rootkit from 黒林檎(r00tapple)
  2. 2. [自己紹介]
  3. 3. [最初に…] [個人的疑問に] OpenSSLのWebサイトに改ざん被害でハイパーバ イザーを対象にしたハッキング問題に.. [改竄方法] OpenSSLが使っているプロバイダーのパスワードセ キュリティの不備を突いてハイパーバイザーの管理コ ンソールを制御され、OpenSSLの仮想サーバが操ら れていた。
  4. 4. 取りあえず、ハイパーバイザを図で見ると..。 [ホスト型ハイパーバイザー] [ペアメタル ハイパーバイザー] 基本的に、ペアメタルの方が世間一般で言われるHypervisorです。 (イメージ掴みにくいとウェブプロキシを想像すると良い?)
  5. 5. ring -1(リング マイナス1) 右図を見て解る様に、CPUモードは最高権限とされている “kernel-Mode”のring 0が最高権限とされています。 IntelとAMDによってハードウェア仮想化サポートによって ring -1 という概念が作成されました。 『ring 0 < ring -1 !!』 Picture For Wikipedia! そして、CPU メーカーはring -1を実施するためにいくつかの新しいCPU命令/レジスタ/ プロセッサ制御フラグを追加しました。
  6. 6. [追記] [動作モード] -vmx root モード -vmx-non-root モード [VMCS] -仮想マシン用の情報領域 -動作条件 -レジスタ情報 [vmx命令] -vmxon/vmxoff -vmread/vmwrite -vmclear -vmcall //vmx操作の有効化・無効化 //VMCS領域の書き込みと読み込み //vmcs用メモリ領域の初期化 //ゲストOSからVMMへ推移
  7. 7. Hyperjacking HyperJackingは、実行中オペレーションシステの偽物として新しい仮想マシンを形成する 必要があります。 [1]対象に悪意あるkernelドライバをインストール [2]低レベル仮想化支援命令にアクセス。 [3]悪意あるハイパーバイザー用メモリー空間を作成 [4]新しいVMのための記憶空間を作成 [5]新しいVMへ動作中0Sを移動 [6]新しいVMからのコマンドをすべてトラップに掛け 悪質なハイパーバイザーを定着させる、 仮想マシンの為の設定はVMCSでVMXのCPU命令を使用し操作され予約ページがない箇所のメモリーに 保存される。 設定は、ホスト状態/ゲスト状態/コントロールで読み取り専用データフィールドに割り当てています。 ※分割詳細はアーキテクチャ情報参照
  8. 8. [HyperJacking入門] マルウェア的な活動しない、hyperjacking一部例。 現在のオペレーションシステムからの値を使用し、VMCS中のホスト状態フィール ドの初期化を要求する部分。 [--- じゃいあん.cpp から抜粋 ---] /*VMCSの中のホスト状態のフィールドをすべて初期化*/ static void _hyperjack_init_vmcs_host_fields() { uint32_t selector; uint32_t base; uint32_t msr_lo, msr_hi; uint32_t host_rsp, host_rip; [※] 中断されたオペレーティン グシステムを再開するため //メモリセグメント、ベースレジスタ、コントロールレジスタ に保存された値を使用し x86_get_es(selector); VMCS中にゲスト状態値 __vmwrite(HOST_ES_SELECTOR, selector); を初期化するかもしれな x86_get_cs(selector); __vmwrite(HOST_CS_SELECTOR, selector); いが、Hyperjackは現在の ..... オペレーティングシステム //vm-exitハンドル…”on_vm_exit()” からの値でVMCSの中の host_rsp = 0xdeadbeef; ゲスト状態フィールドを初 __vmwrite(HOST_RSP, host_rsp); 期化する。 host_rip - 0xdeadbeef; __vmwrite(HOST_RIP, host_rip); }
  9. 9. UNIX vfork()システムコールのように、2つの異なるスレッドに実行しているオペ レーティング・システムを分割します。 [1]はHypervisorとしてvmx-rootモードで実行しているシステム [2]は仮想マシンとしてvmx-non-rootモードで実行しているシステム 物理メモリーを共有するので、ハイパーバイザーはオペレーティングシステムのメ モリに対してフルアクセス権を持っており、それを変更することができる。 (ここらへんの問題は仮想メモリで対策)
  10. 10. Hypervisor rootkit Hypervisor rootkitも技術的に難点はある物の脅威 対策としてもセキュリティソフトウェアもハードウェア支援型(例:インテル製プロセッサVTxを対象とした)OSよりも深いレベルで監視を行う方法が主流化。 ヒューリスティック型検出エンジンを備えるなどrootkitやMBR感染型rootkitの検出する 事が出来るなど。 しかしハイパーバイザを使用したrootkitの検知はずいぶん前から考えられており目新し い技術ではないです。 Microsoftがwindows serverに仮想化実装を施そうという話が出た時にはMicrosoftは ハードウェアレベルで許可されていないハイパーバイザ^ーの検出をする事にAMD・ Intelと話合うなど脅威としての認識は昔からされていた。 簡単にハイパーバイザーrootkitについて触れて行きたいと思います。
  11. 11. Hypervisor rootkitの説明の前にMBR rootkitについて触れて おきます。 [MBR(マスターブートレコード)] MBR(マスターブートレコード)はOSを見つける為にBIOSに指示するハードドライブの一部 であり、コンピューター起動時に初期ブート・シーケンスを実行しBIOSから引き継ぐ重要な 物です。(ハードディスクの先頭セクタにあるブートレコード) rootkitにはこのプロセスを感染させる事でその存在を隠しシステムを引き継ぐために送信さ れたデータを変更する事でハードウェアとOSの間で自分自身をInjectionする事がある。 ※これはbootkitとも呼ばれていてる事もあります。 [hypervisor(ハイパーバイザー)] 話を戻してハイパーバイザーは元々は物理コンピューター内に仮想マシンを作成し、ホスト と同時に複数のOSを実行する事に可能にする仮想マシンマネージャーです。 仮想ハードウェアを作成しハードウェアにアクセスする0Sによるリクエストを遮り、そのリクエス トを翻訳し実ハードウェアに渡します。 そこでrootkitはOSとユーザーから検知されないため悪意あるハイパーバイザーを作成する。 上記でMBRを紹介した例として、hypervisor rootkitにもMBR rootkitに似ている物があり、 それはbootプロセス間に悪意あるハイパーバイザーを作成するためにブートローダーを修 正するrootkitも存在するから。 そしてOSを破壊しユーザーへの表示と再起動なしで実行中仮想マシンへ移行出来る。 これらはCPUに組み込まれた仮想化支援機能を使用する事により可能です。
  12. 12. Hypervisor rootkit入門 [図..vm起動シーケンス] [3つの主な関数] vmx-init() – VT-x機能を検出及び初期化 vmx-fork() – ゲストOSとホストハイパーバイザー ..を実行中システムにfork on_vm_exit() – VM終了イベント処理など..
  13. 13. 主要関数について+a [vmx_init()] CPUIDとMSR(モデル固有レジスタ) VMXのCR4を有効 VMCSC(仮想マシンコントロールストア)で物理メモリページ割り当て VMX動作の許可---vmx_on命令を持ったプロセッサー [vmx_fork()] コード及びスタック(ハイパーバイザー用データ)を割り当て 現在実行中のオペレーションシステムをVMへ移行 実行中OSの状態をVMに設定 設定した実行コントロールがvm終了を最小化する様に例外やI/Oアクセスなどを無視 VM実行においてOSの実行を継続する。 [on_vm_exit()] VM終了イベントの処理 CPUID、CR0-CR4アクセス、RDMSR/ WRMSRのような手順については、期待される動作をエミュレート CPUID命令のコマンドを使用しバックドアを実装などに使われる。 その他一般的なrootkit機能を提供する。 [CPU ID] EAXマジック値は、リクエストされた動作を示し、rootに指定されたプロセスUIDを変更し指定プロセスを隠 蔽する事が出来る。
  14. 14. on_vm_exit()関数のゲストVMによるCPUID命令の実行 を終了する時のイベント処理コードの構造部分。 void on_vm_exit(x86_regs_t* regs) { uint32_t error = 0, exit_reason = 0, reason, instr_len, guest_eip, guest_esp; uint32_t exit_qual = 0; //vmread命令 VMREAD(VM_EXIT_REASON, &exit_reason); VMREAD(EXIT_QUALIFICATION, &exit_qual); VMREAD(GUEST_RIP, &guest_eip); VMREAD(GUEST_RSP, &guest_esp); VMREAD(VM_EXIT_INSTRUCTION_LEN, &instr_len); ….。 //CPU ID命令 if ((regs->eax & 0xFFFF0000) == 0xdead0000) { int pid = regs->eax & 0xFFFF; proc_t p = proc_find(pid); if (p) { struct ucred* uc = proc_ucred(p); uc->cr_uid = 0; proc_rele(p); } /*RDMSRとWRMSR命令がハイパーバイザー によってどのように”vm root モード”で動作する か示す。*/ //on_vm_exit() case1 : // RDMSR x86_get_msr(regs->ecx, &(regs->eax), &(regs->edx)); break; case 2: // WRMSR x86_set_msr(regs->ecx, regs->eax, regs->edx); break; ※MSRはCPU 内部制御用のレジスタ群で、 専用の RDMSR、WRMSR 命令を使用して MSR の読み書きを行います
  15. 15. vmx_on命令{VTが対応しているか確認。} vmx_on()関数 Vmcsメモリを初期化/revision番号設定 vmcs_alloc()関数とvmcs_free()関数 ついでに、__vmwriteや__VMREADなどはvmx.hで先に定義し、こちらのプログラム でincludeしています。
  16. 16. 最後に、hyperjack()関数実行 vmcs != NULLなら、vmcs_free()を実行する。
  17. 17. [検出1] [方法としては..] デバッグレジスタを使いハイパーバイザーでもブレークポイントを設置出 来る。 カーネルメモリを変更しカーネル内の関数フック。 プロセッサーがvmx non-rootモードで動作してるか調べる vm-を作成するためにvmxを使用し vm-exitイベントが発生し起きた遅れを検出。 ...など そもそもOSよし下で動作する以上検出が困難なのですが..。 再起動し、再ロードする事でバックドアや変更を探すためにフォレンジッ クする事で、メモリにInjectionされハードドライブ上のファイル構造を変更 しないHypervisor rootkitで無ければ検出は可能。 勿論メモりにInjectionされハードドライブ上のファイル構造を変更しない Hypervisor rootkitの場合は再起動する事で再起動後の存続は不可能。
  18. 18. [検出2] [Slabbed-or-not] 特定ハイパーバイザー下で実行されているか検出する物。 ハイパーバイザー下で実行され.. ■Xen(PVM or HVMモード ハイパーバイザーのバージョン) ■Vmware(ハイパーバイザーの種類 仮想化されたハードウェ アモデルの検出) ※ハードウェアモデル(hyper-v / KVM / bhyve..など) [Hooksafe] ハイパーバイザーの物理メモリーを使用し仮想環境内のrootkit を検出し削除又はブロックする事が出来るハイパーバイザー ベースのシステム。 [その他諸々] セキュリティベンダー各社が続々発表してる。
  19. 19. ご清聴有り難うございました I’m at.... Facebook:村島正浩(むらしま まさひろ) Twitter:r00tapple

×