您的组织中的敏感数据是否安全? PII 和 PHI 合规性测试

by 2020 年 1 月 7 日Cognos 分析, MotioCI0评论

如果您的组织定期处理敏感数据,您必须实施数据安全合规性策略,以保护数据所属的个人以及您的组织免于违反任何联邦法律(例如 HIPPA、GDPR 等)。 这会影响医疗保健、银行、政府、法律等行业的组织……实际上是任何处理敏感数据的组织。

我们正在谈论的 PII(个人身份信息)和 PHI(受保护的健康信息)PII 示例

  • 社会安全号码
  • 银行账户
  • 全名
  • 护照号码等

PHI 示例

  • 健康记录
  • 实验结果
  • 医疗账单等,包括个人标识符

保护敏感数据的方法

一些客户将他们的方法描述为您可能会在看过的电影中想象的场景……想象一群持有所需安全许可的人挤在一个没有窗户的上锁房间里,手动检查报告打印输出以确保敏感信息不包括在内。 虽然这会产生戏剧性的电影场景,但它并不是测试敏感信息报告的最万无一失的方法,也不是最有效的方法。 并且由于需要远程 Covid-19 劳动力,这在目前根本不可行。

我们已经帮助我们的几个客户实现了自动化测试的强大功能,以动态测试他们的 Cognos 报告输出。 这种测试策略会在报告不合规时尽早捕获报告,并且在它们最终投入生产并落入坏人之手之前。 知道离您最近的社会保障办公室在哪里总是一个好主意,例如 内华达州社会保障办公室,如果最坏的情况发生,因为您当地办事处的团队知道如何处理这种情况。

在开发周期早期进行测试的价值

在开发阶段的早期检测数据安全漏洞可以帮助避免未来政府施加的任何罚款和制裁。 根据 健康和人类服务部迄今为止,民权办公室 (OCR) “已在 75 起案件中解决或处以民事罚款,总金额为 116,303,582.00 美元。” 每个案例超过 1.5 万美元! 并且根据 HIPAA期刊 “未能执行组织范围的风险分析是导致经济处罚的最常见的 HIPAA 违规行为之一。”

除了避免政府施加的处罚外,在开发周期的早期发现错误通常很重要,因为这是解决问题更容易、更便宜的阶段。 因此,本练习的主要目标是使用 MotioCI回归测试的强大功能可以轻松识别此类错误,从而在开发周期的早期防止它们发生。

让我们来看看如何设置测试。 我们将从设置 Cognos 环境开始,然后解释如何为我们的示例设置 PHI 和 PII 数据的自动化测试。 我们还将在生产环境中使用这些相同的测试用例,以提高合规性和安全性检查水平。

PHI 和 PII Cognos 环境设置

我们的示例 Cognos 环境(图 1)由多个报告组成,每个报告包含 PII 和 PHI 敏感数据(例如诊断代码、处方、社会安全号码、患者姓氏等)和最低限度敏感数据(例如患者名、访问日期等)。

示例 IBM Cognos Analytics 环境

图 1:我们的示例 Cognos 环境。

有两个 Cognos 角色, 允许PII 和 允许PHI,确定在执行报告时是否呈现任何敏感数据。 (表格1)

Cognos 角色

允许PII

此角色的成员能够查看 Cognos 报告中的所有 PII(即社会安全号码和患者姓氏)数据。

允许PHI

此角色的成员能够查看 Cognos 报告中的所有 PHI(例如 ICD10 诊断代码、详细的诊断描述等)数据。

表 1:控制敏感数据再现的 Cognos 角色。

例如,缺少我们的 Cognos 角色的用户,他们的“患者每日摄入量”报告应如下所示(图 2):

PII、PHI、Cognos 角色

图 2:缺少 AllowPII 和 AllowPHI 角色的用户生成的报告输出。

如您所见,所有 PHI 和 PII 数据都被完全混淆,因为用户缺乏“AllowPHI/PII”角色的成员资格。

现在,让我们使用属于“AllowPII”角色的用户运行报告,这意味着我们希望该用户只能查看 PII 数据(图 3):

Cognos 报告输出、PII、PHI

图 3:由属于 AllowPII 角色而非 AllowPHI 角色的用户生成的报告输出。

您可以在此处看到社会安全号码和姓氏列都正确显示,没有进行任何编辑。

到目前为止,我们已经瞥见了我们神话般的诊所的 Cognos 环境,到目前为止我们所看到的只是 Cognos 基于角色的数据安全性,你们中的许多人可能已经在自己的 Cognos 环境中实施了该安全性。 这将把我们带到敏感数据希望的承载者永远不必面对的主要问题:

假设经过一些繁重的开发工作后,一些敏感数据泄漏并开始向不应该看到的用户显示怎么办?

错误当然在所难免,所以稍后在博客中我们将使用 MotioCI回归测试的力量可以密切关注我们的报告,以确保私人数据永远不会暴露给非预期的受众。

了解 Cognos 的合规性测试

如前一节所述,报告创作或建模中的简单错误可能会导致 Cognos 环境中报告输出中出现意外行为。 如果这些变化未被发现,它们就有可能潜入您的生产环境。 更糟糕的是,如果这些不需要的更改包括将私人数据暴露给非预期的受众。

例如,一个用户不是其中任何一个的成员 允许PII or 允许PHI Cognos 角色不应在我们的示例 Cognos 环境中看到 PII 或 PHI 私有数据。 但是,正如您在下面看到的(图 4),FM 模型中的一个简单更改已导致诊断描述和患者 SSN 号暴露给此类用户,这严重违反了联邦 HIPAA 安全规则。

PII 和 PHI 角色成员资格,HIPAA

图 4:没有 AllowPII 和 AllowPHI 角色成员资格的用户以某种方式暴露于 HIPAA 敏感数据。

在搬东西之前 MotioCI,我们将首先在我们的 Cognos 环境中创建三个测试用户,并按以下方式将他们分配给我们的两个角色(表 2):

用户 角色成员
测试用户A 允许PII 必须对该用户隐藏所有 PHI 数据
测试用户B 允许PHI 必须对该用户隐藏所有 PII 数据
测试用户C 不包含 预计用户不会看到 PHI 或 PII

表 2:使用分配的角色测试 Cognos 用户帐户。

这些测试用户帐户稍后将用于 MotioCI 用于对包含敏感 PII 和 PHI 数据的报告进行回归测试。 我们的测试结果将取决于每个用户根据其角色成员身份对敏感数据的可见性。

现在我们已经设置了我们的测试用户,我们准备好配置我们的回归测试 MotioCI.

MotioCI 环境设置

我们的示例环境由开发、UAT 和生产 Cognos 实例组成。 虽然 MotioCI 允许我们同时登录所有三个,我们将在三个不同的阶段开始在开发环境中设置回归测试。

MotioCI 登录界面

图5: MotioCI 登录屏幕。

MotioCI 显示 Cognos 实例的主屏幕

图6: MotioCI 主屏幕,显示 Cognos 实例。

关于回归测试 MotioCI,一个 断言 是测试用例对您的对象执行的单独检查或“测试” MotioCI 实例,例如报表、文件夹或包。 将执行测试敏感数据报告输出工作的断言称为 敏感数据合规性测试 (图 7)。 这是我们为本练习组合在一起的自定义断言。 下面你可以看到 断言类型 它基本上充当了在我们的整个测试用例中复制到测试用例的主要模板 MotioCI 环境。 稍后会详细介绍。

敏感数据合规性测试断言类型

图 7:“敏感数据合规性测试”断言类型。 该断言的副本被部署到测试环境中。

一些断言提供了一些用户可调整的功能 提示窗口. 在这里,您可以更改您希望给定断言测试任何给定 Cognos 报告的方式。 下面的图 8 显示了 提示窗口 我们将用于测试包含敏感数据的 Cognos 报告的断言。

敏感数据合规性测试断言类型提示窗口

图 8:“敏感数据合规性测试”断言的提示窗口,显示所有用户可调整的测试选项。

