Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat CI/CD Security Scanners #45

Merged
merged 29 commits into from
Jan 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
ec33a35
Added the security pipeline.
airvzxf Jan 5, 2024
a2fef0c
Updated the security pipeline to automatically run the action.
airvzxf Jan 5, 2024
4d3f1d9
Added the NJS Scan code in GitHub Actions.
airvzxf Jan 10, 2024
eeb267c
Removed the creation of SARIF in security scanner.
airvzxf Jan 10, 2024
067a157
Renamed the security scan CRDA to pending extension.
airvzxf Jan 10, 2024
37c4b3a
Removed the security workflow.
airvzxf Jan 10, 2024
acc736b
Updated the NJS Scan to display the results and upload the report.
airvzxf Jan 10, 2024
a8d6a2c
Restored the extension for the CRDA scanner in the workflows.
airvzxf Jan 10, 2024
d9c8000
Fixed duplicate IDs in the NSJ Scan workflow.
airvzxf Jan 10, 2024
cd8df22
Changed the workflow title for the CRDA scanner.
airvzxf Jan 10, 2024
e798dcd
Renamed the extension of the CRDA scanner to pending.
airvzxf Jan 10, 2024
3ad4e3d
Removed the Redhat CRDA scanner.
airvzxf Jan 19, 2024
57d91cd
Added the Snyk security scanner.
airvzxf Jan 19, 2024
08eb3e1
Added more outputs to debug the secrets.
airvzxf Jan 19, 2024
0db87ab
Added outputs to debug the Snyk.
airvzxf Jan 19, 2024
30dd607
Added outputs to debug the Snyk.
airvzxf Jan 19, 2024
66c65e9
Added outputs to debug the Snyk.
airvzxf Jan 19, 2024
585419a
Added outputs to debug the Snyk.
airvzxf Jan 19, 2024
cffd1d1
Added outputs to debug the Snyk.
airvzxf Jan 19, 2024
82b5c1b
Added outputs to debug the Snyk.
airvzxf Jan 19, 2024
bea612a
Added the generated file for Snyk to the Git ignore file.
airvzxf Jan 20, 2024
93c2b78
Added the generated file for Snyk to the Git ignore file.
airvzxf Jan 20, 2024
437a963
Added outputs to debug the Snyk.
airvzxf Jan 20, 2024
2598923
Added outputs to debug the Snyk.
airvzxf Jan 20, 2024
0bc2e5a
Added outputs to debug the Snyk.
airvzxf Jan 20, 2024
0f49be9
Added outputs to debug the Snyk.
airvzxf Jan 20, 2024
b752f7f
Added the new workflow for GitHub Actions to validate the security wi…
airvzxf Jan 20, 2024
8a03094
Renamed the security names for workflows in GitHub Actions.
airvzxf Jan 20, 2024
9cead45
Updated to main branch for the security scanners in the GitHub Actions.
airvzxf Jan 23, 2024
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
46 changes: 46 additions & 0 deletions .github/workflows/ci-security-njsscan.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

# This workflow integrates njsscan with GitHub's Code Scanning feature
# nodejsscan is a static security code scanner that finds insecure code patterns in your Node.js applications

name: CI ➟ Security ➟ NJS Scan [SARIF]

on:
push:
branches: [ "main" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
#schedule:
# - cron: '22 20 * * 3'

permissions:
contents: read

jobs:
njs-scan:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
runs-on: ubuntu-latest
name: NJS Scan code
steps:
- name: Checkout the code
uses: actions/checkout@v4
- name: Scan the code
uses: ajinabraham/njsscan-action@master
with:
args: '.'
- name: Create the SARIF file
id: njsscan
uses: ajinabraham/njsscan-action@master
with:
args: '. --sarif --output results.sarif || true'
- name: Upload SARIF report
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: results.sarif
60 changes: 60 additions & 0 deletions .github/workflows/ci-security-snyk-validator.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

# A sample workflow which sets up Snyk to analyze the full Snyk platform (Snyk Open Source, Snyk Code,
# Snyk Container and Snyk Infrastructure as Code)
# The setup installs the Snyk CLI - for more details on the possible commands
# check https://docs.snyk.io/snyk-cli/cli-reference
# The results of Snyk Code are then uploaded to GitHub Security Code Scanning
#
# In order to use the Snyk Action you will need to have a Snyk API token.
# More details in https://github.com/snyk/actions#getting-your-snyk-token
# or you can signup for free at https://snyk.io/login
#
# For more examples, including how to limit scans to only high-severity issues
# and fail PR checks, see https://github.com/snyk/actions/

name: CI ➟ Security ➟ Snyk Validator

on:
push:
branches: [ "main" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]

permissions:
contents: read

jobs:
snyk:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Snyk CLI to check for security issues
# Snyk can be used to break the build when it detects security issues.
# In this case we want to upload the SAST issues to GitHub Code Scanning
uses: snyk/actions/setup@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}

# For Snyk Open Source you must first set up the development environment for your application's dependencies
- uses: actions/setup-node@v4
with:
node-version: 20

- name: Snyk set up the authentication token
run: snyk auth "${{ secrets.SNYK_TOKEN }}"

- name: Snyk default organization
run: snyk config set org="${{ secrets.SNYK_ORG_ID }}"

- name: Snyk general review
run: snyk code test
84 changes: 84 additions & 0 deletions .github/workflows/ci-security-snyk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

# A sample workflow which sets up Snyk to analyze the full Snyk platform (Snyk Open Source, Snyk Code,
# Snyk Container and Snyk Infrastructure as Code)
# The setup installs the Snyk CLI - for more details on the possible commands
# check https://docs.snyk.io/snyk-cli/cli-reference
# The results of Snyk Code are then uploaded to GitHub Security Code Scanning
#
# In order to use the Snyk Action you will need to have a Snyk API token.
# More details in https://github.com/snyk/actions#getting-your-snyk-token
# or you can signup for free at https://snyk.io/login
#
# For more examples, including how to limit scans to only high-severity issues
# and fail PR checks, see https://github.com/snyk/actions/

name: CI ➟ Security ➟ Snyk Scaner [SARIF]

on:
push:
branches: [ "main" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]

permissions:
contents: read

jobs:
snyk:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Snyk CLI to check for security issues
# Snyk can be used to break the build when it detects security issues.
# In this case we want to upload the SAST issues to GitHub Code Scanning
uses: snyk/actions/setup@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}

# For Snyk Open Source you must first set up the development environment for your application's dependencies
- uses: actions/setup-node@v4
with:
node-version: 20

- name: Snyk set up the authentication token
run: snyk auth "${{ secrets.SNYK_TOKEN }}"

- name: Snyk default organization
run: snyk config set org="${{ secrets.SNYK_ORG_ID }}"

# Runs Snyk Code (SAST) analysis and uploads result into GitHub.
# Use || true to not fail the pipeline
- name: Snyk Code test
run: snyk code test -d --sarif > snyk-code.sarif || true

# Runs Snyk Open Source (SCA) analysis and uploads result to Snyk.
- name: Snyk Open Source monitor
run: snyk monitor --all-projects

# Runs Snyk Infrastructure as Code (IaC) analysis and uploads result to Snyk.
# Use || true to not fail the pipeline.
#- name: Snyk IaC test and report
# run: snyk iac test --report || true

# Build the docker image for testing
#- name: Build a Docker image
# run: docker build -t your/image-to-test .
# Runs Snyk Container (Container and SCA) analysis and uploads result to Snyk.
#- name: Snyk Container monitor
# run: snyk container monitor your/image-to-test --file=Dockerfile

# Push the Snyk Code results into GitHub Code Scanning tab
- name: Upload result to GitHub Code Scanning
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: snyk-code.sarif
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,7 @@ yarn-error.log*

# turbo
.turbo

# Snyk
.dccache
*.sarif
Loading