卒業論文に向けて(3) 学部4年生 島本 大輔 2004年11月11日.

Slides:



Advertisements
Similar presentations
「図書管理」のための Webアプリケーション開発 -Apache/Tomcat/MySQL/Java on Windows XP-
Advertisements

Windows PEファイル感染及び発見的手法による検知 Nicolas BRULEZ / Digital River
IIS 4.0で開発をするコツ Webアプリケーション構築.
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
Samba日本語版の設定と運用のノウハウトラブルシューティング編
1.コンピュータと情報処理 p.20 第1章第1節 3.ソフトウェア ソフトウェア 基本ソフトウェア
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
SharePoint Server において 構成ウィザードが失敗する場合の トラブルシューティング
セッション追跡によるプロトコルアノーマリの検知と対処
セッション追跡によるプロトコルアノーマリの検知と対処
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
バックドア(rootkit&rootshell) vs Tripwire
通信処理のカーネル内競合を 検出するアスペクト指向 カーネルレベルロガー
第4回 個人の動画配信補足のためのWeb構築
Microsoft .NET 入門 Silverlight のための 福井コンピュータ株式会社 小島 富治雄
柳澤 佳里* 光来 健一* 千葉 滋* *東京工業大学 情報理工学研究科 数理・計算科学専攻
第2章 ソフトウェアの基礎知識.
ソフトウェアを美味しく 解析する方法 Security Ark
App. A アセンブラ、リンカ、 SPIMシミュレータ
MSBuild 色々出来るよ 2011/04/02 お だ.
Perlを用いた 学内専用アップローダの作成
[コース: A1] .NET Framework の基礎
LogStructuredFileSystem Servey
オペレーティングシステム i386アーキテクチャ(2)
TinyOS 浅川 和久 2017/4/7 TinyOS.
Telnet, rlogin などの仮想端末 ftp などのファイル転送 rpc, nfs
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第11回 プロセス間通信4 仮想FTPの実現 担当:青木義満
C言語システムプログラミング C Language System Programming
SAP & SQL Server テクニカルアーキテクチャ概要 マイクロソフト株式会社 SAP/Microsoft コンピテンスセンター
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
SLEEP機能付き 軽量AUDIOプレーヤーの開発
型付きアセンブリ言語を用いた安全なカーネル拡張
卒業論文に向けて(5) 学部4年生 島本 大輔 2004年12月14日.
Windows 2000 拡張カーネルの技術紹介 2018年6月10日 黒翼猫.
学籍番号順に着席のこと 001~056までは741教室へ 057~110までは743教室へ
HandleIOにふれる ヒント プログラムは別途配布しています。 Copyright, 2010 © Scarly Hardware.
“Survey of System Virtualization Techniques” by Robert Rose のまとめ
図書館職員のための アプリケーション開発講習会
動的スライスを用いた バグ修正前後の実行系列の比較
わんくま同盟・techbank.jp 夏椰 Insight Technology, Inc. 今川 美保
セキュリティ(3) 05A2013 大川内 斉.
他のプロセスに あたえる影響が少ない 実行時ミラーリングシステム
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
動的スライスを用いたバグ修正前後の実行系列の差分検出手法
Microsoft Visual Studio 2005 Tools for
Java Bytecode Modification and Applet Security
訓練データとテストデータが 異なる分布に従う場合の学習
MIX 09 2/23/2019 1:22 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
A Provably Sound TAL for Back-end Optimization について
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
通信機構合わせた最適化をおこなう並列化ンパイラ
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
全体ミーティング 6月6日 島本 大輔(M2) 2006年6月6日(火).
東京工業大学 情報理工学研究科 数理・計算科学専攻 千葉研究室 栗田 亮
コンパイラ資料 実行時環境.
卒業論文に向けて(2) 学部4年生 島本 大輔 2004年10月29日.
コンピュータアーキテクチャ 第 4 回.
ポインタとポインタを用いた関数定義.
Cell/B.E. のSPE上で動作する 安全なOS監視システム
Mondriaan Memory Protection の調査
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
コンピュータアーキテクチャ 第 4 回.
全体発表 10/18 島本 大輔 2005年10月18日(火).
回帰テストにおける実行系列の差分の効率的な検出手法
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
L4-Linux のメモリ管理における問題点とその解決策
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
0.1 DXライブラリの導入 必要なファイルの準備.
Presentation transcript:

