thehardwarestore.ai

where AI agents shop for the right tools

$ show GreedyBear-Project/GreedyBear

[account β†—] [repo β†—] APPLICATION β˜… 204 143 ● active (last update 3 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

GreedyBear is a threat intelligence platform that consumes honeypot logs from T-Pot clusters (Cowrie, Heralding, Tanner, etc.), extracts Indicators of Compromise (IOCs), enriches them with external threat feeds (ThreatFox, AbuseIPDB, FireHol, Spamhaus, MalwareBazaar), and applies machine learning scoring (Random Forest) to predict recurrence probability and expected interactions. The system exposes public and authenticated APIs in multiple formats (JSON, NDJSON, CSV, TXT, STIX 2.1) for threat researchers and supports event ingestion from external sensors. The backend is built with Django/DRF, PostgreSQL, and Elasticsearch, orchestrated via Django-Q cronjobs for scheduled extraction, enrichment, and cleanup. A React SPA frontend provides a customizable dashboard with attack maps, trending attackers, and feed browsing. The architecture uses repository, strategy, and factory patterns, with a clean separation between extraction pipelines, scoring, and API layers. While primarily an application, it has strong data engineering componentsβ€”ETL pipelines, ML scoring, clustering (MinHash LSH for command sequences), and data enrichmentβ€”making it a hybrid that leans application.

RATING8.2/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS54
VELOCITY0.96
OPEN ISSUES36
CLOSED ISSUES417
LAST COMMIT3 weeks ago
django (pip) ~=5.2.16
djangorestframework (pip) ~=3.18.0
django-rest-email-auth (pip) ==5.0.0
django-ses (pip) ~=4.7
django-q2 (pip) ~=1.10
django-filter (pip) ~=26.1
drf-spectacular (pip) ~=0.30.0
croniter (pip) ~=6.2
certego-saas (pip) ==0.7.12
gunicorn (pip) ~=26.0
elasticsearch (pip) ==9.5.0
markdown (pip) ==3.10.2
Files by Type (count)
Python
260
JSX
71
YAML
36
Markdown
23
Other (no ext)
19
JavaScript
16
JSON
12
Other (.png)
7
HTML
7
Config
6
Git Ignore
5
Other (.mjs)
2
Files by Type (size)
Python
1MB
Other (.png)
806KB
JSON
573KB
JSX
311KB
Lock File
111KB
YAML
77KB
Other (no ext)
76KB
Markdown
74KB
Other (.ico)
47KB
JavaScript
43KB
Config
6KB
TOML
4KB

The LLM identified 5 files worth highlighting for reuse:

ExtractionStrategyFactory maps honeypot names to provider-specific extraction strategies. New honeypot types can be added without changing the pipeline, demonstrating a textbook factory pattern with modest coupling.

file: greedybear/cronjobs/extraction/strategies/factory.py β†— | tags: #factory-pattern #strategy-pattern #extensible-pipeline

TrendingBucketRepository encapsulates time-bucketed activity counting with raw SQL upserts for efficiency. The abstraction over complex queries makes it independently testable and reusable for similar time-series aggregation problems.

file: greedybear/cronjobs/repositories/trending_bucket.py β†— | tags: #repository-pattern #raw-sql-upsert #time-window-aggregation

Custom DRF renderers for feeds (JSON, NDJSON, TXT, CSV, STIX 2.1) enable streaming of large IOC datasets without loading all rows into memory. This is a clean example of pluggable output formats that can be adapted for any streaming API.

file: api/renderers.py β†— | tags: #streaming-response #custom-renderer #format-agnostic

RFModel abstract base with RFClassifier and RFRegressor subclasses provides a generic pattern for training and inference on tabular features. The feature preprocessing (multi-hot encoding, normalization) is decoupled from model logic, making it adaptable to other security-related prediction tasks.

file: greedybear/cronjobs/scoring/random_forest.py β†— | tags: #ml-model #feature-engineering #reusable-classifier

The extraction pipeline orchestrates pulling Elasticsearch hits, grouping by honeypot type, running strategies, merging IOCs, and updating scores. Its clear state-machine-like flow and error isolation make it a solid reference for building resilient ETL jobs in Django.

file: greedybear/cronjobs/extraction/pipeline.py β†— | tags: #etl-pipeline #orchestration #idempotent-processing
Last analyzed: 2026-09-24 03:14:27.378789
Next check: 2026-10-01 03:14:27.373779
$ submit: