Protected Shell Command Validation for Granular Access Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current system administration practices offer only 'all-or-nothing' access, failing to provide differentiated access levels for system administrators, which can lead to unintended changes or access to sensitive data.

Innovation Solution

Implementing a protected shell that validates commands and scripts before execution, categorizing them as 'GO', 'NOT SURE', or 'NO GO' based on predefined policies, and simulating their effects to prevent unauthorized changes, ensuring access is limited to appropriate actions based on user roles and context.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If system administrators are given full root access to perform system management tasks, then they can execute any command or script, but they risk making unintended changes or accessing sensitive data due to lack of differentiated access control

Engineering Contradiction:
Improveaccess control granularityVSAvoidsystem safety
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments root access into multiple levels (full root access, partial root access, and no root access) based on user roles and specific tasks. The sudoers configuration file is divided into multiple sections, each granting different degrees of access to different users for different commands, thereby enabling fine-grained access control while maintaining system safety

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary validation of commands and scripts before execution by checking them against a policy database. The system pre-defines which commands are allowed for each user role and validates user inputs against these predefined policies before granting execution, preventing unintended changes before they occur

Inventive Principle:
Principle #10Preliminary action

2Reliability

If a protected shell validates all commands and scripts before execution, then system safety is improved, but command execution time increases due to validation overhead

Engineering Contradiction:
Improvecommand validation accuracyVSAvoidcommand execution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges the validation logic with the shell execution environment by integrating the policy database and validation routines directly into the protected shell. This allows commands to be validated in-place during the normal shell operation flow, reducing the overhead of separate validation steps and improving execution speed while maintaining validation accuracy

Inventive Principle:
Principle #5Merging (Combining)

3Measurement precision

If the protected shell implements detailed policy validation for each command, then access control precision is improved, but the complexity of the system increases

Engineering Contradiction:
Improveaccess control precisionVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The protected shell implements self-service by automatically validating commands against the policy database and enforcing access control rules without requiring external intervention. The system autonomously checks user credentials, validates command parameters, and determines whether to allow or deny execution based on predefined policies, reducing the need for complex external validation mechanisms

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10452850B2Protected shell for risk validation
Publication Date: 2019.10.22 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10452850B2 patent drawing
  • US10452850B2 patent drawing
  • US10452850B2 patent drawing

AI summary

On a computer system, a shell is invoked, through which a plurality of commands and/or scripts can be executed. Individual ones of the plurality of commands and/or scripts are validated. Given individual ones of the plurality of commands and/or scripts, for which the validation is successful, are executed via the shell.