一家互联网金融公司的安全保护实践

前言

我们是一家普通的 P2P 网贷平台,随着用户量和交易量的上涨,十几个人的研发团队面临了很大的挑战。双十一开始,平台受到了不少黑客的攻击,保证安全的重任也落到了我们研发团队的身上。
看到过一个数字,在2014年,超过160家 P2P 平台由于黑客攻击造成系统瘫痪、数据被恶意篡改、资金被洗劫一空。为了让平台更好的抵御外部侵袭,我们做了很多努力,下面就分享下我们在安全保护方面的一些实践。

成熟的企业主要通过以下几个方面的工作来保障安全:

  • 制定代码规范和安全代码规范,培训相关开发人员熟悉代码规范,在源头保障代码质量
  • 制定统一开发模板,确保每个人编写 code 格式一致
  • 进行严格的功能设计,技术设计,架构设计和代码的评审,确保设计和代码质量
  • 在代码提交时用类似 checkstyle 等工具对代码规范进行检查,确保代码规范。
  • 使用代码静态、动态分析工具进行扫描,比如 Java 使用 Findbugs,PWD 等工具。
  • 最后就是购买商业扫描工具进行漏洞检测。比如 Qualys 是特别好的漏洞扫描工具

不过感觉做了这么多,其实还是不能确保平台的安全。第一、项目中通常会使用大量的第三方软件,包括开源的和商业软件,这些软件漏洞不是自己能掌控的。其次、所有的检查都是有局限性和时效性的,只能确保修复这些软件扫描出来的漏洞,无法保障运行时新出现的漏洞,而通常这些新的攻击也会经常遇到。

而且在我们这种创业公司,这些安全方式很难实践。作为 P2P 的平台,尤其是在创业阶段,要求产品的迭代周期非常的快,实现功能和保障质量是第一优先级。人才招聘也是非常难的一件事情,尤其是找到能书写安全代码的程序员几乎是不可能的事情。如何保障产品安全,让我们一直非常头疼。没有足够的资源和时间,来按照大公司的安全实践来保障产品的安全。但是安全又是互联网金融产品至关重要的事情,一旦受到攻击,进而导致信息泄密或者数据库破坏,后果不堪设想。

于是我们尝试了以下两种方法:

第一种是通过流程和静态、动态扫描工具来确保代码符合安全规范。因为面对功能和上线的压力,再加上程序员的实操能力,都使我们的尝试没办法较好的实施。通过代码质量来保障安全,就是0和1的游戏,减少漏洞是唯一的选择。没有漏洞被发现就是1,发现一个漏洞并被利用就是0。

第二种是通过扫描和渗透工具,感觉应该是一种方便快捷的方式。它从使用者的角度来攻击系统,这样的攻击是非常实时和有针对性的。

我们使用了几种在线的扫描工具:

1.阿里的扫描工具: http://sts.aliyun.com/ ,经过扫描是安全的。

一家互联网金融公司的安全保护实践

2.百度云测 http://ce.baidu.com/ ,扫描结果同样是安全的。

一家互联网金融公司的安全保护实践
一家互联网金融公司的安全保护实践

3.这样的结果让我们非常疑虑,没有经过安全流程考验的代码居然没有任何安全问题,我有点怀疑这些扫描工具的效果了。于是下载了Nessus家庭版安装到本地,对我们的服务平台进行扫描,结果也并不理想,没有发现特别有意义的漏洞。

一家互联网金融公司的安全保护实践

4.还有一种解决方案就是购买Web应用程序防火墙(WAF)。但通常 WAF 非常昂贵,比较好的 WAF 一般在几十万上下。这对一般的创业企业是一笔很大的开支。我们暂时还下不了这个决心去购买。

使用这些扫描器后没有发现严重的问题,并没有让我们安心。

凭经验感觉,没有经过严格安全流程的代码是不可能没有漏洞的。于是我们就想通过类似 SQL 注入的工具,通过单项渗透测试来检查是否有漏洞。在百度上搜索「sql注入」的关键字,发现了一种实时应用防护的方式 RASP。以前也曾经关注过国外这方面的资讯,没有想到,国内公司现在也有了类似产品 OneRASP,于是赶紧 down 下来试试。

