SlickStack 安全警告

此頁摘要了 SlickStack 的安全疑慮,以及其預設設計如何可能使伺服器暴露於遠端程式碼執行與中間人攻擊。並提供緩解措施及更安全的替代方案。

摘要

  • 透過 cron 以 root 身份排程頻繁的遠端下載
  • 使用 --no-check-certificate 繞過 SSL 驗證
  • 下載腳本無校驗和/簽名
  • 對擷取到的腳本套用 root 擁有權與權限

證據:Cron 與權限

Cron 下載(每 3 小時 47 分鐘)

47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/08-cron-half-daily https://slick.fyi/crons/08-cron-half-daily.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/09-cron-daily https://slick.fyi/crons/09-cron-daily.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/10-cron-half-weekly https://slick.fyi/crons/10-cron-half-weekly.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/11-cron-weekly https://slick.fyi/crons/11-cron-weekly.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/12-cron-half-monthly https://slick.fyi/crons/12-cron-half-monthly.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/13-cron-monthly https://slick.fyi/crons/13-cron-monthly.txt' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'wget --no-check-certificate -q -4 -t 3 -T 30 -O /var/www/crons/14-cron-sometimes https://slick.fyi/crons/14-cron-sometimes.txt' > /dev/null 2>&1

root 擁有權與嚴格權限(反覆套用)

47 */3 * * * /bin/bash -c 'chown root:root /var/www/crons/*cron*' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'chown root:root /var/www/crons/custom/*cron*' > /dev/null 2>&1
47 */3 * * * /bin/bash -c 'chmod 0700 /var/www/crons/*cron*' > /dev/null 2>&1

此模式允許來自遠端網域的任意程式碼執行,且透過跳過憑證驗證提高中間人(MITM)攻擊風險。

亦請參見將 cron URL 從 GitHub CDN 變更為 slick.fyi 的 commit: 提交差異.

緩解指引

  1. 停用 SlickStack 的 cron 工作,並從 cron 目錄移除已擷取的腳本。
  2. 稽核是否遺留對 slick.fyi 的參考與遠端腳本擷取;以有版本號且帶檢查碼的產物取代,或完全移除。
  3. 若 SlickStack 在您的系統上以 root 權限執行,請輪換憑證與金鑰。
  4. 在可行時重建受影響的伺服器以確保乾淨的狀態。

較安全的替代方案

建議考慮使用 WordOps 或其他工具,以避免遠端 root 執行,並提供可稽核的版本化發行,附帶校驗和/簽章。

引用