mercedes-benz / sechub

SecHub provides a central API to test software with different security tools.
https://mercedes-benz.github.io/sechub/
MIT License
263 stars 63 forks source link

Epic: SecHub PDCW (Product Delegation Client Wrapper) for scans on client side #315

Open de-jcup opened 4 years ago

de-jcup commented 4 years ago

Situation

There exists some security products were standard sechub "scan by server" approach is difficult:

Normally all these products come up with a binary client. But product teams etc. need to know the client version, use the correct version etc. etc. also changes of a security product (or using multiple ones) would affect the build logic, must be adopted etc.

Here comes SecHub: We want:

Wanted solution

We provide a "sechub bin wrapper" which can be executed by sechub-client has a simple interface which does not change. From this point we call this PDCW (Product Delegation Client Wrapper) which does the client scan logic. The binary wrapper contains the origin product binaries and is called by sechub client via command execution. (Remark: we use PDCW so its similar to existing PDS which is the product delegation server and we use same naming concept)

Wapper concept

Remark: Gradle and Maven have got a wrapper concept was some kind of a blueprint for this concept

Client way

People using directly SecHub REST API but not sechub client

Example for a container security scan

This shows up an example for a PDCW appraoch when doing a container security scan by this approach:

image


Albert Tregnaghi albert.tregnaghi@daimler.com, Daimler TSS GmbH, imprint

Jeeppler commented 4 years ago

Another scenario for the PDCW could be jobs which can be executed faster on the client as it would be to upload the code to SecHub and do the analysis on SecHub. One such example would be a secret scanner.

Jeeppler commented 4 years ago

It is a convenient feature of the PDCW to automatically download the necessary scan modules (pdcw-package) from the server. However, that behaviour might be problem in certain environments or for some organizations. It would be nice to still have an easy way to download the modules through a separate channel and install them manually on the system.

In addition, it would be nice to have the possibility (e. g. configuration file options) to use a specific version of a scan module. That way it is possible to test new versions or use an old version.