I was quite excited by the prospect of using AWS Inspector as it is supposed to replaced some of the expensive tools like Nessus, Expose, Qualys etc for getting a holistic view of your infrastructure from a security perspective. Usually, it is a challenge to scan the servers /assets in the cloud. The complexities of Instant provisioning, Virtual Private Circuits (VPCs), multiple regions, different availability zones add to the license restrictions of the tools. If you are using any of the tools listed above, you could use only one scanning engine and pay up for the additional scanners. There are certain workarounds to these situations, but the results are not optimum.
Using a native tool like AWS Inspector would not only help in overcoming the technical challenges but also sensible from a commercial standpoint. Although AWS Inspector does not advertise itself to be a full-fledged Vulnerability Assessment Scanner, it does claim to help one understand the risk posture of their servers, be it public facing or privately hosted.
In their own words:
“Amazon Inspector is an automated security assessment service that helps improve the security and compliance of applications deployed on AWS. Amazon Inspector automatically assesses applications for vulnerabilities or deviations from best practices. After performing an assessment, Amazon Inspector produces a detailed list of security findings prioritized by level of severity.”
Setting up AWS Inspector needed reasonable effort as it required agent installation, asset tagging and defining of roles. The instructions provided by AWS was easy to follow.
However, I felt the reporting was below average and needed considerable improvement.
Installation & Running the Assessments:
To get started one needs to install the software agent on all the servers (ec2- instances) and initiate the scan from the AWS Web Console. The agent can be installed via command line and it is available for Linux as well as Windows flavors. Amazon Inspector requires read-only access to resources in the account
Following are the supported Operating Systems:
- Amazon Linux (2015.03, 2016.03, 2016.09)
- Ubuntu (14.04 LTS, 16.04 LTS)
- Red Hat Enterprise Linux (7.2)
- CentOS (7.2)
- Windows Server 2008 R2
- Windows Server 2012
- Windows Server 2012 R2
Supported AWS regions:
- US West (Oregon)
- US East (N. Virginia)
- EU (Ireland)
- Asia Pacific (Incheon)
- Asia Pacific (Mumbai)
- Asia Pacific (Tokyo)
- Asia Pacific (Sydney)
The assets can be scanned, based on what are called as Rules package. It is basically set of rules based on templates, similar to PCI, CIS benchmark etc . Following are the available ones at AWS currently:
· Common Vulnerabilities and Exposures
· Center for Internet Security (CIS) Benchmarks
· Security Best Practices
· Runtime Behavior Analysis
While the first two in the list are pretty much straight-forward, Security Best Practices lists out deficiencies based on the following categories:
- Disable Root Login over SSH
- Support SSH Version 2 Only
- Disable Password Authentication Over SSH
- Configure Password Maximum Age
- Configure Password Minimum Length
- Configure Password Complexity
- Enable ASLR
- Enable DEP
- Configure Permissions for System Directories
Runtime Behavior Analysis provides insight on the following parameters:
- Insecure Client Protocols (Login)
- Insecure Client Protocols (General)
- Unused Listening TCP Ports
- Insecure Server Protocols
- Software Without DEP
- Software Without Stack Cookies
- Root Process with Insecure Permissions
NOTE: Currently, AWS does not allow custom or self-configured rules package.
Depth of scan:
Unlike the different scan templates available in the Vulnerability Assessment tools like Advanced Network Scan, Configuration Audits, PCI Scans and etc, AWS classifies its scanning depth based on the time! A point to note is that more the duration, the comprehensive will be its scan and consequently the outcome too.
You can set your duration to any of the following available values:
- 15 minutes
- 1 hour (recommended)
- 8 hours
- 12 hours
- 24 hours
Vulnerabilities determined from the scans are classified as following:
Amazon Inspector is free for upto 250 agents for the first 90 days. The pricing differs post 90 days, more information on pricing here
Here is my analysis:
Maximum number of hosts that could be scanned in a single run is 50, however you can install Inspector on upto 500 instances. AWS calls this as running agents and it has a hard limit without any provisions to request the raise in this limit. If you compare this with tools like Nessus or Nexpose, then it is a big limitation as these tools allow upto 1024 IP addresses depending on the licenses
This is where I felt a big let down by AWS. The reports are neither readily consumable nor readily actionable. With AWS Inspector:
You can either view the results online or download it in CSV format. Only in the web console can you sort around based on parameters like HIGH, MEDIUM, LOW, INFORMATIONAL etc and you cannot use these to present an executive summary like in other tools.
The exported CSV file does not include the host name or the IP Addresses. Instead you will have to figure out the host based on the agent ID. Also, you will need to save it as spreadsheet (.xls, .ods etc ) to preserve the custom changes.
I had to play around with the pivot functionality to identify the host with maximum vulnerabilities or identify CVE which is prevalent across all the hosts.
Report includes the following information:
- Rules Package
- AWS agent ID
AWS already provides many features and tools centered around various aspects of securely managing AWS instances and services like AWS Config, EC2 Systems manager, Cloudwatch, Cloudtrail, Trusted Advisor etc
I think AWS should consider improving the reporting functionality (executive summary, detailed summary, host IPs/names, top 10 machines with vulnerabilities, options to export report to PDF, xls, ods etc) if the AWS inspector is to provide meaningful and impactful inputs to the people using it. It has good potential to eat into the markets currently controlled by the likes of Nessus, Nexpose, Qualys and etc
#aws #awsinspector #vulnerabilityassessment #infosec #security