学习目标 5.1.A: 解释攻击者如何利用应用和文件漏洞造成丢失、损坏、中断或破坏。
- 5.1.A.1 如果攻击者能够访问存储文件的设备或驱动器,他们就可以读取任何未加密的文件。
- 5.1.A.2 计算机拥有标准用户和管理员用户。管理员用户可以访问并控制系统设置,通常可以访问系统中的任何文件或应用程序。如果普通用户被赋予了计算机的管理员权限,且攻击者能够攻破该用户的账户,那么攻击者将在系统中获得提升的权限。
- 5.1.A.3 当访问控制设置配置较弱时,许多用户往往拥有查看系统上文件甚至编辑文件的权限。攻击者可以利用弱访问控制设置来窃取或销毁文件,或者干扰应用程序的运行。
学习目标 5.1.B: 解释应用攻击如何利用漏洞。
- 5.1.B.1 应用程序是在计算机上运行指令的程序;它们是可执行数据。一些应用程序在用户的计算机上本地运行,而其他应用程序(如 Web 应用程序)则在服务器上运行,用户通过网络进行访问。
- 5.1.B.2 许多应用程序通过开放式输入字段接收用户输入,用户可以在其中键入字符(例如字母、数字、标点符号)。开发者应在其应用程序中包含用户输入检查,例如在要求输入项目数量时限制为数字输入,以确保用户输入符合预期;应用程序应拒绝超出预期参数的输入。这种在处理用户输入之前验证其是否符合预期标准的过程称为数据验证。未能对用户输入进行验证的应用程序容易受到注入类攻击,即攻击者在输入字段中插入意外的字符串以改变程序的行为。
- 5.1.B.3 结构化查询语言 (SQL) 是一种用于从数据库请求信息以及修改数据库或数据库中条目的计算机语言。使用未经验证或未清理的用户输入查询数据库的应用程序存在漏洞。
- 5.1.B.4 SQL 注入攻击将 SQL 命令和控制字符放置在应用程序的用户输入字段中,这可能导致机密性泄露(使应用程序返回比预期更多的信息),或导致完整性受损(修改或删除数据库中的数据)。
- 5.1.B.5 网站是使用超文本标记语言 (HTML) 编写的,许多网站使用 JavaScript 在网站上创建动态内容或 Web 应用程序。由于 JavaScript 命令在访问网站的用户的浏览器中运行,这些命令可以访问存储在浏览器中的敏感数据,如用户名、密码和加密密钥。
- 5.1.B.6 跨站脚本 (XSS) 攻击向网站注入恶意代码,随后由用户的浏览器执行。恶意代码可以嵌入在用户点击的链接中(类型 I 或反射型 XSS 攻击),或者可以通过评论框、论坛帖子或访客日志插入到网站上,这将影响任何访问该网站的用户(类型 II 或存储型 XSS 攻击)。
- 5.1.B.7 当应用程序接收用户输入时,该输入会被写入缓冲区。缓冲区是计算机内存中具有固定大小的指定区域。如果用户输入的数据量超过缓冲区的大小,它可能会溢出到相邻的内存位置并覆盖计算机内存的其他部分。
- 5.1.B.8 缓冲区溢出攻击向内存中输入了超过分配量的数据,这可能导致系统崩溃或在程序安全策略范围之外执行代码,从而有效地允许攻击者在计算机上执行未经授权的操作,例如访问、修改或删除文件。
- 5.1.B.9 运行 Web 应用程序的文件存储在服务器的目录中。当用户访问 Web 应用程序时,他们的浏览器会使用超文本传输协议 (HTTP) 发送 GET 请求。GET 请求会访问服务器文件系统中的某个文件。
- 5.1.B.10 在目录遍历攻击中,攻击者修改 URL 和 GET 请求,试图访问服务器文件系统中的敏感数据(例如用户名和密码)。
- 5.1.B.10 示例:
- 一个Web服务器将其托管的网站中的图像存储在/var/www/images/目录中。攻击者修改了请求图像的URL为../../../etc/passwd。..在文件系统中向上移动一级;因此,三个连续的..返回到根路径,攻击者试图访问passwd文件,该文件将返回设备上所有授权用户名的列表。
学习目标 5.1.C: 评估和记录来自应用与数据漏洞的风险。
- 5.1.C.1 数据安全风险可能涉及机密性被破坏(未经授权的人员可以访问敏感数据)、完整性受损(数据可能被操纵或从其预期状态被更改)以及可用性丧失(数据可能被销毁或加密以防止他人访问)。
- 5.1.C.2 高数据漏洞风险通常涉及高度敏感的数据(例如受法律或法规管辖的数据),这些数据可能通过极高概率的攻击向量遭到破坏。
- 5.1.C.2 示例:
- 开发下一代喷气式发动机(将用于空军飞机)的公司将发动机的技术规格存储在未加密的驱动器上。
- 5.1.C.2 示例:
- 5.1.C.3 中等数据漏洞风险通常涉及敏感数据缺乏足够强的加密或不够严格的访问控制。
- 5.1.C.3 示例:
- 一家公司将客户的个人身份信息 (PII) 存储在电子表格中,而该电子表格使用的是短密钥进行的加密。
- 5.1.C.3 示例:
- 5.1.C.4 低数据漏洞风险通常涉及较不敏感的信息使用较短的密钥进行加密,或者访问控制不够严格。
- 5.1.C.4 示例:
- 某组织的 CEO 将他写给高管团队的私人备忘录存储在公司的共享驱动器上,该驱动器未加密且没有任何访问控制。
- 5.1.C.4 示例:


