zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

建模扩展软件安全 设计 示例 DB 针对
2023-09-11 14:19:11 时间

本节书摘来自华章计算机《威胁建模:设计和交付更安全的软件》一书中的第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

Hap-Eval:Sentieon团队开发的开源结构变异SV准确率评估工具 Hap-eval基于单倍型 (haplotype) 对两组SV结果进行比较,首先会将比较区块内的SV拼接成单倍型序列,如果SV的结果中有定相信息,在这一步也可以被利用;然后这些单倍型序列被用来建立一个矩阵,进行结果判断。
以 Log4j 为例,如何评估和划分安全风险 开源软件支撑着绝大多数面向互联网的应用程序。这类项目的可用性、可获取性和质量提升了企业的创新能力,并帮助它们取得成功。它们是很好的公共产品,应该受到赞美和保护。