查找/控制非法数据的方法

时间:2011-08-08 19:01:28

标签: sql-server tsql monitoring

搜索并销毁/捕获非法数据......

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

规则
没有社会安全号码等(例如,想想FERPA / HIPPA)。

问题
用户以创造性的方式输入/隐藏非法数据(例如,中间名字段中的ssn等);行政/纪律控制薄弱/无效。一般的态度(即使是来自大多数老板)也就是安全是一件麻烦事,如果你找到了解决它的方法然后对你有好处等等。我需要一种(更好的)方法来找到之后的数据 >已经输入了。

我尝试过什么

最初,我修改了各种自定义用户界面的人(我知道),一直到他们链接到我们的数据库服务器的表结构。例如,SSN不再拥有自己的领域等等。然而......我继续发现它们埋藏在其他数据领域。

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

我的问题
当然,真正的解决方案需要政策执行。必须在我的头脑中解决这个问题,然而,这超出了我职位的范围和权限。

您是否了解或使用任何(免费或商业)工具,这些工具的目标是审核FERPA& HIPPA数据? (或者如果没有具体的那些政策,那么一般只是数据模式?

我想找到一些我可以按计划运行的东西,并且使用新的模式定义保持更新。

3 个答案:

答案 0 :(得分:1)

我会以两种方式监控用户。

  1. 相同的用户可能会输入相同的数据,因此跟踪谁正在绕过道路障碍,并识别它们。确保将它们记录为对系统造成污染,以便对它们进行适当的规范。他们的努力为整个组织创造了风险(货币和法律,这变成了货币)。
  2. 查看用户发出的查询。如果他们成功搜索信息,那么它就会以某种方式存储在存储库中。
  3. 如果您无法跟踪用户,请开始设置密码。

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

答案 1 :(得分:1)

最后,除非得到管理层的支持,否则你正在打一场不可能的战斗。如果在您的数据库中存储SSN是非法的,那么此规则必须得到顶层的明确支持。 @Iterator是对的,记录输入此数据的人并记录他们的行为:实施审计跟踪。

搜索审计跟踪而不是数据库本身。这应该更快,您只需要一天(或一小时或......)的数据进行搜索。每个违规记录并发布。

你可以收紧一些验证。我认为没有数字字段需要与SSN一样长。没有名称字段需要数字。没有地址字段需要更多的5或6个数字(66号线路上有多少房子?)嗯可以用电话号码代表SSN吗?麻烦的是,你可以阻止某人进入acaaabdf等(编码131126等),总有办法打败你的支票。

你永远不会达到完美,但你至少可以抓住意外的罪犯。

答案 2 :(得分:1)

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

这类似于垃圾邮件过滤器,可以找到不良内容并将其从您的注意力中删除。但是,要获得这方面的好答案,您可能需要在问题中提供更多详细信息,例如您拥有的样本数量(如果不是很多,那么ML插件就没用了),您的编程技巧(对于所谓的特征提取,等等。

尽管有这样的建议,但我认为定位用户行为比构建更智能的捕鼠器更好。