{"adoption": {"forks": 828, "observed_at": "2026-08-28T04:09:55.708727+00:00", "stars": 7076}, "canonical_url": "https://ross.abutalabs.com/products/monkey", "card": {"archived": false, "artifact_type": "application", "description": "Infection Monkey - An open-source adversary emulation platform", "domain": ["security", "penetration-testing", "networking"], "enriched": true, "function": ["penetration-testing", "security", "networking", "monitoring"], "health_score": 35, "homepage": "https://www.guardicore.com/infectionmonkey/", "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["guardicore/monkey"], "name": "guardicore/monkey", "platform": ["self-hosted", "python"], "pushed_at": "2025-05-01T13:34:05+00:00", "repo": "guardicore/monkey", "stars": 7076, "tags": ["adversary-emulation", "breach-attack-simulation", "network-worm-simulation", "lateral-movement", "security-posture", "linux", "docker"], "topics": ["penetration-testing", "security-tools", "security-automation", "infection-monkey", "adversary-emulation"], "urls": [], "use_cases": ["test whether my security controls detect lateral movement", "simulate ransomware propagation safely in my network", "run a breach and attack simulation to validate defenses", "find unpatched machines an attacker could pivot through", "measure my network's resilience to worm-like malware", "verify detection of credential theft and exploitation attempts"], "what_it_is": "Infection Monkey is an open-source adversary emulation platform that simulates malware-like self-propagation across a network to test security controls. It consists of a configurable worm agent and a centralized command-and-control server (Monkey Island) for controlling and visualizing simulations.", "when_to_avoid": ["you need a full red-team toolkit with manual exploitation and C2 frameworks like Metasploit or Cobalt Strike", "you want passive vulnerability scanning rather than active attack simulation", "you cannot authorize intrusive testing on the target network"], "when_to_choose": ["you want empirical, automated validation of detection and prevention controls against worm-like threats", "you need a safe, self-propagating agent to test segmentation and lateral-movement defenses", "you want a centralized dashboard to visualize how far an attack could spread"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/monkey", "repo": "guardicore/monkey", "role": "main", "score": 31}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:55.708727+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:40:12.754999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9edbe6469c6002e32d91ccfac7f2e84ebd404c62ebd7d39a06c95ac9708335e4", "fetched_at": "2026-08-28T04:09:55.708727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guardicore/monkey"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:55.708727+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:40:12.754999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9edbe6469c6002e32d91ccfac7f2e84ebd404c62ebd7d39a06c95ac9708335e4", "fetched_at": "2026-08-28T04:09:55.708727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guardicore/monkey"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:40:12.754999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9edbe6469c6002e32d91ccfac7f2e84ebd404c62ebd7d39a06c95ac9708335e4", "fetched_at": "2026-08-28T04:09:55.708727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guardicore/monkey"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:55.708727+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:55.708727+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:55.708727+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:40:12.754999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9edbe6469c6002e32d91ccfac7f2e84ebd404c62ebd7d39a06c95ac9708335e4", "fetched_at": "2026-08-28T04:09:55.708727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guardicore/monkey"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:55.708727+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:55.708727+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:40:12.754999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9edbe6469c6002e32d91ccfac7f2e84ebd404c62ebd7d39a06c95ac9708335e4", "fetched_at": "2026-08-28T04:09:55.708727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guardicore/monkey"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:55.708727+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:55.708727+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:55.708727+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:40:12.754999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9edbe6469c6002e32d91ccfac7f2e84ebd404c62ebd7d39a06c95ac9708335e4", "fetched_at": "2026-08-28T04:09:55.708727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guardicore/monkey"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:55.708727+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:55.708727+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:40:12.754999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9edbe6469c6002e32d91ccfac7f2e84ebd404c62ebd7d39a06c95ac9708335e4", "fetched_at": "2026-08-28T04:09:55.708727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guardicore/monkey"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:40:12.754999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9edbe6469c6002e32d91ccfac7f2e84ebd404c62ebd7d39a06c95ac9708335e4", "fetched_at": "2026-08-28T04:09:55.708727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guardicore/monkey"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:40:12.754999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9edbe6469c6002e32d91ccfac7f2e84ebd404c62ebd7d39a06c95ac9708335e4", "fetched_at": "2026-08-28T04:09:55.708727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guardicore/monkey"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:40:12.754999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9edbe6469c6002e32d91ccfac7f2e84ebd404c62ebd7d39a06c95ac9708335e4", "fetched_at": "2026-08-28T04:09:55.708727+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guardicore/monkey"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 19, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4021, "days_push": 489, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 31, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}