Skip to content

chore(security): add ReversingLabs malware scan workflow - #975

Open
nirmal-joishi-a0 wants to merge 1 commit into
5.xfrom
security/add-malwarescan
Open

nirmal-joishi-a0 wants to merge 1 commit into
5.xfrom
security/add-malwarescan

Conversation

@nirmal-joishi-a0

Copy link
Copy Markdown

✏️ Changes

This pull request adds a security hardening workflow. No functional changes are introduced.

🚧 Untested — automated PR. This is a reusable workflow (workflow_call) — it does not run on its own and cannot be validated just by merging. To test it, do it in this PR: complete the setup steps below (replace the placeholder build step with the steps that produce your artifact, and add a caller that invokes this workflow), then let CI run and confirm the malware scan runs and passes. Only merge once you have seen it run green here.

If the run fails for repo-specific config we can't see (a missing secret, environment/IAM setup), fixing it before merging is the repo owner's responsibility.

ReversingLabs Malware Scan

This PR adds .github/workflows/rl.yml. It is a reusable workflow (workflow_call) that wraps the okta-approved auth0/devsecops-tooling/.github/actions/rl-scan action.

⚠️ Before merging, complete the two steps below.

Steps to wire it up

  1. Replace the placeholder build step in rl.yml with all steps that produce your artifact at the artifact-path you pass — toolchain setup, dependency install, compile, and package.
  2. Add a caller in your release or CI workflow, for example:
    jobs:
      rl-scan:
        uses: ./.github/workflows/rl.yml
        with:
          artifact-name: my-artifact
          artifact-path: dist/my-artifact.tgz   # concrete file path — no globs or directories
          version: ${{ github.event.release.tag_name }}
        secrets: inherit
    artifact-path must be a concrete file — the action's [ -f ] check rejects globs/directories and a missing path fails the job.

Required org secrets — all 8 must be present

The rl-scan action declares all 8 as required inputs — if any is missing or empty the scan job fails. Confirm each is available to this repo (set at the auth0/ org level) before merging:

  • RLSECURE_LICENSE, RLSECURE_SITE_KEY — ReversingLabs license + site key
  • SIGNAL_HANDLER_TOKEN, SIGNAL_HANDLER_DOMAIN — scan telemetry auth + endpoint
  • PRODSEC_TOOLS_ARN — AWS IAM role assumed via OIDC (see below)
  • PRODSEC_TOOLS_USER, PRODSEC_TOOLS_TOKEN, PRODSEC_PYTHON_TOOLS_REPO — private ProdSec Python index creds + URL

AWS OIDC trust — required, not just a secret

The action authenticates to AWS by assuming PRODSEC_TOOLS_ARN via GitHub OIDC (no static keys), so two things must be in place:

  • Job permission: the workflow already sets id-token: write (mints the OIDC token) and contents: read. Removing id-token: write breaks the AWS step.
  • IAM trust policy: the role's trust policy must allow this repository to assume it. If it does not yet trust this repo, Configure AWS credentials fails even with every secret set — an infra change the repo/org owner must arrange before merging.

🛑 Declining this workflow

This is an organization-enforced security-hardening workflow, so closing this PR is not enough — the tool treats a plain close as a discard and opens a fresh replacement PR on its next run.

To permanently decline this category, a maintainer must close this PR and add one of these labels to it:

Label Use when
remediation: not-required The category is already handled another way for this repo.
remediation: not-applicable The category genuinely does not apply (e.g. there is no manifest to scan).

Applying a label requires write, triage, or admin access, so the label is a trusted maintainer signal. Once a closed PR carries one of these labels, the tool respects the decline and will not reopen a replacement.

🔮 Type of Change

  • Standard

🔗 References

This change applies a standard automated security-scanning workflow as part of routine repository hardening.

  • I explained why this change is needed.

📖 Documentation

No user-facing changes have been introduced.

  • I reflected this change in the (internal and/or user-facing) documentation, or added an explanation for why no documentation update is needed.

🎯 Testing

⚠️ This workflow has not been tested in this repository. It must be validated before merging — confirm it triggers, runs, and passes without silently ignoring failures.

  • The added workflow has been run and verified green in this repository's CI (not merged on an untriggered/empty result).

🚀 Deployment

  • This change can support multiple releases of the code serving traffic at the same time.

🔥 Rollback

Reverting this PR removes the added workflow file — no further action required.

  • I explained what the rollback for this change will look like.

@nirmal-joishi-a0
nirmal-joishi-a0 requested a review from a team as a code owner September 30, 2026 14:06
@nirmal-joishi-a0

Copy link
Copy Markdown
Author

@auth0/project-dx-sdks-engineer-codeowner please review the files in the PR. This automated security-hardening workflow is untested in this repo — before merging, confirm it triggers and passes (and is not silently ignoring failures); do not merge on a green result alone.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant