2014-11-02 93 views
2

爲了避免將所有共享庫和配置文件複製到chroot文件夾中,我計劃在加載所有共享庫和配置文件後立即調用chroot("path/to/folder");加載共享庫後使用chroot()?

在以前加載的庫中是否會發生緩衝區溢出攻擊提供了攻擊者在chroot之外的訪問? (因爲它們是在加入chroot之前加載的)。

與程序執行前的chroot相比,這種延遲的chroot方法有什麼缺點嗎?

回答

2

共享庫被加載到可執行文件的進程空間中,並且具有與可執行文件一樣多的特權。只要你的可執行文件被chrooted,他們也是。

延遲的chrooting對於運行setuid/setgid的可執行文件來說並不一定是個好主意,並且由於它們在chroot之前訪問的內容的種類(命令行參數,配置文件)正是那些可以被利用的東西。我想,這也適用於共享庫。但是,如果你減輕了網絡服務器進程的潛在漏洞,延遲的chroot爲你提供兩全其美的解決方案。

0

這是一個相對較遠的可能性,但加載庫後可能會打開文件/目錄,創建線程等(source)。這意味着可能會有一些處理方法可以在chroot以外的地方使用,在發生漏洞時可能會被濫用。