Set of utilities to manage MISP feeds
Project description
Feed Manager for MISP
Utilities and classes to generate and consume MISP feeds.
We support two types of feeds:
- Indicators feeds: made of simple objects, like hashes, domains, etc; this is the basic feed type we use to share labelled indicators.
- Telemetry feeds: made of complex objects coming from our telemetry; each item has multiple indicators associated (for example md5 and sha1) and can contain complex objects (for example the list of behaviors associated to a sandbox analysis).
Below we give an example of both. The generate_feed.py
provides an example of how both feeds
can be generated:
./bin/generate_feed.py -o ./tmp/
> Daily feed of indicators written to: ./tmp/indicators
> Daily feed of telemetry objects written to: ./tmp/telemetry
Consuming an indicator feed extracts all attributes and print them as separate entities; note that it is still possible to group them by object (file) as the object uuid is not discarded and included in the provided output; this is useful because, for example, many hashes might describe the same file.
./bin/consume_feed.py -i ./tmp/indicators
> Fetching items since 2022-08-20 13:19:04.856733
> {
> "tags": [
> "misp-galaxy:malpedia=\"GootKit\"",
> "misp-galaxy:threat-actor=\"Sofacy\""
> ],
> "timestamp": "2022-10-11 14:01:56",
> "event_uuid": "ca324c99-a9d2-45e0-947d-d864d70df9c5",
> "object_uuid": "31ae2789-392e-40a7-971b-d80ee8f78fca",
> "attribute_uuid": "0bd619cc-4692-4c5e-84fd-c45fcd0e0d93",
> "attribute_type": "md5",
> "attribute_value": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
> }
> {
> "tags": [
> "misp-galaxy:malpedia=\"GootKit\"",
> "misp-galaxy:threat-actor=\"Sofacy\""
> ],
> "timestamp": "2022-10-11 14:01:56",
> "event_uuid": "ca324c99-a9d2-45e0-947d-d864d70df9c5",
> "object_uuid": "31ae2789-392e-40a7-971b-d80ee8f78fca",
> "attribute_uuid": "6c6578a9-fd33-4ae9-8443-2bdb0435aa9f",
> "attribute_type": "sha1",
> "attribute_value": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
> }
> {
> "tags": [
> "misp-galaxy:malpedia=\"GootKit\"",
> "misp-galaxy:threat-actor=\"Sofacy\""
> ],
> "timestamp": "2022-10-11 14:01:56",
> "event_uuid": "ca324c99-a9d2-45e0-947d-d864d70df9c5",
> "object_uuid": "31ae2789-392e-40a7-971b-d80ee8f78fca",
> "attribute_uuid": "6929d4ca-3b14-4d7b-a021-f3442b0eca01",
> "attribute_type": "sha256",
> "attribute_value": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
> }
Instead of further filtering and processing, it is also possible to request the attribute type at consumption time. For example, when processing the same feed we can do the following:
./bin/consume_feed.py -i ./tmp/indicators -t sha1
> Fetching items since 2022-08-20 13:23:48.005220
> {
> "tags": [
> "misp-galaxy:malpedia=\"GootKit\"",
> "misp-galaxy:threat-actor=\"Sofacy\""
> ],
> "timestamp": "2022-10-11 14:01:56",
> "event_uuid": "ca324c99-a9d2-45e0-947d-d864d70df9c5",
> "object_uuid": "31ae2789-392e-40a7-971b-d80ee8f78fca",
> "attribute_uuid": "6c6578a9-fd33-4ae9-8443-2bdb0435aa9f",
> "attribute_type": "sha1",
> "attribute_value": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
> }
And finally, an example of consuming a telemetry feed:
./bin/consume_feed.py -i ./tmp/telemetry/
> Fetching items since 2022-08-20 13:12:12.802821
> {
> "tags": [],
> "techniques": [],
> "task.portal_url": "https://user.lastline.com/portal#/analyst/task/30f48c17e9db002005baa7d440ca275a/overview",
> "task.score": "70",
> "analysis.activities": [
> "Anomaly: AI detected possible malicious code reuse",
> "Evasion: Detecting the presence of AntiMalware Scan Interface (AMSI)",
> "Execution: Subject crash detected",
> "Signature: Potentially malicious application/program"
> ],
> "file.md5": "37840d4e937db0385b820d4019071540",
> "file.sha1": "a1f7670cd7da7e331db2d69f0855858985819873",
> "file.sha256": "492bfe8d2b1105ec4045f96913d38f98e30fe349ea50cc4aaa425ca289af2852",
> "file.name": "unknown"
> }
Install
This package is available on PyPI, and it can be installed with pip
:
pip install misp-feed-manager
To install and use the component requiring pymisp
you just need to install
the package together with its misp
extra (use quotes or double quotes if your
shell process square brackets):
pip install misp-feed-manager[misp]
Development
We use tox
to run tests (via nose2
), black
as formatter, and pylint
as
static checker. You can install them (use a virtual environment) using pip
:
python3 -m venv venv
source ./venv/bin/activate
pip install tox black pylint
And run them as follows:
tox
> py39: OK (4.13=setup[3.98]+cmd[0.16] seconds)
> congratulations :) (4.17 seconds)
pylint ./bin ./src ./tests
>
> --------------------------------------------------------------------
> Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)
>
black ./bin ./src ./tests
> All done! ✨ 🍰 ✨
> 7 files left unchanged.
Contributing
The feed-manager-for-misp project team welcomes contributions from the community. Before you start working with feed-manager-for-misp, please read our Developer Certificate of Origin. All contributions to this repository must be signed as described on that page. Your signature certifies that you wrote the patch or have the right to pass it on as an open-source patch. For more detailed information, refer to CONTRIBUTING.md.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file misp-feed-manager-0.3.2.tar.gz
.
File metadata
- Download URL: misp-feed-manager-0.3.2.tar.gz
- Upload date:
- Size: 23.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fdef20e5ca3905120006e4f109ee4f9c435aa77d99507fc25bddd03d0303297 |
|
MD5 | ef7e22fa576e82e566729a979fc59219 |
|
BLAKE2b-256 | c08b6dbd59497d1897472efb5acc1e8eaea086bb1358f3aba54189d1a1009fe8 |
File details
Details for the file misp_feed_manager-0.3.2-py3-none-any.whl
.
File metadata
- Download URL: misp_feed_manager-0.3.2-py3-none-any.whl
- Upload date:
- Size: 22.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a97fc824b27b5aef8f5782880fcefdd28306889fd02a5d6a86464d199a378ce9 |
|
MD5 | a87f5fb371e30169a2ff4c0192188660 |
|
BLAKE2b-256 | 91f9c2b5311fc700e4280e479545cf48311c1935ae0fe36adf9f19b74799dbd0 |