IP Library Granted Patent US 12,547,728
Granted Patent B2
US 12,547,728 · App. 17/695,473 · Granted Feb 10, 2026

Determining security risks in binary software code using a software relationship model

Inventor: Adam John Boulton (Wirral, GB)
Assignee: BlackBerry Limited
G06F21/577G06F2221/033
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,547,728
App. No.
17/695,473
Granted
Feb 10, 2026
Kind
B2
Abstract

Systems, methods, and software can be used to determine security risks in binary software using a software relationship model. In some aspects, a method comprises: receiving a software relationship model that identifies: (i) a set of software components, and (ii) communication interfaces between software components in the set of software components; receiving a set of binary software code; generating a risk assessment for the set of binary software code based on the software relationship model; and generating a notification, based on the risk assessment for the set of binary software code, that indicates security risks associated with the set of binary software code.

Claims (70)

1 . A computer-implemented method comprising:

receiving a software relationship model that identifies: (i) a set of software components, and (ii) communication interfaces between software components in the set of software components;

receiving a set of binary software code;

generating a risk assessment for the set of binary software code based on the software relationship model, wherein generating the risk assessment for the set of binary software code based on the software relationship model comprises:

identifying a software component that corresponds to the set of binary software code, wherein the software component is identified by mapping the set of binary software code to the software component whose operations are performed by the set of binary software code;

determining, from the software relationship model, one or more communication interfaces associated with the identified software component; and

determining a risk assessment for the set of binary software code based on the communication interfaces associated with the identified software component, wherein each of the communication interfaces is associated with a communication protocol, and determining the risk assessment for the set of binary software code based on the communication interfaces comprises:

identifying, by the software relationship model, a communication protocol implemented by the communication interface;

identifying a set of types of possible security risks corresponding to the identified communication protocol;

scanning the set of binary software code to evaluate each type of possible security risk in the set of types of possible security risks corresponding to the identified communication protocol; and

determining the risk assessment for the set of binary software code based at least in part on the evaluation of the set of types of possible security risks; and

generating a notification, based on the risk assessment for the set of binary software code, that indicates security risks associated with the set of binary software code.

2 . The method of claim 1 , wherein determining the risk assessment for the set of binary software code based on the communication interfaces associated with the identified software component comprises:

determining a value of a feature of the set of binary software code; and

determining the risk assessment for the set of binary software code based at least in part on the value of the feature of the set of binary software code and a distribution of values of the feature for binary software code associated with a communication interface implementing a same communication protocol as a communication interface associated with the identified software component.

3 . The method of claim 2 , wherein the value of the feature of the set of binary software code characterizes a number of times that a particular software instruction is included in the set of binary software code.

4 . The method of claim 1 , wherein determining the risk assessment for the set of binary software code based on the communication interfaces associated with the identified software component comprises:

identifying a security risk for binary software code corresponding to a different software component that communicates with the identified software component by way of a communication interface; and

determining the risk assessment for the binary software code corresponding to the identified software component based at least in part of the security risk identified for the binary software code corresponding to the different software component.

5 . The method of claim 4 , wherein determining the risk assessment for the binary software code corresponding to the identified software component based at least in part on the security risk identified for the binary software code corresponding to the different software component comprises:

determining a possible security risk for the binary software code corresponding to the identified software component based on the security risk identified for the binary software code corresponding to the different software component and a communication protocol implemented by the communication interface between the identified software component and the different software component.

6 . A system comprising:

one or more computers; and

one or more storage devices communicatively coupled to the one or more computers, wherein the one or more storage devices store instructions that, when executed by the one or more computers, cause the one or more computers to perform operations comprising:

receiving a software relationship model that identifies: (i) a set of software components, and (ii) communication interfaces between software components in the set of software components;

receiving a set of binary software code;

generating a risk assessment for the set of binary software code based on the software relationship model, wherein generating the risk assessment for the set of binary software code based on the software relationship model comprises:

identifying a software component that corresponds to the set of binary software code, wherein the software component is identified by mapping the set of binary software code to the software component whose operations are performed by the set of binary software code;

determining, from the software relationship model, one or more communication interfaces associated with the identified software component; and

determining a risk assessment for the set of binary software code based on the communication interfaces associated with the identified software component, wherein each of the communication interfaces is associated with a communication protocol, and determining the risk assessment for the set of binary software code based on the communication interfaces comprises:

identifying, by the software relationship model, a communication protocol implemented by the communication interface;

identifying a set of types of possible security risks corresponding to the identified communication protocol;

scanning the set of binary software code to evaluate each type of possible security risk in the set of types of possible security risks corresponding to the identified communication protocol; and

determining the risk assessment for the set of binary software code based at least in part on the evaluation of the set of types of possible security risks; and

generating a notification, based on the risk assessment for the set of binary software code, that indicates security risks associated with the set of binary software code.

7 . The system of claim 6 , wherein determining the risk assessment for the set of binary software code based on the communication interfaces associated with the identified software component comprises:

identifying a set of possible security risks based on the communication interfaces associated with the identified software component;

scanning the set of binary software code to evaluate the set of security risks; and

determining the risk assessment for the set of binary software code based at least in part on the evaluation of the set of possible security risks.

8 . The system of claim 7 , wherein identifying a set of possible security risks based on the communication interfaces associated with the identified software component comprises, for each communication interface associated with the identified software component:

identifying, by the software relationship model, a communication protocol implemented by the communication interface; and

determining one or more possible security risks corresponding to the communication protocol.

