intelmq-extensions 1.8.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- intelmq_extensions/__init__.py +0 -0
- intelmq_extensions/bots/__init__.py +0 -0
- intelmq_extensions/bots/collectors/blackkite/__init__.py +0 -0
- intelmq_extensions/bots/collectors/blackkite/_client.py +167 -0
- intelmq_extensions/bots/collectors/blackkite/collector.py +182 -0
- intelmq_extensions/bots/collectors/disp/__init__.py +0 -0
- intelmq_extensions/bots/collectors/disp/_client.py +121 -0
- intelmq_extensions/bots/collectors/disp/collector.py +104 -0
- intelmq_extensions/bots/collectors/xmpp/__init__.py +0 -0
- intelmq_extensions/bots/collectors/xmpp/collector.py +210 -0
- intelmq_extensions/bots/experts/__init__.py +0 -0
- intelmq_extensions/bots/experts/certat_contact_intern/__init__.py +0 -0
- intelmq_extensions/bots/experts/certat_contact_intern/expert.py +139 -0
- intelmq_extensions/bots/experts/copy_extra/__init__.py +0 -0
- intelmq_extensions/bots/experts/copy_extra/expert.py +27 -0
- intelmq_extensions/bots/experts/event_group_splitter/__init__.py +0 -0
- intelmq_extensions/bots/experts/event_group_splitter/expert.py +117 -0
- intelmq_extensions/bots/experts/event_splitter/__init__.py +0 -0
- intelmq_extensions/bots/experts/event_splitter/expert.py +41 -0
- intelmq_extensions/bots/experts/squelcher/__init__.py +0 -0
- intelmq_extensions/bots/experts/squelcher/expert.py +316 -0
- intelmq_extensions/bots/experts/vulnerability_lookup/__init__.py +0 -0
- intelmq_extensions/bots/experts/vulnerability_lookup/expert.py +136 -0
- intelmq_extensions/bots/outputs/__init__.py +0 -0
- intelmq_extensions/bots/outputs/mattermost/__init__.py +0 -0
- intelmq_extensions/bots/outputs/mattermost/output.py +113 -0
- intelmq_extensions/bots/outputs/to_logs/__init__.py +0 -0
- intelmq_extensions/bots/outputs/to_logs/output.py +12 -0
- intelmq_extensions/bots/outputs/xmpp/__init__.py +0 -0
- intelmq_extensions/bots/outputs/xmpp/output.py +180 -0
- intelmq_extensions/bots/parsers/__init__.py +0 -0
- intelmq_extensions/bots/parsers/blackkite/__init__.py +0 -0
- intelmq_extensions/bots/parsers/blackkite/_transformers.py +202 -0
- intelmq_extensions/bots/parsers/blackkite/parser.py +65 -0
- intelmq_extensions/bots/parsers/disp/__init__.py +0 -0
- intelmq_extensions/bots/parsers/disp/parser.py +125 -0
- intelmq_extensions/bots/parsers/malwaredomains/__init__.py +0 -0
- intelmq_extensions/bots/parsers/malwaredomains/parser.py +63 -0
- intelmq_extensions/cli/__init__.py +0 -0
- intelmq_extensions/cli/create_reports.py +161 -0
- intelmq_extensions/cli/intelmqcli.py +657 -0
- intelmq_extensions/cli/lib.py +670 -0
- intelmq_extensions/cli/utils.py +12 -0
- intelmq_extensions/etc/harmonization.conf +434 -0
- intelmq_extensions/etc/squelcher.conf +52 -0
- intelmq_extensions/lib/__init__.py +0 -0
- intelmq_extensions/lib/api_helpers.py +105 -0
- intelmq_extensions/lib/blackkite.py +29 -0
- intelmq_extensions/tests/__init__.py +0 -0
- intelmq_extensions/tests/base.py +336 -0
- intelmq_extensions/tests/bots/__init__.py +0 -0
- intelmq_extensions/tests/bots/collectors/__init__.py +0 -0
- intelmq_extensions/tests/bots/collectors/blackkite/__init__.py +0 -0
- intelmq_extensions/tests/bots/collectors/blackkite/base.py +45 -0
- intelmq_extensions/tests/bots/collectors/blackkite/test_client.py +154 -0
- intelmq_extensions/tests/bots/collectors/blackkite/test_collector.py +287 -0
- intelmq_extensions/tests/bots/collectors/disp/__init__.py +0 -0
- intelmq_extensions/tests/bots/collectors/disp/base.py +147 -0
- intelmq_extensions/tests/bots/collectors/disp/test_client.py +134 -0
- intelmq_extensions/tests/bots/collectors/disp/test_collector.py +137 -0
- intelmq_extensions/tests/bots/collectors/xmpp/__init__.py +0 -0
- intelmq_extensions/tests/bots/collectors/xmpp/test_collector.py +10 -0
- intelmq_extensions/tests/bots/experts/__init__.py +0 -0
- intelmq_extensions/tests/bots/experts/certat_contact_intern/__init__.py +0 -0
- intelmq_extensions/tests/bots/experts/certat_contact_intern/test_expert.py +176 -0
- intelmq_extensions/tests/bots/experts/copy_extra/__init__.py +0 -0
- intelmq_extensions/tests/bots/experts/copy_extra/test_expert.py +42 -0
- intelmq_extensions/tests/bots/experts/event_group_splitter/__init__.py +0 -0
- intelmq_extensions/tests/bots/experts/event_group_splitter/test_expert.py +302 -0
- intelmq_extensions/tests/bots/experts/event_splitter/__init__.py +0 -0
- intelmq_extensions/tests/bots/experts/event_splitter/test_expert.py +101 -0
- intelmq_extensions/tests/bots/experts/squelcher/__init__.py +0 -0
- intelmq_extensions/tests/bots/experts/squelcher/test_expert.py +548 -0
- intelmq_extensions/tests/bots/experts/vulnerability_lookup/__init__.py +0 -0
- intelmq_extensions/tests/bots/experts/vulnerability_lookup/test_expert.py +203 -0
- intelmq_extensions/tests/bots/outputs/__init__.py +0 -0
- intelmq_extensions/tests/bots/outputs/mattermost/__init__.py +0 -0
- intelmq_extensions/tests/bots/outputs/mattermost/test_output.py +138 -0
- intelmq_extensions/tests/bots/outputs/xmpp/__init__.py +0 -0
- intelmq_extensions/tests/bots/outputs/xmpp/test_output.py +10 -0
- intelmq_extensions/tests/bots/parsers/__init__.py +0 -0
- intelmq_extensions/tests/bots/parsers/blackkite/__init__.py +0 -0
- intelmq_extensions/tests/bots/parsers/blackkite/data.py +69 -0
- intelmq_extensions/tests/bots/parsers/blackkite/test_parser.py +197 -0
- intelmq_extensions/tests/bots/parsers/disp/__init__.py +0 -0
- intelmq_extensions/tests/bots/parsers/disp/test_parser.py +282 -0
- intelmq_extensions/tests/bots/parsers/malwaredomains/__init__.py +0 -0
- intelmq_extensions/tests/bots/parsers/malwaredomains/test_parser.py +62 -0
- intelmq_extensions/tests/cli/__init__.py +0 -0
- intelmq_extensions/tests/cli/test_create_reports.py +97 -0
- intelmq_extensions/tests/cli/test_intelmqcli.py +158 -0
- intelmq_extensions/tests/lib/__init__.py +0 -0
- intelmq_extensions/tests/lib/base.py +81 -0
- intelmq_extensions/tests/lib/test_api_helpers.py +126 -0
- intelmq_extensions-1.8.1.dist-info/METADATA +60 -0
- intelmq_extensions-1.8.1.dist-info/RECORD +100 -0
- intelmq_extensions-1.8.1.dist-info/WHEEL +5 -0
- intelmq_extensions-1.8.1.dist-info/entry_points.txt +33 -0
- intelmq_extensions-1.8.1.dist-info/licenses/LICENSE +661 -0
- intelmq_extensions-1.8.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"""Tests for API helpers
|
|
2
|
+
|
|
3
|
+
SPDX-FileCopyrightText: 2023 CERT.at GmbH <https://cert.at/>
|
|
4
|
+
SPDX-License-Identifier: AGPL-3.0-or-later
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import time
|
|
8
|
+
from datetime import datetime, timedelta
|
|
9
|
+
from unittest import TestCase
|
|
10
|
+
|
|
11
|
+
import requests
|
|
12
|
+
from dateutil.tz import UTC
|
|
13
|
+
|
|
14
|
+
from intelmq_extensions.lib.api_helpers import OAuthAccessMixin, RateLimiter
|
|
15
|
+
|
|
16
|
+
from .base import OAuthAccess_APIMockMixIn
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class OAuthAccessMixinTestCase(OAuthAccess_APIMockMixIn, TestCase):
|
|
20
|
+
def setUp(self) -> None:
|
|
21
|
+
super().setUp()
|
|
22
|
+
self.oauth_config = {
|
|
23
|
+
"oauth_clientid": "client1",
|
|
24
|
+
"oauth_clientsecret": "secret1",
|
|
25
|
+
"oauth_url": "https://oauthip.example.at/v1",
|
|
26
|
+
"oauth_scope": "my_scope",
|
|
27
|
+
"oauth_grant_type": "my_type",
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
self.session = requests.Session()
|
|
31
|
+
self.setup_oauth_mock(
|
|
32
|
+
**self.oauth_config,
|
|
33
|
+
session=self.session,
|
|
34
|
+
)
|
|
35
|
+
self.mixin = OAuthAccessMixin()
|
|
36
|
+
self.mixin.init_oauth(session=self.session, **self.oauth_config)
|
|
37
|
+
|
|
38
|
+
def test_get_access_token(self):
|
|
39
|
+
self.assertIn(".xxx", self.mixin.access_token)
|
|
40
|
+
self.assertEqual(1, self.auth_requests.call_count)
|
|
41
|
+
|
|
42
|
+
def test_refresh_access_token(self):
|
|
43
|
+
# the client has a valid token
|
|
44
|
+
valid_token = self.gen_fake_token(datetime.now(tz=UTC) + timedelta(minutes=30))
|
|
45
|
+
self.mixin._access_token = valid_token
|
|
46
|
+
|
|
47
|
+
# current token is used without calling the IdP
|
|
48
|
+
self.assertEqual(valid_token, self.mixin.access_token)
|
|
49
|
+
self.assertEqual(0, self.auth_requests.call_count)
|
|
50
|
+
|
|
51
|
+
# but when token is about to be expired, the new one is requested
|
|
52
|
+
self.mixin._access_token = self.gen_fake_token(
|
|
53
|
+
datetime.utcnow() + timedelta(minutes=5)
|
|
54
|
+
)
|
|
55
|
+
self.assertEqual(self.mocked_access_token, self.mixin.access_token)
|
|
56
|
+
self.assertEqual(1, self.auth_requests.call_count)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class RateLimiterTestCase(TestCase):
|
|
60
|
+
def setUp(self) -> None:
|
|
61
|
+
self.limiter = RateLimiter(2, 1)
|
|
62
|
+
|
|
63
|
+
def test_call_in_limit(self):
|
|
64
|
+
counter = 0
|
|
65
|
+
start = time.monotonic_ns()
|
|
66
|
+
|
|
67
|
+
with self.limiter.call():
|
|
68
|
+
counter += 1
|
|
69
|
+
with self.limiter.call():
|
|
70
|
+
counter += 1
|
|
71
|
+
|
|
72
|
+
stop = time.monotonic_ns()
|
|
73
|
+
|
|
74
|
+
self.assertEqual(2, counter)
|
|
75
|
+
self.assertLess(stop - start, 10**9)
|
|
76
|
+
|
|
77
|
+
def test_call_exceed_limit(self):
|
|
78
|
+
counter = 0
|
|
79
|
+
|
|
80
|
+
start = time.monotonic_ns()
|
|
81
|
+
with self.limiter.call():
|
|
82
|
+
counter += 1
|
|
83
|
+
with self.limiter.call():
|
|
84
|
+
counter += 1
|
|
85
|
+
middle = time.monotonic_ns()
|
|
86
|
+
with self.limiter.call():
|
|
87
|
+
counter += 1
|
|
88
|
+
stop = time.monotonic_ns()
|
|
89
|
+
|
|
90
|
+
self.assertEqual(3, counter)
|
|
91
|
+
self.assertGreater(stop - start, 10**9)
|
|
92
|
+
# Ensure there was a waiting time between second and 3rd call
|
|
93
|
+
self.assertGreater(stop - middle, middle - start)
|
|
94
|
+
|
|
95
|
+
def test_call_no_limit(self):
|
|
96
|
+
counter = 0
|
|
97
|
+
limiter = RateLimiter(2, period_seconds=0)
|
|
98
|
+
|
|
99
|
+
start = time.monotonic_ns()
|
|
100
|
+
with limiter.call():
|
|
101
|
+
counter += 1
|
|
102
|
+
with limiter.call():
|
|
103
|
+
counter += 1
|
|
104
|
+
with limiter.call():
|
|
105
|
+
counter += 1
|
|
106
|
+
stop = time.monotonic_ns()
|
|
107
|
+
|
|
108
|
+
self.assertEqual(3, counter)
|
|
109
|
+
self.assertLess(stop - start, 10**9)
|
|
110
|
+
|
|
111
|
+
def test_call_nested(self):
|
|
112
|
+
"""Ensure the limiter is safe to eventually nest"""
|
|
113
|
+
counter = 0
|
|
114
|
+
start = time.monotonic_ns()
|
|
115
|
+
|
|
116
|
+
with self.limiter.call():
|
|
117
|
+
counter += 1
|
|
118
|
+
with self.limiter.call():
|
|
119
|
+
counter += 1
|
|
120
|
+
with self.limiter.call():
|
|
121
|
+
counter += 1
|
|
122
|
+
|
|
123
|
+
stop = time.monotonic_ns()
|
|
124
|
+
|
|
125
|
+
self.assertEqual(3, counter)
|
|
126
|
+
self.assertGreater(stop - start, 10**9)
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: intelmq_extensions
|
|
3
|
+
Version: 1.8.1
|
|
4
|
+
Summary: Additional bots for IntelMQ
|
|
5
|
+
Author: CERT.at Data & Development Team
|
|
6
|
+
License: AGPLv3
|
|
7
|
+
Project-URL: Repository, https://github.com/certat/intelmq-extensions
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Requires-Python: >=3.7
|
|
10
|
+
Description-Content-Type: text/markdown
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Requires-Dist: rt<3.0.0,>=1.0.9
|
|
13
|
+
Requires-Dist: mergedeep
|
|
14
|
+
Requires-Dist: intelmq
|
|
15
|
+
Requires-Dist: tabulate>=0.7.5
|
|
16
|
+
Requires-Dist: psycopg2-binary
|
|
17
|
+
Requires-Dist: netaddr>=0.7.14
|
|
18
|
+
Requires-Dist: python-termstyle>=0.1.10
|
|
19
|
+
Requires-Dist: importlib_metadata; python_version < "3.8"
|
|
20
|
+
Provides-Extra: dev
|
|
21
|
+
Requires-Dist: pytest; extra == "dev"
|
|
22
|
+
Requires-Dist: tox>=4; extra == "dev"
|
|
23
|
+
Requires-Dist: ruff; extra == "dev"
|
|
24
|
+
Requires-Dist: isort; extra == "dev"
|
|
25
|
+
Requires-Dist: flake8; extra == "dev"
|
|
26
|
+
Requires-Dist: requests-mock; extra == "dev"
|
|
27
|
+
Requires-Dist: freezegun; extra == "dev"
|
|
28
|
+
Dynamic: license-file
|
|
29
|
+
Dynamic: requires-dist
|
|
30
|
+
|
|
31
|
+
# IntelMQ Extensions
|
|
32
|
+
|
|
33
|
+
This project collects customized bots used primary by CERT.at.
|
|
34
|
+
|
|
35
|
+
## Usage
|
|
36
|
+
|
|
37
|
+
Install the package on the machine. Then, it's enough to just declare the bot's module
|
|
38
|
+
pointing to this package, e.g. `intelmq_extensions.bots.collectors.xmpp`
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
## Running tests
|
|
43
|
+
|
|
44
|
+
This package comes with test runners configured using `tox`. To use them:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
|
|
48
|
+
tox -elint # run code style checks
|
|
49
|
+
tox -epy310 # run simple unittests against Python 3.10
|
|
50
|
+
|
|
51
|
+
# For running all unittests, including connecting to external services / database
|
|
52
|
+
# use on of the following:
|
|
53
|
+
tox -efull # assuming you run redis, postgres etc. on your own
|
|
54
|
+
tox -efull-with-docker # this will use docker compose to provision services for tests;
|
|
55
|
+
# please note it uses default ports
|
|
56
|
+
|
|
57
|
+
# You can pass arguments to the pytest, e.g. to run a specific test:
|
|
58
|
+
tox -efull-with-docker -- intelmq_extensions/tests/bots/experts/squelcher/test_expert.py::TestSquelcherExpertBot::test_address_match1
|
|
59
|
+
|
|
60
|
+
```
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
intelmq_extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
intelmq_extensions/bots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
+
intelmq_extensions/bots/collectors/blackkite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
intelmq_extensions/bots/collectors/blackkite/_client.py,sha256=nIGXJC-VvMWCfPhERsjc4Ea8Vu1E4msTwZti9TQmB8s,4932
|
|
5
|
+
intelmq_extensions/bots/collectors/blackkite/collector.py,sha256=ZpAgJOOMKRh-q2TYhUir7XIT8AiR7P-k1bKNk6E1gtQ,6749
|
|
6
|
+
intelmq_extensions/bots/collectors/disp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
intelmq_extensions/bots/collectors/disp/_client.py,sha256=iLHDV6gu2uBwUPUe8x_rIVfnTrrjgIUdk9khFigXYX8,3929
|
|
8
|
+
intelmq_extensions/bots/collectors/disp/collector.py,sha256=j1EEQx8awDxLs-K1vl7tjBQ2GaRRGhsaZ_mICeUdjrw,3374
|
|
9
|
+
intelmq_extensions/bots/collectors/xmpp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
+
intelmq_extensions/bots/collectors/xmpp/collector.py,sha256=6jOSwjkHCuPQShG_2gwczrxIevUA83-Go18mrlvFmzw,7415
|
|
11
|
+
intelmq_extensions/bots/experts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
+
intelmq_extensions/bots/experts/certat_contact_intern/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
+
intelmq_extensions/bots/experts/certat_contact_intern/expert.py,sha256=FfW8JQKARWMZceHLOS2pqYA0y8m-U0WgEf5Yndyhyxs,4410
|
|
14
|
+
intelmq_extensions/bots/experts/copy_extra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
+
intelmq_extensions/bots/experts/copy_extra/expert.py,sha256=VsX18GZObP_Sj92Kj86uloqro4eSWXkgcupHopAe8r8,608
|
|
16
|
+
intelmq_extensions/bots/experts/event_group_splitter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
+
intelmq_extensions/bots/experts/event_group_splitter/expert.py,sha256=Jq9v1p94dwbiFKeaulf7pg5XA15hlb967Wwvjp-fZ3g,4095
|
|
18
|
+
intelmq_extensions/bots/experts/event_splitter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
|
+
intelmq_extensions/bots/experts/event_splitter/expert.py,sha256=DcAXwapXMmP-IP7sPwDBWJ9cMu9UCcKh3nJPSDJbGfU,1204
|
|
20
|
+
intelmq_extensions/bots/experts/squelcher/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
+
intelmq_extensions/bots/experts/squelcher/expert.py,sha256=cvmA4N5MjC_QazcEmCgW_uffn0P-4jPIPMikjtOcEd0,11022
|
|
22
|
+
intelmq_extensions/bots/experts/vulnerability_lookup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
|
+
intelmq_extensions/bots/experts/vulnerability_lookup/expert.py,sha256=eDMWvgDWJ98xAXtnYByXsDLBvzbarLn2i-CPJVAfyNc,4666
|
|
24
|
+
intelmq_extensions/bots/outputs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
+
intelmq_extensions/bots/outputs/mattermost/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
|
+
intelmq_extensions/bots/outputs/mattermost/output.py,sha256=JUPB5psHSGI1XK4GlZyXeYRoOMko6QjrZxYNDJKOPFE,2970
|
|
27
|
+
intelmq_extensions/bots/outputs/to_logs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
|
+
intelmq_extensions/bots/outputs/to_logs/output.py,sha256=TNRJlQRLmmhbELN63huj-N7Fr96uUhFg1ShGNyTyHC4,259
|
|
29
|
+
intelmq_extensions/bots/outputs/xmpp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
|
+
intelmq_extensions/bots/outputs/xmpp/output.py,sha256=BBFHsCBKvPoPFvDcvFid6XwqGP0XIdzeOrMVWbvkcsM,6263
|
|
31
|
+
intelmq_extensions/bots/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
+
intelmq_extensions/bots/parsers/blackkite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
|
+
intelmq_extensions/bots/parsers/blackkite/_transformers.py,sha256=msiXw_Ex8baCnFAXZTykpIRgnVcIQ-lL3nV_ExmTPTw,7121
|
|
34
|
+
intelmq_extensions/bots/parsers/blackkite/parser.py,sha256=3NxC84xpR3bIPlVZdZEjcNsBvCdGn4fL54sE-F7sCTg,1880
|
|
35
|
+
intelmq_extensions/bots/parsers/disp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
|
+
intelmq_extensions/bots/parsers/disp/parser.py,sha256=co-eOx8aR3-z2BYe50Rlyr9dYWlX1w0ZoBAFZVgCdbg,4401
|
|
37
|
+
intelmq_extensions/bots/parsers/malwaredomains/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
|
+
intelmq_extensions/bots/parsers/malwaredomains/parser.py,sha256=FEp0YxZ44bD5KoeO162nRols48Xtq_8haAA8zA7BgZg,1996
|
|
39
|
+
intelmq_extensions/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
|
+
intelmq_extensions/cli/create_reports.py,sha256=aPANN6VeHQhTSl6XT0SKulo9WhEuR1lFZVfWJ3TaOYk,5591
|
|
41
|
+
intelmq_extensions/cli/intelmqcli.py,sha256=1DhGm_wAyyUEA45CEFkbLN-k29O9o6XPcSZFvjOc_Ls,24085
|
|
42
|
+
intelmq_extensions/cli/lib.py,sha256=mrMuRVvd-nKd1ASVBhTZn28B13VIK6VVSv-MZO2FFx4,20767
|
|
43
|
+
intelmq_extensions/cli/utils.py,sha256=CpK4rvYtJDYiW5CDhxtBwK7VIY-MOV6FSSEQpwf4HmE,410
|
|
44
|
+
intelmq_extensions/etc/harmonization.conf,sha256=n6PXTYYD5LQRIBgNmDIeco1dy5gwxu77_g_qj6P8Qz8,22018
|
|
45
|
+
intelmq_extensions/etc/squelcher.conf,sha256=36hrMfzBL2C36tFExvDc4OxmIA_Z1x8UEUDfiY1vH5A,989
|
|
46
|
+
intelmq_extensions/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
|
+
intelmq_extensions/lib/api_helpers.py,sha256=wi4Jau_9MThoborMhAi4Qpq3w2sviHNpxSJDce1JXfw,3453
|
|
48
|
+
intelmq_extensions/lib/blackkite.py,sha256=485pqyPMWlGQmnzvLp-h___8RChzgD2TnrntODN__o4,752
|
|
49
|
+
intelmq_extensions/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
+
intelmq_extensions/tests/base.py,sha256=R7itEUljirs35bvKmFYeHvt9X3GFgWHp9XI28r19sok,11070
|
|
51
|
+
intelmq_extensions/tests/bots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
52
|
+
intelmq_extensions/tests/bots/collectors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
|
+
intelmq_extensions/tests/bots/collectors/blackkite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
|
+
intelmq_extensions/tests/bots/collectors/blackkite/base.py,sha256=7B8fnC-nX2ZMVwN2Lu2wSrssXl4_MxwHn9oik4D3STw,1316
|
|
55
|
+
intelmq_extensions/tests/bots/collectors/blackkite/test_client.py,sha256=_KtjjyuN2KdV-1-VEC3euCAlp7gaFQjYkkXuyc4-HoI,5101
|
|
56
|
+
intelmq_extensions/tests/bots/collectors/blackkite/test_collector.py,sha256=eOE2HNGzsPIArQOOp4BgOlatV_keRzGhlxJ2aJA3e0c,9699
|
|
57
|
+
intelmq_extensions/tests/bots/collectors/disp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
|
+
intelmq_extensions/tests/bots/collectors/disp/base.py,sha256=BDFdvkWs4hQNtYU35CaK_yLvIvk1DJnmclmrxpzNfBU,4655
|
|
59
|
+
intelmq_extensions/tests/bots/collectors/disp/test_client.py,sha256=FsEUyhgWtv9OaPADhVv-FbG9lH5Vqk7hJ_mHTXYp0rA,4366
|
|
60
|
+
intelmq_extensions/tests/bots/collectors/disp/test_collector.py,sha256=-yeRJPS1fqbbZhFAFMbivCEIsfn6Sr3nT77kyY_t7S4,4385
|
|
61
|
+
intelmq_extensions/tests/bots/collectors/xmpp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
|
+
intelmq_extensions/tests/bots/collectors/xmpp/test_collector.py,sha256=KyzENq4kYkFvANy19IWhHSGGW9ed7vbFk_dDS-sag0I,187
|
|
63
|
+
intelmq_extensions/tests/bots/experts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
64
|
+
intelmq_extensions/tests/bots/experts/certat_contact_intern/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
65
|
+
intelmq_extensions/tests/bots/experts/certat_contact_intern/test_expert.py,sha256=1WYzfOEjlJwxeLGoHyuXfxyC14B7dBovVDrRXnLpsxw,5102
|
|
66
|
+
intelmq_extensions/tests/bots/experts/copy_extra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
67
|
+
intelmq_extensions/tests/bots/experts/copy_extra/test_expert.py,sha256=07XYaJZ5nLPQZ3-tq1LCm_j0tKlYiJ0A17D40M2Sqpo,1026
|
|
68
|
+
intelmq_extensions/tests/bots/experts/event_group_splitter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
69
|
+
intelmq_extensions/tests/bots/experts/event_group_splitter/test_expert.py,sha256=FcuFOzOGctWQ0whG5e7t9_K2Vf7a_doDEl5WoWhDqq8,9124
|
|
70
|
+
intelmq_extensions/tests/bots/experts/event_splitter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
|
+
intelmq_extensions/tests/bots/experts/event_splitter/test_expert.py,sha256=KGjh86BacNiUcJGg8kxggHoJY3ORZPmPFmVPYJK0J6A,2752
|
|
72
|
+
intelmq_extensions/tests/bots/experts/squelcher/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
|
+
intelmq_extensions/tests/bots/experts/squelcher/test_expert.py,sha256=oHE3E9q2fMwPVavgZM4Bs8kQCGehpMFEv3biJQs_JJk,17731
|
|
74
|
+
intelmq_extensions/tests/bots/experts/vulnerability_lookup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
75
|
+
intelmq_extensions/tests/bots/experts/vulnerability_lookup/test_expert.py,sha256=Jt6K2Tw56WnQc_zdWEjkGqmug4CZA_haamy5LvJ8Aww,7651
|
|
76
|
+
intelmq_extensions/tests/bots/outputs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
77
|
+
intelmq_extensions/tests/bots/outputs/mattermost/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
78
|
+
intelmq_extensions/tests/bots/outputs/mattermost/test_output.py,sha256=iSIa9VuDpjmWITJv5Ho8AKsD8TUfGrpMgl1xTjwLl3g,4874
|
|
79
|
+
intelmq_extensions/tests/bots/outputs/xmpp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
80
|
+
intelmq_extensions/tests/bots/outputs/xmpp/test_output.py,sha256=y0fnxlYMgTOLRFLmbeflQTfxSakJR68R3RsSJYYv81o,178
|
|
81
|
+
intelmq_extensions/tests/bots/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
82
|
+
intelmq_extensions/tests/bots/parsers/blackkite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
|
+
intelmq_extensions/tests/bots/parsers/blackkite/data.py,sha256=gwfaErTsUmS04vovH_VTk0O0owifTOPE-fCptScJjR8,2155
|
|
84
|
+
intelmq_extensions/tests/bots/parsers/blackkite/test_parser.py,sha256=VWDj0iwhI96twlWj9ZRU8VtZ-DDIH9YiVlfbiOarj5I,7491
|
|
85
|
+
intelmq_extensions/tests/bots/parsers/disp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
86
|
+
intelmq_extensions/tests/bots/parsers/disp/test_parser.py,sha256=geUXWaKpOUW_k9-Qb_VAtp99cr6vDTcnSBmT9LfDHec,9714
|
|
87
|
+
intelmq_extensions/tests/bots/parsers/malwaredomains/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
88
|
+
intelmq_extensions/tests/bots/parsers/malwaredomains/test_parser.py,sha256=zkfjcyniiPRcpABVurdRrRpZyZ2zV_PQ84xiU1eUJv0,1882
|
|
89
|
+
intelmq_extensions/tests/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
90
|
+
intelmq_extensions/tests/cli/test_create_reports.py,sha256=hZ-3lhNJJPhi9xetyMAG7k-G5crZ9kf0bbvQj-nMSrg,3343
|
|
91
|
+
intelmq_extensions/tests/cli/test_intelmqcli.py,sha256=Izy0FHVkj44DCgp4Zm8f1vYTdl5wDyCP1sZV0xgMrgY,5009
|
|
92
|
+
intelmq_extensions/tests/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
93
|
+
intelmq_extensions/tests/lib/base.py,sha256=iD4MuDq0Dh-CqFDgyXf4CfaJgT4AL7XAcNjPGxUlkPM,2560
|
|
94
|
+
intelmq_extensions/tests/lib/test_api_helpers.py,sha256=cO6KNfVjwpYgevyyxxokOAmk7VXo-8T8OCH8hQhf980,3807
|
|
95
|
+
intelmq_extensions-1.8.1.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
|
|
96
|
+
intelmq_extensions-1.8.1.dist-info/METADATA,sha256=FjXDB14UgCsC5FRaLxnsnGThgiC6p9k7ztXhi9zop5o,1988
|
|
97
|
+
intelmq_extensions-1.8.1.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
|
|
98
|
+
intelmq_extensions-1.8.1.dist-info/entry_points.txt,sha256=dW_TN7JbkRT4zV7cJoFGIVzAcuqEL9OA1k7fI9Qtipk,3489
|
|
99
|
+
intelmq_extensions-1.8.1.dist-info/top_level.txt,sha256=YVqZnmAiBfQPNdJPAv64Afvc41p3B24Akx2v2-3BFyc,19
|
|
100
|
+
intelmq_extensions-1.8.1.dist-info/RECORD,,
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
[console_scripts]
|
|
2
|
+
intelmq.bots.collectors.certat.blackkite.collector = intelmq_extensions.bots.collectors.blackkite.collector:BOT.run
|
|
3
|
+
intelmq.bots.collectors.certat.disp.collector = intelmq_extensions.bots.collectors.disp.collector:BOT.run
|
|
4
|
+
intelmq.bots.collectors.certat.xmpp.collector = intelmq_extensions.bots.collectors.xmpp.collector:BOT.run
|
|
5
|
+
intelmq.bots.experts.certat.certat_contact_intern.expert = intelmq_extensions.bots.experts.certat_contact_intern.expert:BOT.run
|
|
6
|
+
intelmq.bots.experts.certat.copy_extra.expert = intelmq_extensions.bots.experts.copy_extra.expert:BOT.run
|
|
7
|
+
intelmq.bots.experts.certat.event_group_splitter.expert = intelmq_extensions.bots.experts.event_group_splitter.expert:BOT.run
|
|
8
|
+
intelmq.bots.experts.certat.event_splitter.expert = intelmq_extensions.bots.experts.event_splitter.expert:BOT.run
|
|
9
|
+
intelmq.bots.experts.certat.squelcher.expert = intelmq_extensions.bots.experts.squelcher.expert:BOT.run
|
|
10
|
+
intelmq.bots.experts.certat.vulnerability_lookup.expert = intelmq_extensions.bots.experts.vulnerability_lookup.expert:BOT.run
|
|
11
|
+
intelmq.bots.outputs.certat.mattermost.output = intelmq_extensions.bots.outputs.mattermost.output:BOT.run
|
|
12
|
+
intelmq.bots.outputs.certat.to_logs.output = intelmq_extensions.bots.outputs.to_logs.output:BOT.run
|
|
13
|
+
intelmq.bots.outputs.certat.xmpp.output = intelmq_extensions.bots.outputs.xmpp.output:BOT.run
|
|
14
|
+
intelmq.bots.parsers.certat.blackkite.parser = intelmq_extensions.bots.parsers.blackkite.parser:BOT.run
|
|
15
|
+
intelmq.bots.parsers.certat.disp.parser = intelmq_extensions.bots.parsers.disp.parser:BOT.run
|
|
16
|
+
intelmq.bots.parsers.certat.malwaredomains.parser = intelmq_extensions.bots.parsers.malwaredomains.parser:BOT.run
|
|
17
|
+
intelmq_extensions.bots.collectors.blackkite.collector = intelmq_extensions.bots.collectors.blackkite.collector:BOT.run
|
|
18
|
+
intelmq_extensions.bots.collectors.disp.collector = intelmq_extensions.bots.collectors.disp.collector:BOT.run
|
|
19
|
+
intelmq_extensions.bots.collectors.xmpp.collector = intelmq_extensions.bots.collectors.xmpp.collector:BOT.run
|
|
20
|
+
intelmq_extensions.bots.experts.certat_contact_intern.expert = intelmq_extensions.bots.experts.certat_contact_intern.expert:BOT.run
|
|
21
|
+
intelmq_extensions.bots.experts.copy_extra.expert = intelmq_extensions.bots.experts.copy_extra.expert:BOT.run
|
|
22
|
+
intelmq_extensions.bots.experts.event_group_splitter.expert = intelmq_extensions.bots.experts.event_group_splitter.expert:BOT.run
|
|
23
|
+
intelmq_extensions.bots.experts.event_splitter.expert = intelmq_extensions.bots.experts.event_splitter.expert:BOT.run
|
|
24
|
+
intelmq_extensions.bots.experts.squelcher.expert = intelmq_extensions.bots.experts.squelcher.expert:BOT.run
|
|
25
|
+
intelmq_extensions.bots.experts.vulnerability_lookup.expert = intelmq_extensions.bots.experts.vulnerability_lookup.expert:BOT.run
|
|
26
|
+
intelmq_extensions.bots.outputs.mattermost.output = intelmq_extensions.bots.outputs.mattermost.output:BOT.run
|
|
27
|
+
intelmq_extensions.bots.outputs.to_logs.output = intelmq_extensions.bots.outputs.to_logs.output:BOT.run
|
|
28
|
+
intelmq_extensions.bots.outputs.xmpp.output = intelmq_extensions.bots.outputs.xmpp.output:BOT.run
|
|
29
|
+
intelmq_extensions.bots.parsers.blackkite.parser = intelmq_extensions.bots.parsers.blackkite.parser:BOT.run
|
|
30
|
+
intelmq_extensions.bots.parsers.disp.parser = intelmq_extensions.bots.parsers.disp.parser:BOT.run
|
|
31
|
+
intelmq_extensions.bots.parsers.malwaredomains.parser = intelmq_extensions.bots.parsers.malwaredomains.parser:BOT.run
|
|
32
|
+
intelmqcli = intelmq_extensions.cli.intelmqcli:main
|
|
33
|
+
intelmqcli_create_reports = intelmq_extensions.cli.create_reports:main
|