36 lines
2.1 KiB
Markdown
36 lines
2.1 KiB
Markdown
# Questions
|
|
|
|
## Part 3
|
|
|
|
- **Q3.1**: Setup your CI/CD pipeline with an additional SAST solution. I propose that you use `semgrep` for this task. Get your inspiration here: https://semgrep.dev/for/gitlab and https://docs.gitlab.com/ee/user/application_security/sast/
|
|
- **Q3.2**: Describe the found problems (alerts) in the `calculator app` (in the original code, git tag `v3.0`)
|
|
- **Q3.3**: Install DAST OWASP ZAP on your host or in a Docker. Play with OWASP ZAP, analyze the calculator code
|
|
- **Q3.4**: Implement a DAST solution in your pipeline. Get some inspiration here https://docs.gitlab.com/ee/user/application_security/dast/ . Describe what you have integrated in your pipeline. *Note: you must ensure that your application is running while you are testing!*
|
|
- **Q3.5 (optional)**: Normally, the provided code has some bugs, which are discovered by SAST solution. Describe the found bugs (in the original code, git tag `v3.0`) and provide solution to remediate the problems. Indicate which commit/tag contains the corrected code
|
|
- **Q3.6 (optional)**: Describe the found bugs (in the original code, git tag `v3.0`) with DAST and provide solution to remediate the problems. Indicate which commit/tag contains the corrected code. Do corrections only in the provided code (no libraries)
|
|
|
|
|
|
# Answers - Part 3
|
|
|
|
## Q3.2
|
|
|
|
For some reasons, semgrep works locally, but not on GitLab. Here is the report when runned locally.
|
|
|
|

|
|
|
|
## Q3.3
|
|
|
|
After performing a scan, we can see a few alerts as seen on this screenshot :
|
|
|
|

|
|
|
|
## Q3.4
|
|
The integrate DAST in Github doesn't work on our version, we need the _Ultimate_ version of GitLab selfhosted.
|
|
|
|
We create a new Docker image for the application. This image auto launch the flask app when the container is started.
|
|
|
|
We used this image as a service for the DAST stage on our CI.
|
|
The stage use zaproxy to test the application. Warning do not return wailure, so the stage pass if no error is found by the OWASP ZAP.
|
|
|
|
We don't understand why the stage fail when we try to provide the html report as artifact. So if the stage fail, we can see the error in the logs.
|