■ FC6 / Fedora7 / Fedora8 / Fedora9
Exec-Shieldを有効にして、バッファ・オーパーフロー攻撃をブロックする。
■ Exec-Shieldの設定
現状確認 [root@server ~]# cat /proc/sys/kernel/exec-shield 1 Exec-Shieldを有効にする。 [root@server ~]# echo 2 > /proc/sys/kernel/exec-shield 再確認 [root@server ~]# cat /proc/sys/kernel/exec-shield 2 起動時に、有効にする。 [root@server ~]# vi /etc/rc.d/rc.local echo 2 > /proc/sys/kernel/exec-shield ← 追加
■ Exec-Shieldの動作確認
[root@server ~]# wget http://pubs.research.avayalabs.com/src/libsafe-2.0-16.i386.rpm --20:09:05-- http://pubs.research.avayalabs.com/src/libsafe-2.0-16.i386.rpm => `libsafe-2.0-16.i386.rpm' pubs.research.avayalabs.com をDNSに問いあわせています... 198.152.240.29 pubs.research.avayalabs.com|198.152.240.29|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 374,371 (366K) [text/plain] 100%[====================================>] 374,371 120.19K/s ETA 00:00 20:09:09 (119.99 KB/s) - `libsafe-2.0-16.i386.rpm' を保存しました [374371/374371] [root@server ~]# rpm -ivh libsafe-2.0-16.i386.rpm ← libsafeのインストール 準備中... ########################################### [100%] 1:libsafe ########################################### [100%] Adding libsafe to ld.so.preload for system wide protection [root@server ~]# cp /usr/doc/libsafe-2.0/exploits/t1 ./ ← 攻撃ツールをコピー [root@server ~]# rpm -e libsafe ← libsafeのアンインストール Removing libsafe from /etc/ld.so.preload (if exists) [root@server ~]# ./t1 ← 攻撃ツールの実行 This program tries to use strcpy() to overflow the buffer. If you get a /bin/sh prompt, then the exploit has worked. Press any key to continue...abc; ← 適当に入力 セグメンテーション違反です ← バッファオーバーフローがブロックされた [root@server ~]# rm ./t1 ← 攻撃ツールを削除 rm: remove 通常ファイル `./t1'? y