Best practices for securing an AWS environment have been well-documented and generally accepted, such as AWS’s guidance. However, organizations may still find it challenging on how to begin applying this guidance to their specific environments. Show
In this blog series, we’ll analyze anonymized data from Netskope customers that include security settings of 650,000 entities from 1,143 AWS accounts across several hundred organizations. We’ll look at the configuration from the perspective of the best practices, see what’s commonly occurring in the real world and:
This blog post focuses on the IAM security controls for root account security. Based on the Netskope dataset analyzed, we will highlight three opportunities to improve security by making simple IAM changes:
Enforce hardware MFA. 8-9% of root accounts do not have MFA enabled. Root of it allRoot, Root, go away It is a best practice to avoid using the root account for everyday use, and the prevalence of root account use and associated security issues over time are discussed in detail in The Root of your AWS Insecurities. However, there are several nuanced items worth reemphasizing. When looking at root account best practices in the 1,143 accounts in the dataset, we find: #Best Practice# of Violations%1Eliminate use of the root user for administrative and daily tasks353.12Ensure no root user account access key exists494.33Ensure MFA is enabled for the root user account1119.74Ensure hardware MFA is enabled for the root user account948.21. Root Account UseBackground: The root account should not be used for everyday tasks, and should be used only for initial provisioning of an IAM administrator user or only for select tasks that can only be done by the root account. Data: In this dataset, 35 (3.1%) of the root accounts have been used within the last 7 days prior to the date of analysis. Analysis: In order to discern whether there are a small number of “repeat-offender” accounts, we performed a longitudinal analysis in The Root of your AWS Insecurities and found that over 4 months, the number of unique accounts using the root account was higher at 15% of the total accounts. This shows that the problem is widespread over a relatively short time period. The 4.8% usage from this dataset snapshot and the ongoing 15% root account usage is higher than expected and exposes the organization to large adverse impacts in case of compromise. Controls:
2. Root Access KeysBackground: For reasons similar to root account use, It is another best practice . Root access keys provide another risk area for compromise, with very high adverse impact due to the root account privileges. Data: In this dataset, we see that access keys have been created in 4.3% of the 1,143 root accounts. Analysis: 4.3% is a high percentage of root accounts, and it greatly increases the attack surface area and the chances for compromise. Controls:
3. MFA: Root User and 4. Hardware MFA: Root UserBackground: is one of the best mitigations to credential compromise and should be enabled for the root account, preferably using a hardware key. MFA can be set in two ways:
Data: 111 out of the total 1143 root accounts or 9.7% of root accounts definitively do not have any MFA enabled. Analysis: MFA is not configured at the account level in 737 (64.5%) root accounts. When looking at hardware MFA, 868 (75.9%) root accounts–again, at the account level. However, when analyzing MFA policies, we need to look at the effective MFA policy for root, including SCP policies. As SCP policy data was not available in this dataset, we instead will focus on standalone AWS accounts: 111 accounts did not have MFA enabled for root at the account level and are not part of an AWS Organization, and therefore do not have MFA enforced by an SCP. Controls:
IP Allow Lists: In addition to the controls listed above, IP Allow Lists can further mitigate compromised credentials. Service Control Policies need to be used with AWS Organizations in order to apply this to the root account since normal IAM User policies within an account do not apply to the root account. To implement IP allow lists in a manageable manner, it is best to utilize VPNs or proxies so that approved traffic to AWS comes from a more static list of approved, corporate IP ranges. ConclusionMany best practices have been codified but many AWS environments lag behind in implementing these best practices. Remediating the issues is straightforward for many of the security settings, and there exists specific prescriptive guidance on auditing and remediating your configurations in these areas, which can result in a large reduction in risk. Here are some basic measures that can be done to address some of the common risk areas due to IAM configuration in your AWS environment:
In upcoming blogs, we’ll continue exploring other best practices and how individual organizations can apply these best practices to their specific environment. Additionally, Netskope’s Public Cloud Security platform also can automate configuration checking of your AWS environment, implementing both compliance standards, as well as custom configuration checks. Dataset and MethodologyTime Period: Data was sampled/analyzed from January 24, 2021. Source: The analysis presented in this blog post is based on anonymized usage data collected by the Netskope Security Cloud platform relating to a subset of Netskope customers with prior authorization. Data Scope: The data included 1143 AWS accounts and several hundred organizations. The data was composed of configuration settings across tens of thousands of AWS entities including IAM users, IAM policies, password policy, buckets, databases, CloudTrail logs, compute instances, and security groups. Logic: The analysis followed the logic of core root account security checks found in best practices regarding AWS configuration settings with a few adjustments for the dataset and methodology. Some best practices might define “recent usage” for the root account as a last logged-in time occurring within the past 24 hours to determine whether the root account has been used recently. Because this dataset comes from a point-in-time snapshot, this was changed to within the past seven days prior to the audit date. What is the best practice for the AWS root user account?Never share your AWS account root user password or access keys with anyone. Use a strong password to help protect access to the AWS Management Console. For information about managing your AWS account root user password, see Changing the password for the root user.
Which of the following are recommended security best practices for the AWS account root user?Short description. Safeguard your passwords and access keys.. Activate multi-factor authentication (MFA) on the AWS account root user and any users with interactive access to AWS Identity and Access Management (IAM). Limit AWS account root user access to your resources.. Audit IAM users and their policies frequently.. What are the recommended practices for IAM when it comes to AWS account root user access keys?We don't recommend generating access keys for your root user, because they allow full access to all your resources for all AWS services, including your billing information. Don't use your root user for everyday tasks. Use the root user to complete the tasks that only the root user can perform.
What should AWS root account be used for?We recommend that you use root only for the few tasks that require it, for example: changing your account settings, activating AWS Identity and Access Management (IAM) access to billing and cost management, changing your root password, and enabling multi-factor authentication (MFA).
|