IP Library Granted Patent US 12,355,795
Granted Patent B2
US 12,355,795 · App. 17/391,619 · Granted Jul 8, 2025

Application security posture identifier

Inventors: Patrick Hayes (Malden, MA); Thaddeus William Walsh (Columbia, MD)
Assignee: Harness Inc.
H04L63/1433G06F16/955H04L63/1425
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,355,795
App. No.
17/391,619
Granted
Jul 8, 2025
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for determining the security posture of an application are disclosed. In one aspect, a method includes the actions of receiving data identifying an application. The actions further include determining an FQDN of the application. The actions further include receiving data identifying a computing infrastructure. The actions further include determining a computing instance of the computing infrastructure. The actions further include determining an FQDN of the computing instance. The actions further include determining whether to provide, for output, data indicating whether the FQDN of the application matches the FQDN of the computing instance. The actions further include combining data indicating the vulnerabilities of the application and data indicating the vulnerabilities of the computing instance. The actions further include outputting, to a user associated with the application and to a user associated with the computing infrastructure, the combined data.

Claims (111)

1. A computer-implemented method, comprising:

receiving, by a computing device, data identifying an application;

based on the data identifying the application, determining, by the computing device, a fully qualified domain name of the application;

receiving, by the computing device, data identifying a computing infrastructure;

determining, by the computing device, a computing instance of the computing infrastructure;

determining, by the computing device, a fully qualified domain name of the computing instance;

comparing, by the computing device, the fully qualified domain name of the application to the fully qualified domain name of the computing instance;

based on comparing the fully qualified domain name of the application to the fully qualified domain name of the computing instance, determining, by the computing device, whether the fully qualified domain name of the application matches the fully qualified domain name of the computing instance; and

based on determining whether the fully qualified domain name of the application matches the fully qualified domain name of the computing instance, determining, by the computing device, whether to provide, for output, data indicating whether the fully qualified domain name of the application matches the fully qualified domain name of the computing instance.

2. The method of claim 1 , wherein:

determining whether the fully qualified domain name of the application matches the fully qualified domain name of the computing instance comprises determining that the fully qualified domain name of the application does not match the fully qualified domain name of the computing instance, and

determining, whether to provide, for output, the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance comprises determining to bypass providing for output the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance.

3. The method of claim 1 , wherein:

determining whether the fully qualified domain name of the application matches the fully qualified domain name of the computing instance comprises determining that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance,

determining, whether to provide, for output, the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance comprises determining to provide, for output, the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance, and

the method comprises:

providing, for output by the computing device and to an additional computing device that is configured to identify vulnerabilities in the application or the computing instance, the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance.

4. The method of claim 1 , comprising:

after determining, whether to provide, for output, the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance, determining, by the computing device, an additional computing instance of the computing infrastructure;

determining, by the computing device, a fully qualified domain name of the additional computing instance;

comparing the fully qualified domain name of the application to the fully qualified domain name of the additional computing instance;

based on comparing the fully qualified domain name of the application to the fully qualified domain name of the additional computing instance, determining, by the computing device, whether the fully qualified domain name of the application matches the fully qualified domain name of the additional computing instance; and

based on determining whether the fully qualified domain name of the application matches the fully qualified domain name of the additional computing instance, determining, by the computing device, whether to provide, for output, data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the additional computing instance.

5. The method of claim 1 , comprising:

after determining, whether to provide, for output, the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance, determining, by the computing device, whether there is an additional computing instance of the computing infrastructure.

6. The method of claim 1 , wherein:

receiving the data identifying the application comprises receiving a uniform resource locator (URL) of the application, and

determining the fully qualified domain name of the application comprises:

based on the URL of the application, determining a host identifier of the application;

determining that the host identifier of the application is an internet protocol (IP) address; and

based on the IP address, determining, using a reverse domain name service, the fully qualified domain name of the application.

7. The method of claim 1 , wherein:

receiving the data identifying the application comprises receiving a uniform resource locator (URL) of the application, and

determining the fully qualified domain name of the application comprises:

