Qualys Vulnerability Management (using Azure Functions) connector for Microsoft Sentinel
The Qualys Vulnerability Management (VM) data connector provides the capability to ingest vulnerability host detection data into Microsoft Sentinel through the Qualys API. The connector provides visibility into host detection data from vulnerability scans. This connector provides Microsoft Sentinel the capability to view dashboards, create custom alerts, and improve investigation
This is autogenerated content. For changes, contact the solution provider.
Connector attributes
Connector attribute | Description |
---|---|
Application settings | apiUsername apiPassword workspaceID workspaceKey uri filterParameters timeInterval logAnalyticsUri (optional) |
Azure function app code | https://aka.ms/sentinel-QualysVM-functioncodeV2 |
Log Analytics table(s) | QualysHostDetectionV2_CL QualysHostDetection_CL |
Data collection rules support | Not currently supported |
Supported by | Microsoft Corporation |
Query samples
Top 10 Qualys V2 Vulnerabilities detected
QualysHostDetectionV2_CL
| extend Vulnerability = tostring(QID_s)
| summarize count() by Vulnerability
| top 10 by count_
Top 10 Vulnerabilities detected
QualysHostDetection_CL
| mv-expand todynamic(Detections_s)
| extend Vulnerability = tostring(Detections_s.Results)
| summarize count() by Vulnerability
| top 10 by count_
Prerequisites
To integrate with Qualys Vulnerability Management (using Azure Functions) make sure you have:
- Microsoft.Web/sites permissions: Read and write permissions to Azure Functions to create a Function App is required. See the documentation to learn more about Azure Functions.
- Qualys API Key: A Qualys VM API username and password is required. See the documentation to learn more about Qualys VM API.
Vendor installation instructions
Note
This connector uses Azure Functions to connect to Qualys VM to pull its logs into Microsoft Sentinel. This might result in additional data ingestion costs. Check the Azure Functions pricing page for details.
(Optional Step) Securely store workspace and API authorization key(s) or token(s) in Azure Key Vault. Azure Key Vault provides a secure mechanism to store and retrieve key values. Follow these instructions to use Azure Key Vault with an Azure Function App.
STEP 1 - Configuration steps for the Qualys VM API
- Log into the Qualys Vulnerability Management console with an administrator account, select the Users tab and the Users subtab.
- Click on the New drop-down menu and select Users..
- Create a username and password for the API account.
- In the User Roles tab, ensure the account role is set to Manager and access is allowed to GUI and API
- Log out of the administrator account and log into the console with the new API credentials for validation, then log out of the API account.
- Log back into the console using an administrator account and modify the API accounts User Roles, removing access to GUI.
- Save all changes.
STEP 2 - Choose ONE from the following two deployment options to deploy the connector and the associated Azure Function
IMPORTANT: Before deploying the Qualys VM connector, have the Workspace ID and Workspace Primary Key (can be copied from the following), as well as the Qualys VM API Authorization Key(s), readily available.
Note
This connector has been updated, if you have previously deployed an earlier version, and want to update, please delete the existing Qualys VM Azure Function before redeploying this version. Please use Qualys V2 version Workbook, detections.
Option 1 - Azure Resource Manager (ARM) Template
Use this method for automated deployment of the Qualys VM connector using an ARM Template.
Click the Deploy to Azure button below.
Select the preferred Subscription, Resource Group and Location.
Enter the Workspace ID, Workspace Key, API Username, API Password , update the URI, and any additional URI Filter Parameters (each filter should be separated by an "&" symbol, no spaces.)
- Enter the URI that corresponds to your region. The complete list of API Server URLs can be found here -- There is no need to add a time suffix to the URI, the Function App will dynamically append the Time Value to the URI in the proper format.
- The default Time Interval is set to pull the last five (5) minutes of data. If the time interval needs to be modified, it is recommended to change the Function App Timer Trigger accordingly (in the function.json file, post deployment) to prevent overlapping data ingestion.
- Note: If using Azure Key Vault secrets for any of the values above, use the
@Microsoft.KeyVault(SecretUri={Security Identifier})
schema in place of the string values. Refer to Key Vault references documentation for further details. 4. Mark the checkbox labeled I agree to the terms and conditions stated above. 5. Click Purchase to deploy.
Option 2 - Manual Deployment of Azure Functions
Use the following step-by-step instructions to deploy the Quayls VM connector manually with Azure Functions.
1. Create a Function App
- From the Azure Portal, navigate to Function App, and select + Add.
- In the Basics tab, ensure Runtime stack is set to Powershell Core.
- In the Hosting tab, ensure the Consumption (Serverless) plan type is selected.
- Make other preferable configuration changes, if needed, then click Create.
2. Import Function App Code
- In the newly created Function App, select Functions on the left pane and click + New Function.
- Select Timer Trigger.
- Enter a unique Function Name and leave the default cron schedule of every 5 minutes, then click Create.
- Click on Code + Test on the left pane.
- Copy the Function App Code and paste into the Function App
run.ps1
editor. - Click Save.
3. Configure the Function App
- In the Function App, select the Function App Name and select Configuration.
- In the Application settings tab, select + New application setting.
- Add each of the following eight (8) application settings individually, with their respective string values (case-sensitive): apiUsername apiPassword workspaceID workspaceKey uri filterParameters timeInterval logAnalyticsUri (optional)
- Enter the URI that corresponds to your region. The complete list of API Server URLs can be found here. The
uri
value must follow the following schema:https://<API Server>/api/2.0/fo/asset/host/vm/detection/?action=list&vm_processed_after=
-- There is no need to add a time suffix to the URI, the Function App will dynamically append the Time Value to the URI in the proper format.- Add any additional filter parameters, for the
filterParameters
variable, that need to be appended to the URI. Each parameter should be separated by an "&" symbol and should not include any spaces.- Set the
timeInterval
(in minutes) to the value of5
to correspond to the Timer Trigger of every5
minutes. If the time interval needs to be modified, it is recommended to change the Function App Timer Trigger accordingly to prevent overlapping data ingestion.- Note: If using Azure Key Vault, use the
@Microsoft.KeyVault(SecretUri={Security Identifier})
schema in place of the string values. Refer to Key Vault references documentation for further details.- Use logAnalyticsUri to override the log analytics API endpoint for dedicated cloud. For example, for public cloud, leave the value empty; for Azure GovUS cloud environment, specify the value in the following format:
https://<CustomerId>.ods.opinsights.azure.us
. 4. Once all application settings have been entered, click Save.
4. Configure the host.json.
Due to the potentially large amount of Qualys host detection data being ingested, it can cause the execution time to surpass the default Function App timeout of five (5) minutes. Increase the default timeout duration to the maximum of ten (10) minutes, under the Consumption Plan, to allow more time for the Function App to execute.
- In the Function App, select the Function App Name and select the App Service Editor blade.
- Click Go to open the editor, then select the host.json file under the wwwroot directory.
- Add the line
"functionTimeout": "00:10:00",
above themanagedDependency
line - Ensure SAVED appears on the top right corner of the editor, then exit the editor.
NOTE: If a longer timeout duration is required, consider upgrading to an App Service Plan
Next steps
For more information, go to the related solution in the Azure Marketplace.