Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update(nifcloud): update nifcloud queries metadata and functionality #7206

Merged
merged 10 commits into from
Sep 27, 2024
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "df58dd45-8009-43c2-90f7-c90eb9d53ed9",
"queryName": "Beta - Nifcloud Computing Has Common Private Network",
"queryName": "Nifcloud Computing Has Common Private Network",
"severity": "LOW",
"category": "Networking and Firewall",
"descriptionText": "The instance has common private network",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[
{
"queryName": "Beta - Nifcloud Computing Has Common Private Network",
"queryName": "Nifcloud Computing Has Common Private Network",
"severity": "LOW",
"line": 1,
"fileName": "positive1.tf"
},
{
"queryName": "Beta - Nifcloud Computing Has Common Private Network",
"queryName": "Nifcloud Computing Has Common Private Network",
"severity": "LOW",
"line": 1,
"fileName": "positive2.tf"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "b2ea2367-8dc9-4231-a035-d0b28bfa3dde",
"queryName": "Beta - Nifcloud Computing Has Public Ingress Security Group Rule",
"queryName": "Nifcloud Computing Has Public Ingress Security Group Rule",
"severity": "HIGH",
"category": "Networking and Firewall",
"descriptionText": "An ingress security group rule allows traffic from /0",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"queryName": "Beta - Nifcloud Computing Has Public Ingress Security Group Rule",
"queryName": "Nifcloud Computing Has Public Ingress Security Group Rule",
"severity": "HIGH",
"line": 1,
"fileName": "positive.tf"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "89218b48-75c9-4cb3-aaba-5299e852e8bc",
"queryName": "Beta - Nifcloud Computing Undefined Security Group To Instance",
"queryName": "Nifcloud Computing Undefined Security Group To Instance",
"severity": "HIGH",
"category": "Networking and Firewall",
"descriptionText": "Missing security group for instance",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"queryName": "Beta - Nifcloud Computing Undefined Security Group To Instance",
"queryName": "Nifcloud Computing Undefined Security Group To Instance",
"severity": "HIGH",
"line": 1,
"fileName": "positive.tf"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"id": "41c127a9-3a85-4bc3-a333-ed374eb9c3e4",
"queryName": "Beta - Nifcloud Computing Undefined Description To Security Group",
"severity": "LOW",
"category": "Networking and Firewall",
"descriptionText": "Missing description for security group",
"queryName": "Nifcloud Computing Undefined Description To Security Group",
"severity": "INFO",
"category": "Best Practices",
"descriptionText": "It's considered a best practice for Security Group to have a description",
"descriptionUrl": "https://registry.terraform.io/providers/nifcloud/nifcloud/latest/docs/resources/security_group#description",
"platform": "Terraform",
"descriptionID": "dedce967",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[
{
"queryName": "Beta - Nifcloud Computing Undefined Description To Security Group",
"severity": "LOW",
"queryName": "Nifcloud Computing Undefined Description To Security Group",
"severity": "INFO",
"line": 1,
"fileName": "positive.tf"
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"id": "e4610872-0b1c-4fb7-ab57-d81c0afdb291",
"queryName": "Beta - Nifcloud Computing Undefined Description To Security Group Rule",
"severity": "LOW",
"category": "Networking and Firewall",
"descriptionText": "Missing description for security group rule",
"queryName": "Nifcloud Computing Undefined Description To Security Group Rule",
"severity": "INFO",
"category": "Best Practices",
"descriptionText": "It's considered a best practice for Security Group Rules to have a description",
"descriptionUrl": "https://registry.terraform.io/providers/nifcloud/nifcloud/latest/docs/resources/security_group_rule#description",
"platform": "Terraform",
"descriptionID": "66ed83ab",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[
{
"queryName": "Beta - Nifcloud Computing Undefined Description To Security Group Rule",
"severity": "LOW",
"queryName": "Nifcloud Computing Undefined Description To Security Group Rule",
"severity": "INFO",
"line": 1,
"fileName": "positive.tf"
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"id": "e5071f76-cbe7-468d-bb2b-d10f02d2b713",
"queryName": "Beta - Nifcloud RDB Has Backup Retention Less Than 2 Day",
"severity": "MEDIUM",
"queryName": "Nifcloud Low RDB Backup Retention Period",
"severity": "LOW",
"category": "Backup",
"descriptionText": "The rdb has backup retention less than 2 day",
"descriptionText": "Nifcloud RDB backup retention should be at least 7 days",
"descriptionUrl": "https://registry.terraform.io/providers/nifcloud/nifcloud/latest/docs/resources/db_instance#backup_retention_period",
"platform": "Terraform",
"descriptionID": "5fadf94a",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,23 @@ CxPolicy[result] {
"resourceName": tf_lib.get_resource_name(dbInstance, name),
"searchKey": sprintf("nifcloud_db_instance[%s]", [name]),
"issueType": "MissingAttribute",
"keyExpectedValue": sprintf("'nifcloud_db_instance[%s]' should have backup retention longer than 1 day", [name]),
"keyActualValue": sprintf("'nifcloud_db_instance[%s]' does not have backup retention period", [name]),
"keyExpectedValue": sprintf("'nifcloud_db_instance[%s]' should have backup retention of at least 7 days", [name]),
"keyActualValue": sprintf("'nifcloud_db_instance[%s]' doesn't have a backup retention period defined", [name]),
}
}

CxPolicy[result] {

dbInstance := input.document[i].resource.nifcloud_db_instance[name]
dbInstance.backup_retention_period < 2
dbInstance.backup_retention_period < 7

result := {
"documentId": input.document[i].id,
"resourceType": "nifcloud_db_instance",
"resourceName": tf_lib.get_resource_name(dbInstance, name),
"searchKey": sprintf("nifcloud_db_instance[%s]", [name]),
"issueType": "IncorrectValue",
"keyExpectedValue": sprintf("'nifcloud_db_instance[%s]' should have backup retention longer than 1 day", [name]),
"keyActualValue": sprintf("'nifcloud_db_instance[%s]' has 1 day backup retention period", [name]),
"keyExpectedValue": sprintf("'nifcloud_db_instance[%s]' should have backup retention of at least 7 days", [name]),
"keyActualValue": sprintf("'nifcloud_db_instance[%s]' has backup retention period of '%s' which is less than minimum of 7 days", [name, dbInstance.backup_retention_period]),
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
resource "nifcloud_db_instance" "negative" {
identifier = "example"
instance_class = "db.large8"
backup_retention_period = 5
backup_retention_period = 7
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
resource "nifcloud_db_instance" "positive" {
identifier = "example"
instance_class = "db.large8"
backup_retention_period = 1
backup_retention_period = 5
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
[
{
"queryName": "Beta - Nifcloud RDB Has Backup Retention Less Than 2 Day",
"severity": "MEDIUM",
"queryName": "Nifcloud Low RDB Backup Retention Period",
"severity": "LOW",
"line": 1,
"fileName": "positive1.tf"
},
{
"queryName": "Beta - Nifcloud RDB Has Backup Retention Less Than 2 Day",
"severity": "MEDIUM",
"queryName": "Nifcloud Low RDB Backup Retention Period",
"severity": "LOW",
"line": 1,
"fileName": "positive2.tf"
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"id": "fb387023-e4bb-42a8-9a70-6708aa7ff21b",
"queryName": "Beta - Nifcloud RDB Has Public DB Access",
"severity": "HIGH",
"category": "Networking and Firewall",
"descriptionText": "The rdb has public db access",
"descriptionUrl": "https://registry.terraform.io/providers/nifcloud/nifcloud/latest/docs/resources/db_instance#publicly_accessible",
"platform": "Terraform",
"descriptionID": "e4ce28b6",
"cloudProvider": "nifcloud",
"cwe": "732"
}
"id": "fb387023-e4bb-42a8-9a70-6708aa7ff21b",
"queryName": "Nifcloud RDB Has Public DB Access",
"severity": "HIGH",
"category": "Access Control",
"descriptionText": "The RDB has public DB access",
"descriptionUrl": "https://registry.terraform.io/providers/nifcloud/nifcloud/latest/docs/resources/db_instance#publicly_accessible",
"platform": "Terraform",
"descriptionID": "e4ce28b6",
"cloudProvider": "nifcloud",
"cwe": "732"
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,31 @@ import data.generic.terraform as tf_lib
import data.generic.common as common_lib

CxPolicy[result] {

dbInstance := input.document[i].resource.nifcloud_db_instance[name]
dbInstance.publicly_accessible == true

result := {
"documentId": input.document[i].id,
"resourceType": "nifcloud_db_instance",
"resourceName": tf_lib.get_resource_name(dbInstance, name),
"searchKey": sprintf("nifcloud_db_instance[%s]", [name]),
"issueType": "IncorrectValue",
"keyExpectedValue": sprintf("'nifcloud_db_instance[%s]' should not use publicly available. You should limit all access to the minimum that is required for your application to function.", [name]),
"keyActualValue": sprintf("'nifcloud_db_instance[%s]' use publicly available", [name]),
"keyExpectedValue": sprintf("'nifcloud_db_instance[%s]' should not use publicly accessible set to true. You should limit all access to the minimum that is required for your application to function.", [name]),
"keyActualValue": sprintf("'nifcloud_db_instance[%s]' has publicly accessible set to true.", [name]),
}
}

CxPolicy[result] {

dbInstance := input.document[i].resource.nifcloud_db_instance[name]
not common_lib.valid_key(dbInstance, "publicly_accessible")

result := {
"documentId": input.document[i].id,
"resourceType": "nifcloud_db_instance",
"resourceName": tf_lib.get_resource_name(dbInstance, name),
"searchKey": sprintf("nifcloud_db_instance[%s]", [name]),
"issueType": "MissingAttribute",
"keyExpectedValue": sprintf("'nifcloud_db_instance[%s]' should have publicly accessible defined as the default value is set to true. You should limit all access to the minimum that is required for your application to function.", [name]),
"keyActualValue": sprintf("'nifcloud_db_instance[%s]' doesn't define publicly accessible.", [name]),
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ resource "nifcloud_db_instance" "negative" {
identifier = "example"
instance_class = "db.large8"
publicly_accessible = false
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ resource "nifcloud_db_instance" "positive" {
identifier = "example"
instance_class = "db.large8"
publicly_accessible = true
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"queryName": "Beta - Nifcloud RDB Has Public DB Access",
"queryName": "Nifcloud RDB Has Public DB Access",
"severity": "HIGH",
"line": 1,
"fileName": "positive.tf"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"id": "9bf57c23-fbab-4222-85f3-3f207a53c6a8",
"queryName": "Beta - Nifcloud RDB Has Common Private Network",
"queryName": "Nifcloud RDB Has Common Private Network",
"severity": "LOW",
"category": "Networking and Firewall",
"descriptionText": "The rdb has common private network",
"descriptionText": "The RDB has common private network",
"descriptionUrl": "https://registry.terraform.io/providers/nifcloud/nifcloud/latest/docs/resources/db_instance#network_id",
"platform": "Terraform",
"descriptionID": "89f1ff38",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"queryName": "Beta - Nifcloud RDB Has Common Private Network",
"queryName": "Nifcloud RDB Has Common Private Network",
"severity": "LOW",
"line": 1,
"fileName": "positive.tf"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"id": "940ddce2-26bd-4e31-a9b4-382714f73231",
"queryName": "Beta - Nifcloud RDB Undefined Description To DB Security Group",
"severity": "LOW",
"category": "Networking and Firewall",
"descriptionText": "Missing description for db security group",
"queryName": "Nifcloud RDB Undefined Description To DB Security Group",
"severity": "INFO",
"category": "Best Practices",
"descriptionText": "Missing description for DB security group",
"descriptionUrl": "https://registry.terraform.io/providers/nifcloud/nifcloud/latest/docs/resources/db_security_group#description",
"platform": "Terraform",
"descriptionID": "badc7874",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ CxPolicy[result] {
"resourceName": tf_lib.get_resource_name(dbSecurityGroup, name),
"searchKey": sprintf("nifcloud_db_security_group[%s]", [name]),
"issueType": "MissingAttribute",
"keyExpectedValue": sprintf("'nifcloud_db_security_group[%s]' should include a description for auditing purposes", [name]),
"keyActualValue": sprintf("'nifcloud_db_security_group[%s]' does not have a description", [name]),
"keyExpectedValue": sprintf("'nifcloud_db_security_group[%s]' should include a description for auditing purposes.", [name]),
"keyActualValue": sprintf("'nifcloud_db_security_group[%s]' does not have a description.", [name]),
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[
{
"queryName": "Beta - Nifcloud RDB Undefined Description To DB Security Group",
"severity": "LOW",
"queryName": "Nifcloud RDB Undefined Description To DB Security Group",
"severity": "INFO",
"line": 1,
"fileName": "positive.tf"
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"id": "a0b846e8-815f-4f15-b660-bc4ab9fa1e1a",
"queryName": "Beta - Nifcloud RDB Has Public DB Ingress Security Group Rule",
"queryName": "Nifcloud RDB Has Public DB Ingress Security Group Rule",
"severity": "HIGH",
"category": "Networking and Firewall",
"descriptionText": "An db ingress security group rule allows traffic from /0",
"descriptionText": "A DB ingress security group rule allows traffic from /0",
"descriptionUrl": "https://registry.terraform.io/providers/nifcloud/nifcloud/latest/docs/resources/db_security_group#cidr_ip",
"platform": "Terraform",
"descriptionID": "05a9f362",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"queryName": "Beta - Nifcloud RDB Has Public DB Ingress Security Group Rule",
"queryName": "Nifcloud RDB Has Public DB Ingress Security Group Rule",
"severity": "HIGH",
"line": 1,
"fileName": "positive.tf"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "a1defcb6-55e8-4511-8c2a-30b615b0e057",
"queryName": "Beta - Nifcloud DNS Has Verified Record",
"severity": "HIGH",
"queryName": "Nifcloud DNS Has Verified Record",
"severity": "LOW",
"category": "Insecure Configurations",
"descriptionText": "Removing verified record of TXT auth the risk that If the authentication record remains, anyone can register the zone",
"descriptionUrl": "https://registry.terraform.io/providers/nifcloud/nifcloud/latest/docs/resources/dns_record#record",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ CxPolicy[result] {
"resourceName": tf_lib.get_resource_name(dnsRecord, name),
"searchKey": sprintf("nifcloud_dns_record[%s]", [name]),
"issueType": "IncorrectValue",
"keyExpectedValue": sprintf("'nifcloud_dns_record[%s]' remove verified record", [name]),
"keyActualValue": sprintf("'nifcloud_dns_record[%s]' has risk of DNS records be used by others", [name]),
"keyExpectedValue": sprintf("Verified records should be removed from 'nifcloud_dns_record[%s]'.", [name]),
"keyActualValue": sprintf("'nifcloud_dns_record[%s]' has risk of DNS records being used by others.", [name]),
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[
{
"queryName": "Beta - Nifcloud DNS Has Verified Record",
"severity": "HIGH",
"queryName": "Nifcloud DNS Has Verified Record",
"severity": "LOW",
"line": 1,
"fileName": "positive.tf"
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"id": "5061f84c-ab66-4660-90b9-680c9df346c0",
"queryName": "Beta - Nifcloud ELB Has Common Private Network",
"queryName": "Nifcloud ELB Has Common Private Network",
"severity": "LOW",
"category": "Networking and Firewall",
"descriptionText": "The elb has common private network",
"descriptionText": "The ELB has common private network",
"descriptionUrl": "https://registry.terraform.io/providers/nifcloud/nifcloud/latest/docs/resources/elb#network_id",
"platform": "Terraform",
"descriptionID": "40e5b2b8",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[
{
"queryName": "Beta - Nifcloud ELB Has Common Private Network",
"queryName": "Nifcloud ELB Has Common Private Network",
"severity": "LOW",
"line": 1,
"fileName": "positive1.tf"
},
{
"queryName": "Beta - Nifcloud ELB Has Common Private Network",
"queryName": "Nifcloud ELB Has Common Private Network",
"severity": "LOW",
"line": 1,
"fileName": "positive2.tf"
Expand Down
Loading
Loading