• Stars
    star
    277
  • Rank 143,927 (Top 3 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created about 2 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🐸 Scans your Git repository with JFrog Xray for security vulnerabilities. 🤖

JFrog Frogbot

Frogbot

Scanned by Frogbot Go Report Card

Branch Status
master Build status GitHub Action Test
dev Build status GitHub Action Test

Table of contents

🤖 About JFrog Frogbot

Overview

JFrog Frogbot is a Git bot that scans your Git repositories for security vulnerabilities.

  1. It scans pull requests immediately after they are opened but before they are merged. This process notifies you if the pull request is about to introduce new vulnerabilities to your code. This unique capability ensures the code is scanned and can be fixed even before vulnerabilities are introduced into the codebase.
  2. It scans the Git repository periodically and creates pull requests with fixes for detected vulnerabilities.

It supports the following Git providers:

  • Azure Repos
  • Bitbucket Server
  • GitHub
  • GitLab

Why use JFrog Frogbot?

  • Software Composition Analysis (SCA): Scan your project dependencies for security issues. For selected security issues, get leverage-enhanced CVE data provided by our JFrog Security Research team. Frogbot uses JFrog's vast vulnerabilities database, to which we continuously add new component vulnerability data. Also included is VulnDB, the industry's most comprehensive security database, to further extend the range of vulnerabilities detected and fixed by Frogbot.
  • Vulnerability Contextual Analysis: This feature uses the code context to eliminate false positive reports on vulnerable dependencies that are not applicable to the code. Vulnerability Contextual Analysis is currently supported for Python and JavaScript code.
  • Secrets Detection: Detect any secrets left exposed inside the code. to stop any accidental leak of internal tokens or credentials.
  • Infrastructure as Code scans (IaC): Scan Infrastructure as Code (Terraform) files for early detection of cloud and infrastructure misconfigurations.

NOTE: Vulnerability Contextual Analysis, Secrets Detection and Infrastructure as Code scans require the JFrog Advanced Security Package.

🖥️ Setting up Frogbot

Set up Frogbot on your preferred CI server:

Optional - set up a FREE JFrog Environment in the Cloud

Frogbot requires a JFrog environment to scan your projects. If you don't have an environment, we can set up a free environment in the cloud for you. Just run one of the following commands in your terminal to set up an environment in less than a minute.

The commands will do the following:

  1. Install JFrog CLI on your machine.
  2. Create a FREE JFrog environment in the cloud for you.

For macOS and Linux, use curl

curl -fL "https://getcli.jfrog.io?setup" | sh

For Windows, use PowerShell

powershell "Start-Process -Wait -Verb RunAs powershell '-NoProfile iwr https://releases.jfrog.io/artifactory/jfrog-cli/v2-jf/[RELEASE]/jfrog-cli-windows-amd64/jf.exe -OutFile $env:SYSTEMROOT\system32\jf.exe'" ; jf setup

After the setup is complete, you'll receive an email with your JFrog environment connection details, which can be stored as secrets in Git.

Advanced - Customize advanced settings with frogbot-config.yml

🚥 Using Frogbot

Scanning pull requests

General

Frogbot uses JFrog Xray (version 3.29.0 and above is required) to scan your pull requests. It adds the scan results as a comment on the pull request. If no new vulnerabilities are found, Frogbot will also add a comment, confirming this.

The following features use the package manager used for building the project:

  • Software Composition Analysis (SCA)
  • Vulnerability Contextual Analysis

The supported package managers are:

  • Go
  • Gradle
  • Maven
  • .NET
  • npm
  • NuGet
  • Pip
  • Pipenv
  • Poetry
  • Yarn

How to use Pull Request scanning?

Azure Repos

After you create a new pull request, Frogbot will automatically scan it.

NOTE: The scan output will include only new vulnerabilities added by the pull request. Vulnerabilities that aren't new, and existed in the code before the pull request was created, will not be included in the report. In order to include all the vulnerabilities in the report, including older ones that weren't added by this PR, use the includeAllVulnerabilities parameter in the frogbot-config.yml file.

The Frogbot Azure Repos scan workflow is:

  1. The developer opens a pull request.
  2. Frogbot scans the pull request and adds a comment with the scan results.
  3. Frogbot can be triggered again following new commits, by adding a comment with the rescan text.
Bitbucket Server

After you create a new pull request, Frogbot will automatically scan it.

NOTE: The scan output will include only new vulnerabilities added by the pull request. Vulnerabilities that aren't new, and existed in the code before the pull request was created, will not be included in the report. In order to include all of the vulnerabilities in the report, including older ones that weren't added by this PR, use the includeAllVulnerabilities parameter in the frogbot-config.yml file.

The Frogbot scan on Bitbucket Server workflow:

  1. The developer opens a pull request.
  2. Frogbot scans the pull request and adds a comment with the scan results.
  3. Frogbot can be triggered again following new commits, by adding a comment with the rescan text.
GitHub

After you create a new pull request, the maintainer of the Git repository can trigger Frogbot to scan the pull request from the pull request UI.

NOTE: The scan output will include only new vulnerabilities added by the pull request. Vulnerabilities that aren't new, and existed in the code before the pull request was created, will not be included in the report. In order to include all of the vulnerabilities in the report, including older ones that weren't added by this PR, use the includeAllVulnerabilities parameter in the frogbot-config.yml file.

The Frogbot GitHub scan workflow is:

  1. The developer opens a pull request.

  2. The Frogbot workflow automatically gets triggered and a GitHub environment named frogbot becomes pending for the maintainer's approval.

  3. The maintainer of the repository reviews the pull request and approves the scan:

  4. Frogbot can be triggered again following new commits, by repeating steps 2 and 3.

GitLab

After you create a new merge request, the maintainer of the Git repository can trigger Frogbot to scan the merge request from the merge request UI.

NOTE: The scan output will include only new vulnerabilities added by the merge request. Vulnerabilities that aren't new, and existed in the code before the merge request was created, will not be included in the report. In order to include all of the vulnerabilities in the report, including older ones that weren't added by this merge request, use the includeAllVulnerabilities parameter in the frogbot-config.yml file.

The Frogbot GitLab flow is as follows:

  1. The developer opens a merge request.
  2. The maintainer of the repository reviews the merge request and approves the scan by triggering the manual frogbot-scan job.
  3. Frogbot is then triggered by the job, it scans the merge request and adds a comment with the scan results.
  4. Frogbot can be triggered again following new commits, by triggering the frogbot-scan job again.

👮 Security note for pull requests scanning

When installing Frogbot using JFrog Pipelines, Jenkins, and Azure DevOps, Frogbot will not wait for a maintainer's approval before scanning newly opened pull requests. Using Frogbot with these platforms is therefore not recommended for open-source projects.

When installing Frogbot using GitHub Actions and GitLab however, Frogbot will initiate the scan only after it is approved by a maintainer of the project. The goal of this review is to ensure that external code contributors don't introduce malicious code as part of the pull request. Since this review step is enforced by Frogbot when used with GitHub Actions and GitLab, it is safe to be used for open-source projects.

Scan results

Software Composition Analysis (SCA), Vulnerability Contextual Analysis and Infrastructure as Code scans (IaC)

Frogbot adds the scan results to the pull request in the following format:

👍 No issues

If no new vulnerabilities are found, Frogbot automatically adds the following comment to the pull request:

👎 Issues were found

If new vulnerabilities are found, Frogbot adds them as a comment on the pull request. For example:


VULNERABLE DEPENDENCIES

SEVERITY CONTEXTUAL ANALYSIS DIRECT DEPENDENCIES IMPACTED DEPENDENCY FIXED VERSIONS

Critical
$\color{#3CB371}{\textsf{Not Applicable}}$ minimist:1.2.5 minimist:1.2.5 [0.2.4]
[1.2.6]

High
$\color{#FF7377}{\textsf{Applicable}}$ protobufjs:6.11.2 protobufjs:6.11.2 [6.11.3]

High
$\color{#3CB371}{\textsf{Not Applicable}}$ lodash:4.17.19 lodash:4.17.19 [4.17.21]

INFRASTRUCTURE AS CODE

SEVERITY FILE LINE:COLUMN FINDING

Critical
test.js 1:20 kms_key_id='' was detected

High
mock.js 4:30 Deprecated TLS version was detected
Secrets Detection

When Frogbot detects secrets that have been inadvertently exposed within the code of a pull request, it promptly triggers an email notification to the user who pushed the corresponding commit. The email address utilized for this notification is sourced from the committer's Git profile configuration. Moreover, Frogbot offers the flexibility to direct the email notification to an extra email address if desired. To activate email notifications, it is necessary to configure your SMTP server details as variables within your Frogbot workflows.

Scanning repositories

Automatic pull requests creation

Frogbot scans your Git repositories periodically and automatically creates pull requests for upgrading vulnerable dependencies to a version with a fix. Supported package management tools:

  • Go
  • Maven
  • npm
  • Pip
  • Pipenv
  • Poetry
  • Yarn

Adding Security Alerts

For GitHub repositories, issues that are found during Frogbot's periodic scans are also added to the Security Alerts view in the UI. The following alert types are supported:

1. CVEs on vulnerable dependencies

2. Secrets that are exposed in the code

3. Infrastructure as Code (Iac) issues on Terraform packages

📛 Adding the Frogbot badge

You can show people that your repository is scanned by Frogbot by adding a badge to the README of your Git repository.

You can add this badge by copying the following markdown snippet and pasting it into your repository's README.md file.

[![Scanned by Frogbot](https://raw.github.com/jfrog/frogbot/master/images/frogbot-badge.svg)](https://github.com/jfrog/frogbot#readme)

🔥 Reporting issues

Please help us improve Frogbot by reporting issues you encounter.

💻 Contributions

We welcome pull requests from the community. To help us improve this project, please read our Contribution guide.

More Repositories

1

project-examples

Small projects in universal build ecosystems to configure CI and Artifactory
C#
974
star
2

jfrog-cli

JFrog CLI is a client that provides a simple interface that automates access to the JFrog products.
Go
513
star
3

artifactory-user-plugins

Sample Artifactory User Plugins
Groovy
356
star
4

artifactory-docker-examples

Examples for using Artifactory Docker distribution in various environments
Shell
331
star
5

artifactory-client-java

Artifactory REST Client Java API bindings
Java
315
star
6

terraform-provider-artifactory

Terraform provider to manage JFrog Artifactory
Go
271
star
7

charts

JFrog official Helm Charts
Shell
247
star
8

setup-jfrog-cli

Set up JFrog CLI in your GitHub Actions workflow
TypeScript
230
star
9

jfrog-client-go

All go clients for JFrog products
Go
211
star
10

log4j-tools

Java
169
star
11

gocenter

The Github README for JFrog Go-center. Use this for reporting issues
164
star
12

jfrog-idea-plugin

JFrog IntelliJ IDEA plugin
Java
153
star
13

jfrog-vscode-extension

JFrog VS-Code Extension
TypeScript
151
star
14

terraform-provider-project

Terraform provider to manage JFrog Projects
Go
147
star
15

build-info

Artifactory's open integration layer for CI build servers
Java
146
star
16

terraform-provider-xray

Terraform provider to manage JFrog Xray
Go
145
star
17

artifactory-scripts

Scripts for Artifactory (Usually, for REST API), community driven.
Groovy
143
star
18

text4shell-tools

Python
105
star
19

jfrog-spring-tools

Python
84
star
20

JFrog-Cloud-Installers

Template to deploy Artifactory Enterprise cluster.
CSS
78
star
21

jfrog-docker-desktop-extension

🐸 Scans any of your local Docker images for security vulnerabilities. 🐋
TypeScript
74
star
22

nexus2artifactory

NexusToArtifactory - A tool designed to ease migration from Sonatype Nexus to JFrog Artifactory.
Python
67
star
23

nimbuspwn-tools

Shell
65
star
24

build-info-go

build-info-go is a Go library and a CLI, which allows generating build-info for a source code project.
Go
56
star
25

cocoapods-art

CocoaPods Plugin to work against Artifactory Repository
Ruby
53
star
26

jfrog-cli-plugins-reg

Go
52
star
27

jfrog-npm-tools

Python
52
star
28

kubenab

Kubernetes Admission Webhook to enforce pulling of Docker images from the private registry.
Go
46
star
29

jfrog-CVE-2023-25136-OpenSSH_Double-Free

Python
43
star
30

teamcity-artifactory-plugin

TeamCity plugin that enables traceable build artifacts with Artifactory
Java
42
star
31

froggit-go

Froggit-Go is a universal Go library, allowing to perform actions on VCS providers.
Go
42
star
32

jfrog-azure-devops-extension

JavaScript
41
star
33

chartcenter

The Central Helm Repository for the Community
Dockerfile
41
star
34

jfrog-CVE-2022-21449

Python
40
star
35

bamboo-artifactory-plugin

Atlassian Bamboo plugin that enables traceable build artifacts with Artifactory
Java
40
star
36

jfrog-docker-repo-simple-example

Getting started with JFrog Docker Repos - Example
Dockerfile
39
star
37

vault-plugin-secrets-artifactory

HashiCorp Vault Secrets Plugin for Artifactory
Go
38
star
38

artifactory-cli-go

Artifactory CLI written in Golang
Go
33
star
39

jfrog-cli-core

Go
32
star
40

docker2artifactory

Python
29
star
41

mlflow-jfrog-plugin

Python
27
star
42

artifactory-docker-builder

Groovy
27
star
43

gitlab-templates

Templates for CI/CD in GitLab using JFrog CLI
26
star
44

auto-mat

A docker container to generate heap dump reports and indexes for eclipse MAT
Java
25
star
45

kubexray

JFrog KubeXray scanner on Kubernetes
Go
25
star
46

log-analytics-prometheus

JFrog Prometheus Log Analytics Integration
23
star
47

artifactory-maven-plugin

A Maven plugin to resolve artifacts from Artifactory, deploy artifacts to Artifactory, capture and publish build info.
Java
23
star
48

cve-2024-3094-tools

Shell
21
star
49

polkit-tools

Shell
18
star
50

jfrog-registry-operator

Enhancing AWS Security: JFrog's Seamless Integration and the Power of AssumeRole
Go
18
star
51

jfrog-cli-plugins

Go
17
star
52

artifactory-gradle-plugin

JFrog Gradle plugin for Build Info extraction and Artifactory publishing.
Java
17
star
53

log-analytics

JFrog Log Analytics
Shell
17
star
54

gofrog

A collection of go utilities
Go
15
star
55

bower-art-resolver

JavaScript
15
star
56

jfrog-openssl-tools

Python
14
star
57

gradle-dep-tree

Gradle plugin that reads the Gradle dependencies of a given Gradle project, and generates a dependency tree.
Java
13
star
58

DevRel

Java
12
star
59

artifactory-sbt-plugin

The SBT Plugin for Artifactory resolve and pulish
Scala
12
star
60

artifactory-user-plugins-devenv

Development Environment for writting Artifactory User Plugins
Shell
12
star
61

aws-codestar

Artifactory-Code Star integration
Shell
12
star
62

SwampUp2022

Shell
12
star
63

jfrog-client-js

Xray Javascript Client
TypeScript
11
star
64

maven-anno-mojo

Write Maven plugins using annotations
Java
11
star
65

jfrog-ecosystem-integration-env

A Docker image containing all the tools JFrog CLI integrates with and supports.
Dockerfile
11
star
66

bamboo-jfrog-plugin

Easy integration between Bamboo and the JFrog Platform.
Java
10
star
67

xray-client-java

Xray Java Client
Java
9
star
68

artifactory-bosh-release

Bosh release of Artifactory for the PCF
HTML
9
star
69

msbuild-artifactory-plugin

Artifactory integration with MSBuild
C#
8
star
70

jfrog-ide-webview

JFrog-IDE-Webview is a React-based HTML page designed to be seamlessly embedded within JFrog VS Code Extension and the JFrog IDEA Plugin.
TypeScript
8
star
71

docker-compose-demos

JFrog example demos using docker compose
Shell
8
star
72

jfrog-visual-studio-extension

C#
8
star
73

log-analytics-elastic

JFrog Elastic Fluentd Kibana Log Analytics Integration
8
star
74

jfrog-ui-essentials

JavaScript
8
star
75

go-mockhttp

Go
7
star
76

ide-plugins-common

Common code used by the JFrog Idea Plugin and the JFrog Eclipse plugin
Java
7
star
77

jfrog-pipelines-task

7
star
78

nuget-deps-tree

This npm package reads the NuGet dependencies of a .NET project, and generates a dependencies tree object.
TypeScript
7
star
79

knife-art

Knife Artifactory integration
Ruby
7
star
80

jfrog-pipelines-go-task

Makefile
7
star
81

jfrog-mission-control-2.0

Jfrog Mission Control 2.0 example scripts
Groovy
7
star
82

log-analytics-splunk

JFrog Splunk Log Analytics Integration
JavaScript
6
star
83

go-license-discovery

A go library for matching text against known OSS licenses
Go
6
star
84

npm_domain_check

Python
6
star
85

jfrog-cli-plugin-template

Go
6
star
86

jfrog-distroless

Starlark
6
star
87

terraform-provider-pipeline

Terraform provider to manage Artifactory Pipelines
Go
6
star
88

docker-remote-util

A groovy util library to interact with docker remote api
Groovy
6
star
89

webapp-examples

Examples of Web Application that use Artifactory as a backend
CSS
6
star
90

jfrog-pipelines-jenkins-example

Go
5
star
91

maven-dep-tree

Maven plugin that reads the Maven dependencies of a given Maven project, and generates a dependency tree.
Java
5
star
92

log-analytics-datadog

JFrog Datadog Log Analytics Integration
Dockerfile
5
star
93

jfrog-apps-config

The configuration file allows you to refine your JFrog Advanced Security scans behavior according to your specific project needs and structures, leading to better and more accurate scan results.
Go
5
star
94

fan4idea

Java
4
star
95

live-logs

Go
4
star
96

gocmd

Go
4
star
97

jfrog-pipelines-docker-sample

Shell
4
star
98

SwampUp2023

HCL
4
star
99

jfrog-testing-infra

Common testing code used by integration tests of Jenkins and Bamboo Artifactory plugins.
Java
4
star
100

wharf

Wharf resolver
Java
4
star