Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
e14b944
Modify CodeQL workflow for improved analysis
StevenKitavi Aug 7, 2026
24e6d91
Bump NuGet.Packaging from 6.6.1 to 6.6.2
dependabot[bot] Aug 7, 2026
5917379
Bump System.Data.SqlClient from 4.8.3 to 4.8.6
dependabot[bot] Aug 7, 2026
8cba5e3
Bump System.Net.Http from 4.3.0 to 4.3.4
dependabot[bot] Aug 7, 2026
9ee38e9
Update CodeQL workflow for C# analysis
StevenKitavi Aug 7, 2026
9072063
Configure Dependabot for .NET SDK updates
StevenKitavi Aug 7, 2026
0da2d2d
Potential fix for code scanning alert no. 9: Cross-site scripting
StevenKitavi Aug 7, 2026
a34b68d
Merge pull request #5 from StevenKitavi/StevenKitavi-patch-1
StevenKitavi Aug 7, 2026
dfbdb54
Merge pull request #3 from StevenKitavi/dependabot/nuget/WebGoat.NET/…
StevenKitavi Aug 7, 2026
903c94c
Add a Pipeline
StevenKitavi Aug 7, 2026
dcfe835
Add Container scanning with trivy
StevenKitavi Aug 7, 2026
53f797d
Add Container scanning with trivy
StevenKitavi Aug 7, 2026
a269829
Add Container scanning with trivy
StevenKitavi Aug 7, 2026
31f140e
Add Container scanning with trivy
StevenKitavi Aug 7, 2026
e00f29f
Add Container scanning with trivy - debug install
StevenKitavi Aug 7, 2026
b98cb5a
Add Container scanning with trivy - add vulnerability count
StevenKitavi Aug 7, 2026
d75d41d
Add Container scanning with trivy - add vulnerability count
StevenKitavi Aug 7, 2026
7c1b48c
Add Container scanning with trivy - add vulnerability count
StevenKitavi Aug 7, 2026
caf68cb
Add Container scanning with trivy - add Cosign Image Verification
StevenKitavi Aug 7, 2026
04c468c
Add Container scanning with trivy - add SLSA
StevenKitavi Aug 7, 2026
1597e84
Add Container scanning with trivy - add SLSA
StevenKitavi Aug 7, 2026
acc4519
Add Debug Attestation- add SLSA Verification
StevenKitavi Aug 7, 2026
6f283b8
Add Debug Attestation- add Container SBOM
StevenKitavi Aug 7, 2026
d2a8e94
Add Scorecard supply-chain security workflow
StevenKitavi Aug 7, 2026
b7e9dd7
[StepSecurity] Apply security best practices
step-security-bot Aug 7, 2026
b9c3bde
Merge pull request #7 from step-security-bot/chore/GHA-071333-stepsec…
StevenKitavi Aug 7, 2026
1fc08b7
Add OpenSSF scorecard
StevenKitavi Aug 7, 2026
13a5683
Bump Microsoft.EntityFrameworkCore.Sqlite from 7.0.12 to 9.0.18
dependabot[bot] Aug 7, 2026
f1244c0
Merge branch 'master' of https://github.com/StevenKitavi/VulnerableWe…
StevenKitavi Aug 7, 2026
34ed01e
Merge pull request #17 from StevenKitavi/dependabot/nuget/WebGoat.NET…
StevenKitavi Aug 7, 2026
e541976
Add GRYPE SCA
StevenKitavi Aug 7, 2026
9a5242d
Merge branch 'master' of https://github.com/StevenKitavi/VulnerableWe…
StevenKitavi Aug 7, 2026
3eb0dbe
fix grype
StevenKitavi Aug 7, 2026
4cb6c73
fix grype
StevenKitavi Aug 7, 2026
9e277d9
fix grype
StevenKitavi Aug 7, 2026
0133526
fix grype
StevenKitavi Aug 7, 2026
0f6db00
add gitleaks
StevenKitavi Aug 7, 2026
c260746
add fail2ban-ansible
StevenKitavi Aug 7, 2026
72d0263
add fail2ban-ansible
StevenKitavi Aug 7, 2026
d076744
add fail2ban-ansible
StevenKitavi Aug 7, 2026
1cab5b7
add fail2ban-ansible
StevenKitavi Aug 7, 2026
78950bf
add fail2ban-ansible
StevenKitavi Aug 7, 2026
ede2958
add fail2ban-ansible
StevenKitavi Aug 7, 2026
4debc66
Bump Microsoft.Extensions.Identity.Core from 8.0.24 to 10.0.10
dependabot[bot] Aug 7, 2026
57ed648
add fail2ban environment setup
StevenKitavi Aug 8, 2026
c154314
add fail2ban environment setup
StevenKitavi Aug 8, 2026
3e97f4f
Add Docker setup and audit
StevenKitavi Aug 8, 2026
758a5a6
Add Docker setup and audit
StevenKitavi Aug 8, 2026
36cea81
Add Docker setup and audit
StevenKitavi Aug 8, 2026
00c166a
Add Docker setup and audit
StevenKitavi Aug 8, 2026
c5079df
Add Docker setup and audit
StevenKitavi Aug 8, 2026
4d671be
Add Docker setup and audit
StevenKitavi Aug 8, 2026
5e7caf7
Add Docker setup and audit
StevenKitavi Aug 8, 2026
df2b08e
Add Docker setup and audit
StevenKitavi Aug 8, 2026
266ab2e
Debug Docker Install and Audit
StevenKitavi Aug 8, 2026
922de27
Debug Docker Install and Audit
StevenKitavi Aug 8, 2026
1e836e8
Debug Docker Install and Audit
StevenKitavi Aug 8, 2026
cf73e81
Debug Docker Install and Audit
StevenKitavi Aug 8, 2026
d0361ed
Add Docker CIS
StevenKitavi Aug 8, 2026
e811d54
Add Trivy SCA & Require Trivy SCA before Docker Build
StevenKitavi Aug 8, 2026
63d9725
Add Trivy SCA & Require Trivy SCA before Docker Build
StevenKitavi Aug 8, 2026
7f7f2c6
Add Trivy SCA & Require Trivy SCA before Docker Build
StevenKitavi Aug 8, 2026
9443e95
[StepSecurity] ci: Harden GitHub Actions
step-security-bot Aug 8, 2026
66eaf27
Merge pull request #21 from step-security-bot/chore/GHA-082009-stepse…
StevenKitavi Aug 8, 2026
ce32a7e
Bump actions/checkout from 4.2.2 to 7.0.1
dependabot[bot] Aug 8, 2026
3cb40c0
Bump sigstore/cosign-installer from 3.8.1 to 4.1.2
dependabot[bot] Aug 8, 2026
1ddad77
Bump actions/setup-dotnet from 4.3.1 to 6.0.0
dependabot[bot] Aug 8, 2026
97e59b9
Bump docker/login-action from 3.7.0 to 4.6.0
dependabot[bot] Aug 8, 2026
5c82020
Bump github/codeql-action/upload-sarif from 3.37.6 to 4.37.6
dependabot[bot] Aug 8, 2026
8737b20
Bump dotnet/aspnet from 8.0 to 9.0
dependabot[bot] Aug 17, 2026
30fffac
Bump dotnet/sdk from 8.0 to 9.0
dependabot[bot] Aug 17, 2026
50cfe0b
Merge pull request #23 from StevenKitavi/dependabot/docker/dotnet/sdk…
StevenKitavi Aug 19, 2026
c483dfe
Merge pull request #22 from StevenKitavi/dependabot/docker/dotnet/asp…
StevenKitavi Aug 19, 2026
7a94aca
Merge pull request #20 from StevenKitavi/dependabot/nuget/WebGoat.NET…
StevenKitavi Aug 19, 2026
75201ce
Merge pull request #19 from StevenKitavi/dependabot/github_actions/ac…
StevenKitavi Aug 19, 2026
5dd3724
Merge pull request #13 from StevenKitavi/dependabot/github_actions/do…
StevenKitavi Aug 19, 2026
b324293
Merge pull request #12 from StevenKitavi/dependabot/github_actions/si…
StevenKitavi Aug 19, 2026
0d0eb44
Merge pull request #8 from StevenKitavi/dependabot/github_actions/act…
StevenKitavi Aug 19, 2026
2e51704
Merge pull request #18 from StevenKitavi/dependabot/github_actions/gi…
StevenKitavi Aug 19, 2026
2321d07
Merge branch 'master' into dependabot/nuget/WebGoat.NET/System.Net.Ht…
StevenKitavi Aug 19, 2026
890e338
Bump Microsoft.AspNetCore.Identity.UI from 7.0.12 to 8.0.30
dependabot[bot] Aug 19, 2026
c063a0a
Bump gitleaks/gitleaks-action from 2.3.9 to 3.0.0
dependabot[bot] Aug 19, 2026
148e94c
Bump actions/attest-build-provenance from 3.0.0 to 4.2.2
dependabot[bot] Aug 19, 2026
ebe8a2b
Bump Microsoft.EntityFrameworkCore.Sqlite from 9.0.18 to 9.0.19
dependabot[bot] Aug 19, 2026
c916dcb
Bump github/codeql-action/upload-sarif from 4.37.6 to 4.37.7
dependabot[bot] Aug 19, 2026
8ae419b
Bump actions/upload-artifact from 4.6.1 to 7.0.1
dependabot[bot] Aug 19, 2026
f48480e
Merge pull request #33 from StevenKitavi/dependabot/github_actions/ac…
StevenKitavi Aug 24, 2026
f980ff2
Merge pull request #32 from StevenKitavi/dependabot/github_actions/gi…
StevenKitavi Aug 24, 2026
4d2b0d2
Merge pull request #31 from StevenKitavi/dependabot/nuget/WebGoat.NET…
StevenKitavi Aug 24, 2026
74609b6
Bump Microsoft.EntityFrameworkCore.Proxies from 7.0.12 to 9.0.19
dependabot[bot] Aug 24, 2026
5757efa
fix Breaking inspec installation
StevenKitavi Aug 24, 2026
ba6748e
Merge branch 'master' of https://github.com/StevenKitavi/VulnerableWe…
StevenKitavi Aug 24, 2026
5b8bc21
Bump actions/download-artifact from 4.3.0 to 8.0.1
dependabot[bot] Aug 24, 2026
97cba9d
Bump step-security/harden-runner from 2.20.1 to 2.21.0
dependabot[bot] Aug 24, 2026
950dc8e
Bump Microsoft.Extensions.Identity.Core from 10.0.10 to 10.0.11
dependabot[bot] Aug 24, 2026
2a971b3
Merge pull request #28 from StevenKitavi/dependabot/github_actions/ac…
StevenKitavi Sep 3, 2026
b1d22b9
Merge pull request #26 from StevenKitavi/dependabot/nuget/WebGoat.NET…
StevenKitavi Sep 3, 2026
fb42ca3
Merge pull request #34 from StevenKitavi/dependabot/github_actions/ac…
StevenKitavi Sep 3, 2026
2a570e9
Merge branch 'master' into dependabot/nuget/WebGoat.NET/Microsoft.Ext…
StevenKitavi Sep 3, 2026
7be83c5
Merge pull request #36 from StevenKitavi/dependabot/nuget/WebGoat.NET…
StevenKitavi Sep 3, 2026
b4083b2
Merge pull request #35 from StevenKitavi/dependabot/github_actions/st…
StevenKitavi Sep 3, 2026
445398d
Merge branch 'master' into dependabot/nuget/WebGoat.NET/NuGet.Packagi…
StevenKitavi Sep 3, 2026
ae92f8e
Merge pull request #1 from StevenKitavi/dependabot/nuget/WebGoat.NET/…
StevenKitavi Sep 3, 2026
29055ee
Merge pull request #27 from StevenKitavi/dependabot/github_actions/gi…
StevenKitavi Sep 3, 2026
7bc0f57
Merge pull request #6 from StevenKitavi/alert-autofix-9
StevenKitavi Sep 3, 2026
6bd6221
Merge pull request #4 from StevenKitavi/dependabot/nuget/WebGoat.NET/…
StevenKitavi Sep 3, 2026
3fdb2b2
Bump github/codeql-action/upload-sarif from 4.37.7 to 4.37.9
dependabot[bot] Sep 3, 2026
ba1d85e
Bump Microsoft.Extensions.Identity.Core from 10.0.10 to 10.0.11
dependabot[bot] Sep 3, 2026
bf55829
Bump Microsoft.Extensions.Logging.Debug from 7.0.0 to 10.0.11
dependabot[bot] Sep 3, 2026
53df97f
Bump actions/attest-sbom from 3.0.0 to 4.1.0
dependabot[bot] Sep 3, 2026
bf950e1
Bump step-security/harden-runner from 2.21.0 to 2.21.1
dependabot[bot] Sep 3, 2026
d717b12
Merge pull request #43 from StevenKitavi/dependabot/github_actions/st…
StevenKitavi Sep 23, 2026
bc9d7c3
Merge pull request #42 from StevenKitavi/dependabot/github_actions/ac…
StevenKitavi Sep 23, 2026
0f41490
Merge pull request #41 from StevenKitavi/dependabot/nuget/WebGoat.NET…
StevenKitavi Sep 23, 2026
f629f16
Merge pull request #40 from StevenKitavi/dependabot/nuget/WebGoat.NET…
StevenKitavi Sep 23, 2026
f7ac645
Merge pull request #38 from StevenKitavi/dependabot/github_actions/gi…
StevenKitavi Sep 23, 2026
a370a20
Merge pull request #30 from StevenKitavi/dependabot/nuget/WebGoat.NET…
StevenKitavi Sep 23, 2026
732fc75
updated changes - revamp Trivy Threshold
StevenKitavi Oct 15, 2026
be8b468
Merge branch 'master' of https://github.com/StevenKitavi/VulnerableWe…
StevenKitavi Oct 15, 2026
29392d0
Enforcing Branch protection as code
StevenKitavi Oct 15, 2026
bd0d951
Enforcing Branch protection as code
StevenKitavi Oct 15, 2026
cbf87ab
Enforcing Branch protection as code
StevenKitavi Oct 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

