
Das Problem
In Ihrem AWS-Konto gibt es einige EC2-Instances, auf die Sie nicht zugreifen können: SSH ist ausgeschaltet, es gibt keinen Instance Connect-Zugriff und es ist kein SSM-Agent installiert. Sie möchten sie nach Fehlkonfigurationen und Sicherheitslücken durchsuchen, aber wie?
Find and fix the security risks that pose the biggest threat to your business.
Die Lösung
Benutzen quelloffenes cnspec seitliches Scannen! 🎉 cnspec weiß, wie man einen Snapshot der EC2-Zielinstanz erstellt, aus diesem Snapshot ein Volume erstellt und dieses Volume nach Fehlkonfigurationen und Sicherheitslücken scannt.
Aber wie?
Hier gibt es ein paar Schritte, aber die Idee ist einfach: Erstellen Sie die Scanner-Instanz (eine Instanz, die AWS-API-Zugriff hat und über SSH zugänglich ist), installieren Sie cnspec und scannen Sie los! Die Scanner-Instanz ist dafür verantwortlich, das Zielvolume zu finden, einen Snapshot zu erstellen und das Zielvolume zu scannen.
Schritt eins: Erstellen Sie die Scanner-Instance in demselben AWS-Konto und derselben VPC wie die Ziel-Instance. Stellen Sie sicher, dass Sie eine SSH-Verbindung zu dieser Instance herstellen können.

Schritt zwei: Erstellen Sie eine neue Rolle, die Sie der Scanner-Instanz zuordnen. Hängen Sie diese beiden von AWS verwalteten Richtlinien an die Rolle an: AmazonSSMManagedInstanceCore AmazonSSMReadOnlyAccess
Erstellen Sie eine benutzerdefinierte Richtlinie mit diesen Berechtigungen und fügen Sie sie der Rolle hinzu:
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:AttachVolume",
"ec2:DetachVolume",
"ec2:DeleteVolume",
"ec2:DeleteSnapshot"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/Created By": "Mondoo"
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateSnapshot",
"ec2:CreateVolume",
"ec2:CopySnapshot",
"ec2:CreateTags",
"ec2:DescribeInstances",
"ec2:DescribeVolumes",
"ec2:DescribeSnapshots",
"kms:Decrypt",
"kms:ReEncryptTo",
"kms:GenerateDataKeyWithoutPlaintext",
"kms:DescribeKey",
"kms:ReEncryptFrom"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "kms:CreateGrant",
"Resource": "*",
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": true
}
}
}
]
Schritt drei: SSH zur Scanner-Instanz. Folgen Sie dazu den Anweisungen in der AWS-Konsole, etwa ssh ec2-user @54 .226.221.203 -i ~/.ssh/key.pem
Vierter Schritt: Installieren Sie cnspec auf der Scanner-Instanz:
bash -c "$(curl -sSL https://install.mondoo.com/sh/cnspec)"
Fünfter Schritt: Scannen Sie die Zielinstanz von der Scanner-Instanz aus:
sudo cnspec scan aws ec2 ebs i-04614e3ab48488e5f

Mach mehr
Scannen Sie mehr Instanzen, Snapshots und Volumes. Sie können dieselbe Scanner-Instanz, die Sie gerade erstellt haben, für alle Scans verwenden:
sudo cnspec scan aws ec2 ebs snapshot SNAPSHOT-ID
sudo cnspec scan aws ec2 ebs volume VOLUME-ID
Referenzen