图 8 中顶部突出显示的部分显示了 PII 和 PHI 敏感数据的测试选项。 这允许您进行断言测试报告是否必须显示或隐藏其 PII 或 PHI 数据。 当我们开始为三个测试用户中的每一个创建测试用例时,我们将对这两个选项进行更改。

图 8 中间突出显示的部分显示了我们报告中包含 PHI 敏感数据的列的名称。 尽管我们的示例环境由名称为 ICD10 诊断代码、诊断描述、过程和 Rx 的列组成,但您当然可以修改此列表以满足您的需要。

最后,图 8 中底部突出显示的部分显示了电子邮件选项。 在失败的情况下,此断言将向此部分中配置的收件人发送详细的电子邮件消息。

阶段 I:仅显示 PII 的报告

让我们在下面创建一个项目 研发支持 实例在 MotioCI 并称之为 仅允许 PII. 我们可以通过首先右键单击 研发支持 实例节点 MotioCI 导航树并选择 新增专案 选项(图 9)。

在中创建一个新项目 MotioCI

图 9:创建一个新项目。 在 MotioCI 每个项目都充当内容存储预定义部分的试验场。

 添加项目向导 将带您通过一些步骤来选择项目所需的路径。 在我们的示例中,所有包含 PII 和 PHI 敏感数据的报告都存在于 患者数据 文件夹。 检查此父文件夹将自动包括所有基础报告(图 10 和 11)。

从 Cognos 环境中选择路径 MotioCI

图 10:确定项目的范围 MotioCI 通过从 Cognos 环境中选择路径。

显示在中选择的所有 Cognos 对象 MotioCI 项目

图 11:显示为 MotioCI 项目。

由于该项目中的所有报告都应允许显示所有 PII 数据并混淆所有 PHI,因此我们需要在添加任何测试用例之前使用正确的设置配置断言类型(图 12)。 这意味着在同一个断言上设置两个测试选项 提示窗口 我们之前在图 8 中看到的。

敏感数据合规性测试断言的 PII 和 PHI 测试选项。

图 12:“敏感数据合规性测试”断言的 PII 和 PHI 测试选项。

现在我们准备将我们的测试用例添加到我们的报告中。 为此,请右键单击项目节点(即 仅允许 PII 项目)在 MotioCI 并选择 生成测试用例 选项(图 13)。 这将启动生成测试用例向导,这将允许我们为项目中的所有报告创建大量测试用例。

MotioCI 生成测试用例屏幕

图13: MotioCI 可以在项目内的任何级别自动生成所有必要的测试用例。

 生成测试用例 向导还允许我们为要执行测试的测试用例选择输出格式。 对于我们的示例环境,我选择了 CSV 输出。 该向导还将让我们选择每个测试用例将用于实际测试工作的断言。 对我们来说,这将是 敏感数据合规性测试 断言。 您可以看到下面突出显示的这两个选项(图 14)。

生成测试用例选项向导

图 14:在“生成测试用例”向导中显示的选项。

单击“确定”后,您将返回到 MotioCI 主屏幕,您将能够在其中看到我们的所有报告,每个报告都包含一个测试用例,每个报告都包含我们的单个断言(图 15)。

MotioCI 显示所有 Cognos 对象的导航树

图15: MotioCI 显示所有 Cognos 对象的导航树,每个对象都包含一个测试用例和底层断言。

最后,我们需要配置所有测试用例以使用正确的 Cognos 用户(例如,我们在 Cognos 中配置之前在 Cognos 中配置的三个测试用户之一)来执行它们的父报告 MotioCI)。 因为对于这个项目,我们正在测试以确保 PHI 内容是 不能 显示给只允许查看 PII 数据的用户,我们需要设置所有测试用例来运行 测试用户A (见表 2)。

起初这听起来像是一项乏味的任务,但幸运的是我们可以将用户设置在项目级别,然后该项目中的所有底层测试用例都会继承该用户。 为此,在左侧导航树中,我们将单击项目节点 ( 仅允许 PII 项目),然后选择 项目设定 在屏幕中间。 然后,根据 测试 部分,我们将看到更改凭据的选项(图 16):

在项目上设置用户凭据将导致所有测试用例与该用户一起在 Cognos 中执行父 Cognos 报告

