Security

parse elements of a DN

dominiquevocat
SplunkTrust
SplunkTrust

In some logs i have ldap DNs which i want to slice a part out from it like the CN or the PATH without the DN. The DNs i have get potentially in different formats.

Format 1:
O=xxx\OU=yyy\OU=zzz\CN=xyz

Format 2:
\xxx\yyy\zzz

Format 3:
CN=xyz,OU=zzz,OU=yyy,O=xxx

I would like to parse the elements and get all elements minus the first one etc.

I presume a custom command or macro could help there but i really really hope someone has done something similar.

Tags (2)
0 Karma
1 Solution

alacercogitatus
SplunkTrust
SplunkTrust

Most often, Splunk will auto-extract some parts of the DN. Format3 is most likely auto-extracted because of key value pairs. Format 2 is probably a near impossibility, since the data presented is probably of variable length, so extraction without separators won't happen. Format 1 could probably be done with a regex:

your_Search | rex field=_raw "CN=(?<cn>[\w\d\s]+)" | rex field=_raw "OU=(?<org_unit>[^=]*)="|eval ou = substr(org_unit,-2)| rex field=_raw "O=(?<o_unit>[^=])="|eval o = substr(o_unit,-2)| stats count values(ou) by cn, o

The evals are necessary because the matching will capture "OU" from the next string, prior to the =. All of these rex's could be put into props/tranforms to make the searches cleaner.

View solution in original post

alacercogitatus
SplunkTrust
SplunkTrust

Most often, Splunk will auto-extract some parts of the DN. Format3 is most likely auto-extracted because of key value pairs. Format 2 is probably a near impossibility, since the data presented is probably of variable length, so extraction without separators won't happen. Format 1 could probably be done with a regex:

your_Search | rex field=_raw "CN=(?<cn>[\w\d\s]+)" | rex field=_raw "OU=(?<org_unit>[^=]*)="|eval ou = substr(org_unit,-2)| rex field=_raw "O=(?<o_unit>[^=])="|eval o = substr(o_unit,-2)| stats count values(ou) by cn, o

The evals are necessary because the matching will capture "OU" from the next string, prior to the =. All of these rex's could be put into props/tranforms to make the searches cleaner.

Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Build the Future of Agentic AI: Join the Splunk Agentic Ops Hackathon

AI is changing how teams investigate incidents, detect threats, automate workflows, and build intelligent ...

[Puzzles] Solve, Learn, Repeat: Character substitutions with Regular Expressions

This challenge was first posted on Slack #puzzles channelFor BORE at .conf23, we had a puzzle question which ...

Splunk Community Badges!

  Hey everyone! Ready to earn some serious bragging rights in the community? Along with our existing badges ...