#Add Dependabot configuration for automated dependency management.

version: 2
updates:
- package-ecosystem: "dotnet-sdk"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
ignore:
- dependency-name: "*"
update-types:
- "version-update:semver-major"
- "version-update:semver-minor"

- package-ecosystem: github-actions
directory: /
schedule:
interval: daily

- package-ecosystem: docker
directory: /
schedule:
interval: daily

- package-ecosystem: nuget
directory: /WebGoat.NET
schedule:
interval: daily
25 changes: 25 additions & 0 deletions .github/protector.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
patterns:
- master

# Tier 1
allowsDeletions: false
allowsForcePushes: false

# Tier 2 + Tier 4 + Tier 5
requiresApprovingReviews: true
requiredApprovingReviewCount: 2 # Tier 4 (covers Tier 2’s “at least 1”)
requiresCodeOwnerReviews: true # Tier 4
dismissesStaleReviews: true # Tier 5
isAdminEnforced: true # Tier 5 – administrators cannot bypass

# Tier 2 + Tier 3
requiresStatusChecks: true
requiresStrictStatusChecks: true # “Require branch to be up to date”
requiredStatusCheckContexts:
- ci / build # ← change to your actual status check name(s)

# Optional but recommended
requiresLinearHistory: true
requiresCommitSignatures: false # set to true if you want signed commits
restrictsPushes: false
restrictsReviewDismissals: false
68 changes: 68 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: "CodeQL"

