发现/控制非法数据的方法



查找并销毁/捕获非法数据…

环境:
我管理一些非常"开放"的数据库。访问类型通常是全选择/插入/更新/删除。访问数据的机制通常是通过自定义构建的MS Access数据库中的链接表(到SQL-Server)。


没有社会安全号码等(例如,考虑FERPA/HIPPA)。


用户以创造性的方式输入/隐藏非法数据(例如,在中间名称字段中添加ssn等);行政/纪律控制薄弱/无效。普遍的态度(甚至来自大多数老板)是安全是一个麻烦,如果你找到一个方法绕过它,那对你有好处,等等。我需要一个(更好的)方法来查找数据后,它已经输入。

What I've try

最初,我对人们拥有的各种定制用户界面(我知道的)进行了修改,一直到他们链接到我们的数据库服务器的表结构。例如,SSN不再有自己的字段,等等。然而,……我不断发现它们被埋在其他数据字段中。

在我所在机构的一些人做了一次秘密审计之后,他们发现了这些隐藏的数据,我写了一些sql(字面上)检查数据库中每个表中每个字段的每个字符,寻找任何与ssn模式匹配的内容。它需要很长时间才能运行,并且用户正在寻找绕过我的模式定义的方法。

我的问题
当然,真正的解决方案需要执行政策。这件事必须超出我的职权范围,但是,这超出了我的职权范围。

您是否知道或您是否使用任何(免费或商业)针对FERPA &健康保险流通与责任法案数据?(或者如果不是专门针对这些策略,那么就是一般的数据模式?)

我想找到一些我可以在时间表上运行的东西,并且它保持与新的模式定义的更新。

我会用两种方式监视用户。

  1. 相同的用户可能会输入相同的数据,所以跟踪谁绕过了路障,并识别他们。确保他们被记录为污染系统,以便他们受到适当的纪律处分。他们的努力会给整个组织带来风险(金钱和法律风险,最终变成金钱风险)。
  2. 查看用户发出的查询。如果他们成功地搜索到信息,那么它将以某种方式存储在存储库中。

如果您无法跟踪用户,请开始设置密码。

但是,从长远来看,您的组织需要升级它的用户。

最后,除非你得到管理层的支持,否则你将打一场不可能的仗。如果在数据库中存储SSN是非法的,那么该规则必须得到上层的显式支持。@Iterator是对的,记录谁在输入这些数据并记录他们的行为:实现审计跟踪。

搜索整个审计跟踪,而不是数据库本身。这应该会更快,因为您只有一天(或一小时或…)的数据来搜索。每条违规记录并公布。

你可以收紧一些验证。没有数字字段,我猜需要像SSN一样长。没有名称字段需要数字。地址栏里不需要超过5或6个数字(66号公路上有多少户人家?)嗯,电话号码可以用来表示社会安全号码吗?麻烦的是你可以阻止别人输入acaaabdf等(编码131126等),总有办法挫败你的检查。

你不可能做到尽善尽美,但你至少可以抓住无意冒犯的人。

另一个建议:你可以发布一个新的问题,询问你选择的数据库(MS Access)的机器学习插件(本质上是统计模式识别)。通过将一些数据库更新标记为好/坏,您可以利用自动化工具找到不好的东西并引起您的注意。

这类似于垃圾邮件过滤器,它可以找到不好的东西并将其从你的注意力中删除。然而,要在这个问题上得到好的答案,你可能需要在问题中提供更多的细节,比如你有多少个样本(如果不是很多,那么ML插件就没有用了),你的编程技能(所谓的特征提取),等等。

尽管有这样的建议,但我认为针对用户行为而不是构建一个更智能的捕鼠器更好。

最新更新