IP Library Granted Patent US 12,608,482
Granted Patent B2
US 12,608,482 · App. 16/672,183 · Granted Apr 21, 2026

Determining a security score in binary software code

Inventors: Adam John Boulton (Wirral, GB); William James McCourt (West Lothian, GB); Paul Compton Hirst (Tiverton, GB); Benjamin John Godwood (Chipping Norton, GB)
Assignee: BlackBerry Limited
G06F21/577G06F9/541G06F2221/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,608,482
App. No.
16/672,183
Granted
Apr 21, 2026
Kind
B2
Abstract

Systems, methods, and software can be used to determine a security score of a binary software code. In some aspects, a computer-implemented method comprises: receiving a binary software code; inspecting the binary software code to determine at least one Common Vulnerability Scoring Standard (CVSS) factor; and determining a CVSS score based on the at least one CVSS factor.

Claims (65)

1 . A computer-implemented method, comprising:

receiving, by at least one hardware processor on a software service platform, a binary software code;

inspecting, by the at least one hardware processor, the binary software code to determine at least one Common Vulnerability Scoring Standard (CVSS) factor, wherein the at least one CVSS factor comprises an attack vector factor, and the inspecting the binary software code comprises:

scanning a byte stream of the binary software code to detect text strings related to remote network functionalities that will be performed by a device executing the binary software code, wherein detecting text strings related to the remote network functionalities comprises detecting text strings corresponding to a network protocol in the binary software code;

determining a first numerical number of the text strings related to remote network functionalities;

comparing the first numerical number of text strings related to the remote network functionalities and a first configured number threshold for remote network functionalities;

determining a second numerical number of text strings related to local network functionalities that will be performed by the device executing the binary software code;

comparing the second numerical number of text strings related to local remote network and a second configured number threshold for local network functionalities; and

determining the attack vector factor based on the comparing between the first numerical number and the first configured number threshold for remote network functionalities and the comparing between the second numerical number and the second configured number threshold for local network functionalities;

determining, by the at least one hardware processor, a CVSS score based on the at least one CVSS factor; and

outputting, by the software service platform, the CVSS score.

2 . The method of claim 1 , wherein the at least one CVSS factor comprises at least one of an attack complexity factor, a privileges required factor, a user interaction factor, a scope factor, a confidentiality factor, an integrity factor, or an availability factor.

3 . The method of claim 1 , wherein the at least one CVSS factor comprises an attack complexity factor, and the inspecting the binary software code comprises:

determining a number of routines related to compiler defense, obfuscation, validation, or exception handling in the binary software code, and

determining the attack complexity factor based on the number of routines related to compiler defense, obfuscation, validation, or exception handling.

4 . The method of claim 1 , wherein the at least one CVSS factor comprises a privileges required factor, and the inspecting the binary software code comprises:

determining a number of application program interfaces (APIs) related to privilege processing in the binary software code, and

determining the privileges required factor based on the number of APIs related to privilege processing.

5 . The method of claim 1 , wherein the at least one CVSS factor comprises a user interaction factor, and the inspecting the binary software code comprises:

determining a number of routines related to user input in the binary software code, and

determining the user interaction factor based on the number of routines related to user input.

6 . A server, comprising:

at least one hardware processor; and

one or more computer-readable storage media coupled to the at least one hardware processor and storing programming instructions for execution by the at least one hardware processor, wherein the programming instructions, when executed, cause the at least one hardware processor to perform operations comprising:

receiving a binary software code;

inspecting the binary software code to determine at least one Common Vulnerability Scoring Standard (CVSS) factor, wherein the at least one CVSS factor comprises an attack vector factor, and the inspecting the binary software code comprises:

scanning a byte stream of the binary software code to detect text strings related to remote network functionalities that will be performed by a device executing the binary software code, wherein detecting text strings related to the remote network functionalities comprises detecting text strings corresponding to a network protocol in the binary software code;

determining a first numerical number of the text strings related to remote network functionalities;

comparing the first numerical number of text strings related to the remote network functionalities and a first configured number threshold for remote network functionalities;

determining a second numerical number of text strings related to local network functionalities that will be performed by the device executing the binary software code;

comparing the second numerical number of text strings related to local remote network and a second configured number threshold for local network functionalities; and

determining the attack vector factor based on the comparing between the first numerical number and the first configured number threshold for remote network functionalities and the comparing between the second numerical number and the second configured number threshold for local network functionalities;

determining a CVSS score based on the at least one CVSS factor; and

outputting, at the server, the CVSS score.