on:
# Makes this workflow callable from other workflows (e.g. pipeline.yml)
workflow_call:

# Still allows it to run on its own if needed
push:
branches: [ "master", "main" ]
pull_request:
branches: [ "master", "main" ]
schedule:
- cron: '0 6 * * 1' # Every Monday 06:00 UTC
workflow_dispatch: # Manual trigger

permissions:
contents: read

jobs:
analyze:
name: Analyze (csharp)
runs-on: ubuntu-latest
timeout-minutes: 360

permissions:
security-events: write # Required to upload SARIF → Security tab
contents: read
actions: read
packages: read

steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
with:
egress-policy: audit

- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
with:
dotnet-version: |
8.0.x
9.0.x

# 1. Initialize CodeQL
- name: Initialize CodeQL
uses: github/codeql-action/init@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
with:
languages: csharp
queries: security-and-quality

# 2. Build (creates the database)
- name: Autobuild
uses: github/codeql-action/autobuild@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6

# If Autobuild fails, replace the step above with this:
# - name: Manual build
# run: |
# dotnet restore
# dotnet build --configuration Release --no-restore

# 3. Analyze + Upload SARIF to GitHub Security tab
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
with:
category: "/language:csharp"
78 changes: 78 additions & 0 deletions .github/workflows/cosign.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Cosign

