Włącz akcje zakłócania ataków w AWS za pomocą Microsoft Sentinel (wersja zapoznawcza)

W tym artykule opisano sposób konfigurowania środowiska platformy AWS w taki sposób, aby Microsoft Sentinel mógł wykonywać zautomatyzowane akcje na użytkowniku, który przyjmuje rolę SAML, lub na koncie usługi AWS IAM po wyzwoleniu alertu. Automatyczne zakłócanie ataków w Microsoft Defender XDR wykorzystuje sygnały o wysokiej pewności do powstrzymywania przejętych zasobów i ograniczania szkód spowodowanych atakami, w tym działań na tożsamościach w AWS. Przed rozpoczęciem upewnij się, że są spełnione wymagania wstępne dotyczące platformy AWS i Microsoft Sentinel.

Wymagania wstępne

Przed rozpoczęciem potrzebne są następujące wymagania wstępne:

  • Masz aktywne konto platformy AWS z uprawnieniami administracyjnymi.
  • Twój analityczny obszar roboczy usługi Microsoft Sentinel jest połączony z ujednoliconym portalem operacji zabezpieczeń.
  • Złącze AWS dla Microsoft Sentinel jest wdrożone i włączone.
  • Logi AWS CloudTrail są wprowadzane do Microsoft Sentinel; zobacz Connect Microsoft Sentinel to Amazon Web Services w celu pobierania danych logów usług AWS.
  • Odpowiednie role i uprawnienia usługi IAM są konfigurowane w usługach AWS, aby umożliwić Microsoft Sentinel wykonywanie akcji na kontach usługi IAM.
  • Rozwiązanie Amazon Web Services jest instalowane z Content Hub w Microsoft Sentinel, tak aby złącze Amazon Web Services S3 pojawiało się w galerii złączy danych.

Krok 1. Przygotowanie platformy AWS do integracji

Wykonaj następujące zadania, aby przygotować środowisko AWS do integracji z Microsoft Sentinel.

1.1 Tworzenie dedykowanej roli IAM dla Microsoft Sentinel

Utwórz nową rolę usługi IAM w konsoli zarządzania platformy AWS.

  1. Wybierz usługę AWS jako zaufaną jednostkę i wybierz pozycję EC2 jako tymczasowy symbol zastępczy. Zastępujesz tę relację zaufania właściwym podmiotem zabezpieczeń Microsoft Sentinel w obszarze Konfigurowanie relacji zaufania.

  2. Dołącz do roli następującą politykę IAM. Ta zasada przyznaje usłudze Microsoft Sentinel uprawnienia wymagane do zarządzania zasadami IAM dla użytkowników i ról na potrzeby akcji zakłócania ataków. Zamień <YOUR_ACCOUNT_ID> zgodnie z potrzebami:

    {
      "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 Konfigurowanie relacji zaufania

Utwórz niestandardowe zasady zaufania dla roli IAM.

Użyj następujących zasad zaufania, określając jednostkę integracji Microsoft Sentinel (zastąp <YOUR_AZURE_SUBSCRIPTION_ID> ją rzeczywistym identyfikatorem subskrypcji Azure):

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

Krok 2. Włączanie rozwiązania CloudTrail

Włącz rejestrowanie w usłudze CloudTrail we wszystkich regionach platformy AWS, aby Microsoft Sentinel mogły odbierać wymagane dane aktywności.

  1. W konsoli platformy AWS przejdź do pozycji CloudTrail.

  2. Upewnij się, że włączono funkcję CloudTrail, a rejestrowanie jest aktywne we wszystkich regionach.

Krok 3. Wdrażanie i włączanie łącznika platformy AWS w Microsoft Sentinel

Wdróż i włącz łącznik danych platformy AWS S3 w Microsoft Sentinel, aby mógł odbierać dane dziennika ze środowiska platformy AWS. Przed rozpoczęciem upewnij się, że rozwiązanie Amazon Web Services jest zainstalowane z centrum zawartości w Microsoft Sentinel, aby łącznik Amazon Web Services S3 był wyświetlany w galerii łączników danych.

  1. W portalu Azure przejdź do pozycji Microsoft Sentinel > Łączniki danych.

  2. Wybierz pozycję Amazon Web Services S3 z galerii łączników danych.

  3. Postępuj zgodnie z instrukcjami zawartymi w artykule Łączenie usługi Microsoft Sentinel z usługą Amazon Web Services w celu pozyskiwania danych dzienników z usług AWS, aby skonfigurować środowisko AWS i połączyć je z usługą Microsoft Sentinel.

  4. Podaj ARN roli IAM oraz adres URL kolejki Amazon SQS, która odbiera powiadomienia o logach S3 z Twojego środowiska AWS. Wartości te są tworzone podczas konfiguracji łącznika, podążając za Connect Microsoft Sentinel do Amazon Web Services, aby pobrać dane logów usług AWS.

Krok 4. Weryfikowanie integracji

Użyj poniższych testów, aby potwierdzić, że integracja łącznika platformy AWS działa prawidłowo.

  1. W Microsoft Sentinel upewnij się, że stan łącznika to Połączono.

  2. Zweryfikuj stan pozyskiwania logów i łącznika przy użyciu tabeli diagnostycznej SentinelHealth, która raportuje stan łącznika i pozyskiwania logów w Twoim obszarze roboczym Log Analytics. Sprawdź również stan kolejki AWS SQS, aby potwierdzić, że powiadomienia o logach są przetwarzane.

  3. W usłudze AWS sprawdź, czy zdarzenia CloudTrail i GuardDuty są wysyłane do Microsoft Sentinel.

Krok 5. Testowanie integracji

Wykonaj następujący test, aby sprawdzić, czy akcje automatycznego reagowania na zakłócenia ataku działają zgodnie z oczekiwaniami.

  1. Wyzwalanie alertu testowego na platformie AWS (na przykład symulowane naruszenie poświadczeń).

  2. Upewnij się, że Microsoft Sentinel może wykonywać skonfigurowane akcje na koncie usługi IAM, którego dotyczy problem.

  3. Przejrzyj dzienniki inspekcji w usługach AWS i Microsoft Sentinel, aby zweryfikować pomyślne wykonanie.

Krok 6. Monitorowanie i konserwacja

Skorzystaj z poniższych rozwiązań, aby monitorować i utrzymywać integrację w czasie.

  • Regularnie przeglądaj uprawnienia roli IAM i dzienniki inspekcji na platformie AWS.
  • W razie potrzeby zaktualizuj reguły analityczne Microsoft Sentinel i playbooki automatyzacji, aby odzwierciedlały zmiany w środowisku AWS.
  • Monitorowanie alertów i akcji reagowania w portalu Microsoft Sentinel.

Następujące skrypty automatyzują konfigurację roli AWS IAM i dostawcy OIDC do integracji Microsoft Sentinel z usługą AWS w celu umożliwienia zakłócania ataków:

Poniższy skrypt Bash automatyzuje konfigurację dostawcy OIDC w AWS oraz tworzenie roli IAM do integracji z Microsoft Sentinel. Przed uruchomieniem upewnij się, że narzędzie AWS CLI jest zainstalowane i skonfigurowane przy użyciu konta z uprawnieniami administratora usługi IAM. Zapisz fragment kodu jako plik bash i wykonaj go.

#!/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"