9
バババババババババババババババババババババ バババババババババババババババババババババ Firewall Firewall ババババババババババババババババババババババババババババババNissho Techno System Corporation ババ バ [email protected]

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

バッファオーバーフローアバッファオーバーフローアタックの実際と対策タックの実際と対策

~~ FirewallFirewall を通り越える攻撃ツール実演デモ~を通り越える攻撃ツール実演デモ~

Nissho Techno System Corporation

徳植 寛[email protected]

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

コンピュータウィルスコンピュータウィルス

マクロウィルス ワーム トロイの木馬

実行しなければただのデータ!悪さをするプログラムをどうやってターゲットのコンピュータに実行させるかが肝

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

プログラムのメモリ配置プログラムのメモリ配置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 アドレス等

0x00000000

0xffffffff

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

スタックの中身スタックの中身func(1, 2, 3);

↓main:push $0x3push $0x2push $0x1call 0x8048398 <func>

func:push %ebpmov %esp,%ebpsubl $0x18,%esp~~~leaveret

lbuf2

lbuf1

sfp (0xbffffd28)

ret (0x080483c6)

1

2

3

main() の Stack Frame

0xbffffd04

0xbffffd10

0xbffffd14

0xbffffd18

0xbffffd1c

0xbffffd20

0xbffffd24

0xbffffd28

←esp

←ebp

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

スタック破壊サンプルスタック破壊サンプル

リターンアドレスを auto 変数の所に書き換えられたら ?

auto 変数に /bin/sh を実行するマシンコードがコピーされてたら ?

super user 権限で実行するプログラムだったら ?

でも、 telnet 出来ないマシンにそんな事出来るの !?

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

クラッキング実演クラッキング実演

クラックするにはアセンブラの知識も必要だけど

ウィルスといっしょで誰でもクラック出来るツールが出回るし

FireWall が有っても防げないなんてどうすれば良いの ?

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

バッファオーバーフロー対策バッファオーバーフロー対策

パッチの適用当てたら当てたで色々有るけど

不要なサービスの禁止メモリの節約にもなるし

Firewall の設置入ってくるのだけじゃなく出るのもね

IDS の導入取り敢えず snort とか

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

参考参考 クラシック : 趣味と実益のスタック破壊

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/

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

最後に最後に

クラッキングはいけないと思います !By まほろ