加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 安全 > 正文

大战黑客,一路披荆斩棘,百亿互联网金融平台救火故事!

发布时间:2017-10-04 09:28:36 所属栏目:安全 来源:51CTO
导读:副标题#e# 多年前,又是周六客服打电话过来,平台官网不能访问,APP 完全无法打开,客户在 QQ 群和微信群中各种反馈,说平台是不是跑路了?客服的多条 400热线完全被打爆,电话已经接不过来… 一直以来总是想以什么方式去记录下自己在互金行业的这段经历,趁

我们的官网是使用 PHP 开发的,因为框架比较老旧的原因,存在着一些 SQL注入的点,我们发现了一些并进行了修补,没想到还是被一些黑客找到了突破点,这块还是比较感谢一些黑客在漏洞盒子上面提交的 Bug,如下图:

大战黑客,一路披荆斩棘,百亿互联网金融平台救火故事!

最后我们根据提示进行了紧急修复,后来也在 WAF 防火墙配置了一些拦截 SQL 注入的策略,起到双保险的作用。

我一直在想为什么 PHP 比较容易出现 SQL 注入呢,而 Java 较少暴露出来 SQL 漏洞的情况,我估摸着有两方面的原因:

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

  • PHP 框架较多而且很杂,很多早期的框架并没有特别考虑 SQL 注入的情况,Java 大量普及了 mybaitshibernate 这种 orm框架,框架本身对常见的 SQL 注入有防范的功能。

但不是说 mybaits/hibernate 框架就没有被 SQL 注入的可能,大部分场景下是 OK 的,另外参数化查询可以有效的避免 SQL注入。

通过一段时间的学习,我发现黑客一般先使用工具对网站做整体的扫描类似Acunetix,在根据扫描出来的漏洞做个大概的分析,但是比较深入的漏洞都需要根据网站的业务再进行调整。

比如 SQL 注入会根据页面的查询使用 sqlmap 等工具来进一步的渗透。当然我对这方面还是外行,描述的可能不够清晰。

03、短信攻击

验证码漏洞

我们当初有一个很小的失误,有一个程序员在 H5 的小网页中将发送短信验证码返回给了前端,最后被 Haker发现了,他利用这个漏洞可以给任意的用户重置登录密码。

那一晚上我们几百多个用户收到了密码重置的短信,虽然黑客最终也没有改用户的密码,只是发短信玩了一把,但是对于平台来讲无形的价值(信誉度)损失不小。

短信攻击

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

比如:在前端加验证(字符验证码,有的是拖拽的动画);在后端根据用户或者 IP 加限制,如果用户一分钟只可以发送一条短信,忘记密码的短信一天只能发送 10条、一个 IP 地址限制每天只能发送 100 条短信等。

04、如何防范

黑客攻击公司的网站未必完全是一件坏事,一方面说明了公司已经吸引到了很多人的关注,另一方面对我们技术团队是一次检验,黑客有时候会给你带来完全不同的一种思路想法。

但是被黑客攻击而影响了业务,那就不是一件愉快的事情了,如果攻击导致频繁的出现问题,对内对外都会造成大的影响,那就是严重的事件了。安全防范是一个全面且持久的工程,也是需要在硬件和软件上都要投入的一件事情。

硬件方面

需要做好网络安全规划,机房常用的安全设备有如下三个:

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

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

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

现在的防火墙技术更新特别快,以前的防火墙都是基于特征库来进行防护的,最新一代的防火墙可以根据平台的用户行为来检测分析是否为攻击行为。

软件方面

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

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

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

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

作为一个互联网金融平台,涉及到用户资金,任何的服务(资金)差错用户都是不可容忍的,用户不懂什么是数据库,不知道什么网络不通,就是一会看不到钱在 APP里面展示都会觉得不安。

在已经有很多 P2P 公司跑路的前提下,用户个个已经被锻炼成为福尔摩斯侦探,每天打开 APP 查看收益,监控着平台一切。

甚至半夜升级断网十分钟,也会被用户察觉,直接就发到群里面,更有甚者直接在 QQ 群或者微信群中说你们的技术行不行!

我们常说的互联网工作经验,一方面是开发经验,但其实更重要的是处理问题的能力。那么处理问题的能力怎么来呢,就是不断的去解决问题,不断的去总结经验,其中处理生产环境中问题的经验更甚。

因为在处理生产环境问题中对个人的压力和临危应变的能力要求最高,你不但需要面临千万个用户反馈,客服不时的催促,而且旁边可能就站了 N个领导在看着你。

一副你行不行的样子要求立刻马上解决问题,这个时候你的操作就非常重要,稍有不慎便会引发二次生产事故。

说了这么多,只是想说明,生产事故对技术综合能力要求颇高,更是锻炼处理问题能力的最佳时机!

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读