fangfrisch 1.9.0.dev1__tar.gz → 1.9.0.dev3__tar.gz
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.
- {fangfrisch-1.9.0.dev1/fangfrisch.egg-info → fangfrisch-1.9.0.dev3}/PKG-INFO +1 -1
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/docs/combined.conf +28 -1
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/docs/example.conf +3 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/docs/fangfrisch.adoc +41 -8
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/docs/fangfrisch.pdf +5052 -3049
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/docs/index.html +194 -23
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/docs/internal.conf +27 -1
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/docs/usage.txt +1 -1
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch/__init__.py +1 -1
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch/config/__init__.py +1 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch/config/config.py +14 -5
- fangfrisch-1.9.0.dev3/fangfrisch/config/fangfrischnews.py +36 -0
- fangfrisch-1.9.0.dev3/fangfrisch/config/interserver.py +39 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch/refresh.py +1 -1
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3/fangfrisch.egg-info}/PKG-INFO +1 -1
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch.egg-info/SOURCES.txt +2 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/setup.cfg +1 -1
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/tests/test_config.py +16 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/LICENSE +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/MANIFEST.in +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/README.rst +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/docs/Makefile +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch/__main__.py +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch/config/malwarepatrol.py +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch/config/sanesecurity.py +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch/config/securiteinfo.py +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch/config/urlhaus.py +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch/db.py +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch/download.py +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch/dump.py +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch/log.py +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch/util.py +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch.egg-info/dependency_links.txt +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch.egg-info/entry_points.txt +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch.egg-info/requires.txt +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/fangfrisch.egg-info/top_level.txt +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/pyproject.toml +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/tests/test_db.py +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/tests/test_download.py +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/tests/test_dump.py +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/tests/test_log.py +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/tests/test_refresh.py +0 -0
- {fangfrisch-1.9.0.dev1 → fangfrisch-1.9.0.dev3}/tests/test_util.py +0 -0
|
@@ -10,6 +10,31 @@ local_directory = /var/lib/clamav
|
|
|
10
10
|
on_update_exec = clamdscan --reload
|
|
11
11
|
on_update_timeout = 42
|
|
12
12
|
|
|
13
|
+
[fangfrischnews]
|
|
14
|
+
interval = 12h
|
|
15
|
+
local_directory = /tmp
|
|
16
|
+
max_size = 50KB
|
|
17
|
+
script = /path/to/script/fangfrisch-has-news.sh
|
|
18
|
+
on_update_exec = sh -c "[ ! -r ${script} ] || ${script} ${local_directory}"
|
|
19
|
+
prefix = http://mirror.sentries.org/fangfrisch/
|
|
20
|
+
url_alerts = ${prefix}fangfrisch_alerts.txt
|
|
21
|
+
url_news = ${prefix}fangfrisch_news.txt
|
|
22
|
+
|
|
23
|
+
[interserver]
|
|
24
|
+
interval = 1h
|
|
25
|
+
integrity_check = disabled
|
|
26
|
+
max_size = 5MB
|
|
27
|
+
prefix = http://sigs.interserver.net/
|
|
28
|
+
!url_shell_hdb = ${prefix}shell.hdb
|
|
29
|
+
!url_shellb_db = ${prefix}shellb.db
|
|
30
|
+
url_interserver256 = ${prefix}interserver256.hdb
|
|
31
|
+
url_shell_ldb = ${prefix}shell.ldb
|
|
32
|
+
filename_shell_ldb = interservershell.ldb
|
|
33
|
+
url_topline = ${prefix}interservertopline.db
|
|
34
|
+
url_whitelist_fp = ${prefix}whitelist.fp
|
|
35
|
+
filename_whitelist_fp = interserverwhitelist.fp
|
|
36
|
+
enabled = yes
|
|
37
|
+
|
|
13
38
|
[malwarepatrol]
|
|
14
39
|
interval = 1d
|
|
15
40
|
integrity_check = disabled
|
|
@@ -78,7 +103,8 @@ prefix = https://www.securiteinfo.com/get/signatures/${customer_id}/
|
|
|
78
103
|
!url_0hour = ${prefix}securiteinfo0hour.hdb
|
|
79
104
|
!url_old = ${prefix}securiteinfoold.hdb
|
|
80
105
|
!url_securiteinfo_mdb = ${prefix}securiteinfo.mdb
|
|
81
|
-
!
|
|
106
|
+
!url_securiteinfo_pdb = ${prefix}securiteinfo.pdb
|
|
107
|
+
!url_securiteinfo_yara = ${prefix}securiteinfo.yara
|
|
82
108
|
url_android = ${prefix}securiteinfoandroid.hdb
|
|
83
109
|
url_ascii = ${prefix}securiteinfoascii.hdb
|
|
84
110
|
url_html = ${prefix}securiteinfohtml.hdb
|
|
@@ -86,6 +112,7 @@ url_javascript = ${prefix}javascript.ndb
|
|
|
86
112
|
url_pdf = ${prefix}securiteinfopdf.hdb
|
|
87
113
|
url_securiteinfo = ${prefix}securiteinfo.hdb
|
|
88
114
|
url_securiteinfo_ign2 = ${prefix}securiteinfo.ign2
|
|
115
|
+
url_spam_marketing = ${prefix}spam_marketing.ndb
|
|
89
116
|
enabled = yes
|
|
90
117
|
|
|
91
118
|
[urlhaus]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Fangfrisch
|
|
2
2
|
Ralph Seichter <fangfrisch@seichter.de>
|
|
3
|
-
v1.9.0.
|
|
3
|
+
v1.9.0.dev3, {docdate}
|
|
4
4
|
:copyright: © 2020-2024 Ralph Seichter
|
|
5
5
|
:encoding: UTF-8
|
|
6
6
|
:hyphens: en
|
|
@@ -17,6 +17,7 @@ v1.9.0.dev1, {docdate}
|
|
|
17
17
|
Fangfrisch (German for "freshly caught") is a sibling of the https://www.clamav.net[Clam Anti-Virus] freshclam utility.
|
|
18
18
|
It allows downloading virus definition files that are not official ClamAV canon, e.g. from https://sanesecurity.com[Sanesecurity] and https://urlhaus.abuse.ch[URLhaus].
|
|
19
19
|
Fangfrisch was designed with security in mind, to be run by an unprivileged user only.
|
|
20
|
+
For those curious about the development history, a https://github.com/rseichter/fangfrisch/blob/master/CHANGELOG.rst[changelog] is available online.
|
|
20
21
|
|
|
21
22
|
== License
|
|
22
23
|
|
|
@@ -158,23 +159,30 @@ If providers don't respond with content length information, Fangfrisch will log
|
|
|
158
159
|
* *on_update_exec*: If any files were downloaded during a pass, a command can be executed in after the pass finishes.
|
|
159
160
|
No default.
|
|
160
161
|
A typical value is `clamdscan --reload`.
|
|
162
|
+
Starting with Fangfrisch 1.9.0, this option may be overridden in individual sections, permitting per-provider actions.
|
|
161
163
|
* *on_update_timeout*: Timeout for the `on_update_exec` command, in seconds.
|
|
162
164
|
Default: 30.
|
|
165
|
+
This option may also be overridden in individual sections.
|
|
163
166
|
|
|
164
167
|
See https://docs.python.org/3.7/library/configparser.html[here] for details about the configuration parser and extended interpolation.
|
|
165
168
|
<<Semantics>> provides additional information on how configuration options are interpreted.
|
|
166
169
|
|
|
167
170
|
=== Default providers
|
|
168
171
|
|
|
169
|
-
Fangfrisch contains internal defaults for the following providers
|
|
172
|
+
Fangfrisch contains internal defaults for the following providers, listed in alphabetical order:
|
|
170
173
|
|
|
174
|
+
* http://sigs.interserver.net/[InterServer]
|
|
171
175
|
* https://www.malwarepatrol.net[Malwarepatrol]
|
|
172
176
|
* https://sanesecurity.com[Sanesecurity]
|
|
173
177
|
* https://www.securiteinfo.com/services/anti-spam-anti-virus/improve-detection-rate-of-zero-day-malwares-for-clamav.shtml[SecuriteInfo]
|
|
174
178
|
* https://urlhaus.abuse.ch[URLhaus]
|
|
175
179
|
|
|
176
|
-
|
|
177
|
-
|
|
180
|
+
I have also included "Fangfrisch News" (see <<ffnews>>).
|
|
181
|
+
Providers can be enabled by specifiying `enabled = yes` in the desired configuration file sections.
|
|
182
|
+
|
|
183
|
+
IMPORTANT: Please make sure to examine the respective settings for yourself before enabling providers.
|
|
184
|
+
|
|
185
|
+
The defaults may not suit your personal preferences, and some providers require additional configuration, e.g. an access token.
|
|
178
186
|
|
|
179
187
|
----
|
|
180
188
|
include::example.conf[]
|
|
@@ -271,7 +279,7 @@ An example crontab looks like this:
|
|
|
271
279
|
HOME=/var/lib/fangfrisch
|
|
272
280
|
LOG_LEVEL=INFO
|
|
273
281
|
# minute hour day-of-month month day-of-week user command
|
|
274
|
-
*/10 * * * * clamav venv/bin/fangfrisch --conf /etc/fangfrisch.conf refresh
|
|
282
|
+
*/10 * * * * clamav sleep $((RANDOM \% 42)); venv/bin/fangfrisch --conf /etc/fangfrisch.conf refresh
|
|
275
283
|
----
|
|
276
284
|
|
|
277
285
|
== Support
|
|
@@ -330,8 +338,10 @@ See Heather McNamee's blog https://about.gitlab.com/blog/2016/03/03/start-with-a
|
|
|
330
338
|
== Default configuration
|
|
331
339
|
|
|
332
340
|
Fangfrisch contains the following internal configuration settings as defaults.
|
|
333
|
-
|
|
334
|
-
|
|
341
|
+
As a safety measure, all sections are disabled by default.
|
|
342
|
+
Entries with the `!url_` prefix are included for reference only.
|
|
343
|
+
These represent data sources which are not recommended for general use.
|
|
344
|
+
Possible reasons: Some sources have an elevated risk of false positives, are not free to use, or contain legacy data.
|
|
335
345
|
Enabling a section will not enable these specially prefixed entries.
|
|
336
346
|
|
|
337
347
|
----
|
|
@@ -348,13 +358,36 @@ The following effective configuration is the result of combining internal defaul
|
|
|
348
358
|
include::combined.conf[]
|
|
349
359
|
----
|
|
350
360
|
|
|
361
|
+
[[ffnews]]
|
|
362
|
+
[appendix]
|
|
363
|
+
== Fangfrisch News
|
|
364
|
+
|
|
365
|
+
This pseudo provider does not offer antivirus signature files.
|
|
366
|
+
It is only meant for me to pass news about Fangfrisch to you, the user, in lieu of a mailing list.
|
|
367
|
+
Don't expect this to happen on a regular basis.
|
|
368
|
+
I am only thinking about release notifications at this point in time.
|
|
369
|
+
Still, I kindly ask you to please enable this service as you would enable any other provider, by adding the following to your configuration file:
|
|
370
|
+
----
|
|
371
|
+
[fangfrischnews]
|
|
372
|
+
enabled = yes
|
|
373
|
+
# Uncomment/adapt the following to trigger a script in case of news.
|
|
374
|
+
# script = /path/to/script/fangfrisch-has-news.sh
|
|
375
|
+
----
|
|
376
|
+
This will only enable Fangfrisch to occasionally download small text files, nothing more.
|
|
377
|
+
You will not need to read the content, nor will anything else happen, unless you modify the `script` option.
|
|
378
|
+
Here is an example script which you could use to have downloaded news items mailed to you.
|
|
379
|
+
It needs to be readable for the user account running Fangfrisch, and the sender/recipient addresses obviously have to be adapted.
|
|
380
|
+
For your convenience, the latest version of the script can be downloaded https://github.com/rseichter/fangfrisch/blob/master/contrib/process-news.sh[here].
|
|
381
|
+
----
|
|
382
|
+
include::../contrib/process-news.sh[]
|
|
383
|
+
----
|
|
384
|
+
|
|
351
385
|
[[dbstructure]]
|
|
352
386
|
[appendix]
|
|
353
387
|
== Database structure
|
|
354
388
|
|
|
355
389
|
While users can technically access the Fangfrisch backend database directly, its structure and content are considered *private*.
|
|
356
390
|
They may change at any time, without notice.
|
|
357
|
-
Related complaints will be filed under https://en.wikipedia.org/wiki/Somebody_else%27s_problem[SEP].
|
|
358
391
|
|
|
359
392
|
=== Accessing mappings
|
|
360
393
|
|