如今大多企业员工几乎每天都需要用到移动端的某些应用来完成相关工作,但是一旦恶意攻击者盯上了你手机上的某个应用,那么设备遭受攻击所带来的影响可能就是连锁式的。
一、五大危害企业的移动端威胁
Lookout产品总监David Richardson和他的团队研究总结出五大移动端恶意软件家族,冒充真正的企业应用,引诱员工下载恶意软件。研究显示,这五个活跃的移动恶意软件家族通常通过窃取合法应用的名称和包名称来模拟一些企业应用,例如思科的商务电子邮件应用、ADP、Dropbox、FedEx Mobile、Zendesk、VMware的Horizon Client、Blackboard的Mobile Learn等等。
1. Shuanet
Shuanet能够将其自身自动安装在设备的系统分区上,获得设备root权限,达到进一步安装其它应用的目的。这些应用程序可能是恶意的也可能是良性的,推送至手机,提高恶意软件的下载几率。Shuanet可能也会向设备推送各种小广告。
企业将面临的风险
被root设备的安全状态已经发生改变。很多人会利用root权限对设备进行自定义设置,但是他们往往都不会去做安全性的合理配置,可能也不会进行定期的软件更新。另外,Shuanet这样的恶意软件会在系统分区中自动安装,即使恢复出厂设置也难以去除。最后,安装应用的恶意软件可能会将更多的恶意应用程序植入该设备,使设备及数据暴露在更高的风险中。
受害应用程序举例:ADP Mobile Solutions、CamCard Free、Cisco Business Class Email(BCE)、Duo Mobile、Google Authenticator、VMWare Horizon Client、Zendesk、Okta Verify。
2. AndroRAT
AndroRAT开发初衷是完成一个大学研究项目——创建一个“远程管理工具”,允许第三方控制某设备并从麦克风收集联系人、通话记录、短信、设备位置和音频等信息。但是该工具目前被一些不法份子恶意利用。
企业将面临的风险
隐藏的远程访问软件能够帮助攻击者轻易地从移动设备获取到企业和个人的数据。另外,对某个移动设备的持续性远程访问也会帮助攻击者对感染设备所连接的公司Wi-Fi和VPN展开入侵行动。
受害应用程序举例:Dropbox、Skype、Business Calendar
3. UnsafeControl
UnsafeControl能够收集联系信息并将其下载到第三方服务器,还能够对联系人列表发送垃圾邮件或向其命令和控制(CNC)服务器指定的电话号码发送短信。消息内容也由CNC控制。
企业将面临的风险
像UnsafeControl这样的恶意软件能够窃取联系人信息,这对很多企业来说都属于敏感信息。比如,销售总裁或副总设备上的联系人信息就是一个公司极大的竞争优势与虚拟财富。
受害应用程序举例:FedEx Mobile、Google Keep、远程VNC Pro、Sky Drive、PocketCloud、Skype
4. PJApps
PJApps可能会收集并泄露受害者的电话号码、移动设备的唯一标识符(IMEI)及位置。为了扩大非法盈利范围,它也可能会向一些优质的短信号码发送钓鱼信息。另外, PJApps也能够进一步下载应用程序到相应设备。
企业将面临的风险
像PJApps这样的恶意软件通常利用其功能来获取收益,但同时也具有一定技术相关性,例如手机位置信息带来的威胁,尤其是针对高管们的移动设备。这些信息可能关乎企业的商业计划。该恶意软件将其它应用程序下载至设备的功能其实也为新型恶意软件进入设备提供了通关密语。
受害应用程序举例:CamScanner
5. Ooqqxx
Ooqqxx实际是一个广告网络,将广告推送至通知栏,发送弹窗广告,在主屏幕上创建快捷方式,未经许可下载大型文件。
企业将面临的风险
这些广告会往往会打断员工的正常工作,员工因此可能也会向IT部门提出改进意见,这些行为都在一定程度上影响了公司员工的工作效率。Time is money!
受害应用程序举例:Mobile从Blackboard、Evernote、PocketCloud、Remote Decktop、Adobe Reader、aCalendar
二、从开发者角度谈移动端威胁的安全防御措施
每个人的手机、iPad等智能设备上大概都有26-55个应用程序,通常包括以下这些类型:娱乐和游戏、银行app、一些社交媒体app、瘦身塑形的软件以及网购应用等。
如果只是普通的游戏软件遭到攻击,你也许不会在意。但事实上,很多应用其实都收集了很多你不想让别人看到的个人信息,比如你的位置、银行卡信息和某些照片。
从开发的角度来看,你必须通过某些协议确保应用程序的代码不被黑客入侵。Codal首席执行官Keval Baxi主要从开发者的角度给出了一些保护手机应用安全的干货建议。
1. 使用基于令牌的身份验证方式访问API
很多移动应用程序都没有设计恰当的身份验证方法,这种行为的本质其实就是数据泄露。“令牌”是指一些本身不带任何意义的数据,但令牌系统准确率高,它是保护移动端应用程序的关键方式。基于令牌的身份验证需要验证每个向服务器发送的API请求的真实性,只有通过验证程序才会对请求作出响应。
2. 使用Android KeyChain和iCloud Keychain存储敏感信息
移动设备上的keychain是一个安全的存储容器,能够保存所有应用程序的登录名、用户名和密码等数据。建议开发人员充分利用操作系统的这一功能进行数据存储,而不是通过p-list文件或NSUserDefaults来存储。使用keychain功能也可以为用户带来便利,不需要每次登录都输入用户名密码。
3. 在本地数据库中保存用户数据时对数据进行加密
加密是将数据和明文转换为“密码”的过程,也就是密文。要想读取密文就必须经过解密或使用密钥的过程,因此加密数据保护最有效的方法之一。
4. 登录应用程序时选择指纹锁而不是用户名和密码
苹果公司研究人员表示,指纹匹配的概率是1:50000,而四位数密码的匹配概率是1:10000。因此指纹登录比使用传统密码的方式更加安全。指纹是每个用户独特的生命体征,而密码不是。在iOS版本8之前,苹果公司为开发人员开通了Touch ID的权限,API能够在SDK(软件开发工具包)中使用。
5. 可疑活动的实时通知
当用户在新的设备或新的未知位置登录某应用程序时,可以通过电子邮件或推送通知向用户发送登录异常的消息,完成验证过程。很少会有应用程序达到这一要求,而Gmail是其中之一。登录验证通知能够让用户获知他的账户是否遭到了非法入侵。
6. 始终使用https(SSL)
将SSL安装到服务器后,开发人员就能够使用HTTPS协议,该协议安全性高,有助于防止入侵者干扰应用程序及其服务器之间的数据传输。
7. 提防逆向工程
开发人员对应用程序进行逆向工程、把数据和源代码移走也不是不可能发生的事。为了防止这种情况的出现,你可以通过更改预处理器中重要类别和方法的名称来迷惑黑客。第二个办法则是在项目完成后对符号表进行拆分。