7 . The server of claim 6 , wherein the at least one CVSS factor comprises at least one of an attack complexity factor, a privileges required factor, a user interaction factor, a scope factor, a confidentiality factor, an integrity factor, or an availability factor.

8 . The server of claim 6 , wherein the at least one CVSS factor comprises an attack complexity factor, and the inspecting the binary software code comprises:

determining a number of routines related to compiler defense, obfuscation, validation, or exception handling in the binary software code, and

determining the attack complexity factor based on the number of routines related to compiler defense, obfuscation, validation, or exception handling.

9 . The server of claim 6 , wherein the at least one CVSS factor comprises a privileges required factor, and the inspecting the binary software code comprises:

determining a number of application program interfaces (APIs) related to privilege processing in the binary software code, and

determining the privileges required factor based on the number of APIs related to privilege processing.

10 . The server of claim 6 , wherein the at least one CVSS factor comprises a user interaction factor, and the inspecting the binary software code comprises:

determining a number of routines related to user input in the binary software code, and

determining the user interaction factor based on the number of routines related to user input.

11 . One or more non-transitory computer-readable media containing instructions which, when executed, cause a computing device to perform operations comprising:

receiving, by at least one hardware processor, a binary software code;

inspecting, by the at least one hardware processor, the binary software code to determine at least one Common Vulnerability Scoring Standard (CVSS) factor, wherein the at least one CVSS factor comprises an attack vector factor, and the inspecting the binary software code comprises:

scanning a byte stream of the binary software code to detect text strings related to remote network functionalities that will be performed by a device executing the binary software code, wherein detecting text strings related to the remote network functionalities comprises detecting text strings corresponding to a network protocol in the binary software code;

determining a first numerical number of the text strings related to remote network functionalities;

comparing the first numerical number of text strings related to the remote network functionalities and a first configured number threshold for remote network functionalities;

determining a second numerical number of text strings related to local network functionalities that will be performed by the device executing the binary software code;

comparing the second numerical number of text strings related to local remote network and a second configured number threshold for local network functionalities; and

determining the attack vector factor based on the comparing between the first numerical number and the first configured number threshold for remote network functionalities and the comparing between the second numerical number and the second configured number threshold for local network functionalities;

determining, by the at least one hardware processor, a CVSS score based on the at least one CVSS factor; and

outputting, at the computing device, the CVSS score.

12 . The computer-readable media of claim 11 , wherein the at least one CVSS factor comprises at least one of an attack complexity factor, a privileges required factor, a user interaction factor, a scope factor, a confidentiality factor, an integrity factor, or an availability factor.

13 . The computer-readable media of claim 11 , wherein the at least one CVSS factor comprises an attack complexity factor, and the inspecting the binary software code comprises:

determining a number of routines related to compiler defense, obfuscation, validation, o exception handling in the binary software code, and

determining the attack complexity factor based on the number of routines related to compiler defense, obfuscation, validation, or exception handling.

14 . The computer-readable media of claim 11 , wherein the at least one CVSS factor comprises a privileges required factor, and the inspecting the binary software code comprises:

determining a number of application program interfaces (APIs) related to privilege processing in the binary software code, and

determining the privileges required factor based on the number of APIs related to privilege processing.

15 . The computer-readable media of claim 11 , wherein the at least one CVSS factor comprises a user interaction factor, and the inspecting the binary software code comprises:

determining a number of routines related to user input in the binary software code, and

