Archive for the ‘Exec-Shield’ Category

2月
14

今回はクラッカー対策第三弾としてバッファオーバーフロー攻撃対策をします。

バッファオーバーフロー攻撃と言うのは、脆弱性をもつプログラムに対して許容量以上のデータを送り込み、そのプログラムが使用するメモリ領域を意図的にオーバーフローさせ、システムを機能停止にしたり、悪意のあるプログラムを実行する攻撃のことです。
バッファオーバーフロー攻撃を防ぐために「Exec-Shield」で対策したいと思います。
「Exec-Shield」はCentOS導入時にインストール済みですので、設定を変更して反映していきます。

現在の設定を確認します
[root@centos ~]# cat /proc/sys/kernel/exec-shield
1

現在の設定は1でした。なお設定値の意味ですが
0 : 無効
1 : 無効(実行ファイルごとに有効にする)
2 : 有効(実行ファイルごとに無効にする)
3 : 常に有効
です。

ここでは2の「有効(実行ファイルごとに無効にする)」に変更します
[root@CentOS ~]# echo 2 > /proc/sys/kernel/exec-shield

これで設定が変更されましたが、OSの再起動をすると値が元に戻ってしまうので設定ファイルから変更します。

[root@CentOS ~]# vi /etc/sysctl.conf
viエディタが起動するので設定ファイルを変更します
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536

# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 4294967295

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 268435456

# exec-shield
kernel.exec-shield = 2
  追加します

内容を保存しviエディタを終了します

設定が終わったのでバッファオーバーフロー攻撃をしてExec-Shieldの動作確認をします。
Exec-Shieldの動作確認を行うためにlibsafeというツールを使用します。
libsafeとはLinux用に開発されているバッファオーバーフローによる攻撃を防止するためのライブラリなのですがこの中に、テスト用のバッファオーバーフロー攻撃ツールがありますのでそれを使います。

libsafeをダウンロードします
[root@CentOS ~]# wget http://pubs.research.avayalabs.com/src/libsafe-2.0-16.i386.rpm
–23:01:01– 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]
Saving to: `libsafe-2.0-16.i386.rpm’

100%[=======================================>] 374,371 39.2K/s in 9.6s

23:01:32 (37.9 KB/s) – `libsafe-2.0-16.i386.rpm’ を保存しました [374371/374371]

libsafeのインストールします
[root@centos ~]# rpm -ivh libsafe-2.0-16.i386.rpm
準備中… ########################################### [100%]
1:libsafe ########################################### [100%]
Adding libsafe to ld.so.preload for system wide protection

テスト用のバッファオーバーフロー攻撃ツールをホームディレクトリにコピーします
[root@centos ~]# cp -p /usr/doc/libsafe-2.0/exploits/t1 ./

テスト用のバッファオーバーフロー攻撃ツールを実行します
[root@centos ~]# ./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…a 何か文字を入力して[Enter]キーを押下します。ここでは a と入力します。
セグメンテーション違反です

「Exec-Shield」が有効になっている為、「セグメンテーション違反です」のメッセージとともにテスト用バッファオーバーフロー攻撃ツールが停止されます。

テスト用バッファオーバーフロー攻撃ツールを削除します
[root@centos ~]# rm -f ./t1

libsafeをアンインストールします
[root@centos ~]# rpm -e libsafe
Removing libsafe from /etc/ld.so.preload (if exists)

これでバッファオーバーフローを利用して悪意のあるプログラムを実行される危険はなくなりました。

————————————————————————————————–
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その8 CentOS 5.2 にrootkit検知ツールを導入する
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その7 CentOS 5.2 にファイル改竄検知システムを導入する
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その6 CentOS 5.2 にアンチウィルスソフトを導入する
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その5 CentOS 5.2 ファイル転送準備
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その4 CentOS 5.2 インストール後の初期設定
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その3 インストールしたCentOS 5.2 にリモート接続準備
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その2 CentOS 5.2 をインストールする
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その1 導入を検討する

  • Search:
  • flashcastとは?

    東京を中心に、現在フリーランスとして活動しているITエンジニア、および、かつてフリーランスとして活動していた起業家達が立ち上げたコミュニティーです。

    みんなで集まって面白いことをやろう!形に残そう!ということで、ブログをはじめました。

    技術情報や、フリーエンジニアに役立つ情報などを、ご紹介できたらと思っています。

    お問い合わせ:
    info@flashcast.jp
  • カレンダー

    2010年7月
    日曜日 月曜日 火曜日 水曜日 木曜日 金曜日 土曜日
    « 6月    
     123
    45678910
    11121314151617
    18192021222324
    25262728293031
  • メンバー紹介

    もじゃもじゃ
    flashcastのリーダー

    3年ほどフリーのITエンジニアとして活動。現在は、社員2名の株式会社を経営しています。

    一攫千金を夢見る野心家です。

    ライブキャスト

    yasu
    ダイバー

    自宅サーバーでホームページを作り始めました。

    少しずつ記事を増やしていきますので足を運んでください。

    よろしくお願いします。

    sa-sa-ki.jp

    のら
    たびびと

    ねこ好きに悪人はいなーいっ!!

    バイクや車も好きです。

    めぐ
    デザイナーのたまご

    音楽とデザインとお酒をこよなく愛する永遠のダイエッター。

    現在ペンタブレットでイラストを勉強中。

    Hiro
    コンサル

    PMやSEの案件を業務委託で請けることが多いですが、小規模案件も受託でやっています。

    得意な分野はマイクロソフト製品や関連技術によるシステム構築です。

    KEI
    取締役の風格

    最年少なのに、メンバーで1番の貫禄の持ち主!?

    C#や.netなどサーバ側の開発が得意。

    ろっきー
    美食家★パパ

    自分にとっての息抜きは、ドライブして温泉に入って、美味しいご飯を食べる事。

    ココロとカラダのリフレッシュを大切にし、日々の仕事に励む一児の父親です。

    郵便番号検索

    my-hobby

    とのさま
    げーむのおうさま

    大人なのに好きなことしかやらない駄目人間。

    Web系が得意、アクセスは苦手><

    tonosamart.com

    セクレタリアト
    ギャンブラー

    フリーランス時代は仲間の現場を探すことが多く、それをきっかけに会社を設立。

    現在はSI業に特化せず、他の業種にも興味を持ち始めています。

    メドレー株式会社

  • 広告