@sagentix-inc/evidence-collector 0.3.1 → 0.3.3
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/README.md +21 -0
- package/apps/sos-app/src/data/checks/prowler_aws.json +1455 -34
- package/apps/sos-app/src/data/checks/prowler_azure.json +497 -0
- package/apps/sos-app/src/data/checks/prowler_cloudflare.json +205 -1
- package/apps/sos-app/src/data/checks/prowler_gcp.json +175 -0
- package/apps/sos-app/src/data/checks/prowler_github.json +191 -1
- package/apps/sos-app/src/data/checks/prowler_googleworkspace.json +457 -1
- package/apps/sos-app/src/data/checks/prowler_kubernetes.json +133 -0
- package/apps/sos-app/src/data/checks/prowler_m365.json +574 -0
- package/apps/sos-app/src/data/checks/prowler_okta.json +205 -1
- package/collector/package.json +1 -1
- package/collector/src/agent.js +38 -1
- package/collector/src/channel.js +23 -2
- package/collector/src/cli.js +43 -4
- package/collector/src/config.js +18 -0
- package/collector/src/deliveries.js +244 -0
- package/collector/src/report.js +3 -1
- package/collector/src/sources/prowler.js +80 -25
- package/collector/src/vault.js +303 -0
- package/package.json +1 -1
|
@@ -201,6 +201,13 @@
|
|
|
201
201
|
"evidenceType": "Configuration",
|
|
202
202
|
"severity": "high"
|
|
203
203
|
},
|
|
204
|
+
{
|
|
205
|
+
"id": "prowler.kubernetes.apiserver_strong_ciphers_only",
|
|
206
|
+
"title": "API Server pod uses only strong cryptographic TLS cipher suites",
|
|
207
|
+
"scope": "Prowler 5.47.0 check apiserver_strong_ciphers_only (Kubernetes apiserver, resource type Pod): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
208
|
+
"evidenceType": "Configuration",
|
|
209
|
+
"severity": "medium"
|
|
210
|
+
},
|
|
204
211
|
{
|
|
205
212
|
"id": "prowler.kubernetes.apiserver_tls_config",
|
|
206
213
|
"title": "API server pod has --tls-cert-file and --tls-private-key-file configured",
|
|
@@ -222,6 +229,13 @@
|
|
|
222
229
|
"evidenceType": "Configuration",
|
|
223
230
|
"severity": "medium"
|
|
224
231
|
},
|
|
232
|
+
{
|
|
233
|
+
"id": "prowler.kubernetes.controllermanager_garbage_collection",
|
|
234
|
+
"title": "Controller Manager pod does not use the default --terminated-pod-gc-threshold value",
|
|
235
|
+
"scope": "Prowler 5.47.0 check controllermanager_garbage_collection (Kubernetes controllermanager, resource type Pod): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
236
|
+
"evidenceType": "Configuration",
|
|
237
|
+
"severity": "high"
|
|
238
|
+
},
|
|
225
239
|
{
|
|
226
240
|
"id": "prowler.kubernetes.controllermanager_root_ca_file_set",
|
|
227
241
|
"title": "Controller Manager pod has --root-ca-file argument set",
|
|
@@ -257,6 +271,13 @@
|
|
|
257
271
|
"evidenceType": "Configuration",
|
|
258
272
|
"severity": "medium"
|
|
259
273
|
},
|
|
274
|
+
{
|
|
275
|
+
"id": "prowler.kubernetes.core_cpu_requests_set",
|
|
276
|
+
"title": "Pod containers have CPU requests set",
|
|
277
|
+
"scope": "Prowler 5.47.0 check core_cpu_requests_set (Kubernetes core, resource type KubernetesPod): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
278
|
+
"evidenceType": "Configuration",
|
|
279
|
+
"severity": "medium"
|
|
280
|
+
},
|
|
260
281
|
{
|
|
261
282
|
"id": "prowler.kubernetes.core_image_tag_fixed",
|
|
262
283
|
"title": "Container images use fixed tags",
|
|
@@ -278,6 +299,13 @@
|
|
|
278
299
|
"evidenceType": "Configuration",
|
|
279
300
|
"severity": "medium"
|
|
280
301
|
},
|
|
302
|
+
{
|
|
303
|
+
"id": "prowler.kubernetes.core_memory_requests_set",
|
|
304
|
+
"title": "Container memory requests are configured",
|
|
305
|
+
"scope": "Prowler 5.47.0 check core_memory_requests_set (Kubernetes core, resource type Pod): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
306
|
+
"evidenceType": "Configuration",
|
|
307
|
+
"severity": "medium"
|
|
308
|
+
},
|
|
281
309
|
{
|
|
282
310
|
"id": "prowler.kubernetes.core_minimize_admission_hostport_containers",
|
|
283
311
|
"title": "Pod does not use HostPorts",
|
|
@@ -313,6 +341,13 @@
|
|
|
313
341
|
"evidenceType": "Configuration",
|
|
314
342
|
"severity": "high"
|
|
315
343
|
},
|
|
344
|
+
{
|
|
345
|
+
"id": "prowler.kubernetes.core_minimize_hostIPC_containers",
|
|
346
|
+
"title": "Pod does not use the host IPC namespace",
|
|
347
|
+
"scope": "Prowler 5.47.0 check core_minimize_hostIPC_containers (Kubernetes core, resource type Pod): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
348
|
+
"evidenceType": "Configuration",
|
|
349
|
+
"severity": "high"
|
|
350
|
+
},
|
|
316
351
|
{
|
|
317
352
|
"id": "prowler.kubernetes.core_minimize_hostNetwork_containers",
|
|
318
353
|
"title": "Pod does not use hostNetwork",
|
|
@@ -320,6 +355,13 @@
|
|
|
320
355
|
"evidenceType": "Configuration",
|
|
321
356
|
"severity": "high"
|
|
322
357
|
},
|
|
358
|
+
{
|
|
359
|
+
"id": "prowler.kubernetes.core_minimize_hostPID_containers",
|
|
360
|
+
"title": "Pod does not use the host PID namespace",
|
|
361
|
+
"scope": "Prowler 5.47.0 check core_minimize_hostPID_containers (Kubernetes core, resource type Pod): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
362
|
+
"evidenceType": "Configuration",
|
|
363
|
+
"severity": "high"
|
|
364
|
+
},
|
|
323
365
|
{
|
|
324
366
|
"id": "prowler.kubernetes.core_minimize_hostpath_volume_mounts",
|
|
325
367
|
"title": "Pod does not use hostPath volumes",
|
|
@@ -348,6 +390,13 @@
|
|
|
348
390
|
"evidenceType": "Configuration",
|
|
349
391
|
"severity": "high"
|
|
350
392
|
},
|
|
393
|
+
{
|
|
394
|
+
"id": "prowler.kubernetes.core_no_secrets_envs",
|
|
395
|
+
"title": "Pod does not contain secret environment variables",
|
|
396
|
+
"scope": "Prowler 5.47.0 check core_no_secrets_envs (Kubernetes core, resource type Pod): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
397
|
+
"evidenceType": "Configuration",
|
|
398
|
+
"severity": "high"
|
|
399
|
+
},
|
|
351
400
|
{
|
|
352
401
|
"id": "prowler.kubernetes.core_readiness_probe_configured",
|
|
353
402
|
"title": "Regular pod containers have readiness probes configured",
|
|
@@ -362,6 +411,13 @@
|
|
|
362
411
|
"evidenceType": "Configuration",
|
|
363
412
|
"severity": "medium"
|
|
364
413
|
},
|
|
414
|
+
{
|
|
415
|
+
"id": "prowler.kubernetes.core_seccomp_profile_docker_default",
|
|
416
|
+
"title": "Pod has the docker/default (RuntimeDefault) seccomp profile at pod level or for all containers",
|
|
417
|
+
"scope": "Prowler 5.47.0 check core_seccomp_profile_docker_default (Kubernetes core, resource type Pod): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
418
|
+
"evidenceType": "Configuration",
|
|
419
|
+
"severity": "high"
|
|
420
|
+
},
|
|
365
421
|
{
|
|
366
422
|
"id": "prowler.kubernetes.etcd_client_cert_auth",
|
|
367
423
|
"title": "Etcd pod has client certificate authentication enabled (--client-cert-auth=true)",
|
|
@@ -404,6 +460,13 @@
|
|
|
404
460
|
"evidenceType": "Configuration",
|
|
405
461
|
"severity": "high"
|
|
406
462
|
},
|
|
463
|
+
{
|
|
464
|
+
"id": "prowler.kubernetes.etcd_unique_ca",
|
|
465
|
+
"title": "Etcd pod uses a unique Certificate Authority distinct from the Kubernetes API server CA",
|
|
466
|
+
"scope": "Prowler 5.47.0 check etcd_unique_ca (Kubernetes etcd, resource type Pod): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
467
|
+
"evidenceType": "Configuration",
|
|
468
|
+
"severity": "high"
|
|
469
|
+
},
|
|
407
470
|
{
|
|
408
471
|
"id": "prowler.kubernetes.kubelet_authorization_mode",
|
|
409
472
|
"title": "Kubelet --authorization-mode is not set to AlwaysAllow",
|
|
@@ -418,6 +481,41 @@
|
|
|
418
481
|
"evidenceType": "Configuration",
|
|
419
482
|
"severity": "high"
|
|
420
483
|
},
|
|
484
|
+
{
|
|
485
|
+
"id": "prowler.kubernetes.kubelet_conf_file_ownership",
|
|
486
|
+
"title": "Node kubelet.conf file ownership is set to root:root",
|
|
487
|
+
"scope": "Prowler 5.47.0 check kubelet_conf_file_ownership (Kubernetes kubelet, resource type Node): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
488
|
+
"evidenceType": "Configuration",
|
|
489
|
+
"severity": "high"
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"id": "prowler.kubernetes.kubelet_conf_file_permissions",
|
|
493
|
+
"title": "Node kubelet.conf file permissions are set to 600 or more restrictive",
|
|
494
|
+
"scope": "Prowler 5.47.0 check kubelet_conf_file_permissions (Kubernetes kubelet, resource type Node): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
495
|
+
"evidenceType": "Configuration",
|
|
496
|
+
"severity": "high"
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"id": "prowler.kubernetes.kubelet_config_yaml_ownership",
|
|
500
|
+
"title": "Node kubelet config.yaml file ownership is root:root",
|
|
501
|
+
"scope": "Prowler 5.47.0 check kubelet_config_yaml_ownership (Kubernetes kubelet, resource type Node): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
502
|
+
"evidenceType": "Configuration",
|
|
503
|
+
"severity": "high"
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
"id": "prowler.kubernetes.kubelet_config_yaml_permissions",
|
|
507
|
+
"title": "Kubelet config.yaml file permissions on the node are set to 600 or more restrictive",
|
|
508
|
+
"scope": "Prowler 5.47.0 check kubelet_config_yaml_permissions (Kubernetes kubelet, resource type Node): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
509
|
+
"evidenceType": "Configuration",
|
|
510
|
+
"severity": "high"
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
"id": "prowler.kubernetes.kubelet_disable_anonymous_auth",
|
|
514
|
+
"title": "Kubelet anonymous authentication is disabled",
|
|
515
|
+
"scope": "Prowler 5.47.0 check kubelet_disable_anonymous_auth (Kubernetes kubelet, resource type ConfigMap): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
516
|
+
"evidenceType": "Configuration",
|
|
517
|
+
"severity": "high"
|
|
518
|
+
},
|
|
421
519
|
{
|
|
422
520
|
"id": "prowler.kubernetes.kubelet_disable_read_only_port",
|
|
423
521
|
"title": "Kubelet read-only port is disabled (set to 0)",
|
|
@@ -425,6 +523,20 @@
|
|
|
425
523
|
"evidenceType": "Configuration",
|
|
426
524
|
"severity": "medium"
|
|
427
525
|
},
|
|
526
|
+
{
|
|
527
|
+
"id": "prowler.kubernetes.kubelet_event_record_qps",
|
|
528
|
+
"title": "Kubelet eventRecordQPS is set to a positive value",
|
|
529
|
+
"scope": "Prowler 5.47.0 check kubelet_event_record_qps (Kubernetes kubelet, resource type ConfigMap): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
530
|
+
"evidenceType": "Configuration",
|
|
531
|
+
"severity": "high"
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"id": "prowler.kubernetes.kubelet_manage_iptables",
|
|
535
|
+
"title": "Kubelet configuration has makeIPTablesUtilChains set to true",
|
|
536
|
+
"scope": "Prowler 5.47.0 check kubelet_manage_iptables (Kubernetes kubelet, resource type ConfigMap): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
537
|
+
"evidenceType": "Configuration",
|
|
538
|
+
"severity": "medium"
|
|
539
|
+
},
|
|
428
540
|
{
|
|
429
541
|
"id": "prowler.kubernetes.kubelet_rotate_certificates",
|
|
430
542
|
"title": "Kubelet client certificate rotation is enabled",
|
|
@@ -432,6 +544,20 @@
|
|
|
432
544
|
"evidenceType": "Configuration",
|
|
433
545
|
"severity": "high"
|
|
434
546
|
},
|
|
547
|
+
{
|
|
548
|
+
"id": "prowler.kubernetes.kubelet_service_file_ownership_root",
|
|
549
|
+
"title": "Kubelet service file on the node is owned by root:root",
|
|
550
|
+
"scope": "Prowler 5.47.0 check kubelet_service_file_ownership_root (Kubernetes kubelet, resource type Node): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
551
|
+
"evidenceType": "Configuration",
|
|
552
|
+
"severity": "high"
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
"id": "prowler.kubernetes.kubelet_service_file_permissions",
|
|
556
|
+
"title": "Node kubelet service file permissions are set to 600 or more restrictive",
|
|
557
|
+
"scope": "Prowler 5.47.0 check kubelet_service_file_permissions (Kubernetes kubelet, resource type Node): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
558
|
+
"evidenceType": "Configuration",
|
|
559
|
+
"severity": "high"
|
|
560
|
+
},
|
|
435
561
|
{
|
|
436
562
|
"id": "prowler.kubernetes.kubelet_streaming_connection_timeout",
|
|
437
563
|
"title": "Kubelet streaming connection idle timeout is not set to 0",
|
|
@@ -439,6 +565,13 @@
|
|
|
439
565
|
"evidenceType": "Configuration",
|
|
440
566
|
"severity": "medium"
|
|
441
567
|
},
|
|
568
|
+
{
|
|
569
|
+
"id": "prowler.kubernetes.kubelet_strong_ciphers_only",
|
|
570
|
+
"title": "Kubelet uses only strong TLS cipher suites",
|
|
571
|
+
"scope": "Prowler 5.47.0 check kubelet_strong_ciphers_only (Kubernetes kubelet, resource type ConfigMap): one result per resource Prowler evaluates; shows one setting, not the whole control.",
|
|
572
|
+
"evidenceType": "Configuration",
|
|
573
|
+
"severity": "medium"
|
|
574
|
+
},
|
|
442
575
|
{
|
|
443
576
|
"id": "prowler.kubernetes.kubelet_tls_cert_and_key",
|
|
444
577
|
"title": "Kubelet has TLS certificate and private key files configured",
|