Commit graph

9 commits

Author SHA1 Message Date
9916ab0732 Add Botvrij.eu domain blocklist source
Downloads the Botvrij.eu public IOC domain list (no API key required),
caches it in-process with a 6h TTL, and flags any registered domain
that appears directly or as a parent of a feed entry.
2026-05-15 21:36:24 +08:00
6b1d2e2540 Extract disabledResult and evidenceEval helpers to reduce boilerplate
Add two shared helpers to source.go and apply them across all sources:
- disabledResult(id, name) replaces the repeated inline SourceResult literal
- evidenceEval(r, severity) replaces the identical Evaluate body in 6 sources
2026-05-15 21:36:24 +08:00
061b5361ca Merge duplicate phishCache/phishTankCache into shared feedCache 2026-05-15 21:36:24 +08:00
229e7a8f02 Add abuse.ch ThreatFox and MalwareBazaar blacklist sources
ThreatFox queries the IOC database for domain indicators (C2 servers,
malware distribution, phishing); MalwareBazaar searches for malware
samples tagged with the domain. Both require a free abuse.ch Auth-Key.
2026-05-15 21:36:24 +08:00
6b08676ec5 Add PhishTank as a new blacklist source 2026-05-15 21:36:24 +08:00
829863e5a0 Add a section on how to obtain API keys 2026-05-15 21:36:24 +08:00
c437339bda Separate observation from evaluation in blacklist sources
Each source's Query() method previously set r.Listed and r.Severity,
embedding verdict logic inside the prober. Evaluation now lives in a
dedicated Evaluate(SourceResult) (bool, string) method per source,
keeping Query() as pure observation.

A package-level EvaluateResult() helper looks up the source by ID and
delegates to its Evaluate method; rules.go, report.go, types.go, and
provider.go all call this instead of reading pre-set r.Listed/r.Severity
values. An unknownSource sentinel handles results whose source is no
longer registered.
2026-05-15 18:04:17 +08:00
01909debad Add CI/CD pipeline
All checks were successful
continuous-integration/drone/push Build is passing
2026-05-10 19:01:21 +08:00
66cf1fc9aa Initial commit v0.1.0 2026-04-26 19:44:05 +07:00