はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2017/02/18
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> セキュリティ強化 >> バッファオーバーフロー攻撃防御機構(Exec-Shield)
動作確認 [ FC1 / FC2 / FC3 / FC4 / FC5 / FC6 / Fedora7 / Fedora8 / Fedora9 / Fedora10 / CentOS4 / CentOS5 ] 当該ページは凍結しました
  1. Exec-Shieldとは・・・
  2. Exec-Shieldの設定
  3. Exec-Shieldの動作確認

■ Exec-Shieldとは・・・

FedoraCore・CentOSでは、スタックオーバーフロー/バッファオーバーフロー/関数ポインタオーバーフロー攻撃からの保護や、メモリ内のデータ構造を上書きする別種のセキュリティ攻撃からの保護を実現するため、Exec-Shield機能が追加され、セキュリティが強化されています。

■ Exec-Shieldの設定

インストール直後は「1:無効」になっているので、「2:有効」にします。(FedoraCore5を除く)
設定ファイルの確認
# cat /proc/sys/kernel/exec-shield
1
設定ファイルの変更
# echo 2 > /proc/sys/kernel/exec-shield
設定ファイルの確認
# cat /proc/sys/kernel/exec-shield
2

上記数値の意味
0:常に無効
1:マークされたバイナリを有効にし、以外は無効
2:マークされたバイナリを無効にし、以外は有効
3:常に有効

■ Exec-Shieldの動作確認

libsafeのダウンロード
# wget http://pubs.research.avayalabs.com/src/libsafe-2.0-16.i386.rpm
--14:35:42--  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      208.65K/s

14:35:44 (208.23 KB/s) - `libsafe-2.0-16.i386.rpm' を保存しました [374371/374371]


libsafeのインストール
# rpm -ivh libsafe-2.0-16.i386.rpm
Preparing...                ########################################### [100%]
   1:libsafe                ########################################### [100%]
Adding libsafe to ld.so.preload for system wide protection

試験用のバッファオーバーフロー攻撃ツールをコピー
# cp -p /usr/doc/libsafe-2.0/exploits/t1 ./

libsafeのアンインストール
# rpm -e libsafe
Removing libsafe from /etc/ld.so.preload (if exists)

以下のメッセージが出力される場合があるが無視(「libsafe」をアンインストールすれば消える)
ERROR: ld.so: object '/lib/libsafe.so.2' from /etc/ld.so.preload cannot be preloaded: ignored.


試験用のバッファオーバーフロー攻撃ツールを実行
# ./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...
セグメンテーション違反です

セグメンテーション違反となり、バッファオーバーフローが抑止された

備考:バッファオーバーフローのサンプル
   このままシステムを使用すると動作不安定の為、停止する可能性があります。
# ./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...
Libsafe version 2.0.16
Detected an attempt to write across stack boundary.
Terminating /root/t1.
    uid=0  euid=0  pid=2590
Call stack:
    0xbbb871    /lib/libsafe.so.2.0.16
    0xbbb97a    /lib/libsafe.so.2.0.16
    0x80485bc   /root/t1
    0x80485d3   /root/t1
    0x8abe1e    /lib/tls/libc-2.3.4.so
Overflow caused by strcpy()
強制終了

■ コンテンツ関連

■ その他

ページ先頭へ

Copyright(©)2004-2017 First home server construction. All Right Reserved.