Browser based supports Mutual TLS without ZAP
Problem
DAST uses Mutual TLS when the user specifies the CI/CD variables DAST_PKCS12_CERTIFICATE_BASE64 and DAST_PKCS12_PASSWORD. The browser-based analyzer proxies HTTP requests through ZAP, so in order to remove ZAP an alternative Mutual TLS solution must be used.
Proposal
FIPS Browser-based DAST proxies all requests via Squid, which also provides Mutual TLS functionality. The same solution can be leveraged for non-FIPS browser-based DAST.
dast-chromium
-
Update build-squid.shto work with both UBI & Ubuntu -
Update .gitlab-ci.ymlto build squid similar to fips build -
Update Dockerfileto include squid similar to howDockerfile_fipsdoes -
Update test/chromium_smoke_test.shso Squid tests also run for non-FIPS build -
Verify build works and tests pass -
Manually verify Squid is working in built image
browserker
-
Review fips build process and identify Squid related items -
Mirror Squid related items from fips build for regular build -
Create entrypoint.shscript based onentrypoint-fips.shscript -
Update Dockerfileentry point to beentrypoint.sh -
Enable test/end-to-end/test-squid-forward-proxy-errors.shfor regular builds -
Enable test/end-to-end/test-mutual-tls.shfor regular builds -
Verify tests are passing
dast
-
Create an entrypoint.dast.shscript based onentrypoint-fips.dast.shor combine is possible -
Review Dockerfile-fipsand identify all squid related items and mirror toDockerfile -
Review test-fips.shand extract squid related tests into it's own test file that runs for both builds -
Add Proxyconfiguration parameter (see comment) -
Verify all tests are passing -
Are any additional tests needed? -
Is there a Mutual TLS demo project to test with?
Edited by Michael Eddington