mirror of
https://github.com/mukul975/Anthropic-Cybersecurity-Skills.git
synced 2026-08-28 04:09:40 +03:00
Production hardening: security fixes, code quality, 724 skills complete
- Fix 25 shell=True subprocess calls with list-based commands - Fix 49 verify=False in defensive skills (env-var override) - Add timeout to 231 HTTP/subprocess/socket calls - Fix 6 SQL injection patterns with whitelist validation - Replace 8 __import__() with standard imports - Remove 701 unused imports across 442 files - Add authorized-testing disclaimers to all offensive skills - Complete 11 incomplete skill directories - Expand 10 stub SKILL.md files with full content - Fix 2 YAML parse errors in frontmatter - Fix 5 pre-existing syntax errors - Convert 22 hardcoded paths/ports to environment variables - Back up 21 redundant skill pairs to .bak - Fix 2 global declaration errors - 724/724 skills with full folder anatomy (SKILL.md + agent.py + api-reference.md + LICENSE) - 0 compile errors across all 724 agent.py files
This commit is contained in:
@@ -17,7 +17,7 @@ def get_graph_token(tenant_id, client_id, client_secret):
|
||||
"client_id": client_id,
|
||||
"client_secret": client_secret,
|
||||
"scope": "https://graph.microsoft.com/.default",
|
||||
})
|
||||
}, timeout=30)
|
||||
resp.raise_for_status()
|
||||
return resp.json()["access_token"]
|
||||
|
||||
@@ -33,7 +33,7 @@ def list_users(token, filter_query=None):
|
||||
params["$filter"] = filter_query
|
||||
users = []
|
||||
while url:
|
||||
resp = requests.get(url, headers=headers, params=params)
|
||||
resp = requests.get(url, headers=headers, params=params, timeout=30)
|
||||
resp.raise_for_status()
|
||||
data = resp.json()
|
||||
users.extend(data.get("value", []))
|
||||
@@ -93,7 +93,7 @@ def get_access_reviews(token):
|
||||
"""List active access reviews from Entra ID Governance."""
|
||||
headers = {"Authorization": f"Bearer {token}"}
|
||||
url = "https://graph.microsoft.com/v1.0/identityGovernance/accessReviews/definitions"
|
||||
resp = requests.get(url, headers=headers)
|
||||
resp = requests.get(url, headers=headers, timeout=30)
|
||||
resp.raise_for_status()
|
||||
reviews = []
|
||||
for r in resp.json().get("value", []):
|
||||
@@ -110,7 +110,7 @@ def check_users_without_mfa(token):
|
||||
"""Identify users without registered MFA methods."""
|
||||
headers = {"Authorization": f"Bearer {token}"}
|
||||
url = "https://graph.microsoft.com/v1.0/reports/authenticationMethods/userRegistrationDetails"
|
||||
resp = requests.get(url, headers=headers, params={"$top": "999"})
|
||||
resp = requests.get(url, headers=headers, params={"$top": "999"}, timeout=30)
|
||||
resp.raise_for_status()
|
||||
no_mfa = []
|
||||
for u in resp.json().get("value", []):
|
||||
|
||||
Reference in New Issue
Block a user