Fine-Grained Access Policy for Software Package Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing operating system access control mechanisms are coarsely grained and incompatible, leading to improper usage and security violations when unprivileged users perform privileged operations like software package updates, as they often rely on group membership or console login, lacking fine-grained control and proper authorization.

Innovation Solution

Implementing an authentication agent in the application space of an operating system, coupled with an access control mechanism in the kernel space, to enforce a fine-grained access policy that allows unprivileged users to perform package-related privileged operations based on a local access policy file, which can be configured for individual users, groups, or roles, and specific packages, ensuring proper authorization and minimizing security risks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If OS-specific access control mechanisms (group membership, console login) are used to grant unprivileged users permission to perform privileged operations, then users can perform privileged operations, but the access control is coarsely grained and incompatible across different systems

Engineering Contradiction:
Improveability to perform privileged operationsVSAvoidcompatibility across different OS distributions
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent segments the access control mechanism into two distinct components: an authentication agent running in application space that handles policy evaluation and decision-making, and a kernel space access control mechanism that enforces decisions. This segmentation allows the authentication agent to implement distribution-independent logic while the kernel space provides OS-specific enforcement, resolving the compatibility issue across different Linux distributions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The authentication agent serves as an intermediary layer between unprivileged users and the kernel space access control mechanism. It receives requests from unprivileged users, evaluates them against fine-grained policies stored in local access policy files, and mediates by granting or denying access appropriately. This intermediary approach enables fine-grained control without requiring changes to the underlying kernel space mechanisms of different distributions.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If group membership is used to grant access to privileged operations, then users can perform privileged operations, but users can become members of groups again without proper authorization and misuse sudo to run applications as super user

Engineering Contradiction:
Improvepermission to perform privileged operationsVSAvoidsecurity and authorization control
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent implements preliminary action by requiring unprivileged users to authenticate and obtain explicit authorization before performing privileged operations. The authentication agent evaluates each request against fine-grained policies defined in local access policy files, checking user identity, requested operation, and target package before granting access. This preliminary authorization step prevents unauthorized group membership exploitation and ensures that even if users are added to groups, they cannot perform privileged operations without proper policy-based authorization.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies local quality by implementing fine-grained access control policies that are specific to individual users, groups, roles, and packages. Instead of blanket group-based permissions, the system evaluates each access request individually against policies that can differentiate between different users attempting different operations on different packages. This localized evaluation prevents misuse of group membership and sudo by ensuring each operation is independently authorized.

Inventive Principle:
Principle #3Local quality

3Reliability

If fine-grained access policy is implemented per package and user, then security and authorization control are improved, but system complexity increases

Engineering Contradiction:
Improveauthorization control and securityVSAvoidaccess control system structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent achieves universality by designing the authentication agent to handle multiple functions within a single component: it evaluates authentication credentials, retrieves and parses local access policy files, determines user identity and group membership, evaluates requested operations against fine-grained policies, and communicates decisions to the kernel space. This multi-functional approach consolidates what would otherwise require multiple separate components, reducing system complexity while maintaining fine-grained control.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS8856953B2Access policy for package update processes
Publication Date: 2014.10.07 RED HAT INC
  • US8856953B2 patent drawing
  • US8856953B2 patent drawing
  • US8856953B2 patent drawing

AI summary

Methods and systems for defining and generating fine-grained access policy for authorizing software package updates are provided. The methods of defining and enforcing a package update policy include providing a package update policy file that identifies a set of software packages and users authorized to perform package updates in association with the set of software packages, and storing the policy file on computers in a managed network. When a computer in the managed network receives a request from an unprivileged user to update a software package on the computer, the computer retrieves the package update policy file and determines an authorization of the user to update the software package based on an identity of the user, an identity of the software package, and the policy file. The computer then processes the request based on the determined authorization of the user.