@runsec/mcp 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +578 -0
- package/package.json +43 -0
- package/src/rules/data/rule-compliance-map.json +43563 -0
- package/src/rules/data/semgrep-rules/README-taint-overlays.md +21 -0
- package/src/rules/data/semgrep-rules/advanced-agent-cloud.yaml +802 -0
- package/src/rules/data/semgrep-rules/app-logic.yaml +445 -0
- package/src/rules/data/semgrep-rules/auth-keycloak.yaml +831 -0
- package/src/rules/data/semgrep-rules/browser-agent.yaml +260 -0
- package/src/rules/data/semgrep-rules/cloud-secrets.yaml +316 -0
- package/src/rules/data/semgrep-rules/csharp-dotnet.yaml +4864 -0
- package/src/rules/data/semgrep-rules/desktop-electron-pro.yaml +30 -0
- package/src/rules/data/semgrep-rules/desktop-vsto-suite.yaml +2759 -0
- package/src/rules/data/semgrep-rules/devops-security.yaml +393 -0
- package/src/rules/data/semgrep-rules/domain-access-management.yaml +1023 -0
- package/src/rules/data/semgrep-rules/domain-data-privacy.yaml +852 -0
- package/src/rules/data/semgrep-rules/domain-input-validation.yaml +2894 -0
- package/src/rules/data/semgrep-rules/domain-platform-hardening.yaml +1715 -0
- package/src/rules/data/semgrep-rules/ds-ml-security.yaml +2431 -0
- package/src/rules/data/semgrep-rules/fastapi-async.yaml +5953 -0
- package/src/rules/data/semgrep-rules/frontend-react.yaml +4035 -0
- package/src/rules/data/semgrep-rules/frontend-security.yaml +200 -0
- package/src/rules/data/semgrep-rules/go-core.yaml +4959 -0
- package/src/rules/data/semgrep-rules/hft-cpp-security.yaml +631 -0
- package/src/rules/data/semgrep-rules/infra-k8s-helm.yaml +4968 -0
- package/src/rules/data/semgrep-rules/integration-security.yaml +2362 -0
- package/src/rules/data/semgrep-rules/java-enterprise.yaml +14756 -0
- package/src/rules/data/semgrep-rules/java-spring.yaml +397 -0
- package/src/rules/data/semgrep-rules/license-compliance.yaml +186 -0
- package/src/rules/data/semgrep-rules/mobile-flutter.yaml +37 -0
- package/src/rules/data/semgrep-rules/mobile-security.yaml +721 -0
- package/src/rules/data/semgrep-rules/nodejs-nestjs.yaml +5164 -0
- package/src/rules/data/semgrep-rules/nodejs-security.yaml +326 -0
- package/src/rules/data/semgrep-rules/observability.yaml +381 -0
- package/src/rules/data/semgrep-rules/php-security.yaml +3601 -0
- package/src/rules/data/semgrep-rules/python-backend-pro.yaml +30 -0
- package/src/rules/data/semgrep-rules/python-django.yaml +181 -0
- package/src/rules/data/semgrep-rules/python-security.yaml +284 -0
- package/src/rules/data/semgrep-rules/ru-regulatory.yaml +496 -0
- package/src/rules/data/semgrep-rules/ruby-rails.yaml +3078 -0
- package/src/rules/data/semgrep-rules/rust-security.yaml +2701 -0
|
@@ -0,0 +1,496 @@
|
|
|
1
|
+
rules:
|
|
2
|
+
- id: runsec.ru-regulatory.rrc-001
|
|
3
|
+
metadata:
|
|
4
|
+
runsec_version: v1.0
|
|
5
|
+
confidence: |-
|
|
6
|
+
0.9
|
|
7
|
+
exploit_scenario: |-
|
|
8
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
9
|
+
fix_template: |-
|
|
10
|
+
Использовать редактирование/маскирование до логирования (например, redact_email, redact_snils), а также уровень логов без PII по умолчанию.
|
|
11
|
+
pattern-either:
|
|
12
|
+
- pattern: |-
|
|
13
|
+
print(f"user={user.email}")
|
|
14
|
+
logger.info("pii", extra={"fio": fio, "snils": snils, "email": email})
|
|
15
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-001\\b'
|
|
16
|
+
message: |-
|
|
17
|
+
RunSec Detection [RRC-001]: 152-ФЗ (PII in logs)
|
|
18
|
+
languages:
|
|
19
|
+
- generic
|
|
20
|
+
severity: WARNING
|
|
21
|
+
- id: runsec.ru-regulatory.rrc-002
|
|
22
|
+
metadata:
|
|
23
|
+
runsec_version: v1.0
|
|
24
|
+
confidence: |-
|
|
25
|
+
0.9
|
|
26
|
+
exploit_scenario: |-
|
|
27
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
28
|
+
fix_template: |-
|
|
29
|
+
Обезличить/агрегировать ПДн перед отправкой, отделить идентификаторы и payload, добавить контроль/аудит передачи данных.
|
|
30
|
+
pattern-either:
|
|
31
|
+
- pattern: |-
|
|
32
|
+
requests.post("https://api.openai.com", json={"text": pii})
|
|
33
|
+
fetch("https://api.anthropic.com", { body: pii })
|
|
34
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-002\\b'
|
|
35
|
+
message: |-
|
|
36
|
+
RunSec Detection [RRC-002]: RU policy: residency & anonymization
|
|
37
|
+
languages:
|
|
38
|
+
- generic
|
|
39
|
+
severity: WARNING
|
|
40
|
+
- id: runsec.ru-regulatory.rrc-003
|
|
41
|
+
metadata:
|
|
42
|
+
runsec_version: v1.0
|
|
43
|
+
confidence: |-
|
|
44
|
+
0.9
|
|
45
|
+
exploit_scenario: |-
|
|
46
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
47
|
+
fix_template: |-
|
|
48
|
+
Использовать сертифицированные средства криптографии / GOST-совместимые библиотеки, соответствующие требованиям контура КИИ.
|
|
49
|
+
pattern-either:
|
|
50
|
+
- pattern: |-
|
|
51
|
+
from cryptography.hazmat.primitives.ciphers import Cipher
|
|
52
|
+
import Crypto.Cipher
|
|
53
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-003\\b'
|
|
54
|
+
message: |-
|
|
55
|
+
RunSec Detection [RRC-003]: RU KII: certified crypto requirement
|
|
56
|
+
languages:
|
|
57
|
+
- generic
|
|
58
|
+
severity: WARNING
|
|
59
|
+
- id: runsec.ru-regulatory.rrc-004
|
|
60
|
+
metadata:
|
|
61
|
+
runsec_version: v1.0
|
|
62
|
+
confidence: |-
|
|
63
|
+
0.9
|
|
64
|
+
exploit_scenario: |-
|
|
65
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
66
|
+
fix_template: |-
|
|
67
|
+
Уйти от hardcoded metadata: использовать абстракции конфигурации/переменные окружения и единый механизм discovery для целевого облака.
|
|
68
|
+
pattern-either:
|
|
69
|
+
- pattern: |-
|
|
70
|
+
http://169.254.169.254/latest/meta-data/
|
|
71
|
+
AWS_INSTANCE_ID (или запросы к IMDS)
|
|
72
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-004\\b'
|
|
73
|
+
message: |-
|
|
74
|
+
RunSec Detection [RRC-004]: Import substitution: portability risk
|
|
75
|
+
languages:
|
|
76
|
+
- generic
|
|
77
|
+
severity: WARNING
|
|
78
|
+
- id: runsec.ru-regulatory.rrc-005
|
|
79
|
+
metadata:
|
|
80
|
+
runsec_version: v1.0
|
|
81
|
+
confidence: |-
|
|
82
|
+
0.9
|
|
83
|
+
exploit_scenario: |-
|
|
84
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
85
|
+
fix_template: |-
|
|
86
|
+
Использовать российские или внутренние корпоративные DNS/NTP резолверы (например, 10.0.0.53, ntp.local).
|
|
87
|
+
pattern-either:
|
|
88
|
+
- pattern: |-
|
|
89
|
+
nameserver 8.8.8.8
|
|
90
|
+
server pool.ntp.org iburst
|
|
91
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-005\\b'
|
|
92
|
+
message: |-
|
|
93
|
+
RunSec Detection [RRC-005]: FSTEC/FSB hardening: trusted infra dependencies
|
|
94
|
+
languages:
|
|
95
|
+
- generic
|
|
96
|
+
severity: WARNING
|
|
97
|
+
- id: runsec.ru-regulatory.rrc-006
|
|
98
|
+
metadata:
|
|
99
|
+
runsec_version: v1.0
|
|
100
|
+
confidence: |-
|
|
101
|
+
0.9
|
|
102
|
+
exploit_scenario: |-
|
|
103
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
104
|
+
fix_template: |-
|
|
105
|
+
В CI/CD разрешать только доверенные внутренние зеркала/репозитории артефактов (Nexus/Artifactory/internal registry).
|
|
106
|
+
pattern-either:
|
|
107
|
+
- pattern: |-
|
|
108
|
+
pip install -i https://pypi.org/simple ...
|
|
109
|
+
npm config set registry https://registry.npmjs.org/
|
|
110
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-006\\b'
|
|
111
|
+
message: |-
|
|
112
|
+
RunSec Detection [RRC-006]: Supply-chain policy: trusted mirrors only
|
|
113
|
+
languages:
|
|
114
|
+
- generic
|
|
115
|
+
severity: WARNING
|
|
116
|
+
- id: runsec.ru-regulatory.rrc-007
|
|
117
|
+
metadata:
|
|
118
|
+
runsec_version: v1.0
|
|
119
|
+
confidence: |-
|
|
120
|
+
0.9
|
|
121
|
+
exploit_scenario: |-
|
|
122
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
123
|
+
fix_template: |-
|
|
124
|
+
Возвращать обобщенное сообщение пользователю; детали и stacktrace писать только во внутренние журналы.
|
|
125
|
+
pattern-either:
|
|
126
|
+
- pattern: |-
|
|
127
|
+
return {"error": str(e), "stack": traceback.format_exc()}
|
|
128
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-007\\b'
|
|
129
|
+
message: |-
|
|
130
|
+
RunSec Detection [RRC-007]: Secure error handling policy
|
|
131
|
+
languages:
|
|
132
|
+
- generic
|
|
133
|
+
severity: WARNING
|
|
134
|
+
- id: runsec.ru-regulatory.rrc-008
|
|
135
|
+
metadata:
|
|
136
|
+
runsec_version: v1.0
|
|
137
|
+
confidence: |-
|
|
138
|
+
0.9
|
|
139
|
+
exploit_scenario: |-
|
|
140
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
141
|
+
fix_template: |-
|
|
142
|
+
Централизованно логировать неудачные входы, смену паролей и чувствительные события безопасности (SIEM/audit bus).
|
|
143
|
+
pattern-either:
|
|
144
|
+
- pattern: |-
|
|
145
|
+
except AuthError:
|
|
146
|
+
return {"ok": False}
|
|
147
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-008\\b'
|
|
148
|
+
message: |-
|
|
149
|
+
RunSec Detection [RRC-008]: Security audit logging requirement
|
|
150
|
+
languages:
|
|
151
|
+
- generic
|
|
152
|
+
severity: WARNING
|
|
153
|
+
- id: runsec.ru-regulatory.rrc-009
|
|
154
|
+
metadata:
|
|
155
|
+
runsec_version: v1.0
|
|
156
|
+
confidence: |-
|
|
157
|
+
0.9
|
|
158
|
+
exploit_scenario: |-
|
|
159
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
160
|
+
fix_template: |-
|
|
161
|
+
Перед запуском проверять цифровую подпись/доверенную цепочку и хэш (особенно на критических узлах).
|
|
162
|
+
pattern-either:
|
|
163
|
+
- pattern: |-
|
|
164
|
+
subprocess.run(["/opt/bin/tool"])
|
|
165
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-009\\b'
|
|
166
|
+
message: |-
|
|
167
|
+
RunSec Detection [RRC-009]: Critical node integrity policy
|
|
168
|
+
languages:
|
|
169
|
+
- generic
|
|
170
|
+
severity: WARNING
|
|
171
|
+
- id: runsec.ru-regulatory.rrc-010
|
|
172
|
+
metadata:
|
|
173
|
+
runsec_version: v1.0
|
|
174
|
+
confidence: |-
|
|
175
|
+
0.9
|
|
176
|
+
exploit_scenario: |-
|
|
177
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
178
|
+
fix_template: |-
|
|
179
|
+
Перед удалением перезаписать файл нулями/случайными данными, затем удалить (fsync + remove) с учетом политики хранения.
|
|
180
|
+
pattern-either:
|
|
181
|
+
- pattern: |-
|
|
182
|
+
os.remove(pii_file)
|
|
183
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-010\\b'
|
|
184
|
+
message: |-
|
|
185
|
+
RunSec Detection [RRC-010]: CWE-226
|
|
186
|
+
languages:
|
|
187
|
+
- generic
|
|
188
|
+
severity: WARNING
|
|
189
|
+
- id: runsec.ru-regulatory.rrc-011
|
|
190
|
+
metadata:
|
|
191
|
+
runsec_version: v1.0
|
|
192
|
+
confidence: |-
|
|
193
|
+
0.9
|
|
194
|
+
exploit_scenario: |-
|
|
195
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
196
|
+
fix_template: |-
|
|
197
|
+
Использовать subprocess.run([...], shell=False, check=True) с фиксированным whitelist аргументов.
|
|
198
|
+
pattern-either:
|
|
199
|
+
- pattern: |-
|
|
200
|
+
os.system(user_cmd)
|
|
201
|
+
subprocess.Popen(user_cmd, shell=True)
|
|
202
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-011\\b'
|
|
203
|
+
message: |-
|
|
204
|
+
RunSec Detection [RRC-011]: CWE-676
|
|
205
|
+
languages:
|
|
206
|
+
- generic
|
|
207
|
+
severity: WARNING
|
|
208
|
+
- id: runsec.ru-regulatory.rrc-012
|
|
209
|
+
metadata:
|
|
210
|
+
runsec_version: v1.0
|
|
211
|
+
confidence: |-
|
|
212
|
+
0.9
|
|
213
|
+
exploit_scenario: |-
|
|
214
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
215
|
+
fix_template: |-
|
|
216
|
+
Проверять SHA-256/HMAC целостность конфигурации при старте; при mismatch — fail closed и аудит-событие.
|
|
217
|
+
pattern-either:
|
|
218
|
+
- pattern: |-
|
|
219
|
+
settings = json.load(open("config.json"))
|
|
220
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-012\\b'
|
|
221
|
+
message: |-
|
|
222
|
+
RunSec Detection [RRC-012]: CWE-353
|
|
223
|
+
languages:
|
|
224
|
+
- generic
|
|
225
|
+
severity: WARNING
|
|
226
|
+
- id: runsec.ru-regulatory.rrc-013
|
|
227
|
+
metadata:
|
|
228
|
+
runsec_version: v1.0
|
|
229
|
+
confidence: |-
|
|
230
|
+
0.9
|
|
231
|
+
exploit_scenario: |-
|
|
232
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
233
|
+
fix_template: |-
|
|
234
|
+
Использовать токены УДИ/УДА (OIDC/OAuth2, client credentials, mTLS-bound tokens), запрет static user/pass в интеграциях и сервис-аккаунтах.
|
|
235
|
+
pattern-either:
|
|
236
|
+
- pattern: |-
|
|
237
|
+
KEYCLOAK_USER=admin
|
|
238
|
+
KEYCLOAK_PASSWORD=admin123
|
|
239
|
+
auth = {"user": "...", "pass": "..."}
|
|
240
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-013\\b'
|
|
241
|
+
message: |-
|
|
242
|
+
RunSec Detection [RRC-013]: ГОСТ 57580.1, требования ЦБ по ИАМ/идентификации
|
|
243
|
+
languages:
|
|
244
|
+
- generic
|
|
245
|
+
severity: WARNING
|
|
246
|
+
- id: runsec.ru-regulatory.rrc-014
|
|
247
|
+
metadata:
|
|
248
|
+
runsec_version: v1.0
|
|
249
|
+
confidence: |-
|
|
250
|
+
0.9
|
|
251
|
+
exploit_scenario: |-
|
|
252
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
253
|
+
fix_template: |-
|
|
254
|
+
Обязательная короткоживущая токен-модель, ротация, revoke/introspection, аудит выдачи и использования токенов.
|
|
255
|
+
pattern-either:
|
|
256
|
+
- pattern: |-
|
|
257
|
+
token = "hardcoded-long-lived"
|
|
258
|
+
expires_in = 99999999
|
|
259
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-014\\b'
|
|
260
|
+
message: |-
|
|
261
|
+
RunSec Detection [RRC-014]: Внутренние стандарты ЦБ ИБ (токены и жизненный цикл)
|
|
262
|
+
languages:
|
|
263
|
+
- generic
|
|
264
|
+
severity: WARNING
|
|
265
|
+
- id: runsec.ru-regulatory.rrc-015
|
|
266
|
+
metadata:
|
|
267
|
+
runsec_version: v1.0
|
|
268
|
+
confidence: |-
|
|
269
|
+
0.9
|
|
270
|
+
exploit_scenario: |-
|
|
271
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
272
|
+
fix_template: |-
|
|
273
|
+
Использовать Authorization Code Flow + PKCE, а для межсервисного взаимодействия включать mTLS (client cert/key) и проверку FAPI-профиля.
|
|
274
|
+
pattern-either:
|
|
275
|
+
- pattern: |-
|
|
276
|
+
response_type=token
|
|
277
|
+
grant_type=implicit
|
|
278
|
+
curl https://idp/token (без mTLS client cert)
|
|
279
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-015\\b'
|
|
280
|
+
message: |-
|
|
281
|
+
RunSec Detection [RRC-015]: FAPI Security Profile, ГОСТ 57580.1
|
|
282
|
+
languages:
|
|
283
|
+
- generic
|
|
284
|
+
severity: WARNING
|
|
285
|
+
- id: runsec.ru-regulatory.rrc-016
|
|
286
|
+
metadata:
|
|
287
|
+
runsec_version: v1.0
|
|
288
|
+
confidence: |-
|
|
289
|
+
0.9
|
|
290
|
+
exploit_scenario: |-
|
|
291
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
292
|
+
fix_template: |-
|
|
293
|
+
Явно создавать непривилегированного пользователя и переключаться на него (RUN useradd -m appuser, USER appuser).
|
|
294
|
+
pattern-either:
|
|
295
|
+
- pattern: |-
|
|
296
|
+
# Dockerfile
|
|
297
|
+
FROM python:3.11
|
|
298
|
+
USER root или отсутствие USER
|
|
299
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-016\\b'
|
|
300
|
+
message: |-
|
|
301
|
+
RunSec Detection [RRC-016]: Docker CIS + ГОСТ 57580.1 hardening
|
|
302
|
+
languages:
|
|
303
|
+
- generic
|
|
304
|
+
severity: WARNING
|
|
305
|
+
- id: runsec.ru-regulatory.rrc-017
|
|
306
|
+
metadata:
|
|
307
|
+
runsec_version: v1.0
|
|
308
|
+
confidence: |-
|
|
309
|
+
0.9
|
|
310
|
+
exploit_scenario: |-
|
|
311
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
312
|
+
fix_template: |-
|
|
313
|
+
Использовать kind: ExternalSecret (ESO) + backend Vault; исключить plaintext секреты в Git/YAML.
|
|
314
|
+
pattern-either:
|
|
315
|
+
- pattern: |-
|
|
316
|
+
kind: Secret
|
|
317
|
+
stringData:
|
|
318
|
+
password: plain-text
|
|
319
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-017\\b'
|
|
320
|
+
message: |-
|
|
321
|
+
RunSec Detection [RRC-017]: Vault policy + ESO + ГОСТ 57580.1
|
|
322
|
+
languages:
|
|
323
|
+
- generic
|
|
324
|
+
severity: WARNING
|
|
325
|
+
- id: runsec.ru-regulatory.rrc-018
|
|
326
|
+
metadata:
|
|
327
|
+
runsec_version: v1.0
|
|
328
|
+
confidence: |-
|
|
329
|
+
0.9
|
|
330
|
+
exploit_scenario: |-
|
|
331
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
332
|
+
fix_template: |-
|
|
333
|
+
Для новых микросервисов использовать поддерживаемый стек (Python >= 3.10, без legacy PHP), фиксировать baseline в архитектурном стандарте.
|
|
334
|
+
pattern-either:
|
|
335
|
+
- pattern: |-
|
|
336
|
+
FROM python:3.9
|
|
337
|
+
php:7.4-fpm
|
|
338
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-018\\b'
|
|
339
|
+
message: |-
|
|
340
|
+
RunSec Detection [RRC-018]: Internal tech baseline / Клинкер
|
|
341
|
+
languages:
|
|
342
|
+
- generic
|
|
343
|
+
severity: WARNING
|
|
344
|
+
- id: runsec.ru-regulatory.rrc-019
|
|
345
|
+
metadata:
|
|
346
|
+
runsec_version: v1.0
|
|
347
|
+
confidence: |-
|
|
348
|
+
0.9
|
|
349
|
+
exploit_scenario: |-
|
|
350
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
351
|
+
fix_template: |-
|
|
352
|
+
Все внутренние API должны проходить через middleware аутентификации Keycloak (VerifyToken/аналог), deny-by-default.
|
|
353
|
+
pattern-either:
|
|
354
|
+
- pattern: |-
|
|
355
|
+
@app.get("/internal/payments")
|
|
356
|
+
def handler(): ... (без VerifyToken)
|
|
357
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-019\\b'
|
|
358
|
+
message: |-
|
|
359
|
+
RunSec Detection [RRC-019]: Keycloak middleware policy / Клинкер / ГОСТ 57580.1
|
|
360
|
+
languages:
|
|
361
|
+
- generic
|
|
362
|
+
severity: WARNING
|
|
363
|
+
- id: runsec.ru-regulatory.rrc-020
|
|
364
|
+
metadata:
|
|
365
|
+
runsec_version: v1.0
|
|
366
|
+
confidence: |-
|
|
367
|
+
0.9
|
|
368
|
+
exploit_scenario: |-
|
|
369
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
370
|
+
fix_template: |-
|
|
371
|
+
Перед запуском проверять SHA-256/ГОСТ-хэш исполняемого файла и критичных конфигов; при mismatch — fail closed и аудит-событие (Приказ 239).
|
|
372
|
+
pattern-either:
|
|
373
|
+
- pattern: |-
|
|
374
|
+
app = load_binary("/opt/bin/service")
|
|
375
|
+
config = open("/etc/service/config.yaml").read()
|
|
376
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-020\\b'
|
|
377
|
+
message: |-
|
|
378
|
+
RunSec Detection [RRC-020]: Приказ ФСТЭК №239, ГОСТ Р 56939
|
|
379
|
+
languages:
|
|
380
|
+
- generic
|
|
381
|
+
severity: WARNING
|
|
382
|
+
- id: runsec.ru-regulatory.rrc-021
|
|
383
|
+
metadata:
|
|
384
|
+
runsec_version: v1.0
|
|
385
|
+
confidence: |-
|
|
386
|
+
0.9
|
|
387
|
+
exploit_scenario: |-
|
|
388
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
389
|
+
fix_template: |-
|
|
390
|
+
Перед запуском проверять наличие и работоспособность СЗИ (антивирус, IDS/IPS, EDR агент), логировать статус и блокировать старт при критическом отказе.
|
|
391
|
+
pattern-either:
|
|
392
|
+
- pattern: |-
|
|
393
|
+
start_service()
|
|
394
|
+
# no AV/IDS health check
|
|
395
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-021\\b'
|
|
396
|
+
message: |-
|
|
397
|
+
RunSec Detection [RRC-021]: Приказ ФСТЭК №235/239
|
|
398
|
+
languages:
|
|
399
|
+
- generic
|
|
400
|
+
severity: WARNING
|
|
401
|
+
- id: runsec.ru-regulatory.rrc-022
|
|
402
|
+
metadata:
|
|
403
|
+
runsec_version: v1.0
|
|
404
|
+
confidence: |-
|
|
405
|
+
0.9
|
|
406
|
+
exploit_scenario: |-
|
|
407
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
408
|
+
fix_template: |-
|
|
409
|
+
Обязательная фиксация результатов SAST/SCA в артефактах CI (лог/отчет), подпись и хранение для аудита SDL по ГОСТ Р 56939.
|
|
410
|
+
pattern-either:
|
|
411
|
+
- pattern: |-
|
|
412
|
+
ci_stage("build")
|
|
413
|
+
run_semgrep()
|
|
414
|
+
# result not persisted
|
|
415
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-022\\b'
|
|
416
|
+
message: |-
|
|
417
|
+
RunSec Detection [RRC-022]: ГОСТ Р 56939, ФСТЭК SDL practice
|
|
418
|
+
languages:
|
|
419
|
+
- generic
|
|
420
|
+
severity: WARNING
|
|
421
|
+
- id: runsec.ru-regulatory.rrc-023
|
|
422
|
+
metadata:
|
|
423
|
+
runsec_version: v1.0
|
|
424
|
+
confidence: |-
|
|
425
|
+
0.9
|
|
426
|
+
exploit_scenario: |-
|
|
427
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
428
|
+
fix_template: |-
|
|
429
|
+
Для криптографических ключей задать и контролировать rotation_period, автоматическую ротацию и журналировать события смены ключей.
|
|
430
|
+
pattern-either:
|
|
431
|
+
- pattern: |-
|
|
432
|
+
key_policy = {"name": "payments-key"}
|
|
433
|
+
# no rotation_period
|
|
434
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-023\\b'
|
|
435
|
+
message: |-
|
|
436
|
+
RunSec Detection [RRC-023]: NIST SP 800-57, ЦБ 683-П
|
|
437
|
+
languages:
|
|
438
|
+
- generic
|
|
439
|
+
severity: WARNING
|
|
440
|
+
- id: runsec.ru-regulatory.rrc-024
|
|
441
|
+
metadata:
|
|
442
|
+
runsec_version: v1.0
|
|
443
|
+
confidence: |-
|
|
444
|
+
0.9
|
|
445
|
+
exploit_scenario: |-
|
|
446
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
447
|
+
fix_template: |-
|
|
448
|
+
Включить строгий CSP, SRI для внешних скриптов и проверки целостности DOM/critical forms для защиты ДБО от overlay/injection атак.
|
|
449
|
+
pattern-either:
|
|
450
|
+
- pattern: |-
|
|
451
|
+
<script src="https://cdn.example.com/widget.js"></script>
|
|
452
|
+
# no Content-Security-Policy
|
|
453
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-024\\b'
|
|
454
|
+
message: |-
|
|
455
|
+
RunSec Detection [RRC-024]: ЦБ 683-П
|
|
456
|
+
languages:
|
|
457
|
+
- generic
|
|
458
|
+
severity: WARNING
|
|
459
|
+
- id: runsec.ru-regulatory.rrc-025
|
|
460
|
+
metadata:
|
|
461
|
+
runsec_version: v1.0
|
|
462
|
+
confidence: |-
|
|
463
|
+
0.9
|
|
464
|
+
exploit_scenario: |-
|
|
465
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
466
|
+
fix_template: |-
|
|
467
|
+
Фиксировать hash реквизитов на этапе create и сравнивать перед sign/submit; при несовпадении — reject + audit event.
|
|
468
|
+
pattern-either:
|
|
469
|
+
- pattern: |-
|
|
470
|
+
payment.amount = req.amount
|
|
471
|
+
sign(payment)
|
|
472
|
+
# payload can change before signing
|
|
473
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-025\\b'
|
|
474
|
+
message: |-
|
|
475
|
+
RunSec Detection [RRC-025]: ЦБ 719-П
|
|
476
|
+
languages:
|
|
477
|
+
- generic
|
|
478
|
+
severity: WARNING
|
|
479
|
+
- id: runsec.ru-regulatory.rrc-026
|
|
480
|
+
metadata:
|
|
481
|
+
runsec_version: v1.0
|
|
482
|
+
confidence: |-
|
|
483
|
+
0.9
|
|
484
|
+
exploit_scenario: |-
|
|
485
|
+
Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
|
|
486
|
+
fix_template: |-
|
|
487
|
+
Вести инвентаризацию криптопримитивов, план гибридных схем и процедуру миграции ключей/сертификатов под PQ-ready профиль.
|
|
488
|
+
pattern-either:
|
|
489
|
+
- pattern: |-
|
|
490
|
+
crypto_profile = "rsa2048-only"
|
|
491
|
+
- pattern-regex: 'Vulnerable:\\s*RRC\\-026\\b'
|
|
492
|
+
message: |-
|
|
493
|
+
RunSec Detection [RRC-026]: NIST SP 800-57 migration guidance
|
|
494
|
+
languages:
|
|
495
|
+
- generic
|
|
496
|
+
severity: WARNING
|