Aktivér angrebsafbrydelser på AWS med Microsoft Sentinel (prøveversion)

I denne artikel beskrives det, hvordan du konfigurerer dit AWS-miljø, så Microsoft Sentinel kan udføre automatiserede handlinger på en bruger, der påtager sig en SAML-rolle, eller på en AWS IAM-konto, når en besked udløses. Angrebsforstyrrelse bruger signaler med høj sikkerhed til at indeholde kompromitterede aktiver og begrænse skaden fra angreb, herunder handlinger på identiteter i AWS.

Forudsætninger

Før du begynder, skal du have følgende forudsætninger på plads:

  • Du har en aktiv AWS-konto med administrative rettigheder.
  • Dit Microsoft Sentinel analysearbejdsområde er forbundet med den samlede portal til sikkerhedshandlinger.
  • AWS-connectoren til Microsoft Sentinel er installeret og aktiveret
  • AWS CloudTrail-logge indtages i Microsoft Sentinel Se: Opret forbindelse Microsoft Sentinel til Amazon Web Services for at hente AWS-tjenestelogdata
  • Relevante IAM-roller og -tilladelser er konfigureret i AWS, så Microsoft Sentinel kan udføre handlinger på IAM-konti.

Trin 1: Forbered AWS til integration

1.1 Opret en dedikeret IAM-rolle til Microsoft Sentinel

  1. Opret en ny IAM-rolle i AWS-administrationskonsollen.
  • Vælg AWS-tjenesten som det objekt, der er tillid til, og vælg EC2 (du skal derefter opdatere tillidsforholdet).

  • Vedhæft følgende politik til rollen (erstat <YOUR_ACCOUNT_ID> efter behov):

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "iam:UpdateLoginProfile",
            "iam:DeactivateMFADevice",
            "iam:DeleteAccessKey",
            "iam:DeleteLoginProfile",
            "iam:DeleteUser",
            "iam:RemoveUserFromGroup",
            "iam:ResetServiceSpecificCredential",
            "iam:ResyncMFADevice",
            "iam:DeleteUserPermissionsBoundary",
            "iam:DeleteUserPolicy",
            "iam:DetachUserPolicy"
          ],
          "Resource": "arn:aws:iam::<YOUR_ACCOUNT_ID>:user/*"
        }
      ]
    }
    

1.2 Konfigurer tillidsforhold

Opret en brugerdefineret tillidspolitik for IAM-rollen.

Brug følgende tillidspolitik, og angiv den Microsoft Sentinel integrationsprincipal (erstat <YOUR_AZURE_SUBSCRIPTION_ID> med dit faktiske Azure abonnements-id):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com",
        "AWS": "arn:aws:iam::<YOUR_AZURE_SUBSCRIPTION_ID>:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Trin 2: Aktivér CloudTrail

  1. I AWS-konsollen skal du gå til CloudTrail.

  2. Sørg for, at en CloudTrail er aktiveret, og at logføring er aktiv for alle områder.

Trin 3: Udrul og aktivér AWS-connectoren i Microsoft Sentinel

  1. I Azure Portal skal du gå til Microsoft Sentinel > Data-connectors.

  2. Vælg Amazon Web Services S3 i galleriet med dataconnectors.

  3. Hvis du ikke kan se connectoren, skal du installere Amazon Web Services-løsningen fra Content Hub i Microsoft Sentinel.

  4. Følg vejledningen i den officielle dokumentation for at konfigurere dit AWS-miljø og forbinde det med Microsoft Sentinel.

  5. Angiv URL-adressen til IAM-rollen ARN og SQS-køen efter behov.

Trin 4: Valider integration

  1. I Microsoft Sentinel skal du bekræfte, at connectorstatussen er Tilsluttet.

  2. Bekræft logindtagelse og connectortilstand ved hjælp af SentinelHealth-logge og AWS SQS-køstatus.

  3. I AWS skal du kontrollere, at Hændelserne CloudTrail og GuardDuty sendes til Microsoft Sentinel.

