统计数据库是只允许用户查询聚集数据的数据库,即不允许泄露单个记录信息,但这种数据库会面临推理攻击的威胁。数据库安全是保护数据库中数据不被攻击者所窃取,因此,统计数据库安全是在统计数据库上保护统计数据库的敏感信息不被攻击者窃取。
统计数据库是管理统计数据的数据库系统,这类数据库包含有大量的数据记录,其目的是为用户提供各种统计信息而不是单个元组记录的信息,是用联机分析处理取代联机事务处理的数据库系统。统计数据库通常支持先进的统计分析技术,能够为数据挖掘和机器学习提供统计数据服务。
统计数据库只允许聚集查询,如求和、计数、取平均、求标准差等统计查询操作,但是攻击者可利用多次聚集查询来获取数据库中某个元组的具体信息。例如,数据库D记录了病人的病例信息,COUNT(D)函数返回患某种疾病的病人信息总数,则攻击者可根据两次COUNT癌症(D)和COUNT癌症(D-{Alice})的返回值来确定病人Alice是否患癌,进而可向病人Alice定向推送相关广告信息,在整个查询过程中虽然病人的具体信息没有泄露,但是攻击者可以构造不同的查询来获取相应的返回值,进而造成敏感信息的泄露。
一般来说,造成统计数据库泄密的原因有以下4种:①由于查询集过大或过小,攻击者能够通过查询集合的某种运算规则分离出个体敏感信息;②由于查询集有过多的重叠,攻击者能够从多次查询中分离出个体敏感信息;③由于统计数据库中各种聚集函数之间的内在联系,攻击者可以通过函数关联推导出个体敏感信息;④攻击者根据统计数据库发布的信息和其他渠道获得的相关背景知识,可以推测出个体敏感信息。
针对上述原因,通常可使用控制查询集大小和查询集重叠程度的方法,并对数据库内的数据进行分割,使发布的统计信息约束在一定的范围之内,或采用数据加扰的方法,对发布的统计信息进行保护,使其数据不被非法用户使用。
自20世纪80年代统计数据库的安全问题得到了关注以来,大量的统计数据库安全方案被提出,但这些方案局限于攻击者拥有的背景知识和攻击模型,应用场景有限。直到2006年,差分隐私的概念被提出后,统计数据库安全便成为数据库安全领域的研究热点。