mvt/tests/artifacts/generate_stix.py

45 lines
1.5 KiB
Python
Raw Normal View History

2021-12-16 11:50:12 +00:00
import os
from stix2.v21 import (Indicator, Malware, Relationship, Bundle)
2021-12-16 11:50:12 +00:00
2022-01-07 16:51:21 +00:00
def generate_test_stix_file(file_path):
if os.path.isfile(file_path):
os.remove(file_path)
2021-12-16 11:50:12 +00:00
domains = ["example.org"]
processes = ["Launch"]
emails = ["foobar@example.org"]
filenames = ["/var/foobar/txt"]
res = []
malware = Malware(name="TestMalware", is_family=False, description="")
res.append(malware)
for d in domains:
i = Indicator(indicator_types=["malicious-activity"], pattern="[domain-name:value='{}']".format(d), pattern_type="stix")
res.append(i)
res.append(Relationship(i, 'indicates', malware))
for p in processes:
i = Indicator(indicator_types=["malicious-activity"], pattern="[process:name='{}']".format(p), pattern_type="stix")
res.append(i)
res.append(Relationship(i, 'indicates', malware))
for f in filenames:
i = Indicator(indicator_types=["malicious-activity"], pattern="[file:name='{}']".format(f), pattern_type="stix")
res.append(i)
res.append(Relationship(i, 'indicates', malware))
for e in emails:
i = Indicator(indicator_types=["malicious-activity"], pattern="[email-addr:value='{}']".format(e), pattern_type="stix")
res.append(i)
res.append(Relationship(i, 'indicates', malware))
bundle = Bundle(objects=res)
2022-01-07 16:51:21 +00:00
with open(file_path, "w+") as f:
2021-12-16 11:50:12 +00:00
f.write(bundle.serialize(pretty=True))
2022-01-07 16:51:21 +00:00
if __name__ == "__main__":
generate_test_stix_file("test.stix2")
2021-12-16 11:50:12 +00:00
print("test.stix2 file created")