diff --git a/.github/workflows/sec_sast_flawfinder.yml b/.github/workflows/sec_sast_flawfinder.yml new file mode 100644 index 000000000..e2ba44090 --- /dev/null +++ b/.github/workflows/sec_sast_flawfinder.yml @@ -0,0 +1,40 @@ +--- +name: Flawfinder Scan + +on: + push: + branches: [master, develop] + paths-ignore: + - "**.md" + - "version.properties" + +jobs: + flawfinder: + runs-on: ubuntu-latest + name: Flawfinder + + steps: + # step 1 + - name: clone application source code + uses: actions/checkout@v3 + + # step 2 + - name: flawfinder_scan + uses: david-a-wheeler/flawfinder@2.0.19 + with: + arguments: '--sarif ./' + output: 'flawfinder_report.sarif' + + # step 3 + - name: save report as pipeline artifact + uses: actions/upload-artifact@v3 + with: + name: flawfinder_report.sarif + path: flawfinder_report.sarif + + # step 4 + - name: publish code scanning alerts + uses: github/codeql-action/upload-sarif@v2 + with: + sarif_file: flawfinder_report.sarif + category: flawfinder diff --git a/.github/workflows/sec_sast_flawfinder_pull.yml b/.github/workflows/sec_sast_flawfinder_pull.yml new file mode 100644 index 000000000..e69de29bb diff --git a/.github/workflows/sec_sast_semgrep_cron.yml b/.github/workflows/sec_sast_semgrep_cron.yml new file mode 100644 index 000000000..426250280 --- /dev/null +++ b/.github/workflows/sec_sast_semgrep_cron.yml @@ -0,0 +1,44 @@ +--- +name: Semgrep Full Scan + +on: + workflow_dispatch: + branches: + - master + schedule: + - cron: '0 1 * * 6' + +jobs: + + semgrep-full: + runs-on: ubuntu-latest + container: + image: returntocorp/semgrep + + steps: + + # step 1 + - name: clone application source code + uses: actions/checkout@v3 + + # step 2 + - name: full scan + run: | + semgrep \ + --sarif --output report.sarif \ + --metrics=off \ + --config="p/default" + + # step 3 + - name: save report as pipeline artifact + uses: actions/upload-artifact@v3 + with: + name: report.sarif + path: report.sarif + + # step 4 + - name: publish code scanning alerts + uses: github/codeql-action/upload-sarif@v2 + with: + sarif_file: report.sarif + category: semgrep diff --git a/.github/workflows/sec_sast_semgrep_pull.yml b/.github/workflows/sec_sast_semgrep_pull.yml new file mode 100644 index 000000000..8fe3632b4 --- /dev/null +++ b/.github/workflows/sec_sast_semgrep_pull.yml @@ -0,0 +1,28 @@ +--- +name: Semgrep Differential Scan +on: + pull_request + +jobs: + + semgrep-diff: + runs-on: ubuntu-latest + container: + image: returntocorp/semgrep + + steps: + + # step 1 + - name: clone application source code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + # step 2 + - name: differential scan + run: | + semgrep scan \ + --error \ + --metrics=off \ + --baseline-commit ${{ github.event.pull_request.base.sha }} \ + --config="p/default" diff --git a/.semgrepignore b/.semgrepignore index 6ae867e8b..10fcb5f75 100644 --- a/.semgrepignore +++ b/.semgrepignore @@ -1 +1,2 @@ .github/workflows/main_matrix.yml +src/mesh/compression/unishox2.c