AWS - Relational Database (RDS) Enum
Podstawowe Informacje
Relational Database Service (RDS) oferowany przez AWS jest zaprojektowany, aby uprościć wdrażanie, obsługę i skalowanie relacyjnej bazy danych w chmurze. Usługa ta oferuje korzyści w zakresie efektywności kosztowej i skalowalności, automatyzując pracochłonne zadania, takie jak dostarczanie sprzętu, konfiguracja bazy danych, aktualizacje i kopie zapasowe.
AWS RDS obsługuje różne powszechnie używane silniki baz danych, w tym MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server i Amazon Aurora, z kompatybilnością zarówno dla MySQL, jak i PostgreSQL.
Kluczowe cechy RDS obejmują:
Zarządzanie instancjami baz danych jest uproszczone.
Tworzenie replik do odczytu w celu zwiększenia wydajności odczytu.
Konfiguracja wdrożeń w wielu strefach dostępności (AZ) w celu zapewnienia wysokiej dostępności i mechanizmów przełączania awaryjnego.
Integracja z innymi usługami AWS, takimi jak:
AWS Identity and Access Management (IAM) dla solidnej kontroli dostępu.
AWS CloudWatch dla kompleksowego monitorowania i metryk.
AWS Key Management Service (KMS) w celu zapewnienia szyfrowania danych w spoczynku.
Poświadczenia
Podczas tworzenia klastra DB można skonfigurować główną nazwę użytkownika (admin
domyślnie). Aby wygenerować hasło dla tego użytkownika, można:
Wskazać hasło samodzielnie
Powiedzieć RDS, aby wygenerował je automatycznie
Powiedzieć RDS, aby zarządzał nim w AWS Secret Manager zaszyfrowanym kluczem KMS
Uwierzytelnianie
Istnieją 3 rodzaje opcji uwierzytelniania, ale użycie głównego hasła jest zawsze dozwolone:
Dostęp Publiczny i VPC
Domyślnie nie przyznaje się dostępu publicznego do baz danych, jednak może być przyznany. Dlatego domyślnie tylko maszyny z tej samej VPC będą mogły uzyskać do niej dostęp, jeśli wybrana grupa zabezpieczeń (przechowywana w EC2 SG) na to pozwala.
Zamiast eksponować instancję DB, można utworzyć RDS Proxy, który poprawia skalowalność i dostępność klastra DB.
Ponadto port bazy danych może być zmodyfikowany.
Szyfrowanie
Szyfrowanie jest domyślnie włączone przy użyciu zarządzanego klucza AWS (można wybrać CMK zamiast tego).
Włączając szyfrowanie, włączasz szyfrowanie danych w spoczynku dla swojego magazynu, migawki, replik do odczytu i kopii zapasowych. Klucze do zarządzania tym szyfrowaniem mogą być wydawane za pomocą KMS. Nie można dodać tego poziomu szyfrowania po utworzeniu bazy danych. Musi to być zrobione podczas jej tworzenia.
Jednak istnieje obejście pozwalające na zaszyfrowanie niezaszyfrowanej bazy danych w następujący sposób. Można utworzyć migawkę niezaszyfrowanej bazy danych, utworzyć zaszyfrowaną kopię tej migawki, użyć tej zaszyfrowanej migawki do utworzenia nowej bazy danych, a następnie baza danych będzie zaszyfrowana.
Transparent Data Encryption (TDE)
Oprócz wbudowanych możliwości szyfrowania na poziomie aplikacji, RDS obsługuje również dodatkowe mechanizmy szyfrowania na poziomie platformy w celu ochrony danych w spoczynku. Obejmuje to Transparent Data Encryption (TDE) dla Oracle i SQL Server. Jednak ważne jest, aby zauważyć, że chociaż TDE zwiększa bezpieczeństwo poprzez szyfrowanie danych w spoczynku, może również wpływać na wydajność bazy danych. Ten wpływ na wydajność jest szczególnie zauważalny, gdy jest używany w połączeniu z funkcjami kryptograficznymi MySQL lub funkcjami kryptograficznymi Microsoft Transact-SQL.
Aby skorzystać z TDE, wymagane są pewne wstępne kroki:
Powiązanie z grupą opcji:
Baza danych musi być powiązana z grupą opcji. Grupy opcji służą jako kontenery dla ustawień i funkcji, ułatwiając zarządzanie bazą danych, w tym ulepszenia bezpieczeństwa.
Ważne jest jednak, aby zauważyć, że grupy opcji są dostępne tylko dla określonych silników baz danych i wersji.
Dodanie TDE do grupy opcji:
Po powiązaniu z grupą opcji, opcja Oracle Transparent Data Encryption musi być dodana do tej grupy.
Ważne jest, aby zauważyć, że po dodaniu opcji TDE do grupy opcji, staje się ona stałym elementem i nie można jej usunąć.
Tryby szyfrowania TDE:
TDE oferuje dwa różne tryby szyfrowania:
Szyfrowanie przestrzeni tabel TDE: Ten tryb szyfruje całe tabele, zapewniając szerszy zakres ochrony danych.
Szyfrowanie kolumn TDE: Ten tryb koncentruje się na szyfrowaniu określonych, indywidualnych elementów w bazie danych, umożliwiając bardziej szczegółową kontrolę nad tym, które dane są szyfrowane.
Zrozumienie tych wymagań wstępnych i operacyjnych zawiłości TDE jest kluczowe dla skutecznego wdrożenia i zarządzania szyfrowaniem w RDS, zapewniając zarówno bezpieczeństwo danych, jak i zgodność z niezbędnymi standardami.
Enumeracja
Nieautoryzowany Dostęp
AWS - RDS Unauthenticated EnumPrivesc
AWS - RDS PrivescPost Exploitation
AWS - RDS Post ExploitationUtrzymanie Dostępu
AWS - RDS PersistenceSQL Injection
Istnieją sposoby na dostęp do danych DynamoDB za pomocą składni SQL, dlatego typowe SQL injections są również możliwe.
Last updated