バッファ・オーパーフロー対策(Exec-Shield
2009, 02, 16
Exec-Shieldを有効にして、バッファ・オーパーフロー攻撃をブロックする。
■ Exec-Shieldの設定
■ 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 ← yと入力して攻撃ツールを削除