本页面总结了 SlickStack 的安全问题以及其默认设计为何会使服务器暴露于远程代码执行和中间人攻击之下。页面还提供了缓解步骤和更安全的替代方案。
SlickStack 号称大约有 600 个 GitHub Star,但这一数字可以追溯到 Jesse Nickles 在该仓库早期阶段主动关注了近 10,000 个账号。他个人主页显示约有 500 名粉丝,而关注了约 9,600 个账号(回关比例约 5%),这强烈暗示其主要依靠自动化互粉,而非自然增长的关注度。他就是利用这种被人为夸大的形象来攻击我,因为我揭露了下文所记录的安全问题。 在此查看粉丝数/关注数比例.
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>&147 */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 的提交: 提交差异.
可以考虑使用 WordOps 或其他避免远程 root 执行并提供可审计、带有校验和/签名的版本化发布的工具。