題:
如何處理受到感染的服務器?
Lucas Kauffman
2013-07-19 22:40:02 UTC
view on stackexchange narkive permalink

我懷疑我的一個或多個服務器受到黑客,病毒或其他機制的破壞:

  • 我的第一步是什麼?當我到達現場時,應該斷開服務器的連接,保留“證據”,還有其他初始考慮嗎?
  • 如何使服務恢復在線狀態?
  • 如何防止再次發生同樣的事情嗎?
  • 是否有從該事件中學習的最佳實踐或方法?
  • 如果我想制定一個事件響應計劃,該從哪裡開始?這應該是我的災難恢復或業務連續性計劃的一部分嗎?

這是該主題的經典文章。 最初來自serverfault。 sub>

五 答案:
Lucas Kauffman
2013-07-19 22:40:02 UTC
view on stackexchange narkive permalink

最初是由於serverfault引起的。 感謝Robert Moir(RobM)

根據您在此處發布的內容很難給出具體建議,但我根據我很久以前寫的帖子仍然有一些通用建議。

不要驚慌

首先,除了從入侵之前進行的備份還原系統之外,沒有“快速修復”的方法,這至少有兩個問題。

  1. 這很困難查明入侵發生的時間。
  2. 這無助於您關閉上一次允許他們闖入的“漏洞”,也無助於解決可能也造成的任何“數據盜竊”後果
  3. ol>

    這個問題不斷遭到黑客入侵其Web服務器的受害者的反复詢問。答案很少改變,但是人們一直在問這個問題。我不知道為什麼。也許人們只是不喜歡他們在尋求幫助時所看到的答案,或者找不到他們信任的人來提供建議。或者,人們可能會閱讀該問題的答案,而過分地關注為什麼案例的特殊性和他們在網上找到的答案有5%的差異,而錯過了95%的問題,而他們的案例足夠接近相同的答案作為他們在網上閱讀的內容。

    這使我進入了第一個重要的信息領域。我真的很感謝您是一個特別的獨特雪花。我也很欣賞您的網站,因為它反映了您和您的業務,或者至少反映了您代表雇主的辛勤工作。但是對於外面的某個人來說,無論是計算機安全人員正在查看問題以嘗試幫助您,甚至是攻擊者本人,您的問題很可能與他們遇到的其他所有案例至少具有95%的相同性曾經看過。

    不要親自接受攻擊,也不要親自遵循此處或從他人那裡得到的建議。如果您只是在成為網站黑客的受害者後才讀這篇文章,那麼我真的很抱歉,我真的希望您能在這裡找到有用的東西,但這不是讓您的自我阻礙您所需要的方式的時候。

    。您剛剛發現您的服務器被黑了。現在呢?

    不要驚慌。絕對不要倉促行事,絕對不要試圖假裝從未發生過的事情,甚至根本沒有採取任何行動。

    首先:了解災難已經發生。現在不是拒絕的時候。現在該是時候接受發生的事情了,對之現實,並採取措施來管理影響的後果。

    其中一些步驟將會受到傷害,並且(除非您的網站持有我的詳細信息的副本),我真的不在乎您是否忽略所有或部分這些步驟,但這樣做最終會使情況變得更好。該藥可能聽起來很糟糕,但有時如果您真的想治愈該藥,就不得不忽略它。

    阻止問題變得比現在更嚴重的是:

    1. 您應該做的第一件事是將受影響的系統與Internet斷開連接。無論您有任何其他問題,使系統保持與網絡的連接都只會使攻擊繼續進行。我的意思是從字面上看。如果需要的話,讓某人親自訪問服務器並拔下網絡電纜,但是在嘗試執行其他操作之前,先將受害者從其搶劫犯中斷開。
    2. 更改所有計算機上所有帳戶的所有密碼與受感染的系統位於同一網絡上。不完全是。所有帳戶。所有計算機。是的,您是對的,這可能是過大了;另一方面,可能不會。你們都不知道,對嗎?
    3. 檢查其他系統。請特別注意其他面向Internet的服務以及擁有財務或其他商業敏感數據的服務。
    4. 如果系統擁有任何人的個人數據,請立即通知負責數據保護的人員(如果不是您)並敦促進行全面披露。我知道這很艱難。我知道這會很疼。我知道許多企業都希望在地毯下解決此類問題,但企業將不得不對其進行處理-並且需要著眼於所有相關的隱私法。
    5. ol >

      但是,讓您的客戶告訴您有關問題的信息可能使他們感到煩惱,如果您不告訴他們,他們將更加煩惱,並且只有在有人使用8000美元的商品收費後,他們才會自己發現他們從您的網站上竊取的信用卡詳細信息。

      還記得我之前說的話嗎?壞事已經發生了。現在唯一的問題是您如何處理它。

      充分理解問題所在:

      1. 在受影響的系統恢復聯機之前,這個階段已經完全完成,除非您想成為其職位實際上是決定撰寫這篇文章的引爆點的人。我不會鏈接到該帖子,這樣人們就可以大笑,但真正的悲劇是當人們無法從錯誤中學到東西時。
      2. 檢查“被攻擊”的系統以了解如何攻擊成功損害了您的安全性。竭盡全力找出攻擊的“發源地”,以便您了解要解決的問題,以確保將來系統安全。
      3. 再次檢查“受攻擊的”系統,這次了解攻擊發生的位置,以便您了解攻擊中哪些系統受到了威脅。確保您跟踪所有表明受感染系統可能成為進一步攻擊系統的跳板的指針。
      4. 確保完全理解任何攻擊中使用的“網關”,以便您可以開始正確關閉它們。 (例如,如果您的系統受到SQL注入攻擊的危害,那麼不僅需要關閉破解它們的特定缺陷代碼行,還需要審核所有代碼以查看是否存在相同類型的錯誤
      5. 理解由於多種缺陷,攻擊可能會成功。通常,攻擊不是通過發現系統中的一個主要錯誤,而是通過將幾個問題(有時是次要的和瑣碎的事情)組合在一起來破壞系統而成功的。例如,使用SQL注入攻擊將命令發送到數據庫服務器,發現要攻擊的網站/應用程序是在管理用戶的上下文中運行的,並使用該帳戶的權限作為踏腳石來破壞其他用戶的權限。一個系統。或像黑客那樣稱呼它:“在辦公室的另一天,利用人們常犯的錯誤”。
      6. ol>

        為什麼不僅僅“修復”您已經利用的漏洞利用程序或rootkit檢測到並將系統重新聯機?

        在這種情況下,問題是您不再擁有該系統的控制權。不再是您的計算機。

        要確定對系統有控制權的唯一方法是重建系統。儘管找到並修復用於入侵系統的漏洞有很多價值,但是一旦入侵者獲得控制權,您就無法確定對系統做了哪些其他事情(事實上,對於招募黑客來說這並非聞所未聞系統放入殭屍網絡以修補他們自己使用的漏洞,以保護其他黑客“購買”他們的新計算機,以及安裝rootkit。

        制定恢復計劃並為您帶來網站恢復在線並堅持下去:

        沒有人希望脫機的時間比必須的更長。那是給定的。如果該網站是一種創收機制,那麼將其迅速恢復在線的壓力將非常巨大。即使您/公司的聲譽受到威脅,這仍然會給您帶來很大的壓力,需要迅速恢復。

        但是,不要屈服於回頭路的誘惑。上網太快。相反,應盡可能快地行動,以了解造成問題的原因並在重新上網之前解決問題,否則您幾乎肯定會再次成為入侵的受害者,並記住,“一旦被黑客入侵,可被視為不幸;再次被黑,看起來像是粗心大意”(向Oscar Wilde道歉)。

        1. 我假設您已經了解了導致成功入侵的所有問題,然後才開始甚至開始本節。我不想高估這個案子,但是如果您還沒有這樣做,那麼您確實需要這樣做。抱歉。
        2. 請不要支付勒索/保護金。這是一個簡單標記的標誌,並且您不希望使用該短語來形容您。
        3. 不要試圖將同一台服務器重新聯機而無需完全重建。與在舊系統上審核每個系統的每個角落以確保它乾淨之前,在舊硬件上構建一個新盒子或“從軌道上將服務器核對並進行全新安裝”應該要快得多。再次在線。如果您不同意這一點,那麼您可能不知道確保完全清潔系統的真正含義是什麼,否則您的網站部署過程將是一團糟。大概您可以將站點的備份和測試部署用於構建實時站點,如果不這樣做,那麼被黑客入侵並不是您的最大問題。
        4. 對於重用被黑客入侵時系統上“實時”的數據要非常小心。我不會說“從不做”,因為您只會忽略我,但是坦率地說,當您知道無法保證數據的完整性時,您確實需要考慮保留數據的後果。理想情況下,您應該從入侵之前進行的備份中還原它。如果您不能或不會這樣做,則應格外小心,因為它已污染。如果此數據屬於客戶或站點訪問者而不是直接屬於您,則您應該特別注意對他人的後果。
        5. 仔細監控系統。您應該決心在將來將其作為一個持續的過程來進行(更多內容請參見下文),但是在您的網站重新上線之後的這段時間內,您會付出更多的努力來保持警惕。入侵者幾乎肯定會回來,而且如果您能發現他們試圖再次闖入,您肯定可以很快看到您是否真的已經關閉了他們以前使用過的所有漏洞以及他們自己製造的任何漏洞,並且您可能會收集到有用的信息。您可以傳遞給當地執法部門的信息。
        6. ol>

          降低以後的風險。

          第一件事需要了解的是,安全性是您必須在設計,部署和維護面向Internet的系統的整個生命週期中應用的一個過程,而不是像廉價的油漆那樣以後可以在代碼上打幾層的東西。為了獲得適當的安全,需要從一開始就設計服務和應用程序,並將其作為項目的主要目標之一。我意識到這很無聊,並且您之前已經聽說過所有消息,並且我“只是沒有意識到讓您的Beta Web2.0(beta)服務成為Web上Beta狀態的壓力人”,但是事實是,這種情況一直持續被重複,因為它是第一次被說成是真的,並且還沒有成為謊言。

          您無法消除風險。您甚至都不應該嘗試這樣做。但是,您應該做的是了解哪些安全風險對您很重要,並了解如何管理和減少風險的影響以及風險發生的可能性。

          需要採取哪些步驟您可以採取降低攻擊成功的可能性的方法嗎?

          例如:

          1. 該漏洞使人們闖入您的網站的已知原因是否存在?供應商代碼中的錯誤,有哪些可用的補丁?如果是這樣,您是否需要重新考慮如何在面向Internet的服務器上修補應用程序的方法?
          2. 該漏洞是否使人們能夠侵入您的站點,從而導致供應商代碼中的未知錯誤,例如哪個補丁不可用?我絕對肯定不提倡每當這樣的事情困擾您時更換供應商,因為它們都會遇到問題,如果採用這種方法,您最多將在一年內用盡平台。但是,如果系統不斷讓您失望,則應該遷移到更可靠的產品,或者至少重新架構系統,以使易受攻擊的組件包裹在棉絨中,並儘可能遠離敵對的眼睛。
          3. 該缺陷是您(或為您工作的人)開發的代碼中的錯誤嗎?如果是這樣,您是否需要重新考慮如何批准將代碼部署到實時站點的方法?是否可以通過改進的測試系統或對代碼“標準”的更改來捕獲該錯誤(例如,雖然技術不是靈丹妙藥,但您可以通過使用有據可查的編碼技術來降低成功進行SQL注入攻擊的可能性) )。
          4. 該缺陷是否是由於服務器或應用程序軟件的部署方式所引起的?如果是這樣,您是否在可能的情況下使用自動化過程來構建和部署服務器?這些對於在所有服務器上保持一致的“基準”狀態,最大程度地減少必須在每台服務器上進行的自定義工作量以及因此希望最大程度地減少犯錯的機會很有幫助。代碼部署也是如此-如果您需要做一些“特殊的事情”來部署最新版本的Web應用程序,然後嘗試使其自動化並確保始終以一致的方式完成它。
          5. 可以通過更好地監視系統可以更早地發現入侵?當然,為您的員工提供24小時監視或“通話”系統可能並不划算,但是有些公司可以為您監視面向Web的服務並在出現問題時提醒您。您可能會決定自己負擔不起或不需要它,這很好...將其考慮在內。
          6. 在適當的地方使用tripwire和nessus之類的工具,但不僅僅是因為我這麼說,盲目的使用它們。花時間學習如何使用一些適合您的環境的良好安全工具,保持這些工具的更新並定期使用它們。
          7. 請考慮聘請安全專家來“審核”您的網站安全性定期地。再次,您可能會決定您負擔不起或不需要它,這很好...只考慮它。
          8. ol>

            您可以採取哪些步驟減少成功攻擊的後果?

            如果您認為家庭洪水較低樓層的“風險”很高,但又不足以保證移動,則至少應將無可替代的家庭傳家寶搬到樓上。對吧?

            1. 您可以減少直接暴露給Internet的服務量嗎?您能否在內部服務和麵向Internet的服務之間保持某種距離?這樣可以確保即使您的外部系統受到損害,使用它作為跳板攻擊內部系統的機會也會受到限制。
            2. 您是否存儲不需要存儲的信息?您是否在“在線”存儲此類信息,而該信息可能會在其他地方存檔。這部分有兩點:顯而易見的一個原因是人們無法從您那裡竊取您沒有的信息,第二點是您存儲的內容越少,維護和編寫代碼所需要的內容就越少,因此出現錯誤的機會就越少您的代碼或系統設計。
            3. 您是否在Web應用程序中使用“最少訪問”原則?如果用戶僅需要從數據庫中讀取,則請確保該Web應用程序用於為其提供服務的帳戶僅具有讀取訪問權限,不允許其具有寫訪問權限,當然也不允許其具有系統級訪問權限。
            4. 如果您在某些方面經驗不足,並且對您的業務也不是很重要,請考慮將其外包。換句話說,如果您經營一個討論編寫桌面應用程序代碼的小型網站,並決定開始從該站點銷售小型桌面應用程序,則可以考慮將您的信用卡訂購系統“外包”給Paypal這樣的人。
            5. 如果盡可能將災難恢復計劃中的從受感染的系統中進行恢復作為工作的一部分。可以說,這只是您可能會遇到的另一種“災難情況”,只是其自身存在的問題和問題與通常的“服務器機房著火” /“不同”,而大型服務器吞噬了憤怒的人的東西。
            6. ol>

              ...最後

              我可能沒有遺漏別人認為重要的東西,但是上述步驟應該至少可以幫助您在不幸的情況下開始整理東西,使其成為黑客的受害者。

              最重要的是:不要驚慌。三思而後行。做出決定後,請立即採取行動,如果有什麼要添加到我的步驟列表中,請在下面留下評論。

我希望這不會被錯誤的理解,但是Rob在這裡有一個帳戶,讓_him_在這裡發布他的答案會更有意義。您知道,這是我們未來所有“我的服務器已被毒死”問題的規範答案。
如果RobM希望他可以復制粘貼,那麼我將刪除我的:)
Tom Leek
2014-04-07 22:31:52 UTC
view on stackexchange narkive permalink

