Upgrade to Pro — share decks privately, control downloads, hide ads and more …

oSC24 - NeuVector Integration into AWS CodePipe...

oSC24 - NeuVector Integration into AWS CodePipeline CI and CD workflow

NeuVector is a open source container security platform. Key strengths are vulnerability and runtime scanning. I demonstrate in this talk how you ensure that only container images without a detected vulnerability move to the next stage in your Pipeline. How you define the baseline of allowed activities of your application. And how you can block the deployment into production if an unexpected behavior at runtime was detected in your testing stage. I'll use AWS CodePipeline, AWS CodeDeploy and AWS CloudFormation. The procedure is applicable to other toolset and Hybrid environments as well.

Dominik Wombacher

June 28, 2024
Tweet

More Decks by Dominik Wombacher

Other Decks in Technology

Transcript

  1. That’s me • Passionate Engineer • Open source contributor •

    bugfixes / features • packager • maintainer • Dog person & Dad Linus loves Geeko
  2. NeuVector Features • Vulnerability Scanning • Admission Control • Violation

    Protection • Threat Detection • DLP and WAF Sensors • Run-time Security • Compliance & Auditing • Endpoint/Host Security • Multi-Cluster Management • Container Quarantine • REST API, Syslog, Webhooks • Package capture • Authentication (LDAP, SAML, OIDC)
  3. Digest/RepoDigest problem docker build > NeuVector Scan > Submit report:

    CodeBuild log: ERRO|SCN|main.main: Failed to sumit scan result - error=Submit scan result failed with status code 400 NeuVector log: DEBU|CTL|rest.handlerScanRepositorySubmit: - URL=/v1/scan/result/repository ERRO|CTL|rest.handlerScanRepositorySubmit: Missing image metadate in the request DEBU|CTL|rest.writer.WriteHeader: 400 - Method=POST URL=/v1/scan/result/repository
  4. Digest/RepoDigest problem controller/rest/repository.go#L263 // Sanity check if result.ImageID == ""

    || result.Digest == "" || result.Repository == "" || result.Tag == "" { log.Error("Missing image metadate in the request") restRespErrorMessage(w, http.StatusBadRequest, api.RESTErrInvalidRequest, "Missing image metadate in the request") return }
  5. Digest/RepoDigest problem docker build -t localhost:5000/testcontainer . docker inspect localhost:5000/testcontainer

    "Id": "sha256:a88710f44133fef9e94f7c10cd[...]", "RepoTags": [ "localhost:5000/testcontainer:latest" ], "RepoDigests": [],
  6. Digest/RepoDigest problem docker build -t localhost:5000/testcontainer . docker inspect localhost:5000/testcontainer

    docker push localhost:5000/testcontainer "Id": "sha256:a88710f44133fef9e94f7c10cd[...]", "RepoTags": [ "localhost:5000/testcontainer:latest" ], "RepoDigests": [ "localhost:5000/testcontainer@sha256:021[...]" ],
  7. Digest/RepoDigest workaround Start local registry > docker build > docker

    push to local registry > NeuVector Scan > Submit report
  8. Virtual Workshop Secure Your CI/CD Pipeline with NeuVector by SUSE

    on AWS • Delivered by AWS and SUSE • Hands-on focused • ~3 hour duration • AWS Account provided • Free of charge, seats limited