IP Library Granted Patent US 12,554,832
Granted Patent B2
US 12,554,832 · App. 18/183,479 · Granted Feb 17, 2026

Automated least privilege assignment

Inventor: Takuya Mishina (Sagamihara, JP)
Assignee: International Business Machines Corporation
G06F21/52G06F9/468G06F21/604G06F2221/2141
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,554,832
App. No.
18/183,479
Granted
Feb 17, 2026
Kind
B2
Abstract

Described are techniques for automated least privilege role definition. The techniques include enumerating access patterns including a subject, a verb, an object location, and an object type of respective Application Programming Interface (API) calls in source code associated with a binary program. For a first function call in the source code, the technique is configured to generate a first object type based on an API definition associated with the function call, a first verb based on an API-to-verb matching database, a first subject based on a program-to-subject mapping database and the binary program, and a first object location based on the API definition associated with the function call. The technique further includes generating a Role Based Access Control (RBAC) role definition based on the enumerated access patterns.

Claims (51)

1 . A computer-implemented method comprising:

training a machine learning model on historical datasets of Application Programming Interface (API) definitions, API-to-verb mappings, and program-to-subject mappings;

inputting source code associated with a binary program into the machine learning model;

outputting, from the machine learning model, access patterns including a subject, a verb, an object location, and an object type of respective API calls in the source code associated with the binary program, wherein for a first function call in the source code the machine learning model is configured to generate output:

a first object type based on an API definition associated with the function call;

a first verb;

a first subject; and

a first object location based on the API definition associated with the function call, wherein the first object location is a null object location, and wherein the null object location is set to a location of a corresponding binary program using runtime analysis;

generating a Role Based Access Control (RBAC) role definition based on the access patterns:

applying the RBAC role definition to a user account; and

in response to the user account requesting access to the source code from an endpoint device, limiting access to the source code according to the RBAC role definition, wherein the RBAC role definition enforces access privileges determined from runtime analysis when an object location is null.

2 . The method of claim 1 , wherein the null object location is provided as a command line argument.

3 . The method of claim 1 , wherein the null object location is provided as an environmental variable.

4 . The method of claim 1 , wherein the API calls in the source code include direct calls and indirect calls.

5 . The method of claim 1 , wherein the first function call comprises a HyperText Transfer Protocol (HTTP) call.

6 . The method of claim 5 , wherein the first object type is based on a path component of an API address.

7 . The method of claim 5 , wherein the first object location is based on an XAuth-Resource Group header value.

8 . The method of claim 5 , wherein the first subject is based on an Authorization header value of a request command.

9 . The method of claim 5 , wherein the first verb is read for a get ( ) function call.

10 . The method of claim 5 , wherein the first verb is write for a function call selected from a group consisting of: post ( ) put ( ) patch ( ) and delete ( ).

11 . The method of claim 1 , wherein the first object location is based on a namespace.

12 . The method of claim 1 , wherein the RBAC role definition is formatted, at least in part, as JAVASCRIPT® Object Notation (JSON) data.

13 . A computer program product comprising one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions comprising instructions configured to cause one or more processors to perform a method comprising:

training a machine learning model on historical datasets of Application Programming Interface (API) definitions, API-to-verb mappings, and program-to-subject mappings;

inputting source code associated with a binary program into the machine learning model;

outputting, from the machine learning model, access patterns including a subject, a verb, an object location, and an object type of respective API calls in the source code associated with the binary program, wherein for a first function call in the source code the machine learning model is configured to output:

a first object type based on an API definition associated with the function call;

a first verb;

a first subject; and

a first object location based on the API definition associated with the function call, wherein the first object location is a null object location, and wherein the null object location is set to a location of a corresponding binary program using runtime analysis;

generating a Role Based Access Control (RBAC) role definition based on the access patterns;

applying the RBAC role definition to a user account; and in response to the user account requesting access to the source code from an endpoint device, limiting access to the source code according to the RBAC role definition, wherein the RBAC role definition enforces access privileges determined from runtime analysis when an object location is null.

14 . The computer program product of claim 13 , wherein the null object location is provided as a command line argument.

15 . The computer program product of claim 13 , wherein the null object location is provided as an environmental variable.

16 . A system comprising:

one or more processors; and

one or more computer readable storage media storing program instructions which, when executed by the one or more processors, are configured to cause the one or more processors to perform a method comprising:

training a machine learning model on historical datasets of Application Programming Interface (API) definitions, API-to-verb mappings, and program-to-subject mappings;

inputting source code associated with a binary program into the machine learning model;

outputting, from the machine learning model, access patterns including a subject, a verb, an object location, and an object type of respective API calls in the source code associated with the binary program, wherein for a first function call in the source code the machine learning model is configured to output:

a first object type based on an API definition associated with the function call;

a first verb;

a first subject based; and

a first object location based on the API definition associated with the function call,

wherein the first object location is a null object location, and wherein the null object location is set to a location of a corresponding binary program using runtime analysis; generating a Role Based Access Control (RBAC) role definition based on the access patterns;

applying the RBAC role definition to a user account; and

in response to the user account requesting access to the source code from an endpoint device, limiting access to the source code according to the RBAC role definition, wherein the RBAC role definition enforces access privileges determined from runtime analysis when an object location is null.

17 . The system of claim 16 , wherein the null object location is provided as a command line argument.

18 . The system of claim 16 , wherein the null object location is provided as an environmental variable.

19 . The system of claim 16 , wherein the API calls in the source code include direct calls and indirect calls.

20 . The system of claim 16 , wherein the first function call comprises a HyperText Transfer Protocol (HTTP) call, and wherein the first object type is based on a path component of an API address.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2023
From: MISHINA, TAKUYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 062976/0588 →
Continuity (1)
Related Publication 20240311468A1 · Sep 19, 2024
References Cited (16)
US 8726392B1 · McCorkendale · 2014 [cited by examiner]
US 9749349B1 · Czarny · 2017 [cited by examiner]
US 10803166B1 · Terkowitz · 2020 [cited by applicant]
US 11095506B1 · Erblat · 2021 [cited by examiner]
US 20110083069A1 · Paul · 2011 [cited by examiner]
US 20200342449A1 · Lai · 2020 [cited by examiner]
US 20200410115A1 · Marinov · 2020 [cited by applicant]
US 20210084040A1 · Sakowicz · 2021 [cited by applicant]
US 20210097477A1 · Zhang · 2021 [cited by examiner]
US 20210329003A1 · Segal · 2021 [cited by applicant]
US 20220237290A1 · Villegas · 2022 [cited by examiner]
US 20230094856A1 · Ithal · 2023 [cited by examiner]
US 20240098090A1 · Haddad · 2024 [cited by examiner]
CN 114465807B · 2023 [cited by examiner]
Khalid, “Built Kubernetes? Now Try These 5 RBAC Tools to Audit Permissions,” Geekflare, Oct. 31, 2022, 11 pages. [cited by applicant]
Shimizu et al., “Test-Based Least Privilege Discovery on Cloud Infrastructure as Code,” 2020 IEEE International Conference on Cloud Computing Technology and Science (CloudCom), 2020, pp. 1-8. [cited by applicant]