图 16:在项目上设置用户凭据将导致所有测试用例与该用户一起在 Cognos 中执行父 Cognos 报告。 这可以被每个单独的测试用例覆盖。

点击之后 编辑 按钮位于前面 资历 选项,我们将看到 编辑凭据 窗户。 我们将继续输入凭据 测试用户A (图17)。

编辑凭据窗口 MotioCI

图 17:“编辑凭据”窗口允许您设置新的用户凭据,或使用在 Cognos 实例级别设置的父凭据,也称为系统凭据。

我们现在看到新用户反映在 测试 条的规定, 项目设定 选项卡(图 18)。

新用户凭据 MotioCI

图 18:现在在项目上设置了新用户凭据。

现在我们已准备就绪,可以执行所有测试用例。

为此,我们将单击 仅允许 PII 项目,在中间我们将看到 测试用例 选项卡,显示位于项目中的所有测试用例。 由于我们还没有执行任何操作,我们将看到 Status 显示为 没有结果. 要执行所有测试用例,我们将单击 运行 按钮,然后选择 全部运行 选项(图 19)。

选择全部运行以执行 MotioCI 测试用例

图 19:“测试用例”选项卡提供了许多可以对所有或部分测试用例批量执行的操作。 这里我们只是执行所有的测试用例。

MotioCI 现在将执行所有测试用例,并在完成后向我们展示结果(图 20)。

测试用例选项卡显示每个测试用例的执行状态,包括输出

图 20:“测试用例”选项卡显示每个测试用例的执行状态,包括输出(如果有)。

如您所见,我们所有的测试用例都成功了,除了 住院 报告。 那么,让我们来看看结果。 为此,我们将点击位于下方的蓝色时间戳 结果 列并查看图 21 中的详细信息。

MotioCi 测试用例结果面板

图 21:“测试用例结果”面板显示了测试用例执行的详细结果,包括测试对象的路径、断言结果以及报告产生的任何输出。

在下面 断言结果 我们现在可以看到我们的报告违反了 PHI 合规要求。 我们可以从以下位置下载 CSV 报告输出 测试用例输出 单击 CSV 图标(图 21)。

CSV 报告输出

图 22:CSV 报告输出显示显示的“Procedure”列,该列必须为测试用户进行混淆处理。

正如您在我们的报告(图 22)中看到的,除了 TestUserA 可以访问的 PII 数据之外,我们还能够看到 PHI 程序数据,该数据使报告违反了联邦 HIPAA 安全规则。

如果您还记得断言设置窗口,我们也应该收到有关此失败的电子邮件通知。 让我们看看它是什么样子的(图 23):

失败的测试用例的断言发送的电子邮件

图 23:由失败测试用例的断言发送的电子邮件消息,显示敏感数据合规性违规,可能是由于报告中最近的更改。

在这一点上,我们完成了测试以确保 PHI 数据对用户隐藏而不需要 允许PHI Cognos 角色。 现在我们准备将我们的测试扩展到对缺乏所需的用户隐藏的 PII 数据 允许PII Cognos 作用。

阶段 II:仅显示 PHI 的报告

在创建新项目之前,首先让我们编辑主断言的选项,以确保它现在测试所有要隐藏的 PII 和要显示的所有 PHI(图 24)。

为 TestUserB 设置的“敏感数据合规性测试”断言的 PII 和 PHI 测试选项

图 24:为 TestUserB 设置的“敏感数据合规性测试”断言的 PII 和 PHI 测试选项。

现在我们的断言都配置好了,我们现在准备好创建新项目和我们的测试用例。 为此,我们将按照与“第一阶段”相同的步骤创建一个名为 仅允许 PHI. 另外,我们不要忘记添加凭据 测试用户B 作为项目用户。

当我们完成所有配置步骤后,我们将像在阶段 I 中所做的那样执行所有测试用例。在我们的示例环境中,这次我们有一个不同的报告,它似乎违反了 HIPAA(图 25)。

测试用例选项卡显示每个测试用例的执行状态,包括输出

图 25:“测试用例”选项卡显示每个测试用例的执行状态,包括输出(如果有)。

