4.13号湖南电信网络遭境外HK***,全省断网一小时,坐标长沙亲身经历。程序员
正在国家大力推广数字货币的时候,出现这种状况,不知道是否是数字冷战的预演,个中缘由咱们不谈,咱们只从程序员的角度来看看网络被***这件事。数据库
生活在互联网时代,网络安全问题时刻威胁着企业,企业价值越高就越容易被HK盯上,受到网络***的威胁就越大。而服务器做为存储和支持企业数据的载体,在维护和***防范中变得愈来愈重要。缓存
绝大部分大型互联网企业都有过被***的经历,一旦被不法HK***或***,若是没有有效的防御措施,后果不堪设想。数据被盗取不只可能形成巨大的经济损失,严重影响用户口碑和企业形象,甚至可能影响企业的正常运营。安全
而对于咱们程序猿来讲轻则丢饭碗,重则还可能背上官司。安全无小事,企业数据安全管理亟待增强。bash
广义上来讲,服务器是指网络中能对其它机器提供某些服务的计算机系统。从狭义上讲,服务器是专指某些高性能计算机,能经过网络,对外提供服务。相对于普通PC来讲,其稳定性、安全性、性能等方面都要求更高,所以在CPU、芯片组、内存、磁盘系统、网络等硬件和普通PC有所不一样。服务器
企业级服务器主要适用于须要处理大量数据、高处理速度和对可靠性要求极高的大型企业和重要行业,如金融、证券、交通、邮电、通讯等行业。服务器做为网络的节点,存储、处理网络上80%的数据、信息,所以也被称为网络的灵魂。网络
***者***某个系统,老是由某个主要目的所驱使的。例如炫耀技术,获得企业机密数据,破坏企业正常的业务流程等,有时也有可能在***后,***者的***行为,由某种目的变成了另外一种目的。例如,原本是炫耀技术,但在进入系统后,发现了一些重要的机密数据,因为利益的驱使,***者最终窃取了这些机密数据。***者***系统的目的不一样,使用的***方法不一样,所形成的影响范围和损失也各不相同。运维
服务器被***后,会忽然出现不少恶意的请求或者恶意执行的脚本,来消耗服务器的资源,让服务器达到负载状态,从而没法为正经常使用户提供服务。做为企业来讲,最好的方法就是在数据库尚未被攻破以前就阻止***事件的进一步发展。ssh
常见的服务器***方式为DDoS***、CC***、ARP***、******等,再安全的服务器也没法完全避免网络***。tcp
DDoS是目前最多见的网络***方式,也是这次湖南电信全崩官方所给出的说法中提到的***方式,全称为分布式拒绝服务***,DDoS***包括SYN Flood、DrDoS、HTTP Flood等多种变种***,主要是利用TCP协议的漏洞来发起***的,因此没有办法彻底避免。DDoS的***原理也比较简单,***者经过大量僵尸网络肉鸡伪形成各类虚假IP地址,向目标发出大量链接请求,传输大量错误或特殊结构的数据包,服务器将会消耗很是多的资源(CPU和内存)来处理这种无效链接,最后致使资源耗尽,服务器崩溃,正常访客没法访问。
CC***,前身名为Fatboy***,***者主要经过代理服务器或者肉鸡向被***网站发送访问请求,迫使Web服务器超出限制范围,形成对方服务器资源耗尽,到最后致使防火墙死机,一直到宕机崩溃。
ARP***经过伪造IP地址和MAC地址实现ARP欺骗,可以在网络中产生大量的ARP通讯量使网络阻塞,且可以让网络上特定计算机或全部计算机没法正常链接。***者只要持续不断的发出伪造的ARP响应包,就能更改目标主机ARP缓存中的IP-MAC条目,形成网络中断或中间人***。ARP协议又称“地址解析协议”,简略来讲,便可通过IP地址来查询方针主机的MAC地址,一旦这个环节犯错,就不能正常和方针主机进行通信,导致所有网络瘫痪。
不法HK经过网络开发的端口、破解用户密码、程序漏洞等,把***程序、恶意脚本插入正常的软件、邮件等宿主中运行。在受害者执行这些软件的时候,***就能够悄悄地进入系统,向HK开放进入计算机的途径,取得服务器控制权,让被***服务器作挖矿机,从而致使服务器资源消耗殆尽。
以上只是一些最多见的***方式,HK的***手法天天都在不断“进化”,做为企业服务器安全运维人员,须要作到提升网络安全意识,修改各类默认用户名和密码,接入专业的网络防火墙,天天按期检测安全漏洞更新服务器系统漏洞补丁,作好各类数据信息备份,为企业受到网络***后提供数据恢复,保证公司业务正常运行。同时,在系统遭受***后可以迅速有效地处理***行为,最大限度地下降***对系统产生的影响。
一、按期扫描,将服务器和桌面电脑上安装防毒软件,设置自动下载最新的病毒库,更新病毒补丁。要按期扫描现有的网络主节点,清查可能存在的安全漏洞,对新出现的漏洞及时进行清理。服务器级别的计算机由于具备较高的带宽,是HK利用的最佳位置,所以增强主机安全是很是重要的。若是扫描到含有病毒的文件,必须当即隔离查杀,这样作能够避免被感染。
二、针对服务器上的数据进行先备份后加密,在备份的同时要查看这些数据中是否隐藏着不安全因素。若是数据中有不安全因素存在,必定要先完全清除后再备份加密,同时对此备份产品进行补丁更新以及病毒查杀。
三、为企业配置防火墙,防火墙在计算机和网络空间之间起着过滤和保护做用,防火墙自己能抵御网络HK的***。换句话说,防火墙至关于一个严格的门卫,掌管系统的各扇门(端口),负责对全部进出程序进行身份核实,只有获得许可才能够自由出入。每当有不明程序想要进入系统时,防火墙都会在第一时间进行拦截并检查身份,若是检测到这个程序并无被许可放行,则自动报警,并提示用户是否容许这个程序经过,若是是病毒程序则直接拒之门外。
四、过滤没必要要的服务和端口,禁用远程管理。为了保证服务器的安全,严格限制开放的端口是很是必要的,通常来说,非必要的端口/服务都应该关闭,例如13五、13九、445端口等。经过关闭不经常使用的端口,能够有效的将HK拒之千里以外。关闭了一个端口等于关闭一扇用不到的门,HK天然也就少了一个***点。
系统遭受***并不可怕,可怕的是面对***一筹莫展,在企业的网络安全建设中,若是想全面提升自身的网络安全防御能力,就须要一套总体的安全解决方案,这样才能把企业的安全风险降到最低,保护企业自身的安全。
全部的***都来自于网络,所以,在得知系统正遭受HK的***后,首先要作的就是断开服务器的网络链接,这样除了能切断***源以外,也能保护服务器所在网络的其余主机。
能够经过分析系统日志或登陆日志文件,查看可疑信息,同时也要查看系统都打开了哪些端口,运行哪些进程,并经过这些进程分析哪些是可疑的程序。这个过程要根据经验和综合判断能力进行追查和分析。下面的章节会详细介绍这个过程的处理思路。
既然系统遭到***,那么缘由是多方面的,多是系统漏洞,也多是程序漏洞,必定要查清楚是哪一个缘由致使的,而且还要查清楚遭到***的途径,找到***源,由于只有知道了遭受***的缘由和途径,才能删除***源同时进行漏洞的修复。
在服务器遭受***后,须要马上备份服务器上的用户数据,同时也要查看这些数据中是否隐藏着***源。若是***源在用户数据中,必定要完全删除,而后将用户数据备份到一个安全的地方。
永远不要认为本身能完全清除***源,由于没有人能比HK更了解***程序,在服务器遭到***后,最安全也最简单的方法就是从新安装系统,由于大部分***程序都会依附在系统文件或者内核中,因此从新安装系统才能完全清除***源。
在发现系统漏洞或者应用程序漏洞后,首先要作的就是修复系统漏洞或者更改程序bug,由于只有将程序的漏洞修复完毕才能正式在服务器上运行。
将备份的数据从新复制到新安装的服务器上,而后开启服务,最后将服务器开启网络链接,对外提供服务。
当发现服务器遭受***后,首先要切断网络链接,可是在有些状况下,好比没法立刻切断网络链接时,就必须登陆系统查看是否有可疑用户,若是有可疑用户登陆了系统,那么须要立刻将这个用户锁定,而后中断此用户的远程链接。
经过root用户登陆,而后执行“w”命令便可列出全部登陆过系统的用户,以下图所示。
经过这个输出能够检查是否有可疑或者不熟悉的用户登陆,同时还能够根据用户名以及用户登陆的源地址和它们正在运行的进程来判断他们是否为非法用户。
一旦发现可疑用户,就要立刻将其锁定,例如上面执行“w”命令后发现nobody用户应该是个可疑用户(由于nobody默认状况下是没有登陆权限的),因而首先锁定此用户,执行以下操做:
[root@server ~]# passwd -l nobody
锁定以后,有可能此用户还处于登陆状态,因而还要将此用户踢下线,根据上面“w”命令的输出,便可得到此用户登陆进行的pid值,操做以下:
[root@server ~]# ps -ef|grep @pts/3 531 6051 6049 0 19:23 ? 00:00:00 sshd: nobody@pts/3 [root@server ~]# kill -9 6051
这样就将可疑用户nobody从线上踢下去了。若是此用户再次试图登陆它已经没法登陆了。
last命令记录着全部用户登陆系统的日志,能够用来查找非受权用户的登陆事件,而last命令的输出结果来源于/var/log/wtmp文件,稍有经验的***者都会删掉/var/log/wtmp以清除本身行踪,可是仍是会露出蛛丝马迹在此文件中的。
查看系统日志是查找***源最好的方法,可查的系统日志有/var/log/messages、/var/log/secure等,这两个日志文件能够记录软件的运行状态以及远程用户的登陆状态,还能够查看每一个用户目录下的.bash_history文件,特别是/root目录下的.bash_history文件,这个文件中记录着用户执行的全部历史命令。
检查可疑进程的命令不少,例如ps、top等,可是有时候只知道进程的名称没法得知路径,此时能够经过以下命令查看:
首先经过pidof命令能够查找正在运行的进程PID,例如要查找sshd进程的PID,执行以下命令:
[root@server ~] # pidof sshd 13276 12942 4284
而后进入内存目录,查看对应PID目录下exe文件的信息:
[root@server ~] # ls -al /proc/13276/exe lrwxrwxrwx 1 root root 0 Oct 4 22:09 /proc/13276/exe -> /usr/sbin/sshd
这样就找到了进程对应的完整执行路径。若是还有查看文件的句柄,能够查看以下目录:
[root@server ~]# ls -al /proc/13276/fd
经过这种方式基本能够找到任何进程的完整执行信息,此外还有不少相似的命令能够帮助系统运维人员查找可疑进程。例如,能够经过指定端口或者tcp、udp协议找到进程PID,进而找到相关进程:
[root@server ~] # fuser -n tcp 111 111 /tcp : 1579 [root@server ~] # fuser -n tcp 25 25 /tcp : 2037 [root@server ~] # ps -ef|grep 2037 root 2037 1 0 Sep23 ? 00:00:05 /usr/libexec/postfix/master postfix 2046 2037 0 Sep23 ? 00:00:01 qmgr -l -t fifo -u postfix 9612 2037 0 20:34 ? 00:00:00 pickup -l -t fifo -u root 14927 12944 0 21:11 pts /1 00:00:00 grep 2037
在有些时候,***者的程序隐藏很深,例如rootkits后门程序,在这种状况下ps、top、netstat等命令也可能已经被替换,若是再经过系统自身的命令去检查可疑进程就变得绝不可信,此时,就须要借助于第三方工具来检查系统可疑程序,例如前面介绍过的chkrootkit、RKHunter等工具,经过这些工具能够很方便的发现系统被替换或篡改的程序。
检查文件属性是否发生变化是验证文件系统无缺性最简单、最直接的方法,例如能够检查被***服务器上/bin/ls文件的大小是否与正常系统上此文件的大小相同,以验证文件是否被替换,可是这种方法比较低级。此时能够借助于Linux下rpm这个工具来完成验证,操做以下:
[root@server ~] # rpm -Va ....L... c /etc/pam .d /system-auth S.5..... c /etc/security/limits .conf S.5....T c /etc/sysctl .conf S.5....T /etc/sgml/docbook-simple . cat S.5....T c /etc/login .defs S.5..... c /etc/openldap/ldap .conf S.5....T c /etc/sudoers ..5....T c /usr/lib64/security/classpath .security ....L... c /etc/pam .d /system-auth S.5..... c /etc/security/limits .conf S.5..... c /etc/ldap .conf S.5....T c /etc/ssh/sshd_config
对于输出中每一个标记的含义介绍以下:
若是在输出结果中有“M”标记出现,那么对应的文件可能已经遭到篡改或替换,此时能够经过卸载这个rpm包从新安装来清除受***的文件。
不过这个命令有个局限性,那就是只能检查经过rpm包方式安装的全部文件,对于经过非rpm包方式安装的文件就无能为力了。同时,若是rpm工具也遭到替换,就不能经过这个方法了,此时能够从正常的系统上复制一个rpm工具进行检测。
对文件系统的检查也能够经过chkrootkit、RKHunter这两个工具来完成,关于chkrootkit、RKHunter工具的使用,若是感兴趣下篇将展开介绍。
本文就写到这了,但愿对你有所启发。