昨天看到国家计算机病毒应急处理中心发了个预警,说国内已经发现多起"Sorry"勒索病毒的攻击事件。我第一反应是:又来了。但仔细看完报告,这次有点不一样。
这次是怎么回事
简单说一下。"Sorry"是个用Go语言写的勒索软件,专门盯Linux服务器。它的标志性动作是把你的文件全加密,然后在文件名后面加上".sorry"后缀——原来叫contract.pdf的文件,中招之后就变成了contract.pdf.sorry,看着就让人心里发堵。
这次攻击的手法挺阴的。攻击者利用了cPanel的一个认证绕过漏洞(CVE-2026-41940),这个漏洞在互联网上裸奔了65天没人管,最后被大规模利用。根据公开数据,全球至少4.4万台服务器被攻破,加密后的文件会显示一个勒索信,让你用Tox这个加密聊天软件联系他们谈赎金。
而且这个病毒不只是加密。它还会先采集你服务器的信息(主机名、CPU、网络接口这些),回传给攻击者做"受害者档案"。然后主动把你的数据库服务、安全防护软件、备份服务全部停掉——是的,它专门删备份。最后还会扫描你内网的SSH端口,用弱口令尝试感染其他机器。一台中招,可能整个机房都得完。
我在安全圈混了这么多年,这种"攻进来以后先拆你防守再开抢"的做法其实不算新鲜,但Sorry这套组合拳打得确实流畅,从入侵到加密到横向传播一气呵成。能写出这种东西的人,不是业余选手。
中小企业为什么最危险
说句不好听的,中小企业在勒索攻击面前,基本上是裸奔的。
预算有限,舍不得花钱买安全设备。运维可能就那么一两个人,天天忙着修bug、部署新功能、处理用户投诉,根本顾不上安全巡检。服务器配置好了就扔在那儿,半年不更新是常态。密码可能是"admin123"或者"123456",因为好记。备份嘛,要么没做,要么备份文件就放在同一台服务器上——跟没备份差不多。
还有一点,很多人觉得"我又不是大公司,谁会来攻击我"。这个想法真的很危险。勒索软件现在大部分都是自动化扫描、自动化攻击,它才不管你公司多大,只要你的服务器暴露在公网上、有漏洞、有弱口令,它就往上冲。你不是被"盯上"的,你是被"扫到"的。全球有150万台cPanel实例暴露在互联网上,这150万台对攻击者来说就是个自助餐厅,进去挑软的捏就行了。
我之前帮一个朋友的小公司排查过一次类似的事件,他们一台跑WordPress的服务器被挂了挖矿程序,原因就是管理员密码是"password",SSH端口用的默认22,而且开了密码登录。那次还好只是挖矿,要是碰上Sorry这种直接加密的,他们那个小电商站的客户订单数据就全完了。
说真的,我觉得很多中小企业老板对安全的认知还停留在"装个杀毒软件就行了"的阶段。但服务器安全不是装个软件就完事的,它需要一整套思路和习惯。
几件你现在就该做的事
也不是说防御有多复杂。有些事情,花半个小时就能做完,但能挡住绝大部分自动化攻击。
SSH别再裸奔了
SSH是Linux服务器最大的攻击面,没有之一。默认的22端口在互联网上每天被扫几千次,各种脚本在暴力破解密码。
改掉默认端口是最简单有效的一步。改成什么随意,随便找个高位端口就行。光这一步就能过滤掉99%的自动化扫描。然后禁掉密码登录,只允许密钥认证。说实话,密码登录在2026年了真不该再用了,密钥认证又不难配。
再装个fail2ban,有人暴力猜密码就直接封IP。配置很简单,apt install fail2ban,改改配置文件就行。装完之后你会惊讶地看到日志里有多少人在试图登录你的服务器。
备份这件事,说三遍都不嫌多
3-2-1备份原则——3份副本、2种介质、1份离线。听着像教科书,但真到用的时候,这东西能救命。
重点说"离线"这两个字。在线备份(包括NAS上的备份)在勒索软件面前其实也不安全,因为病毒会扫描挂载的磁盘并加密。我个人的建议是:定期把关键数据拷贝到一个断网的硬盘或者对象存储(比如定期上传到OSS但用不同的访问密钥),这样即使服务器被攻破,勒索软件也够不着你的备份。
不要嫌麻烦。每周花十分钟拷一次数据,总比某天打开服务器发现全是.sorry文件然后花几天几夜恢复强。
别什么事都用root
很多中小企业图方便,运维直接用root账号操作。一台服务器上所有服务都跑在root权限下,数据库是root,Web服务是root,脚本也是root。
这是在给攻击者送人头。一旦攻击者拿到root,他们想干什么都行。正确的做法是给每个服务创建独立的用户,只给它必需的最小权限。数据库用mysql用户跑,Web服务用www-data,你日常运维用sudo权限的普通账号。这样即使某个服务被攻破,攻击者也很难横向移动到其他部分。
这是一个习惯问题,前期多花点时间规划,后面能省很多麻烦。
补丁别拖
这次Sorry利用的cPanel漏洞,在发布补丁之前已经被零日利用了65天。很多人可能会说"那我打补丁也没用啊,漏洞出来之前我又不知道"。但你想想,如果补丁一出来你立刻就打上了,你就不会在这65天之后的利用窗口期内中招。
Linux系统都支持自动安全更新。Debian/Ubuntu装个unattended-upgrades,CentOS/RHEL用dnf-automatic,配好之后安全补丁自动装,不需要你操心。至少把自动安全更新打开,那些高风险的补丁不应该靠人工去追踪。
装几个监控,有人撬门你得知道
不用搞多复杂的东西。rkhunter可以定期扫描你的系统有没有被植入rootkit,auditd可以记录关键文件的操作日志,再加个简单的脚本监控关键文件变化就够了。
举个例子,写个cron脚本,每天检查一下/etc/passwd、/etc/shadow、authorized_keys这些文件的修改时间,如果变了就发个告警邮件给你。这种土办法虽然不够高级,但对付大部分自动化攻击已经够用了——重点是在于"你能知道",而不是完全依赖工具。
有些中小企业甚至连最基本的日志都没看。说实话,装个简单的告警,哪怕就是有异常情况发条微信消息给你,都能让你在中招后的第一时间做出反应,而不是三天之后客户投诉了才发现。
如果真的中招了
我知道很多人想问:付不付赎金?
我的态度很明确:不要付。
这不是道德说教。从实际角度讲,付赎金有几个问题。第一,对方是罪犯,你把钱打过去没有任何保证他们会给你解密密钥。第二,Sorry用的是AES加密加RSA保护密钥,加密强度很高,目前没有公开的解密方法,但你付了钱就等于告诉犯罪分子"勒索有用",他们下次还来。第三,有些勒索软件还会在你付了钱之后继续勒索,或者根本不解密。
国家计算机病毒应急处理中心的报告也明确说了,"在无攻击者专属私钥的前提下,当前不存在可靠的数据恢复手段"。所以唯一的出路就是从备份恢复。
恢复流程大概是这样:先断网,防止病毒继续传播。然后用干净的系统重装,不要试图在已经被感染的系统上"清理",因为你很难保证病毒没有留下后门。最后从离线备份恢复数据,恢复之后做一次全面的安全检查,确认没有残留威胁才重新上线。
如果你没有离线备份……那现在就开始做,还来得及。
最后说一句:这篇文章不是要制造恐慌。Linux服务器被勒索攻击不是什么新鲜事,但每次看到中小企业的数据被锁、业务瘫痪,心里还是觉得可惜——因为很多损失本来是可以避免的。安全这件事,做得好是看不见的,做不好就会在某一天突然让你看见。趁着还没出事,把该加固的加固了,该备份的备份了,比什么都强。