You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,14 +21,18 @@ CHANGELOG
21
21
#### Collectors
22
22
-`intelmq.bots.collectors.shodan.collector_stream`: Fix access to parameters, the bot wrongly used `self.parameters` (PR#2020 by Mikk Margus Möll).
23
23
-`intelmq.bots.collectors.mail.collector_mail_attach`: Add attachment file name as `extra.file_name` also if the attachment is not compressed (PR#2021 by Alex Kaplan).
24
+
-`intelmq.bots.collectors.http.collector_http_stream`: Fix access to parameters, the bot wrongly used `self.parameters` (by Sebastian Wagner).
24
25
25
26
#### Parsers
26
27
27
28
#### Experts
28
29
29
30
#### Outputs
31
+
-`intelmq.bots.outputs.mcafee.output_esm_ip`: Fix access to parameters, the bot wrongly used `self.parameters` (by Sebastian Wagner).
32
+
-`intelmq.bots.outputs.misp.output_api`: Fix access to parameters, the bot wrongly used `self.parameters` (by Sebastian Wagner).
Copy file name to clipboardExpand all lines: docs/user/bots.rst
+28-8Lines changed: 28 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -314,6 +314,7 @@ Generic Mail Attachment Fetcher
314
314
* `ssl_ca_certificate`: Optional string of path to trusted CA certificate. Applies only to IMAP connections, not HTTP. If the provided certificate is not found, the IMAP connection will fail on handshake. By default, no certificate is used.
315
315
316
316
The resulting reports contains the following special fields:
317
+
317
318
* `extra.email_date`: The content of the email's `Date` header
318
319
* `extra.email_subject`: The subject of the email
319
320
* `extra.email_from`: The email's from address
@@ -353,6 +354,7 @@ Generic Mail Body Fetcher
353
354
- `string`, e.g. `'plain'`
354
355
355
356
The resulting reports contains the following special fields:
357
+
356
358
* `extra.email_date`: The content of the email's `Date` header
357
359
* `extra.email_subject`: The subject of the email
358
360
* `extra.email_from`: The email's from address
@@ -545,6 +547,7 @@ MISP Generic
545
547
* `misp_tag_processed`: MISP tag for processed events, optional
546
548
547
549
Generic parameters used in this bot:
550
+
548
551
* `http_verify_cert`: Verify the TLS certificate of the server, boolean (default: `true`)
549
552
550
553
**Workflow**
@@ -1788,6 +1791,7 @@ Aggregate
1788
1791
**Configuration Parameters**
1789
1792
1790
1793
* **Cache parameters** (see in section :ref:`common-parameters`)
1794
+
1791
1795
* TTL is not used, using it would result in data loss.
1792
1796
* **fields** Given fields which are used to aggregate like `classification.type, classification.identifier`
1793
1797
* **threshold** If the aggregated event is lower than the given threshold after the timespan, the event will get dropped.
@@ -1989,10 +1993,16 @@ Deduplicator
1989
1993
**Parameters for "fine-grained" deduplication**
1990
1994
1991
1995
* `filter_type`: type of the filtering which can be "blacklist" or "whitelist". The filter type will be used to define how Deduplicator bot will interpret the parameter `filter_keys` in order to decide whether an event has already been seen or not, i.e., duplicated event or a completely new event.
1996
+
1992
1997
* "whitelist" configuration: only the keys listed in `filter_keys` will be considered to verify if an event is duplicated or not.
1993
1998
* "blacklist" configuration: all keys except those in `filter_keys` will be considered to verify if an event is duplicated or not.
1994
1999
* `filter_keys`: string with multiple keys separated by comma. Please note that `time.observation` key will not be considered even if defined, because the system always ignore that key.
1995
2000
2001
+
When using a whitelist field pattern and a small number of fields (keys), it becomes more important, that these fields exist in the events themselves.
2002
+
If a field does not exist, but is part of the hashing/deduplication, this field will be ignored.
2003
+
If such events should not get deduplicated, you need to filter them out before the deduplication process, e.g. using a sieve expert.
2004
+
See also `this discussion thread <https://lists.cert.at/pipermail/intelmq-users/2021-July/000370.html>`_ on the mailing-list.
2005
+
1996
2006
**Parameters Configuration Example**
1997
2007
1998
2008
*Example 1*
@@ -2049,6 +2059,7 @@ DO Portal Expert Bot
2049
2059
* `description:` The DO portal retrieves the contact information from a DO portal instance: http://github.com/certat/do-portal/
2050
2060
2051
2061
**Configuration Parameters**
2062
+
2052
2063
* `mode` - Either `replace` or `append` the new abuse contacts in case there are existing ones.
2053
2064
* `portal_url` - The URL to the portal, without the API-path. The used URL is `$portal_url + '/api/1.0/ripe/contact?cidr=%s'`.
2054
2065
* `portal_api_key` - The API key of the user to be used. Must have sufficient privileges.
@@ -2068,6 +2079,7 @@ Field Reducer Bot
2068
2079
* `description:` The field reducer bot is capable of removing fields from events.
2069
2080
2070
2081
**Configuration Parameters**
2082
+
2071
2083
* `type` - either `"whitelist"` or `"blacklist"`
2072
2084
* `keys` - Can be a JSON-list of field names (`["raw", "source.account"]`) or a string with a comma-separated list of field names (`"raw,source.account"`).
2073
2085
@@ -2093,17 +2105,18 @@ The filter bot is capable of filtering specific events.
2093
2105
* `lookup:` none
2094
2106
* `public:` yes
2095
2107
* `cache (redis db):` none
2096
-
* `description:` filter messages (drop or pass messages) FIXME
2108
+
* `description:` A simple filter for messages (drop or pass) based on a exact string comparison or regular expression
2097
2109
2098
2110
**Configuration Parameters**
2099
2111
2100
2112
*Parameters for filtering with key/value attributes*
2101
2113
2102
-
* `filter_key` - key from data format
2103
-
* `filter_value` - value for the key
2104
-
* `filter_action` - action when a message match to the criteria (possible actions: keep/drop)
2105
-
* `filter_regex` - attribute determines if the `filter_value` shall be treated as regular expression or not.
2106
-
If this attribute is not empty, the bot uses python's "search" function to evaluate the filter.
2114
+
* ``filter_key`` - key from data format
2115
+
* ``filter_value`` - value for the key
2116
+
* ``filter_action`` - action when a message match to the criteria (possible actions: keep/drop)
2117
+
* ``filter_regex`` - attribute determines if the ``filter_value`` shall be treated as regular expression or not.
2118
+
If this attribute is not empty (can be ``true``, ``yes`` or whatever), the bot uses python's ```re.search`` <https://docs.python.org/3/library/re.html#re.search>`_ function to evaluate the filter with regular expressions.
2119
+
If this attribute is empty or evaluates to false, an exact string comparison is performed. A check on string *inequality* can be achieved with the usage of *Paths* described below.
2107
2120
2108
2121
*Parameters for time based filtering*
2109
2122
@@ -2175,17 +2188,19 @@ Format Field
2175
2188
2176
2189
.. code-block:: json
2177
2190
2178
-
"columns": "malware.name,extra.tags"
2191
+
"columns": "malware.name,extra.tags"
2179
2192
2180
-
* `strip_chars` - a set of characters to remove as leading/trailing characters(default: ` ` or whitespace)
2193
+
* `strip_chars` - a set of characters to remove as leading/trailing characters(default: space)
2181
2194
2182
2195
*Parameters for replacing chars*
2196
+
2183
2197
* `replace_column` - key from data format
2184
2198
* `old_value` - the string to search for
2185
2199
* `new_value` - the string to replace the old value with
2186
2200
* `replace_count` - number specifying how many occurrences of the old value you want to replace(default: `1`)
2187
2201
2188
2202
*Parameters for splitting string to list of string*
2203
+
2189
2204
* `split_column` - key from data format
2190
2205
* `split_separator` - specifies the separator to use when splitting the string(default: `,`)
2191
2206
@@ -2725,13 +2740,15 @@ Sources:
2725
2740
**Configuration Parameters**
2726
2741
2727
2742
* `fields`: string, comma-separated list of fields e.g. `destination.ip,source.asn,source.url`. Supported fields are:
2743
+
2728
2744
* `destination.asn` & `source.asn`
2729
2745
* `destination.fqdn` & `source.fqdn`
2730
2746
* `destination.ip` & `source.ip`
2731
2747
* `destination.url` & `source.url`
2732
2748
* `policy`: string, comma-separated list of policies, e.g. `del,drop,drop`. `drop` will cause that the the entire event to be removed if the field is , `del` causes the field to be removed.
2733
2749
2734
2750
With the example parameter values given above, this means that:
2751
+
2735
2752
* If a `destination.ip` value is part of a reserved network block, the field will be removed (policy "del").
2736
2753
* If a `source.asn` value is in the range of reserved AS numbers, the event will be removed altogether (policy "drop).
2737
2754
* If a `source.url` value contains a host with either an IP address part of a reserved network block, or a reserved domain name (or with a reserved TLD), the event will be dropped (policy "drop")
@@ -3150,6 +3167,7 @@ Threshold
3150
3167
**Limitations**
3151
3168
3152
3169
This bot has certain limitations and is not a true threshold filter (yet). It works like this:
3170
+
3153
3171
1. Every incoming message is hashed according to the `filter_*` parameters.
3154
3172
2. The hash is looked up in the cache and the count is incremented by 1, and the TTL of the key is (re-)set to the timeout.
3155
3173
3. If the new count matches the threshold exactly, the message is forwarded. Otherwise it is dropped.
@@ -3319,6 +3337,7 @@ Events without `source.url`, `source.fqdn`, `source.ip`, or `source.asn`, are ig
3319
3337
only contains the domain. uWhoisd will automatically strip the subdomain part if it is present in the request.
3320
3338
3321
3339
Example: `https://www.theguardian.co.uk`
3340
+
3322
3341
* TLD: `co.uk` (uWhoisd uses the `Mozilla public suffix list <https://publicsuffix.org/list/>`_ as a reference)
3323
3342
* Domain: `theguardian.co.uk`
3324
3343
* Subdomain: `www`
@@ -3877,6 +3896,7 @@ The parameters marked with 'PostgreSQL' will be sent to libpq via psycopg2. Chec
3877
3896
**PostgreSQL**
3878
3897
3879
3898
You have two basic choices to run PostgreSQL:
3899
+
3880
3900
1. on the same machine as intelmq, then you could use Unix sockets if available on your platform
3881
3901
2. on a different machine. In which case you would need to use a TCP connection and make sure you give the right connection parameters to each psql or client call.
0 commit comments