金融行业平台常见安全漏洞与防御

标签: WEB安全 专题 互联网金融 | 发表时间:2015-03-18 06:09 | 作者:NSTRT
出处:http://www.freebuf.com

一、前言

互联网金融是这两年来在金融界的新兴名词,也是互联网行业一个重要的分支,但互联网金融不是互联网和金融业的简单结合,而是在实现安全、移动等网络技术水平上,被用户熟悉接受后,适应新的需求而产生的新模式及新业务,目前除了常见的网上银行、第三方支付,这两年很多的民间融资贷款平台也逐步兴起,像P2P网贷、众筹等。越直接涉及到金钱的业务就越敏感,这是众所周知的,平台的运作除了建立在强大的资金链之外,平台自身的公信力也是很关键的,在陆陆续续的一些金融平台出现过安全问题后,越来越多的此类平台也逐步意识到安全的重要性。

‍‍‍‍我们曾经受邀请检测过网上一些互联网金融交易平台,在检测的过程曾发现部分平台存在着严重的安全问题,在本期的技术专题中我们将针对所发现过的一些常见的安全问题进行总结,同时提出相应的解决办法,希望对开发的人员代码安全能力有所提高。

二、安全漏洞剖析

2.1统计

我们对曾测试对约多家金融交易平台进行过一次漏洞统计,除了常见的一些如注入、跨站、CSRF、恶意上传等Web漏洞外,部分金融平台在业务功能上存在着严重的风险,如任意用户密码重置、交易参数恶意篡改等,与常见的注入、恶意上传不同,这些业务逻辑的漏洞不会直接影响服务器的安全,但却会直接影响用户的资金、账号的安全,其风险程度有过之而无不及,若被黑客所利用或被曝光,将严重影响平台公信力。

‍‍‍‍我们对常见的漏洞进行过统计,发现其中越权操作的占比最高,在我们所测试过的平台中基本都有发现,包括任意查询用户信息、任意删除等行为;最严重的漏洞出现在账号安全,包括重置任意用户密码、验证码暴力破解等。下面我们将以举例的方式给介绍一些常见的安全问题以及其解决方法。‍‍‍‍

2.2越权操作

漏洞描述

平行权限越权操作其实是一种较为常见的安全漏洞,在OWASP Top 10中也有所提及,分别为不安全对象引用和功能级别访问控制缺失。

‍‍其中不安全对象引用指的是平行权限的访问控制缺失,比方说,A和B两个同为一个网站的普通用户,他们之间的个人资料是相互保密的,A用户的个人资料可以被B用户利用程序访问控制的缺失恶意查看,由于A用户和B用户之间是一个同级的账号,因此称为平行权限的访问控制缺失。功能级别访问控制缺失指的是垂直权限的访问控制缺失,比方说,A账号为普通账号、B账号为管理员账号,B账号的管理页面时必须是以管理员权限登录后方可查看,但A账号可通过直接输入管理页面URL的方式绕过管理员登录限制查看管理页面,由于A用户和B用户的权限是垂直关系,因此称为垂直权限的访问控制缺失。该类型属于业务设计缺陷的安全问题,因此传统的扫描器是无法发现的,只能通过手工的渗透测试去进行检查。在金融平台中以平行权限的访问控制缺失较为常见。‍‍

案例

‍‍在金融交易平台中,该类型的安全漏洞主要出现在账号余额查询,账号个人资料篡改等功能上。下面我们通过几个简单的案例给大家进行说明‍‍

⑴ 任意修改用户资料

‍‍某交易平台的用户可以通过该系统的个人资料修改页面修改个人的昵称和头像。‍‍

‍‍截取发送修改请求的数据包抓取进行分析。我们发现在提交的过程中,其实请求自带了一个隐藏的参数investor.loginName,其实investor.loginName为登录的手机号码(或用户名),investor.Name为重置的用户名,通过直接修改掉参数investor.loginName为任意注册的用户名或者手机号码,即可成功篡改重置该用户的用户名。 ‍‍                  

   

⑵ 任意查询用户信息

‍‍在对金融交易平台测试的过程中,我们发现大部分平台并未对查询功能进行优化,使用用户的uid之类的账号标志参数作为查询的关键字,并且未对查询范围进行控制,导致出现任意信息查询的安全漏洞。该类型漏洞在手机客户端较为常见,如在某交易平台手机商城就发现了任意查询其他用户信息的安全问题。‍‍

当点击商城的个人资料修改处,系统会通过将当前用户的phone_client_uuid提交到服务器进行查询,调出个人资料的内容  ‍‍    

‍‍

‍‍但由于系统并未对该功能进行访问控制,导致可通过遍历uuid的方式查询平台中任意用户的资料,通过工具对phone_client_uuid的后5位进行爆破尝试,如下图: ‍‍    

‍‍‍通过对返回值的length进行筛选,发现成功爆破部分phone_client_uuid所对应的用户信息。 ‍‍

代码防护

针对平行权限的访问控制缺失,我们建议使用基于用户或者会话的间接对象引用进行防护,比方说,一个某个选项包含6个授权给当前用户的资源,它可以使用一串特殊的数字或者字符串来指示哪个是用户选择的值,而不是使用资源的数据库关键字来表示,数字和字符串的生成可以结合账号信息进行生成,使得攻击者难以猜测生成的方式。‍‍

针对垂直权限的访问控制缺失,我们建议可以使用缺省拒绝所有的访问机制,然后对于每个功能的访问,可以明确授予特定角色的访问权限,同时用户在使用该功能时,系统应该对该用户的权限与访问控制机制进行校对。‍‍‍

2.3任意重置用户密码

漏洞描述

在众多的交易平台中,NSTRT发现任意重置用户密码这类型的问题也较为普遍,主要是出现在密码找回、邮箱验证等方面,部分漏洞从技术原理来说上来说它与越权操作时相似的,即用户越权去修改其他用户的信息,如密保电话、密保邮箱等,由于它敏感性所以我们将它归纳成一类进行探讨。‍‍

案例

绕过短信验证码

基本所有的金融交易平台都有短信找回密码的功能,但部分短信验证的功能较为不完善导致可被利用重置任意用户的账号,同样是某金融平台的实际案例:

‍‍在已知对方用户名和手机号码的情况下,通过站点的密码找回功能可绕过短信验证码直接重置该账号密码。下图为密码重置页面:‍‍


‍‍‍‍该漏洞出现主要的原因在于开发人员在第二步设置新密码时服务端没有对手机验证码进行二次校验,导致当攻击者可以利用修改返回值的方式直接跳转到设置新密码页面,然后重置用户的密码。‍‍‍‍

短信验证码暴力破解

‍‍ 部分金融交易平台为了用户登录方便会设置短信验证码登录功能,但并未对验证码的登录错误次数进行限制,导致可利用验证码爆破的方式强行登录账号。在某证券交易平台就曾出现过该安全问题。‍‍

‍‍‍‍‍‍该平台使用6位数字随机验证码进行登录,但并未对登录错误次数和验证码失效时间进行限制,导致可以暴力破解该验证码强制登录账号。如下图:‍‍‍‍‍‍

‍‍‍‍‍‍同样是通过返回值的length字段进行判断是否登录成功。6位字段的爆破需要较长的时间,但4位验证码的爆破时间最慢也仅需要约5分钟左右。‍‍‍‍‍‍

代码防护

‍‍ 针对案例一中的漏洞,我们建议在第二步修改密码时服务端再次验证手机验证码,部分平台所采用的做法是,第一步验证码提交成功后,将验证码隐藏在一个“hidden”表单中,并在第二步修改密码中进行提交,服务端再次验证短信验证码,保证准确性,同时对验证码的错误次数进行限制,当验证错误超过特定次数,当前验证码无效。‍‍

针对案例二中的漏洞,我们同样建议随机验证码设置错误次数限制,当验证错误超过特定次数,当前验证码即无效。‍‍

‍‍ 2.4恶意注册‍‍

漏洞描述

恶意注册,是指攻击者利用网站注册功能的安全漏洞,注册大量的垃圾账号,导致系统增多大量无用数据。一般网站开发者为了防止恶意注册的行为,在注册页面均会在加入一些需要人工输入的步骤,比方说短信验证码,邮箱验证等。但是在对金融平台测试的过程中,同样也发现了部分验证功能可被绕过。‍‍

案例

注册数据包重放绕过验证码

‍‍部分金融交易平台为了保证注册用户的真实性,往往都会要求验证手机,并通过发送验证码的方式来保证注册账号并非僵尸账号,但是部分平台的验证码可被多次重放,导致可注册大量垃圾账号,在某交易商城的注册功能就存在该漏洞,下图为注册时需要给手机发送验证码的数据包:‍‍

‍‍短息码验证完后,直接注册写数据库,通过修改phoneNum的值可以实现批量注册账号:‍‍