on:
workflow_call:
inputs:
image-ref:
description: "Image reference to sign (e.g. ghcr.io/owner/repo:tag)"
required: true
type: string
image-digest:
description: "Image digest (ghcr.io/owner/repo@sha256:...)"
required: false
type: string
default: ""

workflow_dispatch:
inputs:
image-ref:
description: "Image reference to sign"
required: true
type: string
image-digest:
description: "Image digest (optional)"
required: false
type: string
default: ""

permissions:
contents: read

jobs:
sign:
name: Sign Image (keyless)
runs-on: ubuntu-24.04
# Only sign on main/master (image must exist in registry)
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main'
permissions:
contents: read
packages: write
id-token: write # required for Cosign keyless (OIDC)

steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
with:
egress-policy: audit

- name: Install Cosign
uses: sigstore/cosign-installer@6f9f17788090df1f26f669e9d70d6ae9567deba6 # v4.1.2

- name: Login to GHCR
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Sign image with Cosign (keyless)
run: |
if [ -n "${{ inputs.image-digest }}" ]; then
echo "Signing by digest: ${{ inputs.image-digest }}"
cosign sign --yes "${{ inputs.image-digest }}"
else
echo "Signing by tag: ${{ inputs.image-ref }}"
cosign sign --yes "${{ inputs.image-ref }}"
fi

