The interface for managing add-ons was written when ZAP was very much a desktop tool.
ZAP is now also used a lot in CI and as part of services like ThreadFix and Minion, and the current options dont work as well in these environments.
In the UI you can browse the ZAP Marketplace and manually select add-ons to add, remove and update. You can also configure ZAP to automatically update add-ons that have changed when ZAP starts up.
In CI and ‘service’ environments ZAP is typically installed in one location and then launched in a new location every time it is run. If the ‘auto update’ options are set then these ZAP instances will download the same updates every time. And theres no way to say that new add-ons should be installed, such as the beta active scan rules.
I’m proposing to make the following changes:
Introduce a new optional ‘shared add-ons directory'.
If this is defined then a ZAP instance will include any add-ons in this directory when it loads. ZAP already loads add-ons from the installation and ‘local’ directories, so it will use the same code to work out which are the most recent versions.
The idea is that in service environments all new ZAP instances will point to the same shared add-ons directory so that new and updated add-ons will only have to be downloaded once.
There will also be an option to install add-ons to this directory when they are downloaded. If selected then the add-ons will be downloaded to the ‘local’ directory and only copied (permissions allowing;) to the shared directory when complete. This is so that instances started mid-download wont get incomplete files.
My expectation is that specific ZAP instances will be launched just to get new and/or updated add-ons - these instances wouldnt typically be used for scanning apps.
Enhance the API to allow full control of the add-on installation
There should be calls for things like:
Viewing all of the add-ons on the marketplace
Reporting the status of add-ons
Downloading specific (new) add-ons
Updating specific add-ons
Updating all updated add-ons
Uninstalling specific add-ons
Anything else I’ve missed out?
Enhance the command line to support:
Installing specific add-ons
Updating all add-ons prior to doing anything else
The idea is that you could set up a cronjob to do things like…
Install a specified add-on to the shared directory. eg:
zap.sh -addon-install ascanrulesBeta -addon-dir shared
Update a specified add-on (if its been updated of course). eg:
zap.sh -addon-update ascanrulesBeta
Update all add-ons. eg:
zap.sh -addon-updateall
Install (for example) the beta ascan rules before scanning an app ‘inline’
zap.sh -addon-install ascanrulesBeta -cmd -quickurl http://example.com/
Note that cmdline option names may change ;)
What do you all think?
Slightly related topic - does anyone want to run their own ‘marketplace’ so you can download ZAP add-ons from your own server? We could add an option for you to specify an alternate url...
Cheers,
Simon
--
You received this message because you are subscribed to the Google Groups "OWASP ZAP Developer Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to zaproxy-devel...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
I know the solution above seems a little complicated, however, I think it has both stability and flexibility required to help to improve CI support in ZAP. I am happy to be proven otherwise, though :)
Another idea is to have a debian/rpm file to install ZAP. It helps to do automation and it makes easier to install. If we could do both debian packages and shared folders, that would be very very helpful. The others ones including the command line I see as a nice to have.
Cheers,
Mário
To unsubscribe from this group and stop receiving emails from it, send an email to zaproxy-develop+unsubscribe@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to zaproxy-develop+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "OWASP ZAP Developer Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to zaproxy-develop+unsubscribe@googlegroups.com.
I've had other requests for better linux packaging.
Thats not something I'm experienced with - can anyone on this list help out with that?
If we can change the build file to generate a proper linux package then we'll use that instead of the .tar.gzip :)
So if you type "zap" on command line it does start ZAP, however it failed in my machine because I don't have GUI installed in my vagrant box. When I tried to start as daemon "zap -daemon -host localhost -port 8080", it was still trying to start the GUI option. So I realised any command passed through the command line, it wasn't being passed to zap.sh script.
--
You received this message because you are subscribed to the Google Groups "OWASP ZAP Developer Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to zaproxy-devel...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to zaproxy-develop+unsubscribe@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to zaproxy-devel...@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "OWASP ZAP Developer Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to zaproxy-devel...@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "OWASP ZAP Developer Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to zaproxy-devel...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to zaproxy-develop+unsubscribe@googlegroups.com.