在CentOS系统中,Sniffer(通常指tcpdump)是一种强大的网络监控工具,能够捕获和分析网络流量,从而帮助识别多种异常行为。以下是Sniffer检测异常行为的主要方法:
异常行为类型
- 挖矿病毒:CPU或GPU长时间占用100%,出现异常进程(如xmrig、kworker、ddgs)等。
- DDoS攻击:服务器带宽异常占满,netstat显示大量syn_recv、time_wait状态,ps发现大量httpd/nginx进程等。
- 后门木马:隐藏进程,ps进程列表找不到但top能看到,crontab中出现可疑定时任务,端口监听异常(ss -antp显示root运行的非标准端口)等。
- 蠕虫病毒:短时间内大量文件变动,top显示异常高I/O负载,服务器对外疯狂扫描其他IP等。
- 勒索病毒:文件被加密(扩展名.lock、.encrypted),/tmp目录下出现未知可执行文件,ps发现wget/curl下载可疑文件等。
- Webshell:网站目录(/var/www/html/)出现陌生脚本文件等。
- SQL注入攻击:数据库mysqld进程CPU异常升高,网站日志出现大量union select或or 11语句等。
- 暴力破解:/var/log/secure出现大量failed login记录,who发现陌生IP登录,ss -antp发现22端口大量连接等。
- DNS劫持:resolv.conf被篡改,DNS解析异常,ping google.com解析IP变化,服务器DNS记录被改到8.8.8.8之外的未知IP等。
- 恶意代理/隧道:ps发现socat、nc、iodine等隧道工具,服务器对外大量443/80连接,iptables规则被修改等。
- ARP欺骗:arp -a显示异常网关MAC,内网通信异常,流量到达错误IP,tcpdump发现ARP报文激增等。
使用Sniffer进行异常检测的步骤
- 安装tcpdump:在CentOS上安装tcpdump,可以使用yum包管理器。
sudo yum install -y tcpdump
- 捕获数据包:使用tcpdump命令捕获网络数据包。例如,要捕获所有通过eth0接口的数据包,可以使用以下命令:
sudo tcpdump -i eth0
- 分析捕获的数据包:捕获数据包后,可以通过分析输出结果来识别潜在的问题。例如,可以使用以下命令过滤特定端口的数据包:
sudo tcpdump -i eth0 port 80
- 保存捕获的数据包:如果需要保存捕获的数据包以供后续分析,可以使用-w选项:
sudo tcpdump -i eth0 -w output.pcap port 80