determining the user interaction factor based on the number of routines related to user input.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2020
From: BOULTON, ADAM JOHN; MCCOURT, WILLIAM JAMES; HIRST, PAUL COMPTON; GODWOOD, BENJAMIN JOHN
To: BLACKBERRY UK LIMITED
Reel/Frame 053298/0932 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2020
From: BLACKBERRY UK LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 053274/0035 →
Continuity (1)
Related Publication 20210133330A1 · May 6, 2021
References Cited (62)
US 7487544B2 · Schultz · 2009 [cited by examiner]
US 7519997B2 · Shipp · 2009 [cited by examiner]
US 8171549B2 · Radatti · 2012 [cited by examiner]
US 8819856B1 · Tiffe · 2014 [cited by examiner]
US 9135442B1 · Kennedy · 2015 [cited by examiner]
US 9558348B1 · Muttik · 2017 [cited by examiner]
US 10229273B2 · Sheth · 2019 [cited by examiner]
US 10356108B2 · Li · 2019 [cited by examiner]
US 10868825B1 · Dominessy · 2020 [cited by examiner]
US 10929532B1 · Margaritelli · 2021 [cited by examiner]
US 11222113B1 · Li · 2022 [cited by examiner]
US 11544383B2 · Ofek · 2023 [cited by examiner]
US 11556640B1 · Tully · 2023 [cited by examiner]
US 20030065926A1 · Schultz · 2003 [cited by examiner]
US 20040111713A1 · Rioux · 2004 [cited by applicant]
US 20060026675A1 · Cai · 2006 [cited by examiner]
US 20060053295A1 · Madhusudan · 2006 [cited by examiner]
US 20110145921A1 · Mathur · 2011 [cited by examiner]
US 20120023112A1 · Levow · 2012 [cited by examiner]
US 20120159625A1 · Jeong · 2012 [cited by examiner]
US 20120304300A1 · LaBumbard · 2012 [cited by applicant]
US 20130097706A1 · Titonis · 2013 [cited by examiner]
US 20130276118A1 · Kashyap · 2013 [cited by examiner]
US 20140215614A1 · Beskrovny · 2014 [cited by examiner]
US 20150135323A1 · Guan · 2015 [cited by examiner]
US 20170046510A1 · Chen · 2017 [cited by examiner]
US 20170201532A1 · Go · 2017 [cited by examiner]
US 20170262633A1 · Miserendino · 2017 [cited by examiner]
US 20170277890A1 · Hayrynen · 2017 [cited by examiner]
US 20170300691A1 · Upchurch · 2017 [cited by examiner]
US 20170316213A1 · McClintock et al. · 2017 [cited by applicant]
US 20170329701A1 · Patnaik · 2017 [cited by examiner]
US 20180054449A1 · Nandha Premnath · 2018 [cited by examiner]
US 20180129812A1 · Kang et al. · 2018 [cited by applicant]
US 20180285567A1 · Raman · 2018 [cited by examiner]
US 20180309854A1 · Lee · 2018 [cited by examiner]
US 20190102564A1 · Li et al. · 2019 [cited by applicant]
US 20190205542A1 · Kao · 2019 [cited by examiner]
US 20190213323A1 · Tumblin · 2019 [cited by examiner]
US 20190250911A1 · Lospinuso · 2019 [cited by examiner]
US 20190258803A1 · Murthy · 2019 [cited by examiner]
US 20190377565A1 · Murthy · 2019 [cited by examiner]
US 20200082094A1 · Mcallister · 2020 [cited by examiner]
US 20200082095A1 · Mcallister · 2020 [cited by examiner]
US 20200092306A1 · Jusko · 2020 [cited by examiner]
US 20200097656A1 · Burke · 2020 [cited by examiner]
US 20200097662A1 · Hufsmith · 2020 [cited by examiner]
US 20200137126A1 · Yawalkar · 2020 [cited by examiner]
US 20200242254A1 · Velur · 2020 [cited by examiner]
US 20200364336A1 · Boulton · 2020 [cited by examiner]
US 20200380124A1 · Yavuz · 2020 [cited by examiner]
EP 2756366B1 · 2020 [cited by examiner]
WO WO2017197519A1 · 2017 [cited by examiner]
WO WO2020161622A1 · 2020 [cited by examiner]
M. G. Schultz, E. Eskin, F. Zadok and S. J. Stolfo, “Data mining methods for detection of new malicious executables,” Proceedings 2001 IEEE Symposium on Security and Privacy. S&P 2001, Oakland, CA, USA, 2001, pp. 38-49,… [cited by examiner]
I. Santos, F. Brezo, X. Ugarte-Pedrero, and P. G. Bringas, ‘Opcode sequences as representation of executables for data-mining-based unknown malware detection’, Information Sciences, vol. 231, pp. 64-82, 2013. [cited by examiner]
G. Balan and A. S. Popescu, “Detecting Java Compiled Malware using Machine Learning Techniques,” 2018 20th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), Timisoara, Romania… [cited by examiner]
Kim, B., Im, C., & Jung, H. (2010). Suspicious Malicious Web Site Detection with Strength Analysis of a JavaScript Obfuscation. [cited by examiner]
Notice of Allowance issued in U.S. Appl. No. 16/667,896 on Sep. 2, 2021, 10 pages. [cited by applicant]
Extended European Search Report issued in European Application No. 20199109.8 on Jan. 13, 2021, 8 pages. [cited by applicant]
Non-Final Office Action issued in U.S. Appl. No. 16/667,896 on Jun. 17, 2021, 37 pages. [cited by applicant]
Communication Pursuant to Article 94 (3) EPC in European Appln No. 20199109.8, dated Jan. 5, 2023, 6 pages. [cited by applicant]