1 / 9

バッファオーバーフローアタックの実際と対策 ~ Firewall を通り越える攻撃ツール実演デモ~

バッファオーバーフローアタックの実際と対策 ~ Firewall を通り越える攻撃ツール実演デモ~. Nissho Techno System Corporation 徳植 寛 toku@nissho-ele.co.jp. コンピュータウィルス. マクロウィルス ワーム トロイの木馬. 実行しなければただのデータ! 悪さをするプログラムをどうやってターゲットの コンピュータに実行させるかが肝. プログラムのメモリ配置. 0 x00000000. char gbuf1[] = {0x0, 0x1}; char gbuf2[2];

Download Presentation

バッファオーバーフローアタックの実際と対策 ~ Firewall を通り越える攻撃ツール実演デモ~

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. バッファオーバーフローアタックの実際と対策~Firewallを通り越える攻撃ツール実演デモ~バッファオーバーフローアタックの実際と対策~Firewallを通り越える攻撃ツール実演デモ~ Nissho Techno System Corporation 徳植 寛 toku@nissho-ele.co.jp

  2. コンピュータウィルス • マクロウィルス • ワーム • トロイの木馬 実行しなければただのデータ! 悪さをするプログラムをどうやってターゲットのコンピュータに実行させるかが肝

  3. プログラムのメモリ配置 0x00000000 char gbuf1[] = {0x0, 0x1}; char gbuf2[2]; void func(int a, int b, int c) { char lbuf1[] = {0x2, 0x3}; char lbuf2[10]; lbuf1[0] = 'a'; lbuf2[0] = 'b'; } void main() { func(1, 2, 3); } テキスト領域 マシンコード、読取専用 データ領域 初期化済みデータ領域 BSS領域 未初期化のデータ領域 heap領域 malloc等で確保する領域 スタック領域 auto変数、関数の引数、retアドレス等 0xffffffff

  4. スタックの中身 ←esp func(1, 2, 3); ↓ main: push $0x3 push $0x2 push $0x1 call 0x8048398 <func> func: push %ebp mov %esp,%ebp subl $0x18,%esp ~~~ leave ret 0xbffffd04 lbuf2 0xbffffd10 lbuf1 ←ebp 0xbffffd14 sfp (0xbffffd28) 0xbffffd18 ret (0x080483c6) 0xbffffd1c 1 0xbffffd20 2 0xbffffd24 3 0xbffffd28 main()のStack Frame

  5. スタック破壊サンプル • リターンアドレスをauto変数の所に書き換えられたら? • auto変数に/bin/shを実行するマシンコードがコピーされてたら? • super user権限で実行するプログラムだったら? • でも、telnet出来ないマシンにそんな事出来るの!?

  6. クラッキング実演 • クラックするにはアセンブラの知識も必要だけど • ウィルスといっしょで誰でもクラック出来るツールが出回るし • FireWallが有っても防げないなんてどうすれば良いの?

  7. バッファオーバーフロー対策 • パッチの適用当てたら当てたで色々有るけど • 不要なサービスの禁止メモリの節約にもなるし • Firewallの設置入ってくるのだけじゃなく出るのもね • IDSの導入取り敢えずsnortとか

  8. 参考 • クラシック: 趣味と実益のスタック破壊http://linux.ascii24.com/linux/linuxcom/2000/06/13/465216-000.html • アセンブラ入門講座http://paran0ia.virtualave.net/documents/asm.html • gdb-4.18日本語texinfo from gnujdochttp://www.swlab.csce.kyushu-u.ac.jp/man/gdb-4.18/gdb-ja_toc.html • Snortの導入http://jem.serveftp.com/

  9. 最後に クラッキングはいけないと思います!By まほろ

More Related