based on the URL of the application, determining a host identifier of the application;

determining that the host identifier of the application is a host name; and

determining that the host name is the fully qualified domain name of the application.

8. The method of claim 1 , wherein:

receiving the data identifying the application comprises receiving a uniform resource locator (URL) of the application, and

determining the fully qualified domain name of the application comprises:

based on the URL of the application, determining a host identifier of the application;

determining that the host identifier of the application is a host name;

determining that the host name is not a fully qualified domain name; and

based on the host name, determining the fully qualified domain name of the application.

9. The method of claim 1 , wherein:

determining the computing instance of the computing infrastructure comprises determining a host identifier of the computing instance, and

determining the fully qualified domain name of the computing instance comprises:

determining that the host identifier of the computing instance is an internet protocol (IP) address; and

based on the IP address, determining, using a reverse domain name service, the fully qualified domain name of the computing instance.

10. The method of claim 1 , wherein:

determining the computing instance of the computing infrastructure comprises determining a host identifier of the computing instance, and

determining the fully qualified domain name of the computing instance comprises:

determining that the host identifier of the computing instance is a host name; and

determining that the host name is the fully qualified domain name of the computing instance.

11. The method of claim 1 , wherein:

determining the computing instance of the computing infrastructure comprises determining a host identifier of the computing instance, and

determining the fully qualified domain name of the computing instance comprises:

determining that the host identifier of the computing instance is a host name;

determining that the host name is not a fully qualified domain name; and

based on the host name, determining the fully qualified domain name of the computing instance.

12. The method of claim 1 , wherein comparing the fully qualified domain name of the application to the fully qualified domain name of the computing instance comprises:

comparing a string of the fully qualified domain name of the application to a string of the fully qualified domain name of the computing instance.

13. The method of claim 1 , wherein:

determining whether the fully qualified domain name of the application matches the fully qualified domain name of the computing instance comprises determining that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance,

determining, whether to provide, for output, the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance comprises determining to provide, for output, the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance, and

the method comprises:

combining, by the computing device, data indicating the vulnerabilities of the application and data indicating the vulnerabilities of the computing instance;

providing, for output to a user associated with the application, the combined data indicating the vulnerabilities of the application and vulnerabilities of the computing instance; and

providing, for output to a user associated with the computing infrastructure, the combined data indicating the vulnerabilities of the application and vulnerabilities of the computing instance.

14. A system, comprising:

one or more processors; and

memory including a plurality of computer-executable components that are executable by the one or more processors to perform a plurality of actions, the plurality of actions comprising:

receiving, by a computing device, data identifying an application;

based on the data identifying the application, determining, by the computing device, a fully qualified domain name of the application;

receiving, by the computing device, data identifying a computing infrastructure;

determining, by the computing device, a computing instance of the computing infrastructure;

determining, by the computing device, a fully qualified domain name of the computing instance;

comparing, by the computing device, the fully qualified domain name of the application to the fully qualified domain name of the computing instance;

based on comparing the fully qualified domain name of the application to the fully qualified domain name of the computing instance, determining, by the computing device, whether the fully qualified domain name of the application matches the fully qualified domain name of the computing instance; and

based on determining whether the fully qualified domain name of the application matches the fully qualified domain name of the computing instance, determining, by the computing device, whether to provide, for output, data indicating whether the fully qualified domain name of the application matches the fully qualified domain name of the computing instance.

15. The system of claim 14 , wherein:

determining whether the fully qualified domain name of the application matches the fully qualified domain name of the computing instance comprises determining that the fully qualified domain name of the application does not match the fully qualified domain name of the computing instance, and

determining, whether to provide, for output, the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance comprises determining to bypass providing for output the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance.

16. The system of claim 14 , wherein:

determining whether the fully qualified domain name of the application matches the fully qualified domain name of the computing instance comprises determining that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance,

determining, whether to provide, for output, the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance comprises determining to provide, for output, the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance, and

the method comprises:

providing, for output by the computing device and to an additional computing device that is configured to identify vulnerabilities in the application or the computing instance, the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance.