团队经过头脑风暴,决定把 Nessus 和 OneRASP 结合起来。Nessus 作为攻击方,将 OneRASP 放入到应用程序中,作为防御方(只启动监控模式),这样应该能够找到平台的一些漏洞。说干就干,安装过程还是挺简单的。
首先需要注册一个账号,然后下载一个探针,将探针解压到tomcat目录下。配置catalina.bat:set CATALINA_OPTS="-javaagent:C:\Users\one\Downloads\agent_a3483efc-a4ed-4a86-bde1-910012383309\OneAppDefender\lib\RaspAgent.jar %CATALINA_OPTS%"。最后重启tomcat就 ok 了。

好了,万事俱备。看看效果怎么样。启动 Nessus 对加了探针的程序再次进行扫描,毫无疑问,得到的扫描结果没有什么变化。不过我们最关心的还是 OneRASP 抓到什么内容,于是登录官网进入后台页面。心里还真有点小激动,页面虽然非常简单,但是抓到了不少漏洞,没有让我们的努力白费。

一家互联网金融公司的安全保护实践

所有漏洞一目了然,最有价值的就是可以将漏洞定位到应用程序的代码行。比如SQL注入发生在哪一行代码里面,是哪个 SQL 语句造成的,一目了然。

一家互联网金融公司的安全保护实践

跨站攻击发生在那个 JSP 页面也非常清楚。

一家互联网金融公司的安全保护实践

有了这些信息,程序员就可以非常方便的知道,去哪行代码里面修改这个漏洞。然后我们下载了几个比较好的扫描工具,比如 Qualys,ZAP,AppScan 等,分别对我们的程序(绑定 OneRASP 探针)进行扫描,两天时间所有漏洞全部修复完毕。

通过这种组合扫描/修复的方式,对我们产品的安全性信心提高了很多,同时对 RASP 这种方式也充满了兴趣。扫描工具毕竟是只能针对固定的攻击手段,在实际的环境里攻击手段是多种多样的。很多攻击是有针对性的攻击,不是扫描工具能够覆盖的。

既然在监控模式下能检查出这么多的问题,能不能把它放在我们的生产环境呢?任何东西放入生产环节都是有风险的,可能影响我们系统的性能以及稳定性。为了避免这种风险,我们对注入 OneRASP 安全探针的系统进行为其两天的高并发性能和压力测试,结果和官方性能报告出入不大。对内存、CPU 和响应时间的影响在 5% 左右,没有发生系统崩溃和内存泄露问题。系统启动时间增加了 4% 左右,这种性能消耗完全可以接受。以下是性能数据:
内存影响:

一家互联网金融公司的安全保护实践

CPU 影响(我们这个程序对CPU使用比较高):

一家互联网金融公司的安全保护实践

我们将 OneRASP 应用到线上环境,为了避免误杀,启用了监控模式运行了大概一个礼拜。结果真是让我们大吃一惊,一个礼拜的时间发现了不少攻击行为,幸好问题都不算太严重。在确认没有误杀的情况,我们开启了保护模式。到现在为止基本没有导致性能和系统问题,防护效果也挺不错。下图是初期监控模式下,半个小时的攻击情况:

一家互联网金融公司的安全保护实践

经过这么多的尝试,发现将 OneRASP 的产品和扫描工具结合起来,应用在开发和测试阶段,是一种有效的渗透检测手段。目前我们在持续使用,很容易上手,不需要专业的安全管理人员,而且不需要购买额外的服务器和修改任何应用程序代码。

重点是,目前还免费开放使用,这对我们这种创业公司来说,是非常赞的。OneRASP 在非常短的时间里,可以将代码安全等级提升一个档次。不过唯一的代价,就是额外消耗一些系统资源。不足的地方就是,现在支持的保护规则偏少,只有 XSS、SQL 注入、已知漏洞扫描工具检测等6 种。而且页面设计交互性不强,没有自定义规则等。不过对于大多数创业公司来讲,第一阶段的应用防护应该够用了。

【编者按】本文经过作者同意,已经授权 OneAPM 官方技术博客进行转载和发布。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容