与web应用相比,移动应用的安全实践有什么不同?
我向Jeffery Payne和Dan Cornell问了此问题,Jeffery Payne是软件咨询机构Coveros的CEO,Dan Cornell是位于德克萨斯州,圣安东尼奥的安全咨询公司Denim Group的总裁。这两个位安全专家在最广泛的意义上,对安全规则进行了强调,这些安全规则既适用web应用,也适合于移动应用开发项目。
从威胁建模、到源代码分析和渗透测试,软件团队应该采取措施来确保应用程序的整个生命周期的安全,包括策划、编码、测试和部署,Payne和Cornell说。
但是他们也指出的一些关键的方法,使移动应用引入新安全挑战两位专家对于应用安全的一些看法。
Jeffery Payne:当涉及到安全时,软件就是软件,而且运用所有平常的规则。移动应用改变的一件关键事情是,我们使用它的方式。这应用运行在智能手机上,然后我们可以把手机装在口袋中,我们走路的时候也一直带着它。但我们的手机很容易丢失或被偷,这是最大的安全所在。
也就是说,开发人员要仔细考虑移动应用存储数据的方式,这样当有人拿走你的手机,也不能轻易访问那些数据。最佳实践包括加密敏感数据——即信用卡号码、客户信息和社交安全密码。做这些已经足够了,但是移动应用迫使开发人员思考移动设备可用环境下的安全性;屏幕很小,键盘受限,用户一直在使用。我们越是锁定安全性,移动应用就越难以使用。从事web应用的开发人员不必在这个问题上费心。
另一个选择是将数据存储在随机存取存储器(RAM),这里应用程序可以轻易访问,但却隐藏于视图之外。在此情况下,确保应用从RAM中自动清除数据很关键——除去这一点,它几近完美。
Dan Cornell:对于移动应用,软件开发团队可以采取的最重要安全措施是,进行小组练习,小组成员映射出移动应用组件,创建出可视的系统和数据库的描述图,移动应用借此来彼此沟通。可视化的方法是非常有效的,因为它允许开发人员和测试人员知道数据流是如何通过应用程序的,了解到哪一点是必须确保安全的。
这种练习的附加好处还有,它准确地传达了企业移动应用程序的复杂性,这帮助团队成员超越了传统的思想,即移动应用是小的、简单的。这对于第一代移动应用来说,可能是对的,第一代移动应用只执行一个简单的任务,而不会能企业应用中访问数据。但今天开发的移动应用很重要。图表方法也允许团队思考移动应用应该在哪里存储数据。对于计划阶段中,讨论每一点上的风险和好处很重要,因此在应用完成后,进行架构修改不仅费时,而很昂贵。