17. The system of claim 14 , wherein the actions comprise:

after determining, whether to provide, for output, the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance, determining, by the computing device, whether there is an additional computing instance of the computing infrastructure.

18. The system of claim 14 , wherein the actions comprise:

after determining, whether to provide, for output, the data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the computing instance, determining, by the computing device, an additional computing instance of the computing infrastructure;

determining, by the computing device, a fully qualified domain name of the additional computing instance;

comparing the fully qualified domain name of the application to the fully qualified domain name of the additional computing instance;

based on comparing the fully qualified domain name of the application to the fully qualified domain name of the additional computing instance, determining, by the computing device, whether the fully qualified domain name of the application matches the fully qualified domain name of the additional computing instance; and

based on determining whether the fully qualified domain name of the application matches the fully qualified domain name of the additional computing instance, determining, by the computing device, whether to provide, for output, data indicating that the fully qualified domain name of the application matches the fully qualified domain name of the additional computing instance.

19. The system of claim 14 , wherein:

receiving the data identifying the application comprises receiving a uniform resource locator (URL) of the application, and

determining the fully qualified domain name of the application comprises:

based on the URL of the application, determining a host identifier of the application;

determining that the host identifier of the application is an internet protocol (IP) address; and

based on the IP address, determining, using a reverse domain name service, the fully qualified domain name of the application.

20. One or more non-transitory computer-readable media of a computing device storing computer-executable instructions that upon execution cause one or more computers to perform acts comprising:

receiving, by a computing device, data identifying an application;

based on the data identifying the application, determining, by the computing device, a fully qualified domain name of the application;

receiving, by the computing device, data identifying a computing infrastructure;

determining, by the computing device, a computing instance of the computing infrastructure;

determining, by the computing device, a fully qualified domain name of the computing instance;

comparing, by the computing device, the fully qualified domain name of the application to the fully qualified domain name of the computing instance;

based on comparing the fully qualified domain name of the application to the fully qualified domain name of the computing instance, determining, by the computing device, whether the fully qualified domain name of the application matches the fully qualified domain name of the computing instance; and

based on determining whether the fully qualified domain name of the application matches the fully qualified domain name of the computing instance, determining, by the computing device, whether to provide, for output, data indicating whether the fully qualified domain name of the application matches the fully qualified domain name of the computing instance.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2026
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
To: HARNESS INC.; HARNESS INTERNATIONAL, INC.
Reel/Frame 075689/0281 →
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2026
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY
To: HARNESS INC.; HARNESS INTERNATIONAL, INC.
Reel/Frame 075689/0062 →
SECURITY INTEREST Recorded Mar 31, 2026
From: HARNESS INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 074240/0707 →
SECURITY INTEREST Recorded Mar 31, 2026
From: HARNESS INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY
Reel/Frame 074240/0665 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2024
From: PROJECT PROTECT MERGER SUB II, LLC
To: HARNESS INC.
Reel/Frame 067979/0848 →
MERGER Recorded Jul 10, 2024
From: ZERONORTH, INC.; PROJECT PROTECT MERGER SUB II, LLC
To: PROJECT PROTECT MERGER SUB II, LLC
Reel/Frame 067954/0404 →
MERGER Recorded Mar 8, 2024
From: ZERONORTH, INC.; PROJECT PROTECT MERGER SUB 1
To: ZERONORTH, INC.
Reel/Frame 066769/0327 →
EMPLOYMENT AGREEMENT Recorded Nov 4, 2021
From: HAYES, PATRICK
To: ZERONORTH, INC.
Reel/Frame 059056/0832 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2021
From: WALSH, THADDEUS WILLIAM
To: ZERONORTH, INC.
Reel/Frame 058024/0729 →
Continuity (1)
Related Publication 20230036680A1 · Feb 2, 2023
References Cited (116)
US 7340726B1 · Chelf et al. · 2008 [cited by applicant]
US 7409376B2 · Jameson · 2008 [cited by applicant]
US 7797590B2 · Kaksonen · 2010 [cited by applicant]
US 8495717B1 · Beacham · 2013 [cited by examiner]
US 8763071B2 · Sinha et al. · 2014 [cited by applicant]
US 8875298B2 · Li et al. · 2014 [cited by applicant]
US 8949931B2 · Ermagan et al. · 2015 [cited by applicant]
US 9065863B1 · Tharakan · 2015 [cited by examiner]
US 9160768B2 · Sikka et al. · 2015 [cited by applicant]
US 9246906B1 · Zhou · 2016 [cited by examiner]
US 9258320B2 · Hayrynen et al. · 2016 [cited by applicant]
US 9262132B1 · Lugton · 2016 [cited by applicant]
US 9378013B2 · Tibble · 2016 [cited by applicant]
US 9443086B2 · Shankar · 2016 [cited by applicant]
US 9503452B1 · Kumar · 2016 [cited by examiner]
US 9521157B1 · D'Aveta · 2016 [cited by examiner]
US 9531726B2 · Iverson et al. · 2016 [cited by applicant]
US 9590880B2 · Ashby et al. · 2017 [cited by applicant]
US 9612943B2 · Boshernitsan et al. · 2017 [cited by applicant]
US 9697362B2 · Kaplan et al. · 2017 [cited by applicant]
US 9921952B2 · Dean et al. · 2018 [cited by applicant]
US 9946525B2 · Tibble et al. · 2018 [cited by applicant]
US 9952790B2 · Kamble · 2018 [cited by applicant]
US 9977904B2 · Khan et al. · 2018 [cited by applicant]
US 10181981B2 · Degioanni · 2019 [cited by applicant]
US 10216611B2 · Dillinger · 2019 [cited by applicant]
US 10261883B2 · Tibble et al. · 2019 [cited by applicant]
US 10303448B2 · Steven et al. · 2019 [cited by applicant]
US 10346294B2 · Schaik · 2019 [cited by applicant]
US 10911558B1 · Witzel · 2021 [cited by examiner]
US 11019114B2 · Cetin et al. · 2021 [cited by applicant]
US 11102058B1 · Hua · 2021 [cited by examiner]
US 11113186B1 · Hussain · 2021 [cited by examiner]
US 11171834B1 · Bockelmann · 2021 [cited by examiner]
US 11240127B1 · Hevenor · 2022 [cited by examiner]
US 11252572B2 · Salmela · 2022 [cited by examiner]
US 11265292B1 · Leviseur · 2022 [cited by examiner]
US 11316822B1 · Gawade · 2022 [cited by examiner]
US 11323877B1 · Verma · 2022 [cited by examiner]
US 11385938B2 · Kim · 2022 [cited by examiner]
US 11502905B1 · Blackburn · 2022 [cited by examiner]
US 11546219B1 · Groenewald · 2023 [cited by examiner]
US 11570278B1 · Uthaman · 2023 [cited by examiner]
US 11588819B1 · Wei · 2023 [cited by examiner]
US 11704145B1 · Katcoff · 2023 [cited by examiner]
US 11811886B2 · Wang · 2023 [cited by examiner]
US 11816236B1 · Gupta · 2023 [cited by examiner]
US 11824918B1 · Zhao · 2023 [cited by examiner]
US 20030163730A1 · Roskind · 2003 [cited by examiner]
US 20090092247A1 · Kido · 2009 [cited by examiner]
US 20130085914A1 · McPherson · 2013 [cited by examiner]
US 20160134658A1 · Akiyama · 2016 [cited by examiner]
US 20160285628A1 · Carrer · 2016 [cited by examiner]
US 20160337341A1 · Purusothaman · 2016 [cited by examiner]
US 20170012947A1 · Lee · 2017 [cited by examiner]
US 20170126664A1 · Khandelwal · 2017 [cited by examiner]
US 20170142144A1 · Weinberger · 2017 [cited by examiner]
US 20170164195A1 · Stammers · 2017 [cited by examiner]
US 20170279792A1 · Tse · 2017 [cited by examiner]
US 20170289799A1 · Hawkes · 2017 [cited by examiner]
US 20170295494A1 · Counterman · 2017 [cited by examiner]
US 20170374016A1 · Reddy · 2017 [cited by examiner]
US 20180183812A1 · Maresca · 2018 [cited by examiner]
US 20180191708A1 · Saha · 2018 [cited by examiner]
US 20180295506A1 · Hawkes · 2018 [cited by examiner]
US 20180309772A1 · Song · 2018 [cited by examiner]
US 20190014088A1 · Subramaniyan · 2019 [cited by examiner]
US 20190087165A1 · Stella · 2019 [cited by examiner]
US 20190095230A1 · Glessner et al. · 2019 [cited by applicant]
US 20190200205A1 · Mikan · 2019 [cited by examiner]
US 20190272157A1 · Stella · 2019 [cited by examiner]
US 20190373471A1 · Li · 2019 [cited by examiner]
US 20200045148A1 · Mishra · 2020 [cited by examiner]
US 20200089869A1 · Richardson et al. · 2020 [cited by applicant]
US 20200137566A1 · Jin · 2020 [cited by examiner]
US 20200186527A1 · Delson · 2020 [cited by examiner]
US 20200244549A1 · Finch · 2020 [cited by examiner]
US 20200287939A1 · Verma et al. · 2020 [cited by applicant]
US 20200314065A1 · Roy et al. · 2020 [cited by applicant]
US 20200322423A1 · Sheth · 2020 [cited by examiner]
US 20200322453A1 · Said · 2020 [cited by examiner]
US 20200329072A1 · Dubois · 2020 [cited by examiner]
US 20200336464A1 · Hastings · 2020 [cited by examiner]
US 20200349120A1 · Crane · 2020 [cited by examiner]
US 20210021629A1 · Dani · 2021 [cited by examiner]
US 20210049049A1 · Kuik · 2021 [cited by examiner]
US 20210084008A1 · Kuperman et al. · 2021 [cited by applicant]
US 20210160162A1 · Abbas · 2021 [cited by examiner]
US 20210160241A1 · Andreev · 2021 [cited by examiner]
US 20210194820A1 · Obezuk · 2021 [cited by examiner]
US 20210211879A1 · Zisimopoulos · 2021 [cited by examiner]
US 20210266185A1 · Konda · 2021 [cited by examiner]
US 20210274344A1 · Cheng · 2021 [cited by examiner]
US 20210286697A1 · Yang · 2021 [cited by examiner]
US 20210314171A1 · Choyi · 2021 [cited by examiner]
US 20210318913A1 · Moyer · 2021 [cited by examiner]
US 20210328809A1 · Gessner · 2021 [cited by examiner]
US 20210385217A1 · Benko · 2021 [cited by examiner]
US 20220043642A1 · Maturi · 2022 [cited by examiner]
US 20220078209A1 · V · 2022 [cited by examiner]
US 20220086846A1 · Sharma · 2022 [cited by examiner]
US 20220116376A1 · Stayskal · 2022 [cited by examiner]
US 20220210154A1 · Gupta · 2022 [cited by examiner]
US 20220222096A1 · Archie · 2022 [cited by examiner]
US 20220239696A1 · Konda · 2022 [cited by examiner]
US 20220272117A1 · Maheve · 2022 [cited by examiner]
US 20220312188A1 · Guo · 2022 [cited by examiner]
US 20220321467A1 · Szigeti · 2022 [cited by examiner]
US 20220376925A1 · Kaizer · 2022 [cited by examiner]
US 20220377135A1 · Boshev · 2022 [cited by examiner]
US 20220398187A1 · Balasubramanian · 2022 [cited by examiner]
US 20230004415A1 · Luo · 2023 [cited by examiner]
US 20230032806A1 · Singh · 2023 [cited by examiner]
US 20230199480A1 · Tao · 2023 [cited by examiner]
US 20230261998A1 · Albrecht · 2023 [cited by examiner]
International Patent Application No. PCT/US2022/038056, International Search Report and Written Opinion dated Nov. 7, 2022, 8 pages. [cited by applicant]