Jak skonfigurować sensor XDR AWS
Arkadiusz K
25 października 2023
W tym artykule opiszemy jak skonfigurować sensor XDR AWS
Sensor AWS zbiera i przetwarza informacje o zmianach konfiguracji i działaniach podejmowanych przez użytkowników, role lub usługi AWS.
Wymagania Sensora AWS
Wstęp
Aby Sensor AWS działał poprawnie, należy najpierw skonfigurować kilka usług AWS w konsoli AWS. Konieczne jest skonfigurowanie S3 Bucket, który zbiera dzienniki z AWS CloudTrail i usługi AWS Config. Usługa AWS Config wysyła również informacje o zmianach konfiguracji do AWS SNS Topic. SQS Queue jest subskrybowana do tego tematu, więc również otrzymuje informacje o konfiguracji. S3 Bucket wysyła również powiadomienia do SQS Queue za każdym razem, gdy tworzone są nowe obiekty w zasobniku (bucket).
GravityZone musi mieć dostęp zarówno do S3 Bucket jak i SQS Queue. Odbywa się to za pomocą konta usługi AWS IAM, do którego należy zastosować politykę ze skonfigurowanymi następującymi uprawnieniami:
- Uprawnienia dla S3 Queue: GetObject, PutObject i ListBucket.
- Uprawnienia dla SQS Queue: DeleteMessage, PurgeQueue, ReceiveMessage i ChangeMessageVisibility.
Jeśli chcesz również użyć zintegrowany sensor do reagowania na incydenty, musisz skonfigurować dodatkowe polityki, które mają zastosowanie do całego IAM principal. Niezbędne uprawnienia dla rekacji: CreatePolicy, AttachUserPolicy, ListPolicies, ListAccessKeys i DeleteAccessKey.
Na koniec możesz skonfigurować Lifecycle rule na S3 Bucket, aby czyścić logi, które zostały już pobrane przez GravityZone. Jest to opcjonalny krok, mający na celu zarządzanie kosztami pamięci masowej S3. Nie jest on wymagany do integracji sensora.
Należy pamiętać, że kroki opisane w tej sekcji mogą się różnić w zależności od unikalnego środowiska AWS, zasad i wymagań. Więcej szczegółowych informacji można znaleźć w oficjalnej dokumentacji AWS.
Wymagania wstępne Sensora AWS
Przed konfiguracją Sensora AWS w GravityZone, upewnij się, że spełnione są następujące wymagania:
- Usługi AWS Config, AWS CloudTrail, Amazon SQS i Amazon SNS muszą być włączone i skonfigurowane.
- Konto użytkownika AWS IAM musi być skonfigurowane z odpowiednimi uprawnieniami.
- Opcjonalnie na S3 Bucket można skonfigurować Lifecycle Rule.
Uwaga: Włączenie jednej lub więcej z tych usług może się wiązać z dodatkowymi kosztami: AWS CloudTrail, AWS Config, Amazon SQS, AWS S3 i Amazon SNS. Wszystkie te usługi są wymagane do przeprowadzenia integracji.
Konfiguracja niezbędnych usług AWS
Skonfiguruj multi-region CloudTrail trail
1. Zaloguj się do swojej konsoli AWS.
2. Wyszukaj na pasku CloudTrail.
3. Na stronie CloudTrial kliknij Create a trail.
4. Nazwij trail.
5. W Storage location wybierz Create new S3 bucket.
6. W trail log bucket and folder podaj unikalną nazwę dla bucketa.
7. W Log file SSE-KMS encryption, odznacz checkbox Enabled.
8. Resztę ustawień zostaw domyślne i kliknij Next.
9.W sekcji Events zaznacz wszystkie trzy kategorie: Management events, Data events i Insights events.
10. W Managements events pod API activity zaznacz Read i Write.
11. Dla Data event type wybierz S3 z rozwijanego menu
12. Dla Log selector template zaznacz Log all events w rozwijanym menu.
13. W Insight events zaznacz oba API call rate i API error rate.
14. Kliknij Next.
15. Na stronie Review and create kliknij Create trail.
Zostaniesz przekierowany do siatki Trails.
Skonfiguruj uprawnienia S3 dla AWS Config service
1. Kliknij S3 bucket.
2. Na stronie Objects kliknij w nazwę bucketa.
3. Kliknij Permissions.
4. Przewiń do sekcji Bucket policy i kliknij Edit.
5. Skopiuj poniższy kod:
{
"Sid": "AWSConfigBucketPermissionsCheck",
"Effect": "Allow",
"Principal": {
"Service": "config.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "BUCKET_ARN",
"Condition": {
"StringEquals": {
"AWS:SourceAccount": "ACCOUNT_ID"
}
}
},
{
"Sid": "AWSConfigBucketExistenceCheck",
"Effect": "Allow",
"Principal": {
"Service": "config.amazonaws.com"
},
"Action": "s3:ListBucket",
"Resource": "BUCKET_ARN",
"Condition": {
"StringEquals": {
"AWS:SourceAccount": "ACCOUNT_ID"
}
}
},
{
"Sid": "AWSConfigBucketDelivery",
"Effect": "Allow",
"Principal": {
"Service": "config.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "BUCKET_ARN/AWSLogs/ACCOUNT_ID/Config/*",
"Condition": {
"StringEquals": {
"AWS:SourceAccount": "ACCOUNT_ID",
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
}
6. W sekcji Policy dodaj przecinek po ostatnim wyrażeniu i wklej kod w nowej linii, przed zamykającym nawiasem kwadratowym.
7. Zmień dwie wartości w kodzie BUCKET_ARN i ACCOUNT_ID.
Bucket ARN wyświetla się nad sekcją Policy.
Account ID możesz znaleźć klikając w swoją nazwę użytkownika w prawym górnym rogu strony. Twoje Account ID jest widoczne w rozwijanym menu, zaraz pod Twoją nazwą użytkownika.
8. Kliknij Save changes.
Skonfiguruj AWS Config i włącz AWS Config recording
1. Wyszukaj Config w pasku wyszukiwania konsoli AWS.
2. Kliknij Set up AWS Config. Nie używaj 1-click setup.
Ten krok zakłada, że usługa AWS Config nigdy nie została skonfigurowana w bieżącym regionie konta AWS. Jeśli usługa AWS Config jest już skonfigurowana, przejdź do strony Settings w menu po lewej stronie. Kliknij Edit, zaznacz Enable Recording i potwierdź swój wybór. Następnie wykonaj opisane poniżej kroki.
3. W sekcji General Settings pod Recording strategy zaznacz Record all current and future resource types supported in this region.
4. Zaznacz Include globally recorded resource types .
5. W polu AWS Config role zaznacz Use an existing AWS Config service-linked role. Reszta ustawień może zostać domyślna
6. W sekcji Delivery method pod Amazon S3 Bucket wybierz Choose a bucket from your account.
7. W S3 Bucket name (required) wybierz utworzony wcześniej S3 Bucket.
8. W sekcji Amazon SNS topic zaznacz. Stream configuration changes and notifications to an Amazon SNS topic.
9. Kliknij Create a topic.
10. Podaj nazwę.
11. Dwukrotnie kliknij Next i potwierdź swój wybór.
Skonfiguruj SQS queue i zasubskrybuj ją do SNS topic
1. Wyszukaj Amazon SQS w pasku wyszukiwania konsoli AWS.
2. Na stronie Amazon SQS otwórz menu po lewej stronie i kliknij Queues.
3. Kliknij Create queue.
4. W Details dla pola Type wybierz Standard.
5. Podaj nazwę.
6. Resztę ustawień zostaw jako domyślne i kliknij Create Queue.
Zostaniesz przekierowany na dedykowaną stronę.
7. Skopiuj queue URL i ARN do późniejszego wykorzystania.
8. W zakładce SNS subscriptions kliknij Subscribe to Amazon SNS topic.
9. W rozwijanym menu wybierz utworzony w poprzednim kroku SNS topic i kliknij Save.
Zostaniesz przekierowany na dedykowaną stronę.
10. Kliknij w Access policy.
11. W sekcji Access policy (Permissions) kliknij Edit.
12. Skopiuj poniższy kod:
{
"Sid": "Stmt1678745203026",
"Effect": "Allow",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Action": "sqs:SendMessage",
"Resource": "QUEUE_ARN",
"Condition": {
"StringLike": {
"aws:SourceArn": "BUCKET_ARN"
},
"StringEquals": {
"aws:SourceAccount": "ACCOUNT_ID"
}
}
}
13. W Access policy przewiń na sam dół, dodaj przecinek po ostatnim wyrażeniu i wklej w nowej linii kod, przed ostatnim kwadratowym nawiasem zamykającym.
14. Zamień BUCKET_ARN, ACCOUNT_ID i QUEUE_ARN wcześniej zapisanymi przez Ciebie wartościami.
15. Kliknij Save.
Skonfiguruj zdarzenia S3 Bucket
1.Wyszukaj S3 w pasku wyszukiwania konsoli AWS.
2. Kliknij Buckets po lewej stronie.
3. Na stronie Buckets kliknij S3 Bucket, który utworzyłeś.
4. Kliknij Properties.
5. Przewiń do Event Notifications i kliknij Create event notification.
6. W sekcji General configuration podaj nazwę powiadomień.
7. W sekcji Event types pod Object Creation zaznacz All object create events.
8. W sekcji Destination wybierz opcję SQS queue.
9. Pod Specify SQS queue wybierz utworzoną w poprzednim kroku SQS queue.
10. Kliknij Save changes.
Kolejna będzie konfiguracja IAM service account z odpowiednimi uprawnieniami.
Konfiguracja IAM policy pod kątem generowania zdarzeń związanych z bezpieczeństwem
1. Wyszukaj IAM w pasku wyszukiwania i kliknij Identity and Access Management (IAM).
2. Kliknij Policies w menu po lewej stronie.
3. Kliknij Create policy.
4. Kliknij JSON na stronie Specify permissions.
5. W sekcji Policy editor podmień tekst na poniższy:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowAccessToS3Bucket",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket"
],
"Resource": [
"BUCKET_ARN/*",
"BUCKET_ARN"]
},
{
"Sid": "AllowAccessToSQSQueue",
"Effect": "Allow",
"Action": [
"sqs:ReceiveMessage",
"sqs:DeleteMessage",
"sqs:ChangeMessageVisibility",
"sqs:PurgeQueue"
],
"Resource": "QUEUE_ARN"
}
]
}
6. Podmień BUCKET_ARN i ACCOUNT_ID w kodzie na wartości, które skopiowałeś na poprzednim etapie konfiguracji.
7. Kliknij Next.
8. W sekcji Policy details podaj nazwę i opis swojej polityki. Kliknij Create policy.
Zostaniesz przekierowany na stronę Policies.
Konfiguracja IAM policy pod kątem reakcji na incydenty
Jeżeli nie chcesz reagować na incydenty bezpośrednio z poziomu GravityZone, możesz pominąć ten krok i przejść do następnego.
Jeżeli chcesz podejmować działania z konsoli GravityZone, wykonaj poniższe czynności:
1. Kliknij Create policy na stronie Policies.
2. Kliknij JSON na stronie Specify permissions.
3. W sekcji Policy editor podmień tekst na poniższy:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"iam:ListPolicies",
"iam:AttachUserPolicy",
"iam:CreatePolicy",
"iam:DeleteAccessKey",
"iam:ListAccessKeys"
],
"Resource": [
"arn:aws:iam::ACCOUNT_ID:*"
]
}
]
}
4. Podmień ACCOUNT_ID w kodzie wartością, którą zapisałeś podczas wcześniejszych kroków konfiguracji.
Zastosowanie permissions policies dla IAM service account
1. Na stronie Policies kliknij Users.
2. Kliknij Add users.
3. W sekcji User details podaj nazwę użytkownika i kliknij Next.
4. Na stronie Set permissions wybierz Attach policies directly.
5. W sekcji Permissions policies wybierz jedną lub dwie utworzone chwilę wcześniej polityki, w zależności od tego czy chcesz tylko generować incydenty czy również na nie reagować z poziomu GravityZone.
6. Kliknij Next.
7. Kliknij Create user.
Zostaniesz przekierowany na stronę Users.
8. Na stronie Users kliknij w nazwę użytkownika.
9. Na stronie użytkownika przejdź do zakładki Security Credentials.
10. Przewiń do Access keys i kliknij Create access key.
11. W sekcji Use case wybierz opcję Third-party service.
12. Zaznacz Confirmation i kliknij Next.
13. Kliknij Create access key.
14. Skopiuj Access key i the Secret access key ze strony Retrieve access key do późniejszego wykorzystania.
15. Kliknij Done i potem Continue.
16. Skopiuj ARN value użytkownika ze strony Summary do późniejszego wykorzystania.
Przyznanie IAM service account dostępu do S3 Bucket
1.Wyszukaj S3 w pasku wyszukiwania konsoli AWS.
2. Kliknij Buckets w menu po lewej stronie.
3. Wybierz S3 bucket utworzony na etapie konfiguracji niezbędnych usług AWS.
4. Kliknij Permissions.
5. Przewiń do Bucket policy i kliknij Edit.
6 Skopiuj poniższy kod:
{
"Sid": "AllowSensorUserAccess",
"Effect": "Allow",
"Principal": {
"AWS": "IAM_SENSOR_USER_ARN"
},
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket"
],
"Resource": [
"BUCKET_ARN/*",
"BUCKET_ARN"],
"Condition": {
"StringEquals": {
"AWS:SourceAccount": "ACCOUNT_ID"
}
}
}
7. W sekcji Policy dodaj przecinek po ostatnim wyrażeniu i wklej kod w nowej linii, przed zamykającym nawiasem kwadratowym.
8. Podmień w kodzie BUCKET_ARN, ACCOUNT_ID i IAM_SENSOR_USER_ARN wartościami, które skopiowałeś w poprzednich etapach konfiguracji.
9. Kliknij Save changes.
Zostaniesz przekierowany na stronę szczegółów bucketa z zaznaczoną zakładką Permissions.
Konfiguracja ograniczonego publicznego dostępu do S3 Bucket przez access point policies
1. W zakładce Permissions S3 bucket przejdź do Block public access (bucket settings) .
2. Kliknij Edit.
3. Na stronie Edit Block public access (bucket settings), odznacz Block all public access.
4. Zaznacz Block public access to buckets and objects granted through new access control lists (ACLs) i Block public access to buckets and objects granted through any access control lists (ACLs).
5. Kliknij Save changes.
6.Wpisz confirm w oknie pop-up i kliknij Confirm.
W ten sposób przyznałeś publiczny dostęp tylko dla IAM service account skonfigurowanego w poprzednich krokach,
Przyznanie IAM service account dostępu do SQS queue
1. Wyszukaj AMAZON SQS.
2. Kliknij Queues.
3.Kliknij SQS Queue utworzone na etapie konfiguracji konfiguracji niezbędnych usług.
4. Kliknij Access policy.
5. Kliknij Edit.
6. Skopiuj poniższy kod:
{
"Sid": "AllowSensorUserAccess",
"Effect": "Allow",
"Principal": {
"AWS": "IAM_SENSOR_USER_ARN"
},
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket"
],
"Resource": [
"BUCKET_ARN/*",
"BUCKET_ARN"],
"Condition": {
"StringEquals": {
"AWS:SourceAccount": "ACCOUNT_ID"
}
}
}
7. W Access policy przewiń na sam dół, dodaj przecinek po ostatnim wyrażeniu i wklej w nowej linii kod, przed ostatnim kwadratowym nawiasem zamykającym.
8 Zamień BUCKET_ARN, ACCOUNT_ID i IAM_SENSOR_USER_ARN wcześniej zapisanymi przez Ciebie wartościami.
9. Kliknij Save.
Konfiguracja Lifecycle rule
Jest to opcjonalny krok, który pozwala zaoszczędzić na kosztach zarządzania przestrzenią S3, ponieważ czyści on logi otrzymane przez GravityZone.
Jeżeli chcesz, możesz go pominąć i przejść do ostatniego etapu konfiguracji.
1.Wyszukaj S3 w pasku wyszukiwania konsoli AWS.
2. Kliknij Buckets w menu po lewej stronie.
3. Wybierz S3 bucket utworzony na etapie konfiguracji niezbędnych usług AWS.
4. Kliknij Management.
5. Kliknij Create lifecycle rule w sekcji Lifecycle rules.
6. Nadaj nazwę regule.
7. Dla zakresu reguły (rule scope) wybierz Apply to all objects in the bucket.
8. Zaznacz I acknowledge that this rule will apply to all objects in the bucket.
9. W sekcji Lifecycle rule actions zaznacz następujące pola:
- Expire current versions of objects
- Delete expired object delete markers or incomplete multipart uploads
10. W polu Days after object creation w sekcji Expire current versions of objects wpisz 30.
11.W polu Number of days sekcji Delete expired object delete markers or incomplete multipart uploads wpisz 30.
12. Kliknij Create rule.
Konfiguracja Sensora AWS
1. W GravityZone Control Center przejdź do Konfiguracja > Zarządzanie Sensorami.
2. Wybierz Sensor AWS i kliknij Integruj.
3. Sprawdź wymagania i potwierdź, że je spełniasz.
4. Nazwij integrację.
5. Kliknij Testuj łączność.
6. Kliknij Dodaj Sensor.
Autor
Arkadiusz K
Obecnie
Najnowsze wpisy
Bitdefender w Teście Endpoint Prevention & Response (EPR) 2024
2 października 2024
Oszustwa związane z energią słoneczną: czym są i jak ich unikać?
1 października 2024
Artykuły które mogą Ci się spodobać
Jak zintegrować Bitdefender GravityZone Security for Mobile z Microsoft Azure Sentinel
Arkadiusz K
19 września 2024