卒業論文に向けて(3) 学部4年生 島本 大輔 2004年11月11日

概要 進捗 API hooking 今後の予定

進捗 Windows版IDS or Sandbox 調査内容 API hooking について調査 PE File についても調査 ウィルスやハッキング手法について 調査

Windows版IDS or Sandbox API の Hooking を用いる予定 似た研究あり 基本的にNT系列で動作

API hooking User-mode Kernel-mode Win32 の API を Hooking 演習3の研究内容(Detours) Kernel-mode Native API を Hooking

User-mode Hooking Proxy DLL [3] API Patching [4] IAT Patching [4][5] Detours IAT Patching [4][5] Import Address Table の値を書き換える Detours にもこの機能あり

Detours(API Patching) 自分のコード(Detour)を実行後、本当の API を呼び出す 呼び出し元 Detour 関数 Trampoline 目的の関数

Detours の適用例 Before After ;; Target Function Sleep: push ebp [1 byte] mov ebp,esp [2 bytes] push ebx [1 bytes] push esi [1 byte] push edi ....  ;; Trampoline Function UntimedSleep: jmp Sleep ;; Detour Function TimedSleep: .... ;; Target Function Sleep: jmp TimedSleep [5 bytes] push edi ; Sleep+5 ....  ;; Trampoline Function UntimedSleep: push ebp mov ebp,esp push ebx push esi jmp Sleep+5 ;; Detour Function TimedSleep: .... jmp UntimedSleep

Detours 利点 欠点 ユーザー定義の API を Hook できる API 内に 「jmp 関数」=5 byte 分の容量が 必要 ⇒ 5 byte 未満の API は置き換えられない Win32 の API は難しい ⇒ DLL 側で可能かもしれない

IAT Patching Import Address Table を書き換える Detours にもこの機能あり この手法の文献は多い

Import Address Table (IAT) 外部ライブラリ(主に DLL )で呼び出す 関数アドレスのテーブル 当然、一定値ではない Windows loader が DLL のアドレスを テーブルに書き込む 1つのバイナリに必ず1つある もちろんエントリ数が0もあり(例 ntdll.dll) 逆の機能は Export Address Table

Updating IAT DLL EXE : : : IAT 関数名 アドレス CreateFile OpenFile CreateFile

Using IAT for Hooking DLL EXE 自分の コード : : : IAT 関数名 アドレス CreateFile OpenFile : CreateFile OpenFile : : IAT 自分の コード

IAT Patching 回避策がある 実際、ウィルスとかはそうしている Getprocaddress で動的にライブラリの 関数アドレスを引ける 実際、ウィルスとかはそうしている OS のバージョンによって、関数アドレスが 異なるため

IAT Patching の回避策 プログラム プログラムの任意の場所で読み込める IAT は関係ない Kernel32.dll 関数名 Getprocaddr(LoadLibrary(“kernel32.dll”), “CreateFileA”) Kernel32.dll 関数名 アドレス CreateFileA OpenFile プログラム プログラムの任意の場所で読み込める IAT は関係ない

Kernel-mode Hooking Windows NT の System service を hooking Kernel-mode で動作する device driver を 利用 過去に例あり [6] 手法としてはそれほど新しくない セキュリティへの応用の論文は少ない (と思われる) Rootkit への応用あり……

API & System Call Windows API Unix系 System Call 今までの System call での テクニックが利用可能

今後の予定 Kernel-mode hooking の実装 さらに別の手法をプラスα VMWare 上でテスト予定 (バグのたびに再起動が面倒) さらに別の手法をプラスα システムコールを利用した研究の応用 Hooking を組み合わせる、など

参考文献(1) An In-Depth Look into the Win32 Portable Executable File Format (Part 1 & 2) http://www.msdn.microsoft.com/msdnmag/issues/02/02/PE/default.aspx http://www.msdn.microsoft.com/msdnmag/issues/02/03/PE2/default.aspx Process-wide API spying http://www.codeproject.com/system/api_spying_hack.asp API Spying Techniques http://www.internals.com/articles/apispy/apispy.htm

参考文献(2) Detours Hooking Windows NT System Services http://research.microsoft.com/sn/detours/ Hooking Windows NT System Services http://www.windowsitlibrary.com/Content/356/06/1.html A Host Intrusion Prevention System for Windows Operating Systems Roberto Battistoni, Emanuele Gabrielli, Luigi V. Mancini ESORICS 2004