Skip to content

Instantly share code, notes, and snippets.

@tjnel
Last active April 18, 2019 01:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tjnel/8834536167a30047aa02d41f46d94b22 to your computer and use it in GitHub Desktop.
Save tjnel/8834536167a30047aa02d41f46d94b22 to your computer and use it in GitHub Desktop.
This script converts a Suricata fast.log file to a csv
import re
def line2csv(line):
print(line)
a = re.compile(r"([0-9]{2}\/[0-9]{2}\/20[0-9]{2})-([0-9]+\:[0-9]+\:[0-9]+\.[0-9]+)\s+\[\*\*\]\s+\[([0-9]+)\:(["
r"0-9]+)\:([0-9]+)\]\s+(.*)\[\*\*\]\s+\[Classification\:\s+([aA-zZ 0-9]+)\]\s+\[Priority\:\s+(["
r"0-9]+)\]\s+\{([aA-zZ 0-9]+)\}\s+(.*)\s+->\s(.*)")
results = a.match(line)
return results.groups(0)
with open('out_file.csv', 'w') as outFile:
outFile.write('date,time,group,sid,sev,rule_name,classification,priority,protocol,from_addr,to_addr\n')
with open('fast.log', 'r') as inFile:
for line in inFile:
outFile.write(','.join(str(i) for i in line2csv(line))+'\n')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment