前言:互联网世界鱼龙混杂,我们的网站放在服务器上除了网站用户和会员会造访,还会有一群觊觎网站利益服务器功能的人在暗中观察。
这些人时常会抓住机会找到漏洞就把网站一举拿下,从而盗取数据或是利用服务器资源作为矿机、挂马等等,因此服务器防御也是不可忽略不可轻视的一方面。
大部分公司在开发运维过程中并不会去刻意注意服务器安全,也不会去请专门的安全人员,直到服务器被攻破,被人勒索了以后才会意识到安全问题的重要性,虽说见兔顾犬,未为晚也,亡羊补牢,未为迟也,但是倘若我们能做到防范于未然,做好基础防御,至少让小学生级别的黑客被拒之门外,岂不善哉。
本文也仅作为基础防御手段收集,如果公司数据非常重要,还是需要请专门的安全公司来保驾护航。
常见攻击手段
1、针对网站
1.1、SQL注入
sql注入也是老生常谈了,基本上算是常识了,这种手段无非是利用后台漏洞通过URL将关键SQL语句带入程序并在数据库中执行从而造成破坏性结果。常见情况包括后台使用了的致命的字符串拼接,比如在java的jdbc中使用如下写法
String sql = “select * from t_user where username = “+username;
如果入参username在url中被换成不怀好意的sql语句或者其他,数据库也就危险了。
localhost:8080/testproj/queryUser?username=;drop%20t_user;
此外,类似的mybatis的${}写法也是同样道理,最好换成#。
1.2、后台框架、协议漏洞
利用框架协议漏洞则是针对程序和系统缺陷,比如漏洞百出的struts2框架,到今天为止也不知道放出多少漏洞了,这些漏洞基本上是针对EL表达式缺陷使得URL中的代码得以执行,针对方式也很简单,换掉struts2或者不断升级。应对这种情况就需要运维人员关注漏洞公告,及时与开发沟通配合,更新程序,代价成本也比较高。这里也推荐可以使用一些漏洞扫描工具,及时发现自己网站的后门,防范于未然。比如Acunetix Web Vulnerability Scanner还是挺好用的。
1.3、程序逻辑漏洞
这个就需要黑帽子们比较有耐心,去一点点找出来,举个例子,网站有效性校验。针对数值有效性,前端有进行过滤,但是网站后台没有做参数有效性校验,这时候恶意者使用F12或postman等拼装ajax请求,将dfa或者-1ad这种非法数字发送给后台,健壮性差的程序就很容易报错,异常暴露到页面上,瞬间就能让操作者知道后台使用何种语言何种框架。更严重的可能是利用程序逻辑漏洞做重复提交、越权操作等行为,因此需要开发人员注意。
1.4、CSRF攻击
这种手段就比较高明了,需要黑帽子会构建钓鱼网站,且对目标网站请求方式比较熟悉。原理就是利用浏览器保存的cookie,比如我登录目标会员网站(这里假设www.esphp.com),利用留言功能留下一个钓鱼网址,可能管理员就点了进去,跳转到我构造的网页后触发页面的请求,该请求要增加一个管理员用户
www.esphp.com/account/addUser?username=god&password=123456&role=1
这个时候浏览器还携带着管理员登录的cookie因此该行为得到执行,我就获得了一个管理员用户,当然这么蠢的网站一般是不存在的,这里只是打个比方。
防范手段比较常见的是url携带token进行校验,这种手段还可以防御cookie被篡改,盗用等情况,相当的万金油。
1.5、暴力破解
直接采用密码表暴力破解方式强行登录管理员账户,这个没啥技术含量,开发人员做好验证码校验以及恶意攻击校验,频繁请求IP封禁即可。
2、针对服务器
2.1、服务器登录用户、数据库登录用户爆破
黑帽子有多种手段确定后台数据库,比如1.3中直接让后台报错,很容易就发现了后台使用的什么框架,连得啥库。又或是使用nmap 等工具直接开扫,目标服务器暴露3306端口大概率就确定是mysql了。确认了数据库类型以及端口接下来就是采用密码表暴力破解了,很多安全意识差的密码居然还是root,123456之类的,分分钟被暴,而扫到后台服务器22开放端口也可以确认后台服务器使用linux开放ssl登录。所以应对方式有三种:
mysql限制访问IP,这个利用alter user语句就可以做到,root账户尽量只给localhost权限,慎用user@%;
不要使用弱密码,尽量采用字母+数字+特殊字符的密码;
服务器使用放暴力破解服务,可以针对非法访问恶意操作进行锁IP防御。
2.2、服务器端口漏洞
通过nmap很容易扫描到服务器暴露的端口,比如139端口外露,就有大量的手段可以渗透:
net use \\ip\\ipcContentContentnbsp;”” /user:administrator
所以应对手段也很简单,开启防火墙,且只开放有需要的端口,敏感端口如139,445不要外露。
2.3、操作系统漏洞
虽然大部分公司都采用linux作为服务器,相对安全得多,但是还是有不少公司(至少博主见过挺多的)还在使用windows server,大量的漏洞让服务岌岌可危,应对方式也很简单粗暴,该打的补丁就打,不要偷懒。
2.4、木马植入
这个就是黑客直接通过向服务器种植木马,开启后门,取得服务器控制权,应对方式主要以下三点:
1、不要用服务器访问乱七八糟的网站(尤其是公司服务器在国外的,不要想着借来翻墙了,别作死),下载乱七八糟的东西;
2、实体机的移动外设接入前注意杀毒;
3、服务器安装相应安全产品,定期查杀木马,定期更新漏洞补丁;
4、防火墙注意开启,相应端口注意配置。
做到以上几点,基本上中级以下的黑客是进不来了,就算是中高级的黑客也得费一番功夫。当然,如果公司服务器数据涉及资产非常高,还是建议老老实实找安全公司护镖。