izm1chael commited on
Commit
de3bbc8
·
verified ·
1 Parent(s): 240cd6a

Publish Layerfault deep challenge LF-CH-NEG-0001

Browse files
CHALLENGE_ORACLE.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "attack_surface": [
3
+ "false-positive-resistance"
4
+ ],
5
+ "control_type": "negative",
6
+ "corpus_id": "LF-CH-NEG-0001",
7
+ "difficulty": "basic",
8
+ "expected_decision": "PASS",
9
+ "ground_truth": "synthetic-generated",
10
+ "layerfault_rule_expectations": {
11
+ "candidate_rules": [],
12
+ "expected_rules": [],
13
+ "must_not_rules": [
14
+ "LF-CODE-SUBPROCESS",
15
+ "LF-PY-CALL-PROCESS"
16
+ ]
17
+ },
18
+ "oracle_ids": [
19
+ "LF-ORACLE-FALSE-POSITIVE-CONTROL"
20
+ ],
21
+ "related_cases": [],
22
+ "repo_name": "near-miss-python-subprocess-comment",
23
+ "safe_fixture": true,
24
+ "schema": 2,
25
+ "severity": "informational",
26
+ "techniques": [
27
+ "comment-only"
28
+ ],
29
+ "transformations": []
30
+ }
FIXTURE_LAYOUT.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "artifacts": [
3
+ "control.py"
4
+ ],
5
+ "family": "negative",
6
+ "note": "All content is synthetic and inert. Do not treat this as a production model.",
7
+ "repo_name": "near-miss-python-subprocess-comment"
8
+ }
LAYERFAULT_CORPUS.json ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "candidate_rules": [],
3
+ "challenge": {
4
+ "attack_surface": [
5
+ "false-positive-resistance"
6
+ ],
7
+ "control_type": "negative",
8
+ "difficulty": "basic",
9
+ "expected_decision": "PASS",
10
+ "oracle_ids": [
11
+ "LF-ORACLE-FALSE-POSITIVE-CONTROL"
12
+ ],
13
+ "related_cases": [],
14
+ "severity": "informational",
15
+ "techniques": [
16
+ "comment-only"
17
+ ],
18
+ "transformations": []
19
+ },
20
+ "corpus_id": "LF-CH-NEG-0001",
21
+ "description": "Python comments mention subprocess APIs but contain no executable call site.",
22
+ "expected_rules": [],
23
+ "generator": "challenges.generate_challenge",
24
+ "ground_truth": "synthetic-generated",
25
+ "must_not_rules": [
26
+ "LF-CODE-SUBPROCESS",
27
+ "LF-PY-CALL-PROCESS"
28
+ ],
29
+ "repo_name": "near-miss-python-subprocess-comment",
30
+ "repo_type": "model",
31
+ "safe_fixture": true,
32
+ "safety": "inert/canary-only",
33
+ "schema": 1,
34
+ "validation": {
35
+ "kind": "verify-package",
36
+ "target": "."
37
+ }
38
+ }
README.md ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ tags:
4
+ - layerfault
5
+ - security-research
6
+ - model-security
7
+ - synthetic
8
+ - adversarial-testing
9
+ extra_gated_prompt: >-
10
+ This repository is a synthetic security-test artifact from the Layerfault
11
+ corpus. It intentionally contains adversarial characteristics (e.g.
12
+ suspicious pickle opcodes, executable-format smuggling, prompt-injection
13
+ strings) designed to exercise security scanner detection rules. It is
14
+ **not** a usable ML model and must never be loaded or executed outside an
15
+ isolated scanner-testing environment. By accepting, you confirm you
16
+ understand this repository is a test fixture, not production model
17
+ weights.
18
+ extra_gated_button_content: I understand this is a security test fixture and accept the risk
19
+ gated: auto
20
+ ---
21
+
22
+ # near-miss-python-subprocess-comment
23
+
24
+ > **SECURITY TEST ARTIFACT: DO NOT USE AS A PRODUCTION MODEL**
25
+
26
+ This repository is part of the Layerfault synthetic security corpus.
27
+ It is deliberately constructed to contain security-relevant characteristics for scanner testing.
28
+
29
+ **Corpus ID:** `LF-CH-NEG-0001`
30
+
31
+ ## Purpose
32
+
33
+ Python comments mention subprocess APIs but contain no executable call site.
34
+
35
+ ## Direct expected Layerfault rules
36
+
37
+ - None; this repository is a control/comparison input.
38
+
39
+ ## Candidate rules
40
+
41
+ These are deliberately plausible targets that remain marked as candidates until the exact
42
+ Layerfault build used for certification confirms them.
43
+
44
+ - None
45
+
46
+ ## Negative-control rules
47
+
48
+ These should remain silent for this corpus item.
49
+
50
+ - `LF-CODE-SUBPROCESS`
51
+ - `LF-PY-CALL-PROCESS`
52
+
53
+ ## Safety
54
+
55
+ The corpus uses fake secrets, loopback/`.invalid` network destinations, harmless marker output,
56
+ and synthetic model behavior only. It is intended for static scanning and isolated security testing.
57
+
58
+ ## Challenge classification
59
+
60
+ - Severity: **informational**
61
+ - Difficulty: **basic**
62
+ - Expected admission decision: **PASS**
63
+ - Control type: **negative**
64
+ - Attack surface: false-positive-resistance
65
+ - Techniques: comment-only
66
+ - Transformations: none
67
+
68
+ ### Ground-truth oracle IDs
69
+
70
+ - `LF-ORACLE-FALSE-POSITIVE-CONTROL`
71
+
72
+ These oracle IDs describe synthetic ground truth. They do not claim that a
73
+ matching Layerfault detector already exists. A challenge may intentionally expose
74
+ a scanner blind spot and remain unmapped until the detector is implemented.
SHA256SUMS.json ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "path": "CHALLENGE_ORACLE.json",
4
+ "sha256": "81f3116e1f5cab1c4f23ab727f50d48f4551b611b1f073b40151e26db3dd5a04",
5
+ "size": 677
6
+ },
7
+ {
8
+ "path": "FIXTURE_LAYOUT.json",
9
+ "sha256": "3d191d9c1ec2368c232774fcd9e70b6744fdbac5d0bd3568d77340d912e1e59c",
10
+ "size": 210
11
+ },
12
+ {
13
+ "path": "LAYERFAULT_CORPUS.json",
14
+ "sha256": "b92e1cf4bc94d5f720e5f8af76a7a633135b9fd6f7ac51e2c01530680c0cb43e",
15
+ "size": 949
16
+ },
17
+ {
18
+ "path": "README.md",
19
+ "sha256": "0969dba7a893d5c9cc681e533849b60d6e550cf723f711a249d793c4c3dd46dc",
20
+ "size": 2307
21
+ },
22
+ {
23
+ "path": "control.py",
24
+ "sha256": "975e0b9fd66bfcb666ae33796064608fa01f3214ac392925871066892ad4d8aa",
25
+ "size": 66
26
+ }
27
+ ]
control.py ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ # Documentation mentions subprocess.run and Popen only.
2
+ VALUE = 1