Aktivera åtgärder för attackstörningar på AWS med Microsoft Sentinel (förhandsversion)

Den här artikeln beskriver hur du konfigurerar AWS-miljön så att Microsoft Sentinel kan vidta automatiserade åtgärder för en användare som antar en SAML-roll eller på ett AWS IAM-konto när en avisering utlöses. Automatisk attackstörning i Microsoft Defender XDR använder högkonfidenssignaler för att begränsa komprometterade tillgångar och begränsa skador från attacker, inklusive åtgärder på identiteter i AWS. Innan du börjar kontrollerar du att nödvändiga AWS- och Microsoft Sentinel krav är uppfyllda.

Förhandskrav

Innan du börjar behöver du följande förutsättningar:

  • Du har ett aktivt AWS-konto med administratörsbehörighet.
  • Din Microsoft Sentinel analysarbetsyta är ansluten till portalen för enhetliga säkerhetsåtgärder.
  • AWS Connector för Microsoft Sentinel är distribuerad och aktiverad.
  • AWS CloudTrail-loggar matas in i Microsoft Sentinel; se Connect Microsoft Sentinel to Amazon Web Services för att ta in AWS-tjänsteloggdata.
  • Lämpliga IAM-roller och -behörigheter konfigureras i AWS så att Microsoft Sentinel kan utföra åtgärder på IAM-konton.
  • Amazon Web Services-lösningen installeras från Content Hub i Microsoft Sentinel så att Amazon Web Services S3-kontakten visas i galleriet med datakopplar.

Steg 1: Förbereda AWS för integrering

Slutför följande uppgifter för att förbereda AWS-miljön för Microsoft Sentinel integrering.

1.1 Skapa en dedikerad IAM-roll för Microsoft Sentinel

Skapa en ny IAM-roll i AWS-hanteringskonsolen.

  1. Välj AWS-tjänsten som betrodd entitet och välj EC2 som tillfällig platshållare. Du ersätter den här förtroenderelationen med det korrekta Microsoft Sentinel-säkerhetsobjektet i Konfigurera förtroenderelation.

  2. Koppla följande IAM-princip till rollen. Den här policyn ger Microsoft Sentinel de behörigheter som krävs för att hantera IAM-principer för användare och roller för åtgärder för attackstörning. Ersätt <YOUR_ACCOUNT_ID> efter behov:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "iam:GetUserPolicy",
            "iam:DeleteRolePolicy",
            "iam:PutUserPolicy",
            "iam:AttachUserPolicy",
            "iam:ListUserPolicies",
            "iam:PutRolePolicy",
            "iam:GetUser",
            "iam:DetachUserPolicy",
            "iam:GetRolePolicy",
            "iam:DeleteUserPolicy", 
         ],
         "Resource": "*"
        }
      ]
    }
    

1.2 Konfigurera förtroenderelation

Skapa en anpassad förtroendeprincip för IAM-rollen.

Använd följande förtroendeprincip och ange Microsoft Sentinel integrationsobjekt (ersätt <YOUR_AZURE_SUBSCRIPTION_ID> med ditt faktiska Azure prenumerations-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"
    }
  ]
}

Steg 2: Aktivera CloudTrail

Aktivera CloudTrail-loggning i alla AWS-regioner så att Microsoft Sentinel kan ta emot nödvändiga aktivitetsdata.

  1. Gå till CloudTrail i AWS-konsolen.

  2. Kontrollera att en CloudTrail är aktiverad och att loggning är aktiv för alla regioner.

Steg 3: Distribuera och aktivera AWS-anslutningstjänsten i Microsoft Sentinel

Distribuera och aktivera AWS S3-dataanslutningen i Microsoft Sentinel så att den kan ta emot loggdata från din AWS-miljö. Innan du börjar kontrollerar du att Amazon Web Services-lösningen är installerad från Content Hub i Microsoft Sentinel så att Amazon Web Services S3-anslutningsappen visas i galleriet för dataanslutningar.

  1. I Azure Portal går du till Microsoft Sentinel > dataanslutningsprogram.

  2. Välj Amazon Web Services S3 från galleriet för dataanslutningar.

  3. Följ anvisningarna i Anslut Microsoft Sentinel till Amazon Web Services för att mata in AWS-tjänstloggdata för att konfigurera din AWS-miljö och ansluta den till Microsoft Sentinel.

  4. Ange IAM-rollen ARN och Amazon SQS-kö-URL:en som tar emot S3-loggmeddelanden från din AWS-miljö. Dessa värden skapas när du sätter upp connectorn genom att följa Connect Microsoft Sentinel till Amazon Web Services för att ta in AWS-tjänsteloggdata.

Steg 4: Validera integrationen

Använd följande kontroller för att bekräfta att integreringen av AWS-anslutningstjänsten fungerar korrekt.

  1. I Microsoft Sentinel bekräftar du att anslutningsstatusen är Ansluten.

  2. Kontrollera logginmatningen och anslutningsprogrammets hälsotillstånd med hjälp av diagnostiktabellen SentinelHealth, som rapporterar hälsostatus för anslutningsprogram och logginmatning i din Log Analytics-arbetsyta. Kontrollera även AWS SQS-köstatusen för att bekräfta att loggmeddelanden bearbetas.

  3. I AWS kontrollerar du att CloudTrail- och GuardDuty-händelser skickas till Microsoft Sentinel.

Steg 5: Testa integreringen

Utför följande test för att kontrollera att automatiska åtgärder för attackavbrott fungerar som förväntat.

  1. Utlös en testavisering i AWS (till exempel kompromettering av simulerade autentiseringsuppgifter).

  2. Bekräfta att Microsoft Sentinel kan vidta de konfigurerade åtgärderna på det berörda IAM-kontot.

  3. Granska granskningsloggarna i AWS och Microsoft Sentinel för att verifiera att körningen lyckades.

Steg 6: Övervaka och underhålla

Använd följande metoder för att övervaka och underhålla integreringen över tid.

  • Granska regelbundet IAM-rollbehörigheter och granskningsloggar i AWS.
  • Uppdatera Microsoft Sentinel analysregler och automationsspelböcker efter behov för att återspegla ändringar i AWS-miljön.
  • Övervaka aviseringar och svarsåtgärder i Microsoft Sentinel-portalen.

Följande skript automatiserar konfigurationen av AWS IAM-rollen och OIDC-providern för att integrera Microsoft Sentinel med AWS och därmed möjliggöra att attacker kan störas:

Följande Bash-skript automatiserar konfigurationen av AWS OIDC-providern och skapandet av IAM-rollen för Microsoft Sentinel integrering. Innan du kör det kontrollerar du att AWS CLI är installerat och autentiserat med ett konto som har administrativa IAM-behörigheter. Spara kodfragmentet som en bash-fil och kö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"