‍‍通过修改phoneNum的值为15527xxxx96、15527xxxx97可成功注册这两个账号:‍‍

‍‍‍‍该漏洞出现的原因在于后台未校验验证码的使用次数和时间,只校验了其准确性,因此可被利用进行多次注册。‍‍‍‍

代码防护

‍‍ 目前遇到的大部分恶意注册类的安全漏洞均为验证码可被多次使用造成,我们建议后台对验证码的使用进行限制,任何的验证码应为一次性,防止验证码被多次使用。‍‍

2.5恶意短信

漏洞描述

‍‍ 恶意短信是一种类似于DDoS的攻击方式,他是利用网站的短信相关的功能,对用户的手机进行长时间的短信轰炸,导致手机瘫痪。除了单纯的短信轰炸之外,我们在测试过程中也发现,部分金融交易平台对所发送的短信内容也并没有进行限制,导致可被利用进行短信欺诈。‍‍‍‍

案例

短信轰炸

‍‍‍‍‍‍在测试的过程中,我们发现众多的金融交易平台仅在前端通过JS校验时间来控制短信发送按钮,但后台并未对发送做任何限制,导致可通过重放包的方式大量发送恶意短信。如某交易平台的手机注册处就出现过该类型漏洞。利用fiddler抓取数据包,并进行重放可以绕过前端的限制,大量发送恶意短信。‍‍‍‍‍‍


任意短信内容编辑

‍‍‍‍在某平台的修改绑定手机功能就曾出现过可编辑短信内容的问题。‍‍‍‍

‍‍‍‍点击“获取短信验证码”,并抓取数据包内容,如下图。通过分析数据包,可以发现参数sendData/insrotxt的内容有客户端控制,可以修改为攻击者想要发送的内容‍‍‍‍

‍‍‍‍将内容修改“恭喜你获得由xx银行所提供的iphone6一部,请登录http://www.xxx.com领取,验证码为236694”并发送该数据包,手机可收到修改后的短信内容,如下图:‍‍‍‍


‍‍‍‍该类型漏洞对系统的影响不大,但若被攻击者利用进行短信欺诈,将严重影响平台的声誉,甚至可能会惹上法律纠纷。‍‍‍‍

代码防护

‍‍针对恶意短信类的安全问题,我们建议可以通过以下两种方式进行防护:‍‍

‍‍

1、从服务端限制每个号码的发送频率和每天的发送次数,防止攻击者利用短信接口进行恶意轰炸。‍‍
‍‍2、发送短信的内容应直接由系统内部进行定义,客户端可通过数字或字符的方式,对所需要发送的内容进行选择,如messagetype=1 为密码找回,messtype=2为注册,然后通过数字来索引要发送的内容。

三、总结

‍‍ 随着社会的进步,互联网金融交易平台将会越来越流行,平台涉及用户信息、资金等敏感信息,因此平台安全性应更应受到重视,开发商必须加强开发人员的代码安全意识,建立代码安全开发规范,同时结合第三方渗透测试和代码审计的方式对即将上线的系统仅测试,提高平台的安全性。‍‍

如果你觉得这篇文章有用,可以分享给自己的朋友,同样希望更多的人也关注我们的微信公众号trt917和微博NSTRT团队,我们会定期分享一些信息安全相关知识,希望能够对大家有所帮助。

[作者/NTRST团队,由团队成员短信炸弹、EAST、Sampro编写,属FreeBuf原创奖励计划文章,未经许可禁止转载]

相关 [金融 行业 平台] 推荐:

金融行业平台常见安全漏洞与防御

- - FreeBuf.COM | 关注黑客与极客
‍‍ 互联网金融是这两年来在金融界的新兴名词,也是互联网行业一个重要的分支,但互联网金融不是互联网和金融业的简单结合,而是在实现安全、移动等网络技术水平上,被用户熟悉接受后,适应新的需求而产生的新模式及新业务,目前除了常见的网上银行、第三方支付,这两年很多的民间融资贷款平台也逐步兴起,像P2P网贷、众筹等.

传统金融行业如何应对互联网金融带来的挑战?

- - 知乎每日精选
作为 金融服务行业的正经从业人员,我想谈一下 金融服务这件事. @鲍淑玮 的答案中有一句话说的很对, 互联网金融作为一种创新,是一种形式上的创新而非对金融本质上的创新. 互联网金融服务想要单方面崛起甚至超过 传统金融服务,就我看来未来几年根本不可能. 最终之路一定是传统金融服务与互联网金融服务相结合,在这俩互掐之前,合作的走上“ 方便、快捷、靠谱”的道路.

