基于移动应用安全风险分析与策略的研究
2019-01-30王晖
文/王晖
1 引言
随着移动智能终端的普及和移动互联网新技术的快速发展,石化油品销售企业为加快转型发展积极适应移动互联需求,建设面向客户的移动应用系统。坚持“以客户为中心”的理念,建立互联网模式的营销模式,构建融入互联网思维的移动应用平台,有效提高客户黏性,优化客户数据模型,强化客户服务能力,进一步提升企业竞争力。移动应用在给企业、客户产生效率和便捷的同时,移动应用的安全问题也日益凸显。如何解决移动应用业务场景中所面临的安全风险,将是企业在互联网时代运营的严峻挑战。
2 典型漏洞分析
结合销售企业面向客户移动APP的业务场景,对典型应用漏洞进行分析,主要包括以下六种类型漏洞。
2.1 数据遍历
在面向客户的移动APP中,会员管理模块中通常含有客户姓名、身份证号码、手机号、加油卡号等基本信息。攻击者通过注册APP账号登录系统,利用Burpsuite工具进行流量劫持,通过修改登录请求中返回的用户ID进行遍历,即可获取和查看所有用户信息,从而造成严重的客户信息泄露的事件。
2.2 数据篡改
在移动APP的支付环节都有严格的逻辑判断和校验机制,但是在其他不涉及金额的功能模块中可能会被忽视。如积分兑换模块中,开发人员忽视了对积分数据类型、长度进行严格限制,缺乏对数据间关联的逻辑判断和验证。攻击者抓取数据包,利用这些逻辑漏洞对积分数据进行任意修改,从而造成客户相关数据被恶意篡改。
2.3 文件上传
在会员管理模块中通常预留会员头像上传的功能。如果服务器端没有对上传数据格式、大小及内容进行严格限制,将导致存在任意文件上传的漏洞。攻击者抓取上传头像的数据包,修改上传路径并上传木马文件,通过系统提权等方式从而达到入侵和控制服务器的目的。
表1:移动APP应用威胁分析
2.4 静态破解
静态分析方式对通过词法分析、语法分析、控制流、数据流分析等技术验证代码中存在的结构性漏洞、安全漏洞等问题。一方面通过静态分析在关键位置通过代码注入技术跟踪代码执行逻辑,另一方面通过逻辑判断的返回值,破解未加密或简单加密的移动应用,可能会导致用户密码、配置文件、资源文件等重要信息的暴露。
2.5 短信轰炸
由于短信平台没有对发送的号码进行次数限制或者时间范围进行限制,从而攻击者可以利用截获发送短信的数据包,进行多次重发包便可发起短信轰炸攻击。
2.6 越权漏洞
由于开发人员的疏忽,在进行增删查等操作时没有严格判断数据所对应的客户。如领券中心模块中,由于客户查询权限限制不严,导致可越权查询其他客户的电子抵扣券等信息,从而可以冒用、盗用其他客户电子券。
3 基于威胁建模的风险管理流程
基于威胁建模的风险管理流程,采用STRIDE模型,结合移动应用场景对每个数据流进行分析,识别数据流之间的关联关系和威胁,通过威胁发生的可能性对移动应用造成危害的严重程度进行量化,从而对系统的整体风险进行管理。
主要流程如下:在熟悉移动应用功能和多样化的业务应用场景基础上,分析业务操作数据流,确定数据流之间的关联性。建立威胁建模模型,根据威胁建模识别系统脆弱性和风险,确定风险和影响分析,最后,制定风险消减措施及漏洞修复建议。
图1:业务场景的数据流分析
3.1 业务场景划分
销售企业移动APP应用场景主要有:油卡服务、领券中心、客户服务、营销活动、易捷商城、支付服务、积分服务、会员中心等模块。了解和熟悉每个应用场景和功能,模拟每个应用场景,根据不同的业务操作处理,在APP客户端处理、传输、存储信息的过程划分为不同的数据流。
3.2 分析业务操作数据流
威胁分析中采用数据流图,体现与系统发生交互的外部实体之间的数据流关系。系统整体业务场景数据流是指系统所有业务场景与外部实体交互的数据流。如APP登录、下单、支付等环节。总体上对数据流进行分析,然后按照业务场景进行细分,对单个业务场景的每一个交互过程继续细分。在此基础上,针对单个业务场景划分二层数据流。按照这种思路,持续的业务场景细分,使得颗粒度更细,分层的数据流更加细化。如图1所示。
3.3 业务场景威胁建模分析
业务场景威胁建模分析采用STRIDE模型,从欺骗、篡改、否认、信息泄露、拒绝服务、权限提升六个方面分析威胁。结合业务场景的数据流,移动APP应用威胁分析如表1所示。
3.4 识别脆弱性和风险
根据威胁模型分析,识别移动应用的脆弱性和风险。具体分为四类:常规安全、组件安全、数据安全、代码安全。
3.4.1 常规安全
SQL注入攻击、XSS跨站脚本攻击、命令执行、文件上传漏洞、中间人攻击、任意文件遍历/下载、逆向工程。
3.4.2 组件安全
组件暴露、拒绝服务、权限提升、手势密码认证绕过。
3.4.3 数据安全
(1)身份认证,未授权访问、缺少双因子认证、认证绕过;
(2)会话管理,会话标识可猜测、未设置会话超时机制、会话标识使用私有数据;
(3)敏感数据存储:敏感数据不安全存储、密钥编码、应用数据备份风险;
(4)敏感数据传输:数据明文传输、客户端未进行证书校验、敏感数据为双重加密传输。
3.4.4 代码安全
恶意程序攻击、钓鱼攻击、动态调试、不安全的第三方SDK包。
3.5 风险确定和影响分析
风险确定过程通常采用渗透测试和源码审计两种方式进行判断确认。从移动应用的入口,跟踪应用程序的数据输入,分析移动应用与外部系统、客户端及系统内部之间的数据交互过程。重点关注敏感数据传输过程及跨信任边界的数据流。
4 移动应用安全应对策略
4.1 全生命周期的移动安全体系
移动应用安全体系发展从普通的单点防御走向纵深的立体防御,整体上覆盖移动应用软件开发全生命周期,移动应用安全的防护更加趋向于“泛安全”管理。
全生命周期的移动安全体系覆盖移动应用的各个阶段:开发设计阶段、移动应用发布阶段、移动应用运维阶段、数据运营推广阶段。这个四个阶段形成闭环流程,持续循环完善移动应用的安全体系建设。
4.2 发挥数据价值驱动安全
发挥数据的价值,以数据分析作为安全响应和安全策略的源头,数据驱动的安全感知、威胁情报触发的安全防护。结合业务场景构建威胁分析流程,基于威胁模型生成威胁指数,建立用户、环境、行为的可信度,通过自我学习不断提升,从而实现移动应用的本质安全。
5 结束语
移动应用安全作为移动互联网时代信息安全重点关注方向,信息安全的应对策略也正在发生的转变:从已知威胁到未知威胁,从单点安全到纵深防御,从策略驱动到数据驱动,从安全工具到安全服务。在新的发展趋势下,销售企业在适应互联网新零售业态的驱动下,建设面向客户的移动应用系统,建立基于威胁建模的风险管理流程,不断优化完善移动应用的安全管理体系,达到保护数据安全的最终目的。