SUID,SGIDの付いたファイルの調査方法について。
システム内に侵入した攻撃者が、root権限を得る方法として、
SUID,SGID ビットの付けられているプログラムの脆弱性をつく方法がある。
それならSUIDとか付けなければいいかと思うのだが、
そうも行かないものなのだ。
確かに、不必要なSUIDはただ危険なだけなのだが、必要なSUIDもある。
1つ例を挙げると、「passwd」。
「passwd」にはSUIDが付けられている。
なぜかというと、一般ユーザがパスワードを変更するには、
ownerがrootのパスワードファイルを変更する必要がある。
そのため「passwd」をroot権限で実行しなければならないのだ。
SUIDの付いたプログラムに脆弱性が無ければ問題は無いのだが、
残念ながら、完全なプログラムを作成するというのは無理なものだ。
それに、すでにroot権限を奪取した攻撃者がSUIDの付いたプログラムを
紛れ込ませている可能性もある。そう、backdoor。
この扉になりうるファイルを調査して、把握しておく必要がある。
■調査スクリプト
#!/bin/sh
find / \( -perm -4000 -o -perm -2000 \) -type f > /var/log/sidlog.new
diff /var/log/sidlog.new /var/log/sidlog.old >> /var/log/sidlog
mv /var/log/sidlog.new /var/log/sidlog.old
find / \( -perm -4000 -o -perm -2000 \) -type f > /var/log/sidlog.new
diff /var/log/sidlog.new /var/log/sidlog.old >> /var/log/sidlog
mv /var/log/sidlog.new /var/log/sidlog.old
上記スクリプトを1日1回くらいcronで転がしてやるといいだろう。
ちなみにこういうことをする場合はちゃんとログローテーションしないと
ログで溢れてgame over!
以上
0 件のコメント:
コメントを投稿