Git Product home page Git Product logo

conjur-google-cloud-marketplace's Introduction

Overview


NOTICE: This project has no releases compatible with current K8s versions or latest releases of Conjur OSS. Please consider other deployment methods instead - in particular, consider deploying using the helm chart directly.

If you have any questions, please contact the maintainers on Discourse.


CyberArk Conjur automatically secures secrets used by privileged users and machine identities.

Learn more.

Installation

Quick install with Google Cloud Marketplace

Get up and running with a few clicks! Install this Conjur app to a Google Kubernetes Engine cluster using Google Cloud Marketplace. Follow the on-screen instructions.

Command line instructions

Prerequisites

Set up command-line tools

You'll need the following tools in your development environment:

Configure gcloud as a Docker credential helper:

gcloud auth configure-docker

Create a Google Kubernetes Engine cluster

Create a new cluster from the command line:

export CLUSTER=conjur-cluster
export ZONE=us-central1-a

gcloud container clusters create "$CLUSTER" --zone "$ZONE"

Configure kubectl to connect to the new cluster:

gcloud container clusters get-credentials "$CLUSTER" --zone "$ZONE"

Clone this repo

Clone this repo and the associated tools repo:

git submodule sync --recursive
git submodule update --recursive --init --force

Install the Application resource definition

An Application resource is a collection of individual Kubernetes components, such as Services, Deployments, and so on, that you can manage as a group.

To set up your cluster to understand Application resources, run the following command:

kubectl apply -f marketplace-k8s-app-tools/crd/*

You need to run this command once.

The Application resource is defined by the Kubernetes SIG-apps community. The source code can be found on github.com/kubernetes-sigs/application.

Install the Application

Configure the app with environment variables

Choose the namespace for the app.

export NAMESPACE=conjur

Choose a DNS hostname to be used as a CA certificate common name:

export CERTIFICATE_CN=conjur.myorg.com

Configure the container images:

export TAG_VERSION=$(cat VERSION)
export CONJUR_REPO="gcr.io/cloud-marketplace/cyberark/conjur-open-source"
export POSTGRES_REPO="$CONJUR_REPO/postgres"
export NGINX_REPO="$CONJUR_REPO/nginx"

Create namespace in your Kubernetes cluster

We recommend running Conjur in its own namespace. If you use a different namespace than the default, run the command below to create a new namespace:

kubectl create namespace "$NAMESPACE"
kubectl config set-context --current --namespace="$NAMESPACE"

Install the application with Helm (v2 or v3) to your Kubernetes cluster

These instructions assume that your local helm client is version 2 or version 3.

This project uses the upstream cyberark/conjur-oss Helm chart. (You do not need to clone or helm install this repo directly; this will be done indirectly via the helm install of conjur below.)

Use helm to deploy the application to your Kubernetes cluster:

If you'd like to use an external database, use the helm argument --set conjuross.databaseUrl='postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]' below. If conjuross.databaseUrl is not specified, a postgres deployment and service are created. See conjur/values.yaml for all available parameters and their defaults. See conjur-oss/values.yaml for all available upstream Helm chart parameters and their defaults.

helm dependency update ./conjur
helm install conjur \
     --set conjur-oss.ssl.hostname="$CERTIFICATE_CN" \
     --set conjur-oss.dataKey="$(docker run --rm cyberark/conjur data-key generate)" \
     --set conjur-oss.image.repository="$CONJUR_REPO" \
     --set conjur-oss.image.tag="$TAG_VERSION" \
     --set conjur-oss.image.pullPolicy="Always" \
     --set conjur-oss.nginx.image.repository="$NGINX_REPO" \
     --set conjur-oss.nginx.image.tag="$TAG_VERSION" \
     --set conjur-oss.nginx.image.pullPolicy="Always" \
     --set conjur-oss.postgres.image.repository="$POSTGRES_REPO" \
     --set conjur-oss.postgres.image.tag="$TAG_VERSION" \
     --set conjur-oss.postgres.image.pullPolicy="Always" \
     ./conjur

It may take a few minutes for the pods to come up in this installation. You can use kubectl get pods to monitor the pods until the are up:

$ kubectl get pods
NAME                                READY   STATUS    RESTARTS   AGE
conjur-conjur-oss-f689fc4db-cg7h4   2/2     Running   0          12m
conjur-postgres-6d5b59789c-hz5qv    1/1     Running   0          12m
$

View the app in the Google Cloud Console

Run the following commands until the EXTERNAL-IP column resolves:

INGRESS_SVC=$(kubectl get svc --no-headers -o custom-columns=":metadata.name" | grep conjur-oss-ingress)
kubectl get svc $INGRESS_SVC

To get the Console URL for your app, run the following commands:

EXT_IP=$(kubectl get svc "$INGRESS_SVC" -o=jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo "https://$EXT_IP"

To view the app, open the URL in your browser.

Set up Conjur

To initialize Conjur, an account must be created. This is done by executing a command on a Conjur pod. This only needs to be done when launching a new Conjur application, or creating a new Conjur account.

# Find conjur pod and create a `default` account
$ export POD_NAME=$(kubectl get pods \
       -l "app=conjur-oss" \
       -o jsonpath="{.items[0].metadata.name}")
$ kubectl exec $POD_NAME --container=conjur-oss conjurctl account create default
Token-Signing Public Key: -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA06mdosQTY76NLQTrgr7v
jkNLZC/a9jiKgeRTSJkMf+nJBLOVGmGgSZeU+eqDs/1Ldz/XJLouRk6XbSR8kAAQ
FtZbXFQKyyrRAJg3jN9DbB930FfyuBHpI/dPZVmKbBqiL4P8pwW9oj5ACzBgB1ZF
yz5iDWbmNyvIaqoYvSKpB7PItISOSX7C88LtxDsPK+eMxQnlu2kEg++P7OG2SFSW
EpVAd8v13QOUTG8u7dJ8LRJDBt7cBMagGAxp+cTRxvIGp63joBbn8Ca9rhZBMaeT
i/cFSx2B05QepUEFTVIJtSyF6cLUnRiXnZXVk61aRNbWOTEK8dGvkIBFswXPAN8z
/QIDAQAB
-----END PUBLIC KEY-----
Created new account 'default'
API key for admin: 1ma6hxgt6fagm52qgtn344xd1v1b7qrgp571fsm1250z6r3aewb9t
$

Note that the conjurctl account create command gives you the public key and admin API key for the account you created. Back them up in a safe location.

Connect remote with the Conjur CLI

Fetch the external IP for the Conjur service:

INGRESS_SVC=$(kubectl get svc --no-headers -o custom-columns=":metadata.name" | grep conjur-oss-ingress)
export EXT_IP=$(kubectl get svc "$INGRESS_SVC" -o=jsonpath='{.status.loadBalancer.ingress[0].ip}')

Pull and run the latest cyberark/conjur-cli:5 image to connect to Conjur:

docker pull cyberark/conjur-cli:5
docker run \
       --rm -it \
       --env EXT_IP \
       --env CERTIFICATE_CN \
       --entrypoint bash \
       cyberark/conjur-cli:5

Note that when connecting to the Conjur server, you must use hostname that matches one of the subject names that are contained in Conjur server's CA certificate, or you will get errors trying to log in. You can use the $CERTIFICATE_CN environment variable that you set earlier, since that has been configured as the CA certificate's subject common name.

Set up a DNS A record to map the target hostname ($CERTIFICATE_CN) to the Conjur service's external IP, or alternatively, create a mapping entry in /etc/hosts:

grep -q $CERTIFICATE_CN /etc/hosts && \
    sed -i "s/.*$CERTIFICATE_CN/$EXT_IP $CERTIFICATE_CN/" /etc/hosts || \
    echo "$EXT_IP $CERTIFICATE_CN" >> /etc/hosts

Connect to the Conjur server using the account that you just created and login as user admin, using the admin API key returned earlier as a password:

$ conjur init -u https://$CERTIFICATE_CN -a default
$ conjur authn login -u admin
Please enter admin's password (it will not be echoed):
Logged in

Confirm that you are logged in as user admin:

$ conjur authn whoami
{"account":"default","username":"admin"}

Next steps

Scaling

This is a single-instance version of Conjur. It is not intended to be scaled up with the current configuration.

Upgrade the Application

Prepare the environment

If you are using a remote database, no changes are needed.

Upgrade Conjur

If you haven't already, set your kubectl context to point to the namespace in which your Conjur application is running:

kubectl config set-context --current --namespace=<CONJUR-APP-NAMESPACE>

Set the new image version in an environment variable:

export NEW_VERSION=1.6.1
export IMAGE_CONJUR="gcr.io/cloud-marketplace/cyberark/conjur-open-source:$NEW_VERSION"

Update the Deployment definition with the reference to the new image:

kubectl patch deployment conjur-conjur-oss \
  --type='json' \
  --patch="[{ \
      \"op\": \"replace\", \
      \"path\": \"/spec/template/spec/containers/0/image\", \
      \"value\":\"${IMAGE_CONJUR}\" \
    }]"

Monitor the process with:

kubectl get pods \
  -l "app=conjur-oss" \
  --output go-template='Status={{.status.phase}} Image={{(index .spec.containers 0).image}}' \
  --watch

The Pod is terminated, and recreated with a new image for the conjur container. After the update is complete, the final state of the Pod is Running, and marked as 1/1 in the READY column.

Uninstall the Application

Using the Google Cloud Platform Console

  1. In the GCP Console, open Kubernetes Applications.

  2. From the list of applications, click Conjur by CyberArk.

  3. On the Application Details page, click Delete.

Using the command line

Delete the application release using Helm:

# Find the release
$ helm list | grep conjur

conjur	conjur   	1       	2020-03-09 15:36:14.293351857 -0400 EDT	deployed	conjur-1.3.7

# Delete the release
$ helm delete conjur
release "conjur" uninstalled

Contributing

We welcome contributions of all kinds to this repository. For instructions on how to get started and descriptions of our development workflows, please see our contributing guide.

License

This repository is licensed under Apache License 2.0 - see LICENSE for more details.

conjur-google-cloud-marketplace's People

Contributors

andytinkham avatar deci-ftw avatar diverdane avatar doodlesbykumbi avatar dustinmm80 avatar huyhg avatar ismarc avatar jakequilty avatar khajduczenia avatar sgnn7 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

conjur-google-cloud-marketplace's Issues

Adds postgres username/password Marketplace UI config

Add optional PostGres username/password config to UI config.

This change will depend on the addition of support for username/password values
settings being added to the conjur-oss-helm-charts chart for the postgres pod:

Update deployer to Google provided base image

The current deployer bases off of debian9

FROM launcher.gcr.io/google/debian9

You will want to base off our deployer_helm image, and remove any unecessary steps from the current Dockerfile

FROM gcr.io/cloud-marketplace-tools/k8s/deployer_helm:v0.6.2

Fix vulnerabilites in cloud marketplace tester container (1 critical, 6 high)

There are several vulnerabilities that are being reported by the Google Cloud Registry (GCR) when images for the tester image that is part of our Conjur Google Marketplace app.

To see the complete list, make sure that you have access to the conjur-cloud-launcher-onboard GCP project, and then browse to:
https://console.cloud.google.com/gcr/images/conjur-cloud-launcher-onboard/GLOBAL/cyberark/tester@sha256:7f90f271f93a4e1d2b5c7e1b082fd94f0e3cf08f5bb7ae4139b891f76cf498cc/details?tab=vulnz&authuser=1&gcrVulnzListsize=30

There is one critical vulnerability reported:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14618

Fix vulnerabilities in deployer container reported by trivy (3 critical, 17 high)

When a trivy scan is run on the deployer container that is used by the Conjur Google marketplace
app, including 3 critical:

git                  | CVE-2019-1349    | CRITICAL | 1:2.7.4-0ubuntu1.6                    | 1:2.7.4-0ubuntu1.7       | git: Recursive submodule                                         |
git-man              | CVE-2019-1349    | CRITICAL |                                       |                          | git: Recursive submodule                                         |
linux-libc-dev       | CVE-2019-10220   | CRITICAL | 4.4.0-169.198                         |                          | kernel: CIFS: Relative paths                                     |

and 17 HIGH vulnerabilities:

bash                 | CVE-2019-18276   | HIGH     | 4.3-14ubuntu1.4                       |                          | bash: when effective UID is                                      |
bsdutils             | CVE-2016-2779    | HIGH     | 2.27.1-6ubuntu3.9                     |                          | util-linux: runuser tty hijack                                   |
dpkg                 | CVE-2017-8283    | HIGH     | 1.18.4ubuntu1.6                       |                          | dpkg-source in dpkg 1.3.0                                        |
                     | CVE-2019-1353    | HIGH     |                                       |                          | git: NTFS protections inactive                                   |
krb5-multidev        | CVE-2017-15088   | HIGH     | 1.13.2+dfsg-5ubuntu2.1                |                          | krb5: Buffer overflow in                                         |
libapparmor1         | CVE-2016-1585    | HIGH     | 2.10.95-0ubuntu2.11                   |                          | In all versions of AppArmor                                      |
libc-bin             | CVE-2017-18269   | HIGH     | 2.23-0ubuntu11                        |                          | glibc: memory corruption in                                      |
libcroco3            | CVE-2017-8871    | HIGH     | 0.6.11-1                              |                          | libcroco: Infinite loop in the                                   |
libcryptsetup4       | CVE-2016-4484    | HIGH     | 2:1.6.6-5ubuntu2.1                    |                          | dracut: Brute force attack on                                    |
libncurses5          | CVE-2017-10684   | HIGH     | 6.0+20160213-1ubuntu1                 |                          | ncurses: Stack-based buffer                                      |
libonig2             | CVE-2019-13224   | HIGH     | 5.9.6-1ubuntu0.1                      |                          | oniguruma: use-after-free in                                     |
libpcre3             | CVE-2017-11164   | HIGH     | 2:8.38-3.1                            |                          | pcre: OP_KETRMAX feature                                         |
libsystemd0          | CVE-2020-1712    | HIGH     | 229-4ubuntu21.22                      | 229-4ubuntu21.27         | systemd: use-after-free when                                     |
libtasn1-6           | CVE-2018-1000654 | HIGH     | 4.7-3ubuntu0.16.04.3                  |                          | libtasn1: Infinite loop in                                       |
                     | CVE-2013-7445    | HIGH     |                                       |                          | kernel: memory exhaustion via                                    |
login                | CVE-2017-12424   | HIGH     | 1:4.2-3.1ubuntu5.4                    |                          | shadow-utils: Buffer overflow                                    |
zlib1g               | CVE-2016-9841    | HIGH     | 1:1.2.8.dfsg-2ubuntu4.1               | 1:1.2.8.dfsg-2ubuntu4.3  | zlib: Out-of-bounds pointer    

There is a new release of the GCP marketplace app

AC:

  • Follow the process for bumping the version
    • Bump the version, review the changelog, and ensure the open source compliance worksheet is up-to-date
    • Tag the project
    • Smoke check that the published app works as expected (see here)
    • Submit the published app for approval (see here)
  • Ensure the CONTRIBUTING guide has accurate release instructions, and update as needed
  • Manually verify app works as expected after approval / final publish

Skip postgres setup when using remote postgres

Currently we support using a remote postgres database, but our launcher still creates the postgres deployment and service even if using a remote URL. This is wasteful and unexpected.

Instead, when a user selects a remote URL for postgres, we should not launch postgres deployment/service.

Project pipeline is failing

See here.

Since we don't currently publish this project, we should add [DEPRECATED] to the description, add the deprecated topic, turn off the pipeline, and archive the project.

We can reactivate if/when we decide to reopen this project.

Open source compliance worksheet can be automated

We have to submit an open source compliance worksheet to google in order for our app to be published. We should determine whether we can auto-transform the NOTICES into this spreadsheet format, whether we could store it in the repo as a CSV and update with the notices, or what other options are available to reduce the work required to update this in preparing for a new release.

AC:

  • There is a clearly defined process for updating the open source compliance worksheet, the process is as simple as it can be, automation is leveraged where appropriate, and the source of truth is stored in the repo

Final review questions have been answered prior to 1.5.0 release

  • What happens to the values on the config screen after the button is clicked to set up the conjur node? Can those values be tampered with in that process? (Likely not, but requires checking)

  • What auditing does GCP provide for who starts/stops a pod in GKE? (If insufficient, this is probably docs work not something we can change)

  • Once the Conjur node is up, does GCP leave things in a different state than other platforms? (additional open ports or build artifacts left in accessible locations)

  • Is it possible to reactivate the deployer and access it once the deploy is done (and thus access potentially sensitive build/config parameters to make attacking the node easier)

  • Does the output from the tester container contain any sensitive info?

  • What happens if the persistent volume size is set too small or too big?

  • Several of these things might just mean there needs to be docs. It wasn't clear that much exists on our side for documentation though.

  • An initial scan indicated that post-install steps in the Application Details pane seem to be keeping with the quick start instructions - please double check that we don't have anything in there that goes against recommendations we make in docs elsewhere

  • Review the GCP security best practices article & to verify whether there is anything in our setup that would conflict with recommendations of that sort.

  • Manually review any remaining trivy reported vulnerabilities to fix any high or criticals, if possible

Jenkins builds fail when the tester's smoketest fails

Currently, if the tester container's smoketest fails, the Jenkins GKE build-test-verify builds are still marked as passing.

An example of this can be seen here:
https://jenkins.conjur.net/blue/organizations/jenkins/cyberark--conjur-google-cloud-marketplace/detail/47-tester-cve-2020-1967/3/pipeline/23

The logs show that the tester's smoketest has failed:

[2020-04-24T14:34:53.446Z] kubectl logs Pod/apptest-689c8gl2-test-yv7wr --namespace="apptest-689c8gl2"

[2020-04-24T14:34:53.446Z] result: (0, "1..1\nnot ok 1 Testing that Conjur status page is up\n# (in test file /tests/run.sh, line 2)\n#   `curl -f --cacert /cacert/tls.crt https://apptest-689c8gl2-conjur-oss/ | grep 'Conjur Status'' failed\n#   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n#                                  Dload  Upload   Total   Spent    Left  Speed\n# \r  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0\r100  2766    0  2766    0     0   142k      0 --:--:-- --:--:-- --:--:--  142k\n", 'Using /opt/kubectl/1.15/kubectl (server=1.15)\n')

[2020-04-24T14:34:53.446Z] ERROR SMOKE_TEST Tester 'Pod/apptest-689c8gl2-test-yv7wr' failed.

but the Jenkins job is still marked as passing.

Note that the smoketest that's performed is defined here:
https://github.com/cyberark/conjur-oss-helm-chart/blob/master/conjur-oss/templates/tests/test-simple-install-configmap.yaml#L8

This curl/grep for Conjur Status is currently failing because cyberark/conjur:latest (and cyberark/conjur:1.6.0) is missing this revert change:
cyberark/conjur#1499

Project fails to deploy on GKE 1.15.7-gke.23

Seems to work fine on 1.13 so we'll need to investigate what the problem is.

+ /bin/setassemblyphase.py --manifest /data/resources.yaml --status Pending
Reading /data/resources.yaml
+ kubectl apply --namespace=default --filename=/data/resources.yaml
Error from server (NotFound): the server could not find the requested resource

Discourse conversation

CC: @izgeri to prioritize

Review and enhance test automation

AC:

  • Review current GCP test automation
  • Write up proposed enhancements to the test suite as a comment on this issue, and ask the team for feedback / to review
  • Add additional flows to validate functionality as needed

Fix vulnerabilities in marketplace conjur app Ruby gems

Running trivy on a recent Conjur image created for the Google Cloud marketplace app reports
several vulnerabilities in Ruby Gems that are used in the container image:

gcr.io/conjur-cloud-launcher-onboard/cyberark:dane (ubuntu 20.04)
=================================================================
Total: 0 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 0, CRITICAL: 0)


opt/conjur-server/Gemfile.lock
==============================
Total: 18 (UNKNOWN: 4, LOW: 1, MEDIUM: 9, HIGH: 2, CRITICAL: 2)

+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+
|     LIBRARY     | VULNERABILITY ID | SEVERITY | INSTALLED VERSION |         FIXED VERSION          |             TITLE              |
+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+
| actionview      | CVE-2019-5419    | HIGH     | 4.2.11            | >= 6.0.0.beta3, ~> 5.2.2, >=   | rubygem-actionpack: denial     |
|                 |                  |          |                   | 5.2.2.1, ~> 5.1.6, >= 5.1.6.2, | of service vulnerability in    |
|                 |                  |          |                   | ~> 5.0.7, >= 5.0.7.2, ~>       | Action View                    |
|                 |                  |          |                   | 4.2.11, >= 4.2.11.1            |                                |
+                 +------------------+----------+                   +--------------------------------+--------------------------------+
|                 | CVE-2019-5418    | MEDIUM   |                   | ~> 4.2.11, >= 4.2.11.1, ~>     | rubygem-actionpack: render     |
|                 |                  |          |                   | 5.0.7, >= 5.0.7.2, ~> 5.1.6,   | file directory traversal in    |
|                 |                  |          |                   | >= 5.1.6.2, ~> 5.2.2, >=       | Action View                    |
|                 |                  |          |                   | 5.2.2.1, >= 6.0.0.beta3        |                                |
+                 +------------------+----------+                   +--------------------------------+--------------------------------+
|                 | CVE-2020-5267    | LOW      |                   | ~> 5.2.4, >= 5.2.4.2, >=       | Possible XSS vulnerability in  |
|                 |                  |          |                   | 6.0.2.2                        | ActionView                     |
+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+
| ffi             | CVE-2018-1000201 | MEDIUM   | 1.0.11            | >= 1.9.24                      | ruby-ffi DDL loading issue on  |
|                 |                  |          |                   |                                | Windows OS                     |
+                 +                  +          +-------------------+                                +                                +
|                 |                  |          | 1.0.11-java       |                                |                                |
|                 |                  |          |                   |                                |                                |
+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+
| json            | CVE-2013-0269    | HIGH     | 1.8.0-java        | ~> 1.5.5, ~> 1.6.8, >= 1.7.7   | rubygem-json: Denial of        |
|                 |                  |          |                   |                                | Service and SQL Injection      |
+                 +------------------+----------+-------------------+--------------------------------+--------------------------------+
|                 | CVE-2020-10663   | UNKNOWN  | 1.8.0             | >= 2.3.0                       | json Gem for Ruby Unsafe       |
|                 |                  |          |                   |                                | Object Creation Vulnerability  |
|                 |                  |          |                   |                                | (additional fix)               |
+                 +                  +          +-------------------+                                +                                +
|                 |                  |          | 1.8.0-java        |                                |                                |
|                 |                  |          |                   |                                |                                |
|                 |                  |          |                   |                                |                                |
+                 +                  +          +-------------------+                                +                                +
|                 |                  |          | 2.1.0             |                                |                                |
|                 |                  |          |                   |                                |                                |
|                 |                  |          |                   |                                |                                |
+                 +------------------+          +-------------------+--------------------------------+--------------------------------+
|                 | OSVDB-101157     |          | 1.8.0-java        | >= 1.1.0                       | json Gem for Ruby Data         |
|                 |                  |          |                   |                                | Handling Stack Buffer Overflow |
+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+
| rack            | CVE-2015-3225    | MEDIUM   | 1.5.2             | >= 1.6.2, ~> 1.5.4, ~> 1.4.6   | rubygem-rack: Potential Denial |
|                 |                  |          |                   |                                | of Service Vulnerability in    |
|                 |                  |          |                   |                                | Rack normalize_params()        |
+                 +------------------+          +                   +--------------------------------+--------------------------------+
|                 | CVE-2018-16471   |          |                   | ~> 1.6.11, >= 2.0.6            | rubygem-rack: Cross-site       |
|                 |                  |          |                   |                                | scripting (XSS) via `scheme`   |
|                 |                  |          |                   |                                | method on `Rack::Request`      |
+                 +------------------+          +                   +--------------------------------+--------------------------------+
|                 | CVE-2019-16782   |          |                   | ~> 1.6.12, >= 2.0.8            | rubygem-rack: hijack sessions  |
|                 |                  |          |                   |                                | by using timing attacks        |
|                 |                  |          |                   |                                | targeting the session id       |
+-----------------+------------------+          +-------------------+--------------------------------+--------------------------------+
| rack-protection | CVE-2018-1000119 |          | 1.5.0             | ~> 1.5.5, >= 2.0.0             | rack-protection: Timing attack |
|                 |                  |          |                   |                                | in authenticity_token.rb       |
+                 +------------------+          +                   +--------------------------------+--------------------------------+
|                 | CVE-2018-7212    |          |                   | >= 2.0.1, ~> 1.5.4             | rubygem-sinatra: path          |
|                 |                  |          |                   |                                | traversal via backslash        |
|                 |                  |          |                   |                                | characters                     |
+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+
| rake            | CVE-2020-8130    | CRITICAL | 10.0.4            | >= 12.3.3                      | rake: OS Command Injection via |
|                 |                  |          |                   |                                | egrep in Rake::FileList        |
+                 +                  +          +-------------------+                                +                                +
|                 |                  |          | 0.9.2             |                                |                                |
|                 |                  |          |                   |                                |                                |
+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+
| yajl-ruby       | CVE-2017-16516   | MEDIUM   | 1.1.0             | >= 1.3.1                       | rubygem-yajl-ruby:             |
|                 |                  |          |                   |                                | Yajl::Parser.new.parse         |
|                 |                  |          |                   |                                | incorrect parsing              |
+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+

var/lib/gems/2.5.0/gems/bcrypt-ruby-3.0.1/Gemfile.lock
======================================================
Total: 19 (UNKNOWN: 4, LOW: 1, MEDIUM: 9, HIGH: 2, CRITICAL: 3)

+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+
|     LIBRARY     | VULNERABILITY ID | SEVERITY | INSTALLED VERSION |         FIXED VERSION          |             TITLE              |
+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+
| actionview      | CVE-2019-5419    | HIGH     | 4.2.11            | >= 6.0.0.beta3, ~> 5.2.2, >=   | rubygem-actionpack: denial     |
|                 |                  |          |                   | 5.2.2.1, ~> 5.1.6, >= 5.1.6.2, | of service vulnerability in    |
|                 |                  |          |                   | ~> 5.0.7, >= 5.0.7.2, ~>       | Action View                    |
|                 |                  |          |                   | 4.2.11, >= 4.2.11.1            |                                |
+                 +------------------+----------+                   +--------------------------------+--------------------------------+
|                 | CVE-2019-5418    | MEDIUM   |                   | ~> 4.2.11, >= 4.2.11.1, ~>     | rubygem-actionpack: render     |
|                 |                  |          |                   | 5.0.7, >= 5.0.7.2, ~> 5.1.6,   | file directory traversal in    |
|                 |                  |          |                   | >= 5.1.6.2, ~> 5.2.2, >=       | Action View                    |
|                 |                  |          |                   | 5.2.2.1, >= 6.0.0.beta3        |                                |
+                 +------------------+----------+                   +--------------------------------+--------------------------------+
|                 | CVE-2020-5267    | LOW      |                   | ~> 5.2.4, >= 5.2.4.2, >=       | Possible XSS vulnerability in  |
|                 |                  |          |                   | 6.0.2.2                        | ActionView                     |
+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+
| ffi             | CVE-2018-1000201 | MEDIUM   | 1.0.11            | >= 1.9.24                      | ruby-ffi DDL loading issue on  |
|                 |                  |          |                   |                                | Windows OS                     |
+                 +                  +          +-------------------+                                +                                +
|                 |                  |          | 1.0.11-java       |                                |                                |
|                 |                  |          |                   |                                |                                |
+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+
| json            | CVE-2013-0269    | HIGH     | 1.8.0-java        | ~> 1.5.5, ~> 1.6.8, >= 1.7.7   | rubygem-json: Denial of        |
|                 |                  |          |                   |                                | Service and SQL Injection      |
+                 +------------------+----------+                   +--------------------------------+--------------------------------+
|                 | CVE-2020-10663   | UNKNOWN  |                   | >= 2.3.0                       | json Gem for Ruby Unsafe       |
|                 |                  |          |                   |                                | Object Creation Vulnerability  |
|                 |                  |          |                   |                                | (additional fix)               |
+                 +                  +          +-------------------+                                +                                +
|                 |                  |          | 2.1.0             |                                |                                |
|                 |                  |          |                   |                                |                                |
|                 |                  |          |                   |                                |                                |
+                 +                  +          +-------------------+                                +                                +
|                 |                  |          | 1.8.0             |                                |                                |
|                 |                  |          |                   |                                |                                |
|                 |                  |          |                   |                                |                                |
+                 +------------------+          +-------------------+--------------------------------+--------------------------------+
|                 | OSVDB-101157     |          | 1.8.0-java        | >= 1.1.0                       | json Gem for Ruby Data         |
|                 |                  |          |                   |                                | Handling Stack Buffer Overflow |
+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+
| rack            | CVE-2015-3225    | MEDIUM   | 1.5.2             | >= 1.6.2, ~> 1.5.4, ~> 1.4.6   | rubygem-rack: Potential Denial |
|                 |                  |          |                   |                                | of Service Vulnerability in    |
|                 |                  |          |                   |                                | Rack normalize_params()        |
+                 +------------------+          +                   +--------------------------------+--------------------------------+
|                 | CVE-2018-16471   |          |                   | ~> 1.6.11, >= 2.0.6            | rubygem-rack: Cross-site       |
|                 |                  |          |                   |                                | scripting (XSS) via `scheme`   |
|                 |                  |          |                   |                                | method on `Rack::Request`      |
+                 +------------------+          +                   +--------------------------------+--------------------------------+
|                 | CVE-2019-16782   |          |                   | ~> 1.6.12, >= 2.0.8            | rubygem-rack: hijack sessions  |
|                 |                  |          |                   |                                | by using timing attacks        |
|                 |                  |          |                   |                                | targeting the session id       |
+-----------------+------------------+          +-------------------+--------------------------------+--------------------------------+
| rack-protection | CVE-2018-1000119 |          | 1.5.0             | ~> 1.5.5, >= 2.0.0             | rack-protection: Timing attack |
|                 |                  |          |                   |                                | in authenticity_token.rb       |
+                 +------------------+          +                   +--------------------------------+--------------------------------+
|                 | CVE-2018-7212    |          |                   | >= 2.0.1, ~> 1.5.4             | rubygem-sinatra: path          |
|                 |                  |          |                   |                                | traversal via backslash        |
|                 |                  |          |                   |                                | characters                     |
+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+
| rake            | CVE-2020-8130    | CRITICAL | 10.0.4            | >= 12.3.3                      | rake: OS Command Injection via |
|                 |                  |          |                   |                                | egrep in Rake::FileList        |
+                 +                  +          +-------------------+                                +                                +
|                 |                  |          | 0.9.2             |                                |                                |
|                 |                  |          |                   |                                |                                |
+                 +                  +          +-------------------+                                +                                +
|                 |                  |          | 0.8.7             |                                |                                |
|                 |                  |          |                   |                                |                                |
+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+
| yajl-ruby       | CVE-2017-16516   | MEDIUM   | 1.1.0             | >= 1.3.1                       | rubygem-yajl-ruby:             |
|                 |                  |          |                   |                                | Yajl::Parser.new.parse         |
|                 |                  |          |                   |                                | incorrect parsing              |
+-----------------+------------------+----------+-------------------+--------------------------------+--------------------------------+

var/lib/gems/2.5.0/gems/bootstrap-sass-3.4.1/package-lock.json
==============================================================
Total: 0 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 0, CRITICAL: 0)


var/lib/gems/2.5.0/gems/http_parser.rb-0.6.0/Gemfile.lock
=========================================================
Total: 8 (UNKNOWN: 3, LOW: 0, MEDIUM: 3, HIGH: 1, CRITICAL: 1)

+-----------+------------------+----------+-------------------+------------------------------+--------------------------------+
|  LIBRARY  | VULNERABILITY ID | SEVERITY | INSTALLED VERSION |        FIXED VERSION         |             TITLE              |
+-----------+------------------+----------+-------------------+------------------------------+--------------------------------+
| ffi       | CVE-2018-1000201 | MEDIUM   | 1.0.11            | >= 1.9.24                    | ruby-ffi DDL loading issue on  |
|           |                  |          |                   |                              | Windows OS                     |
+           +                  +          +-------------------+                              +                                +
|           |                  |          | 1.0.11-java       |                              |                                |
|           |                  |          |                   |                              |                                |
+-----------+------------------+----------+-------------------+------------------------------+--------------------------------+
| json      | CVE-2013-0269    | HIGH     | 1.8.0-java        | ~> 1.5.5, ~> 1.6.8, >= 1.7.7 | rubygem-json: Denial of        |
|           |                  |          |                   |                              | Service and SQL Injection      |
+           +------------------+----------+-------------------+------------------------------+--------------------------------+
|           | CVE-2020-10663   | UNKNOWN  | 1.8.0             | >= 2.3.0                     | json Gem for Ruby Unsafe       |
|           |                  |          |                   |                              | Object Creation Vulnerability  |
|           |                  |          |                   |                              | (additional fix)               |
+           +                  +          +-------------------+                              +                                +
|           |                  |          | 1.8.0-java        |                              |                                |
|           |                  |          |                   |                              |                                |
|           |                  |          |                   |                              |                                |
+           +------------------+          +                   +------------------------------+--------------------------------+
|           | OSVDB-101157     |          |                   | >= 1.1.0                     | json Gem for Ruby Data         |
|           |                  |          |                   |                              | Handling Stack Buffer Overflow |
+-----------+------------------+----------+-------------------+------------------------------+--------------------------------+
| rake      | CVE-2020-8130    | CRITICAL | 0.9.2             | >= 12.3.3                    | rake: OS Command Injection via |
|           |                  |          |                   |                              | egrep in Rake::FileList        |
+-----------+------------------+----------+-------------------+------------------------------+--------------------------------+
| yajl-ruby | CVE-2017-16516   | MEDIUM   | 1.1.0             | >= 1.3.1                     | rubygem-yajl-ruby:             |
|           |                  |          |                   |                              | Yajl::Parser.new.parse         |
|           |                  |          |                   |                              | incorrect parsing              |
+-----------+------------------+----------+-------------------+------------------------------+--------------------------------+

var/lib/gems/2.5.0/gems/rack-test-0.6.3/Gemfile.lock
====================================================
Total: 14 (UNKNOWN: 3, LOW: 0, MEDIUM: 8, HIGH: 1, CRITICAL: 2)

+-----------------+------------------+----------+-------------------+------------------------------+--------------------------------+
|     LIBRARY     | VULNERABILITY ID | SEVERITY | INSTALLED VERSION |        FIXED VERSION         |             TITLE              |
+-----------------+------------------+----------+-------------------+------------------------------+--------------------------------+
| ffi             | CVE-2018-1000201 | MEDIUM   | 1.0.11-java       | >= 1.9.24                    | ruby-ffi DDL loading issue on  |
|                 |                  |          |                   |                              | Windows OS                     |
+                 +                  +          +-------------------+                              +                                +
|                 |                  |          | 1.0.11            |                              |                                |
|                 |                  |          |                   |                              |                                |
+-----------------+------------------+----------+-------------------+------------------------------+--------------------------------+
| json            | CVE-2013-0269    | HIGH     | 1.8.0-java        | ~> 1.5.5, ~> 1.6.8, >= 1.7.7 | rubygem-json: Denial of        |
|                 |                  |          |                   |                              | Service and SQL Injection      |
+                 +------------------+----------+-------------------+------------------------------+--------------------------------+
|                 | CVE-2020-10663   | UNKNOWN  | 1.8.0             | >= 2.3.0                     | json Gem for Ruby Unsafe       |
|                 |                  |          |                   |                              | Object Creation Vulnerability  |
|                 |                  |          |                   |                              | (additional fix)               |
+                 +                  +          +-------------------+                              +                                +
|                 |                  |          | 1.8.0-java        |                              |                                |
|                 |                  |          |                   |                              |                                |
|                 |                  |          |                   |                              |                                |
+                 +------------------+          +                   +------------------------------+--------------------------------+
|                 | OSVDB-101157     |          |                   | >= 1.1.0                     | json Gem for Ruby Data         |
|                 |                  |          |                   |                              | Handling Stack Buffer Overflow |
+-----------------+------------------+----------+-------------------+------------------------------+--------------------------------+
| rack            | CVE-2015-3225    | MEDIUM   | 1.5.2             | >= 1.6.2, ~> 1.5.4, ~> 1.4.6 | rubygem-rack: Potential Denial |
|                 |                  |          |                   |                              | of Service Vulnerability in    |
|                 |                  |          |                   |                              | Rack normalize_params()        |
+                 +------------------+          +                   +------------------------------+--------------------------------+
|                 | CVE-2018-16471   |          |                   | ~> 1.6.11, >= 2.0.6          | rubygem-rack: Cross-site       |
|                 |                  |          |                   |                              | scripting (XSS) via `scheme`   |
|                 |                  |          |                   |                              | method on `Rack::Request`      |
+                 +------------------+          +                   +------------------------------+--------------------------------+
|                 | CVE-2019-16782   |          |                   | ~> 1.6.12, >= 2.0.8          | rubygem-rack: hijack sessions  |
|                 |                  |          |                   |                              | by using timing attacks        |
|                 |                  |          |                   |                              | targeting the session id       |
+-----------------+------------------+          +-------------------+------------------------------+--------------------------------+
| rack-protection | CVE-2018-1000119 |          | 1.5.0             | ~> 1.5.5, >= 2.0.0           | rack-protection: Timing attack |
|                 |                  |          |                   |                              | in authenticity_token.rb       |
+                 +------------------+          +                   +------------------------------+--------------------------------+
|                 | CVE-2018-7212    |          |                   | >= 2.0.1, ~> 1.5.4           | rubygem-sinatra: path          |
|                 |                  |          |                   |                              | traversal via backslash        |
|                 |                  |          |                   |                              | characters                     |
+-----------------+------------------+----------+-------------------+------------------------------+--------------------------------+
| rake            | CVE-2020-8130    | CRITICAL | 10.0.4            | >= 12.3.3                    | rake: OS Command Injection via |
|                 |                  |          |                   |                              | egrep in Rake::FileList        |
+                 +                  +          +-------------------+                              +                                +
|                 |                  |          | 0.9.2             |                              |                                |
|                 |                  |          |                   |                              |                                |
+-----------------+------------------+----------+-------------------+------------------------------+--------------------------------+
| yajl-ruby       | CVE-2017-16516   | MEDIUM   | 1.1.0             | >= 1.3.1                     | rubygem-yajl-ruby:             |
|                 |                  |          |                   |                              | Yajl::Parser.new.parse         |
|                 |                  |          |                   |                              | incorrect parsing              |
+-----------------+------------------+----------+-------------------+------------------------------+--------------------------------+

Conjur version is rolled back to 1.5.0

At current the integration uses Conjur v1.6.0, but we want to roll back to v1.5.1 for this push since 1.6.0 includes the Rails 5 upgrade and there continue to be minor issues identified that will be fixed in the next tag, which is not yet available. So as not to block our progress on this release, we'll use the last stable version v1.5.0.

Adds min/max limits for database storage size

When a user configures the Conjur Google Cloud Marketplace application,
one of the configurable option fields is Storage. There should be a minimum
and maximum check on what the user enters, with a visible warning if what's
entered is outside of these limits.

Fix vulnerabilities in nginx and postgres containers reported by GCR

There are several vulnerabilities that are being reported by the Google Cloud Registry (GCR) when the nginx and postgres images that are used by our Conjur Google Marketplace app are loaded
into GCR.

To see the complete list, make sure that you have access to the conjur-cloud-launcher-onboard GCP project, and then browse to:

nginx:
https://console.cloud.google.com/gcr/images/conjur-cloud-launcher-onboard/GLOBAL/cyberark/nginx@sha256:e770165fef9e36b990882a4083d8ccf5e29e469a8609bb6b2e3b47d9510e2c8d/details?tab=vulnz&authuser=1&gcrVulnzListsize=30

postgres:
https://console.cloud.google.com/gcr/images/conjur-cloud-launcher-onboard/GLOBAL/cyberark/postgres@sha256:df5b5545e937ab152f2cf401fccb515d49363dfce1333c4b8b2580b6c0bbc207/details?tab=vulnz&authuser=1&gcrVulnzListsize=30

There is a new release of the GCP marketplace integration

Releasing a new GCP marketplace integration

To release a new GCP marketplace app for deploying Conjur OSS, we need to:

Helm updates

GCP marketplace app updates

  • Rollback to Conjur 1.5 - #50 (in progress)
  • Jenkins test fails when chart tests fail - #49 (in progress)
  • Bump dependency versions in marketplace app images to be consistent with updated helm chart, and ensure images will fail trivy scans on Critical or High vulns - #57
  • Review current GCP test automation and add additional flows to validate functionality as needed - #58
  • Determine min/max range for PV volume size and update the marketplace app - #54
  • Update the GCP marketplace documentation in line with recent updates to the helm documentation (especially around recommendations for running securely, etc) - includes TW review - #59
  • Add NOTICES to GCP marketplace project, and build into all of the Docker images - #60
  • Add tag-triggered Jenkins stage to automate the process of publishing versioned images to our app's cloud storage bucket (see the contributing guide) - #61
  • Add automation to the generation of the open source compliance worksheet - #62
  • Marketplace app has undergone XA - #42
  • Create a new GCP marketplace app release - #63
    • Bump the version, review the changelog, and ensure the open source compliance worksheet is up-to-date
    • Tag the project
    • Smoke check that the published app works as expected (see here)
    • Submit the published app for approval (see here)
  • Manually verify app works as expected after approval / final publish

Out of Scope:

  • Add a migration for breaking version changes
  • Troubleshooting guide or enhancements

Original draft

We kicked off this effort to fix an issue with the GCP marketplace integration working in K8s 1.15+ (see #25 for more info), but creating this new release has involved several updates and is a project in its own right.

A review of the definition of done indicates that creating this new release should include:

  • The updated GCP marketplace integration is tagged and published (#41)
  • The updated GCP marketplace integration has gone through XA (#42)
  • Repo docs are updated based on feedback from XA (#43)
    • Note: the website documentation for this project points to the repo README, so that no changes are needed in the Flare documentation as part of this project. We do not intend to revise where the documentation lives as part of this project, but the docs may be migrated to the website documentation in a future effort / as part of an effort considering overall open source docs improvements.
  • GCP marketplace integration has undergone security review

Items not included in this version:

  • Adding automated tests to this project (#13)
  • Adding troubleshooting info to this project (this should be considered for the future docs effort)

Already completed tasks:

  • Fix vulns in cloud marketplace tester container (#32)
  • Fix vulns in nginx and postgres containers reported by Google Container Registry (#33)
  • Fix vulns in deployer container reported by trivy (#34)
  • Add trivy scan of component images in Jenkins pipeline (#35)
  • (Bug) Project fails to deploy on GKE 1.15.7-gke.23 (#25)
  • Fix vulns in marketplace Conjur app ruby gems (#37)
  • Add build, test, and publishing instructions (#30)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.