@codacy/tools-checkov-3 0.13.0 → 0.15.0
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 +17 -10
- package/dist/index.js +279 -198
- package/dist/metadata.js +24 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# @codacy/tools-checkov-3
|
|
2
2
|
|
|
3
3
|
## Table of Contents
|
|
4
|
+
|
|
4
5
|
- [Overview](#overview)
|
|
5
6
|
- [Updating patterns](#updating-patterns)
|
|
6
7
|
- [Updating the Checkov version](#updating-the-checkov-version)
|
|
@@ -13,16 +14,16 @@
|
|
|
13
14
|
|
|
14
15
|
Infrastructure-as-Code security scanner using the [Checkov](https://www.checkov.io/) binary. Scans Terraform, CloudFormation, Kubernetes, Dockerfile, and many other IaC frameworks for security misconfigurations. Uses the CLI execution strategy with Python/pip installation into an isolated virtual environment.
|
|
15
16
|
|
|
16
|
-
| Property
|
|
17
|
-
|
|
18
|
-
| Tool ID
|
|
19
|
-
| Codacy UUID
|
|
20
|
-
| Strategy
|
|
21
|
-
| Languages
|
|
22
|
-
| Binary
|
|
23
|
-
| File patterns
|
|
24
|
-
| Pattern count
|
|
25
|
-
| Pattern ID format | `Checkov_{check_id}` (e.g. `Checkov_CKV_AWS_41`)
|
|
17
|
+
| Property | Value |
|
|
18
|
+
| ----------------- | ---------------------------------------------------------------- |
|
|
19
|
+
| Tool ID | `Checkov` |
|
|
20
|
+
| Codacy UUID | `13af9d89-1ce5-4fec-a168-765c3e7b26b3` |
|
|
21
|
+
| Strategy | CLI |
|
|
22
|
+
| Languages | JSON, YAML, Terraform |
|
|
23
|
+
| Binary | `checkov` (Python package) |
|
|
24
|
+
| File patterns | `**/*.tf`, `**/*.yaml`, `**/*.yml`, `**/*.json`, `**/Dockerfile` |
|
|
25
|
+
| Pattern count | ~1,358 |
|
|
26
|
+
| Pattern ID format | `Checkov_{check_id}` (e.g. `Checkov_CKV_AWS_41`) |
|
|
26
27
|
|
|
27
28
|
## Updating patterns
|
|
28
29
|
|
|
@@ -67,3 +68,9 @@ pnpm test
|
|
|
67
68
|
- **Pattern filtering**: Uses `--check CKV_xxx,CKV_yyy,...` to run only specific checks. The `Checkov_` prefix is stripped from pattern IDs to get the raw check ID.
|
|
68
69
|
- **Config files**: Looks for `.checkov.yaml` or `.checkov.yml`. When local config is active, passes `--config-file <path>`.
|
|
69
70
|
- **Parsing errors**: Checkov reports `parsing_errors` in its JSON output, which are surfaced as `AnalysisError` objects with `kind: "ParsingError"`.
|
|
71
|
+
- **Preset mappings (`src/pattern-mappings.json`)**: gates 54 of the 1,358 patterns on a detected preset (Dockerfile, Terraform, GitHub Actions, CircleCI, GitLab CI, Bitbucket Pipelines, Azure Pipelines), so `init --auto` doesn't enable e.g. GitHub Actions checks in a repo with no `.github/workflows/`. The remaining 1,304 patterns stay universal (enabled everywhere) until their detection story is solved — this is deliberately conservative rather than approximate:
|
|
72
|
+
- `"Terraform"` maps **only** `CKV_TF_` (2 patterns — Terraform module-source hygiene, e.g. "use a commit hash"). The much larger cloud-provider families (`CKV_AWS_` 384, `CKV_AZURE_` 247, `CKV_GCP_` 124, and 12 smaller clouds — ~1,091 patterns total) are **not** Terraform-specific: Checkov evaluates the same resource-policy checks against CloudFormation/ARM/Bicep/Serverless Framework templates too (plain YAML/JSON, no `.tf` file involved) — confirmed by Codacy's own pattern metadata, where every single pattern carries the identical `languages: ["JSON", "YAML", "Terraform"]`. Gating them on `.tf` presence would silently drop all cloud checks for a CloudFormation/ARM/Serverless-only repo — a real false negative, not just noise the old universal behavior already had. They stay universal until discovery can recognize those other IaC formats too.
|
|
73
|
+
- Each CI platform also has a **second**, easily-confused prefix family for that platform's repo/org governance settings as managed via its own Terraform provider (e.g. `CKV_GIT_`/`CKV_GITHUB_` vs. the mapped `CKV_GHA_`; `CKV_GLB_`/`CKV_GITLAB_` vs. the mapped `CKV_GITLABCI_`). Those governance patterns need Terraform-provider-content parsing, not file presence, so they're intentionally left out of the mapping (40 patterns, universal for now).
|
|
74
|
+
- `CKV_K8S_`/`CKV2_K8S_`/`CKV_ARGO_` (121 patterns) are also left out — a bare Kubernetes manifest needs YAML content-sniffing (`apiVersion`/`kind`), not just a `.yaml` extension.
|
|
75
|
+
- `CKV_ANSIBLE_`/`CKV2_ANSIBLE_` (12) and `CKV_OPENAPI_` (21) are left out too — there's no Ansible-playbook or OpenAPI/AsyncAPI-spec detector in `discover()` at all yet.
|
|
76
|
+
- `CKV_SECRET_` (18) and `CKV_BCW_` (1) are excluded from every preset by design and stay universal — secret-scanning shouldn't be suppressed by any framework gate.
|
package/dist/index.js
CHANGED
|
@@ -57,7 +57,7 @@ var patterns_default = [
|
|
|
57
57
|
severityLevel: "High",
|
|
58
58
|
title: "Ensure HTTPS URL usage with uri module",
|
|
59
59
|
enabled: true,
|
|
60
|
-
languages: ["
|
|
60
|
+
languages: ["YAML", "JSON", "Terraform"],
|
|
61
61
|
parameters: []
|
|
62
62
|
},
|
|
63
63
|
{
|
|
@@ -66,7 +66,7 @@ var patterns_default = [
|
|
|
66
66
|
severityLevel: "High",
|
|
67
67
|
title: "Ensure HTTPS URL is used with get_url",
|
|
68
68
|
enabled: true,
|
|
69
|
-
languages: ["
|
|
69
|
+
languages: ["YAML", "JSON", "Terraform"],
|
|
70
70
|
parameters: []
|
|
71
71
|
},
|
|
72
72
|
{
|
|
@@ -156,7 +156,7 @@ var patterns_default = [
|
|
|
156
156
|
severityLevel: "High",
|
|
157
157
|
title: "Ensure Auto Scaling Groups Associated with Load Balancers Use Elastic Load Balancing Health Checks",
|
|
158
158
|
enabled: true,
|
|
159
|
-
languages: ["
|
|
159
|
+
languages: ["Terraform"],
|
|
160
160
|
parameters: [],
|
|
161
161
|
tags: ["aws"]
|
|
162
162
|
},
|
|
@@ -166,7 +166,7 @@ var patterns_default = [
|
|
|
166
166
|
severityLevel: "Warning",
|
|
167
167
|
title: "Ensure Auto Scaling is Enabled on DynamoDB Tables",
|
|
168
168
|
enabled: true,
|
|
169
|
-
languages: ["
|
|
169
|
+
languages: ["Terraform"],
|
|
170
170
|
parameters: [],
|
|
171
171
|
tags: ["aws"]
|
|
172
172
|
},
|
|
@@ -230,7 +230,7 @@ var patterns_default = [
|
|
|
230
230
|
severityLevel: "High",
|
|
231
231
|
title: "Ensure Route53 A Record Has Attached Resource",
|
|
232
232
|
enabled: true,
|
|
233
|
-
languages: ["
|
|
233
|
+
languages: ["Terraform"],
|
|
234
234
|
parameters: [],
|
|
235
235
|
tags: ["aws"]
|
|
236
236
|
},
|
|
@@ -555,7 +555,7 @@ var patterns_default = [
|
|
|
555
555
|
severityLevel: "Warning",
|
|
556
556
|
title: "Ensure Dedicated Master Node is Enabled for ElasticSearch/OpenSearch",
|
|
557
557
|
enabled: true,
|
|
558
|
-
languages: ["
|
|
558
|
+
languages: ["Terraform"],
|
|
559
559
|
parameters: [],
|
|
560
560
|
tags: ["aws"]
|
|
561
561
|
},
|
|
@@ -574,7 +574,7 @@ var patterns_default = [
|
|
|
574
574
|
severityLevel: "Warning",
|
|
575
575
|
title: "Ensure RDS Instance Has Copy Tags to Snapshots Enabled",
|
|
576
576
|
enabled: true,
|
|
577
|
-
languages: ["
|
|
577
|
+
languages: ["Terraform"],
|
|
578
578
|
parameters: [],
|
|
579
579
|
tags: ["aws"]
|
|
580
580
|
},
|
|
@@ -584,7 +584,7 @@ var patterns_default = [
|
|
|
584
584
|
severityLevel: "Warning",
|
|
585
585
|
title: "Ensure S3 Bucket Has Lifecycle Configuration",
|
|
586
586
|
enabled: true,
|
|
587
|
-
languages: ["
|
|
587
|
+
languages: ["Terraform"],
|
|
588
588
|
parameters: [],
|
|
589
589
|
tags: ["aws"]
|
|
590
590
|
},
|
|
@@ -1261,7 +1261,7 @@ var patterns_default = [
|
|
|
1261
1261
|
severityLevel: "Warning",
|
|
1262
1262
|
title: "Ensure Virtual Machines Utilize Managed Disks",
|
|
1263
1263
|
enabled: true,
|
|
1264
|
-
languages: ["
|
|
1264
|
+
languages: ["Terraform"],
|
|
1265
1265
|
parameters: []
|
|
1266
1266
|
},
|
|
1267
1267
|
{
|
|
@@ -1459,7 +1459,7 @@ var patterns_default = [
|
|
|
1459
1459
|
severityLevel: "Warning",
|
|
1460
1460
|
title: "Ensure PostgreSQL Database Flag 'log_duration' Is Set to 'on'",
|
|
1461
1461
|
enabled: true,
|
|
1462
|
-
languages: ["
|
|
1462
|
+
languages: ["SQL"],
|
|
1463
1463
|
parameters: [],
|
|
1464
1464
|
tags: ["gcp"]
|
|
1465
1465
|
},
|
|
@@ -1478,7 +1478,7 @@ var patterns_default = [
|
|
|
1478
1478
|
severityLevel: "Warning",
|
|
1479
1479
|
title: "Ensure PostgreSQL Database Flag 'log_parser_stats' Is Set to 'off'",
|
|
1480
1480
|
enabled: true,
|
|
1481
|
-
languages: ["
|
|
1481
|
+
languages: ["SQL"],
|
|
1482
1482
|
parameters: [],
|
|
1483
1483
|
tags: ["gcp"]
|
|
1484
1484
|
},
|
|
@@ -1488,7 +1488,7 @@ var patterns_default = [
|
|
|
1488
1488
|
severityLevel: "Warning",
|
|
1489
1489
|
title: "Ensure PostgreSQL Database Flag 'log_planner_stats' Is Set to 'off'",
|
|
1490
1490
|
enabled: true,
|
|
1491
|
-
languages: ["
|
|
1491
|
+
languages: ["Terraform"],
|
|
1492
1492
|
parameters: [],
|
|
1493
1493
|
tags: ["googlecloudplatform"]
|
|
1494
1494
|
},
|
|
@@ -1498,7 +1498,7 @@ var patterns_default = [
|
|
|
1498
1498
|
severityLevel: "Warning",
|
|
1499
1499
|
title: "Ensure PostgreSQL Database Flag 'log_statement_stats' Is Set to 'off'",
|
|
1500
1500
|
enabled: true,
|
|
1501
|
-
languages: ["
|
|
1501
|
+
languages: ["SQL", "Terraform"],
|
|
1502
1502
|
parameters: [],
|
|
1503
1503
|
tags: ["gcp"]
|
|
1504
1504
|
},
|
|
@@ -1970,7 +1970,7 @@ var patterns_default = [
|
|
|
1970
1970
|
severityLevel: "Warning",
|
|
1971
1971
|
title: "Ensure OSS Bucket Has Transfer Acceleration Enabled",
|
|
1972
1972
|
enabled: true,
|
|
1973
|
-
languages: ["
|
|
1973
|
+
languages: ["Terraform"],
|
|
1974
1974
|
parameters: [],
|
|
1975
1975
|
tags: ["alibabacloud", "oss"]
|
|
1976
1976
|
},
|
|
@@ -2169,7 +2169,7 @@ var patterns_default = [
|
|
|
2169
2169
|
severityLevel: "Warning",
|
|
2170
2170
|
title: "Ensure Kubernetes Node Pools Are Set to Auto Repair",
|
|
2171
2171
|
enabled: true,
|
|
2172
|
-
languages: ["
|
|
2172
|
+
languages: ["Terraform", "YAML"],
|
|
2173
2173
|
parameters: [],
|
|
2174
2174
|
tags: ["alibabacloud", "kubernetes"]
|
|
2175
2175
|
},
|
|
@@ -2197,7 +2197,7 @@ var patterns_default = [
|
|
|
2197
2197
|
severityLevel: "Warning",
|
|
2198
2198
|
title: "Ensure RDS Instance Has log_duration Enabled",
|
|
2199
2199
|
enabled: true,
|
|
2200
|
-
languages: ["
|
|
2200
|
+
languages: ["Terraform"],
|
|
2201
2201
|
parameters: [],
|
|
2202
2202
|
tags: ["alibabacloud", "rds"]
|
|
2203
2203
|
},
|
|
@@ -2333,7 +2333,7 @@ var patterns_default = [
|
|
|
2333
2333
|
severityLevel: "High",
|
|
2334
2334
|
title: "Ensure Certificate Validation Is Enabled with get_url",
|
|
2335
2335
|
enabled: true,
|
|
2336
|
-
languages: ["
|
|
2336
|
+
languages: ["YAML", "JSON", "Terraform"],
|
|
2337
2337
|
parameters: []
|
|
2338
2338
|
},
|
|
2339
2339
|
{
|
|
@@ -2558,7 +2558,7 @@ var patterns_default = [
|
|
|
2558
2558
|
severityLevel: "Warning",
|
|
2559
2559
|
title: "Ensure AWS Lambda Function Has Function-Level Concurrent Execution Limit Configured",
|
|
2560
2560
|
enabled: true,
|
|
2561
|
-
languages: ["
|
|
2561
|
+
languages: ["Terraform"],
|
|
2562
2562
|
parameters: [],
|
|
2563
2563
|
tags: ["aws", "lambda"]
|
|
2564
2564
|
},
|
|
@@ -2568,7 +2568,7 @@ var patterns_default = [
|
|
|
2568
2568
|
severityLevel: "Warning",
|
|
2569
2569
|
title: "Ensure AWS Lambda Function is Configured with a Dead Letter Queue (DLQ)",
|
|
2570
2570
|
enabled: true,
|
|
2571
|
-
languages: ["
|
|
2571
|
+
languages: ["Terraform"],
|
|
2572
2572
|
parameters: [],
|
|
2573
2573
|
tags: ["aws"]
|
|
2574
2574
|
},
|
|
@@ -2614,7 +2614,7 @@ var patterns_default = [
|
|
|
2614
2614
|
severityLevel: "Warning",
|
|
2615
2615
|
title: "Ensure API Gateway Caching Is Enabled",
|
|
2616
2616
|
enabled: true,
|
|
2617
|
-
languages: ["
|
|
2617
|
+
languages: ["Terraform"],
|
|
2618
2618
|
parameters: [],
|
|
2619
2619
|
tags: ["aws"]
|
|
2620
2620
|
},
|
|
@@ -2660,7 +2660,7 @@ var patterns_default = [
|
|
|
2660
2660
|
severityLevel: "Warning",
|
|
2661
2661
|
title: "Ensure Detailed Monitoring is Enabled for EC2 Instances",
|
|
2662
2662
|
enabled: true,
|
|
2663
|
-
languages: ["
|
|
2663
|
+
languages: ["Terraform"],
|
|
2664
2664
|
parameters: [],
|
|
2665
2665
|
tags: ["aws"]
|
|
2666
2666
|
},
|
|
@@ -2733,7 +2733,7 @@ var patterns_default = [
|
|
|
2733
2733
|
severityLevel: "High",
|
|
2734
2734
|
title: "Ensure EC2 Instances Are EBS Optimized",
|
|
2735
2735
|
enabled: true,
|
|
2736
|
-
languages: ["
|
|
2736
|
+
languages: ["Terraform"],
|
|
2737
2737
|
parameters: [],
|
|
2738
2738
|
tags: ["aws"]
|
|
2739
2739
|
},
|
|
@@ -2761,7 +2761,7 @@ var patterns_default = [
|
|
|
2761
2761
|
severityLevel: "Warning",
|
|
2762
2762
|
title: "Ensure ELB Cross-Zone Load Balancing Is Enabled",
|
|
2763
2763
|
enabled: true,
|
|
2764
|
-
languages: ["
|
|
2764
|
+
languages: ["Terraform"],
|
|
2765
2765
|
parameters: [],
|
|
2766
2766
|
tags: ["aws"]
|
|
2767
2767
|
},
|
|
@@ -2897,7 +2897,7 @@ var patterns_default = [
|
|
|
2897
2897
|
severityLevel: "Warning",
|
|
2898
2898
|
title: "Ensure Load Balancer Has Cross-Zone Load Balancing Enabled",
|
|
2899
2899
|
enabled: true,
|
|
2900
|
-
languages: ["
|
|
2900
|
+
languages: ["Terraform"],
|
|
2901
2901
|
parameters: [],
|
|
2902
2902
|
tags: ["aws"]
|
|
2903
2903
|
},
|
|
@@ -2907,7 +2907,7 @@ var patterns_default = [
|
|
|
2907
2907
|
severityLevel: "Warning",
|
|
2908
2908
|
title: "Enforce Tags on Autoscaling Group Launch Configurations",
|
|
2909
2909
|
enabled: true,
|
|
2910
|
-
languages: ["
|
|
2910
|
+
languages: ["Terraform"],
|
|
2911
2911
|
parameters: [],
|
|
2912
2912
|
tags: ["aws"]
|
|
2913
2913
|
},
|
|
@@ -3530,7 +3530,7 @@ var patterns_default = [
|
|
|
3530
3530
|
severityLevel: "Warning",
|
|
3531
3531
|
title: "Ensure CloudFront Distribution Is Enabled",
|
|
3532
3532
|
enabled: true,
|
|
3533
|
-
languages: ["
|
|
3533
|
+
languages: ["Terraform"],
|
|
3534
3534
|
parameters: [],
|
|
3535
3535
|
tags: ["aws"]
|
|
3536
3536
|
},
|
|
@@ -3540,7 +3540,7 @@ var patterns_default = [
|
|
|
3540
3540
|
severityLevel: "Warning",
|
|
3541
3541
|
title: "Ensure Create Before Destroy for API Deployments",
|
|
3542
3542
|
enabled: true,
|
|
3543
|
-
languages: ["
|
|
3543
|
+
languages: ["Terraform"],
|
|
3544
3544
|
parameters: [],
|
|
3545
3545
|
tags: ["aws"]
|
|
3546
3546
|
},
|
|
@@ -3622,7 +3622,7 @@ var patterns_default = [
|
|
|
3622
3622
|
severityLevel: "Warning",
|
|
3623
3623
|
title: "Ensure API Gateway Method Setting Caching is Enabled",
|
|
3624
3624
|
enabled: true,
|
|
3625
|
-
languages: ["
|
|
3625
|
+
languages: ["Terraform"],
|
|
3626
3626
|
parameters: [],
|
|
3627
3627
|
tags: ["aws"]
|
|
3628
3628
|
},
|
|
@@ -3704,7 +3704,7 @@ var patterns_default = [
|
|
|
3704
3704
|
severityLevel: "Warning",
|
|
3705
3705
|
title: "Ensure Create Before Destroy for ACM Certificates",
|
|
3706
3706
|
enabled: true,
|
|
3707
|
-
languages: ["
|
|
3707
|
+
languages: ["Terraform"],
|
|
3708
3708
|
parameters: [],
|
|
3709
3709
|
tags: ["aws"]
|
|
3710
3710
|
},
|
|
@@ -3741,7 +3741,7 @@ var patterns_default = [
|
|
|
3741
3741
|
severityLevel: "Warning",
|
|
3742
3742
|
title: "Ensure Create Before Destroy for API Gateway",
|
|
3743
3743
|
enabled: true,
|
|
3744
|
-
languages: ["
|
|
3744
|
+
languages: ["Terraform"],
|
|
3745
3745
|
parameters: [],
|
|
3746
3746
|
tags: ["aws"]
|
|
3747
3747
|
},
|
|
@@ -3985,7 +3985,7 @@ var patterns_default = [
|
|
|
3985
3985
|
severityLevel: "Warning",
|
|
3986
3986
|
title: "Ensure HTTP/HTTPS Target Group Defines Healthcheck",
|
|
3987
3987
|
enabled: true,
|
|
3988
|
-
languages: ["
|
|
3988
|
+
languages: ["Terraform"],
|
|
3989
3989
|
parameters: [],
|
|
3990
3990
|
tags: ["aws"]
|
|
3991
3991
|
},
|
|
@@ -4373,7 +4373,7 @@ var patterns_default = [
|
|
|
4373
4373
|
severityLevel: "Warning",
|
|
4374
4374
|
title: "Ensure S3 Lifecycle Configuration Sets Period for Aborting Failed Uploads",
|
|
4375
4375
|
enabled: true,
|
|
4376
|
-
languages: ["
|
|
4376
|
+
languages: ["Terraform"],
|
|
4377
4377
|
parameters: [],
|
|
4378
4378
|
tags: ["aws"]
|
|
4379
4379
|
},
|
|
@@ -4419,7 +4419,7 @@ var patterns_default = [
|
|
|
4419
4419
|
severityLevel: "Warning",
|
|
4420
4420
|
title: "Ensure CloudFront Distribution Has a Default Root Object Configured",
|
|
4421
4421
|
enabled: true,
|
|
4422
|
-
languages: ["
|
|
4422
|
+
languages: ["Terraform"],
|
|
4423
4423
|
parameters: [],
|
|
4424
4424
|
tags: ["aws"]
|
|
4425
4425
|
},
|
|
@@ -4474,7 +4474,7 @@ var patterns_default = [
|
|
|
4474
4474
|
severityLevel: "Warning",
|
|
4475
4475
|
title: "Ensure CloudFront Distributions Have Origin Failover Configured",
|
|
4476
4476
|
enabled: true,
|
|
4477
|
-
languages: ["
|
|
4477
|
+
languages: ["Terraform"],
|
|
4478
4478
|
parameters: [],
|
|
4479
4479
|
tags: ["aws"]
|
|
4480
4480
|
},
|
|
@@ -4502,7 +4502,7 @@ var patterns_default = [
|
|
|
4502
4502
|
severityLevel: "Warning",
|
|
4503
4503
|
title: "Ensure RDS Cluster Copies Tags to Snapshots",
|
|
4504
4504
|
enabled: true,
|
|
4505
|
-
languages: ["
|
|
4505
|
+
languages: ["Terraform"],
|
|
4506
4506
|
parameters: [],
|
|
4507
4507
|
tags: ["aws"]
|
|
4508
4508
|
},
|
|
@@ -4521,7 +4521,7 @@ var patterns_default = [
|
|
|
4521
4521
|
severityLevel: "Warning",
|
|
4522
4522
|
title: "Ensure EC2 Auto Scaling Groups Use EC2 Launch Templates",
|
|
4523
4523
|
enabled: true,
|
|
4524
|
-
languages: ["
|
|
4524
|
+
languages: ["Terraform"],
|
|
4525
4525
|
parameters: [],
|
|
4526
4526
|
tags: ["aws"]
|
|
4527
4527
|
},
|
|
@@ -4549,7 +4549,7 @@ var patterns_default = [
|
|
|
4549
4549
|
severityLevel: "High",
|
|
4550
4550
|
title: "Ensure Elasticsearch domains have at least three dedicated master nodes for high availability",
|
|
4551
4551
|
enabled: true,
|
|
4552
|
-
languages: ["
|
|
4552
|
+
languages: ["Terraform"],
|
|
4553
4553
|
parameters: [],
|
|
4554
4554
|
tags: ["aws"]
|
|
4555
4555
|
},
|
|
@@ -4631,7 +4631,7 @@ var patterns_default = [
|
|
|
4631
4631
|
severityLevel: "Warning",
|
|
4632
4632
|
title: "Ensure RDS Aurora Clusters Have Backtracking Enabled",
|
|
4633
4633
|
enabled: true,
|
|
4634
|
-
languages: ["
|
|
4634
|
+
languages: ["Terraform"],
|
|
4635
4635
|
parameters: [],
|
|
4636
4636
|
tags: ["aws"]
|
|
4637
4637
|
},
|
|
@@ -4902,7 +4902,7 @@ var patterns_default = [
|
|
|
4902
4902
|
severityLevel: "Warning",
|
|
4903
4903
|
title: "Ensure RDS Instances Have Performance Insights Enabled",
|
|
4904
4904
|
enabled: true,
|
|
4905
|
-
languages: ["
|
|
4905
|
+
languages: ["Terraform"],
|
|
4906
4906
|
parameters: [],
|
|
4907
4907
|
tags: ["aws"]
|
|
4908
4908
|
},
|
|
@@ -4993,7 +4993,7 @@ var patterns_default = [
|
|
|
4993
4993
|
severityLevel: "Warning",
|
|
4994
4994
|
title: "Enforce Neptune DB Clusters to Copy Tags to Snapshots",
|
|
4995
4995
|
enabled: true,
|
|
4996
|
-
languages: ["
|
|
4996
|
+
languages: ["Terraform"],
|
|
4997
4997
|
parameters: [],
|
|
4998
4998
|
tags: ["aws"]
|
|
4999
4999
|
},
|
|
@@ -5543,7 +5543,7 @@ var patterns_default = [
|
|
|
5543
5543
|
severityLevel: "Warning",
|
|
5544
5544
|
title: "Ensure CloudWatch Log Group Specifies Retention Days",
|
|
5545
5545
|
enabled: true,
|
|
5546
|
-
languages: ["
|
|
5546
|
+
languages: ["Terraform"],
|
|
5547
5547
|
parameters: [],
|
|
5548
5548
|
tags: ["aws"]
|
|
5549
5549
|
},
|
|
@@ -5922,7 +5922,7 @@ var patterns_default = [
|
|
|
5922
5922
|
severityLevel: "Warning",
|
|
5923
5923
|
title: "Ensure Azure Data Factory Uses Git Repository for Source Control",
|
|
5924
5924
|
enabled: true,
|
|
5925
|
-
languages: ["
|
|
5925
|
+
languages: ["Terraform"],
|
|
5926
5926
|
parameters: [],
|
|
5927
5927
|
tags: ["azure"]
|
|
5928
5928
|
},
|
|
@@ -6249,7 +6249,7 @@ var patterns_default = [
|
|
|
6249
6249
|
severityLevel: "Warning",
|
|
6250
6250
|
title: "Ensure PostgreSQL Flexible Server Enables Geo-Redundant Backups",
|
|
6251
6251
|
enabled: true,
|
|
6252
|
-
languages: ["
|
|
6252
|
+
languages: ["Terraform"],
|
|
6253
6253
|
parameters: [],
|
|
6254
6254
|
tags: ["azure", "postgresql"]
|
|
6255
6255
|
},
|
|
@@ -6396,7 +6396,7 @@ var patterns_default = [
|
|
|
6396
6396
|
severityLevel: "Warning",
|
|
6397
6397
|
title: "Ensure Machine Learning Compute Cluster Minimum Nodes Set To 0",
|
|
6398
6398
|
enabled: true,
|
|
6399
|
-
languages: ["
|
|
6399
|
+
languages: ["Terraform"],
|
|
6400
6400
|
parameters: [],
|
|
6401
6401
|
tags: ["azure"]
|
|
6402
6402
|
},
|
|
@@ -6541,7 +6541,7 @@ var patterns_default = [
|
|
|
6541
6541
|
severityLevel: "Warning",
|
|
6542
6542
|
title: "Ensure Geo-Replicated Container Registries for Multi-Region Deployments",
|
|
6543
6543
|
enabled: true,
|
|
6544
|
-
languages: ["
|
|
6544
|
+
languages: ["Terraform"],
|
|
6545
6545
|
parameters: [],
|
|
6546
6546
|
tags: ["azure"]
|
|
6547
6547
|
},
|
|
@@ -6560,7 +6560,7 @@ var patterns_default = [
|
|
|
6560
6560
|
severityLevel: "Warning",
|
|
6561
6561
|
title: "Ensure Retention Policy Is Set to Cleanup Untagged Manifests",
|
|
6562
6562
|
enabled: true,
|
|
6563
|
-
languages: ["
|
|
6563
|
+
languages: ["Terraform"],
|
|
6564
6564
|
parameters: [],
|
|
6565
6565
|
tags: ["azure"]
|
|
6566
6566
|
},
|
|
@@ -6570,7 +6570,7 @@ var patterns_default = [
|
|
|
6570
6570
|
severityLevel: "Warning",
|
|
6571
6571
|
title: "Enforce Minimum Pod Count of 50 on Azure Kubernetes Cluster Nodes",
|
|
6572
6572
|
enabled: true,
|
|
6573
|
-
languages: ["
|
|
6573
|
+
languages: ["Terraform"],
|
|
6574
6574
|
parameters: [],
|
|
6575
6575
|
tags: ["azure", "kubernetes", "aks"]
|
|
6576
6576
|
},
|
|
@@ -6580,7 +6580,7 @@ var patterns_default = [
|
|
|
6580
6580
|
severityLevel: "Warning",
|
|
6581
6581
|
title: "Ensure Azure Kubernetes Cluster (AKS) Nodes Use Scale Sets",
|
|
6582
6582
|
enabled: true,
|
|
6583
|
-
languages: ["
|
|
6583
|
+
languages: ["Terraform"],
|
|
6584
6584
|
parameters: [],
|
|
6585
6585
|
tags: ["azure", "kubernetes", "aks"]
|
|
6586
6586
|
},
|
|
@@ -6599,7 +6599,7 @@ var patterns_default = [
|
|
|
6599
6599
|
severityLevel: "Warning",
|
|
6600
6600
|
title: "Ensure AKS Uses the Paid SKU for SLA",
|
|
6601
6601
|
enabled: true,
|
|
6602
|
-
languages: ["
|
|
6602
|
+
languages: ["Terraform"],
|
|
6603
6603
|
parameters: [],
|
|
6604
6604
|
tags: ["azure"]
|
|
6605
6605
|
},
|
|
@@ -6609,7 +6609,7 @@ var patterns_default = [
|
|
|
6609
6609
|
severityLevel: "Warning",
|
|
6610
6610
|
title: "Ensure AKS Cluster Upgrade Channel Is Chosen",
|
|
6611
6611
|
enabled: true,
|
|
6612
|
-
languages: ["
|
|
6612
|
+
languages: ["Terraform"],
|
|
6613
6613
|
parameters: [],
|
|
6614
6614
|
tags: ["azure"]
|
|
6615
6615
|
},
|
|
@@ -6646,7 +6646,7 @@ var patterns_default = [
|
|
|
6646
6646
|
severityLevel: "High",
|
|
6647
6647
|
title: "Ensure Web PubSub Uses a SKU with an SLA",
|
|
6648
6648
|
enabled: true,
|
|
6649
|
-
languages: ["
|
|
6649
|
+
languages: ["Terraform"],
|
|
6650
6650
|
parameters: [],
|
|
6651
6651
|
tags: ["azure"]
|
|
6652
6652
|
},
|
|
@@ -6701,7 +6701,7 @@ var patterns_default = [
|
|
|
6701
6701
|
severityLevel: "Warning",
|
|
6702
6702
|
title: "Ensure Data Explorer Uses SKU with SLA",
|
|
6703
6703
|
enabled: true,
|
|
6704
|
-
languages: ["
|
|
6704
|
+
languages: ["Terraform"],
|
|
6705
6705
|
parameters: [],
|
|
6706
6706
|
tags: ["azure"]
|
|
6707
6707
|
},
|
|
@@ -6774,7 +6774,7 @@ var patterns_default = [
|
|
|
6774
6774
|
severityLevel: "Warning",
|
|
6775
6775
|
title: "Ensure App Configuration SKU is Standard",
|
|
6776
6776
|
enabled: true,
|
|
6777
|
-
languages: ["
|
|
6777
|
+
languages: ["Terraform"],
|
|
6778
6778
|
parameters: []
|
|
6779
6779
|
},
|
|
6780
6780
|
{
|
|
@@ -6792,7 +6792,7 @@ var patterns_default = [
|
|
|
6792
6792
|
severityLevel: "Warning",
|
|
6793
6793
|
title: "Enforce Selection of Standard Pricing Tier",
|
|
6794
6794
|
enabled: true,
|
|
6795
|
-
languages: ["
|
|
6795
|
+
languages: ["Terraform"],
|
|
6796
6796
|
parameters: [],
|
|
6797
6797
|
tags: ["azure"]
|
|
6798
6798
|
},
|
|
@@ -6982,7 +6982,7 @@ var patterns_default = [
|
|
|
6982
6982
|
severityLevel: "High",
|
|
6983
6983
|
title: "Ensure Azure Cognitive Search SLA for Index Updates",
|
|
6984
6984
|
enabled: true,
|
|
6985
|
-
languages: ["
|
|
6985
|
+
languages: ["Terraform"],
|
|
6986
6986
|
parameters: [],
|
|
6987
6987
|
tags: ["azure"]
|
|
6988
6988
|
},
|
|
@@ -6992,7 +6992,7 @@ var patterns_default = [
|
|
|
6992
6992
|
severityLevel: "Warning",
|
|
6993
6993
|
title: "Ensure Azure Cognitive Search SLA for Search Index Queries",
|
|
6994
6994
|
enabled: true,
|
|
6995
|
-
languages: ["
|
|
6995
|
+
languages: ["Terraform"],
|
|
6996
6996
|
parameters: [],
|
|
6997
6997
|
tags: ["azure"]
|
|
6998
6998
|
},
|
|
@@ -7020,7 +7020,7 @@ var patterns_default = [
|
|
|
7020
7020
|
severityLevel: "Warning",
|
|
7021
7021
|
title: "Ensure App Service Plan Suitable for Production Use",
|
|
7022
7022
|
enabled: true,
|
|
7023
|
-
languages: ["
|
|
7023
|
+
languages: ["Terraform"],
|
|
7024
7024
|
parameters: [],
|
|
7025
7025
|
tags: ["azure"]
|
|
7026
7026
|
},
|
|
@@ -7030,7 +7030,7 @@ var patterns_default = [
|
|
|
7030
7030
|
severityLevel: "High",
|
|
7031
7031
|
title: "Ensure App Service Has Minimum Number of Instances for Failover",
|
|
7032
7032
|
enabled: true,
|
|
7033
|
-
languages: ["
|
|
7033
|
+
languages: ["Terraform"],
|
|
7034
7034
|
parameters: [],
|
|
7035
7035
|
tags: ["azure"]
|
|
7036
7036
|
},
|
|
@@ -7040,7 +7040,7 @@ var patterns_default = [
|
|
|
7040
7040
|
severityLevel: "Warning",
|
|
7041
7041
|
title: "Ensure App Service Configures Health Check",
|
|
7042
7042
|
enabled: true,
|
|
7043
|
-
languages: ["
|
|
7043
|
+
languages: ["Terraform"],
|
|
7044
7044
|
parameters: [],
|
|
7045
7045
|
tags: ["azure"]
|
|
7046
7046
|
},
|
|
@@ -7050,7 +7050,7 @@ var patterns_default = [
|
|
|
7050
7050
|
severityLevel: "Warning",
|
|
7051
7051
|
title: "Ensure App Service Is Set To Be Always On",
|
|
7052
7052
|
enabled: true,
|
|
7053
|
-
languages: ["
|
|
7053
|
+
languages: ["Terraform"],
|
|
7054
7054
|
parameters: [],
|
|
7055
7055
|
tags: ["azure"]
|
|
7056
7056
|
},
|
|
@@ -7159,7 +7159,7 @@ var patterns_default = [
|
|
|
7159
7159
|
severityLevel: "Warning",
|
|
7160
7160
|
title: "Ensure the App Service Plan is zone redundant",
|
|
7161
7161
|
enabled: true,
|
|
7162
|
-
languages: ["
|
|
7162
|
+
languages: ["Terraform"],
|
|
7163
7163
|
parameters: [],
|
|
7164
7164
|
tags: ["azure"]
|
|
7165
7165
|
},
|
|
@@ -7187,7 +7187,7 @@ var patterns_default = [
|
|
|
7187
7187
|
severityLevel: "Warning",
|
|
7188
7188
|
title: "Ensure Azure Event Hub Namespace is Zone Redundant",
|
|
7189
7189
|
enabled: true,
|
|
7190
|
-
languages: ["
|
|
7190
|
+
languages: ["Terraform"],
|
|
7191
7191
|
parameters: [],
|
|
7192
7192
|
tags: ["azure"]
|
|
7193
7193
|
},
|
|
@@ -7197,7 +7197,7 @@ var patterns_default = [
|
|
|
7197
7197
|
severityLevel: "Warning",
|
|
7198
7198
|
title: "Ensure Azure SQL Database Namespace is Zone Redundant",
|
|
7199
7199
|
enabled: true,
|
|
7200
|
-
languages: ["
|
|
7200
|
+
languages: ["Terraform"],
|
|
7201
7201
|
parameters: [],
|
|
7202
7202
|
tags: ["azure"]
|
|
7203
7203
|
},
|
|
@@ -7225,7 +7225,7 @@ var patterns_default = [
|
|
|
7225
7225
|
severityLevel: "Warning",
|
|
7226
7226
|
title: "Ensure App Service Environment is Zone Redundant",
|
|
7227
7227
|
enabled: true,
|
|
7228
|
-
languages: ["
|
|
7228
|
+
languages: ["Terraform"],
|
|
7229
7229
|
parameters: [],
|
|
7230
7230
|
tags: ["azure"]
|
|
7231
7231
|
},
|
|
@@ -7244,7 +7244,7 @@ var patterns_default = [
|
|
|
7244
7244
|
severityLevel: "Warning",
|
|
7245
7245
|
title: "Ensure Azure Container Registry (ACR) is Zone Redundant",
|
|
7246
7246
|
enabled: true,
|
|
7247
|
-
languages: ["
|
|
7247
|
+
languages: ["Terraform"],
|
|
7248
7248
|
parameters: [],
|
|
7249
7249
|
tags: ["azure"]
|
|
7250
7250
|
},
|
|
@@ -7605,7 +7605,7 @@ var patterns_default = [
|
|
|
7605
7605
|
severityLevel: "Warning",
|
|
7606
7606
|
title: "Ensure Storage Accounts Adhere to the Naming Rules",
|
|
7607
7607
|
enabled: true,
|
|
7608
|
-
languages: ["
|
|
7608
|
+
languages: ["Terraform"],
|
|
7609
7609
|
parameters: [],
|
|
7610
7610
|
tags: ["azure"]
|
|
7611
7611
|
},
|
|
@@ -7795,7 +7795,7 @@ var patterns_default = [
|
|
|
7795
7795
|
severityLevel: "Warning",
|
|
7796
7796
|
title: "Ensure App Service Enables Detailed Error Messages",
|
|
7797
7797
|
enabled: true,
|
|
7798
|
-
languages: ["
|
|
7798
|
+
languages: ["Terraform"],
|
|
7799
7799
|
parameters: [],
|
|
7800
7800
|
tags: ["azure"]
|
|
7801
7801
|
},
|
|
@@ -7814,7 +7814,7 @@ var patterns_default = [
|
|
|
7814
7814
|
severityLevel: "Warning",
|
|
7815
7815
|
title: "Ensure HTTP Version Is the Latest When Running Azure Function App",
|
|
7816
7816
|
enabled: true,
|
|
7817
|
-
languages: ["
|
|
7817
|
+
languages: ["Terraform"],
|
|
7818
7818
|
parameters: [],
|
|
7819
7819
|
tags: ["azure"]
|
|
7820
7820
|
},
|
|
@@ -8022,7 +8022,7 @@ var patterns_default = [
|
|
|
8022
8022
|
severityLevel: "Warning",
|
|
8023
8023
|
title: "Ensure App Services Use Azure Files",
|
|
8024
8024
|
enabled: true,
|
|
8025
|
-
languages: ["
|
|
8025
|
+
languages: ["Terraform"],
|
|
8026
8026
|
parameters: [],
|
|
8027
8027
|
tags: ["azure"]
|
|
8028
8028
|
},
|
|
@@ -8311,7 +8311,7 @@ var patterns_default = [
|
|
|
8311
8311
|
severityLevel: "High",
|
|
8312
8312
|
title: "Ensure WORKDIR values are absolute paths",
|
|
8313
8313
|
enabled: true,
|
|
8314
|
-
languages: ["
|
|
8314
|
+
languages: ["Dockerfile"],
|
|
8315
8315
|
parameters: []
|
|
8316
8316
|
},
|
|
8317
8317
|
{
|
|
@@ -8320,7 +8320,7 @@ var patterns_default = [
|
|
|
8320
8320
|
severityLevel: "High",
|
|
8321
8321
|
title: "Ensure Unique From Aliases in Multistage Docker Builds",
|
|
8322
8322
|
enabled: true,
|
|
8323
|
-
languages: ["
|
|
8323
|
+
languages: ["Dockerfile"],
|
|
8324
8324
|
parameters: []
|
|
8325
8325
|
},
|
|
8326
8326
|
{
|
|
@@ -8329,7 +8329,7 @@ var patterns_default = [
|
|
|
8329
8329
|
severityLevel: "Warning",
|
|
8330
8330
|
title: "Ensure HEALTHCHECK Instructions Are Added to Container Images",
|
|
8331
8331
|
enabled: true,
|
|
8332
|
-
languages: ["
|
|
8332
|
+
languages: ["Dockerfile"],
|
|
8333
8333
|
parameters: []
|
|
8334
8334
|
},
|
|
8335
8335
|
{
|
|
@@ -8347,7 +8347,7 @@ var patterns_default = [
|
|
|
8347
8347
|
severityLevel: "Warning",
|
|
8348
8348
|
title: "Ensure COPY is Used Instead of ADD in Dockerfiles",
|
|
8349
8349
|
enabled: true,
|
|
8350
|
-
languages: ["
|
|
8350
|
+
languages: ["Dockerfile"],
|
|
8351
8351
|
parameters: []
|
|
8352
8352
|
},
|
|
8353
8353
|
{
|
|
@@ -8356,7 +8356,7 @@ var patterns_default = [
|
|
|
8356
8356
|
severityLevel: "Warning",
|
|
8357
8357
|
title: "Avoid Using Update Instructions Alone in Dockerfile",
|
|
8358
8358
|
enabled: true,
|
|
8359
|
-
languages: ["
|
|
8359
|
+
languages: ["Dockerfile"],
|
|
8360
8360
|
parameters: [],
|
|
8361
8361
|
tags: ["docker"]
|
|
8362
8362
|
},
|
|
@@ -8366,7 +8366,7 @@ var patterns_default = [
|
|
|
8366
8366
|
severityLevel: "Warning",
|
|
8367
8367
|
title: "Enforce use of LABEL maintainer instead of deprecated MAINTAINER",
|
|
8368
8368
|
enabled: true,
|
|
8369
|
-
languages: ["
|
|
8369
|
+
languages: ["Dockerfile"],
|
|
8370
8370
|
parameters: [],
|
|
8371
8371
|
tags: ["docker"]
|
|
8372
8372
|
},
|
|
@@ -8763,7 +8763,7 @@ var patterns_default = [
|
|
|
8763
8763
|
severityLevel: "Warning",
|
|
8764
8764
|
title: "Ensure Kubernetes Clusters are Configured with Labels",
|
|
8765
8765
|
enabled: true,
|
|
8766
|
-
languages: ["
|
|
8766
|
+
languages: ["YAML", "JSON"],
|
|
8767
8767
|
parameters: [],
|
|
8768
8768
|
tags: ["kubernetes", "googlecloud"]
|
|
8769
8769
|
},
|
|
@@ -9053,7 +9053,7 @@ var patterns_default = [
|
|
|
9053
9053
|
severityLevel: "Warning",
|
|
9054
9054
|
title: "Ensure PostgreSQL Database 'log_checkpoints' Flag Is Set to 'on'",
|
|
9055
9055
|
enabled: true,
|
|
9056
|
-
languages: ["
|
|
9056
|
+
languages: ["SQL"],
|
|
9057
9057
|
parameters: [],
|
|
9058
9058
|
tags: ["gcp", "postgresql"]
|
|
9059
9059
|
},
|
|
@@ -9081,7 +9081,7 @@ var patterns_default = [
|
|
|
9081
9081
|
severityLevel: "Warning",
|
|
9082
9082
|
title: "Ensure PostgreSQL 'log_lock_waits' Flag Is Set To 'on'",
|
|
9083
9083
|
enabled: true,
|
|
9084
|
-
languages: ["
|
|
9084
|
+
languages: ["SQL", "Terraform"],
|
|
9085
9085
|
parameters: [],
|
|
9086
9086
|
tags: ["gcp"]
|
|
9087
9087
|
},
|
|
@@ -9100,7 +9100,7 @@ var patterns_default = [
|
|
|
9100
9100
|
severityLevel: "Warning",
|
|
9101
9101
|
title: "Ensure PostgreSQL 'log_temp_files' Flag Is Set to '0'",
|
|
9102
9102
|
enabled: true,
|
|
9103
|
-
languages: ["
|
|
9103
|
+
languages: ["SQL"],
|
|
9104
9104
|
parameters: [],
|
|
9105
9105
|
tags: ["gcp", "cloudsql", "postgresql"]
|
|
9106
9106
|
},
|
|
@@ -9173,7 +9173,7 @@ var patterns_default = [
|
|
|
9173
9173
|
severityLevel: "Warning",
|
|
9174
9174
|
title: "Avoid Configuring a Bucket to Log to Itself",
|
|
9175
9175
|
enabled: true,
|
|
9176
|
-
languages: ["
|
|
9176
|
+
languages: ["Terraform", "YAML", "JSON"],
|
|
9177
9177
|
parameters: [],
|
|
9178
9178
|
tags: ["gcp", "googlecloudstorage"]
|
|
9179
9179
|
},
|
|
@@ -9427,7 +9427,7 @@ var patterns_default = [
|
|
|
9427
9427
|
severityLevel: "High",
|
|
9428
9428
|
title: "Ensure 'Automatic node repair' is enabled for Kubernetes Clusters",
|
|
9429
9429
|
enabled: true,
|
|
9430
|
-
languages: ["
|
|
9430
|
+
languages: ["Terraform", "YAML"],
|
|
9431
9431
|
parameters: [],
|
|
9432
9432
|
tags: ["gcp", "kubernetes"]
|
|
9433
9433
|
},
|
|
@@ -9961,7 +9961,7 @@ var patterns_default = [
|
|
|
9961
9961
|
severityLevel: "Warning",
|
|
9962
9962
|
title: "Enforce CPU Requests in Kubernetes Pods",
|
|
9963
9963
|
enabled: true,
|
|
9964
|
-
languages: ["
|
|
9964
|
+
languages: ["YAML"],
|
|
9965
9965
|
parameters: [],
|
|
9966
9966
|
tags: ["kubernetes"]
|
|
9967
9967
|
},
|
|
@@ -10007,7 +10007,7 @@ var patterns_default = [
|
|
|
10007
10007
|
severityLevel: "Warning",
|
|
10008
10008
|
title: "Ensure Proper Setting of --terminated-pod-gc-threshold Argument",
|
|
10009
10009
|
enabled: true,
|
|
10010
|
-
languages: ["
|
|
10010
|
+
languages: ["YAML"],
|
|
10011
10011
|
parameters: [],
|
|
10012
10012
|
tags: ["kubernetes"]
|
|
10013
10013
|
},
|
|
@@ -10035,7 +10035,7 @@ var patterns_default = [
|
|
|
10035
10035
|
severityLevel: "Warning",
|
|
10036
10036
|
title: "Enforce CPU Limits Are Set",
|
|
10037
10037
|
enabled: true,
|
|
10038
|
-
languages: ["
|
|
10038
|
+
languages: ["YAML"],
|
|
10039
10039
|
parameters: [],
|
|
10040
10040
|
tags: ["kubernetes"]
|
|
10041
10041
|
},
|
|
@@ -10135,7 +10135,7 @@ var patterns_default = [
|
|
|
10135
10135
|
severityLevel: "Warning",
|
|
10136
10136
|
title: "Enforce Memory Requests in Kubernetes Pods",
|
|
10137
10137
|
enabled: true,
|
|
10138
|
-
languages: ["
|
|
10138
|
+
languages: ["YAML"],
|
|
10139
10139
|
parameters: [],
|
|
10140
10140
|
tags: ["kubernetes"]
|
|
10141
10141
|
},
|
|
@@ -10154,7 +10154,7 @@ var patterns_default = [
|
|
|
10154
10154
|
severityLevel: "Warning",
|
|
10155
10155
|
title: "Enforce Memory Limits Are Set",
|
|
10156
10156
|
enabled: true,
|
|
10157
|
-
languages: ["
|
|
10157
|
+
languages: ["YAML"],
|
|
10158
10158
|
parameters: [],
|
|
10159
10159
|
tags: ["kubernetes"]
|
|
10160
10160
|
},
|
|
@@ -10465,7 +10465,7 @@ var patterns_default = [
|
|
|
10465
10465
|
severityLevel: "Warning",
|
|
10466
10466
|
title: "Avoid Specifying hostPort Unless Absolutely Necessary",
|
|
10467
10467
|
enabled: true,
|
|
10468
|
-
languages: ["
|
|
10468
|
+
languages: ["YAML"],
|
|
10469
10469
|
parameters: [],
|
|
10470
10470
|
tags: ["kubernetes"]
|
|
10471
10471
|
},
|
|
@@ -10799,7 +10799,7 @@ var patterns_default = [
|
|
|
10799
10799
|
severityLevel: "Warning",
|
|
10800
10800
|
title: "Enforce Liveness Probe Configuration in Kubernetes Pods",
|
|
10801
10801
|
enabled: true,
|
|
10802
|
-
languages: ["
|
|
10802
|
+
languages: ["YAML"],
|
|
10803
10803
|
parameters: [],
|
|
10804
10804
|
tags: ["kubernetes"]
|
|
10805
10805
|
},
|
|
@@ -10890,7 +10890,7 @@ var patterns_default = [
|
|
|
10890
10890
|
severityLevel: "Warning",
|
|
10891
10891
|
title: "Enforce Readiness Probe Configuration",
|
|
10892
10892
|
enabled: true,
|
|
10893
|
-
languages: ["
|
|
10893
|
+
languages: ["YAML"],
|
|
10894
10894
|
parameters: [],
|
|
10895
10895
|
tags: ["kubernetes"]
|
|
10896
10896
|
},
|
|
@@ -11144,7 +11144,7 @@ var patterns_default = [
|
|
|
11144
11144
|
severityLevel: "High",
|
|
11145
11145
|
title: "Ensure NKS Control Plane Logging is Enabled for All Log Types",
|
|
11146
11146
|
enabled: true,
|
|
11147
|
-
languages: ["
|
|
11147
|
+
languages: ["Terraform", "JSON", "YAML"],
|
|
11148
11148
|
parameters: []
|
|
11149
11149
|
},
|
|
11150
11150
|
{
|
|
@@ -11829,7 +11829,7 @@ var patterns_default = [
|
|
|
11829
11829
|
severityLevel: "Warning",
|
|
11830
11830
|
title: "Ensure Description Is Populated Within Security Policies",
|
|
11831
11831
|
enabled: true,
|
|
11832
|
-
languages: ["
|
|
11832
|
+
languages: ["YAML"],
|
|
11833
11833
|
parameters: []
|
|
11834
11834
|
},
|
|
11835
11835
|
{
|
|
@@ -12135,7 +12135,7 @@ var patterns_default = [
|
|
|
12135
12135
|
severityLevel: "High",
|
|
12136
12136
|
title: "Ensure Terraform Module Sources Use Commit Hash",
|
|
12137
12137
|
enabled: true,
|
|
12138
|
-
languages: ["
|
|
12138
|
+
languages: ["Terraform", "JSON", "YAML"],
|
|
12139
12139
|
parameters: []
|
|
12140
12140
|
},
|
|
12141
12141
|
{
|
|
@@ -12144,7 +12144,7 @@ var patterns_default = [
|
|
|
12144
12144
|
severityLevel: "Warning",
|
|
12145
12145
|
title: "Ensure Terraform Module Sources Use a Version Tag",
|
|
12146
12146
|
enabled: true,
|
|
12147
|
-
languages: ["
|
|
12147
|
+
languages: ["Terraform"],
|
|
12148
12148
|
parameters: []
|
|
12149
12149
|
},
|
|
12150
12150
|
{
|
|
@@ -12366,7 +12366,29 @@ var patterns_default = [
|
|
|
12366
12366
|
];
|
|
12367
12367
|
|
|
12368
12368
|
// src/pattern-mappings.json
|
|
12369
|
-
var pattern_mappings_default = {
|
|
12369
|
+
var pattern_mappings_default = {
|
|
12370
|
+
Dockerfile: {
|
|
12371
|
+
prefixes: ["Checkov_CKV_DOCKER_", "Checkov_CKV2_DOCKER_"]
|
|
12372
|
+
},
|
|
12373
|
+
Terraform: {
|
|
12374
|
+
prefixes: ["Checkov_CKV_TF_"]
|
|
12375
|
+
},
|
|
12376
|
+
"GitHub Actions": {
|
|
12377
|
+
prefixes: ["Checkov_CKV_GHA_", "Checkov_CKV2_GHA_"]
|
|
12378
|
+
},
|
|
12379
|
+
CircleCI: {
|
|
12380
|
+
prefixes: ["Checkov_CKV_CIRCLECIPIPELINES_"]
|
|
12381
|
+
},
|
|
12382
|
+
"GitLab CI": {
|
|
12383
|
+
prefixes: ["Checkov_CKV_GITLABCI_"]
|
|
12384
|
+
},
|
|
12385
|
+
"Bitbucket Pipelines": {
|
|
12386
|
+
prefixes: ["Checkov_CKV_BITBUCKETPIPELINES_"]
|
|
12387
|
+
},
|
|
12388
|
+
"Azure Pipelines": {
|
|
12389
|
+
prefixes: ["Checkov_CKV_AZUREPIPELINES_"]
|
|
12390
|
+
}
|
|
12391
|
+
};
|
|
12370
12392
|
|
|
12371
12393
|
// src/metadata.ts
|
|
12372
12394
|
var descriptor = {
|
|
@@ -12375,7 +12397,7 @@ var descriptor = {
|
|
|
12375
12397
|
preferredVersion: "3.2.508",
|
|
12376
12398
|
languages: ["JSON", "YAML", "Terraform"],
|
|
12377
12399
|
filePatterns: ["**/*.tf", "**/*.yaml", "**/*.yml", "**/*.json", "**/Dockerfile"],
|
|
12378
|
-
supportedOS: ["linux", "darwin"],
|
|
12400
|
+
supportedOS: ["linux", "darwin", "win32"],
|
|
12379
12401
|
supportedArch: ["x64", "arm64"],
|
|
12380
12402
|
supportedRunners: ["local", "container"],
|
|
12381
12403
|
frameworkMappings: pattern_mappings_default
|
|
@@ -12399,16 +12421,35 @@ var CONFIG_FILE_CANDIDATES = [".checkov.yaml", ".checkov.yml"];
|
|
|
12399
12421
|
var PIP_PACKAGE = "checkov==3.2.508";
|
|
12400
12422
|
var BINARY = "checkov";
|
|
12401
12423
|
var VERSION_REGEX = /(\d+\.\d+\.\d+)/;
|
|
12402
|
-
|
|
12424
|
+
var PYTHON_VERSION_RANGE = ">=3.9.0 <3.14.0";
|
|
12425
|
+
var MODULE_ARGS = ["-m", "checkov.main"];
|
|
12426
|
+
async function resolveCheckovInvocation(ctx) {
|
|
12403
12427
|
const venvDir = (0, import_tooling.getVenvDir)(ctx.globalDir, TOOL_ID);
|
|
12428
|
+
const venvPython = (0, import_tooling.getVenvPaths)(venvDir).python;
|
|
12429
|
+
if (await pathExists(venvPython)) {
|
|
12430
|
+
return { command: venvPython, prefixArgs: MODULE_ARGS };
|
|
12431
|
+
}
|
|
12432
|
+
return { command: BINARY, prefixArgs: [] };
|
|
12433
|
+
}
|
|
12434
|
+
async function probeCheckovVersion(command, prefixArgs, logger) {
|
|
12404
12435
|
try {
|
|
12405
|
-
const
|
|
12406
|
-
|
|
12407
|
-
|
|
12408
|
-
|
|
12436
|
+
const { stdout, stderr, exitCode } = await (0, import_tooling.spawnTool)(command, [...prefixArgs, "--version"], {
|
|
12437
|
+
cwd: process.cwd(),
|
|
12438
|
+
timeoutMs: 6e4,
|
|
12439
|
+
logger
|
|
12440
|
+
});
|
|
12441
|
+
if (exitCode !== 0) return null;
|
|
12442
|
+
const match = (stdout || stderr).match(VERSION_REGEX);
|
|
12443
|
+
return match ? match[1] : null;
|
|
12409
12444
|
} catch {
|
|
12445
|
+
return null;
|
|
12410
12446
|
}
|
|
12411
|
-
|
|
12447
|
+
}
|
|
12448
|
+
async function listDirSafe(dir) {
|
|
12449
|
+
return import_promises.default.readdir(dir).catch(() => []);
|
|
12450
|
+
}
|
|
12451
|
+
async function pathExists(p) {
|
|
12452
|
+
return import_promises.default.access(p).then(() => true).catch(() => false);
|
|
12412
12453
|
}
|
|
12413
12454
|
function buildEnv(ctx) {
|
|
12414
12455
|
if (ctx.runner !== "container") return void 0;
|
|
@@ -12434,25 +12475,25 @@ var adapter = {
|
|
|
12434
12475
|
prerequisites: [
|
|
12435
12476
|
{
|
|
12436
12477
|
name: "Python",
|
|
12437
|
-
versionRange:
|
|
12478
|
+
versionRange: PYTHON_VERSION_RANGE,
|
|
12438
12479
|
preferredVersion: "3.12.0",
|
|
12439
12480
|
checkCommand: "python3 --version"
|
|
12440
12481
|
}
|
|
12441
12482
|
],
|
|
12442
12483
|
/**
|
|
12443
|
-
* Checks whether
|
|
12484
|
+
* Checks whether checkov is present and runnable.
|
|
12444
12485
|
*
|
|
12445
12486
|
* Checks in order:
|
|
12446
|
-
* 1. Codacy-managed venv
|
|
12447
|
-
* 2. Global PATH
|
|
12487
|
+
* 1. Codacy-managed venv — `<venv>/python -m checkov.main --version` -> "codacy"
|
|
12488
|
+
* 2. Global PATH — `checkov --version` -> "global"
|
|
12448
12489
|
*
|
|
12449
|
-
*
|
|
12450
|
-
*
|
|
12451
|
-
*
|
|
12490
|
+
* checkov is always invoked as a module (see {@link MODULE_ARGS}); its wheel
|
|
12491
|
+
* ships no console-script, so on Windows there is no `checkov.exe` to probe.
|
|
12492
|
+
* Returns `available: false` (rather than throwing) if checkov cannot be run.
|
|
12452
12493
|
*/
|
|
12453
12494
|
async checkAvailability(ctx) {
|
|
12454
12495
|
ctx.logger.debug("Checking availability", { toolId: TOOL_ID });
|
|
12455
|
-
const pythonInfo = await (0, import_tooling.findPython)(
|
|
12496
|
+
const pythonInfo = await (0, import_tooling.findPython)(PYTHON_VERSION_RANGE, ctx.logger).catch(() => null);
|
|
12456
12497
|
const dependencies = pythonInfo ? [
|
|
12457
12498
|
{
|
|
12458
12499
|
name: "Python",
|
|
@@ -12462,46 +12503,36 @@ var adapter = {
|
|
|
12462
12503
|
}
|
|
12463
12504
|
] : [{ name: "Python", available: false, reason: "Python 3 not found" }];
|
|
12464
12505
|
const venvDir = (0, import_tooling.getVenvDir)(ctx.globalDir, TOOL_ID);
|
|
12465
|
-
|
|
12466
|
-
|
|
12467
|
-
|
|
12468
|
-
|
|
12469
|
-
|
|
12470
|
-
|
|
12471
|
-
|
|
12472
|
-
|
|
12473
|
-
|
|
12474
|
-
|
|
12475
|
-
|
|
12476
|
-
|
|
12477
|
-
|
|
12478
|
-
}
|
|
12506
|
+
const venvPython = (0, import_tooling.getVenvPaths)(venvDir).python;
|
|
12507
|
+
const venvPythonExists = await pathExists(venvPython);
|
|
12508
|
+
if (venvPythonExists) {
|
|
12509
|
+
const version = await probeCheckovVersion(venvPython, MODULE_ARGS, ctx.logger);
|
|
12510
|
+
if (version) {
|
|
12511
|
+
ctx.logger.debug("Checkov found in codacy venv", { toolId: TOOL_ID, version });
|
|
12512
|
+
return {
|
|
12513
|
+
available: true,
|
|
12514
|
+
version,
|
|
12515
|
+
path: venvPython,
|
|
12516
|
+
installation: "codacy",
|
|
12517
|
+
dependencies
|
|
12518
|
+
};
|
|
12479
12519
|
}
|
|
12480
|
-
} catch {
|
|
12481
12520
|
}
|
|
12482
|
-
|
|
12483
|
-
|
|
12484
|
-
|
|
12485
|
-
|
|
12486
|
-
|
|
12487
|
-
|
|
12488
|
-
|
|
12489
|
-
|
|
12490
|
-
|
|
12491
|
-
return {
|
|
12492
|
-
available: true,
|
|
12493
|
-
version: match[1],
|
|
12494
|
-
installation: "global",
|
|
12495
|
-
dependencies
|
|
12496
|
-
};
|
|
12497
|
-
}
|
|
12498
|
-
}
|
|
12499
|
-
} catch {
|
|
12521
|
+
const globalVersion = await probeCheckovVersion(BINARY, [], ctx.logger);
|
|
12522
|
+
if (globalVersion) {
|
|
12523
|
+
ctx.logger.debug("Checkov found on global PATH", { toolId: TOOL_ID, version: globalVersion });
|
|
12524
|
+
return {
|
|
12525
|
+
available: true,
|
|
12526
|
+
version: globalVersion,
|
|
12527
|
+
installation: "global",
|
|
12528
|
+
dependencies
|
|
12529
|
+
};
|
|
12500
12530
|
}
|
|
12501
|
-
|
|
12531
|
+
const reason = venvPythonExists ? `checkov could not be run via '${venvPython} -m checkov.main --version' (see debug logs); it may not be installed in the venv or the venv's Python may be incompatible` : "checkov not found in the Codacy venv or on PATH";
|
|
12532
|
+
ctx.logger.debug("Checkov not found", { toolId: TOOL_ID, venvPython, venvPythonExists });
|
|
12502
12533
|
return {
|
|
12503
12534
|
available: false,
|
|
12504
|
-
reason
|
|
12535
|
+
reason,
|
|
12505
12536
|
installHint: "pip install checkov # or\ncodacy-analysis analyze . --install-dependencies # auto-install",
|
|
12506
12537
|
dependencies
|
|
12507
12538
|
};
|
|
@@ -12515,7 +12546,7 @@ var adapter = {
|
|
|
12515
12546
|
*/
|
|
12516
12547
|
async install(ctx) {
|
|
12517
12548
|
ctx.logger.info("Starting install", { toolId: TOOL_ID });
|
|
12518
|
-
const pythonInfo = await (0, import_tooling.ensurePython)(ctx.globalDir,
|
|
12549
|
+
const pythonInfo = await (0, import_tooling.ensurePython)(ctx.globalDir, PYTHON_VERSION_RANGE, ctx.logger);
|
|
12519
12550
|
if (!pythonInfo) {
|
|
12520
12551
|
return {
|
|
12521
12552
|
success: false,
|
|
@@ -12523,24 +12554,50 @@ var adapter = {
|
|
|
12523
12554
|
toolId: TOOL_ID,
|
|
12524
12555
|
phase: "toolInstall",
|
|
12525
12556
|
kind: "MissingPrerequisite",
|
|
12526
|
-
message: "Python 3 could not be found or downloaded.
|
|
12557
|
+
message: "Python (>=3.9.0 <3.14.0) could not be found or downloaded. Checkov 3.2.x does not support Python 3.14+.",
|
|
12527
12558
|
level: "error"
|
|
12528
12559
|
}
|
|
12529
12560
|
};
|
|
12530
12561
|
}
|
|
12531
12562
|
const venvDir = (0, import_tooling.getVenvDir)(ctx.globalDir, TOOL_ID);
|
|
12532
|
-
|
|
12533
|
-
|
|
12563
|
+
const venvPython = (0, import_tooling.getVenvPaths)(venvDir).python;
|
|
12564
|
+
const installIntoVenv = async () => {
|
|
12534
12565
|
const venv = await (0, import_tooling.ensureVenv)(pythonInfo.path, venvDir, ctx.logger);
|
|
12535
12566
|
ctx.logger.info(
|
|
12536
12567
|
`Installing ${PIP_PACKAGE} (this may take several minutes due to ~200 transitive dependencies)...`
|
|
12537
12568
|
);
|
|
12538
12569
|
await (0, import_tooling.pipInstall)(venv, [PIP_PACKAGE], ctx.logger);
|
|
12539
|
-
|
|
12540
|
-
|
|
12570
|
+
return probeCheckovVersion(venv.python, MODULE_ARGS, ctx.logger);
|
|
12571
|
+
};
|
|
12572
|
+
try {
|
|
12573
|
+
ctx.logger.info(`Creating venv for Checkov at ${venvDir}...`);
|
|
12574
|
+
let version = await installIntoVenv();
|
|
12575
|
+
if (!version) {
|
|
12576
|
+
ctx.logger.warn(
|
|
12577
|
+
`Checkov installed but 'python -m checkov.main' did not run; rebuilding the venv`,
|
|
12578
|
+
{ venvDir, binDirContents: await listDirSafe((0, import_tooling.getVenvPaths)(venvDir).binDir) }
|
|
12579
|
+
);
|
|
12580
|
+
await import_promises.default.rm(venvDir, { recursive: true, force: true }).catch(() => {
|
|
12581
|
+
});
|
|
12582
|
+
version = await installIntoVenv();
|
|
12583
|
+
}
|
|
12584
|
+
if (!version) {
|
|
12585
|
+
const contents = await listDirSafe((0, import_tooling.getVenvPaths)(venvDir).binDir);
|
|
12586
|
+
return {
|
|
12587
|
+
success: false,
|
|
12588
|
+
error: {
|
|
12589
|
+
toolId: TOOL_ID,
|
|
12590
|
+
phase: "toolInstall",
|
|
12591
|
+
kind: "InstallError",
|
|
12592
|
+
message: `Checkov install completed but 'python -m checkov.main --version' did not run in the venv (bin dir contains: ${contents.join(", ") || "nothing"}). The venv's Python may be incompatible with Checkov 3.2.x.`,
|
|
12593
|
+
level: "error"
|
|
12594
|
+
}
|
|
12595
|
+
};
|
|
12596
|
+
}
|
|
12597
|
+
ctx.logger.info(`Installed Checkov ${version} to ${venvPython}`);
|
|
12541
12598
|
return {
|
|
12542
12599
|
success: true,
|
|
12543
|
-
installedPath,
|
|
12600
|
+
installedPath: venvPython,
|
|
12544
12601
|
installedVersion: adapter.preferredVersion
|
|
12545
12602
|
};
|
|
12546
12603
|
} catch (err) {
|
|
@@ -12615,54 +12672,87 @@ var adapter = {
|
|
|
12615
12672
|
if (ctx.targetFiles.length === 0) {
|
|
12616
12673
|
return (0, import_tooling.buildResult)(TOOL_ID, startedAt, /* @__PURE__ */ new Date(), issues, errors, 0);
|
|
12617
12674
|
}
|
|
12618
|
-
let
|
|
12675
|
+
let command;
|
|
12676
|
+
let prefixArgs;
|
|
12619
12677
|
try {
|
|
12620
|
-
|
|
12678
|
+
({ command, prefixArgs } = await resolveCheckovInvocation(ctx));
|
|
12621
12679
|
} catch {
|
|
12622
|
-
|
|
12680
|
+
command = BINARY;
|
|
12681
|
+
prefixArgs = [];
|
|
12623
12682
|
}
|
|
12624
|
-
const
|
|
12683
|
+
const baseArgs = [...prefixArgs, "-o", "json", "--quiet"];
|
|
12625
12684
|
const useLocal = codacyConfig.useLocalConfigurationFile && codacyConfig.localConfigurationFile;
|
|
12626
12685
|
if (useLocal) {
|
|
12627
|
-
|
|
12628
|
-
}
|
|
12629
|
-
for (const file of ctx.targetFiles) {
|
|
12630
|
-
args.push("-f", import_path.default.resolve(ctx.repositoryRoot, file));
|
|
12686
|
+
baseArgs.push("--config-file", codacyConfig.localConfigurationFile);
|
|
12631
12687
|
}
|
|
12688
|
+
const absoluteFiles = ctx.targetFiles.map((f) => import_path.default.resolve(ctx.repositoryRoot, f));
|
|
12689
|
+
const fileChunks = (0, import_tooling.chunkFilesForArgv)(absoluteFiles);
|
|
12632
12690
|
const env = buildEnv(ctx);
|
|
12691
|
+
const frameworks = [];
|
|
12633
12692
|
try {
|
|
12634
|
-
const
|
|
12635
|
-
|
|
12636
|
-
|
|
12637
|
-
|
|
12638
|
-
|
|
12639
|
-
|
|
12640
|
-
|
|
12641
|
-
|
|
12642
|
-
|
|
12643
|
-
kind: "NonZeroExit",
|
|
12644
|
-
message: `checkov exited with code ${exitCode}${stderr ? `: ${stderr.trim()}` : ""}`,
|
|
12645
|
-
level: "error"
|
|
12646
|
-
});
|
|
12647
|
-
return (0, import_tooling.buildResult)(TOOL_ID, startedAt, /* @__PURE__ */ new Date(), issues, errors, ctx.targetFiles.length);
|
|
12648
|
-
}
|
|
12649
|
-
if (!stdout.trim()) {
|
|
12650
|
-
return (0, import_tooling.buildResult)(TOOL_ID, startedAt, /* @__PURE__ */ new Date(), issues, errors, ctx.targetFiles.length);
|
|
12651
|
-
}
|
|
12652
|
-
let parsed;
|
|
12653
|
-
try {
|
|
12654
|
-
parsed = JSON.parse(stdout);
|
|
12655
|
-
} catch (err) {
|
|
12656
|
-
errors.push({
|
|
12657
|
-
toolId: TOOL_ID,
|
|
12658
|
-
phase: "outputParse",
|
|
12659
|
-
kind: "MalformedOutput",
|
|
12660
|
-
message: `Failed to parse checkov JSON output: ${err instanceof Error ? err.message : String(err)}`,
|
|
12661
|
-
level: "error"
|
|
12693
|
+
for (const chunk of fileChunks) {
|
|
12694
|
+
const fileArgs = [];
|
|
12695
|
+
for (const file of chunk) {
|
|
12696
|
+
fileArgs.push("-f", file);
|
|
12697
|
+
}
|
|
12698
|
+
const { stdout, stderr, exitCode } = await (0, import_tooling.spawnTool)(command, [...baseArgs, ...fileArgs], {
|
|
12699
|
+
cwd: ctx.repositoryRoot,
|
|
12700
|
+
env,
|
|
12701
|
+
logger: ctx.logger
|
|
12662
12702
|
});
|
|
12663
|
-
|
|
12703
|
+
if (exitCode > 1) {
|
|
12704
|
+
errors.push({
|
|
12705
|
+
toolId: TOOL_ID,
|
|
12706
|
+
phase: "toolInvoke",
|
|
12707
|
+
kind: "NonZeroExit",
|
|
12708
|
+
message: `checkov exited with code ${exitCode}${stderr ? `: ${stderr.trim()}` : ""}`,
|
|
12709
|
+
level: "error"
|
|
12710
|
+
});
|
|
12711
|
+
return (0, import_tooling.buildResult)(
|
|
12712
|
+
TOOL_ID,
|
|
12713
|
+
startedAt,
|
|
12714
|
+
/* @__PURE__ */ new Date(),
|
|
12715
|
+
issues,
|
|
12716
|
+
errors,
|
|
12717
|
+
ctx.targetFiles.length
|
|
12718
|
+
);
|
|
12719
|
+
}
|
|
12720
|
+
if (stderr && stderr.trim()) {
|
|
12721
|
+
errors.push({
|
|
12722
|
+
toolId: TOOL_ID,
|
|
12723
|
+
phase: "toolInvoke",
|
|
12724
|
+
kind: "StderrWarning",
|
|
12725
|
+
message: `checkov stderr: ${stderr.trim()}`,
|
|
12726
|
+
level: "warning"
|
|
12727
|
+
});
|
|
12728
|
+
}
|
|
12729
|
+
if (!stdout.trim()) continue;
|
|
12730
|
+
let parsed;
|
|
12731
|
+
try {
|
|
12732
|
+
parsed = JSON.parse(stdout);
|
|
12733
|
+
} catch (err) {
|
|
12734
|
+
errors.push({
|
|
12735
|
+
toolId: TOOL_ID,
|
|
12736
|
+
phase: "outputParse",
|
|
12737
|
+
kind: "MalformedOutput",
|
|
12738
|
+
message: `Failed to parse checkov JSON output: ${err instanceof Error ? err.message : String(err)}`,
|
|
12739
|
+
level: "error"
|
|
12740
|
+
});
|
|
12741
|
+
return (0, import_tooling.buildResult)(
|
|
12742
|
+
TOOL_ID,
|
|
12743
|
+
startedAt,
|
|
12744
|
+
/* @__PURE__ */ new Date(),
|
|
12745
|
+
issues,
|
|
12746
|
+
errors,
|
|
12747
|
+
ctx.targetFiles.length
|
|
12748
|
+
);
|
|
12749
|
+
}
|
|
12750
|
+
if (Array.isArray(parsed)) {
|
|
12751
|
+
frameworks.push(...parsed);
|
|
12752
|
+
} else {
|
|
12753
|
+
frameworks.push(parsed);
|
|
12754
|
+
}
|
|
12664
12755
|
}
|
|
12665
|
-
const frameworks = Array.isArray(parsed) ? parsed : [parsed];
|
|
12666
12756
|
const enabledPatterns = new Set(codacyConfig.patterns.map((p) => p.patternId));
|
|
12667
12757
|
const targetFilesSet = new Set(ctx.targetFiles);
|
|
12668
12758
|
const linesCache = /* @__PURE__ */ new Map();
|
|
@@ -12716,15 +12806,6 @@ var adapter = {
|
|
|
12716
12806
|
issues.push(issue);
|
|
12717
12807
|
}
|
|
12718
12808
|
}
|
|
12719
|
-
if (stderr && stderr.trim()) {
|
|
12720
|
-
errors.push({
|
|
12721
|
-
toolId: TOOL_ID,
|
|
12722
|
-
phase: "toolInvoke",
|
|
12723
|
-
kind: "StderrWarning",
|
|
12724
|
-
message: `checkov stderr: ${stderr.trim()}`,
|
|
12725
|
-
level: "warning"
|
|
12726
|
-
});
|
|
12727
|
-
}
|
|
12728
12809
|
} catch (err) {
|
|
12729
12810
|
errors.push({
|
|
12730
12811
|
toolId: TOOL_ID,
|
package/dist/metadata.js
CHANGED
|
@@ -25,7 +25,29 @@ __export(metadata_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(metadata_exports);
|
|
26
26
|
|
|
27
27
|
// src/pattern-mappings.json
|
|
28
|
-
var pattern_mappings_default = {
|
|
28
|
+
var pattern_mappings_default = {
|
|
29
|
+
Dockerfile: {
|
|
30
|
+
prefixes: ["Checkov_CKV_DOCKER_", "Checkov_CKV2_DOCKER_"]
|
|
31
|
+
},
|
|
32
|
+
Terraform: {
|
|
33
|
+
prefixes: ["Checkov_CKV_TF_"]
|
|
34
|
+
},
|
|
35
|
+
"GitHub Actions": {
|
|
36
|
+
prefixes: ["Checkov_CKV_GHA_", "Checkov_CKV2_GHA_"]
|
|
37
|
+
},
|
|
38
|
+
CircleCI: {
|
|
39
|
+
prefixes: ["Checkov_CKV_CIRCLECIPIPELINES_"]
|
|
40
|
+
},
|
|
41
|
+
"GitLab CI": {
|
|
42
|
+
prefixes: ["Checkov_CKV_GITLABCI_"]
|
|
43
|
+
},
|
|
44
|
+
"Bitbucket Pipelines": {
|
|
45
|
+
prefixes: ["Checkov_CKV_BITBUCKETPIPELINES_"]
|
|
46
|
+
},
|
|
47
|
+
"Azure Pipelines": {
|
|
48
|
+
prefixes: ["Checkov_CKV_AZUREPIPELINES_"]
|
|
49
|
+
}
|
|
50
|
+
};
|
|
29
51
|
|
|
30
52
|
// src/metadata.ts
|
|
31
53
|
var descriptor = {
|
|
@@ -34,7 +56,7 @@ var descriptor = {
|
|
|
34
56
|
preferredVersion: "3.2.508",
|
|
35
57
|
languages: ["JSON", "YAML", "Terraform"],
|
|
36
58
|
filePatterns: ["**/*.tf", "**/*.yaml", "**/*.yml", "**/*.json", "**/Dockerfile"],
|
|
37
|
-
supportedOS: ["linux", "darwin"],
|
|
59
|
+
supportedOS: ["linux", "darwin", "win32"],
|
|
38
60
|
supportedArch: ["x64", "arm64"],
|
|
39
61
|
supportedRunners: ["local", "container"],
|
|
40
62
|
frameworkMappings: pattern_mappings_default
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codacy/tools-checkov-3",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "Checkov adapter — CLI-mode IaC security scanner",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"dist"
|
|
9
9
|
],
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@codacy/tooling": "0.
|
|
11
|
+
"@codacy/tooling": "0.15.0"
|
|
12
12
|
},
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"author": "Codacy <support@codacy.com> (https://www.codacy.com)",
|