-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathvulnerability-disclosure.cedar
More file actions
67 lines (61 loc) · 1.92 KB
/
vulnerability-disclosure.cedar
File metadata and controls
67 lines (61 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// ═══════════════════════════════════════════════════════════
// Cedar Policy: Vulnerability Disclosure Governance
// ═══════════════════════════════════════════════════════════
//
// Governs what an AI security agent (e.g., Claude Mythos)
// is allowed to do when it discovers a vulnerability.
//
// The agent CAN: scan code, report findings internally
// The agent CANNOT: disclose externally, deploy patches,
// modify production without human approval
//
// Every action is receipt-signed for audit trail.
// ═══════════════════════════════════════════════════════════
// Allow scanning and internal reporting
permit(
principal,
action == Action::"scan_code",
resource
);
permit(
principal,
action == Action::"report_finding",
resource
) when {
context.report_destination == "internal"
};
// Block external disclosure without human approval
forbid(
principal,
action == Action::"disclose_vulnerability",
resource
) when {
context.disclosure_target == "external" &&
context.human_approval != true
};
// Block patch deployment to production
forbid(
principal,
action == Action::"deploy_patch",
resource
) when {
context.environment == "production" &&
context.human_approval != true
};
// Block any action on critical severity without escalation
forbid(
principal,
action == Action::"report_finding",
resource
) when {
context.severity == "critical" &&
context.escalated_to_human != true
};
// Rate limit scanning to prevent resource exhaustion
forbid(
principal,
action == Action::"scan_code",
resource
) when {
context.daily_scan_count >= 1000
};