对测试用例结果的进一步调查 患者每日摄入量 报告显示,我们的报告向非预期受众显示了患者社会安全号码(图 26)。

测试用例结果显示违反 SSN PII 合规性要求

图 26:测试用例结果显示违反 SSN PII 合规性要求。

下载并打开 CSV 文件将进一步确认我们的测试结果(图 27):

CSV 输出

图 27:CSV 输出显示了本应被混淆的患者 SSN。

但是,正如您在图 27 中看到的,我们的报告通过仅显示首字母来正确屏蔽了患者姓氏列(也是 PII)。

在家工作!

重复相同的步骤 测试用户C 既缺乏 允许PII 和 允许PHI 角色,这意味着他们在执行我们的任何报告时不应该看到 PII 或 PHI 数据。

至此,我们的环境应该已经利用 Cognos 基于角色的数据安全性实现了对 PHI 和 PII 敏感数据的全面回归测试。 我们的测试用例将分别执行其父报告并根据其基础断言中的测试配置集分析输出,并告诉我们是否有任何报告不符合规定。

当然,我们的测试环境与您的环境中可能拥有的环境之间最重要的区别之一是大小。 一个典型的 Cognos 环境很可能有成百上千甚至上千个报告,并且像我们在小样本环境中所做的那样同时执行所有这些报告,可能会对 Cognos 的性能造成影响。 和 MotioCI的测试脚本,但是,您可以安排您的测试用例在非工作时间以较小的批次运行,从而确保您的 Cognos 环境在高流量时间获得最佳性能。

开发过程中的良好测试实践

但是,在计划的运行时间之间,您仍然可以根据需要手动运行任意数量的单个测试用例。 一个很好的例子是在开发报告时,您可以运行测试用例以确保您的更改没有造成任何 HIPAA 违规。

自动化 Cognos 测试用例

返回 MotioCI,在导航树上,我们展开我们创建的项目之一以显示其内容。 这应该会显示一个名为的节点 测试脚本. 展开它会显示一组在您第一次创建项目时自动创建的测试脚本(图 28)。

测试脚本

图 28:可以创建测试脚本以仅显示与管理员用户设置的特定标准匹配的有限数量的测试用例。

根据定义,a 测试脚本 是项目的一个组件,它根据指定的标准选择属于项目的测试用例。 您可以安排测试脚本或手动运行它们。 当您运行测试脚本时, MotioCI 运行所有符合脚本标准的测试用例。

在我们的例子中,我们希望按计划设置所有测试用例。 所以为了做到这一点,我们点击 所有类型 导航树中的测试脚本,然后单击 测试脚本设置 选项卡位于屏幕中间(图 29)。

MotioCI 测试脚本设置选项卡

图 29:“测试脚本设置”选项卡允许您为所有测试用例添加时间表。

接下来,我们选择 添加计划 选项。 在这里,我们现在可以为我们的测试脚本设置时间表。 我将继续让我们的测试用例在每周一到周五的凌晨 3:00 运行(图 30)。

MotioCI 测试脚本时间表

图 30:除了每日和每周计划外,您还可以在计划中设置分钟频率。

就是这样! 我们现在可以每天早上检查我们的电子邮件收件箱,以了解我们的任何报告是否不合规。 我们还可以通过简单地单击 更改或失败 测试脚本和所有失败的测试用例将在 测试用例 面板(图 31)。

MotioCI 更改或失败的测试脚本

图 31:包含的“更改或失败”测试脚本显示在最新的测试用例批处理中失败的单个测试用例。

结论

不遵守 HIPPA、GDPR 和其他有关敏感信息和隐私的联邦法规的成本可能非常高,事实上,每个违规案件大约 1.5 万美元。

通过实施自动化测试策略来处理合规性测试,您将拥有额外的安全层,并在遵守法律的情况下高枕无忧。 除了隐私数据要求之外,自动化测试可以使所有类型的行业和您的组织想要实施的任何类型的测试要求受益。

我们可以为您提供什么?

如果您想观看有关此博客主题的网络研讨会, 在这里访问它。 或 立即联系我们 进一步讨论您的 Cognos 测试问题。