程序员VS黑客
2018-09-13   GitChat精品课

互联网行业里,但凡没被黑客练过的系统,都不够成熟。


每年都有受黑客攻击的互联网行业,尤其是互联网金融行业更是深受其害。部分互金公司选择了出钱消灾,让黑客们尝到了甜头,吸引了更多的人来跃跃欲试。说到底,这是个技术安全的意识问题。


我们也未能幸免,什么 DDOS 攻击、SQL 注入、寻找系统漏洞等几乎都经历过,有的黑客想炫耀技术,将漏洞放到乌云上面或者漏洞盒子里面让厂商来修复。但更多的黑客完全就是威胁、敲诈捞钱。以下介绍几种常见的黑客攻击方式即防范办法:


1

DDOS 攻击


应对 DDOS 攻击没有比较好的办法,只能尽量的避免,讲讲我的经历:之前遇到过官网打不开,后台也登录不了的状况,登录VPN查看服务器各项指标,也登录不上去,运维经理也登录不上。


这时,机房来电话了,说我们的一个 IP 正经历着1G多的流量访问,问我们是否正在做什么活动,话还没说完流量已经达到5G,不到一分钟流量达18G之多。因为机房和集团共用了一个宽带入口,结果陆续集团的网站、服务也都出现了问题,机房服务商害怕引起更大的冲击,直接把官网对外的IP 封掉,集团的其它业务才慢慢恢复过来,我们也紧急更换了外网 IP,重新切换了域名解析才恢复。


事后我们根据 apache 分析了日志,流量来自 N 多个不同的 IP 地址根本无法应对,这次攻击也让高层们重视了起来,解决办法是将公司机房的网络和公司集团彻底分离,这样不管哪方受到大流量攻击都不会相互影响。


也用了一些笨办法,我们发现更换了外网IP之后攻击也随即停止,那么肯定是针对外网来攻击的,所有多准备了6个外网 IP,当监控到对某一个外网进行攻击的时候马上切换到另一个外网地址,尽管只能起到非常有限的作用。


为什么 DDOS 总是喜欢攻击外网 IP 呢,后来理解了。如果针对域名来攻击的话,那不就是攻击到域名商的服务器,域名商都比较强大,一般黑客搞不定


2

如何正确的防止 DDOS 攻击


第一种方案:

隐藏服务器外网地址,服务器前端加 CDN 中转,免费的有百度云加速、360网站卫士、加速乐、安全宝等,如果资金充裕的话,可以购买高防的盾机,用于隐藏服务器真实 IP,域名解析使用 CDN 的 IP,所有解析的子域名都使用 CDN 的 IP 地址。此外,服务器上部署的其他域名也不能使用真实 IP 解析,全部都使用 CDN 来解析。


第二种方案:

买一些安全产品来进行流量清洗,主要是阿里云、腾讯云这种大厂商提供的一种服务。


第三种方案:

有很多的防火墙产品声称可以防止 DDOS 攻击,但是我个人使用感觉效果非常有限。


3

SQL注入


如果官网使用的是 PHP 开发,由于框架比较老旧,存在着一些 SQL 注入的点,被一些黑客找到了突破点,有趣的是,一些黑客在漏洞盒子上面提交了 bug(如下图),最后我们根据提示进行了紧急修复,也在 WAF 防火墙配置了一些拦截 SQL 注入的策略,起到双保险的作用。



为什么 PHP 一般比 Java 更容易暴露出 SQL 漏洞的情况?可能有两方面的原因:

  1. PHP 前端使用较多,受攻击的机会更多一些,Java 一般做为后端服务攻击的可能性会比较少;

  2. PHP 框架较多而且很杂,很多早期的框架并没有特别考虑 SQL 注入的情况,Java 大量普及了 mybaitshibernate 这种 orm 框架,框架本身对常见的 SQL 注入有防范的功能,但不是说mybaits/hibernate 框架就没有被 SQL 注入的可能,大部分场景下可以。另外参数化查询可以有效的避免 SQL 注入。


4

短信攻击

现在的网站几乎都有发送短信或者短信验证码的功能,如果前端不做校验,黑客会写一个 for 循环来发短信,一般系统的短信会进行全方位的防控,比如:

  1. 前端加验证(字符验证码,有的是拖拽的动画);


  2. 后端根据用户或者 IP 加限制,比如用户一分钟只可以发送一条短信,忘记密码的短信一天只能发送10条、一个 IP 地址限制每天只能发送100条短信等。


5

如何防范


黑客攻击未必完全是坏事,一方面说明公司已经吸引了很多人的关注,另一方对技术团队也是一次检验,黑客有时候会带给你完全不同的思路想法。但是被黑客攻击而影响了业务,对内对外造成大的影响,那就很严重了。安全防范是一个全面且持久的工程,在硬件和软件上都要投入。


硬件方面

需要做好网络安全规划,机房常用的安全设备有:VPN 服务器、防火墙、WAF 防火墙

  • VPN 服务器:主要用于运维人员通过口令可以登录到机房内网中进行日常运维工作,也可以用做不同机房网络互通,保证在特定的网络下信息传输安全。


  • 防火墙 :外网访问进入机房的第一道大门,负责三层网络的安全检测,隔离内网和外网环境,外网为非信任区,内网为信任区。


  • WAF 防火墙:最重要的安全设备之一,WAF 防火墙主要是对 Web 特有入侵方式的加强防护,如 DDOS 防护、SQL 注入、XML 注入、XSS 等。属于应用层的安全防护,我们经常遇到的黑客攻击行为,主要就靠它的防护能力。


软件方面

软件方面的防护主要有两方面,一方面使用证书保证传输层的数据安全,另一方面所有对外的接口都需要做好安全规划。

  • HTTPS 证书:在 web 服务器部署 HTTPS 证书,保证用户在交互的过程中数据没有被篡改。


  • 网络规划:所有非必须的服务都不要开放外网访问,需要开放外网访问的服务器仅开放需要的端口,比如常用的 80。和合作公司有数据交互或者接口调用的需求,需要绑定固定的外网访问地址。


  • 技术选择:选择成熟的框架可以避免很多安全问题,早期的很多 PHP 框架根本就没有考虑SQL 注入的相关问题,当初 strust2 的安全漏洞多少企业被坑。选择成熟稳定的技术体系可以避免很多低级的问题。


涨姿势阅读:

正火的 Spring Boot 2.0 更新了啥?

AI人才薪酬看涨,你的工作还好吗?



作者纯洁的微笑:一线技术总监,各大技术社区博客专家,欢迎关注作者公众号“纯洁的微笑”,关注后回复“IT”可获取作者精选资料。

Tips:

微笑老师的《精通 Spring Boot 42讲》正在特价预售中,本课程主攻如何使用 Spring Boot 实践微服务,坚持学完可具备基本实战能力,点击 阅读原文了解微笑君的课程吧。

//所有站点 //公用网站