IP Library › Granted Patent US 11,657,161
Granted Patent B2
US 11,657,161 · App. 17/131,540 · Granted May 23, 2023

Correlation between source code repositories and web endpoints

Inventors: Michael Hendrickx (Bellevue, WA); Safwan Mahmud Khan (Woodinville, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
G06F21/577G06F8/70G06F21/51H04L63/1433
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 11,657,161
App. No.
17/131,540
Granted
May 23, 2023
Kind
B2
Abstract

An automated tool analyzes source code repositories and web endpoints for unique characteristics that they both share in order to predict the likelihood that a particular source code repository contains source code files used in a web endpoint and to predict the likelihood that a web endpoint uses source code files of a particular repository. The unique characteristics are referred to as fingerprints and include unique combination of public-facing entities, unique tokens, and unique DOM characteristics.

Claims (55)

1. A system comprising:

one or more processors; a memory; and

one or more programs, wherein the one or more programs are stored in the memory and are configured to be executed by the one or more processors, the one or more programs including instructions that:

find fingerprints of a source code repository, wherein the fingerprints of the source code repository comprise at least one of unique combination of public-facing entities of the source code repository, unique tokens of the source code repository, or unique Document Object Model (DOM) characteristics of the source code repository, wherein the fingerprints of the source code repository are based on an aggregation of fingerprints of each source code file of the source code repository;

find fingerprints of a web endpoint, wherein the fingerprints of the web endpoint comprise at least one of unique combination of public-facing entities of the web endpoint, unique tokens of the web endpoint, or unique DOM characteristics of the web endpoint;

relate, the source code repository with the web endpoint and/or the web endpoint with the source code repository, based on a similarity between the fingerprints of the source code repository and the fingerprints of the web endpoint;

upon detection of a security vulnerability with the web endpoint, identify the related source code repository; and

upon detection of a security vulnerability with the source code repository, identify the related web endpoint.

2. The system of claim 1 , wherein the one or more programs include further instructions that:

identity the unique combination of public-facing entities of the web endpoint through DOM webscraping.

3. The system of claim 1 , wherein the one or more programs include further instructions that:

identify the unique combination of public-facing entities of the source code repository through package managers.

4. The system of claim 1 , wherein the unique tokens of the source code repository comprise static values of source code files of the source code repository.

5. The system of claim 1 , wherein the unique tokens of the web endpoint comprise attribute-value pairs of a rendered web page.

6. The system of claim 1 , wherein the one or more programs include further instructions that:

apply a weight to each fingerprint of the web endpoint and to each fingerprint of the source code repository; and

identify a relationship between the source code repository and the web endpoint based on a weighted sum of fingerprints of the source code repository that match fingerprints of the web endpoint.

7. The system of claim 6 , wherein the weight of a unique token of the source code repository and a unique token of the web endpoint is based on frequency of occurrence of a value of the unique token.

8. A method, performed on a computing device having a processor and a memory, the method comprising:

identifying a relationship between a web endpoint and a source code repository based on fingerprints of the source code repository matching fingerprints of the web endpoint, wherein the fingerprints of the source code repository comprise unique tokens found in an aggregation of source code files of the source code repository, wherein the fingerprints of the web endpoint comprise unique tokens found in dynamic content of the web endpoint;

upon detection of a security vulnerability with the source code repository, obtaining the related web endpoint for analysis of the security vulnerability with the related web endpoint; and

upon detection of a security vulnerability with the web endpoint, obtaining the related source code repository for analysis of the security vulnerability with the related source code repository.

9. The method of claim 8 , wherein the fingerprints of the source code repository include comprise unique combinations of publicly-facing entities of the source code repository, wherein the fingerprints of the web endpoint include unique combinations of public-facing entities of the web endpoint.

10. The method of claim 9 , further comprising:

applying a weight to each fingerprint of the source code repository and to each fingerprint of the web endpoint; and

establishing a relationship between the web endpoint and the source code repository based on a weighted sum of the weights of the matched fingerprints.

11. The method of claim 9 , further comprising:

matching a combination of publicly-facing entities based on a version of a publicly-facing entity of the source code repository matching a same or later version of a same publicly-facing entity of the web endpoint.

12. The method of claim 8 , wherein the dynamic content of the web endpoint includes attribute-value pairs of a rendered web page of the web endpoint.

13. The method of claim 8 , further comprising:

applying a weight to each unique token of the source code repository and each unique token of the web endpoint;

computing a correlation coefficient based on unique tokens of the source code repository matching unique tokens of the web endpoint; and

relating the web endpoint to the source code repository based on the correlation coefficient.

14. The method of claim 13 , further comprising:

generating the weight of each unique token based on a frequency of occurrence of a unique token.

15. The method of claim 8 , wherein the unique tokens of the source code repository are static values, wherein the unique tokens of the web endpoint are attribute-value pairs of a Document Object Model (DOM) element.

16. A device, comprising:

a processor; and

a memory coupled to the processor;

wherein the processor is configured to execute instructions stored in the memory that perform acts that:

aggregate unique tokens found in each source code file of a source code repository and unique tokens found in content of a web endpoint;

compute a correlation coefficient for the source code repository and the web endpoint, wherein a high correlation coefficient represents an association between the source code repository and the web endpoint, wherein the correlation coefficient is based on a number of matches between the unique tokens of the source code repository and the unique tokens of the web endpoint; and

upon detection of a security vulnerability with the source code repository or the web endpoint, use the correlation coefficient of the source code repository or the web endpoint to find a related source code repository or related web endpoint.

17. The device of claim 16 , wherein the processor is configured to execute instructions stored in the memory to perform acts that:

aggregate public-facing entities of the source code files of the source code repository and public-facing entities of the web endpoint; and

wherein the computation of the correlation coefficient is based further on a number of matches of the public-facing entities of the source code repository with the public-facing entities of the web endpoint.

18. The device of claim 17 , wherein the processor is configured to execute instructions stored in the memory to perform acts that:

apply a weight to each public-facing entity; and

wherein the computation of the correlation coefficient is a weighted sum of the matches between the unique tokens of the source code repository and the unique tokens of the web endpoint and matches between the unique combination of public-facing entities of the source code repository and the public-facing entities of the web endpoint.

19. The device of claim 16 , wherein the processor is configured to execute instructions stored in the memory to perform acts that:

aggregate attribute-value pairs from Document Object Model (DOM) elements of a rendered web page of the web endpoint and attribute-values pairs of DOM elements of a source code repository; and

wherein the computation of the correlation coefficient is based further on a number of matches of the attribute-value pairs of a web endpoint with the attribute-value pairs of the source code repository.

20. The device of claim 16 , wherein the processor is configured to execute instructions stored in the memory to perform acts that:

apply a weight to each unique token; and

wherein the computation of the correlation coefficient is a weighted sum of the matches between the unique tokens of the source code repository and the unique tokens of the web endpoint.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2021
From: KHAN, SAFWAN MAHMUD; HENDRICKX, MICHAEL
To: MICROSOFT TECHNOLOGY LICENSING, LLC.
Reel/Frame 054812/0401 →
Continuity (1)
Related Publication 20220198024A1 · Jun 23, 2022
Cited By (1)
US 12,748,861