{"adoption": {"forks": 294, "observed_at": "2026-08-28T04:07:31.937808+00:00", "stars": 2950}, "canonical_url": "https://ross.abutalabs.com/products/attacksurfaceanalyzer", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Attack Surface Analyzer can help you analyze your operating system's security configuration for changes during software installation.", "domain": ["security", "operating-systems"], "enriched": true, "function": ["security", "vulnerability-scanning", "monitoring"], "health_score": 94, "homepage": null, "language": "C#", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["microsoft/AttackSurfaceAnalyzer"], "name": "microsoft/AttackSurfaceAnalyzer", "platform": ["windows", "cross-platform", "cli", "dotnet"], "pushed_at": "2026-08-01T22:59:32+00:00", "repo": "microsoft/AttackSurfaceAnalyzer", "stars": 2950, "tags": ["attack-surface", "security-audit", "diff-analysis", "system-hardening", "microsoft", "devops", "linux", "macos"], "topics": ["security-tools", "attack-surface"], "urls": [], "use_cases": ["analyze attack surface changes after installing software", "audit security configuration changes on windows", "diff system state before and after an installer runs", "evaluate risk of third-party software installation", "find security misconfigurations introduced by elevated installs", "scan os security posture for it audit"], "what_it_is": "Attack Surface Analyzer is a Microsoft open-source security tool that scans an operating system's security configuration before and after software installation and diffs the results. It surfaces potential vulnerabilities and misconfigurations introduced by installers or system changes, with a CLI and a Blazor GUI.", "when_to_avoid": ["you need continuous runtime intrusion detection rather than before/after diffing", "you need network-wide scanning rather than single-host analysis", "you need a lightweight agentless scanner on systems without .NET"], "when_to_choose": ["you need to compare system security configuration before and after software installation", "you are a DevOps engineer validating what your installer changes", "you are a security auditor assessing third-party software risk"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/attacksurfaceanalyzer", "repo": "microsoft/AttackSurfaceAnalyzer", "role": "main", "score": 82}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.937808+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:32:42.771453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2924ef48cee24de9de7e25fecfa79b2b051ebd92f74a357cc03419e6a18110af", "fetched_at": "2026-08-28T04:07:31.937808+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/AttackSurfaceAnalyzer"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.937808+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:32:42.771453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2924ef48cee24de9de7e25fecfa79b2b051ebd92f74a357cc03419e6a18110af", "fetched_at": "2026-08-28T04:07:31.937808+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/AttackSurfaceAnalyzer"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:32:42.771453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2924ef48cee24de9de7e25fecfa79b2b051ebd92f74a357cc03419e6a18110af", "fetched_at": "2026-08-28T04:07:31.937808+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/AttackSurfaceAnalyzer"}], "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:07:31.937808+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.937808+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.937808+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:32:42.771453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2924ef48cee24de9de7e25fecfa79b2b051ebd92f74a357cc03419e6a18110af", "fetched_at": "2026-08-28T04:07:31.937808+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/AttackSurfaceAnalyzer"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.937808+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.937808+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:32:42.771453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2924ef48cee24de9de7e25fecfa79b2b051ebd92f74a357cc03419e6a18110af", "fetched_at": "2026-08-28T04:07:31.937808+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/AttackSurfaceAnalyzer"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.937808+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.937808+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.937808+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:32:42.771453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2924ef48cee24de9de7e25fecfa79b2b051ebd92f74a357cc03419e6a18110af", "fetched_at": "2026-08-28T04:07:31.937808+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/AttackSurfaceAnalyzer"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.937808+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:31.937808+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:32:42.771453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2924ef48cee24de9de7e25fecfa79b2b051ebd92f74a357cc03419e6a18110af", "fetched_at": "2026-08-28T04:07:31.937808+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/AttackSurfaceAnalyzer"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:32:42.771453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2924ef48cee24de9de7e25fecfa79b2b051ebd92f74a357cc03419e6a18110af", "fetched_at": "2026-08-28T04:07:31.937808+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/AttackSurfaceAnalyzer"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:32:42.771453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2924ef48cee24de9de7e25fecfa79b2b051ebd92f74a357cc03419e6a18110af", "fetched_at": "2026-08-28T04:07:31.937808+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/AttackSurfaceAnalyzer"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:32:42.771453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2924ef48cee24de9de7e25fecfa79b2b051ebd92f74a357cc03419e6a18110af", "fetched_at": "2026-08-28T04:07:31.937808+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/AttackSurfaceAnalyzer"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 100, "rhythm": 55}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2757, "days_push": 32, "days_rel": 222, "gap_med": 88, "n_releases_24m": 6}, "score": 82, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}