金融行业 IT 运维监控体系的建设内幕

- - IT瘾-dev
多年运维经验的积累,往往己沉淀下来不少监控工具,同时也有不同专业线条的工具,在基础架构、系统网络、数据库、中间件、应用层面等采用不同的监控工具. 对于这些工具,通常采用以下方式处理:. 1)建立集中监控平台:在一体化运维体系中,监控平台贯穿所有环节,可以对生产系统涉及的各种环境的实时运行状况监控,监控平台事件驱动的特性也为一体化运维体系起到驱动的作用.

金融行业数据分类分级“五步走”|盾见

- - 机器之心
《数据安全法》明确提出,国家要建立数据分类分级保护制度,根据数据在经济社会发展中的重要程度,以及一旦遭到篡改、破坏、泄露或者非法获取、非法利用,对国家安全、公共利益或者个人、组织合法权益造成的危害程度,对数据实行分类分级保护. 国家数据安全工作协调机制统筹协调有关部门制定重要数据目录,加强对重要数据的保护.

理工科进入金融行业的几条常见可行的路子

- Ted - Warald美国留学申请就业信息咨询博客|一亩三分地论坛
前几年金融行业崩溃的时候,warald曾经发布过预警,后来又在博客里跟进发布了一些文章,比如金融形势刚开始有好转迹象,我就写了日志《金融行业开始复苏:美国10家大银行被允许提前还钱了》;后来还写过《 [Warald美国职业谈]由Quant的工资说起 – 谈一下专业/职业选择的一个问题》,这篇文章,尤其建议eecs的同学仔细读一下.

剖析大数据在金融行业的典型应用方向

- - IT瘾-bigdata
随着互联网新金融模式的兴起,传统的银行金融业面临着诸多挑战. 而大数据技术的发展和广泛应用,无疑是提供了一座极具价值的“金矿”,借助大数据技术,将分散在金融企业服务网络与IT系统中的海量信息与基于业务驱动的外部数据源融合,并结合金融行业的特点,以金融业务为核心,提升客户体验和客户价值、优化运营流程、预测营销效果、提升经营管理水平.

大数据平台在互联网行业的应用

- - CSDN博客综合推荐文章
本文是58同城信息系统部高级经理余中洋对大数据在互联网行业应用的总结. 以实际经验讲解了大数据从雏形到发展,以及发展过程中传统数据仓库到大数据平台的转化和大数据的可视化应用. 所有公司在一开始时,数据的建设都是比较落后的,但随着互联网的环境推动,以及公司计划2013年在纽约交易所上市,这时候面临一个很大的问题.

中国“名校俱乐部”毕业生流向:首选广东上海,教育行业火爆,金融持续“降温”

- - 21财经-数读
高考结束,下一件大事就是填志愿. 各大高校的毕业生就业去向成为重要指标,其中“九校联盟” (以下简称为“C9”)的毕业生就业表现无疑将被纳入重点考量范围. 作为国内首个顶尖高校联盟,组成C9的九所高校均为国家首批985工程重点建设高校,包括北京大学、清华大学、复旦大学、上海交通大学、南京大学、浙江大学、中国科学技术大学、哈尔滨工业大学以及西安交通大学.

​直播回顾,别再错过——基于AI平台解决电力行业偷漏电

- - 掘金 架构
错过上次直播的小伙伴们可以通过本文更加详细的了解 AI 解决电力行业偷电漏电问题及解决方案,并且本文增加了实际项目中的数据及模型详解,一定能让你有所收获. 基于场景的整体建模流程如下:. 通过自动化机器学习(AutoML)完成电力异常场景的易用、高效建模流程,利用人工智能算法平台实现模型数据的预处理、模型训练.

Google、Tesla进攻底特律,硅谷法则改造汽车行业:福特通用推App开放平台、丰田玩V2V…….

- - PingWest
2012年,主导汽车这一传统产业的是Elon Musk和他带着“硅谷范”的新型智能汽车公司Tesla Motors,Tesla的 S车型在年底被多家权威媒体评为年度车型,而传统的大佬们全都无缘这一殊荣,可以说是被Tesla结结实实的打了个耳光. 不过,巨头们无疑是也被这一下打醒了,他们意识到Tesla和Google这样的科技公司做汽车所证明的一个关键事实是: 在现在,汽车也要像其他的硬件一样,向着智能化、软硬件结合的方向发展,传统的经营战略已经难以为继.