Linux 入侵類問題排查思路

Linux 入侵類問題排查思路

筱筱整理(2880600363)

深入分析,查找入侵原因

一、檢查隱藏帳戶及弱口令

檢查服務(wù)器系統(tǒng)及應(yīng)用帳戶是否存在 弱口令:

? ? ? ? 檢查說明:檢查管理員帳戶、數(shù)據(jù)庫帳戶、MySQL 帳戶、tomcat 帳戶、網(wǎng)站后臺(tái)管理員帳戶等密碼設(shè)置是否較為簡(jiǎn)單,簡(jiǎn)單的密碼很容易被黑客破解。

? ? ? ? 解決方法:以管理員權(quán)限登錄系統(tǒng)或應(yīng)用程序后臺(tái),修改為復(fù)雜的密碼。

? ? ? ? 風(fēng)險(xiǎn)性:高。

? ? 使用last命令查看下服務(wù)器近期登錄的帳戶記錄,確認(rèn)是否有可疑 IP 登錄過機(jī)器:

? ? ? ? 檢查說明:攻擊者或者惡意軟件往往會(huì)往系統(tǒng)中注入隱藏的系統(tǒng)帳戶實(shí)施提權(quán)或其他破壞性的攻擊。

? ? ? ? 解決方法:檢查發(fā)現(xiàn)有可疑用戶時(shí),可使用命令usermod -L 用戶名禁用用戶或者使用命令userdel -r 用戶名刪除用戶。

? ? ? ? 風(fēng)險(xiǎn)性:高。

? ? 通過less /var/log/secure|grep 'Accepted'命令,查看是否有可疑 IP 成功登錄機(jī)器:

? ? ? ? 檢查說明:攻擊者或者惡意軟件往往會(huì)往系統(tǒng)中注入隱藏的系統(tǒng)帳戶實(shí)施提權(quán)或其他破壞性的攻擊。

? ? ? ? 解決方法: 使用命令usermod -L 用戶名禁用用戶或者使用命令userdel -r 用戶名刪除用戶。

? ? ? ? 風(fēng)險(xiǎn)性:高。

? ? 檢查系統(tǒng)是否采用 默認(rèn)管理端口:

? ? ? ? 檢查系統(tǒng)所用的管理端口(SSH、FTP、MySQL、Redis 等)是否為默認(rèn)端口,這些默認(rèn)端口往往被容易自動(dòng)化的工具進(jìn)行爆破成功。

? ? ? ? 解決方法:

? ? ? ? ? ? 在服務(wù)器內(nèi)編輯/etc/ssh/sshd_config文件中的 Port 22,將22修改為非默認(rèn)端口,修改之后需要重啟 ssh 服務(wù)。?

? ? ? ? ? ? 運(yùn)行/etc/init.d/sshd restart(CentOS)或 /etc/init.d/ssh restart(Debian / Ubuntu)命令重啟是配置生效。

? ? ? ? ? ? 修改 FTP、MySQL、Redis 等的程序配置文件的默認(rèn)監(jiān)聽端口21、3306、6379為其他端口。

? ? ? ? ? ? 限制遠(yuǎn)程登錄的 IP,編輯/etc/hosts.deny 、/etc/hosts.allow兩個(gè)文件來限制 IP。

? ? ? ? 風(fēng)險(xiǎn)性:高。

? ? 檢查/etc/passwd文件,看是否有非授權(quán)帳戶登錄:

? ? ? ? 檢查說明:攻擊者或者惡意軟件往往會(huì)往系統(tǒng)中注入隱藏的系統(tǒng)帳戶實(shí)施提權(quán)或其他破壞性的攻擊。

? ? ? ? 解決方法: 使用命令usermod -L 用戶名禁用用戶或者使用命令userdel -r 用戶名刪除用戶。

? ? ? ? 風(fēng)險(xiǎn)性:中。

二、檢查惡意進(jìn)程及非法端口

運(yùn)行netstat –antp查看下服務(wù)器是否有未被授權(quán)的端口被監(jiān)聽,查看下對(duì)應(yīng)的 pid。

? ? ? ? 檢查服務(wù)器是否存在惡意進(jìn)程,惡意進(jìn)程往往會(huì)開啟監(jiān)聽端口,與外部控制機(jī)器進(jìn)行連接。

? ? ? ? 解決方法:

