中培伟业IT资讯频道
您现在的位置:首页 > IT资讯 > 国际认证 > CISSP认证教材OSG第9版新增(改)知识点:D8-软件开发安全

CISSP认证教材OSG第9版新增(改)知识点:D8-软件开发安全

2023-04-19 17:10:11 | 来源:企业IT培训

CISSP认证教材OSG第9版有增加或者改动的知识点,CISSP认证的教材新版知识点可能会在考试中出现,因此我们为大家进行了梳理,CISSP认证教材OSG第9版新增(改)知识点如下。

D8-软件开发安全

1、软件保障成熟度模型(SAMM,Software Assurance Maturity Model)(p961)

SAMM 是由开放 Web 应用程序安全项目 (OWASP) 维护的开源项目。它旨在提供一个框架, 将安全活动集成到软件开发和维护过程中,并为组织提供评估其成熟度的能力。SAMM 将软 件开发过程划分为五个业务功能:治理、设计、实施、验证、运营。

2、NoSQL(p982)

NoSQL 数据库是一类使用关系模型以外的模型来存储数据的数据库。NoSQL 数据库没有标准 的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多 NoSQL 数据库都有 REST 式 的数据接口或者查询 API。有许多不同类型的 NoSQL 数据库,例如:

➢ 键值(Key-Value)存储数据库,这一类数据库主要会使用到一个哈希表,这个表中有 一个特定的键和一个指针指向特定的数据;

➢ 图形(Graph)数据库,它是使用灵活的图形模型,并且能够扩展到多个服务器上,专 注于构建关系图谱;

➢ 文档型数据库,该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储, 比如 JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值,在处 理网页等复杂数据时,文档型数据库比传统键值数据库的查询效率更高。

➢ NoSQL 数据库使用的安全模型可能与关系数据库有很大不同。使用此技术的组织中安 全专业人员应熟悉他们使用的解决方案的安全功能,并在设计适当的安全控制时咨询 数据库团队。

3、勒索软件(Ransomware)(p1004)

勒索软件是一种将密码学武器化的恶意软件。勒索软件会生成一个只有勒索软件作者知道的 加密密钥,并使用该密钥加密系统硬盘驱动器和任何已安装驱动器上的关键文件。这种加密 使授权用户或恶意软件作者以外的任何其他人无法访问数据。然后,用户会收到一条消息, 通知他们他们的文件已加密,并要求在特定截止日期之前支付赎金,以防止文件永久无法访 问。

支付赎金可能是非法的!除了围绕赎金支付的道德考虑之外,还有严重的法律问题。2020 年, 美国财政部外国资产控制办公室 (OFAC) 发布了一份咨询报告,通知美国公司许多勒索软 件作者受到经济制裁,向他们付款是非法的。

4、恶意脚本(Malicious Scripts)(p1005)

管理员可以手动触发脚本或将其与人力资源系统集成以在组织雇用新员工时自动运行。不幸 的是,同样的脚本技术可用于提高恶意行为者的效率。特别是,APT 组织经常利用脚本来自 动化其恶意活动的常规部分。恶意脚本也常见于一类称为无恶意文件的恶意软件中。这些无 文件攻击从不将文件写入磁盘,这使得它们更难以检测。例如,用户可能会收到钓鱼邮件中 的恶意链接。

5、高级威胁防护(Advanced Threat Protection)(p1008)

端点检测和响应 (EDR) 包超越了传统的反恶意软件保护,可帮助保护端点免受攻击。它们 将传统防病毒软件包中的反恶意软件功能与旨在更好地检测威胁并采取措施根除威胁的先 进技术相结合。EDR 包的一些具体功能如下:

➢ 分析端点内存、文件系统和网络活动以寻找恶意活动的迹象

➢ 自动隔离可能的恶意活动以控制潜在的损害

➢ 与威胁情报源集成,实时洞察互联网上其他地方的恶意行为

➢ 与其他事件响应机制集成以自动化响应工作 这些托管 EDR 产品称为托管检测和响应(MDR)服务。此外,用户和实体行为分析 (UEBA) 包 特别关注端点和其他设备上基于用户的活动,构建每个人正常活动的配置文件,然后突出显 示与该配置文件的偏差,这可能表明潜在的攻击。

6、基于内容的 SQL 盲注和基于时间的盲 SQL 注入(Blind Content-Based SQL Injection && Blind Timing-Based SQL Injection) (p1013)

基于内容的 SQL 盲注:在尝试执行攻击 Web 应用程序之前,攻击者将输入发送到 Web 应用程 序,测试应用程序是否正在解释注入代码。

基于时间的盲 SQL 注入:渗透测试人员可能会将处理查询所需的时间用作从数据库检索信 息的渠道。

7、代码注入攻击 Code Injection Attacks (p1016)

