2014互联网产品安全报告(2)

http://www.itjxue.com  2015-05-14 09:48  来源:IT教学网  点击次数: 

短信验证是最易受攻击的安全功能
在统计中高风险漏洞中,与手机短信相关的漏洞占比高达13%。在所有安全功能中风险最高。手机短信验证功能是一个系统为了验证用户身份而增加的安全功能,但是这个安全功能本身却带来了一些直接的安全风险。在手机短信验证功能出现的风险类型中,最常见的有手机短信炸弹、手机短信验证流程绕过、手机短信破解、手机短信重复利用这几个问题。
 
用户登录功能也是安全重灾区
在互联网金融系统中,用户登录功能是一项重要的系统安全功能之一,也是账号安全的第一道防线。遗憾的是,这一防线在很多地方都不够强大,导致攻击者往往能够有机会突破这一防线,形成各种各样的攻击。
用户登录功能处常见的安全风险主要包括暴力破解、登录流程绕过、用户信息泄露、批量账号锁定等。
大多数地方的用户登录功能都有各种类型的验证码校验,但是根据统计发现,很大一部分的登录验证码校验存在安全缺陷,导致攻击者可以绕过验证码进而执行暴力破解。
在大量用户信息被泄露的今天,账号的安全非常重要。在之前大量用户数据泄露之后,暴力破解用户账号密码的成功率越来越高。因此,账号和登录的安全值得我们重视。
互联网金融开发安全分析
 
互联网金融安全领域还不成熟
考虑到互联网金融行业的门槛低,效益高的特点,互联网金融行业在近几年呈大幅度的增长态势。在金融行业,银行使用的各种网银系统都已经经过了多年的安全检测,在安全性上已经有了明显的进步。但是互联网金融的各个平台都还比较年轻,很多企业还没有对自己的安全风险有足够的认识。例如:2014年上半年, 国内互联网安全问题反馈平台乌云曝出某p2p平台系统存在严重安全漏洞,称“系统任意上传漏洞涉及涉及金钱交易数千万”,据统计,该漏洞涉及的国内网贷平台不少于15家。
互联网金融的研发团队大多都是新建立的团队,开发规范不够健全,开发人员的经验和安全意识也大多参差不齐。
 
紧急项目增加安全风险
有很多企业在进入互联网金融行业的时候,没有给系统的开发预留足够多的时间,导致出现了大量的快速开发现象。安全分析是一项需要耐心而又细致的工作。快速开发可能会导致开发人员为了进度而放弃安全上的考虑。同时,在进度的压力下,测试人员更多的会考虑系统的可用性,在安全上的测试则难以顾及。
 
互联网金融安全开发保障
我们不仅希望自己更少遇到风险,更希望自己遇到风险之后能够有足够强的能力应对。针对一个企业来说,开发人员应该通过安全培训来具备足够强的安全风险意识和安全开发能力。对于企业的安全管理,应该要具备一套健全的安全开发规范制度和系统上线运营安全流程。在一个互联网金融的项目上线之前,应该做好完善的安全准备,建立各个层面的安全防线,从项目的各个阶段引入安全控制,从源头上来避免安全风险。一个完善的开发项目应该引入SDL(Security Development Lifecycle,安全开发生命周期)流程,从安全风险管理的视角来避免安全风险。
SDL从需求阶段、设计阶段、实施阶段、测试阶段和发布响应阶段来引入安全管理。SDL的各个阶段相关内容可参考下图:

互联网金融安全防御
在各种类型的安全漏洞中,大多数常规的安全漏洞(例如XSS、SQL注入等)能够使用Web应用防护设备等措施来进行通用的防护,但是业务设计缺陷造成的漏洞无法用这些措施来进行通用的防护,唯一解决方案就是从设计上避免它、在代码上修复它。
为了让互联网金融的研发团队能够避免重蹈覆辙,绿盟科技NSTRT报告曾经对最常见的一些业务设计缺陷做了详细的介绍 ,并一一给出了对应的防护方案,这里提要如下:
 
越权漏洞代码防护
针对平行越权漏洞,我们建议让访问和操作的对象增加用户属性,当对目标对象进行访问和操作时,服务端对会话和对象的用户属性进行校验,通过校验后再执行读取和操作。
针对垂直越权漏洞,我们建议使用默认拒绝所有的访问机制,然后对于每个功能的访问,-明确授予特定角色的访问权限,同时用户在使用该功能时,系统应该对该用户的权限与访问控制机制进行校对。
 
任意用户密码修改
针对重置密码功能中的任意用户密码重置问题,首先要保证短信验证码校验功能本身的安全,给随机验证码的认证次数设定限制,当认证超过次数限制则使当前验证码失效。其次,要保证短信验证码的验证流程不会被绕过,在短信验证通过之后重置密码操作时,需要从服务端会话信息来判断用户是否经过了短信验证码的校验。最后,要保证重置密码功能不能被换位使用,重置密码的目标账号不能从客户端参数中获得,而应该从服务端会话信息中获得。
 
恶意注册代码防护
恶意注册漏洞一般是由于手机短信或邮箱认证功能存在缺陷或能被恶意利用导致。在设计注册功能时,要注意对手机短信或邮件的错误认证次数设置限制。尤其要注意邮箱认证内容要具备不可预测性。在经过手机或邮箱认证后,要保证注册的目标账号为会话中保存的认证的手机或邮箱。
 
恶意短信代码防护
针对恶意短信类的安全问题,我们建议可以通过以下3种方式进行防护:
1、 从服务端限制每个号码的发送频率和每天的发送次数,防止攻击者利用短信接口进行恶意轰炸。
2、 在发送短信之前要求经过图形验证码的认证,防止攻击者遍历手机号来发送短信。
3、 发送短信的内容应直接由系统内部进行定义,客户端可通过数字或字符的方式,对所需要发送的内容进行选择,如messagetype=1 为密码找回,messtype=2为注册,然后通过数字来索引要发送的内容。
 
结束语:
在曾经很长一段时间,金融行业中最典型的网银系统经历了多年的安全教训和考验。如今,我们欣然看到多年前那些常见的高危漏洞在网银系统中已经很难被发现。
曾几何时,互联网金融浪潮给金融行业带来了一轮新的风雨。它比网银系统更加开放和多样化,自身风险更高,防护起来更加复杂。2014年的各大安全事件让我们认识到,在商业利益驱动下,风险来得比大家想的还要快。
捻乱止于河防。在2014年对互联网金融行业的信息安全领域依然缺乏足够的监管,但我们相信,在各方的努力下,互联网金融行业一定能够变得安全、健康。

(责任编辑:IT教学网)

更多