DigitalOcean Droplet 遭到入侵,正在進行 DDoS 攻擊,調查原因的正確流程是什麼?

DigitalOcean Droplet 遭到入侵,正在進行 DDoS 攻擊,調查原因的正確流程是什麼?

今天 DigitalOcean 通知我,我的 Droplet 已斷開連接,因為它正在進行 DDoS 攻擊。

他們要求我調查並找出造成這種情況的原因。

這是 Ubuntu 14,我在那裡有 6 個 Apache VirtualHost。全部都是直播。

我的網站之一是安裝了幾個外掛的 WordPress。

另一個網站中有一些 Google 地圖 API 程式碼。

其餘的只有我的原始程式碼。

我還沒進伺服器呢一旦我這樣做了,正確找到導致此問題的軟體的過程是什麼?

我懷疑發生這種情況是因為我沒有使用 SSH 金鑰和密碼。

答案1

首先,我對不得不處理這樣的事情表示哀悼。但你可以清理它。首先,我只需要解決這個問題:

我懷疑發生這種情況是因為我沒有使用 SSH 金鑰和密碼。

99% 確信事實並非如此。在我 20 多年的經驗中,我親自處理過並清理過的幾乎所有 Web 伺服器漏洞都來自應用程式層級的缺陷和不是連接到 SSH 或 SFTP 的任何內容。事實上,大多數 Web 開發人員/管理員永遠不會處理 SSH/SFTP 層級的妥協;前端程式碼中的缺陷是許多惡意軟體和對公共網路系統的無端入侵的主要入口點。

在您的情況下,您聲明以下內容:

這是 Ubuntu 14,我在那裡有 6 個 Apache VirtualHost。全部都是直播。

我的網站之一是安裝了幾個外掛的 WordPress。

另一個網站中有一些 Google 地圖 API 程式碼。

我的猜測是,除非您及時更新 WordPress 更新/補丁,否則您安裝的 WordPress 很容易受到攻擊。不僅是 WordPress 核心,還有外掛。

備份現有的程式碼庫、資料庫和配置。

我要做的第一件事就是透過index.php在這些網站的每個根索引中設定「停機維護」來中和 Apache 虛擬主機。我也會透過 TAR/Gzip 檔案製作每個虛擬主機安裝的副本,並下載該副本以進行潛在的取證。應該對所有 Apache 虛擬伺服器執行此操作,包括 MySQL 資料庫的轉儲以及相關設定檔。

檢查/tmp/目錄是否有任何感染跡象;如果需要的話,把它吹走。

我建議您做的下一件事是轉儲並/tmp/在伺服器上重新建立目錄。原因是 Linux Web 伺服器上的許多惡意軟體感染都會將其有效負載的很大一部分放置在/tmp/目錄中。我更深入地探討在這個答案中但歸根結底是執行以下操作。

首先,查看/tmp/目錄,看看是否有不應該存在的內容。 Linux 系統上十分之九的惡意軟體能夠自行安裝在/tmp/.

如果您不確定/tmp/其中應該/不應該包含什麼內容,您可以採取一種簡單但極端的方法來清除壞內容。只需在命令列中在線運行即可:

rm -rf /tmp && mkdir /tmp && chown root:root /tmp && chmod 1777 /tmp

或像這樣單獨運行每個命令:

sudo rm -rf /tmp 
sudo mkdir /tmp
sudo chown root:root /tmp
sudo chmod 1777 /tmp

然後重新啟動伺服器以查看是否可以解決問題。如果是的話,恭喜!但你還沒有脫離困境,因為無論什麼原因,原始系統仍然可以滲透你的系統,它們再次感染你只是時間問題。這意味著,這可以清理系統中的弱點造成的混亂,但您需要找出該弱點可能是什麼並對其進行強化。

Bash“shellshock”漏洞檢查。

在另一個答案中,我提供了有關如何檢查bash「shellshock」漏洞的提示。這個網站提供了很好的測試工具查看您的伺服器是否容易受到bash“shellshock”攻擊。老實說,這是自從發現以來我必須修補的最常見的安全漏洞之一。所以這很可能也是伺服器上的一個弱點。至於如何修復bash發現的漏洞,請參閱下面有關如何升級/修補所有作業系統等級元件的部分。這樣做並且bash也應該升級/修補。

升級/修補所有作業系統等級元件。

這聽起來可能令人畏懼,但現實是 Linux 系統的安全性修補程式一直在發布。如果您使用的是 Ubuntu 或 CentOS 等標準化 Linux 安裝,那麼您只需透過軟體包安裝程式執行更新/升級即可,如下所示。在 Ubuntu 上只需這樣做:

sudo apt-get update

sudo apt-get upgrade

現在,如果您有一段時間沒有更新系統,您可能會看到大量需要處理的修補程式和更新。請勿恐慌!這很正常。只需運行updateupgrade等待即可。之後可能需要重新啟動,但是完成後您的核心作業系統應該已完全修補並且是最新的。

評估 Apache 虛擬伺服器程式碼系統的程式碼庫; WordPress 和 Google API 的東西。

振作起來:這是更醜的部分。您應該下載並評估程式碼庫潛在地受感染.希望只有一兩個站點受到損害。如何進行此操作對於每個設定來說都是不同的,但通常您應該做的是將每個網站加載到開發環境中,升級 WordPress 核心,升級插件,檢查是否一切正常,然後考慮程式碼乾淨/穩定的。

現在我已經大大簡化這一步了。但現實是,即使在進行修補程式和升級之後,您的 WordPress 核心中仍然可能存在惡意軟體程式碼。因此,您可以做的另一件事是從頭開始重建每個 WordPress 網站。保留資料庫、模板,並從新的、乾淨的 WordPress 核心重建網站。

是的,這聽起來像是很多工作,但如果您有這麼多具有不同程式碼庫的虛擬伺服器,那就別無選擇。

事後建議。

這並不適用於所有人,但我會這樣說:備份,甚至可能是乾淨程式碼庫的 GitHub 儲存庫,是清理混亂的方法,而無需我上面提到的最後一個混亂的「評估」步驟。

我所做的就是在我工作的任何資料庫驅動站點上定期運行 MySQL 轉儲,並確保 GitHub 中有一個乾淨的核心程式碼庫。然後,如果發生惡意軟體感染,我可以挖掘 MySQL 備份,甚至從 GitHub 重新部署乾淨的程式碼,以確保程式碼庫是乾淨的。如果伺服器本身已經超出了我們的想像呢?好吧,只需轉儲受感染的系統,重建一個新的 Linux 系統,部署程式碼,導入資料庫,調整配置,然後就到此為止了。

請記住,99% 的網站只是一個資料庫、程式碼庫和一組配置。如果您有一些乾淨的方法來「凍結」或備份未受感染的程式碼以及 MySQL 資料庫的備份,那麼您所要做的就是處理配置內容。與從頭開始清理程式碼相比,這是一個小小的痛苦。

相關內容