在Linux中使文件“不可刪除”是通過屬性完成的,特別是“ immutable”屬性。請參閱 lsattr查看屬性,請參見 chattr更改屬性。

但這僅能解決近端原因。 重要的事情是您的計算機受到敵對控制,劫機者為自己的things目標安裝了東西。特別是,他很可能安裝了 rootkit,以使條目保持打開狀態,而不管您是否嘗試進行清理操作。 Rootkit可能以從機器本身不可見的方式更改了內核和/或系統二進製文件,並阻止了它們的自行刪除。最重要的是,您的計算機無法保存;您無法可靠地再次使您的計算機乾淨,通過重新格式化磁盤並從頭開始安裝來保存。

免於以後的煩惱和麻煩。 從軌道上震撼系統

我在其中一台計算機上安裝了rkhunter,但在刪除操作之前或之後均未發出任何警報。也許它只是一個無用的工具。另外,重新啟動計算機並查看top和ps的輸出時,我看不到任何可疑的運行。我現在將研究屬性。
感謝Tom,* chattr *命令可以正常工作,我能夠刪除文件,然後將其刪除:)。無論如何都會遵循nuke的建議。謝謝。
M15K
2013-07-20 01:57:06 UTC
view on stackexchange narkive permalink

就像我在對ServerFault的交叉帖子的回復中所說的那樣。這是一個很好的解釋。同樣,這當然取決於攻擊的類型。希望或不幸的是,此攻擊噪聲很大,您已將其識別為正在進行的攻擊。或者,可以肯定地說,是攻擊的早期階段,我要說的是這種操作順序是遵循的良好藍圖。

