checkmate5 5.1.0.dev1__py3-none-any.whl → 5.1.0.dev3__py3-none-any.whl

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 (57) hide show
  1. checkmate/contrib/plugins/all/aigraphcodescan/analyzer.py +1 -0
  2. checkmate/settings/defaults.py +0 -28
  3. {checkmate5-5.1.0.dev1.dist-info → checkmate5-5.1.0.dev3.dist-info}/METADATA +1 -1
  4. {checkmate5-5.1.0.dev1.dist-info → checkmate5-5.1.0.dev3.dist-info}/RECORD +8 -57
  5. checkmate/contrib/plugins/all/opengrep/__init__.py +0 -0
  6. checkmate/contrib/plugins/all/opengrep/analyzer.py +0 -150
  7. checkmate/contrib/plugins/all/opengrep/issues_data.py +0 -5
  8. checkmate/contrib/plugins/all/opengrep/opengrep_manylinux_x86 +0 -0
  9. checkmate/contrib/plugins/all/opengrep/setup.py +0 -13
  10. checkmate/contrib/plugins/cve/__init__.py +0 -0
  11. checkmate/contrib/plugins/cve/text4shell/__init__.py +0 -0
  12. checkmate/contrib/plugins/cve/text4shell/analyzer.py +0 -64
  13. checkmate/contrib/plugins/cve/text4shell/issues_data.py +0 -8
  14. checkmate/contrib/plugins/cve/text4shell/setup.py +0 -13
  15. checkmate/contrib/plugins/golang/__init__.py +0 -0
  16. checkmate/contrib/plugins/golang/gostaticcheck/__init__.py +0 -0
  17. checkmate/contrib/plugins/golang/gostaticcheck/analyzer.py +0 -94
  18. checkmate/contrib/plugins/golang/gostaticcheck/issues_data.py +0 -1246
  19. checkmate/contrib/plugins/golang/gostaticcheck/setup.py +0 -13
  20. checkmate/contrib/plugins/iac/__init__.py +0 -0
  21. checkmate/contrib/plugins/iac/kubescape/__init__.py +0 -0
  22. checkmate/contrib/plugins/iac/kubescape/analyzer.py +0 -115
  23. checkmate/contrib/plugins/iac/kubescape/issues_data.py +0 -636
  24. checkmate/contrib/plugins/iac/kubescape/setup.py +0 -14
  25. checkmate/contrib/plugins/iac/tfsec/__init__.py +0 -0
  26. checkmate/contrib/plugins/iac/tfsec/analyzer.py +0 -92
  27. checkmate/contrib/plugins/iac/tfsec/issues_data.py +0 -1917
  28. checkmate/contrib/plugins/iac/tfsec/setup.py +0 -13
  29. checkmate/contrib/plugins/java/__init__.py +0 -0
  30. checkmate/contrib/plugins/java/semgrepjava/__init__.py +0 -0
  31. checkmate/contrib/plugins/java/semgrepjava/analyzer.py +0 -96
  32. checkmate/contrib/plugins/java/semgrepjava/issues_data.py +0 -5
  33. checkmate/contrib/plugins/java/semgrepjava/setup.py +0 -13
  34. checkmate/contrib/plugins/javascript/__init__.py +0 -0
  35. checkmate/contrib/plugins/javascript/semgrepeslint/__init__.py +0 -0
  36. checkmate/contrib/plugins/javascript/semgrepeslint/analyzer.py +0 -95
  37. checkmate/contrib/plugins/javascript/semgrepeslint/issues_data.py +0 -6
  38. checkmate/contrib/plugins/javascript/semgrepeslint/setup.py +0 -13
  39. checkmate/contrib/plugins/perl/__init__.py +0 -0
  40. checkmate/contrib/plugins/perl/graudit/__init__.py +0 -0
  41. checkmate/contrib/plugins/perl/graudit/analyzer.py +0 -70
  42. checkmate/contrib/plugins/perl/graudit/issues_data.py +0 -8
  43. checkmate/contrib/plugins/perl/graudit/setup.py +0 -13
  44. checkmate/contrib/plugins/python/__init__.py +0 -0
  45. checkmate/contrib/plugins/python/bandit/__init__.py +0 -0
  46. checkmate/contrib/plugins/python/bandit/analyzer.py +0 -74
  47. checkmate/contrib/plugins/python/bandit/issues_data.py +0 -426
  48. checkmate/contrib/plugins/python/bandit/setup.py +0 -13
  49. checkmate/contrib/plugins/ruby/__init__.py +0 -0
  50. checkmate/contrib/plugins/ruby/brakeman/__init__.py +0 -0
  51. checkmate/contrib/plugins/ruby/brakeman/analyzer.py +0 -96
  52. checkmate/contrib/plugins/ruby/brakeman/issues_data.py +0 -518
  53. checkmate/contrib/plugins/ruby/brakeman/setup.py +0 -13
  54. {checkmate5-5.1.0.dev1.dist-info → checkmate5-5.1.0.dev3.dist-info}/WHEEL +0 -0
  55. {checkmate5-5.1.0.dev1.dist-info → checkmate5-5.1.0.dev3.dist-info}/entry_points.txt +0 -0
  56. {checkmate5-5.1.0.dev1.dist-info → checkmate5-5.1.0.dev3.dist-info}/licenses/LICENSE.txt +0 -0
  57. {checkmate5-5.1.0.dev1.dist-info → checkmate5-5.1.0.dev3.dist-info}/top_level.txt +0 -0
@@ -1,636 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
-
4
- issues_data = {
5
-
6
- "C-0030": {
7
- "title": "Ingress and Egress blocked",
8
- "display_name": "Ingress and Egress blocked",
9
- "severity": "1",
10
- "categories": [
11
- "security"
12
- ],
13
- "description": "Disable Ingress and Egress traffic on all pods wherever possible. It is recommended to define restrictive network policy on all new PODs, and then enable sources/destinations that this POD must communicate with."
14
- },
15
- "C-0075": {
16
- "title": "Image pull policy on latest tag",
17
- "display_name": "Image pull policy on latest tag",
18
- "severity": "1",
19
- "categories": [
20
- "security"
21
- ],
22
- "description": "While usage of the latest tag is not generally recommended, in some cases this is necessary. If it is, the ImagePullPolicy must be set to Always, otherwise Kubernetes may run an older image with the same name that happens to be present in the node cache. Note that using Always will not cause additional image downloads because Kubernetes will check the image hash of the local local against the registry and only pull the image if this hash has changed, which is exactly what users want when use the latest tag. This control will identify all PODs with latest tag that have ImagePullSecret not set to Always."
23
- },
24
- "C-0063": {
25
- "title": "Portforwarding privileges",
26
- "display_name": "Portforwarding privileges",
27
- "severity": "1",
28
- "categories": [
29
- "security"
30
- ],
31
- "description": "Attackers with relevant RBAC permission can use \u201ckubectl portforward\u201d command to establish direct communication with PODs from within the cluster or even remotely. Such communication will most likely bypass existing security measures in the cluster. This control determines which subjects have permissions to use this command."
32
- },
33
- "C-0034": {
34
- "title": "Automatic mapping of service account",
35
- "display_name": "Automatic mapping of service account",
36
- "severity": "1",
37
- "categories": [
38
- "security"
39
- ],
40
- "description": "Potential attacker may gain access to a POD and steal its service account token. Therefore, it is recommended to disable automatic mapping of the service account tokens in service account configuration and enable it only for PODs that need to use them."
41
- },
42
- "C-0002": {
43
- "title": "Exec into container",
44
- "display_name": "Exec into container",
45
- "severity": "1",
46
- "categories": [
47
- "security"
48
- ],
49
- "description": "Attackers with relevant permissions can run malicious commands in the context of legitimate containers in the cluster using \u201ckubectl exec\u201d command. This control determines which subjects have permissions to use this command."
50
- },
51
- "C-0001": {
52
- "title": "Forbidden Container Registries",
53
- "display_name": "Forbidden Container Registries",
54
- "severity": "1",
55
- "categories": [
56
- "security"
57
- ],
58
- "description": "In cases where the Kubernetes cluster is provided by a CSP (e.g., AKS in Azure, GKE in GCP, or EKS in AWS), compromised cloud credential can lead to the cluster takeover. Attackers may abuse cloud account credentials or IAM mechanism to the cluster\u2019s management layer."
59
- },
60
- "C-0006": {
61
- "title": "Allowed hostPath",
62
- "display_name": "Allowed hostPath",
63
- "severity": "1",
64
- "categories": [
65
- "security"
66
- ],
67
- "description": "Mounting host directory to the container can be abused to get access to sensitive data and gain persistence on the host machine."
68
- },
69
- "C-0007": {
70
- "title": "Data Destruction",
71
- "display_name": "Data Destruction",
72
- "severity": "1",
73
- "categories": [
74
- "security"
75
- ],
76
- "description": "Attackers may attempt to destroy data and resources in the cluster. This includes deleting deployments, configurations, storage, and compute resources. This control identifies all subjects that can delete resources."
77
- },
78
- "C-0004": {
79
- "title": "Resources memory limit and request",
80
- "display_name": "Resources memory limit and request",
81
- "severity": "1",
82
- "categories": [
83
- "security"
84
- ],
85
- "description": "This control identifies all Pods for which the memory limit is not set."
86
- },
87
- "C-0005": {
88
- "title": "Control plane hardening",
89
- "display_name": "Control plane hardening",
90
- "severity": "1",
91
- "categories": [
92
- "security"
93
- ],
94
- "description": "Kubernetes control plane API is running with non-secure port enabled which allows attackers to gain unprotected access to the cluster."
95
- },
96
- "C-0024": {
97
- "title": "Vulnerable application",
98
- "display_name": "Vulnerable application",
99
- "severity": "1",
100
- "categories": [
101
- "security"
102
- ],
103
- "description": "Running a vulnerable application in a cluster can enable an attacker initial access to the cluster. This control determines if pods/deployments have vulnerable images using ARMO vulnerability scan (must run vulnerability scan before running posture scan). "
104
- },
105
- "C-0025": {
106
- "title": "Application exploit (RCE)",
107
- "display_name": "Application exploit (RCE)",
108
- "severity": "1",
109
- "categories": [
110
- "security"
111
- ],
112
- "description": "Applications that are vulnerable to a remote code execution enable attackers to run malicious code in the cluster. This control determines if pods have vulnerable images with remote code execution using ARMO vulnerability scan (must run vulnerability scan before running posture scan)."
113
- },
114
- "C-0044": {
115
- "title": "Container hostPort",
116
- "display_name": "Container hostPort",
117
- "severity": "1",
118
- "categories": [
119
- "security"
120
- ],
121
- "description": "Configuring hostPort requires a particular port number. If two objects specify the same HostPort, they could not be deployed to the same node. It may prevent the second object from starting, even if Kubernetes will try reschedule it on another node, provided there are available nodes with sufficient amount of resources. Also, if the number of replicas of such workload is higher than the number of nodes, the deployment will consistently fail."
122
- },
123
- "C-0009": {
124
- "title": "Resource policies",
125
- "display_name": "Resource policies",
126
- "severity": "1",
127
- "categories": [
128
- "security"
129
- ],
130
- "description": "CPU and memory resources should have a limit set for every container or a namespace to prevent resource exhaustion. This control identifies all the Pods without resource limit definitions by checking their yaml definition file as well as their namespace LimitRange objects. It is also recommended to use ResourceQuota object to restrict overall namespace resources, but this is not verified by this control."
131
- },
132
- "C-0020": {
133
- "title": "Mount service principal",
134
- "display_name": "Mount service principal",
135
- "severity": "1",
136
- "categories": [
137
- "security"
138
- ],
139
- "description": "When a cluster is deployed in the cloud, in some cases attackers can leverage their access to a container in the cluster to gain cloud credentials. This control determines if any workload contains a hostPath volume."
140
- },
141
- "C-0021": {
142
- "title": "Exposed sensitive interfaces",
143
- "display_name": "Exposed sensitive interfaces",
144
- "severity": "1",
145
- "categories": [
146
- "security"
147
- ],
148
- "description": "Exposing a sensitive interface to the internet poses a security risk. It might enable attackers to run malicious code or deploy containers in the cluster. This control checks if known components (e.g. Kubeflow, Argo Workflows, etc.) are deployed and exposed services externally."
149
- },
150
- "C-0026": {
151
- "title": "Kubernetes CronJob",
152
- "display_name": "Kubernetes CronJob",
153
- "severity": "1",
154
- "categories": [
155
- "security"
156
- ],
157
- "description": "Attackers may use Kubernetes CronJob for scheduling execution of malicious code that would run as a POD in the cluster. This control lists all the CronJobs that exist in the cluster for the user to approve."
158
- },
159
- "C-0068": {
160
- "title": "PSP enabled",
161
- "display_name": "PSP enabled",
162
- "severity": "1",
163
- "categories": [
164
- "security"
165
- ],
166
- "description": "PSP enable fine-grained authorization of pod creation and it is important to enable it"
167
- },
168
- "C-0069": {
169
- "title": "Disable anonymous access to Kubelet service",
170
- "display_name": "Disable anonymous access to Kubelet service",
171
- "severity": "1",
172
- "categories": [
173
- "security"
174
- ],
175
- "description": "By default, requests to the kubelet's HTTPS endpoint that are not rejected by other configured authentication methods are treated as anonymous requests, and given a username of system:anonymous and a group of system:unauthenticated."
176
- },
177
- "C-0048": {
178
- "title": "HostPath mount",
179
- "display_name": "HostPath mount",
180
- "severity": "1",
181
- "categories": [
182
- "security"
183
- ],
184
- "description": "Mounting host directory to the container can be used by attackers to get access to the underlying host. This control identifies all the PODs using hostPath mount."
185
- },
186
- "C-0049": {
187
- "title": "Network mapping",
188
- "display_name": "Network mapping",
189
- "severity": "1",
190
- "categories": [
191
- "security"
192
- ],
193
- "description": "If no network policy is defined, attackers who gain access to a single container may use it to probe the network. This control lists all namespaces in which no network policies are defined."
194
- },
195
- "C-0046": {
196
- "title": "Insecure capabilities",
197
- "display_name": "Insecure capabilities",
198
- "severity": "1",
199
- "categories": [
200
- "security"
201
- ],
202
- "description": "Giving insecure or excsessive capabilities to a container can increase the impact of the container compromise. This control identifies all the PODs with dangerous capabilities (see documentation pages for details)."
203
- },
204
- "C-0047": {
205
- "title": "Exposed dashboard",
206
- "display_name": "Exposed dashboard",
207
- "severity": "1",
208
- "categories": [
209
- "security"
210
- ],
211
- "description": "Kubernetes dashboard versions before v2.0.1 do not support user authentication. If exposed externally, it will allow unauthenticated remote management of the cluster. This control checks presence of the kubernetes-dashboard deployment and its version number."
212
- },
213
- "C-0062": {
214
- "title": "Sudo in container entrypoint",
215
- "display_name": "Sudo in container entrypoint",
216
- "severity": "1",
217
- "categories": [
218
- "security"
219
- ],
220
- "description": "Adding sudo to a container entry point command may escalate process privileges and allow access to forbidden resources. This control checks all the entry point commands in all containers in the POD to find those that have sudo command."
221
- },
222
- "C-0045": {
223
- "title": "Writable hostPath mount",
224
- "display_name": "Writable hostPath mount",
225
- "severity": "1",
226
- "categories": [
227
- "security"
228
- ],
229
- "description": "Mounting host directory to the container can be used by attackers to get access to the underlying host and gain persistence."
230
- },
231
- "C-0042": {
232
- "title": "SSH server running inside container",
233
- "display_name": "SSH server running inside container",
234
- "severity": "1",
235
- "categories": [
236
- "security"
237
- ],
238
- "description": "An SSH server that is running inside a container may be used by attackers to get remote access to the container. This control checks if pods have an open SSH port (22/2222)."
239
- },
240
- "C-0065": {
241
- "title": "No impersonation",
242
- "display_name": "No impersonation",
243
- "severity": "1",
244
- "categories": [
245
- "security"
246
- ],
247
- "description": "Impersonation is an explicit RBAC permission to use other roles rather than the one assigned to a user, group or service account. This is sometimes needed for testing purposes. However, it is highly recommended not to use this capability in the production environments for daily operations. This control identifies all subjects whose roles include impersonate verb."
248
- },
249
- "C-0066": {
250
- "title": "Secret/ETCD encryption enabled",
251
- "display_name": "Secret/ETCD encryption enabled",
252
- "severity": "1",
253
- "categories": [
254
- "security"
255
- ],
256
- "description": "All Kubernetes Secrets are stored primarily in etcd therefore it is important to encrypt it."
257
- },
258
- "C-0041": {
259
- "title": "HostNetwork access",
260
- "display_name": "HostNetwork access",
261
- "severity": "1",
262
- "categories": [
263
- "security"
264
- ],
265
- "description": "Potential attackers may gain access to a POD and inherit access to the entire host network. For example, in AWS case, they will have access to the entire VPC. This control identifies all the PODs with host network access enabled."
266
- },
267
- "C-0088": {
268
- "title": "RBAC enabled",
269
- "display_name": "RBAC enabled",
270
- "severity": "1",
271
- "categories": [
272
- "security"
273
- ],
274
- "description": "RBAC is the most advanced and well accepted mode of authorizing users of the Kubernetes API"
275
- },
276
- "C-0086": {
277
- "title": "CVE-2022-0492-cgroups-container-escape",
278
- "display_name": "CVE-2022-0492-cgroups-container-escape",
279
- "severity": "1",
280
- "categories": [
281
- "security"
282
- ],
283
- "description": "Linux Kernel vulnerability CVE-2022-0492 may allow malicious code running inside container to escape container isolation and gain root privileges on the entire node. When fixed Kernel version numbers will become available, this control will be modified to verify them and avoid false positive detections. This control identifies all the resources that don't deploy neither AppArmor nor SELinux, run as root or allow privige escalation or have corresponding dangerous capabilities."
284
- },
285
- "C-0039": {
286
- "title": "Malicious admission controller (mutating)",
287
- "display_name": "Malicious admission controller (mutating)",
288
- "severity": "1",
289
- "categories": [
290
- "security"
291
- ],
292
- "description": "Attackers may use mutating webhooks to intercept and modify all the resources in the cluster. This control lists all mutating webhook configurations that must be verified."
293
- },
294
- "C-0083": {
295
- "title": "Workloads with Critical vulnerabilities exposed to external traffic",
296
- "display_name": "Workloads with Critical vulnerabilities exposed to external traffic",
297
- "severity": "1",
298
- "categories": [
299
- "security"
300
- ],
301
- "description": "Container images with known critical vulnerabilities pose elevated risk if they are exposed to the external traffic. This control lists all images with such vulnerabilities if either LoadBalancer or NodePort service is assigned to them."
302
- },
303
- "C-0081": {
304
- "title": "CVE-2022-24348-argocddirtraversal",
305
- "display_name": "CVE-2022-24348-argocddirtraversal",
306
- "severity": "1",
307
- "categories": [
308
- "security"
309
- ],
310
- "description": "CVE-2022-24348 is a major software supply chain 0-day vulnerability in the popular open source CD platform Argo CD which can lead to privilege escalation and information disclosure."
311
- },
312
- "C-0035": {
313
- "title": "Cluster-admin binding",
314
- "display_name": "Cluster-admin binding",
315
- "severity": "1",
316
- "categories": [
317
- "security"
318
- ],
319
- "description": "Attackers who have cluster admin permissions (can perform any action on any resource), can take advantage of their privileges for malicious activities. This control determines which subjects have cluster admin permissions."
320
- },
321
- "C-0087": {
322
- "title": "CVE-2022-23648-containerd-fs-escape",
323
- "display_name": "CVE-2022-23648-containerd-fs-escape",
324
- "severity": "1",
325
- "categories": [
326
- "security"
327
- ],
328
- "description": "CVE-2022-23648 is a vulnerability of containerd enabling attacker to gain access to read-only copies of arbitrary files from the host using aspecially-crafted POD configuration yamls"
329
- },
330
- "C-0084": {
331
- "title": "Workloads with RCE vulnerabilities exposed to external traffic",
332
- "display_name": "Workloads with RCE vulnerabilities exposed to external traffic",
333
- "severity": "1",
334
- "categories": [
335
- "security"
336
- ],
337
- "description": "Container images with known Remote Code Execution (RCE) vulnerabilities pose significantly higher risk if they are exposed to the external traffic. This control lists all images with such vulnerabilities if their POD has either LoadBalancer or NodePort service."
338
- },
339
- "C-0085": {
340
- "title": "Workloads with excessive amount of vulnerabilities",
341
- "display_name": "Workloads with excessive amount of vulnerabilities",
342
- "severity": "1",
343
- "categories": [
344
- "security"
345
- ],
346
- "description": "Container images with multiple Critical and High sevirity vulnerabilities increase the risk of potential exploit. This control lists all such images according to the threashold provided by the customer."
347
- },
348
- "C-0060": {
349
- "title": "Namespace without service accounts",
350
- "display_name": "Namespace without service accounts",
351
- "severity": "1",
352
- "categories": [
353
- "security"
354
- ],
355
- "description": "It is recommended not to use default service account anywhere in production environment. This control identifies all namespaces without explicit non-default service account."
356
- },
357
- "C-0074": {
358
- "title": "Containers mounting Docker socket",
359
- "display_name": "Containers mounting Docker socket",
360
- "severity": "1",
361
- "categories": [
362
- "security"
363
- ],
364
- "description": "Mounting Docker socket (Unix socket) enables container to access Docker internals, retrieve sensitive information and execute Docker commands, if Docker runtime is available. This control identifies PODs that attempt to mount Docker socket for accessing Docker runtime."
365
- },
366
- "C-0061": {
367
- "title": "Pods in default namespace",
368
- "display_name": "Pods in default namespace",
369
- "severity": "1",
370
- "categories": [
371
- "security"
372
- ],
373
- "description": "It is recommended to avoid running PODs in cluster without explicit namespace assignment. This control identifies all the PODs running in the default namespace."
374
- },
375
- "C-0073": {
376
- "title": "Naked PODs",
377
- "display_name": "Naked PODs",
378
- "severity": "1",
379
- "categories": [
380
- "security"
381
- ],
382
- "description": "It is not recommended to create PODs without parental Deployment, ReplicaSet, StatefulSet etc.Manual creation if PODs may lead to a configuration drifts and other untracked changes in the system. Such PODs won't be automatically rescheduled by Kubernetes in case of a crash or infrastructure failure. This control identifies every POD that does not have corresponding parental object."
383
- },
384
- "C-0038": {
385
- "title": "Host PID/IPC privileges",
386
- "display_name": "Host PID/IPC privileges",
387
- "severity": "1",
388
- "categories": [
389
- "security"
390
- ],
391
- "description": "Containers should be isolated from the host machine as much as possible. The hostPID and hostIPC fields in deployment yaml may allow cross-container influence and may expose the host itself to potentially malicious or destructive actions. This control identifies all PODs using hostPID or hostIPC privileges."
392
- },
393
- "C-0067": {
394
- "title": "Audit logs enabled",
395
- "display_name": "Audit logs enabled",
396
- "severity": "1",
397
- "categories": [
398
- "security"
399
- ],
400
- "description": "Audit logging is an important security feature in Kubernetes, it enables the operator to track requests to the cluster. It is important to use it so the operator has a record of events happened in Kubernetes"
401
- },
402
- "C-0077": {
403
- "title": "K8s common labels usage",
404
- "display_name": "K8s common labels usage",
405
- "severity": "1",
406
- "categories": [
407
- "security"
408
- ],
409
- "description": "Kubernetes common labels help manage and monitor Kubernetes cluster using different tools such as kubectl, dashboard and others in an interoperable way. Refer to https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/ for more information. This control helps you find objects that don't have any of these labels defined."
410
- },
411
- "C-0076": {
412
- "title": "Label usage for resources",
413
- "display_name": "Label usage for resources",
414
- "severity": "1",
415
- "categories": [
416
- "security"
417
- ],
418
- "description": "It is recommended to set labels that identify semantic attributes of your application or deployment. For example, { app: myapp, tier: frontend, phase: test, deployment: v3 }. These labels can used to assign policies to logical groups of the deployments as well as for presentation and tracking purposes. This control helps you find deployments without any of the expected labels."
419
- },
420
- "C-0013": {
421
- "title": "Non-root containers",
422
- "display_name": "Non-root containers",
423
- "severity": "1",
424
- "categories": [
425
- "security"
426
- ],
427
- "description": "Potential attackers may gain access to a container and leverage its existing privileges to conduct an attack. Therefore, it is not recommended to deploy containers with root privileges unless it is absolutely necessary. This control identifies all the Pods running as root or can escalate to root."
428
- },
429
- "C-0012": {
430
- "title": "Applications credentials in configuration files",
431
- "display_name": "Applications credentials in configuration files",
432
- "severity": "1",
433
- "categories": [
434
- "security"
435
- ],
436
- "description": "Attackers who have access to configuration files can steal the stored secrets and use them. This control checks if ConfigMaps or pod specifications have sensitive information in their configuration."
437
- },
438
- "C-0015": {
439
- "title": "List Kubernetes secrets",
440
- "display_name": "List Kubernetes secrets",
441
- "severity": "1",
442
- "categories": [
443
- "security"
444
- ],
445
- "description": "Attackers who have permissions to access secrets can access sensitive information that might include credentials to various services. This control determines which user, group or service account can list/get secrets."
446
- },
447
- "C-0014": {
448
- "title": "Access Kubernetes dashboard",
449
- "display_name": "Access Kubernetes dashboard",
450
- "severity": "1",
451
- "categories": [
452
- "security"
453
- ],
454
- "description": "Attackers who gain access to the dashboard service account or have its RBAC permissions can use its network access to retrieve information about resources in the cluster or change them. This control checks if a subject that is not dashboard service account is bound to dashboard role/clusterrole, or - if anyone that is not the dashboard pod is associated with dashboard service account."
455
- },
456
- "C-0017": {
457
- "title": "Immutable container filesystem",
458
- "display_name": "Immutable container filesystem",
459
- "severity": "1",
460
- "categories": [
461
- "security"
462
- ],
463
- "description": "Mutable container filesystem can be abused to inject malicious code or data into containers. Use immutable (read-only) filesystem to limit potential attacks."
464
- },
465
- "C-0070": {
466
- "title": "Enforce Kubelet client TLS authentication",
467
- "display_name": "Enforce Kubelet client TLS authentication",
468
- "severity": "1",
469
- "categories": [
470
- "security"
471
- ],
472
- "description": "Kubelets are the node level orchestrator in Kubernetes control plane. They are publishing service port 10250 where they accept commands from API server. Operator must make sure that only API server is allowed to submit commands to Kubelet. This is done through client certificate verification, must configure Kubelet with client CA file to use for this purpose."
473
- },
474
- "C-0019": {
475
- "title": "Bash/cmd inside container",
476
- "display_name": "Bash/cmd inside container",
477
- "severity": "1",
478
- "categories": [
479
- "security"
480
- ],
481
- "description": "Attackers who can run new processes inside a container might use cmd/bash script inside a container to execute malicious code. This control determines which containers have bash/cmd inside it."
482
- },
483
- "C-0018": {
484
- "title": "Configured readiness probe",
485
- "display_name": "Configured readiness probe",
486
- "severity": "1",
487
- "categories": [
488
- "security"
489
- ],
490
- "description": "Readiness probe is intended to ensure that workload is ready to process network traffic. It is highly recommended to define readiness probe for every worker container. This control finds all the PODs where the readiness probe is not configured."
491
- },
492
- "C-0031": {
493
- "title": "Delete Kubernetes events",
494
- "display_name": "Delete Kubernetes events",
495
- "severity": "1",
496
- "categories": [
497
- "security"
498
- ],
499
- "description": "Attackers may delete Kubernetes events to avoid detection of their activity in the cluster. This control identifies all the subjects that can delete Kubernetes events."
500
- },
501
- "C-0016": {
502
- "title": "Allow privilege escalation",
503
- "display_name": "Allow privilege escalation",
504
- "severity": "1",
505
- "categories": [
506
- "security"
507
- ],
508
- "description": "Attackers may gain access to a container and uplift its privilege to enable excessive capabilities."
509
- },
510
- "C-0037": {
511
- "title": "CoreDNS poisoning",
512
- "display_name": "CoreDNS poisoning",
513
- "severity": "1",
514
- "categories": [
515
- "security"
516
- ],
517
- "description": "If attackers have permissions to modify the coredns ConfigMap they can change the behavior of the cluster\u2019s DNS, poison it, and override the network identity of other services. This control identifies all subjects allowed to update the 'coredns' configmap."
518
- },
519
- "C-0036": {
520
- "title": "Malicious admission controller (validating)",
521
- "display_name": "Malicious admission controller (validating)",
522
- "severity": "1",
523
- "categories": [
524
- "security"
525
- ],
526
- "description": "Attackers can use validating webhooks to intercept and discover all the resources in the cluster. This control lists all the validating webhook configurations that must be verified."
527
- },
528
- "C-0079": {
529
- "title": "CVE-2022-0185-linux-kernel-container-escape",
530
- "display_name": "CVE-2022-0185-linux-kernel-container-escape",
531
- "severity": "1",
532
- "categories": [
533
- "security"
534
- ],
535
- "description": "CVE-2022-0185 is a kernel vulnerability enabling privilege escalation and it can lead attackers to escape containers and take control over nodes. This control alerts on vulnerable kernel versions of Kubernetes nodes"
536
- },
537
- "C-0078": {
538
- "title": "Images from allowed registry",
539
- "display_name": "Images from allowed registry",
540
- "severity": "1",
541
- "categories": [
542
- "security"
543
- ],
544
- "description": "This control is intended to ensure that all the used container images are taken from the authorized repositories. It allows user to list all the approved repositories and will fail all the images taken from any repository outside of this list."
545
- },
546
- "C-0033": {
547
- "title": "Access tiller endpoint",
548
- "display_name": "Access tiller endpoint",
549
- "severity": "1",
550
- "categories": [
551
- "security"
552
- ],
553
- "description": "Attackers may run code on any container that is accessible to the tiller\u2019s service and perform actions in the cluster, using the tiller\u2019s service account, which often has high privileges. This control checks if unauthenticated version of the Tiller runs in the cluster."
554
- },
555
- "C-0059": {
556
- "title": "CVE-2021-25742-nginx-ingress-snippet-annotation-vulnerability",
557
- "display_name": "CVE-2021-25742-nginx-ingress-snippet-annotation-vulnerability",
558
- "severity": "1",
559
- "categories": [
560
- "security"
561
- ],
562
- "description": "Security issue in ingress-nginx where a user that can create or update ingress objects can use the custom snippets feature to obtain all secrets in the cluster (see more at https://github.com/kubernetes/ingress-nginx/issues/7837)"
563
- },
564
- "C-0058": {
565
- "title": "CVE-2021-25741 - Using symlink for arbitrary host file system access.",
566
- "display_name": "CVE-2021-25741 - Using symlink for arbitrary host file system access.",
567
- "severity": "1",
568
- "categories": [
569
- "security"
570
- ],
571
- "description": "A user may be able to create a container with subPath or subPathExpr volume mounts to access files & directories anywhere on the host filesystem. Following Kubernetes versions are affected: v1.22.0 - v1.22.1, v1.21.0 - v1.21.4, v1.20.0 - v1.20.10, version v1.19.14 and lower. This control checks the vulnerable versions and the actual usage of the subPath feature in all Pods in the cluster. If you want to learn more about the CVE, please refer to the CVE link: https://nvd.nist.gov/vuln/detail/CVE-2021-25741"
572
- },
573
- "C-0055": {
574
- "title": "Linux hardening",
575
- "display_name": "Linux hardening",
576
- "severity": "1",
577
- "categories": [
578
- "security"
579
- ],
580
- "description": "Containers may be given more privileges than they actually need. This can increase the potential impact of a container compromise."
581
- },
582
- "C-0054": {
583
- "title": "Cluster internal networking",
584
- "display_name": "Cluster internal networking",
585
- "severity": "1",
586
- "categories": [
587
- "security"
588
- ],
589
- "description": "If no network policy is defined, attackers who gain access to a container may use it to move laterally in the cluster. This control lists namespaces in which no network policy is defined."
590
- },
591
- "C-0057": {
592
- "title": "Privileged container",
593
- "display_name": "Privileged container",
594
- "severity": "1",
595
- "categories": [
596
- "security"
597
- ],
598
- "description": "Potential attackers may gain access to privileged containers and inherit access to the host resources. Therefore, it is not recommended to deploy privileged containers unless it is absolutely necessary. This control identifies all the privileged Pods."
599
- },
600
- "C-0056": {
601
- "title": "Configured liveness probe",
602
- "display_name": "Configured liveness probe",
603
- "severity": "1",
604
- "categories": [
605
- "security"
606
- ],
607
- "description": "Liveness probe is intended to ensure that workload remains healthy during its entire execution lifecycle, or otherwise restrat the container. It is highly recommended to define liveness probe for every worker container. This control finds all the PODs where the Liveness probe is not configured."
608
- },
609
- "C-0050": {
610
- "title": "Resources CPU limit and request",
611
- "display_name": "Resources CPU limit and request",
612
- "severity": "1",
613
- "categories": [
614
- "security"
615
- ],
616
- "description": "This control identifies all Pods for which the CPU limit is not set."
617
- },
618
- "C-0053": {
619
- "title": "Access container service account",
620
- "display_name": "Access container service account",
621
- "severity": "1",
622
- "categories": [
623
- "security"
624
- ],
625
- "description": "Attackers who obtain access to a pod can use its SA token to communicate with KubeAPI server. All PODs with SA token mounted (if such token has a Role or a ClusterRole binding) are considerred potentially dangerous."
626
- },
627
- "C-0052": {
628
- "title": "Instance Metadata API",
629
- "display_name": "Instance Metadata API",
630
- "severity": "1",
631
- "categories": [
632
- "security"
633
- ],
634
- "description": "Attackers who gain access to a container, may query the metadata API service for getting information about the underlying node. This control checks if there is access from the nodes to cloud providers instance metadata services."
635
- }
636
- }
@@ -1,14 +0,0 @@
1
- from .analyzer import KubescapeAnalyzer
2
- from .issues_data import issues_data
3
-
4
- analyzers = {
5
- 'kubescape':
6
- {
7
- 'name': 'kubescape',
8
- 'title': 'kubescape',
9
- 'class': KubescapeAnalyzer,
10
- 'language': 'iac',
11
- 'issues_data': issues_data,
12
- },
13
- }
14
-
File without changes