最近碰到一個案例,他的網站已運行好年之久但一直都沒有進行安全更新,導致上頭經年累月的被植入不少木馬程式,例如超級PHP木馬帶批量掛馬,及WEBSHELL, 真是有夠給他慘的啦,搞的整個網站像駭客練功的活靶,雖然砍掉重練好,但還是有些因素要救活他,所以首先要先除掉這些東東~可藉由一些工具例如PHPCMS木馬掃瞄器或是php 木馬, 惡意程式查殺工具,然後再將他的apache及php升級並加上mod_limitipconn及mod_bandwidth然後進行PHP的設定,防止php木馬執行webshell,打開safe_mode,並在php.ini中中disable_functions設定
safe_mod=On
disable_functions= passthru,exec,shell_exec,system
也可再增加防止php木馬讀寫文件目錄
在php.ini中disable_functions後面加上php處理文件的函數,如包含剛剛設定的就要變成以下設定
disable_functions= passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir
,fopen,fread,fclose,fwrite,file_exists
,closedir,is_dir,readdir.opendir
,fileperms.copy,unlink,delfile
大功告成,php木馬就無法拿我們執行一些系統程序了
不過還有一點要設定的,網頁程式有時會寫一些上傳程式給會員及非會員使用,如果上傳上去程式碼能再被執行就糟糕了,所以除了上傳上去後更改檔名~如遇到副檔名是PHP就更名外,以下這招也是不錯的選擇
我們可以設定不讓上傳的目錄執行PHP,可在Apache的httpd.conf設定以下參數值:
<Directory “/home/a/upload”>
AllowOverride None
php_flag engine off
Allow from all
</Directory>
如果你只允許你的php在web目錄裡操作,也可以在httpd.conf中加上
php_admin_value open_basedir /home/a
這樣如果有要使用這個之外的檔案時就會有錯誤訊息 Warning: open_basedir restriction in effect. File is in wrong directory in xxxxxxx
這樣基本木馬及WEBSHELL就防止了,但在測試發現,或許已經中太久了,可能已經成為駭客界的教學教材,三不五十的就是有人會丟一些怪網址TRY漏洞,多半都是對岸來的,真是煩呀~!!
發現這種怪連結一多,還蠻佔資源的,所以做了一個小小的rewrite設定,來防止這種怪連結,因為這個網站本身沒有用rewrite,所以在.php後有加上斜線的怪連結就轉到國家資通安全會報技術服務中心,呵~直接轉過去通報
<IfModule mod_rewrite.c>
RewriteEngine On
RedirectMatch /(.*)\.php/(.*) http://www.icst.org.tw/
</IfModule>
OK~經過這樣的設定後,觀察幾天後看來有用~~希望各位駭先生能就此放過它吧!!
參考資料:
近期留言