一、前言
Linux勒索病毒(Linux ransomware)是一种最令人恶心的计算机恶意病毒,它以侵入Linux系统,捆绑文件并要求支付赎金才能释放文件为主要目的,破坏用户的数据,造成数据讹诈。Linux勒索病毒它们的存在已经很长一段时间,但安全警示显示最近活跃度是又开始增加的。感染方式也比过去更先进,它们的攻击目标也更广泛,涉及到Linux系统上的多种文件,包括文档、图片、音频和视频文件等。
常见病毒:
- “勒索病毒解密.makop”:跟通用病毒传播方式一样,它通过恶意电子邮件附件、恶意下载链接、感染的软件安装程序或漏洞利用等途径传播。用户可能会通过打开附件、点击链接、下载软件或访问被感染的网站来感染病毒。一旦用户执行了感染病毒的操作,恶意代码将被释放到受感染计算机上。恶意代码可能会使用已知或新发现的漏洞,将自己嵌入到系统中,以便在后台执行。.之后makop勒索病毒开始扫描计算机上的文件,包括文档、图片、视频等。一旦找到目标文件,它会使用强大的加密算法对这些文件进行加密,加密后通常是“.makop”或“.mop”等扩展名出现,用户是无法访问或打开它们的。
\- 常见后缀为:.360、.halo、.malox、.mallox、.maloxx、malloxx、.faust、.kat6、.l6st6r、.babyk、.DevicData-D-XXXXXXXX、.lockbit3.0、.eight、.locked、,locked1、.secret、.[MyFile@waifu.club].mkp、.milovski-V、,makop、devos、eking、.[hpsupport@privatemail.com].Elbie、.Elibe、.[hudsonL@cock.li].Devos、.[myers@cock.li].Devos、.[henderson@cock.li].Devos,[myers@airmail.cc].Devos、.[support2022@cock.li].faust、.[tsai.shen@mailfence.com].faust、faust、.777等勒索病毒
二、特征及影响
1)勒索病毒多以windows系统为主要传播对象/首次攻击目标,尤其利用RDP远程桌面最为常见,然后再利用系统漏洞横向传播。多以如下方式传播,包括:
1.通过电子邮件附件传播:病毒可以混入含有恶意程序的电子邮件附件,发送给用户,当用户点击附件时,病毒就会被下载和安装到用户的系统中。
2.通过社交媒体传播:病毒可以嵌入社交媒体中的链接,当用户点击链接时,病毒就会被下载和安装到用户的系统中。
3.通过聊天软件传播:病毒可以用聊天软件发送给用户,当用户点击链接时,病毒就会被下载和安装到用户的系统中。
2)Linux平台病毒问题主要为蠕虫病毒、勒索病毒、后门病毒,其中蠕虫病毒占比近半。在蠕虫病毒中最主要的恶意行为是恶意挖矿,恶意挖矿所需的技术和攻击成本较低,这些挖矿程序在后台静默运行,抢占系统大部分资源,造成系统卡顿,影响正常使用,为攻击者带来客观收益,这也是近年来此类蠕虫病毒泛滥的主要原因;Linux平台病毒传播主要通过漏洞和弱口令暴破进行,暴破传播主要以SSH暴破为主,漏洞传播主要以各种RCE漏洞为主。有些病毒感染进来后,会对内网进行扫描,如果发现目标存在漏洞,将对目标进行攻击,植入后门、挖矿等病毒模块,被利用的漏洞往往远程执行Shell脚本进行横向传播,且inux平台病毒通常具有一定的持久化手段来进行自我保护,给防御和查杀带来困难。
对于勒索病毒来说,Linux中,大部分勒索病毒自身并不携带任何传播手段,由攻击者进行人工渗透入侵,攻击成功后上传勒索病毒模块,通过加密和窃取数据的方式对企业或单位进行敲诈勒索,Linux勒索病毒具有以下特征:
1.它可以侵入Linux系统,捆绑文件,并要求支付赎金以释放文件。
2.它可以在Linux系统上传播,通过多种方式感染计算机:例如,通过邮件附件、社交媒体、聊天软件等。
3.它可以攻击多种文件,包括文档、图片、音频和视频文件等。
4.它会显示一个要求用户支付赎金的消息,要求用户支付比特币作为赎金才能恢复被捆绑的文件。
Linux平台病毒常见的持久化手段:
- 定时任务:这是Linux病毒常用的持久化手段,可通过向crontab目录写入定时任务的方式,来定期执行Shell脚本,往往伴随着大量外访链接,即时手动清除了,后门程序仍可自动创建定时任务。
\- 添加为Linux系统服务,在systemd/system目录下为病毒模块创建一个服务配置文件,系统启动后,病毒会自动运行;
\- 常伪装成系统进程:后门陈旭会创建了多个进程来防止主进程被关闭和防止病毒模块被删除,这类持久化进程往往难以排查;
三、防护
1)防护手段
1.安装杀毒软件:安装杀毒软件和其他安全软件,并及时更新其病毒库,以防止病毒的传播和感染。
2.及时修补漏洞,减小暴露面:及时扫描和修复系统中的安全漏洞,及时安装操作系统和应用程序的安全更新,以弥补已知漏洞,防止病毒的入侵,减少受到攻击的风险。修改默认端口如SSH、Redis、FTP、MySQL等,防止被扫描器暴破;
3.使用强密码:使用强度足够高的密码,避免系统和各个软件使用相同的密码,以防止攻击者破解密码,从而获取系统访问权限。
4.定期备份数据:定期将重要数据备份到安全的外部设备或云存储中,确保备份是自动的并进行多个版本的保存。
5.谨慎打开附件和链接:避免打开来自不明寄件人的电子邮件附件,以及点击怀疑链接,因为这可能是传播恶意软件的重要途径之一。
6.安装可信安全软件:使用强大的安全软件来检测和拦截恶意软件的入侵尝试。
7.网络安全意识教育:教育员工、家庭成员等有关网络安全的基本知识,以减少被社会工程攻击的风险。
2)防护工具
1.勒索病毒解密.makop” :通过分析病毒的加密算法,然后使用特定的密钥来解密加密的文件。它首先会搜索系统中被加密的文件,然后识别出病毒的加密算法,最后使用特定的密钥来解密文件。它可以有效抵御新出现的勒索病毒,防止新的文件被加密,支持多种文件格式,可以解密 doc,pdf,ppt,xls,mp3,jpg 等多种文件。它主要应用于被勒索病毒加密的文件解密,它能够有效恢复被加密的文件,让用户可以重新访问这些文件。
2、专业查杀软件:windows可选火绒,比如:HRkill专杀工具;PCHunter、
3、Linux杀毒:Clamav、GScan(),火绒安全企业版linux终端产品,Rootkit(木马后门工具)检查,使用chkrootkit,
- Gscan:Gscan是一款使用Python3基于web渗透测试开发的信息收集扫描器,其融合了大部分的信息收集能力于一体。如常见的主机探活、端口扫描、目录扫描、邮箱收集等,同时还提供接口用于拓展其漏洞扫描能力。Gscan旨在为安全应急响应人员对 Linux 系统排查时提供便利,实现主机侧 Checklist(检查表) 的自动全面化检测,根据检测结果自动数据聚合,进行黑客攻击路径溯源。目前程序只针对Centos进行开发测试,其他系统并未做兼容性,扫描结果仅做参考;
#Gcan安装
yum install git python3 python3-devel gcc-c++ gcc make -y
git clone https://github.com/grayddq/GScan.git
cd GScan
python3 GScan.py -h #帮助
#使用默认安全扫描
python3 GScan.py #会生成 ./GScan/log/gscan.log 文件
#完全扫描
python3 GScan.py --full
#chkriotkit安装
tar zxvf chkrootkit.tar.gz
cd chkrootkit-*
make sense
cp -r chkrootkit-* /usr/local/chkrootkit
/usr/local/chkrootkit/chkrootkit -h #帮助
#注:chkrootkit在检查rootkit的过程中使用了部分系统命令,因此,如果服务器被黑客入侵,那么依赖的系统命令可能也已经被入侵者替换,此时chkrootkit的检测结果将变得完全不可信。为了避免chkrootkit的这个问题,可以在服务器对外开放前,事先将chkrootkit使用的系统命令进行备份,在需要的时候使用备份的原始系统命令让chkrootkit对rootkit进行检测。
#chkrootkit依赖命令
mkdir /usr/share/.commands #创建一个存储这些命令的隐藏目录
cp -pr `which --skip-alias awk cut echo find egrep id head ls netstat ps strings sed uname` /usr/share/.commands
/usr/local/chkrootkit/chkrootkit -p /usr/share/.commands/ #参数-p,指定chkrootkit检测时使用系统命令的目录,chkrootkit指定使用原始命令扫描检测
四、附录:其他安全
4.1、其他安全风险
常见危害:暴力破解,漏洞利用,流量攻击,木马控制(Webshell,PC木马等),病毒感染(挖矿,蠕 虫,勒索等)。
//分析日志,统计确认服务器遭受多少次暴力破解,有的记录在authpriv日志里
grep -o "Failed password" /var/log/secure|uniq -c
//输出登录爆破的第一行和最后一行,确认爆破时间范围
grep "Failed password" /var/log/secure|head -1
grep "Failed password" /var/log/secure|tail -1
//定位有哪些 IP 在尝试爆破
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c | sort -nr
//爆破用户名字典都有哪些
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
//登录成功的日期、用户名、IP有哪些
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more