Category

Security Insights

Instances behind ELBs accepting direct connections from the internet

Introduction

We have noticed that you have at least one EC2 instance behind an Elastic Load Balancer that is accepting connection from IP addresses on the port to which the ELB is directing traffic.

AWS defines a special Security Group associated with the ELB.  Users can configure EC2 instances behind ELBs to receive connections to an IP port only from this special SG, thus assuring that only traffic coming from the respective ELB will reach that port. We recommend you change the security group configuration for those EC2 instances in a way that assure that those EC2 instances only accept traffic to the port targeted by the ELB, coming from this special ELB Security Group.

Elastic IPs not in use

In AWS, users are charged for allocated Elastic IPs that are not associated to a running instance nor to a network interface (VPC). Therefore, the best practice is to keep only those IP addresses that will be needed in the future. Allocated Elastic IPs you don’t plan to use in the future, or those you just forgot to release, may contribute to unexpectedly high bills.

Newvem tracks the usage of your allocated Elastic IPs and identifies those that haven’t been in use for a significant period. We suggest you consider releasing those allocated IP addresses if you do not plan to use them.

Unnecessary Security Groups Ports are open on DB Server

We have noticed that at least one unnecessary port is open on your DB server, meaning that your DB server is potentially vulnerable. Typically this issue occurs when using the same security groups to secure DB and non-DB servers. We suggest setting security groups specifically for the DB server and limiting access to recommended DB-related ports only.

IP Ports are open to all Internal AWS Servers

We have found that you have at least one of your security groups’ IP ports open to all internal AWS servers. This can potentially make some of your servers vulnerable. This issue can occur if one of your security groups was configured to allow access to the following IP range - 10.0.0.1/8.  

We suggest limiting access of internal AWS servers to these open ports in one of the following ways:

  • IP Address: Limit access to a specific IP address of an instance that is yours (e.g.  10.17.48.156/32)
  • Security Group: Limit access to a certain security group (i.e. use another security group’s rules to limit access (e.g. sg-3c02c053).  

Open IP ports

Newvem monitors your security groups’ ports, and notifies you if it finds that at least one of them is currently open to all IP addresses. An open IP port may mean that some servers are exposed to access from any IP address worldwide, making them vulnerable. We suggest that you reduce the number of open ports to a minimum, limiting access from the outside world only to web-facing services. For example, port 80 for HTTP and port 443 for HTTPS.

AMI Objects are Publicly Accessible

It can be risky to publicly share Amazon Machine Images (AMIs), as they may contain sensitive data that you do not want to be publicly accessible.

There are two options:

  • Shared inadvertently: If the AMIs have been shared inadvertently, their access policy can be changed to private.
  • Shared intentionally: If the AMIs have been intentionally shared, sensitive data should be removed from them.

Critical IP Ports are Open: Identification, View and Set Security Groups Rules

Identification

Our identification of the issue is based on the following data:

  • One or more security groups were configured to allow access through critical IP ports.
  • One or more of your AWS instances are using the security group with the open critical IP ports.
Newvem Group Security Assessment 

The following is a list of critical IP ports:

Port # Subject
5432 Postgres
3306 MySql
3362 MySql
1433 Sql Server
389 LDAP
9160 Cassandra
27170 MongoDB
5672 AMQP
11211 Memcached
Instructions
Viewing a Security Group’s Rules
  •  AWS Management Console
    1. Log in to the AWS Management Console and click the Amazon EC2 tab.
    2. In the Navigation pane, click Security Groups. The security groups belonging to the account are displayed.
    3. Select the security group whose rules you want to see. The security group’s information is displayed in the lower pane in the Details tab; its rules are displayed in the Inbound tab.
  • Using AWS CLI Command Line Tools - 

 Type the command:

PROMPT>  ec2-describe-group [group ...]

Amazon EC2 returns output in the format of the following example.

GROUP   sg-251s6f45     999988887777    WebServers   web

PERMISSION      999988887777    WebServers ALLOWS  tcp     80      80      FROM    CIDR    0.0.0.0/0       ingress

Tip: To filter the list to return only the security group with the open ports, use the ip-permission.from-port and ip-permission.to-port filters.

Note: These are a short explanations based on our detailed how-to guide - How to Add a Rule to an AWS Security Group


Adding a Rule to a Security Group

AWS Management Console

To add a rule to a security group -

  1.  In the AWS Management Console, select a specific EC2 security group, by following the instructions in the above procedure (Viewing a security group’s rules). The selected security group’s rules appear in the lower pane, in the Inbound tab.
  2. In the Inbound tab, in Create a new rule, select the type of rule to create.
  3. In Port range, specify a port or port range. In this case of open critical IP ports, we suggest that you reduce the number of open ports to a minimum, limiting access from the outside world only to web-facing services (e.g. port 80 for HTTP and port 443 for HTTPS).
  4. In Source, specify one of the following:
    • The name or ID of the security group that is allowed access. If the group is in someone else’s AWS account, type the AWS account ID that contains the security group, followed by “/”, followed by the security group name. For example:  978644442091/SecurityGroupA.
    • The IP address or range of addresses in CIDR notation that is allowed access. For example, 123.2.432.3 to limit access to one computer at that IP address; 123.2.432.3/24 to limit access to a network at that range of IP addresses. You can enter 0.0.0.0/0 to allow all IP addresses to access the specified port range.

5. Click Add Rule. An asterisk appears on the Inbound tab, and the Apply Rule Changes button becomes enabled.

6. Click Apply Rule Changes. The new rule is created and can be viewed in the right pane of the Inbound tab. The new rule is applied to all instances belonging to the selected security group.

Note: These are a short explanations based on our detailed how-to guide - How to Add a Rule to an AWS Security Group


[Drill down to specific cost, risk, and asset insights directly from you iPhone/iPad to make decisions and take immediate action. Use It For Free!]


Keywords: critical IP ports, amazon aws security groups, AWS management console, security group rule, amazon ec2, aws instances,

Hitchhiker's Guide to The Cloud

Newvem's eBook for Cloud Operations