? ? ? ? ? ? 若發(fā)現(xiàn)有非授權(quán)進(jìn)程,運(yùn)行l(wèi)s -l /proc/$PID/exe或file /proc/$PID/exe($PID 為對(duì)應(yīng)的 pid 號(hào)),查看下 pid 所對(duì)應(yīng)的進(jìn)程文件路徑。

? ? ? ? ? ? 如果為惡意進(jìn)程,刪除下對(duì)應(yīng)的文件即可。

? ? ? ? 風(fēng)險(xiǎn)性:高。

? ? 使用ps -ef和top命令查看是否有異常進(jìn)程

? ? ? ? 檢查說明:運(yùn)行以上命令,當(dāng)發(fā)現(xiàn)有名稱不斷變化的非授權(quán)進(jìn)程占用大量系統(tǒng) CPU 或內(nèi)存資源時(shí),則可能為惡意程序。

? ? ? ? 解決方法:確認(rèn)該進(jìn)程為惡意進(jìn)程后,可以使用kill -9 進(jìn)程名命令結(jié)束進(jìn)程,或使用防火墻限制進(jìn)程外聯(lián)。

? ? ? ? 風(fēng)險(xiǎn)性:高。

三、檢查惡意程序和可疑啟動(dòng)項(xiàng)

使用chkconfig --list和cat /etc/rc.local命令查看下開機(jī)啟動(dòng)項(xiàng)中是否有異常的啟動(dòng)服務(wù)。

? ? ? ? 檢查說明:惡意程序往往會(huì)添加在系統(tǒng)的啟動(dòng)項(xiàng),在用戶關(guān)機(jī)重啟后再次運(yùn)行。

? ? ? ? 解決方法:如發(fā)現(xiàn)有惡意進(jìn)程,可使用chkconfig 服務(wù)名 off命令關(guān)閉,同時(shí)檢查/etc/rc.local中是否有異常項(xiàng)目,如有請(qǐng)注釋掉。

? ? ? ? 風(fēng)險(xiǎn)性:高。

? ? 進(jìn)入 cron 文件目錄,查看是否存在非法定時(shí)任務(wù)腳本。

? ? ? ? 檢查說明:查看/etc/crontab,/etc/cron.d,/etc/cron.daily,cron.hourly/,cron.monthly,cron.weekly/是否存在可疑腳本或程序。

? ? ? ? 解決方法:如發(fā)現(xiàn)有不認(rèn)識(shí)的計(jì)劃任務(wù),可定位腳本確認(rèn)是否正常業(yè)務(wù)腳本,如果非正常業(yè)務(wù)腳本,可直接注釋掉任務(wù)內(nèi)容或刪除腳本。

? ? ? ? 風(fēng)險(xiǎn)性:高。

四、檢查第三方軟件漏洞

如果您服務(wù)器內(nèi)有運(yùn)行 Web、數(shù)據(jù)庫等應(yīng)用服務(wù),請(qǐng)您限制應(yīng)用程序帳戶對(duì)文件系統(tǒng)的寫權(quán)限,同時(shí)盡量使用非 root 帳戶運(yùn)行。

? ? ? ? 檢查說明:使用非 root 帳戶運(yùn)行可以保障在應(yīng)用程序被攻陷后攻擊者無法立即遠(yuǎn)程控制服務(wù)器,減少攻擊損失

? ? ? ? 解決方法:

? ? ? ? ? ? 進(jìn)入 web 服務(wù)根目錄或數(shù)據(jù)庫配置目錄;

? ? ? ? ? ? 運(yùn)行chown -R apache:apache /var/www/xxxx、chmod -R 750 file1.txt命令配置網(wǎng)站訪問權(quán)限。

? ? ? ? 風(fēng)險(xiǎn)性:中。

升級(jí)修復(fù)應(yīng)用程序漏洞

? ? ? ? 檢查說明:機(jī)器被入侵,部分原因是系統(tǒng)使用的應(yīng)用程序軟件版本較老,存在較多的漏洞而沒有修復(fù),導(dǎo)致可以被入侵利用。

? ? ? ? 解決方法:比較典型的漏洞例如 ImageMagick、openssl、glibc 等,用戶可以根據(jù)已發(fā)布安全通告通過 apt-get/yum 等方式進(jìn)行直接升級(jí)修復(fù)。

? ? ? ? 風(fēng)險(xiǎn)性:高。