9 . The system of claim 6 , wherein determining the risk assessment for the set of binary software code based on the communication interfaces associated with the identified software component comprises:

determining a value of a feature of the set of binary software code; and

determining the risk assessment for the set of binary software code based at least in part on the value of the feature of the set of binary software code and a distribution of values of the feature for binary software code associated with a communication interface implementing a same communication protocol as a communication interface associated with the identified software component.

10 . The system of claim 9 , wherein the value of the feature of the set of binary software code characterizes a number of times that a particular software instruction is included in the set of binary software code.

11 . The system of claim 6 , wherein determining the risk assessment for the set of binary software code based on the communication interfaces associated with the identified software component comprises:

identifying a security risk for binary software code corresponding to a different software component that communicates with the identified software component by way of a communication interface; and

determining the risk assessment for the binary software code corresponding to the identified software component based at least in part of the security risk identified for the binary software code corresponding to the different software component.

12 . The system of claim 11 , wherein determining the risk assessment for the binary software code corresponding to the identified software component based at least in part on the security risk identified for the binary software code corresponding to the different software component comprises:

determining a possible security risk for the binary software code corresponding to the identified software component based on the security risk identified for the binary software code corresponding to the different software component and a communication protocol implemented by the communication interface between the identified software component and the different software component.

13 . One or more non-transitory computer storage media storing instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

receiving a software relationship model that identifies: (i) a set of software components, and (ii) communication interfaces between software components in the set of software components;

receiving a set of binary software code;

generating a risk assessment for the set of binary software code based on the software relationship model, wherein generating the risk assessment for the set of binary software code based on the software relationship model comprises:

identifying a software component that corresponds to the set of binary software code, wherein the software component is identified by mapping the set of binary software code to the software component whose operations are performed by the set of binary software code;

determining, from the software relationship model, one or more communication interfaces associated with the identified software component; and

determining a risk assessment for the set of binary software code based on the communication interfaces associated with the identified software component, wherein each of the communication interfaces is associated with a communication protocol, and determining the risk assessment for the set of binary software code based on the communication interfaces comprises:

identifying, by the software relationship model, a communication protocol implemented by the communication interface;

identifying a set of types of possible security risks corresponding to the identified communication protocol;

scanning the set of binary software code to evaluate each type of possible security risk in the set of types of possible security risks corresponding to the identified communication protocol; and

determining the risk assessment for the set of binary software code based at least in part on the evaluation of the set of types of possible security risks; and

generating a notification, based on the risk assessment for the set of binary software code, that indicates security risks associated with the set of binary software code.

14 . The non-transitory computer storage media of claim 13 , wherein determining the risk assessment for the set of binary software code based on the communication interfaces associated with the identified software component comprises:

identifying a set of possible security risks based on the communication interfaces associated with the identified software component;

scanning the set of binary software code to evaluate the set of security risks; and

determining the risk assessment for the set of binary software code based at least in part on the evaluation of the set of possible security risks.

15 . The non-transitory computer storage media of claim 14 , wherein identifying a set of possible security risks based on the communication interfaces associated with the identified software component comprises, for each communication interface associated with the identified software component:

identifying, by the software relationship model, a communication protocol implemented by the communication interface; and

determining one or more possible security risks corresponding to the communication protocol.

Assignments (5)
CHANGE OF NAME Recorded Jul 21, 2022
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 060813/0858 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME FROM RESEARCH IN MOTION LIMITED TO BLACKBERRY UK LIMITED PREVIOUSLY RECORDED AT REEL: 060127 FRAME: 0484. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 19, 2022
From: BOULTON, ADAM JOHN
To: BLACKBERRY UK LIMITED
Reel/Frame 060729/0407 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNMENT DOCUMENT PREVIOUSLY RECORDED AT REEL: 060127 FRAME: 0484. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 14, 2022
From: BOULTON, ADAM JOHN
To: RESEARCH IN MOTION LIMITED
Reel/Frame 060384/0480 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2022
From: BLACKBERRY UK LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 060159/0781 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2022
From: BOULTON, ADAM JOHN
To: RESEARCH IN MOTION LIMITED
Reel/Frame 060127/0484 →
Continuity (1)
Related Publication 20230297688A1 · Sep 21, 2023
References Cited (14)
US 9749349B1 · Czarny · 2017 [cited by examiner]
US 10607015B1 · Hecht · 2020 [cited by examiner]
US 10984102B2 · Boulton · 2021 [cited by examiner]
US 11113405B2 · Hodgman · 2021 [cited by examiner]
US 11709943B2 · Tokarz · 2023 [cited by examiner]
US 20120222122A1 · Das · 2012 [cited by examiner]
US 20130160130A1 · Mendelev · 2013 [cited by examiner]
US 20160188884A1 · Ayoub et al. · 2016 [cited by applicant]
US 20200082080A1 · Boulton · 2020 [cited by examiner]
US 20200104492A1 · Boulton · 2020 [cited by examiner]
US 20200311281A1 · Boulton · 2020 [cited by examiner]
US 20220405397A1 · Golan · 2022 [cited by examiner]
US 20230177164A1 · Tamboli · 2023 [cited by examiner]
Toolbox.com [online], “Top 10 Threat Modeling Tools in 2021” Dec. 7, 2021, [retrieved on May 4, 2022], retrieved from : URL <https://www.toolbox.com/it-security/vulnerability-management/articles/top-10-threat-modeling-t… [cited by applicant]