As we move into the world of agentic AI, I can imagine that we will witness a rapid rise in blended attacks — where attackers chain low- and medium-severity vulnerabilities to achieve full system compromises. This evolving threat landscape demands a fresh perspective on security posture and response strategies: rethink vulnerability prioritization.
Example of a blended attack: cloud misconfigurations leading to a compromise
Scenario: an attack on a SaaS company using AWS. A SaaS company running its infrastructure on AWS suffers a data breach through a blended attack that combines phishing, cloud misconfigurations, and privilege escalation to achieve full system compromise.
Initial access: a phishing attack on a DevOps engineer
- The attacker sends a phishing email to a DevOps engineer, masquerading as an AWS IAM alert.
- The email contains a malicious link leading to a fake AWS login page.
- The engineer unknowingly enters their AWS IAM credentials.
- The attacker gains valid AWS IAM user credentials — without MFA.
Best practice: enforce IAM MFA for all users. Misconfiguration (medium): the IAM user was not required to use MFA.
Privilege escalation: exploiting overly permissive IAM policies
- The attacker logs into the AWS console using the stolen credentials.
- They discover the compromised user has excessive IAM permissions, including the ability to create new IAM users, attach policies, and modify EC2 instances.
- The attacker creates a new IAM user with
AdministratorAccessand generates long-lived access keys for persistence.
Best practice: use least-privilege IAM policies and audit access regularly. Misconfiguration (high): the IAM user had wildcard permissions (iam:*).
Discovery: exploiting publicly exposed S3 buckets
- The attacker uses the AWS CLI to list all S3 buckets (
s3api list-buckets). - They discover a publicly exposed bucket containing database credentials in plaintext, API keys for third-party services, and environment variables for production workloads.
Best practice: enforce S3 bucket policies and restrict public access. Misconfiguration (high): an S3 bucket with public access enabled. Misconfiguration (low): secrets stored in plaintext instead of AWS Secrets Manager.
Lateral movement: exploiting open security groups
- The attacker discovers an EC2 instance running a PostgreSQL database.
- The security group allows open SSH (port 22) and database access (port 5432) from the internet.
- Using the database credentials found in the bucket, the attacker logs into the database.
- They dump sensitive customer data and create a reverse shell to gain remote access to the instance.
Best practice: restrict security group rules to specific IP ranges. Misconfiguration (high): SSH open to the world (0.0.0.0/0). Misconfiguration (medium): the database exposed to the internet.
Persistence: backdooring the environment
- The attacker creates a new IAM role with full access to S3, EC2, and RDS.
- They attach the role to the compromised EC2 instance to maintain persistence.
- They also install a cryptocurrency miner on the instance to monetize the compromise.
Best practice: audit IAM roles and EC2 instance configurations regularly. Misconfiguration (medium): no monitoring or alerting for unusual IAM role creation.
Impact: data exfiltration and ransomware
- The attacker exfiltrates sensitive customer data to an external S3 bucket under their control.
- They encrypt production files on the EC2 instance and delete backups stored in S3 and EBS snapshots.
- A ransom note is left demanding Bitcoin payment for data restoration.
Best practice: enable AWS CloudTrail logging, backup versioning, and Amazon GuardDuty. Misconfiguration (medium): CloudTrail logging disabled for S3. Misconfiguration (medium): no immutable backups or versioning enabled.
Attack path summary
Mitigation strategies
- Enforce IAM MFA for all users.
- Restrict IAM permissions using least-privilege access.
- Disable long-lived IAM access keys; use temporary credentials with IAM roles.
- Ensure all S3 buckets are private by default and use AWS Secrets Manager.
- Lock down security groups and limit inbound access.
- Enable AWS CloudTrail logging and monitor API calls.
- Enforce data backup versioning and retention policies.
- Deploy cloud detection and response for threat detection.
Prioritization is undoubtedly making a difference, but the future will focus on visibility and strong cyber hygiene — we need to be doing the basics. I would love to hear your thoughts.