Craig Balding's ScanAuth API
via Anton Chuvakin, Craig Balding on Vulnerability Scanning in the Cloud
For cloud providers to attract certain customers, they may need to soften their policy on vulnerability scanning. Taking a hardline “no” stance precludes some workloads from ever entering the cloudosphere (with bigger consequences for enterprises seeking a strategic cloud partner). A preferred scenario has the cloud provider showing some understanding of enterprise prospects assurance needs and defining scanning parameters acceptable to their own operations risk tolerance.
Scanning is not an “unknown” risk, rather its a very well understood activity with quantifiable elements (packet rate, state table usage etc). Normal rate limiting could be temporarily or permanently loosened for customer approved IP addresses to enable scans against a customers cloud IP addresses (not API endpoints or cloud providers websites!) to complete in a reasonable time window. Besides, Internet systems are scanned, probed and attacked constantly by script kiddies, Internet surveyors and an assortment of bots and other lifeforms. So the bad guys get to scan because they don’t care and yet the customer, who wants to do the “right thing”, is not allowed to. Is that rational?
Assuming a cloud provider with a more measured approach towards vulnerability scanning of customer cloud infrastructure, we now need a simple, mutually trusted mechanism to agree scan sources, rate limits etc. Something like an “ScanAuth” (Scan Authorize) API call offered by cloud providers that a customer can call with parameters for conveying source IP address(es) that will perform the scanning, and optionally a subset of their Cloud hosted IP addresses, scan start time and/or duration. This request would be signed by the customers API secret/private key as per other privileged API calls. The provider receiving the request can rely on the digital signature as proof that a scan is authorised with the associated parameters. After the provider has processed the scan authorisation request, the provider could return a status code approving or denying the request (with a possible reason code to allow resubmission with more acceptable parameters). This response can optionally include rate limits which the customer can use to tune the intensity of their scanner.
The provider can now whitelist the customer provided scanner IP(s) for the duration of the requested scanning window such that active countermeasures like anti-DoS controls are not triggered, resulting in a ‘cleaner’ scan (and hence a more accurate report).
Back of cocktail napkin Request:
<soapenv:Body>
<signed securityheader>
<scan source>Ounce Labs</scan source>
<scan date>2009-07-02</scan date>
<scan version>rulepack 3.4.1</scan version>
</securityheader>
<req:echo xmlns:req="http://SPhost:8080/axis2/services/PlaceOrder/">
<req:category>Baseball Cards</req:category>
...back of cocktail napkin Response
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
<soapenv:Body>
<signed securityheader>
<scan source>Fortify SCA</scan source>
<scan date>2009-07-02</scan date>
<scan version>rulepack 5.3.4</scan version>
</securityheader>
<req:category>Oakland A's</req:category>
...