Trin 5: Test integrationen

  1. Udløs en testbesked i AWS (f.eks. simuleret kompromitteret legitimationsoplysninger).

  2. Bekræft, at Microsoft Sentinel kan foretage de konfigurerede handlinger på den pågældende IAM-konto.

  3. Gennemse overvågningslogge i AWS, og Microsoft Sentinel for at bekræfte en vellykket udførelse.

Trin 6: Overvåg og vedligehold

  • Gennemse regelmæssigt IAM-rolletilladelser og overvågningslogge i AWS.
  • Opdater Microsoft Sentinel analyseregler og automatiske playbooks efter behov for at afspejle ændringer i dit AWS-miljø.
  • Overvåg beskeder og svarhandlinger på portalen Microsoft Sentinel.

Følgende scripts kan automatisere processen til opbygning af integrationen med Microsoft Sentinel og AWS for at muliggøre afbrydelse af angreb:

Gem følgende kodestykke som en bashfil, og udfør det.

#!/bin/bash
# AWS Sentinel OIDC Setup Script
# Configures IAM roles and policies for Microsoft Sentinel integration

set -e  # Exit on error

# Color codes for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color

ms_federated_endpoint="sts.windows.net/33e01921-4d64-4f8c-a055-5bdaffd5e33d"
actions_audience="api://b7c1e142-0933-4310-ba00-8b28878bfece"
role_name="OIDC_Actions_Sentinel"
policy_name="SentinelActionsPolicy"

# Verify AWS credentials are configured
echo -e "${CYAN}Verifying AWS credentials...${NC}"
if ! account_id=$(aws sts get-caller-identity --query Account --output text 2>&1); then
    echo -e "\n${RED}ERROR: AWS credentials not configured or invalid${NC}"
    echo -e "${RED}Details: $account_id${NC}"
    echo -e "\n${YELLOW}Please authenticate using one of these methods:${NC}"
    echo -e "${YELLOW}  1. Run 'aws configure' to set up credentials${NC}"
    echo -e "${YELLOW}  2. Set AWS environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)${NC}"
    echo -e "${YELLOW}  3. Use 'aws sso login --profile <profile-name>' for SSO${NC}"
    exit 1
fi
echo -e "${GREEN}✓ AWS authenticated (Account: $account_id)${NC}"
trust_policy_document=$(cat << EOM
{
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "arn:aws:iam::$account_id:oidc-provider/$ms_federated_endpoint/"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "$ms_federated_endpoint/:aud": "$actions_audience",
                    "sts:RoleSessionName": "MicrosoftSentinel_$account_id"
                }
            }
        }
    ]
}
EOM
)
permissions_policy_document=$(cat << EOM
{
  "Statement": [
    {
      "Sid": "SentinelActionsPermissions",
      "Effect": "Allow",
      "Action": [
        "iam:GetUserPolicy",
        "iam:DeleteRolePolicy",
        "iam:PutUserPolicy",
        "iam:AttachUserPolicy",
        "iam:ListUserPolicies",
        "iam:PutRolePolicy",
        "iam:GetUser",
        "iam:DetachUserPolicy",
        "iam:GetRolePolicy",
        "iam:DeleteUserPolicy",
        "s3:PutBucketPublicAccessBlock"
      ],
      "Resource": "*"
    }
  ]
}
EOM
)

aws iam add-client-id-to-open-id-connect-provider --open-id-connect-provider-arn arn:aws:iam::$account_id:oidc-provider/$ms_federated_endpoint/ --client-id $actions_audience
aws iam create-role --role-name $role_name --assume-role-policy-document "$trust_policy_document" || aws iam update-assume-role-policy --role-name $role_name --policy-document "$trust_policy_document"
aws iam put-role-policy --role-name $role_name --policy-name $policy_name --policy-document "$permissions_policy_document"