Database Session RPC Interface Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Database servers expose a large network attack surface area due to supporting all remote procedure calls (RPCs) for various client versions, increasing the risk of unauthorized access and malicious attacks, especially in multi-tenant databases where malicious tenants may exploit exposed RPC interfaces.
Innovation Solution
Implementing techniques to reduce the network attack surface area by configuring database sessions to only allow a limited set of RPCs for non-administrative users and performing deep input validation on incoming RPC messages, ensuring data types and constraints adhere to specified formats, and taking security actions against clients sending invalid messages, such as throttling or suspending their connections.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the database accepts all remote procedure calls for all supported client versions, then client compatibility and functionality are improved, but the network attack surface area increases
Solution Approach 1:
The patent segments the RPC interface by creating two distinct pathways: a legacy RPC interface for backward compatibility and a new RPC interface with reduced attack surface. The database session determines which interface to use based on client identification, allowing different clients to interact through appropriately secured interfaces.
Solution Approach 2:
The patent applies different security qualities to different parts of the system. The new RPC interface implements stricter input validation and parameter checking compared to the legacy interface, creating localized security enhancements where they are most needed without affecting overall system compatibility.
2Reliability
If deep input validation is performed on all RPC parameters, then security against malicious attacks is improved, but processing time and computational resources increase
Solution Approach 1:
The patent performs preliminary validation by checking the RPC opcode against a whitelist of allowed operations before processing the actual RPC parameters. This early rejection of unauthorized operations prevents unnecessary deep validation of malicious payloads, reducing overall processing time while maintaining security.
Solution Approach 2:
The patent replaces exhaustive deep validation of all parameters with a more efficient validation mechanism that checks parameter types and formats against predefined schemas. This substitution uses structured validation rules rather than brute-force checking, reducing computational overhead while maintaining security effectiveness.
3Adaptability or versatility
If the database exposes all functionality across the network, then client functionality and versatility are improved, but unauthorized access and malicious exploitation risks increase
Solution Approach 1:
The patent extracts dangerous or unnecessary functionality from the network-exposed RPC interface. By removing unsupported opcodes and limiting the new RPC interface to only essential, well-audited operations, the patent eliminates potential attack vectors while preserving core functionality needed by clients.
Solution Approach 2:
The patent applies preliminary security measures by validating RPC parameters against predefined schemas and whitelisting allowed operations before execution. This preventive approach blocks potential exploitation attempts before they can reach vulnerable code paths, countering malicious actions in advance.
Data Source
AI summary
Techniques described herein improve database security by reducing network attack surface area in conjunction with deep input validation. In an embodiment, a database session receives one or more network packets sent via a network, the database session including a database session state that specifies one or more database privileges. The database session reads said one or more network packets into one or more request-packet-buffers, wherein said one or more request-packet-buffers include an RPC op code for a database operation. Based on the one or more database privileges associated with the user associated with the database session, the database session determines whether the RPC op code may be executed. In response to determining that the RPC op code may be executed by said database session, the RPC op code is executed. In response to determining that the op code may not be executed by said database session, the execution of the RPC op code is prevented.


