Bloom Analysis Plugin
Notes on how to use the bloom analysis plugin.
Prerequisite
A prerequisite to use this plugin is to have a bloom-filter database with information about hashes.
The bloom plugin uses a specific bloom-filter implementation known to be compatible with the following implementations:
Golang: https://github.com/DCSO/bloom
Python: https://github.com/DCSO/flor
These implementation could be used to generate a custom bloom-filter files. It is important to note that the hashes must be inserted in upper case.
Furthermore, bloom-filters are a probabilistic storage format. In the case of bloom, this means that:
No false negative could occur;
False positives can occur with a predetermined probability, defined when creating the bloom-filter file.
A bloom-filter database is available on the CIRCL.lu website: https://circl.lu/services/hashlookup/#querying-hashlookup-without-online-queries
Running the analysis plugin
First run log2timeline
to calculate the hashes:
log2timeline.py --hashers sha1 --storage-file timeline.plaso image.raw
Make sure to enable hashers supported by the Bloom Filter, which is sha1 in this example.
Next run psort
to tag events:
psort.py --analysis bloom --bloom_file hashlookup-full.bloom -o null timeline.plaso
The last step would be to export a timeline with the tags (By default, the tag value is bloom_present
) :
psort.py -o dynamic --dynamic-time --fields datetime,timestamp_desc,source,source_long,message,parser,data_type,display_name,tag,sha1_hash -w timeline.csv timeline.plaso
psort.py --analysis hashlookup_bloom --hashlookup_bloom_file hashlookup-full.bloom -o json_line -w timeline.jsonl 20221228T162736-Laptop1Final.E01.plaso