@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.
Files changed (40) hide show
  1. package/dist/index.js +578 -0
  2. package/package.json +43 -0
  3. package/src/rules/data/rule-compliance-map.json +43563 -0
  4. package/src/rules/data/semgrep-rules/README-taint-overlays.md +21 -0
  5. package/src/rules/data/semgrep-rules/advanced-agent-cloud.yaml +802 -0
  6. package/src/rules/data/semgrep-rules/app-logic.yaml +445 -0
  7. package/src/rules/data/semgrep-rules/auth-keycloak.yaml +831 -0
  8. package/src/rules/data/semgrep-rules/browser-agent.yaml +260 -0
  9. package/src/rules/data/semgrep-rules/cloud-secrets.yaml +316 -0
  10. package/src/rules/data/semgrep-rules/csharp-dotnet.yaml +4864 -0
  11. package/src/rules/data/semgrep-rules/desktop-electron-pro.yaml +30 -0
  12. package/src/rules/data/semgrep-rules/desktop-vsto-suite.yaml +2759 -0
  13. package/src/rules/data/semgrep-rules/devops-security.yaml +393 -0
  14. package/src/rules/data/semgrep-rules/domain-access-management.yaml +1023 -0
  15. package/src/rules/data/semgrep-rules/domain-data-privacy.yaml +852 -0
  16. package/src/rules/data/semgrep-rules/domain-input-validation.yaml +2894 -0
  17. package/src/rules/data/semgrep-rules/domain-platform-hardening.yaml +1715 -0
  18. package/src/rules/data/semgrep-rules/ds-ml-security.yaml +2431 -0
  19. package/src/rules/data/semgrep-rules/fastapi-async.yaml +5953 -0
  20. package/src/rules/data/semgrep-rules/frontend-react.yaml +4035 -0
  21. package/src/rules/data/semgrep-rules/frontend-security.yaml +200 -0
  22. package/src/rules/data/semgrep-rules/go-core.yaml +4959 -0
  23. package/src/rules/data/semgrep-rules/hft-cpp-security.yaml +631 -0
  24. package/src/rules/data/semgrep-rules/infra-k8s-helm.yaml +4968 -0
  25. package/src/rules/data/semgrep-rules/integration-security.yaml +2362 -0
  26. package/src/rules/data/semgrep-rules/java-enterprise.yaml +14756 -0
  27. package/src/rules/data/semgrep-rules/java-spring.yaml +397 -0
  28. package/src/rules/data/semgrep-rules/license-compliance.yaml +186 -0
  29. package/src/rules/data/semgrep-rules/mobile-flutter.yaml +37 -0
  30. package/src/rules/data/semgrep-rules/mobile-security.yaml +721 -0
  31. package/src/rules/data/semgrep-rules/nodejs-nestjs.yaml +5164 -0
  32. package/src/rules/data/semgrep-rules/nodejs-security.yaml +326 -0
  33. package/src/rules/data/semgrep-rules/observability.yaml +381 -0
  34. package/src/rules/data/semgrep-rules/php-security.yaml +3601 -0
  35. package/src/rules/data/semgrep-rules/python-backend-pro.yaml +30 -0
  36. package/src/rules/data/semgrep-rules/python-django.yaml +181 -0
  37. package/src/rules/data/semgrep-rules/python-security.yaml +284 -0
  38. package/src/rules/data/semgrep-rules/ru-regulatory.yaml +496 -0
  39. package/src/rules/data/semgrep-rules/ruby-rails.yaml +3078 -0
  40. package/src/rules/data/semgrep-rules/rust-security.yaml +2701 -0
