@hoanghainh/komagu 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/README.md +1 -1
- package/assess/lsa/examples/eval-run-4/ground-truth.json +823 -0
- package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/ai-run-stats.json +58 -0
- package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/coverage.json +85 -0
- package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/findings/priv-privilege-001.json +822 -0
- package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/findings/priv-privilege-002.json +393 -0
- package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/findings.json +4477 -0
- package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/mass-assignment.candidates.json +232 -0
- package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-001.json +425 -0
- package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-002.json +333 -0
- package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-003.json +400 -0
- package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-004.json +403 -0
- package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-005.json +398 -0
- package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/routes/routes-006.json +63 -0
- package/assess/lsa/examples/eval-run-4/iter0-gptoss-a/score.json +120 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/ai-run-stats.json +55 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/coverage.json +50 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/findings/priv-privilege-001.json +613 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/findings/priv-privilege-002.json +287 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/findings.json +4870 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/mass-assignment.candidates.json +232 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-001.json +425 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-002.json +333 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-003.json +400 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-004.json +403 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-005.json +398 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/routes/routes-006.json +63 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-a/score.json +107 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/ai-run-stats.json +58 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/coverage.json +92 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/findings/priv-privilege-001.json +645 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/findings/priv-privilege-002.json +222 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/findings.json +4859 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/mass-assignment.candidates.json +232 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-001.json +425 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-002.json +333 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-003.json +400 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-004.json +403 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-005.json +398 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/routes/routes-006.json +63 -0
- package/assess/lsa/examples/eval-run-4/iter1-gptoss-b/score.json +121 -0
- package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/coverage.json +111 -0
- package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/findings/priv-privilege-001.json +6 -0
- package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/findings/priv-privilege-002.json +344 -0
- package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/findings.json +3544 -0
- package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/mass-assignment.candidates.json +232 -0
- package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-001.json +425 -0
- package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-002.json +333 -0
- package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-003.json +400 -0
- package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-004.json +403 -0
- package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-005.json +398 -0
- package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/routes/routes-006.json +63 -0
- package/assess/lsa/examples/eval-run-4/iter1-qwen-a-incomplete/score.json +123 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/ai-run-stats.json +50 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/coverage.json +42 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/findings/priv-privilege-001.json +540 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/findings/priv-privilege-002.json +238 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/findings.json +4383 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/findings.sarif +8729 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/mass-assignment.candidates.json +232 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/report.ja.md +1911 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/report.md +1911 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-001.json +425 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-002.json +333 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-003.json +400 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-004.json +403 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-005.json +398 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/routes/routes-006.json +63 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/score.json +101 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-a/stack-profile.json +226 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/ai-run-stats.json +54 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/coverage.json +66 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/findings/priv-privilege-001.json +440 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/findings/priv-privilege-002.json +229 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/findings.json +3424 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/mass-assignment.candidates.json +232 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-001.json +425 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-002.json +333 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-003.json +400 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-004.json +403 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-005.json +398 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/routes/routes-006.json +63 -0
- package/assess/lsa/examples/eval-run-4/iter2-gptoss-b/score.json +120 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/ai-run-stats.json +88 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/coverage.json +36 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/findings/priv-privilege-001.json +530 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/findings/priv-privilege-002.json +248 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/findings.json +4766 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/findings.sarif +9326 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/mass-assignment.candidates.json +232 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/report.ja.md +2011 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/report.md +2011 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-001.json +425 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-002.json +333 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-003.json +400 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-004.json +403 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-005.json +398 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/routes/routes-006.json +63 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/score.json +80 -0
- package/assess/lsa/examples/eval-run-5/gptoss-a/stack-profile.json +226 -0
- package/assess/lsa/examples/eval-run-5/gptoss-b/ai-run-stats.json +83 -0
- package/assess/lsa/examples/eval-run-5/gptoss-b/coverage.json +44 -0
- package/assess/lsa/examples/eval-run-5/gptoss-b/findings/priv-privilege-001.json +579 -0
- package/assess/lsa/examples/eval-run-5/gptoss-b/findings/priv-privilege-002.json +268 -0
- package/assess/lsa/examples/eval-run-5/gptoss-b/findings.json +3913 -0
- package/assess/lsa/examples/eval-run-5/gptoss-b/mass-assignment.candidates.json +232 -0
- package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-001.json +425 -0
- package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-002.json +333 -0
- package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-003.json +400 -0
- package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-004.json +403 -0
- package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-005.json +398 -0
- package/assess/lsa/examples/eval-run-5/gptoss-b/routes/routes-006.json +63 -0
- package/assess/lsa/examples/eval-run-5/gptoss-b/score.json +94 -0
- package/assess/lsa/examples/eval-run-5/ground-truth.json +823 -0
- package/assess/lsa/knowledge/injection-patterns.md +8 -1
- package/assess/lsa/knowledge/stacks/nextjs.md +62 -0
- package/assess/lsa/prompts/35-privilege-auditor.md +3 -1
- package/assess/lsa/prompts/_shared-rules.md +1 -0
- package/assess/lsa/scripts/detect_stack.py +5 -1
- package/assess/lsa/scripts/find_injection.py +34 -5
- package/assess/lsa/scripts/lsa_common.py +9 -2
- package/assess/lsa/scripts/make_batches.py +2 -1
- package/assess/lsa/scripts/map_routes.py +10 -2
- package/assess/lsa/scripts/nextjs_routes.py +236 -0
- package/assess/lsa/templates/audit-config.json +1 -1
- package/assess/lsa/tests/EVAL-RESULTS.md +156 -0
- package/assess/lsa/tests/score_findings.py +58 -0
- package/assess/lsa/tests/test_default_scope.py +86 -0
- package/assess/lsa/tests/test_eval_run_4.py +73 -0
- package/assess/lsa/tests/test_eval_run_5.py +73 -0
- package/assess/lsa/tests/test_js_tagged_sql.py +112 -0
- package/assess/lsa/tests/test_nextjs.py +198 -0
- package/assess/lsa/tests/test_privilege_tier2.py +30 -0
- package/operate/ai/anchoring.py +130 -0
- package/operate/ai/client.py +13 -0
- package/operate/ai/context.py +105 -0
- package/operate/ai/runner.py +197 -69
- package/operate/cli/__init__.py +1 -1
- package/operate/cli/commands/scan.py +1 -1
- package/operate/tests/test_ai_anchoring.py +184 -0
- package/operate/tests/test_headless_ai.py +148 -1
- package/package.json +1 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"model": "gpt-oss:20b",
|
|
3
|
+
"endpoint": "http://localhost:11434/v1/chat/completions",
|
|
4
|
+
"phases": {
|
|
5
|
+
"2-stack-detector": {
|
|
6
|
+
"seconds": 58.352,
|
|
7
|
+
"calls": 1,
|
|
8
|
+
"prompt_tokens": 3118,
|
|
9
|
+
"completion_tokens": 2576
|
|
10
|
+
},
|
|
11
|
+
"3-route-mapper": {
|
|
12
|
+
"seconds": 0.009,
|
|
13
|
+
"calls": 0,
|
|
14
|
+
"prompt_tokens": 0,
|
|
15
|
+
"completion_tokens": 0
|
|
16
|
+
},
|
|
17
|
+
"4a-bola-auditor": {
|
|
18
|
+
"seconds": 1052.622,
|
|
19
|
+
"calls": 6,
|
|
20
|
+
"prompt_tokens": 49349,
|
|
21
|
+
"completion_tokens": 36984
|
|
22
|
+
},
|
|
23
|
+
"4b-injection-auditor": {
|
|
24
|
+
"seconds": 1258.593,
|
|
25
|
+
"calls": 2,
|
|
26
|
+
"prompt_tokens": 15801,
|
|
27
|
+
"completion_tokens": 44405
|
|
28
|
+
},
|
|
29
|
+
"4c-privilege-auditor": {
|
|
30
|
+
"seconds": 489.26,
|
|
31
|
+
"calls": 2,
|
|
32
|
+
"prompt_tokens": 17690,
|
|
33
|
+
"completion_tokens": 16881
|
|
34
|
+
},
|
|
35
|
+
"5-finding-verifier": {
|
|
36
|
+
"seconds": 1971.769,
|
|
37
|
+
"calls": 11,
|
|
38
|
+
"prompt_tokens": 53067,
|
|
39
|
+
"completion_tokens": 71282
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"totals": {
|
|
43
|
+
"calls": 22,
|
|
44
|
+
"prompt_tokens": 139025,
|
|
45
|
+
"completion_tokens": 172128,
|
|
46
|
+
"seconds": 4830.395
|
|
47
|
+
},
|
|
48
|
+
"parse_failures": {
|
|
49
|
+
"4b-injection-auditor": [
|
|
50
|
+
"injection-002"
|
|
51
|
+
],
|
|
52
|
+
"5-finding-verifier": [
|
|
53
|
+
"verified-2",
|
|
54
|
+
"verified-10"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"call_errors": {}
|
|
58
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"route_candidates": 74,
|
|
3
|
+
"inventoried": 74,
|
|
4
|
+
"rejected": 0,
|
|
5
|
+
"missing_from_inventory": [],
|
|
6
|
+
"bola_routes_to_audit": 74,
|
|
7
|
+
"bola_routes_without_verdict": [],
|
|
8
|
+
"bfla_routes_to_audit": 0,
|
|
9
|
+
"bfla_routes_without_verdict": [],
|
|
10
|
+
"injection_candidates": 38,
|
|
11
|
+
"injection_candidates_without_verdict": [
|
|
12
|
+
"I-0008",
|
|
13
|
+
"I-0015",
|
|
14
|
+
"I-0018",
|
|
15
|
+
"I-0019",
|
|
16
|
+
"I-0026",
|
|
17
|
+
"I-0031",
|
|
18
|
+
"I-0032",
|
|
19
|
+
"I-0033",
|
|
20
|
+
"I-0034",
|
|
21
|
+
"I-0035",
|
|
22
|
+
"I-0036",
|
|
23
|
+
"I-0037",
|
|
24
|
+
"I-0038"
|
|
25
|
+
],
|
|
26
|
+
"mass_candidates": 15,
|
|
27
|
+
"mass_candidates_without_verdict": [],
|
|
28
|
+
"findings_without_verification": [
|
|
29
|
+
"BOLA-R-0001-1",
|
|
30
|
+
"BOLA-R-0015-1",
|
|
31
|
+
"BOLA-R-0017-1",
|
|
32
|
+
"BOLA-R-0018-1",
|
|
33
|
+
"BOLA-R-0019-1",
|
|
34
|
+
"BOLA-R-0020",
|
|
35
|
+
"BOLA-R-0021",
|
|
36
|
+
"BOLA-R-0022",
|
|
37
|
+
"BOLA-R-0023",
|
|
38
|
+
"BOLA-R-0025",
|
|
39
|
+
"MASS-0012-1"
|
|
40
|
+
],
|
|
41
|
+
"duplicates_removed": [
|
|
42
|
+
{
|
|
43
|
+
"kept": "INJ-I-0004-1",
|
|
44
|
+
"dropped": "INJ-I-0007-1"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"kept": "INJ-I-0011-2",
|
|
48
|
+
"dropped": "INJ-I-0012-1"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"kept": "INJ-I-0011-3",
|
|
52
|
+
"dropped": "INJ-I-0013-1"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"kept": "INJ-I-0020-3",
|
|
56
|
+
"dropped": "INJ-I-0021-1"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"kept": "INJ-I-0020-4",
|
|
60
|
+
"dropped": "INJ-I-0022-1"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"kept": "INJ-I-0020-2",
|
|
64
|
+
"dropped": "INJ-I-0023-1"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"kept": "INJ-I-0024-2",
|
|
68
|
+
"dropped": "INJ-I-0025-1"
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"validation_errors": [
|
|
72
|
+
"priv-privilege-001.json:MASS-0003-1: subtype: 'needs_review' not in ['missing_ownership_check', 'ownership_check_bypassable', 'id_from_request_used_as_identity', 'no_authentication', 'parent_checked_child_not', 'check_result_ignored', 'string_concatenation', 'string_interpolation', 'format_string', 'template_placeholder', 'dynamic_identifier', 'operator_injection', 'js_injection', 'second_order', 'stored_procedure_dynamic_sql', 'missing_role_check', 'role_from_request', 'client_side_role_check', 'whole_object_binding', 'privileged_field_writable']",
|
|
73
|
+
"priv-privilege-001.json:MASS-0004-1: subtype: 'needs_review' not in ['missing_ownership_check', 'ownership_check_bypassable', 'id_from_request_used_as_identity', 'no_authentication', 'parent_checked_child_not', 'check_result_ignored', 'string_concatenation', 'string_interpolation', 'format_string', 'template_placeholder', 'dynamic_identifier', 'operator_injection', 'js_injection', 'second_order', 'stored_procedure_dynamic_sql', 'missing_role_check', 'role_from_request', 'client_side_role_check', 'whole_object_binding', 'privileged_field_writable']",
|
|
74
|
+
"priv-privilege-001.json:MASS-0005-1: subtype: 'needs_review' not in ['missing_ownership_check', 'ownership_check_bypassable', 'id_from_request_used_as_identity', 'no_authentication', 'parent_checked_child_not', 'check_result_ignored', 'string_concatenation', 'string_interpolation', 'format_string', 'template_placeholder', 'dynamic_identifier', 'operator_injection', 'js_injection', 'second_order', 'stored_procedure_dynamic_sql', 'missing_role_check', 'role_from_request', 'client_side_role_check', 'whole_object_binding', 'privileged_field_writable']",
|
|
75
|
+
"priv-privilege-002.json:MASS-M-0006-1: impact: expected ['string'], got list",
|
|
76
|
+
"priv-privilege-002.json:MASS-M-0007-1: impact: expected ['string'], got list",
|
|
77
|
+
"priv-privilege-002.json:MASS-M-0008-1: impact: expected ['string'], got list",
|
|
78
|
+
"priv-privilege-002.json:MASS-M-0009-1: impact: expected ['string'], got list",
|
|
79
|
+
"priv-privilege-002.json:MASS-M-0010-1: impact: expected ['string'], got list",
|
|
80
|
+
"priv-privilege-002.json:MASS-M-0015-1: impact: expected ['string'], got list",
|
|
81
|
+
"priv-privilege-002.json:MASS-M-0014-1: impact: expected ['string'], got list"
|
|
82
|
+
],
|
|
83
|
+
"new_issues_from_verifier": [],
|
|
84
|
+
"out_of_scope_notes": []
|
|
85
|
+
}
|