Exec-Shieldを有効にして、バッファ・オーパーフロー攻撃をブロックする。
■ Exec-Shieldの設定
現状確認 [root@server1 ~]# cat /proc/sys/kernel/exec-shield 1 Exec-Shieldを有効にする。 [root@server1 ~]# echo 2 > /proc/sys/kernel/exec-shield 再確認 [root@server1 ~]# cat /proc/sys/kernel/exec-shield 2 起動時に、有効にする。 [root@server1 ~]# vi /etc/rc.d/rc.local echo 2 > /proc/sys/kernel/exec-shield ← 追加
■ Exec-Shieldの動作確認
[root@server1 ~]# wget http://pubs.research.avayalabs.com/src/libsafe-2.0-16.i386.rpm --2011-09-19 19:34:28-- http://pubs.research.avayalabs.com/src/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 長さ: 374371 (366K) [text/plain] `libsafe-2.0-16.i386.rpm' に保存中 100%[=========================================================================>] 374,371 81.8K/s 時間 4.8s 2011-09-19 19:34:33 (76.5 KB/s) - `libsafe-2.0-16.i386.rpm' へ保存完了 [374371/374371] [root@server1 ~]# rpm -ivh libsafe-2.0-16.i386.rpm ← libsafeのインストール 準備中... ########################################### [100%] 1:libsafe ########################################### [100%] Adding libsafe to ld.so.preload for system wide protection [root@server1 ~]# cp /usr/doc/libsafe-2.0/exploits/t1 ./ ← 攻撃ツールをコピー [root@server1 ~]# rpm -e libsafe ← libsafeのアンインストール Removing libsafe from /etc/ld.so.preload (if exists) [root@server1 ~]# ./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@server1 ~]# rm ./t1 ← 攻撃ツールを削除 rm: remove 通常ファイル `./t1'? y ← yと入力して攻撃ツールを削除