網(wǎng)站目錄文件權(quán)限的參考示例如下:

場(chǎng)景:

我們假設(shè) HTTP 服務(wù)器運(yùn)行的用戶和用戶組是 www,網(wǎng)站用戶為 centos,網(wǎng)站根目錄是/home/centos/web。

方法/步驟:

? ? 我們首先設(shè)定網(wǎng)站目錄和文件的所有者和所有組為 centos,www,如下命令:

? ? chown -R centos:www /home/centos/web

? ? 設(shè)置網(wǎng)站目錄權(quán)限為750,750是 centos 用戶對(duì)目錄擁有讀寫執(zhí)行的權(quán)限,設(shè)置后,centos 用戶可以在任何目錄下創(chuàng)建文件,用戶組有有讀執(zhí)行權(quán)限,這樣才能進(jìn)入目錄,其它用戶沒有任何權(quán)限。

? ? find -type d -exec chmod 750 {} \;

? ? 設(shè)置網(wǎng)站文件權(quán)限為640,640指只有 centos 用戶對(duì)網(wǎng)站文件有更改的權(quán)限,HTTP 服務(wù)器只有讀取文件的權(quán)限,無法更改文件,其它用戶無任何權(quán)限。

? ? find -not -type d -exec chmod 640 {} \;

? ? 針對(duì)個(gè)別目錄設(shè)置可寫權(quán)限。例如,網(wǎng)站的一些緩存目錄就需要給 HTTP 服務(wù)有寫入權(quán)限、discuz x2 的/data/目錄就必須要寫入權(quán)限。

? ? find data -type d -exec chmod 770 {} \;

被入侵后的安全優(yōu)化建議

? ? 盡量使用 SSH 密鑰進(jìn)行登錄,減少暴力破解的風(fēng)險(xiǎn)。

? ? 在服務(wù)器內(nèi)編輯/etc/ssh/sshd_config文件中的 Port 22,將 22 修改為其他非默認(rèn)端口,修改之后重啟 SSH 服務(wù)。可使用命令重啟

? ? /etc/init.d/sshd restart(CentOS)或 /etc/init.d/ssh restart(Debian/Ubuntu)

如果必須使用 SSH 密碼進(jìn)行管理,選擇一個(gè)好密碼。

? ? 無論應(yīng)用程序管理后臺(tái)(網(wǎng)站、中間件、tomcat 等)、遠(yuǎn)程 SSH、遠(yuǎn)程桌面、數(shù)據(jù)庫,都建議設(shè)置復(fù)雜且不一樣的密碼。

? ? 下面是一些好密碼的實(shí)例(可以使用空格):

? ? 1qtwo-threeMiles3c45jia

? ? caser, lanqiu streets

? ? 下面是一些弱口令的示例,可能是您在公開的工作中常用的詞或者是您生活中常用的詞:

? ? 公司名+日期(coca-cola2016xxxx)

? ? 常用口語(Iamagoodboy)

使用以下命令檢查主機(jī)有哪些端口開放,關(guān)閉非業(yè)務(wù)端口。

netstat -antp

通過編輯/etc/hosts.deny、/etc/hosts.allow兩個(gè)文件來限制 IP。

應(yīng)用程序盡量不使用 root 權(quán)限。

例如 Apache、Redis、MySQL、Nginx 等程序,盡量不要以 root 權(quán)限的方式運(yùn)行。

修復(fù)系統(tǒng)提權(quán)漏洞與運(yùn)行在 root 權(quán)限下的程序漏洞,以免惡意軟件通過漏洞提權(quán)獲得 root 權(quán)限傳播后門。

? ? 及時(shí)更新系統(tǒng)或所用應(yīng)用程序的版本,如 Struts2、Nginx,ImageMagick、Java 等。

? ? 關(guān)閉應(yīng)用程序的遠(yuǎn)程管理功能,如 Redis、NTP 等,如果無遠(yuǎn)程管理需要,可關(guān)閉對(duì)外監(jiān)聽端口或配置。

定期備份服務(wù)器業(yè)務(wù)數(shù)據(jù)。

? ? 對(duì)重要的業(yè)務(wù)數(shù)據(jù)進(jìn)行異地備份或云備份,避免主機(jī)被入侵后無法恢復(fù)。

? ? 除了您的 home,root 目錄外,您還應(yīng)當(dāng)備份 /etc 和可用于取證的 /var/log 目錄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。