- name: Verify signature
run: |
TARGET="${{ inputs.image-digest }}"
if [ -z "$TARGET" ]; then
TARGET="${{ inputs.image-ref }}"
fi

cosign verify \
--certificate-identity-regexp="https://github.com/${{ github.repository }}/.github/workflows/" \
--certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
"$TARGET"
27 changes: 27 additions & 0 deletions .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Dependency Review Action
#
# This Action will scan dependency manifest files that change as part of a Pull Request,
# surfacing known-vulnerable versions of the packages declared or updated in the PR.
# Once installed, if the workflow run is marked as required,
# PRs introducing known-vulnerable packages will be blocked from merging.
#
# Source repository: https://github.com/actions/dependency-review-action
name: 'Dependency Review'
on: [pull_request]

permissions:
contents: read

jobs:
dependency-review:
runs-on: ubuntu-latest
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
with:
egress-policy: audit

- name: 'Checkout Repository'
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: 'Dependency Review'
uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0
146 changes: 146 additions & 0 deletions .github/workflows/docker-cis-harden.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
name: Docker CIS Harden / Patch

on:
workflow_dispatch:
inputs:
ENABLE_USERNS_REMAP:
description: "Enable userns-remap (true/false)"
required: false
default: "false"
RUN_INSPEC:
description: "Run InSpec CIS scan after hardening (true/false)"
required: false
default: "true"

workflow_call:
inputs:
ENABLE_USERNS_REMAP:
description: "Enable userns-remap (true/false)"
required: false
type: string
default: "false"
RUN_INSPEC:
description: "Run InSpec CIS scan after hardening (true/false)"
required: false
type: string
default: "true"
secrets:
DEPLOYMENT_SERVER:
description: "Server IP or hostname"
required: true
DEPLOY_USER:
description: "SSH user"
required: true
DEPLOY_SSH_KEY:
description: "Private SSH key (no passphrase)"
required: true
CHEF_LICENSE_KEY:
description: "Chef license key for InSpec"
required: false