但是,有一種可能性,就是您了解的危害指標可能無法完全反映出感染的情況,並且斷開PC可能不會符合您的最大利益,除非您了解程度,我認為最好在開始從網絡中刪除任何受影響的系統/設備之前找出切入點以及您可能無法控制的系統。

問題的真相可能是那些行為者在您的系統中停留的時間比您想像的要長,過早地出手(即我終於注意到您坐在我的系統中)可能會使根除變得更加困難。

沒有真正簡單的答案,但RobM提供的起點已足夠。在所有壓力下,有多個正確答案也可能是錯誤答案。幾乎像不確定性原理一樣,您不知道答案是否正確才嘗試。

還應該查看(PDF)NIST計算機安全事件處理指南

*除非您了解程度,否則斷開PC可能不會符合您的最大利益,*我實際上同意這一點,儘管我的答復是針對那些如果他們不得不尋求我的回答所提供的幫助的人而寫的沒有能力自己做出決定,因為如您所知,您建議的選擇必須權衡受害者對當前狀況和未知未來的了解。
是的,如果他們基於某些特定的風險因素或標準做出決定,我全力以赴。我只是希望強調一點,恐慌和匆忙拔掉電源可能弊大於利。
該網址沒有任何內容,請給我們更新一下!
剛剛編輯了URL。抱歉,之前沒有看到此請求。
Tim Seed
2016-03-09 21:42:37 UTC
view on stackexchange narkive permalink

全部備份-這樣您就可以在沙盒類型的環境中進行取證。

然後-從0開始-從“無”開始。

新的操作系統-完全patched.Applications-備份中的最新數據文件...(如果可能,在受到損害之前)。如果不需要,則需要對內容和權限進行全面掃描。

然後徹底檢查黑客的入侵方式,並確保不會再發生這種情況。

當您發現什麼內容已經發生了-請採取措施確保其不再發生,並(在內部和/或外部)發布您發現的內容(您可以選擇省略對策)。

除非您從中學到-將會再次遭受同樣的命運。

對驅動器進行映像,而不是備份選擇的文件,會更好嗎?或者,通過“全部備份”,您是說“對驅動器進行映像”嗎?
然後,您需要執行司法調查的專業知識(這不是服務器操作員的典型技能)。 “確保不再發生”是一個非常模糊的建議。這個答案有點可行的建議...
對驅動器進行映像將是最好的選擇-抱歉,我沒有明確地說過。法醫是我同意的一種專業技能-但是,如果您不花時間了解黑客是如何進入的-只需從昨天的備份中恢復系統- 你猜怎麼了 ?他們會回來的-因為您沒有填補空白。我故意含糊-臀位的原因會千差萬別-未打補丁的代碼,密碼,社交密碼,暴力破解,不良的安全模型-列表不勝枚舉“失敗的滋味本身就有豐富的經驗。”比爾·布雷迪
我不明白為什麼這會有這麼多否決票。這是最好的做法。僅刪除惡意軟件沒有任何作用。該惡意軟件以前不存在,它們仍然存在。還要立即使網絡上的所有密碼失效,並密切監視正在更改它們的用戶。
@DrunkenCodeMonkey謝謝!我不得不處理30年IT生涯中被黑客入侵的3台服務器,我給出的建議基於經驗,而不是大約10分鐘的“ Anti Hazker”閃存/ powerpoint演示。黑客入侵後-您根本不知道他們對系統所做的一切-添加了新的SSH端口,新帳戶,新共享,並更改了一些微妙的Apache規則。嘗試找到類似的東西!!!讓他們繼續使用可能受到威脅的服務器。...這將是他們的工作,而不是我的。
向上投票以抵消向下投票-可能無法完全解釋所有步驟,也可以使外行易於遵循,但這是簡潔且基本正確的。
Sayan
2018-07-10 22:27:00 UTC
view on stackexchange narkive permalink

該方法適用於確切的實際情況,但下面是可能的方法。

我的第一步是什麼?當我到達現場時,應該斷開服務器的連接,保留“證據”,還有其他初始注意事項嗎?

答案:當然,您必須斷開服務器的連接通過網絡,但不應關閉/關閉服務器電源,因為您可能必須進行取證才能了解情況,事件的影響並且必須保留證據(如果關閉服務器電源,則可能會擦除內存中的數據)。

危機管理和溝通–如果您具有危機管理和DR / BCP策略,請遵循所述步驟。在這種情況下,這又可能會導致病毒傳播,因此您可能必須遵循您的流程。

我如何才能使服務恢復在線狀態?

答案:如上所述,請按照您的危機管理/ DR / BCP指示進行操作。視情況而定。

例如,如果該病毒是定時炸彈或在服務器上採取了某些措施並受到勒索軟件攻擊而觸發的,則最好不要立即啟動災難恢復(這可能會觸發從您的災難恢復服務器傳播的另一種惡意軟件)。最好的方法是評估事件對網絡的影響,然後採取必要的措施恢復服務。

如何防止同一件事再次發生?

答案:盡快確定事件的根本原因,以防止同一事件再次發生。如上述答案所示,在勒索軟件情況下,您可能必須確保該惡意軟件不會傳播到您的災難恢復/備份中。

如果事件是由於您的網絡中的漏洞而發生的(例如,防火牆端口被錯誤打開,並且攻擊通過此端口進行),則應立即採取措施關閉已知/已識別的漏洞,以避免事件發生再次。

是否存在從該事件中學習的最佳實踐或方法?

答案:是的,每個事件都可以因此,請更新您的危機管理/ DR / BCP程序以反映對此類事件的了解。

始終建議您進行主動的監視/事件標識,以避免/及早發現例如,您可以部署SOC(安全運營中心)或SIEM(安全事件事件管理)工具。

如果我想將事件響應計劃放在一起,我應該在哪裡?開始嗎?這應該是我的災難恢復或業務連續性計劃的一部分嗎?

答案:應該是您的BCP / DR計劃的一部分,並且通常包含在危機管理中(BCP計劃的一部分)。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...