移动APP安全评估1)范围开发单位统筹建设的1款移动APP软件(包括APP内嵌的安卓版和IOS版应用)以及APP管理平台。2)实施内容随着互联网时代的到来,智能手机和iPad等移动终端设备越来越普及,人们逐渐习惯了使用应用客户端上网的方式,而智能终端的普及不仅推动了移动互联网的发展,也带来了移动应用APP的爆炸式增长。这些海量的APP可能会面临如下威胁:图移动APP面临的威胁随着智能终端的不断普及,国内智能手机用户已经超过5亿,作为第一大系统平台的Android上,各类apk应用数量也在飞速增长。在应用数量和APP应用种类丌断扩大的同时,Android作为一个开放系统,各类应用安全问题也丌断的涌现,例如安装包逆向反编译,恶意代码注入,应用盗版,界面劫持,短信劫持,丌仁开发者的知识版权也无法得到保证,而丏还会导致用户的信息泄露甚至经济损失。手机应用的安全需求,已经成为整个应用市场发展面临的一个主要问题。虽然获知当前应用市场的安全现状,但由于手机应用安全的与业性,普通开发者和用户可能无法全面了解到apk中的安全风险和漏洞,难以对手机应用安全作出深入的评估分析,更加无法对其中的安全问题逐一解决,而与业的移劢应用安全工程师人才稀少幵丏成本较高,无法满足应用开发的实际需求。以AndroidAPP为例,其安全问题不容乐观。从漏洞类别来看,AndroidAPP漏洞中排在首位的是sql注入类漏洞,占比38.2%,其次是webview漏洞,占比35.4%,见图1.4。从漏洞风险级别来看,AndroidAPP中高危漏洞占20.7%,低危漏洞占79.3%,其中高危漏洞主要集中在webview系列和https证书未校验上。SQL注入类漏洞占比38.2%,主要是代码中未过滤用户输入,攻击者可通过提交恶意SQL查询语句达到其作恶目的。SQL注入虽大部分属于中低危漏洞,但仍可造成敏感数据、系统最高权限被窃取等问题。webview的一些高危漏洞,主要由代码中使用addJavascriptInterface等危险函数、使用不校验证书等因素导致。这些漏洞可远程执行代码,对用户远程安装恶意软件。Https相关的高危漏洞,主要由https使用ALLOW_ALL_HOSTNAME_VERIFIER等参数校验证书,没有对主机等信息进行校验导致,这些漏洞会引发攻击者轻易劫持https会话、嗅探用户密码和其他敏感信息等问题。图AndroidAPP漏洞类别占比图Androidapp的漏洞类型很多,如SQL注入、webview系列漏洞、文件模式配置错误、HTTPS不校验证书、拒绝服务攻击等,造成漏洞的原因可以归结为以下两类:1)APP开发者自身的问题a)编码不规范很多公司对编码规范没有要求,或APP开发者没有按照编码规范来进行编码,容易导致敏感信息泄露,比如日志打印问题、在发行版本中没有关闭日志打印功能等。b)安全意识不够很多android函数的参数需慎用,如常用函数open,如果设置mode参数为Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE,就容易泄露androidapp的数据。另外,接口处理需要更加严谨,例如暴露了一个接口,允许运行用户输入的信息,若对信息未做任何处理,就容易引起拒绝服务攻击等安全问题。2)Android上0day的发现Android上0day的发现,可导致AndroidAPP以前安全的功能变得不安全,在Android系统没有补丁的情况下,需及时在AndroidAPP上打补丁,但鉴于很多AndroidAPP开发者对漏洞信息不敏感等原因,并未做到及时修补,从而导致漏洞的存在。计划投入6名技术人员到移动APP安全评估中,并由省重点实验室的专家团队负责实施过程中技术问题的咨询与指导。由一名具有10年以上信息安全方面工作经验的高级工程师作为项目经理,具体负责该团队工作分工、工作的质量及进度控制,并与开发单位信息中心的联系人第一时间沟通安全服务中发现的问题以及整改的相关建议。云平台安全核查的人员安排如表所示:人员安排一览表姓名职务分工所属机构陈力帅组长实施计划和实施方案安全检查组朱晨鸣组员移动APP软件安卓版安全检测严丹组员移动APP软件IOS版安全检测闻宏强组员APP管理平台安全评估方案姓名职务分工所属机构鲍克组员APP管理平台安全评估赖海超组员拟对开发单位统筹建设的1款APP移动软件(包含APP内嵌的安卓版和IOS版应用)进行安全检测,检测其SQL注入、中间件/Server漏洞、XSS盲打后台、远程代码执行、接口权限控制、敏感文件备份、越权操作、弱口令等;对APP管理平台进行安全评估,评估其在身份标识和鉴别机制、授权访问和控制功能、安全审计功能、输入输出的数据验证功能、系统自动保护功能、会话管理等方面的安全控制措施,提供整改意见并出具检测报告。移动APP软件拟从安全检测、风险评估和漏洞扫描三方面对移动APP软件进行安全评估。a)安全检测安全检测是为了查看apk应用内部行为是否符合安全规范,这些内部行为可能导致信息泄露、权限混乱、带有敏感内容、带有病毒或者广告等,具体见表。安全检测一览表b)风险评估检测apk当前的实现可能面临的外部攻击风险,此类风险是目前apk应用环境中常见的安全隐患,可以利用其进行二次打包,盗取敏感数据等非法操作,具体见表。风险评估一览表c)漏洞扫描分析apk在业务实现中可被利用的技术漏洞,黑客可以通过这些漏洞直接对应用进行攻击,越权操作,破坏应用等,具体见表1.19。漏洞扫描一览表APP管理平台依据《GB/T18336信息技术安全技术信息技术安全性评估准则》和GB/T22239-2008《信息安全技术信息系统安全等级保护基本要求》检测APP管理平台在身份标识和鉴别机制、口令复杂度检查功能、登陆失败处理功能、授权访问和控制功能、敏感信息标记功能、安全审计功能、输入输出的数据验证功能、系统自动保护功能、敏感数据传输和存储过程中的加密功能、配置管理、会话管理、异常管理等十二方面的安全控制措施。具体见表。APP管理平台检测一览表序号测评指标测评项检查方法1身份鉴别a)应提供专用的登录控制模块对登录用户进行身份标识和鉴别;a)检查应用是否有登陆模块;b)检查用户是否可通过该模块进行身份鉴别。b)应提供用户身份标识唯一检查功能,保证应用系统中不存在重复用户身份标识。a)向管理员询问用户的唯一身份标识符,并新建一个与现有用户身份标识符重复的用户。2口令复杂度检查a)应提供用户身份鉴别信息复杂度检查功能,保证应用系统中身份鉴别信息不被冒用。a)检查用户口令是否有复杂度要求;3鉴别失败a)应提供登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施。a)输入错误口令,检查登录失败的处理方式;b)访谈管理员多次登录失败后的处理措施并验证;c)访谈管理员系统是否提供超时退出功能并验证。4访问控制a)应提供访问控制功能,依据安全策略控制用户对文件、数据库表等客体的访问;检查是否提供访问控制权限配置模块;序号测评指标测评项检查方法b)访问控制的覆盖范围应包括与资源访问相关的主体、客体以及它们之间的操作;检查访问控制覆盖范围是否包括所有用户、功能模块;c)应由授权主体配置访问控制策略,并严格限制默认账户的访问权限;a)检查应用的系统的权限分配策略是否由系统管理员完成;b)检查新建账户的权限;d)应授予不同账户为完成各自承担任务所需的最小权限,并在它们之间形成相互制约的关系。a)检查系统管理员与普通用户的权限是否互相制约,是否可根据角色为账户授权。5安全审计a)应提供覆盖到每个用户的安全审计,对应用系统重要事件进行审计;a)检查系统是否提供日志记录模块,可记录管理员、普通用户的操作记录;b)审计内容应包括重要用户行为、系统资源的异常使用和重要系统命令的使用等系统内重要的安全相关事件;a)检查系统审计内容是否包括重要用户行为、系统资源的异常使用和重要系统命令的使用等系统内重要的安全相关事件;c)审计记录应包括事件的日期、时间、类型、主体标示、客体标示和结果等;a)检查系统操作日志,是否包括事件日期、时间、发起者信息、类型、描述和结果等。d)应提供对审计记录数据进行统计、查询、分析以及生成审计报表的功能。a)检查是否有对审计记录数据进行统计、查询、分析以及生成审计报表的功能。6输入数据验证a)应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的数据格式或长度符合系统设定要求。a)对系统中关键输入边界值进行检查,是否对数据格式或长度进行校验。7系统自身保护a)应提供自动保护功能,当故障发生时自动保护当前所有状态,保证系统能够进行恢复。a)模拟断网、断电等故障,检查应用系统在故障发生时,能否保证基本功能的实现;序号测评指标测评项检查方法8会话管理a)当应用系统的通信双方中的一方在一段时间内未作任何响应,另一方能够自动结束会话。a)检查应用系统通信长期没有响应后是否自动结束;3)交付成果《移动APP软件安全评估报告》《APP管理平台安全检测报告》