Exec-Shield で不正侵入
Exec-Shieldとは
特定のメモリー領域から命令を実行できないようにするLinuxの機能。不正侵入を行う手段の1つである、バッファ・オーバーフロ-攻撃に対して有効な防御機能である。
バッファ・オーバーフロー攻撃では、ぜい弱性を持ったプログラムに対して、メモリー領域上のデータ領域に不正な命令コードを送り込み、それを実行することで侵入を試みる。Exec-Shieldは、Linuxカーネルがデータ領域を監視して、不正な命令コードが実行されようとすると、エラー・メッセージを画面に出力して、処理を止める。
詳細は IT Pro の Excec-Shieldとは を参照してください。
バッファオーバーフロー対策
exec-shield を有効化してバッファオーバーフロー対策する
cat /proc/sys/kernel/exec-shield <= 現在の設定を確認 1 <= 基本的に無効の設定 0 : 無効 1 : 基本的に無効(実行ファイルごとに有効にする) 2 : 基本的に有効(実行ファイルごとに無効にする) 3 : 常に有効 [root@Fedora ~]# echo 2 > /proc/sys/kernel/exec-shield <= 有効にする [root@Fedora ~]# vi /etc/rc.d/rc.local <= 設定ファイルの編集 /bin/echo 2 > /proc/sys/kernel/exec-shield <= 追加
exec-shieldが有効だと動作しないソフトが出てくる為、ソフトごとに無効にする
例) vsftpd
[root@Fedora ~]# execstack -s /usr/sbin/vsftpd <= 「vsftpd」に対して「Exec-Shield」を無効にする [root@Fedora ~]# execstack -q /usr/sbin/vsftpd <= 確認 X /usr/sbin/vsftpd <= 「Exec-Shield」は無効 ・再び有効にする場合 [root@Fedora ~]# execstack -c /usr/sbin/vsftpd <= 「vsftpd」に対して「Exec-Shield」を有効にする [root@Fedora ~]# execstack -q /usr/sbin/vsftpd <= 確認 - /usr/sbin/vsftpd <= 「Exec-Shield」は有効
参照URL
http://www.crimson-snow.net/hmsvr/fedora/memo/exec-shield.html
ありがとうございます。
Exec-Shieldとは
Exec Shield wikipedia
Exec-Shieldでバッファオーバーフローをブロックする!
Exec-Shieldとは・・・