@@ -0,0 +1,393 @@
1
+ rules:
2
+ - id: runsec.devops-security.dvs-001
3
+ metadata:
4
+ runsec_version: v1.0
5
+ confidence: |-
6
+ 0.9
7
+ exploit_scenario: |-
8
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
9
+ fix_template: |-
10
+ Создать непривилегированного пользователя (useradd -m appuser) и запускать контейнер через USER appuser.
11
+ pattern-either:
12
+ - pattern: |-
13
+ FROM python:3.11
14
+ ...
15
+ USER root
16
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-001\\b'
17
+ message: |-
18
+ RunSec Detection [DVS-001]: Docker CIS Benchmark
19
+ languages:
20
+ - generic
21
+ severity: WARNING
22
+ - id: runsec.devops-security.dvs-002
23
+ metadata:
24
+ runsec_version: v1.0
25
+ confidence: |-
26
+ 0.9
27
+ exploit_scenario: |-
28
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
29
+ fix_template: |-
30
+ Фиксировать образ по версии/диджесту (FROM node:20.12.2, FROM alpine@sha256:...).
31
+ pattern-either:
32
+ - pattern: |-
33
+ FROM node:latest
34
+ FROM alpine:latest
35
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-002\\b'
36
+ message: |-
37
+ RunSec Detection [DVS-002]: Supply-chain hardening
38
+ languages:
39
+ - generic
40
+ severity: WARNING
41
+ - id: runsec.devops-security.dvs-003
42
+ metadata:
43
+ runsec_version: v1.0
44
+ confidence: |-
45
+ 0.9
46
+ exploit_scenario: |-
47
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
48
+ fix_template: |-
49
+ Использовать runtime secret injection (Vault/ESO/K8s Secret), исключить секреты из Docker build layers.
50
+ pattern-either:
51
+ - pattern: |-
52
+ ENV DB_PASSWORD=supersecret
53
+ ARG AWS_SECRET_ACCESS_KEY=...
54
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-003\\b'
55
+ message: |-
56
+ RunSec Detection [DVS-003]: CWE-798, Vault best practices
57
+ languages:
58
+ - generic
59
+ severity: WARNING
60
+ - id: runsec.devops-security.dvs-004
61
+ metadata:
62
+ runsec_version: v1.0
63
+ confidence: |-
64
+ 0.9
65
+ exploit_scenario: |-
66
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
67
+ fix_template: |-
68
+ Генерировать provenance-аттестацию (builder, source, digest, timestamp, workflow id) и сохранять ее как обязательный артефакт релиза.
69
+ pattern-either:
70
+ - pattern: |-
71
+ docker build -t app:1.0 .
72
+ # no provenance attestation
73
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-004\\b'
74
+ message: |-
75
+ RunSec Detection [DVS-004]: SLSA v1.0 (L1/L2)
76
+ languages:
77
+ - generic
78
+ severity: WARNING
79
+ - id: runsec.devops-security.dvs-005
80
+ metadata:
81
+ runsec_version: v1.0
82
+ confidence: |-
83
+ 0.9
84
+ exploit_scenario: |-
85
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
86
+ fix_template: |-
87
+ Блокировать релиз при High/Critical CVE, учитывать результаты Syft/SCA в policy gate и сохранять решение в CI logs.
88
+ pattern-either:
89
+ - pattern: |-
90
+ pip install vulnerable-lib==1.2.0
91
+ # syft report ignored
92
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-005\\b'
93
+ message: |-
94
+ RunSec Detection [DVS-005]: NIST SSDF, supply-chain policy
95
+ languages:
96
+ - generic
97
+ severity: WARNING
98
+ - id: runsec.devops-security.dvs-006
99
+ metadata:
100
+ runsec_version: v1.0
101
+ confidence: |-
102
+ 0.9
103
+ exploit_scenario: |-
104
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
105
+ fix_template: |-
106
+ sh
107
+ pattern-either:
108
+ - pattern: |-
109
+ RUN apt-get update && curl https://example.com/install.sh
110
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-006\\b'
111
+ message: |-
112
+ RunSec Detection [DVS-006]: SLSA L3 build integrity
113
+ languages:
114
+ - generic
115
+ severity: WARNING
116
+ - id: runsec.devops-security.dvs-007
117
+ metadata:
118
+ runsec_version: v1.0
119
+ confidence: |-
120
+ 0.9
121
+ exploit_scenario: |-
122
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
123
+ fix_template: |-
124
+ При policy-gate учитывать VEX-аттестации; CVE со статусом not_affected маркировать как исключение с audit trail.
125
+ pattern-either:
126
+ - pattern: |-
127
+ if cve.severity >= "HIGH": fail_build()
128
+ # ignores VEX not_affected
129
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-007\\b'
130
+ message: |-
131
+ RunSec Detection [DVS-007]: VEX / CSAF, NIST SSDF
132
+ languages:
133
+ - generic
134
+ severity: WARNING
135
+ - id: runsec.devops-security.dvs-008
136
+ metadata:
137
+ runsec_version: v1.0
138
+ confidence: |-
139
+ 0.9
140
+ exploit_scenario: |-
141
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
142
+ fix_template: |-
143
+ Обязательная подпись артефактов (например, cosign), валидация подписи при деплое и хранение attestations.
144
+ pattern-either:
145
+ - pattern: |-
146
+ docker push registry/app:1.0.0
147
+ # no cosign/signature
148
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-008\\b'
149
+ message: |-
150
+ RunSec Detection [DVS-008]: SLSA L3, NIST SSDF
151
+ languages:
152
+ - generic
153
+ severity: WARNING
154
+ - id: runsec.devops-security.dvs-009
155
+ metadata:
156
+ runsec_version: v1.0
157
+ confidence: |-
158
+ 0.9
159
+ exploit_scenario: |-
160
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
161
+ fix_template: |-
162
+ Пинning base images/dependencies, deterministic flags и периодическая проверка reproducibility hash между сборками.
163
+ pattern-either:
164
+ - pattern: |-
165
+ FROM base:latest
166
+ RUN pip install -r requirements.txt
167
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-009\\b'
168
+ message: |-
169
+ RunSec Detection [DVS-009]: Supply chain reproducibility controls
170
+ languages:
171
+ - generic
172
+ severity: WARNING
173
+ - id: runsec.devops-security.cwe-1104
174
+ metadata:
175
+ runsec_version: v1.0
176
+ confidence: |-
177
+ 0.9
178
+ exploit_scenario: |-
179
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
180
+ fix_template: |-
181
+ Обновлять зависимости до поддерживаемых версий (например, django>=3.2, pillow>=10.3.0) и включать SCA gate в CI.
182
+ pattern-either:
183
+ - pattern: |-
184
+ django==2.2.28
185
+ pillow==9.0.0
186
+ - pattern-regex: 'Vulnerable:\\s*CWE\\-1104\\b'
187
+ message: |-
188
+ RunSec Detection [CWE-1104]: CWE Final Certification
189
+ languages:
190
+ - generic
191
+ severity: WARNING
192
+ - id: runsec.devops-security.cwe-798-alembic-url
193
+ metadata:
194
+ runsec_version: v1.0
195
+ confidence: |-
196
+ 0.9
197
+ exploit_scenario: |-
198
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
199
+ fix_template: |-
200
+ Убрать plaintext credentials из alembic.ini, использовать env/secret manager и подстановку URL только через защищенный runtime config.
201
+ pattern-either:
202
+ - pattern: |-
203
+ sqlalchemy.url = postgresql://user:password@db/app
204
+ - pattern-regex: 'Vulnerable:\\s*CWE\\-798\\-ALEMBIC\\-URL\\b'
205
+ message: |-
206
+ RunSec Detection [CWE-798-ALEMBIC-URL]: CWE Final Certification
207
+ languages:
208
+ - generic
209
+ severity: WARNING
210
+ - id: runsec.devops-security.cwe-116-vite-proxy-header-fwd
211
+ metadata:
212
+ runsec_version: v1.0
213
+ confidence: |-
214
+ 0.9
215
+ exploit_scenario: |-
216
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
217
+ fix_template: |-
218
+ Validate data with Zod and sanitize DOM/HTML sinks with DOMPurify before rendering.
219
+ pattern-either:
220
+ - pattern: |-
221
+ server.proxy["/api"] = { target: "https://external", changeOrigin: true } + неконтролируемый proxyReq headers pass-through
222
+ - pattern-regex: 'Vulnerable:\\s*CWE\\-116\\-VITE\\-PROXY\\-HEADER\\-FWD\\b'
223
+ message: |-
224
+ RunSec Detection [CWE-116-VITE-PROXY-HEADER-FWD]: CWE Final Certification
225
+ languages:
226
+ - generic
227
+ severity: WARNING
228
+ - id: runsec.devops-security.cwe-427-nsis-exec-relative
229
+ metadata:
230
+ runsec_version: v1.0
231
+ confidence: |-
232
+ 0.9
233
+ exploit_scenario: |-
234
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
235
+ fix_template: |-
236
+ Использовать только абсолютные/канонизированные пути в кавычках, проверять подпись/хэш и исключать запуск бинарников из непроверенных относительных путей.
237
+ pattern-either:
238
+ - pattern: |-
239
+ ExecWait tools\\helper.exe
240
+ Exec ..\\bin\\setup.exe
241
+ - pattern-regex: 'Vulnerable:\\s*CWE\\-427\\-NSIS\\-EXEC\\-RELATIVE\\b'
242
+ message: |-
243
+ RunSec Detection [CWE-427-NSIS-EXEC-RELATIVE]: CWE Final Certification
244
+ languages:
245
+ - generic
246
+ severity: WARNING
247
+ - id: runsec.devops-security.cwe-377-nsis-outpath-perm
248
+ metadata:
249
+ runsec_version: v1.0
250
+ confidence: |-
251
+ 0.9
252
+ exploit_scenario: |-
253
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
254
+ fix_template: |-
255
+ Избегать записи в системные каталоги без проверки прав/контекста, явно задавать безопасные SetDefaultLibAttributes и контролировать install target policy.
256
+ pattern-either:
257
+ - pattern: |-
258
+ SetOutPath $WINDIR\\System32 без проверок
259
+ отсутствует SetDefaultLibAttributes
260
+ - pattern-regex: 'Vulnerable:\\s*CWE\\-377\\-NSIS\\-OUTPATH\\-PERM\\b'
261
+ message: |-
262
+ RunSec Detection [CWE-377-NSIS-OUTPATH-PERM]: CWE Final Certification
263
+ languages:
264
+ - generic
265
+ severity: WARNING
266
+ - id: runsec.devops-security.dvs-015
267
+ metadata:
268
+ runsec_version: v1.0
269
+ confidence: |-
270
+ 0.9
271
+ exploit_scenario: |-
272
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
273
+ fix_template: |-
274
+ После скачивания обязательно проверять sha256sum -c (или подпись), прерывать pipeline при mismatch.
275
+ pattern-either:
276
+ - pattern: |-
277
+ curl -L https://example.com/tool.sh -o /usr/local/bin/tool
278
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-015\\b'
279
+ message: |-
280
+ RunSec Detection [DVS-015]: CWE Final Certification
281
+ languages:
282
+ - generic
283
+ severity: WARNING
284
+ - id: runsec.devops-security.dvs-016
285
+ metadata:
286
+ runsec_version: v1.0
287
+ confidence: |-
288
+ 0.9
289
+ exploit_scenario: |-
290
+ CWE Final Certification
291
+ fix_template: |-
292
+ DevOps/Supply Chain
293
+ pattern-either:
294
+ - pattern: |-
295
+ bash installer pattern without integrity pinning (CWE-353)
296
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-016\\b'
297
+ message: |-
298
+ RunSec Detection [DVS-016]: Исключить pipe-to-shell; скачивать артефакт отдельно и валидировать sha256/signature перед выполнением.
299
+ languages:
300
+ - generic
301
+ severity: WARNING
302
+ - id: runsec.devops-security.dvs-017
303
+ metadata:
304
+ runsec_version: v1.0
305
+ confidence: |-
306
+ 0.9
307
+ exploit_scenario: |-
308
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
309
+ fix_template: |-
310
+ CWE Final Certification
311
+ pattern-either:
312
+ - pattern: |-
313
+ RUN curl -fsSL https://vendor/bin -o /tmp/bin && chmod +x /tmp/bin
314
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-017\\b'
315
+ message: |-
316
+ RunSec Detection [DVS-017]: DevOps/Supply Chain
317
+ languages:
318
+ - generic
319
+ severity: WARNING
320
+ - id: runsec.devops-security.dvs-018
321
+ metadata:
322
+ runsec_version: v1.0
323
+ confidence: |-
324
+ 0.9
325
+ exploit_scenario: |-
326
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
327
+ fix_template: |-
328
+ Использовать dependency lockfiles/hashes (--require-hashes) и trusted registries вместо direct URL execution.
329
+ pattern-either:
330
+ - pattern: |-
331
+ python -m pip install https://.../package.whl без hash pin
332
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-018\\b'
333
+ message: |-
334
+ RunSec Detection [DVS-018]: CWE Final Certification
335
+ languages:
336
+ - generic
337
+ severity: WARNING
338
+ - id: runsec.devops-security.dvs-019
339
+ metadata:
340
+ runsec_version: v1.0
341
+ confidence: |-
342
+ 0.9
343
+ exploit_scenario: |-
344
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
345
+ fix_template: |-
346
+ Обязательно задавать checksum/signature verification и policy-gate, блокирующий unverified bootstrap artifacts.
347
+ pattern-either:
348
+ - pattern: |-
349
+ ansible.builtin.get_url без checksum
350
+ remote-exec с raw URL script
351
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-019\\b'
352
+ message: |-
353
+ RunSec Detection [DVS-019]: CWE Final Certification
354
+ languages:
355
+ - generic
356
+ severity: WARNING
357
+ - id: runsec.devops-security.dvs-020
358
+ metadata:
359
+ runsec_version: v1.0
360
+ confidence: |-
361
+ 0.9
362
+ exploit_scenario: |-
363
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
364
+ fix_template: |-
365
+ Только verified artifacts: hash/signature gate до execute; запрет pipe-to-shell в Dockerfile.
366
+ pattern-either:
367
+ - pattern: |-
368
+ RUN curl -fsSL https://vendor/install.sh | bash
369
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-020\\b'
370
+ message: |-
371
+ RunSec Detection [DVS-020]: CWE-494
372
+ languages:
373
+ - generic
374
+ severity: WARNING
375
+ - id: runsec.devops-security.dvs-021
376
+ metadata:
377
+ runsec_version: v1.0
378
+ confidence: |-
379
+ 0.9
380
+ exploit_scenario: |-
381
+ Атакующий доставляет входные данные, соответствующие anti-pattern; реальный ущерб зависит от приёмника (sink), конфигурации и границ доверия.
382
+ fix_template: |-
383
+ Lockfile + immutable commit refs; policy deny git+https без SHA.
384
+ pattern-either:
385
+ - pattern: |-
386
+ pip install git+https://github.com/user/repo.git
387
+ npm install git+https://github.com/x/y.git
388
+ - pattern-regex: 'Vulnerable:\\s*DVS\\-021\\b'
389
+ message: |-
390
+ RunSec Detection [DVS-021]: CWE-829
391
+ languages:
392
+ - generic
393
+ severity: WARNING