Database Statement Processing for Inference Attack Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional fine-grained access control mechanisms in relational databases do not adequately address the issue of inference attacks, where users can deduce sensitive information by combining masked data with other accessible information, allowing them to potentially uncover protected data through crafted queries.

Innovation Solution

A method and system for processing database statements that involve determining applicable interdiction statements and masks to prevent the inference of masked data by either removing masked data rows or predicates from the processing, ensuring that the result of the database statement does not reveal information about masked data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional FGAC mechanisms using views or context attributes are used to mask sensitive data, then data access control is improved, but users can still infer masked data through crafted queries combining masked data with other accessible information

Engineering Contradiction:
Improvedata access controlVSAvoiddata inference vulnerability
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent extracts and removes masked data rows from the result set before returning data to the user. When a query would reveal information about masked data through inference, the system identifies and removes the problematic rows from the result set, preventing the inference attack while still allowing legitimate access to non-sensitive data.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies preliminary anti-action by proactively identifying and preventing potential inference attacks before they can succeed. The system analyzes the query and result set to detect combinations that could reveal masked data, and takes preventive action by removing problematic rows before the user receives the results, rather than reacting after an inference is made.

Inventive Principle:
Principle #9Preliminary anti-action

2Reliability

If masked data rows are removed from query results to prevent inference, then data security is improved, but query result completeness and user information access deteriorate

Engineering Contradiction:
Improvedata securityVSAvoidquery result completeness
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent applies local quality by selectively removing only the specific rows that would enable inference of masked data, while preserving all other rows in the result set. This targeted approach ensures that data security is maintained for sensitive information while maximizing the completeness and usefulness of the query results for legitimate purposes.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent uses partial action by removing only the necessary portion of data (specific rows that enable inference) rather than removing all masked data or entire result sets. This selective removal achieves the security goal while minimizing the impact on query result completeness and user information access.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10592471B2Processing database statements for a relational database
Publication Date: 2020.03.17 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10592471B2 patent drawing
  • US10592471B2 patent drawing
  • US10592471B2 patent drawing

AI summary

A computer-implemented method of a database statement for a relational database. The database comprises one or more tables comprising one or more data rows. A database statement is received. A set of predicates from the database statement and a set of data rows from the tables to use to generate the result of the database statement are determined. A set of interdiction statements applicable to one or more data rows is obtained. For each predicate, a set of masks applicable to one or more data rows is obtained, where for each mask, the data masked by the mask is used by the predicate. It is determined if a data row has an applicable interdiction statement, and contains data masked by a mask. If so, the result of the database statement without using the result of applying the predicate to the data row.