IP Library Granted Patent US 11,755,460
Granted Patent B2
US 11,755,460 · App. 16/823,393 · Granted Sep 12, 2023

Identifying flawed dependencies in deployed applications

Inventors: Guy Podjarny (London, GB); Assaf Hefetz (Holon, IL)
Assignee: SNYK LIMITED
G06F11/366G06F8/60G06F16/2379G06F16/245
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,755,460
App. No.
16/823,393
Granted
Sep 12, 2023
Kind
B2
Abstract

Flaws in dependencies of deployed applications are identified. In one embodiment, a list of dependencies used by a deployed application that is deployed on the deployment platform is obtained. Each dependency of the list of dependencies is mapped with a flaws database, wherein the flaws database comprising an indication of known flaws for different dependencies and different versions thereof. Based on such mapping, one or more flaws in the deployed application are determined. The determination is performed externally to the deployment platform and without executing a monitoring process thereon.

Claims (56)

1. A method performed by a processing apparatus external to a deployment platform, wherein said method comprising:

obtaining a list of dependencies used by a deployed application that is deployed on the deployment platform, wherein said obtaining is based on a time of deployment of the deployed application, the time of deployment comprising an initial time during which the deployed application was deployed on the deployment platform, wherein before the initial time the deployed application was not deployed on the deployment platform, wherein the list of dependencies comprises a first version of a dependency, wherein said obtaining is performed at a later time than the time of deployment, the first version of the dependency was available during the time of deployment, wherein a second version of the dependency is available at the later time, the second version of the dependency being a newer version of the dependency than the first version of the dependency, the newer version of the dependency was not available during the time of deployment, wherein the second version is different than the first version, wherein the list of dependencies excludes the second version of the dependency;

mapping each dependency of the list of dependencies with a flaws database, the flaws database comprising an indication of known flaws for different dependencies and different versions thereof;

based on said mapping, determining one or more flaws in the deployed application, wherein said determining the one or more flaws is performed externally to the deployment platform and without executing a monitoring process thereon;

filtering the one or more flaws using at least one criterion, whereby obtaining one or more reportable flaws; and

reporting the one or more reportable flaws to a developer of the deployed application.

2. The method of claim 1 , wherein said reporting the one or more reportable flaws is performed without executing processes on the deployment platform, using an external processing apparatus in network communication with the deployment platform to mitigate a lack of processing resources available at the deployment platform.

3. The method of claim 1 ,

wherein said obtaining the list of dependencies comprises:

obtaining a package specification of the deployed application, and extrapolating the list of dependencies based on the package specification and based on the time of deployment of the deployed application.

4. The method of claim 1 , wherein the deployment platform is a Function as a Service (FaaS) platform upon which the deployed application is deployed, whereby the deployed application has no access to a machine of the deployment platform on which the deployed application is running and does not maintain any cache information.

5. The method of claim 1 , further comprising: monitoring updates in the flaws database to identify flaws relevant for the deployed application; and in response to identifying a new flaw in the deployed application, reporting the new flaw.

6. The method of claim 1 , wherein the at least one criterion comprises a user-defined criterion, the method further comprising:

determining, based on the user-defined criterion, whether a determined flaw is to be reported; and

reporting only a subset of the flaws that match the user-defined criterion.

7. An apparatus that is external to a deployment platform, the apparatus comprising a processor and coupled memory, the processor is adapted to:

obtain a list of dependencies used by a deployed application that is deployed on the deployment platform, wherein said obtaining is based on a time of deployment of the deployed application, the time of deployment comprising an initial time during which the deployed application was deployed on the deployment platform, wherein before the initial time the deployed application was not deployed on the deployment platform, wherein said obtaining is performed at a later time than the time of deployment, wherein the list of dependencies comprises a first version of a dependency, the first version of the dependency was available during the time of deployment, wherein a second version of the dependency is available at the later time, the second version of the dependency being a newer version of the dependency than the first version of the dependency, the newer version of the dependency was not available during the time of deployment, wherein the second version is different than the first version, wherein the list of dependencies excludes the second version of the dependency, wherein said obtaining the list of dependencies comprises one of the following:

(1) sending a query via an Application Programming Interface (API) of the development platform to obtain the list of dependencies of the deployed application;

(2) obtaining application files of the deployed application via the API of the development platform, wherein the application files are files uploaded to the deployment platform by a developer of the deployed application at or before the time of deployment; and extracting the list of dependencies from the application files; and

(3) obtaining a package specification of the deployed application and extrapolating the list of dependencies based on the package specification and based on the time of deployment of the deployed application;

map each dependency of the list of dependencies with a flaws database, the flaws database comprising an indication of known flaws for different dependencies and different versions thereof;

based on said mapping, determine one or more flaws in the deployed application, wherein said determining the one or more flaws is performed externally to the deployment platform and without executing a monitoring process thereon;

filter the one or more flaws using at least one criterion, whereby obtaining one or more reportable flaws; and

report the one or more reportable flaws to the developer of the deployed application.

8. The apparatus of claim 7 , wherein the deployment platform is a Function as a Service (FaaS) platform upon which the deployed application is deployed, whereby the deployed application has no access to a machine of the deployment platform on which the deployed application is running and does not maintain any cache information.

9. The apparatus of claim 7 , wherein the deployment platform is a Platform as a Service (PaaS) platform upon which the deployed application is deployed.

10. The apparatus of claim 7 wherein said processor is configured to monitor for updates in the flaws database to identify flaws relevant for the deployed application, and in response to identifying a new flaw in the deployed application, report the new flaw.

11. The apparatus of claim 7 , wherein said processor is configured to perform said report the one or more reportable flaws without executing processes on the deployment platform, using an external processing apparatus in network communication with the deployment platform to mitigate a lack of processing resources available at the deployment platform.

12. The apparatus of claim 7 , wherein the package specification is a specification file comprising the list of dependencies, wherein for each dependency in the list of dependencies, the specification file provides a respective version indication, wherein for at least one dependency in the list of dependencies, the respective version indication in the specification file is one of the following:

a minimal version number;

a maximal version number;

a version compatible with another identified version;

an expression using wildcards representing a version number; and

a range of versions.

13. The apparatus of claim 7 , wherein the known flaws comprise at least one of:

security vulnerabilities;

license flaws;

internal policy violations; and

external regulation violations.

14. The apparatus of claim 7 , wherein the flaws database indicates different flaws of different versions of a same dependency.

15. The apparatus of claim 7 , wherein the list of dependencies is a set of code package dependencies.

16. A non-transitory computer readable medium comprising instructions, wherein said instructions, when read by a processor of a processing apparatus that is external to a deployment platform, cause the processor to perform:

obtaining a list of dependencies used by a deployed application that is deployed on the deployment platform, wherein said obtaining is based on a time of deployment of the deployed application, the time of deployment comprising an initial time during which the deployed application was deployed on the deployment platform, wherein before the initial time the deployed application was not deployed on the deployment platform, wherein said obtaining is performed at a later time than the time of deployment, wherein the list of dependencies comprises a first version of a dependency, the first version of the dependency was available during the time of deployment, wherein a second version of the dependency is available at the later time, the second version of the dependency being a newer version of the dependency than the first version of the dependency, the newer version of the dependency was not available during the time of deployment, wherein the second version is different than the first version, wherein the list of dependencies excludes the second version of the dependency, wherein said obtaining the list of dependencies comprises one of the following:

(1) sending a query via an Application Programming Interface (API) of the development platform to obtain the list of dependencies of the deployed application;

(2) obtaining application files of the deployed application via the API of the development platform, wherein the application files are files uploaded to the deployment platform by a developer of the deployed application at or before the time of deployment; and extracting the list of dependencies from the application files; and

(3) obtaining a package specification of the deployed application and extrapolating the list of dependencies based on the package specification and based on the time of deployment of the deployed application;

mapping each dependency of the list of dependencies with a flaws database, wherein the flaws database comprising an indication of known flaws for different dependencies and different versions thereof;

based on said mapping, determining one or more flaws in the deployed application, wherein said determining the one or more flaws is performed externally to the deployment platform and without executing a monitoring process thereon;

filtering the one or more flaws using at least one criterion, whereby obtaining one or more reportable flaws; and

reporting the one or more reportable flaws to the developer of the deployed application.

17. The non-transitory computer readable medium of claim 16 , wherein said reporting the one or more reportable flaws is performed without executing processes on the deployment platform, using an external processing apparatus in network communication with the deployment platform to mitigate a lack of processing resources available at the deployment platform.

18. The non-transitory computer readable medium of claim 16 , wherein the deployment platform is a Function as a Service (FaaS) platform upon which the deployed application is deployed, whereby the deployed application has no access to a machine of the deployment platform on which the deployed application is running and does not maintain any cache information.

19. The non-transitory computer readable medium of claim 16 , wherein the instructions further cause the processor to: monitor updates in the flaws database to identify flaws relevant for the deployed application; and in response to identifying a new flaw in the deployed application, report the new flaw.

20. The non-transitory computer readable medium of claim 16 , wherein the at least one criterion comprises a user-defined criterion, wherein the instructions further cause the processor to:

determine, based on the user-defined criterion, whether a determined flaw is to be reported; and

report only a subset of the flaws that match the user-defined criterion.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Feb 15, 2023
From: SILICON VALLEY BANK
To: SNYK LIMITED
Reel/Frame 062710/0868 →
SECURITY INTEREST Recorded Oct 30, 2020
From: SNYK LIMITED
To: SILICON VALLEY BANK
Reel/Frame 054224/0563 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2020
From: PODJARNY, GUY; HEFETZ, ASSAF
To: SNYK LIMITED
Reel/Frame 052160/0860 →
Continuity (3)
Continuation 15909458 · Mar 1, 2018
Provisional Application 62467031 · Mar 3, 2017
Related Publication 20200272556A1 · Aug 27, 2020