Skip to main content

了解移动应用程序安全工程

学习目标

完成本单元后,您将能够:

  • 说明应用程序开发和应用程序安全之间的区别。
  • 识别应用程序开发人员面临的安全挑战。
  • 列出与移动应用程序安全工程师相关的关键技能。

应用程序开发和应用程序安全

并非所有移动应用程序(应用程序)开发人员都是移动应用程序安全(移动应用程序安全)工程师,反之亦然。虽然每个人都可能有其他方面的背景,但是角色期望不同。应用程序开发人员的典型职责包括编码、设计、管理、故障排除、监视更新和可能的安全威胁,以及为应用程序提供最终用户支持。

另一方面,作为移动应用程序安全工程师,您需要在软件开发生命周期 (SDLC) 的软件创建和开发阶段设置安全控制和设计要求。你还帮助执行应用程序的威胁建模和风险评估。您可以使用各种工具测试移动应用程序,以确保在应用程序公开前解决这些安全问题。您还可以在移动应用程序发布后对其进行监控,以识别和解决任何新的或以前未检测到的安全漏洞。 

应用程序安全困境

开发过程通常侧重于快速将应用程序推向市场并构建新功能,而不一定是安全性。更重要的是,组织专门用于确保移动应用程序安全的预算有限。此外,许多组织不会扫描或测试其移动应用程序中的代码是否存在安全漏洞、意外使用情况或隐藏功能。 

另一个挑战是开发人员可能不了解他们正在使用的基础平台。为了适当确保移动应用程序安全,移动应用程序开发人员需要了解提供移动应用程序资源的所有基础机制及其局限性。 

确保移动应用程序安全的另一个障碍是,应用程序在请求权限方面可能过于宽泛,用户可能会想不到质疑这一点。例如,手机上的天气应用程序是否真的需要访问您的摄像头或麦克风?用途是什么?应用程序中的权限过多会扩大攻击面。应用程序收集的与其用途无关的信息越多,用户就越有可能不必要地共享潜在的敏感数据。

更重要的是,将移动应用程序发布到生产环境后,工作尚未完成。每天都会出现新的漏洞,即使是信誉最好的软件库也需要安全更新。您必须随时了解并与用户沟通,以便快速识别和解决新的安全问题。好消息是,应用程序安全知识如今是一项可以在就业市场中区分开发人员的技能。

移动应用程序安全关键技能

随着移动设备成为通信和工作的中心,移动应用程序开发和安全行业不断发展。网络弹性对移动设备和应用程序的重要性日益增加,提高了对经验丰富的移动应用程序安全工程师的需求。 

开发安全的移动应用程序涉及在整个 SDLC 中应用一组活动。需要在应用程序概念化方面进行合作,以实现安全设计、跳出固有思维来预测威胁等等。如果您是一个拥有技术知识并渴望在科技行业拥有繁荣未来的人,那么提高移动应用程序安全技能可能是您的最佳选择。

如果您喜欢使用软件自动执行任务、喜欢识别安全漏洞和缺陷,并且对执行代码审查感兴趣,那么您可能会在这个角色中表现出色。移动应用程序安全工程师帮助移动应用开发人员从头开始设计安全的移动应用,同时专业地执行安全评估和代码审查。他们还实施安全工具和技术来保护已部署的移动应用程序。虽然开始移动应用程序安全方面的职业生涯没有特定的最低资质,但拥有技术背景是一个加分项。 

一位移动应用程序安全工程师,周围有不同的图标,象征着在这个职业生涯中脱颖而出所需的技能

教育

学士学位或计算机科学文凭或某种技术培训在这条职业道路上是有价值的。

经验

具备一般的编程经验和软件或 Web 开发经验是有帮助的。您应该非常精通设计定制的 Android 和 iOS 应用程序,这些应用程序包含基本和定制的业务需求。您应该了解监管标准和指导方针,这样您的自定义应用程序才能在科技公司的应用商店中发布。

认证

对于这个领域来说,获得证书是一个好主意。针对安全软件生命周期、安全软件编程、Web 应用程序防御等的认证使您能够提高技能并带您入门。以下是一些针对移动应用程序安全工程师的常见认证。 

认证

说明

Certified Secure Software Lifecycle Professional (CSSLP)(认证安全软件生命周期专家 (CSSLP))

验证软件专家是否具备将安全实践纳入 SDLC 每个阶段的专业知识

GIAC Secure Software Programmer (GSSP-.NET)(GIAC 安全软件程序员 (GSSP-.NET))

验证从业者编写安全代码的知识、技能和能力,并识别现有代码中的安全缺陷

GIAC Web Application Defender (GWEB)(GIAC Web 应用程序防御者 (GWEB))

演示如何掌握处理导致大多数安全问题的常见 Web 应用错误所需的安全知识

GIAC Mobile Device Security Analyst (GMOB)(GIAC 移动设备安全分析师 (GMOB))

帮助您有效地评估移动设备的安全性、评估和识别移动应用程序中的缺陷,以及进行移动设备渗透测试(渗透测试)

Secure Software Practitioner (SSP)(安全软件从业者 (SSP))

提供编写更安全的软件代码、减少漏洞并增强组织软件产品的整体安全状况所需的技能

知识

作为移动应用程序安全工程师,需具备多种技能。您应该具备 Android 或 iOS 平台上的开发技能,并接触静态和动态移动应用程序安全分析概念。了解协议和网络分析也是一个明智的想法。 

此外,您还应具有身份验证和加密方法(包括 OAuth公钥基础设施 (PKI))方面的经验。您还应该了解开放式 Web 应用程序安全项目 (OWASP) 移动排行前 10 和威胁建模。编程语言技能、计算机熟练程度、后端计算、用户界面 (UI) 设计、移动跨平台开发和产品管理也是需要熟悉的重要主题。此外,您应该积极寻求新的编程知识、具有敏捷方法的经验,并拥有分析技能。

备注

后端是指操作所需的计算机应用程序的某些部分,用户无法访问这些部分。后端进程的示例包括:处理传入请求、运行代码以在服务器上生成超文本标记语言 (HTML) 以及使用查询语言访问数据库中的数据。 

业务技能

作为移动应用程序安全工程师,成功的很大一部分原因在于使用业务技能来帮助您了解客户的愿景以及如何以安全的方式尽量为客户提供他们想要的功能。除了产品管理、设计、写作和沟通技巧外,注重细节对于这个职位来说也至关重要。

知识检查

准备好检验您所学内容了吗?以下知识检查不打分——仅是一个简单的自我检测方式。开始时,将左列中的说明拖到右侧匹配字词旁边。完成所有匹配项目后,单击 Submit(提交)查看成绩。要重新开始,请单击 Reset(重新设置)

做得好!

总结

在本模块中,您已了解移动应用程序安全环境。您已经详细了解了移动应用程序安全的普遍情况。还了解了移动应用程序安全工程师的职责、技能和资格。在下一个模块移动应用程序安全实施中,您将学习如何实施移动应用程序安全和测试移动应用程序。有兴趣了解有关网络安全角色的更多信息并听取安全专家的意见吗?您可以查看 Trailhead 中的网络安全学习中心

资源

继续免费学习!
注册帐户以继续。
有什么适合您的内容?
  • 为您的职业目标获取个性化推荐
  • 通过实践挑战和测验练习您的技能
  • 跟踪并与雇主分享您的进度
  • 与人联系以获取指导和就业机会