Table of Contents
About this ExtensionThe cost of remediating a vulnerability is akin to the cost of fixing a bug. The earlier you remediate a vulnerability in the release cycle, the lower the cost. The extension allows developers to find and fix security vulnerabilities in their projects and to see valuable information about the status of their code by continuously scanning it locally with JFrog Xray. What security capabilities do we provide?Software Composition Analysis (SCA)Scan your project dependencies for security issues. For selected security issues, get leverage-enhanced CVE data that is provided by our JFrog Security Research team. To learn more about enriched CVEs, see here Advanced ScansRequires Xray version 3.66.5 or above and Enterprise X / Enterprise+ subscription with Advanced DevSecOps. With advanced Contextual Analysis, understand the applicability of CVEs in your application and utilize JFrog Security scanners to analyze the way you use 3rd party packages in your projects. Automatically validate some high-impact vulnerabilities, such as vulnerabilities that have prerequisites for exploitations, and reduce false positives and vulnerability noise with smart CVE analysis. To learn more, see here. Supported Packages
Additional Perks
The extension also applies JFrog File Spec JSON schema on the following file patterns: Getting Started
Install the JFrog extension in VS CodeThe extension is available to install from the VS Code extensions marketplace. after installing the JFrog extension tab Connecting VS Code to Your JFrog EnvironmentIf you don't have a JFrog Platform instance, create a free instance in the cloud by running one of the following commands in your terminal.MacOS and Linux using cUrl
Windows using PowerShell
The commands will do the following:
Connect VS Code to your JFrog Platform instance by clicking on the green Connect You can choose one of the following methods to provide VS Code with the JFrog Platform connections details. Use the JFrog CLI CredentialsIf JFrog CLI is installed on your machibe, and is configured with the JFrog Platform's connection details, use those details to connect VS Code to the JFrog Platform. Enter ConnectionEnter your JFrog platform connection details manually. Note: You can leave the JFrog Platform URL empty, to enter the URLs of Artifactory and Xray separately. Environment VariablesYou may set the connection details using the following environment variables. VS Code will read them after it is launched.
Note: For security reasons, it is recommended to unset the environment variables after launching VS Code. Using the ExtensionThe extension offers two modes, Local and CI. The two modes can be toggled by pressing on their respective buttons that will appear next to the components tree.
Severity IconsThe icon demonstrates the top severity issue of a selected component and its transitive dependencies. The following table describes the severities from highest to lowest:
| Icon | Severity | Description |
|:---------------------------------------------------------------:|:---------:|:--------------------------------:|
| The Local ViewThe local view of the extension adds JFrog Xray scanning of project dependencies and source code to your VS Code IDE. It allows developers to view panels displaying vulnerability information about their dependencies and source code in their VS Code IDE. With this information, a developer can make an informed decision on whether to use a component or not before it gets entrenched into the organization’s product. Scanning workspacescan your workspace by clicking the Scan/Rescan button, the Viewing vulnerabilitiesView all the discovered files with vulnerabilities in a tree.
Each descriptor file (like pom.xml in Maven, go.mod in Go, etc.) in the list contains vulnerable dependencies, and each dependency contains the vulnerabilities themselves.
Other source code files contains a list of vulnerabilities for each location at the file.
In addition the locations with vulnerabilities will be marked in the editor and you can jump from vulnerable location in the editor to the matching entry at the tree by clicking on th light bulb.
Viewing Vulnerability DetailsClicking a vulnerability in the list will open the location with the issue in the editor and a vulnerability details view. This view contains information about the vulnerability, the vulnerable component, fixed versions, impact paths and much more. CVE Research and EnrichmentFor selected security issues, get leverage-enhanced CVE data that is provided by our JFrog Security Research team. Prioritize the CVEs based on:
Check out what our research team is up to and stay updated on newly discovered issues by clicking on this link. Contextual AnalysisXray automatically validates some high and very high impact vulnerabilities, such as vulnerabilities that have prerequisites for exploitations, and provides contextual analysis information for these vulnerabilities, to assist you in figuring out which vulnerabilities need to be fixed. Contextual Analysis data includes:
Updating DependenciesUpdate a vulnerable direct dependency to a fixed version directly from the vulnerable location at the editor using quick fix
Ignore RulesIf Xray watches are used, on an icon vulnerability line an closed eye icon will appear by clicking on it you can create an Ignore Rule in Xray.
Behind the ScenesGo ProjectsBehind the scenes, the JFrog VS Code Extension scans all the project dependencies, both direct and indirect (transitive), even if they are not declared in the project's go.mod. It builds the Go dependencies tree by running Maven ProjectsThe JFrog VS Code Extension builds the Maven dependencies tree by running Important notes:
Npm ProjectsBehind the scenes, the extension builds the npm dependencies tree by running Important:
To have your project dependencies scanned by JFrog Xray, make sure the npm CLI is installed on your local machine and that it is in your system PATH.
In addition, the project dependencies must be installed using Exclude Development Dependencies During ScanDevelopment dependencies are scanned by default. You can exclude them by choosing Yarn v1 ProjectsBehind the scenes, the extension builds the Yarn dependencies tree by running Important:
Pypi ProjectsBehind the scenes, the extension builds the Pypi dependencies tree by running
.NET ProjectsFor .NET projects which use NuGet packages as dependencies, the extension displays the NuGet dependencies tree, together with the information for each dependency. Behind the scenes, the extension builds the NuGet dependencies tree using the NuGet deps tree npm package. Important:
The CI ViewThe CI view of the extension allows you to view information about your builds directly from your CI system. This allows developers to keep track of the status of their code, while it is being built, tested and scanned as part of the CI pipeline, regardless of the CI provider used. This information can be viewed inside JFrog VS Code Extension, from the JFrog Panel, after switching to CI mode. The following details can be made available in the CI view.
How Does It Work?The CI information displayed in VS Code is pulled by the JFrog Extension directly from JFrog Artifactory. This information is stored in Artifactory as part of the build-info, which is published to Artifactory by the CI server. Read more about build-info in the Build Integration documentation page. If the CI pipeline is also configured to scan the build-info by JFrog Xray, the JFrog VS Code Extension will pull the results of the scan from JFrog Xray and display them in the CI view as well. Setting Up Your CI PipelineBefore VS Code can display information from your CI in the CI View, your CI pipeline needs to be configured to expose this data. Read this guide which describes how to configure your CI pipeline. Setting Up the CI ViewSet your CI build name in the Build name pattern field at the Extension Settings. This is the name of the build published to Artifactory by your CI pipeline. You have the option of setting * to view all the builds published to Artifactory. After your builds were fetched from Artifactory, press on the Builds Extension SettingsTo open the extension settings, use the extension settings icon:
Apply Xray Policies to your ProjectsYou can configure the JFrog VS-Code extension to use the security policies you create in Xray. Policies enable you to create a set of rules, in which each rule defines security criteria, with a corresponding set of automatic actions according to your needs. Policies are enforced when applying them to Watches. If you'd like to use a JFrog Project that is associated with the policy, follow these steps:
If however your policies are referenced through an Xray Watch or Watches, follow these steps instead:
Exclude Paths from ScanBy default, paths containing the words Proxy ConfigurationIf your JFrog environment is behind an HTTP/S proxy, follow these steps to configure the proxy server:
Proxy AuthorizationIf your proxy server requires credentials, follow these steps:
Basic authorization
Access token authorization
Example
settings.json:
TroubleshootingChange the log level to 'debug', 'info', 'warn', or 'err' in the Extension Settings. View the extension log:
LicenseThe extension is licensed under Apache License 2.0. Building and Testing the SourcesPreconditions
To build the extension from sources, please follow these steps:
After the build finishes, you'll find the vsix file in the jfrog-vscode-extension directory. The vsix file can be loaded into VS-Code To run the tests:
Code ContributionsWe welcome community contribution through pull requests. Guidelines
|