SQL 注入攻击是代码注入攻击的一般攻击类别中的一个具体示例。攻击者可能会在作为轻量 级目录访问协议 (LDAP) 查询的一部分发送的文本中嵌入命令,从而进行 LDAP 注入攻击。 XML 注入是另一种类型的注入攻击,其后端目标是 XML 应用程序。跨站脚本是代码注入攻 击的一个例子,它将攻击者编写的脚本代码插入到开发人员创建的网页中。命令注入攻击, 应用程序代码可以返回到操作系统以执行命令,因此攻击者可能会利用应用程序中的缺陷并 获得直接操纵操作系统的能力。

8、不安全的直接对象引用(Insecure Direct Object References)(p1018)

在某些情况下,Web 开发人员设计的应用程序可以根据用户在查询字符串或 POST 请求中提 供的参数直接从数据库中检索信息。这样可能让攻击者可以轻松查看到 URL,然后对其进行 修改以尝试检索其他文档。如果应用程序不执行授权检查,则可能允许用户查看超出其权限 的信息。这种情况称为不安全的直接对象引用。

9、文件包含(File Inclusion)(p1020)

文件包含攻击是实际执行文件中包含的代码,允许攻击者欺骗 Web 服务器执行目标代码。

10、请求伪造(Request Forgery)(p1023)

请求伪造攻击利用信任关系并试图让用户在不知不觉中对远程服务器执行命令。它们有两种 形式:跨站点请求伪造(CSRF/XSRF,Cross-Site Request Forgery 和服务器端请求伪造 (SSRF,Server-Side Request Forgery)。

11、输入验证(Input Validation)(p1025)

输入验证的最有效形式使用输入白名单(也称为允许列表),其中包括开发人员描述期望用 户输入的确切类型。然后在将输入传递给其他进程或服务器之前,验证输入是否与该规则匹 配。但由于允许用户输入的许多字段的性质,通常很难执行输入白名单。在这种情况下,开 发人员可能会使用输入黑名单(也称为阻止列表)来控制用户输入。使用这种方法,开发人 员不会尝试明确描述可接受的输入,而是描述必须阻止的潜在恶意输入。

元字符(Metacharacter)是被赋予特殊编程意义的字符。因此,他们拥有标准的普通角色 所没有的特殊能力。转义元字符(Escaping a metacharacter)是将元字符标记为普通字符 或普通字符(例如字母或数字)的过程,从而消除其特殊的编程能力。参数污染(Parameter pollution)是攻击者成功用来击败输入验证控制的一种技术。

12、数据库安全(Database Security)(p1028)

参数化查询(Parameterized queries)提供了另一种保护应用程序免受注入攻击的技术。 在参数化查询中,开发人员准备一条 SQL 语句,然后允许将用户输入转变为精细定义的变 量,传递到语句中,这些变量不允许插入代码。存储过程(Stored procedures)的工作方 式类似,但主要区别在于 SQL 代码不包含在应用程序中,而是存储在数据库服务器上。客户 端不直接向数据库服务器发送 SQL 代码。相反,客户端将参数发送到服务器,然后服务器将 这些参数插入到预编译的查询模板中。

混淆和伪装(Obfuscation and Camouflage)。在数据库中维护敏感的个人信息,如果这些 信息被攻击者窃取,会使组织面临风险。数据库管理员应采取以下措施防止数据泄露:数据 最小化(Data minimization)、令牌化(Tokenization)、哈希化(Hashing)。

13、代码安全(Code Security)(p1029)

软件开发人员还应采取措施保护其代码的创建、存储和交付。他们通过各种技术来做到这一 点:

➢ 代码签名(Code signing):代码签名为开发人员提供了一种向最终用户确认其代码真 实性的方法。

➢ 代码重用(Code Reuse):安全团队应确保外包代码与内部开发代码经过相同级别的测 试。

➢ 软件多样性(Software Diversity):安全专业人员寻求避免其环境中的单点故障,以 避免在单个组件出现问题时出现可用性风险。

➢ 代码库(Code Repositories):代码存储库的主要目的是将软件开发中使用的源文件 存储在一个集中位置,以便安全存储和协调多个开发人员之间的更改。代码存储库还执 行版本控制(version control),允许在需要时跟踪更改并将代码回滚到早期版本。 代码存储库还有助于避免死代码(dead code)问题,即代码在组织中使用,但没有人 负责该代码的维护,事实上,甚至没有人知道原始源文件所在的位置。

➢ 完整性测量(Integrity Measurement):代码完整性测量使用加密散列函数来验证发 布到生产中的代码是否与之前批准的代码相匹配。

➢ 应用程序弹性(Application Resilience):当我们设计应用程序时,我们应该以一种 使它们在面对不断变化的需求时具有弹性的方式来创建它们。我们通过应用两个相关 原则来做到这一点:可扩展性、弹性。可扩展性和弹性是云平台的共同特征,并且是在 企业计算环境中使用这些平台的主要驱动力

关注中培伟业,了解更多CISSP相关信息。