misp-stix 2.4.160 released
Alongside with MISP latest release, we are pleased to announce that misp-stix comes with a few improvements that are available and used on MISP.
This release also includes a few new features, changes and improvements on the library itself.
Changes immediately available on MISP
The MISP objects conversion mapping to STIX 2 has been updated to support the following templates:
- http-request
- netflow
- sigma (only STIX 2.1, which supports multiple patterning languages such as yara or suricata that are already included)
With the implementation of the conversion for these object templates, we also added the related tests and updated the documentation.
Improvements on the STIX -> MISP import feature
The STIX 2 -> MISP import feature has been substantially improved to complete the support of STIX content that is produced with this library.
Then we should now have a STIX 2 -> MISP mapping similar to the MISP -> STIX 2 one and be able to import back to MISP what has been exported as STIX 2.
(documentation will be also available soon)
(WiP) The conversion of STIX 2 content from external sources has been improved and now supports most of the SDOs.
There is nonetheless a not negligible amount of work needed to "fully" support the conversion of STIX patterns and Cyber Observable objects into the appropriate MISP data structure (Attribute, Objects, ...). Soon we will rework and improve the mapping for these STIX features so STIX -> MISP import feature can be used on MISP and replace the old built-in code 🤞
Additional features
Single MISP attributes parsing & incremental conversion
A parse_misp_attribute
method has been added to handle the conversion to STIX of single MISP attributes (this feature is different from the already implemented parse_misp_attributes
method that is used to convert MISP Attributes collections).
Alongside with the ability to parse single attributes independently, we improved the ability to parse MISP data incrementally and fetch the conversion results.
As a result, we can now use the main parsing functions that handle MISP data as many times as needed and store the converted STIX data in one single Bundle more easily than before.
For example:
from misp_stix_converter import MISPtoSTIX21Parser
parser21 = MISPtoSTIX21Parser()
for event in whatever_process_returning_MISP_events():
parser.parse_misp_event(event)
The STIX objects are available then with:
parser.stix_objects # if you want to simply look the list of objects
# OR
parser.fetch_stix_objects # to extract the STIX objects you just generated from the conversion of MISP events
If you want to get those objects within a fancy STIX Bundle:
parser.bundle # extracts the STIX objects like `fetch_stix_object` and puts them in a STIX Bundle
This feature works with all the supported MISP data structures conversion (Events, Attributes, ...) and does not interfere with the collections handling features that do the same work for you in a single callable function.
This feature has been initiated from a request in #16 by @mavam
Changelog available here: https://github.com/MISP/misp-stix/commits/v2.4.160