Managing implementation of application-code scanning processes
Techniques for managing the implementation of application-code scanning processes are disclosed. A system scans application code by analyzing metadata associated with the application code to identify a set of data needed to scan the application code with a scanning application. Based on the information obtained from the application metadata, the system identifies extraction processes that are needed to obtain the set of data. The system applies a set of one or more application-code scanners by implementing the extraction processes. The system presents in a graphical user interface (GUI) a set of results from scanning operations.
1 . One or more non-transitory machine-readable media storing instructions which, when executed by one or more processors, perform operations comprising:
obtaining a plurality of code scanning applications;
identifying a plurality of input data parameters corresponding to the plurality of code scanning applications, including a first plurality of input parameters corresponding to a first code scanning application, wherein the plurality of input data parameters specify data requirements for sets of input data to be input to the plurality of code scanning applications;
receiving a scanning request associated with a first target application;
responsive to the scanning request, obtaining a first set of metadata defining attributes of the first target application;
using the first set of metadata, determining a first set of data associated with the first target application that corresponds to the first plurality of input parameters;
determining an extraction process for extracting the first set of data from the first target application to apply the first code scanning application to the first target application; and
using the first set of data as the first plurality of input parameters, applying the first code scanning application to the first target application to generate a first set of scanning results corresponding to the first target application.
2 . The one or more non-transitory machine-readable media of claim 1 , wherein determining the extraction process comprises:
determining the first code scanning application is configured to scan machine code; and
determining attributes of the machine code to be extracted to apply the first code scanning application to the first target application.
3 . The one or more non-transitory machine-readable media of claim 1 , wherein determining the extraction process comprises:
determining the first code scanning application is configured to scan executable application code; and
determining attributes of the executable application code to be extracted to apply the first code scanning application to the first target application.
4 . The one or more non-transitory machine-readable media of claim 3 , wherein applying the first code scanning application to the first target application comprises:
executing the first target application to generate at least a portion of the first set of data.
5 . The one or more non-transitory machine-readable media of claim 1 , wherein the first set of data comprises at least one of a second set of data corresponding to data provided to the first target application to execute at least one application programming interface call (at least one API call) of the first target application, and a third set of data corresponding to data output from the first target application in response to executing the at least one API call, and
wherein determining the extraction process comprises:
querying an API associated with the first target application to identify at least one of: (a) first attributes of the second set of data, and (b) second attributes of the third set of data.
6 . The one or more non-transitory machine-readable media of claim 1 , wherein determining the extraction process comprises:
determining at least one of a location and a type of the first set of data.
7 . The one or more non-transitory machine-readable media of claim 6 , wherein determining the at least one of the location and the type of the first set of data comprises exposing an application programming interface (API) for the first target application to determine the at least one of the location and the type of the first set of data.
8 . The one or more non-transitory machine-readable media of claim 1 , wherein the operations further comprise:
identifying a second plurality of input parameters corresponding to a second code scanning application;
responsive to the scanning request, obtaining a second set of metadata defining the attributes of the first target application;
using the second set of metadata to determine an extraction process for extracting a second set of data, associated with the first target application, that is needed for applying the second code scanning application to the first target application; and
using the second set of data as the second plurality of input parameters, applying the second code scanning application to the first target application to generate a second set of scanning results corresponding to the first target application.
9 . A method comprising:
obtaining a plurality of code scanning applications;
identifying a plurality of input data parameters corresponding to the plurality of code scanning applications, including a first plurality of input parameters corresponding to a first code scanning application, wherein the plurality of input data parameters specify data requirements for sets of input data to be input to the plurality of code scanning applications;
receiving a scanning request associated with a first target application;
responsive to the scanning request, obtaining a first set of metadata defining attributes of the first target application;
using the first set of metadata, determining a first set of data associated with the first target application that corresponds to the first plurality of input parameters;
determining an extraction process for extracting the first set of data from the first target application to apply the first code scanning application to the first target application; and
using the first set of data as the first plurality of input parameters, applying the first code scanning application to the first target application to generate a first set of scanning results corresponding to the first target application.
10 . The method of claim 9 , wherein determining the extraction process comprises:
determining the first code scanning application is configured to scan machine code; and
determining attributes of the machine code to be extracted to apply the first code scanning application to the first target application.
11 . The method of claim 9 , wherein determining the extraction process comprises:
determining the first code scanning application is configured to scan executable application code; and
determining attributes of the executable application code to be extracted to apply the first code scanning application to the first target application.
12 . The method of claim 11 , wherein applying the first code scanning application to the first target application comprises:
executing the first target application to generate at least a portion of the first set of data.
13 . The method of claim 9 , wherein the first set of data comprises at least one of a second set of data corresponding to data provided to the first target application to execute at least one application programming interface call (at least one API call) of the first target application, and a third set of data corresponding to data output from the first target application in response to executing the at least one API call, and
wherein determining the extraction process comprises:
querying an API associated with the first target application to identify at least one of: (a) first attributes of the second set of data, and (b) second attributes of the third set of data.
14 . The method of claim 9 , wherein determining the extraction process comprises: determining at least one of a location and a type of the first set of data.
15 . The method of claim 14 , wherein determining the at least one of the location and the type of the first set of data comprises exposing an application programming interface (API) for the first target application to determine the at least one of the location and the type of the first set of data.
16 . The method of claim 9 , further comprising:
identifying a second plurality of input parameters corresponding to a second code scanning application;
responsive to the scanning request, obtaining a second set of metadata defining the attributes of the first target application;
using the second set of metadata to determine an extraction process for extracting a second set of data, associated with the first target application, that is needed for applying the second code scanning application to the first target application; and
using the second set of data as the second plurality of input parameters, applying the second code scanning application to the first target application to generate a second set of scanning results corresponding to the first target application.
17 . A system comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors, cause the system to perform operations comprising:
obtaining a plurality of code scanning applications;
identifying a plurality of input data parameters corresponding to the plurality of code scanning applications, including a first plurality of input parameters corresponding to a first code scanning application, wherein the plurality of input data parameters specify data requirements for sets of input data to be input to the plurality of code scanning applications;
receiving a scanning request associated with a first target application;
responsive to the scanning request, obtaining a first set of metadata defining attributes of the first target application;
using the first set of metadata, determining a first set of data associated with the first target application that corresponds to the first plurality of input parameters;
determining an extraction process for extracting the first set of data from the first target application to apply the first code scanning application to the first target application; and
using the first set of data as the first plurality of input parameters, applying the first code scanning application to the first target application to generate a first set of scanning results corresponding to the first target application.
18 . The system of claim 17 , wherein determining the extraction process comprises:
determining the first code scanning application is configured to scan machine code; and
determining attributes of the machine code to be extracted to apply the first code scanning application to the first target application.
19 . The system of claim 17 , wherein determining the extraction process comprises:
determining the first code scanning application is configured to scan executable application code; and
determining attributes of the executable application code to be extracted to apply the first code scanning application to the first target application.
20 . The system of claim 19 , wherein applying the first code scanning application to the first target application comprises:
executing the first target application to generate at least a portion of the first set of data.