Azure Security
  • 👺Azure Security Project Lab
  • 💻Manage Azure Resource
    • Task 1
    • Task 2
    • Task 3
  • 👮RBAC
  • 🥷NSG & ASG
    • Page 1
    • Page 2
  • 💂‍♂️Perimeter Security
  • 🗼Network Security
  • 🏗️IaaC
    • Installation
  • Azure SAST Rules
    • 🔐Authentication
    • 🐳Docker
    • 👺Code Like Hacker : Secure Terraform Practices
Powered by GitBook
On this page
  • Admin access should be restricted from the specific IP
  • Compliant Solution
  1. Azure SAST Rules

Code Like Hacker : Secure Terraform Practices

This contains cloud Native Meetup code snippets

Admin access should be restricted from the specific IP

  • ISSUE : Any Firewall allowing traffic from all IP address to standard n/w port on which admin services traditionally listen such as SSH - port#22 : Lead to unauthorised access

  • Potential Impact :- Privilege Escalation or elevation Vulnerability

Example

An ingress rule allowing all inbound SSH traffic for AWS:

// Non-compliant code 

resource "aws_security_group" "noncompliant" {
  name        = "allow_ssh_noncompliant"
  description = "allow_ssh_noncompliant"
  vpc_id      = aws_vpc.main.id

  ingress {
    description      = "SSH rule"
    from_port        = 22
    to_port          = 22
    protocol         = "tcp"
    cidr_blocks      = ["0.0.0.0/0"]  # Noncompliant
  }
}

A security rule allowing all inbound SSH traffic for Azure

// Non-compliant code 

resource "azurerm_network_security_rule" "noncompliant" {
  priority                    = 100
  direction                   = "Inbound"
  access                      = "Allow"
  protocol                    = "Tcp"
  source_port_range           = "*"
  destination_port_range      = "22"
  source_address_prefix       = "*"  # Noncompliant
  destination_address_prefix  = "*"
}

Compliant Solution

An ingress rule allowing inbound SSH traffic from specific IP addresses for AWS:

// Compliant-code 

resource "aws_security_group" "compliant" {
  name        = "allow_ssh_compliant"
  description = "allow_ssh_compliant"
  vpc_id      = aws_vpc.main.id

  ingress {
    description      = "SSH rule"
    from_port        = 22
    to_port          = 22
    protocol         = "tcp"
    cidr_blocks      = ["1.2.3.0/24"]
  }
}

A security rule allowing inbound SSH traffic from specific IP addresses for Azure

// Compliant-code 

resource "azurerm_network_security_rule" "compliant" {
  priority                    = 100
  direction                   = "Inbound"
  access                      = "Allow"
  protocol                    = "Tcp"
  source_port_range           = "*"
  destination_port_range      = "22"
  source_address_prefix       = "1.2.3.0"
  destination_address_prefix  = "*"
}

PreviousDocker

Last updated 6 months ago

It is recommended to restrict access to remote administration services to only trusted IP addresses. In practice, trusted IP addresses are those held by system administrators or those of servers.

CWE -

👺
bastion-like
CWE-284 - Improper Access Control