A Ruby extension for interfacing with Qualys v2 API.
I had the need to pull stats and details from Qualys automatically to collect and alert on metrics. Let's face it, in 2015, email alerts just don't cut it anymore.
Like any other gem:
gem install qualysBelow you can find details on the configuration and usage of the Qualys API Client.
Before utilizing the API, you must configure it. You can configure it with a block like below, or by passing in a Hash# or load a yaml file.
Qualys.configure do |config|
config.username = @email
config.password = @password
endor configure using a yaml doc:
Qualys::Config.load!("config/qualys.yaml")Login before making other API calls:
Qualys::Auth.loginYou can easily get a list of all scans within your Qualys account by accessing the following methods:
scans = Qualys::Scans.all
#-> [#<Qualys::Scan:0x007fad4c4645c8 @ref="scan/refid", @title="Scan Title", @type="Scheduled", @date="2015-04-15T12:02:12Z", @duration="01:51:38", @status="Finished", @target="ip ranges", @user="managing_user">...You can get more details from each scan like:
scans = Qualys::Scans.all
puts scans.first.details
#-> {"ip"=>"x.x.x.x", "dns"=>"mikemackintosh.com", "netbios"=>nil, "qid"=>86000, "result"=>"Server Version\tServer Banner\nnginx\tnginx", "protocol"=>"tcp", "port"=>"80", "ssl"=>"no", "fqdn"=>""},
# {"ip"=>"x.x.x.x", "dns"=>"mikemackintosh.com", "netbios"=>nil, "qid"=>86189, "result"=>"Number of web servers behind load balancer:\n2 - based on IP Identification values", "protocol"=>"tcp", "port"=>"80", "ssl"=>"no", "fqdn"=>""},
# {"ip"=>"x.x.x.x, "dns"=>"mikemackintosh.com", "netbios"=>nil, "qid"=>86001, "result"=>"Server Version\tServer Banner\nnginx\tnginx", "protocol"=>"tcp", "port"=>"443", "ssl"=>"no", "fqdn"=>""}If your URL differs from the default, set it using:
Qualys::Api.base_uri = OTHER_PRODUCTION_ENDPOINTThe API was built using the following documentation: