The concept of multi-valued meta keys - those which can appear multiple times within single sessions - is not a new one, but has become more important and relevant in recent releases due to how other parts of the RSA NetWitness Platform handle them.
The most notable of these other parts is the Correlation Server service, previously known as the ESA service. In order to enable complex, efficient, and accurate event correlation and alerting, it is necessary for us to tell the Correlation Server service exactly which meta keys it should expect to be multi-valued.
Every release notes PDF for each RSA NetWitness Platform version contains instructions for how to update or modify these keys to tune the platform to your organization's environment. But the question I have each time I read these instructions is this: How do I identify ALL the multi-valued keys in my RSA NetWitness Platform instance?
After all, my lab environment is a fraction the size of any organization's production environment, and if it's an impossible task for me to manually identify all, or even most, of the these keys then its downright laughable to expect any organization to even attempt to do the same.
Enter....automation and scripting to the rescue!
The script attached to this blog attempts to meet that need. I want to stress "attempts to" here for 2 reasons:
But therein lies the rub. Processing data at that scale requires us to first query the RSA NetWitness Platform databases for all that data, pull it back, and then process it....without flooding the RSA NetWitness Platform with thousands or millions of queries (after all, the analysts still need to do their responding and hunting), without consuming so many resources that the script freezes or crashes the system, and while still producing an accurate result...because otherwise what's the point?
I made a number of changes to the initial version of this script in order to limit its potential impact. The result of these changes was that the script will process batches of sessions and their metas in chunks of 10000. In my lab environment, my testing with this batch size resulted in roughly 60 seconds between each process iteration.
The overall workflow within the script is:
This is best middle ground I could find among the various factors.
The output of the script is formatted so you can copy/paste directly from the terminal into the Correlation Server's multi-valued configuration. Now with all that out of the way, some usage screenshots:
Any comments, questions, concerns or issues with the script, please don't hesitate to comment or reach out.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.