Introduction to app development in QRadar
QRadar can correlate data from various log sources that send event data, flow sources that transmit packets of flow data, threat intelligence from different vendors, asset information, network topology, etc., enabling us to build varied security use cases. QRadar supports an application framework which enables developers build containerised applications which can be published and installed on different QRadar systems. In this blog we will provide guidelines on developing QRadar apps which help with threat intelligence integration of different products with QRadar.
A few QRadar applications have already been developed by Recorded Future and Mandiant to help ingest respective data into QRadar. But this blog is for those who would like to build apps for their own vendors.
Contents of custom threat intel apps
When we talk about Threat Intel, there are different types of threat intel that you would like to integrate. It could be:
- Indicators of Compromise (IOC) - Information on IP addresses, domain names, file hashes, URLs etc.
- Vulnerability information - Information on CVE, risk score, platforms affected
- Geolocation information - Information on location: could be physical and registered in case of IP address
Understanding how to use Reference Data
QRadar has a feature called Reference Data. Reference Data can further be categorized into different types of data collection viz Reference Set, Reference Map, Reference Map of Sets, Reference Map of Maps and Reference Table. Details on these categories is clearly explained here -https://www.ibm.com/docs/en/qradar-on-cloud?topic=qradar-types-reference-data-collections
The threat intelligence data should ideally be imported into the Reference Data in QRadar at regular polling interval. This Reference Data can then be used by QRadar in correlation. Correlation helps implement security use cases defined using QRadar Rules. So the Reference Data can be directly used in QRadar Rules.
We have seen that QRadar app developers have a recurring concern on which Reference Data type to use their threat data. Here are a few pointers for the same.
The decision on which type of Reference Data to use completely depends on the kind of threat data you have.
- If you have multiple lists of IOCs like malicious hashes, IP addresses, domain names - you can have multiple Reference Sets for each type of threat intel info. You will have one Reference set for IP address while other Reference Set for hashes, while a third could be for domain names.This helps keep data segregated and enables more refined security use cases.
- If you have enrichment data, like more information on an asset or IP address. Such type of data could be stored in Reference Table. But beware that Reference Table should be designed in such a way that the two specific keys leads you to specific value of data. For example: If we consider an IP address and an application as primary and secondary key it should lead us to the Port used by the application.
The other recurring query that developers have is, how to import data into Reference Sets or Reference Tables. Importing data is not a one time activity because threat intel data is updated regularly and the threat intel data needs to be polled regularly. There are different ways to import data:
- Manually adding data to Reference Data - You may create Reference Set and Reference Tables and enter the values manually. - https://www.ibm.com/docs/en/qradar-on-cloud?topic=overview-importing-iocs-reference-set
- Manually adding data to Reference Data using Files - CSV files may be made available which may be added from the QRadar GUI. But still this method is not feasible.
- Using QRadar REST APIs (RECOMMENDED way) - The current QRadar REST API available for use is defined here - https://ibmsecuritydocs.github.io/qradar_api_20.0/ . In this version we can see that there are 2 endpoints which are exposed that can be used are:
1. Reference_Data endpoints - You may notice that a few available options are in a DEPRECATED state. It is recommended not to use them. The DEPRECATED endpoints would be removed in the next update to QRadar API endpoints. You may see that METHOD /reference_data/sets is DEPRECATED. So instead of using this end point, please check option in reference_data_collections endpoint as discussed in next point. You may see that the methods like GET, POST, PATCH, DELETE are provided for these endpoints. You will need to use POST method with exposed endpoints to fetch the data programmatically.
2. Reference_Data_Collections endpoints - These are the new endpoints which are exposed. Check the screenshots for clarity.
#HowTo
#Training