前言
互联网金融是这两年来在金融界的新兴名词,也是互联网行业一个重要的分支,但互联网金融不是互联网和金融业的简单结合,而是在实现安全、移动等网络技术水平上,被用户熟悉接受后,适应新的需求而产生的新模式及新业务,用户对电子银行最大的关注点是“安全性”,安全是电子银行业务发展的生命线。在一些金融平台陆陆续续出现过安全问题后,越来越多的此类平台也逐步意识到安全的重要性。我们曾经受邀请检测过网上部分互联网金融交易平台,在检测的过程曾发现部分平台存在着严重的安全问题。在本期的技术专题中,我们将针对所发现过的一些常见的安全问题进行总结,同时提出相应的解决方法,希望对开发的人员的代码安全能力提高有所帮助。
为什么开展渗透测试
渗透测试对企业至关重要,因为银行、保险、股票交易所等金融部门希望其数据得到保护,渗透测试对于确保安全至关重要。如果软件系统曾被黑客入侵,并且组织想要排除系统中是否还存在任何威胁,以避免将来再出现黑客攻击。主动渗透测试是防范黑客的最佳保障。
渗透测试的类型
渗透测试类型通常取决于范围以及组织是否要模拟员工、网络管理员(内部源)或外部源的攻击。渗透测试分为三种类型,分别 是黑盒渗透测试、白盒渗透测试、灰盒渗透测试。在黑盒渗透测试中,测试人员不了解要测试的系统,他们负责收集目标网络或系统的有关信息。在白盒渗透测试中,通常会为测试人员提供要测试的网络或系统的完整信息,包括IP地址架构、源代码、操作系统详细信息等。这可以被视为任何攻击的模拟内部资源(组织的雇员)。在灰盒渗透测试中,为测试者提供系统的部分知识。它可以被视为外部黑客的攻击,他们获得了对组织网络基础架构文档的非法访问权。
如何进行渗透测试
以下是执行渗透测试需要执行的活动:
1、前期交互和情报收集阶段
介绍和解释可用的工具和技术,根据客户需求为客户提供量身定制的测试方案。确定项目范围,项目范围圈出了要测试的内容。我们只能对已授权的资产进行测试,未授权的资产不能进行任何测试。确定周期,起始和终止时间。根据测试内容,评估所需要花的时间。收集渗透对象的信息(网络拓扑、系统配置、安全防御措施等)。
2、威胁建模和漏洞分析阶段
利用上一阶段获取到的信息进行威胁建模和攻击规划。威胁建模;利用获取到的信息来标识目标组织可能存在的漏洞与缺陷。威胁建模有两个关键要素:资产分析和威胁分析。识别主要和次要资产并对其进行分类,并根据资产识别其可能存在的威胁。攻击规划;根据威胁模型确定下一步需要搜集的信息和攻击方法。漏洞分析是一个发现系统和应用程序中的漏洞的过程。这些漏洞可能包括主机和服务配置错误,或者不安全的应用程序设计。有些漏洞的验证,我们可以通过抓包改包很轻易的实现,但有些漏洞,验证的步骤很繁琐,则需要编写特定的概念验证(POC)来验证漏洞,这就要求测试人员有一定的开发能力。
3、漏洞攻击和后渗透攻击阶段
在验证漏洞存在后,接下来就是利用发现的漏洞对目标进行攻击了。漏洞攻击阶段侧重于通过绕过安全限制来建立对系统或资源的访问,实现精准打击,确定目标的主要切入点和高价值目标资产。为实现系统安全,系统往往都会采用诸多技术来进行防御,如反病毒(IPS、IDS、WAF、……)、编码、加密、白名单等,在渗透期间,则需要混淆有效载荷来绕过这些安全限制,以达到成功攻击的目的。后渗透攻击,顾名思义就是漏洞利用成功后的攻击,即拿到系统权限后的后续操作。后渗透攻击阶段的操作,可分为两种:权限维持和内网渗透。
4、报告阶段
报告必须包含详细的调查结果发现的漏洞风险及其对业务的影响建议和解决方案(如果有的话)
安全漏洞剖析
统计
我们对曾测试对约多家金融交易平台进行过一次漏洞统计,除了常见的一些如注入、跨站、CSRF、恶意上传等Web漏洞外,部分金融平台在业务功能上存在着严重的风险,如任意用户密码重置、交易参数恶意篡改等,与常见的注入、恶意上传不同,这些业务逻辑的漏洞不会直接影响服务器的安全,但却会直接影响用户的资金、账号的安全,其风险程度有过之而无不及,若被黑客所利用或被曝光,将严重影响平台公信力。 我们对常见的漏洞进行过统计,发现其中越权操作的占比最高,在我们所测试过的平台中基本都有发现,包括任意查询用户信息、任意删除等行为;最严重的漏洞出现在账号安全,包括重置任意用户密码、验证码暴力破解等。下面我们将以举例的方式介绍一些常见的安全问题。
案例
在金融交易平台中,该类型的安全漏洞主要出现在账号余额查询、账号个人资料篡改等功能上。下面我们通过几个简单的案例给大家进行说明。
1、任意会员登录
问题描述:可登陆任意会员账户,并成功登陆公司运营账户。
威胁等级:高
可利用性:易
步骤:任意填写手机号,抓包获取验证码。
安全建议:开发逻辑问题,登陆验证码泄露。
2、越权访问/操作
问题描述:在租赁意向单详情中,可以越权变更指派业务员。
功能模块:租赁意向单详情
测试地址:https://xxxxx.com/intentionreceipts/detail?id=xxxxxxx
通过测试发现在获取了salemanId(业务员id)和id(商品id)后,可直接变更指派业务员:
删除cookie后服务器返回指派成功
退出登陆,清除浏览器cookie,利用hackbar插件发送POST请求:
发现服务端返回指派成功的json:
风险程度:【中危】
风险分析:攻击者可利用该漏洞,对派单业务进行干扰。
3、Cookie重用
漏洞描述:用户退出系统后,服务器端cookie未失效,攻击者可利用此cookie向服务器继续发送服务请求。
测试地址:
https://xxxxxx.com/account/changePassword
首先登陆查看cookie和密码
Cookie: JSESSIONID=EFFE9CCA7502B277B4CFB80446B3C062;
密码:1
对重置密码业务进行抓包
然后先进行登出操作:
之后使用burpsuite发包发现302重定向之后又303,一直随后返回状态码200:
最后返回第一步修改密码的数据包点击go,发现服务器返回修改成功的json:
清除浏览器cookie后登陆:
发现密码已被重置为5
继续测试刚才截获的数据包:
发现仍可重置密码
观点
随着社会的进步,互联网金融交易平台将会越来越流行,平台涉及用户信息、资金等敏感信息,因此平台安全性更应受到重视,开发商必须加强开发人员的代码安全意识,建立代码安全开发规范,同时结合第三方渗透测试和代码审计的方式对即将上线的系统进行测试,提高平台的安全性。
来源:freebuf.com 2021-04-30 12:58:33 by: yudun2019
请登录后发表评论
注册