permissions:
contents: read

jobs:
harden-docker:
name: Docker CIS Harden + InSpec
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main'
environment: deployment
continue-on-error: true
env:
ENABLE_USERNS_REMAP: ${{ inputs.ENABLE_USERNS_REMAP || github.event.inputs.ENABLE_USERNS_REMAP || 'false' }}
RUN_INSPEC: ${{ inputs.RUN_INSPEC || github.event.inputs.RUN_INSPEC || 'true' }}

steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
with:
egress-policy: audit

- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Check deploy secrets are present
env:
KEY: ${{ secrets.DEPLOY_SSH_KEY }}
HOST: ${{ secrets.DEPLOYMENT_SERVER }}
USER: ${{ secrets.DEPLOY_USER }}
run: |
if [ -z "$HOST" ] || [ -z "$USER" ] || [ -z "$KEY" ]; then
echo "❌ DEPLOYMENT_SERVER / DEPLOY_USER / DEPLOY_SSH_KEY is empty"
echo "Add them under Settings → Environments → deployment"
exit 1
fi
echo "✅ Deploy secrets present (key length ${#KEY})"

- name: Setup SSH agent
uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1
with:
ssh-private-key: ${{ secrets.DEPLOY_SSH_KEY }}

- name: Add host to known_hosts
run: |
mkdir -p ~/.ssh
ssh-keyscan -H "${{ secrets.DEPLOYMENT_SERVER }}" >> ~/.ssh/known_hosts

- name: Install Ansible
run: |
sudo apt-get update -qq
sudo apt-get install -y -qq ansible

- name: Create inventory
run: |
cat > inventory.ini << EOF
[prod]
${{ secrets.DEPLOYMENT_SERVER }} ansible_user=${{ secrets.DEPLOY_USER }} ansible_ssh_common_args='-o StrictHostKeyChecking=yes' ansible_python_interpreter=/usr/bin/python3
EOF
cat inventory.ini

- name: Harden Docker to CIS controls
run: |
ansible-playbook -i inventory.ini Infrastructure/Ansible/harden-docker-cis.yml \
-e "{\"trusted_docker_users\": [\"${{ secrets.DEPLOY_USER }}\"]}" \
-e "enable_userns_remap=${ENABLE_USERNS_REMAP}"

- name: Install InSpec
if: env.RUN_INSPEC == 'true'
env:
CHEF_LICENSE_KEY: ${{ secrets.CHEF_LICENSE_KEY }}
run: |
curl -fsSL https://omnitruck.chef.io/install.sh | sudo bash -s -- -P inspec
inspec version

- name: Clone custom compliance profile
if: env.RUN_INSPEC == 'true'
run: |
git clone --depth 1 https://github.com/StevenKitavi/compliance-as-code.git /tmp/compliance-as-code

- name: Run Docker InSpec profiles in parallel
if: env.RUN_INSPEC == 'true'
env:
CHEF_LICENSE_KEY: ${{ secrets.CHEF_LICENSE_KEY }}
run: |
cat > inspec-multiprofile.txt << EOF
/tmp/compliance-as-code/docker --reporter html:cis-docker-custom-results.html
https://github.com/dev-sec/cis-docker-benchmark.git --reporter html:cis-docker-benchmark-results.html json:cis-docker-benchmark-results.json
EOF
cat inspec-multiprofile.txt

inspec parallel exec multiprofile \
-o inspec-multiprofile.txt \
-t "ssh://${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOYMENT_SERVER }}" \
--chef-license accept \
|| true

- name: Upload InSpec reports
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: inspec-docker-harden-reports
path: |
cis-docker-custom-results.html
cis-docker-benchmark-results.html
cis-docker-benchmark-results.json
retention-days: 30
if-no-files-found: ignore
Loading