《威胁建模:设计和交付更安全的软件》——3.8 扩展示例:针对Acme-DB的STRIDE威胁

简介:

本节书摘来自华章计算机《威胁建模:设计和交付更安全的软件》一书中的第3章,第3.8节,作者:[美] 亚当·斯塔克 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.8 扩展示例:针对Acme-DB的STRIDE威胁

此扩展示例主要讨论针对Acme/SQL数据库使用STRIDE发现威胁,该数据库在第1章和第2章中提及,并在图2-1中展示。首先,你将看到按照STRIDE分类的威胁,然后再根据谁能解决威胁来进行讨论。
假冒

  • web客户端可使用随机的凭证或者偷来的凭证尝试登录,如SQL客户端那样。
  • 如果SQL客户端是你写入的并允许它做安全决策,那么这个假冒(或者被篡改)的客户端就可通过安全检查了。
  • web客户端会连接到假冒错误(或者被假冒的)前端,最终会泄露凭证。
  • 一个程序可假装成某个数据库程序或者日志分析程序,试图从多个数据存储中读取数据。

篡改

  • 可以篡改正在发送的数据、程序或数据文件。
  • 可以篡改web客户端或SQL客户端。
  • 一旦你考虑到这些威胁,很容易采用操作系统的权限设置来解决。更具挑战的是,什么操作可以改变数据库内的什么样数据。在这里,操作系统权限所能发挥的作用很有限,需要采用数据库的某种访问控制功能。

否认

  • 使用SQL客户端或者web客户端的顾客可以宣称自己什么都没有做。这类威胁可以通过日志记录及日志分析减缓。那为何还要考虑这些威胁呢?他们可以提醒你需要设置日志,并要记录“正确的事情”,这其中包括身份验证尝试以及访问尝试的成功与失败记录,尤其是服务器要追踪客户端尝试访问或更改日志行为。

信息泄露

  • 将数据库中的秘密信息泄露给错误的客户端是最明显的信息泄露事件。所泄露的信息可能是数据(工资表中的内容)或者元数据(项目验收表)。泄露信息可能是意外的(设置ACL失败),也可能是故意的(在网络上窃取)。信息泄露可能还发生在前端,例如,“不能用密码bar连接数据库foo!”这样的出错信息。
  • 数据库文件(分区、SAN附加存储)需要由操作系统来保护,其中的数据由文件的访问控制列表ACL保护。
  • 日志中经常含有秘密信息,因此需要保护。

拒绝服务

  • 前端可能会被随机请求或精心设计的请求压垮,尤其是有些匿名(或自由的)web账户精心设计了让前端响应缓慢的数据请求内容。
  • 网络连接可能被数据压垮。
  • 数据库和日志被填满。
  • 如果主要进程之间或者进程与数据库间的网络是共享的,网络可能会超负荷。

权限提升

  • web客户端或SQL客户端可尝试运行其没有权限运行的查询操作。
  • 如果客户端正在执行安全策略,那么任何篡改客户端或其网络数据流的人都将可以按照他们的选择运行查询请求。
  • 如果数据库可以运行任意命令,那么客户端也拥有此功能。
  • 日志分析程序(或假装为日志分析程序)可以运行任意命令或查询。
  • 日志分析程序可能被认为是可信的,但可能是会在信任边界外,因此,要么我们的思考错了,要么图(图2-1)是错误的。

如果数据库集群与企业的目录服务关联,但没有限制谁可以登录到数据库服务器(或者文件服务器),那么在企业目录上的任何人,可能包括员工、承包商、实验室、合伙人等,都可更改数据库集群。
前面扩展示例中的列表只是举例说明,可能还存在其他威胁。
也可以根据处理威胁的个人或团队来考虑威胁类型,分成Acme及其顾客。表3-8举例说明了威胁和减缓威胁之间重叠的部分,这为本书第三部分中如何减缓威胁做了铺垫。表中也列举了一些不是Acme/SQL所要求的内容,这些也应该记录下来提供给顾客,这在第12章讲述。在表3-8里,你可以看到越来越多的可操作的威胁。作为一名开发者或系统管理员,你可以开始学习如何解决这类问题。表格本身也试图提供解决威胁的方法,该表格的自然延伸便是每个角色用以解决威胁的一系列适用的办法。


df771f503bbb7e4b372277c2baf34ebb0eb3a51d
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
12月前
|
数据可视化 安全 项目管理
【投资组合管理】使用 TIME 框架优化软件组合
【投资组合管理】使用 TIME 框架优化软件组合
|
Kubernetes JavaScript 开发工具
开发 k8s 管理平台 - k8sailor 12. 设置 deployment 副本数量 与 参数的有效性验证
开发 k8s 管理平台 - k8sailor 12. 设置 deployment 副本数量 与 参数的有效性验证
201 0
开发 k8s 管理平台 - k8sailor 12. 设置 deployment 副本数量 与 参数的有效性验证
|
关系型数据库 MySQL 数据库
【TP5项目统一规范】Mysql数据库的设计
【TP5项目统一规范】Mysql数据库的设计
115 0
【TP5项目统一规范】Mysql数据库的设计
|
SQL 关系型数据库 数据库
【DB吐槽大会】第63期 - PG 缺乏跨版本兼容性评估工具
大家好,这里是DB吐槽大会,第63期 - PG 缺乏跨版本兼容性评估工具
|
监控 安全 网络协议
开源EDR(OSSEC)基础篇- 01 -设计定位与能力输出
介绍OSSEC之前,不得不提到当前比较热门的技术EDR,近几年随着大数据SIEM系统的发展,EDR(端点威胁检测与响应)技术成为了安全界万众宠爱的骄子,广泛用于威胁检测、攻击溯源和响应处理的安全场景
19292 0
|
Oracle 关系型数据库 应用服务中间件