Skip to main content

了解应用程序安全性

学习目标

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

  • 描述应用程序是什么。
  • 定义应用程序安全及其与应用程序开发相关的作用。

应用程序是什么?

如果您用过电脑,就用过应用程序。从定义上来说,应用程序是执行一个或多个任务并支持直接用户交互的计算机软件包。但是,我们还是通过应用程序示例以及如何使用它们来了解实际含义。

应用程序有多种形式,例如数据库程序、Web 浏览器、电子邮件客户端、电子表格、媒体播放器、文字处理器和图像/照片编辑软件等等。每种软件包都允许用户直接与应用程序交互。例如,当您使用文字处理软件时,您在键入、删除、复制并粘贴文本时直接与应用程序交互。此外,无论是在使用 Photoshop 等照片编辑软件包的计算机上,还是在智能手机上与移动应用程序交互,还是在基于 Web 的银行应用程序上进行商业交易,您都在以不同的方式与应用程序交互。非常直接,对吧? 

开发人员创建应用程序有两种方式。他们开发不在组织外部共享的专有代码,或者通过开源项目开发代码,这些项目是以公开、协作的方式设计和开发的,是开发人员合作进行的。 

开源应用程序授予开发者使用、研究和更改软件的权限,从而使其能够适应和应用于各种用例。有一整个社区都致力于开发开源项目。作为愿意成为应用程序安全工程师的人来说,参与开源项目是获得应用程序开发和安全实践经验的一个好途径,同时还能提高和证明您的技能。因此,您将更好地了解应用程序的开发和功能,并开始了解应用程序安全在编码和软件开发生命周期中的作用。

应用程序安全的作用

在组织的技术堆栈中,应用程序层是最接近用户的一层。应用程序层允许用户交互,因此为入侵者提供了最大的攻击面。正因如此,相对较多的安全漏洞是由应用程序漏洞造成的。 

应用程序还可以提供攻击者想要窃取、篡改或破坏的个人数据宝库,包括个人身份信息 (PII),如姓名、国家身份数据(如身份证号码)和电子邮件地址。这意味着保护应用程序是网络安全的一个关键部分,以便将数据丢失的风险以及由此对组织及其客户的财务、声誉、隐私或法律影响降到最低。 

应用程序安全工程师需要像攻击者一样思考,了解应用程序可能如何被滥用,同时确保合法用户提供的输入被应用程序安全地净化、验证和处理。 

应用程序安全工程师专注于保护应用程序,以防止攻击者访问敏感数据。由于在软件开发的早期阶段发现安全缺陷更容易、成本更低,应用程序安全工程师应该在所有设计或开发工作开始之前收集安全需求。

一名工程师用放大镜看着笔记本上的 Bug(Bug 指瓢虫,也指漏洞)应用程序安全工程师与开发团队和业务部门合作,帮助设计、创建、记录、编码、测试、部署和维护安全的应用程序。设计和构建应用程序的过程称为软件开发生命周期 (SDLC)。应用程序开发人员负责此过程中的文档和编程(编码)步骤。他们编写源代码,使应用程序执行其所需的任务。应用程序安全工程师与应用程序开发人员和整个 SDLC 的其他人员合作,通过诊断、记录和修复应用程序安全漏洞来保护应用程序。

通常在组织中,应用程序开发人员的主要目标是尽快生成有效代码以满足业务需求。因此,编写安全代码有时是事后才想到的。在这方面,应用程序安全工程师可以通过在开发过程中构建安全性来提供极大的帮助,从而使敏感数据得到保护。这样做的目的是确保应用程序提供常常所说的 CIA:机密性、完整性和可用性。 

例如,应用程序安全工程师帮助开发人员设计和部署应用程序,这其中需要有适当的身份验证(以保护数据的机密性),要安全地传输敏感信息以防被修改(完整性),并确保用户可以访问其数据(可用性)。 

应用程序安全工程师通常会深入到应用程序开发团队中,并担任设计师和开发人员的顾问。他们确保应用程序需求中考虑安全性,在设计阶段建议使用安全的认证协议,实施代码审查以检查常见的安全漏洞,在部署前测试应用程序,并建议修补漏洞的时间和方法。

在本单元中,您学习了什么是应用程序,以及应用程序开发和安全功能在实践中如何协同工作。在下一单元中,您将了解应用程序安全的业务影响、应用程序安全工程师需要的技能以及常见的应用程序安全场景。

资源

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