{"adoption": {"forks": 141, "observed_at": "2026-08-28T04:04:24.543478+00:00", "stars": 1332}, "canonical_url": "https://ross.abutalabs.com/products/monkey365", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Monkey365 is an open-source security assessment tool for Microsoft 365, Azure, and Microsoft Entra ID. It helps security professionals identify misconfigurations, review cloud security posture, and evaluate environments against industry security best practices and compliance standards.", "domain": ["security", "cloud-computing", "penetration-testing"], "enriched": true, "function": ["security", "vulnerability-scanning", "monitoring", "developer-tools"], "health_score": 98, "homepage": "https://silverhack.github.io/monkey365/", "language": "PowerShell", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["silverhack/monkey365"], "name": "silverhack/monkey365", "platform": ["windows", "cross-platform", "cli"], "pushed_at": "2026-08-07T11:25:23+00:00", "repo": "silverhack/monkey365", "stars": 1332, "tags": ["microsoft-365", "azure", "entra-id", "cloud-security-posture", "cis-benchmark", "compliance", "powershell-module", "security-assessment", "exchange-online", "sharepoint-online", "microsoft-teams", "purview", "devops"], "topics": ["azure", "azuread", "microsoft365", "microsoft365-compliance", "office365", "powershell-module", "security", "security-tools", "exchangeonline", "purview", "sharepoint-online", "azure-security-audit", "azuread-scanner", "azuread-security", "entraid", "entraid-assessments", "microsoft365-security", "microsoft365-scanner", "cis-benchmark"], "urls": [], "use_cases": ["audit my Microsoft 365 tenant for security misconfigurations", "run a CIS benchmark compliance check on Azure subscriptions", "assess Entra ID security posture before an audit", "generate an HTML report of Exchange Online and SharePoint security issues", "review Microsoft Teams and Purview configuration against best practices", "automate cloud security posture assessments with JSON output", "check M365 tenant configuration as an incident responder"], "what_it_is": "Monkey365 is an open-source PowerShell-based security assessment framework for Microsoft 365, Azure, and Microsoft Entra ID. It collects tenant configuration data, evaluates it against security best practices and CIS benchmarks, and generates HTML, JSON, and CSV reports of misconfigurations.", "when_to_avoid": ["you need security scanning for AWS, GCP, or non-Microsoft clouds", "you want continuous runtime monitoring or intrusion detection rather than point-in-time configuration reviews", "you need a GUI-driven vulnerability scanner rather than a PowerShell CLI", "your environment has no PowerShell availability (e.g., non-Windows without PowerShell Core installed)"], "when_to_choose": ["you need a self-contained PowerShell tool with no dependency on Az, Microsoft Graph SDK, or ExchangeOnlineManagement modules", "you want consolidated M365, Azure, and Entra ID assessments in a single report", "you need CIS benchmark and compliance checks for Microsoft cloud workloads", "you support multiple authentication methods including service principals and certificates for unattended scans"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/monkey365", "repo": "silverhack/monkey365", "role": "main", "score": 97}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.543478+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:45:13.951517+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1eb473b3b08ac319372f45e1690756d7593d780588203054c67ceed98a59672b", "fetched_at": "2026-08-28T04:04:24.543478+00:00", "kind": "readme", "missing": false, "url": "https://github.com/silverhack/monkey365"}, {"content_hash": "9a42775cf7cca29681514675ea597ca5886bd4efcec08acd36f100c762ab49c8", "fetched_at": "2026-08-29T12:04:15.289600+00:00", "kind": "homepage", "missing": false, "url": "https://silverhack.github.io/monkey365/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.543478+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:45:13.951517+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1eb473b3b08ac319372f45e1690756d7593d780588203054c67ceed98a59672b", "fetched_at": "2026-08-28T04:04:24.543478+00:00", "kind": "readme", "missing": false, "url": "https://github.com/silverhack/monkey365"}, {"content_hash": "9a42775cf7cca29681514675ea597ca5886bd4efcec08acd36f100c762ab49c8", "fetched_at": "2026-08-29T12:04:15.289600+00:00", "kind": "homepage", "missing": false, "url": "https://silverhack.github.io/monkey365/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:45:13.951517+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1eb473b3b08ac319372f45e1690756d7593d780588203054c67ceed98a59672b", "fetched_at": "2026-08-28T04:04:24.543478+00:00", "kind": "readme", "missing": false, "url": "https://github.com/silverhack/monkey365"}, {"content_hash": "9a42775cf7cca29681514675ea597ca5886bd4efcec08acd36f100c762ab49c8", "fetched_at": "2026-08-29T12:04:15.289600+00:00", "kind": "homepage", "missing": false, "url": "https://silverhack.github.io/monkey365/"}], "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:04:24.543478+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.543478+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.543478+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:45:13.951517+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1eb473b3b08ac319372f45e1690756d7593d780588203054c67ceed98a59672b", "fetched_at": "2026-08-28T04:04:24.543478+00:00", "kind": "readme", "missing": false, "url": "https://github.com/silverhack/monkey365"}, {"content_hash": "9a42775cf7cca29681514675ea597ca5886bd4efcec08acd36f100c762ab49c8", "fetched_at": "2026-08-29T12:04:15.289600+00:00", "kind": "homepage", "missing": false, "url": "https://silverhack.github.io/monkey365/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.543478+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.543478+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:45:13.951517+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1eb473b3b08ac319372f45e1690756d7593d780588203054c67ceed98a59672b", "fetched_at": "2026-08-28T04:04:24.543478+00:00", "kind": "readme", "missing": false, "url": "https://github.com/silverhack/monkey365"}, {"content_hash": "9a42775cf7cca29681514675ea597ca5886bd4efcec08acd36f100c762ab49c8", "fetched_at": "2026-08-29T12:04:15.289600+00:00", "kind": "homepage", "missing": false, "url": "https://silverhack.github.io/monkey365/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.543478+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.543478+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.543478+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:45:13.951517+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1eb473b3b08ac319372f45e1690756d7593d780588203054c67ceed98a59672b", "fetched_at": "2026-08-28T04:04:24.543478+00:00", "kind": "readme", "missing": false, "url": "https://github.com/silverhack/monkey365"}, {"content_hash": "9a42775cf7cca29681514675ea597ca5886bd4efcec08acd36f100c762ab49c8", "fetched_at": "2026-08-29T12:04:15.289600+00:00", "kind": "homepage", "missing": false, "url": "https://silverhack.github.io/monkey365/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.543478+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.543478+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:45:13.951517+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1eb473b3b08ac319372f45e1690756d7593d780588203054c67ceed98a59672b", "fetched_at": "2026-08-28T04:04:24.543478+00:00", "kind": "readme", "missing": false, "url": "https://github.com/silverhack/monkey365"}, {"content_hash": "9a42775cf7cca29681514675ea597ca5886bd4efcec08acd36f100c762ab49c8", "fetched_at": "2026-08-29T12:04:15.289600+00:00", "kind": "homepage", "missing": false, "url": "https://silverhack.github.io/monkey365/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:45:13.951517+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1eb473b3b08ac319372f45e1690756d7593d780588203054c67ceed98a59672b", "fetched_at": "2026-08-28T04:04:24.543478+00:00", "kind": "readme", "missing": false, "url": "https://github.com/silverhack/monkey365"}, {"content_hash": "9a42775cf7cca29681514675ea597ca5886bd4efcec08acd36f100c762ab49c8", "fetched_at": "2026-08-29T12:04:15.289600+00:00", "kind": "homepage", "missing": false, "url": "https://silverhack.github.io/monkey365/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:45:13.951517+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1eb473b3b08ac319372f45e1690756d7593d780588203054c67ceed98a59672b", "fetched_at": "2026-08-28T04:04:24.543478+00:00", "kind": "readme", "missing": false, "url": "https://github.com/silverhack/monkey365"}, {"content_hash": "9a42775cf7cca29681514675ea597ca5886bd4efcec08acd36f100c762ab49c8", "fetched_at": "2026-08-29T12:04:15.289600+00:00", "kind": "homepage", "missing": false, "url": "https://silverhack.github.io/monkey365/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:45:13.951517+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1eb473b3b08ac319372f45e1690756d7593d780588203054c67ceed98a59672b", "fetched_at": "2026-08-28T04:04:24.543478+00:00", "kind": "readme", "missing": false, "url": "https://github.com/silverhack/monkey365"}, {"content_hash": "9a42775cf7cca29681514675ea597ca5886bd4efcec08acd36f100c762ab49c8", "fetched_at": "2026-08-29T12:04:15.289600+00:00", "kind": "homepage", "missing": false, "url": "https://silverhack.github.io/monkey365/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 96}, "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": 1594, "days_push": 26, "days_rel": 26, "gap_med": 27.5, "n_releases_24m": 19}, "score": 97, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}