KICS GitHub Action now pulls KICS from Docker image

Updated KICS to pull from Docker image checkmarx/kics:gh-action for better version control

Signed-off-by: João Reigota <joao.reigota@checkmarx.com>
This commit is contained in:
João Reigota
2021-11-25 10:47:29 +00:00
parent 6fd8ac885d
commit 4493efc617
5 changed files with 58 additions and 55 deletions

9
Dockerfile Normal file
View File

@ -0,0 +1,9 @@
FROM checkmarx/kics:gh-action
COPY ./entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
COPY ./ /app
ENTRYPOINT ["/entrypoint.sh"]

View File

@ -167,9 +167,9 @@ jobs:
### PR Comment Example
<img alt="KICS Logo" src="https://user-images.githubusercontent.com/75368139/136991766-a4e5bc8b-63db-48f7-9384-740e9f15c9f6.png" width="150">
<img alt="KICS Logo" src="https://user-images.githubusercontent.com/74597872/143567454-f65ad285-00d8-4875-845d-568d2e67d868.png" width="150">
**KICS version: 1.4.5**
**KICS version: 1.4.8**
<table>
<tr></tr>

View File

@ -83,53 +83,34 @@ branding:
icon: "shield"
color: "green"
runs:
using: "composite"
steps:
- uses: actions/checkout@v2
- name: Run KICS Scan
id: kics_scan
uses: docker://checkmarx/kics:v1.4.8-alpine
env:
INPUT_PATH: ${{ inputs.path }}
INPUT_FAIL_ON: ${{ inputs.fail_on }}
INPUT_TIMEOUT: ${{ inputs.timeout }}
INPUT_PROFILING: ${{ inputs.profiling }}
INPUT_CONFIG_PATH: ${{ inputs.config }}
INPUT_PLATFORM_TYPE: ${{ inputs.platform_type }}
INPUT_EXCLUDE_PATHS: ${{ inputs.exclude_paths }}
INPUT_EXCLUDE_QUERIES: ${{ inputs.exclude_queries }}
INPUT_INCLUDE_QUERIES: ${{ inputs.include_queries }}
INPUT_EXCLUDE_CATEGORIES: ${{ inputs.exclude_categories }}
INPUT_EXCLUDE_RESULTS: ${{ inputs.exclude_results }}
INPUT_OUTPUT_FORMATS: ${{ inputs.output_formats }}
INPUT_OUTPUT_PATH: ${{ inputs.output_path }}
INPUT_PAYLOAD_PATH: ${{ inputs.payload_path }}
INPUT_QUERIES: ${{ inputs.queries }}
INPUT_VERBOSE: ${{ inputs.verbose }}
INPUT_BOM: ${{ inputs.bom }}
INPUT_IGNORE_ON_EXIT: ${{ inputs.ignore_on_exit }}
INPUT_DISABLE_SECRETS: ${{ inputs.disable_secrets }}
INPUT_DISABLE_FULL_DESCRIPTIONS: ${{ inputs.disable_full_descriptions }}
INPUT_LIBRARIES_PATH: ${{ inputs.libraries_path }}
INPUT_SECRETS_REGEXES_PATH: ${{ inputs.secrets_regexes_path}}
with:
entrypoint: ./entrypoint.sh
- name: Run KICS PR Comentator
uses: actions/setup-node@v2
with:
node-version: 12.x
- name: Install dependencies
shell: bash
run: npm ci
- run: |
sudo chown -R ${USER} ${{ inputs.output_path }}
npm run build --if-present
shell: bash
- run: node dist/index.js
shell: bash
env:
INPUT_TOKEN: ${{ inputs.token }}
INPUT_OUTPUT_PATH: ${{ inputs.output_path }}
INPUT_ENABLE_COMMENTS: ${{ inputs.enable_comments }}
INPUT_OUTPUT_FORMATS: ${{ inputs.output_formats }}
KICS_EXIT_CODE: ${{ steps.kics_scan.outputs.exit_code }}
using: "docker"
image: Dockerfile
env:
INPUT_TOKEN: ${{ inputs.token }}
INPUT_OUTPUT_PATH: ${{ inputs.output_path }}
INPUT_ENABLE_COMMENTS: ${{ inputs.enable_comments }}
INPUT_OUTPUT_FORMATS: ${{ inputs.output_formats }}
WORKSPACE_PATH: $GITHUB_WORKSPACE
args:
- ${{ inputs.path }}
- ${{ inputs.fail_on }}
- ${{ inputs.timeout }}
- ${{ inputs.profiling }}
- ${{ inputs.config }}
- ${{ inputs.platform_type }}
- ${{ inputs.exclude_paths }}
- ${{ inputs.exclude_queries }}
- ${{ inputs.include_queries }}
- ${{ inputs.exclude_categories }}
- ${{ inputs.exclude_results }}
- ${{ inputs.output_formats }}
- ${{ inputs.output_path }}
- ${{ inputs.payload_path }}
- ${{ inputs.queries }}
- ${{ inputs.verbose }}
- ${{ inputs.bom }}
- ${{ inputs.ignore_on_exit }}
- ${{ inputs.disable_secrets }}
- ${{ inputs.disable_full_descriptions }}
- ${{ inputs.libraries_path }}
- ${{ inputs.secrets_regexes_path}}

View File

@ -59,8 +59,11 @@ fi
############################
# Check for Output Path #
############################
CP_PATH="./results.json"
if [ ! -z "$INPUT_OUTPUT_PATH" ]; then
OUTPUT_PATH_PARAM="-o $INPUT_OUTPUT_PATH"
CP_PATH=$INPUT_OUTPUT_PATH
else
OUTPUT_PATH_PARAM="-o ./"
fi
@ -72,5 +75,15 @@ cd $GITHUB_WORKSPACE
echo "${DATETIME} - INF : about to scan directory $INPUT_PATH"
echo "${DATETIME} - INF : kics command kics $INPUT_PARAM $OUTPUT_PATH_PARAM $OUTPUT_FORMATS_PARAM $PLATFORM_TYPE_PARAM $PAYLOAD_PATH_PARAM $CONFIG_PATH_PARAM $EXCLUDE_PATHS_PARAM $EXCLUDE_CATEGORIES_PARAM $EXCLUDE_RESULTS_PARAM $EXCLUDE_QUERIES_PARAM $QUERIES_PARAM $VERBOSE_PARAM $IGNORE_ON_EXIT_PARAM $FAIL_ON_PARAM $TIMEOUT_PARAM $PROFILING_PARAM $BOM_PARAM $INCLUDE_QUERIES_PARAM $DISABLE_SECRETS_PARAM $DISABLE_FULL_DESCRIPTIONS_PARAM $LIBRARIES_PATH_PARAM $SECRETS_REGEXES_PATH_PARAM"
/app/bin/kics scan --no-progress $INPUT_PARAM $OUTPUT_PATH_PARAM $OUTPUT_FORMATS_PARAM $PLATFORM_TYPE_PARAM $PAYLOAD_PATH_PARAM $CONFIG_PATH_PARAM $EXCLUDE_PATHS_PARAM $EXCLUDE_CATEGORIES_PARAM $EXCLUDE_RESULTS_PARAM $EXCLUDE_QUERIES_PARAM $QUERIES_PARAM $VERBOSE_PARAM $IGNORE_ON_EXIT_PARAM $FAIL_ON_PARAM $TIMEOUT_PARAM $PROFILING_PARAM $BOM_PARAM $INCLUDE_QUERIES_PARAM $DISABLE_SECRETS_PARAM $DISABLE_FULL_DESCRIPTIONS_PARAM $LIBRARIES_PATH_PARAM $SECRETS_REGEXES_PATH_PARAM
echo "::set-output name=exit_code::$?"
exit 0
export KICS_EXIT_CODE=$?
cp -r "${CP_PATH}" "/app/"
cd /app
# install and run nodejs
apk add --update nodejs npm
npm ci
npm run build --if-present
node dist/index.js

View File

@ -1,6 +1,6 @@
const moment = require('moment')
const kicsLogo = "https://user-images.githubusercontent.com/75368139/136991766-a4e5bc8b-63db-48f7-9384-740e9f15c9f6.png"
const kicsLogo = "https://user-images.githubusercontent.com/74597872/143567454-f65ad285-00d8-4875-845d-568d2e67d868.png"
const severityOrder = ["HIGH", "MEDIUM", "LOW", "INFO", "TRACE"];
const severityIcons = {
"HIGH": "https://user-images.githubusercontent.com/23239410/92157087-97285600-ee32-11ea-988f-0aca12c4c126.png",