Skip to main content

risk-assessment

Security risk identification and analysis

Quellinformationen

Repository
ffsshhttiikk/opencode-agents-skills
Letzte Quellaktivität
28. Februar 2026 um 22:54
Erkannte Sprache von SKILL.md
Englisch
Sterne
3
Forks
2

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
risk-assessment
description
Security risk identification and analysis
license
MIT
compatibility
opencode
metadata
{"audience":"developers","category":"security"}
## What I do - Identify and categorize security risks - Assess likelihood and impact of threats - Prioritize risks for remediation - Recommend mitigation strategies - Track risk over time - Quantify risk in business terms ## When to use me When evaluating security posture, planning security improvements, or conducting risk assessments for compliance. ## Risk Assessment Framework ### Risk Model ```python from enum import Enum from datetime import datetime class Likelihood(Enum): RARE = 1 UNLIKELY = 2 POSSIBLE = 3 LIKELY = 4 CERTAIN = 5 class Impact(Enum): NEGLIGIBLE = 1 MINOR = 2 MODERATE = 3 MAJOR = 4 CATASTROPHIC = 5 class RiskLevel(Enum): LOW = "low" MEDIUM = "medium" HIGH = "high" CRITICAL = "critical" class Risk: def __init__(self, id: str, name: str, description: str): self.id = id self.name = name self.description = description self.likelihood = None self.impact = None self.current_controls = [] self.residual_risk = None self.treated_risk = None def calculate_risk_level(self) -> RiskLevel: score = self.likelihood.value * self.impact.value if score >= 16: return RiskLevel.CRITICAL elif score >= 10: return RiskLevel.HIGH elif score >= 5: return RiskLevel.MEDIUM else: return RiskLevel.LOW def calculate_residual_risk(self) -> int: """Risk after current controls""" base_score = self.likelihood.value * self.impact.value control_effectiveness = sum(c.effectiveness for c in self.current_controls) reduction = min(control_effectiveness * 2, 80) # Max 80% reduction return int(base_score * (100 - reduction) / 100) ``` ### Risk Assessment Process ```python class RiskAssessment: def __init__(self, name: str): self.name = name self.created_at = datetime.now() self.risks = [] self.assets = [] def add_asset(self, asset_id: str, name: str, value: str, classification: str): """Register an asset to protect""" self.assets.append({ "id": asset_id, "name": name, "value": value, "classification": classification, "dependencies": [] }) def identify_risks(self) -> list: """Systematic risk identification""" risk_categories = [ "Physical Security", "Network Security", "Application Security", "Data Security", "Operational Security", "Business Continuity" ] for category in risk_categories: risks = self._identify_category_risks(category) self.risks.extend(risks) return self.risks def _identify_category_risks(self, category: str) -> list: """Category-specific risk identification""" templates = { "Application Security": [ ("R01", "SQL Injection", "Unsanitized database queries"), ("R02", "XSS Attack", "Unescaped user output"), ("R03", "CSRF", "Missing token validation"), ("R04", "Authentication Bypass", "Weak auth mechanisms"), ], "Data Security": [ ("R05", "Data Breach", "Unauthorized data access"), ("R06", "Data Loss", "Accidental or malicious deletion"), ("R07", "Data Exfiltration", "Unauthorized data transfer"), ] } risks = [] for risk_id, name, desc in templates.get(category, []): risk = Risk(risk_id, name, desc) risks.append(risk) return risks def assess_risk(self, risk_id: str, likelihood: Likelihood, impact: Impact): """Assess individual risk""" for risk in self.risks: if risk.id == risk_id: risk.likelihood = likelihood risk.impact = impact risk.residual_risk = risk.calculate_residual_risk() return risk raise ValueError(f"Risk {risk_id} not found") def prioritize_risks(self) -> list: """Sort risks by severity""" return sorted(self.risks, key=lambda r: r.calculate_risk_level().value, reverse=True) ``` ### Risk Treatment ```python class RiskTreatment: def __init__(self): self.treatments = [] def recommend_treatment(self, risk: Risk) -> dict: """Recommend mitigation strategy""" risk_level = risk.calculate_risk_level() if risk_level == RiskLevel.CRITICAL: treatment = "mitigate" timeline = "immediate" options = [ "Implement preventive controls", "Deploy detection mechanisms", "Transfer risk through insurance" ] elif risk_level == RiskLevel.HIGH: treatment = "mitigate" timeline = "within 30 days" options = [ "Enhance existing controls", "Add monitoring", "Implement compensating controls" ] elif risk_level == RiskLevel.MEDIUM: treatment = "accept" # with monitoring timeline = "within 90 days" options = [ "Accept with monitoring", "Implement partial mitigation" ] else: treatment = "accept" timeline = "as scheduled" options = ["Accept risk"] return { "risk_id": risk.id, "recommended_treatment": treatment, "timeline": timeline, "options": options, "cost_benefit": self._calculate_cost_benefit(risk, options) } def _calculate_cost_benefit(self, risk: Risk, options: list) -> dict: """Analyze cost vs benefit of treatment""" annual_loss_expectancy = self._calculate_ALE(risk) return { "annual_loss_expectancy": annual_loss_expectancy, "mitigation_cost": 0, # Calculate actual cost "roi": 0 # Return on investment } def _calculate_ALE(self, risk: Risk) -> int: """Annual Loss Expectancy = Likelihood * Impact""" return risk.likelihood.value * risk.impact.value * 10000 ``` ### Continuous Risk Monitoring ```python class RiskMonitor: def __init__(self): self.risk_register = {} def track_risk(self, risk: Risk): """Track risk over time""" if risk.id not in self.risk_register: self.risk_register[risk.id] = [] self.risk_register[risk.id].append({ "timestamp": datetime.now(), "likelihood": risk.likelihood, "impact": risk.impact, "residual_risk": risk.residual_risk, "controls": risk.current_controls }) def detect_risk_change(self, risk_id: str) -> dict: """Detect significant risk changes""" history = self.risk_register.get(risk_id, []) if len(history) < 2: return {"changed": False} current = history[-1] previous = history[-2] if current["residual_risk"] > previous["residual_risk"] * 1.2: return { "changed": True, "direction": "increasing", "delta": current["residual_risk"] - previous["residual_risk"] } return {"changed": False} def generate_risk_report(self) -> dict: """Generate risk status report""" return { "total_risks": len(self.risk_register), "critical_risks": 0, "high_risks": 0, "risk_trends": "stable", "recommendations": [] } ```
Auf GitHub ansehen