AWS - Relational Database (RDS) Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Usługa Relational Database Service (RDS) oferowana przez AWS została zaprojektowana w celu uproszczenia wdrażania, obsługi i skalowania bazy danych relacyjnej w chmurze. Usługa ta oferuje zalety efektywności kosztowej i skalowalności, automatyzując pracochłonne zadania, takie jak provisionowanie sprzętu, konfiguracja bazy danych, łatanie i tworzenie kopii zapasowych.
AWS RDS obsługuje różne powszechnie używane silniki baz danych relacyjnych, 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 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 w spoczynku.
Podczas tworzenia klastra DB główny nazwa użytkownika może być skonfigurowana (admin
domyślnie). Aby wygenerować hasło tego użytkownika, możesz:
Wskazać hasło samodzielnie
Powiedzieć RDS, aby automatycznie wygenerował je
Powiedzieć RDS, aby zarządzał nim w AWS Secret Manager zaszyfrowanym kluczem KMS
Istnieją 3 typy opcji uwierzytelniania, ale użycie głównego hasła jest zawsze dozwolone:
Domyślnie brak 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 narażać instancję DB, można utworzyć RDS Proxy, który poprawia skalowalność i dostępność klastra DB.
Ponadto, port bazy danych może być również zmodyfikowany.
Szyfrowanie jest włączone domyślnie przy użyciu zarządzanego klucza AWS (można wybrać zamiast tego CMK).
Włączając swoje szyfrowanie, włączasz szyfrowanie w spoczynku dla swojego przechowywania, migawków, replik odczytu i kopii zapasowych. Klucze do zarządzania tym szyfrowaniem mogą być wydawane przy użyciu KMS. Nie można dodać tego poziomu szyfrowania po utworzeniu bazy danych. Musisz to zrobić podczas jej tworzenia.
Jednak istnieje obejście, które pozwala na zaszyfrowanie niezabezpieczonej bazy danych w następujący sposób. Możesz utworzyć migawkę swojej niezabezpieczonej bazy danych, utworzyć zaszyfrowaną kopię tej migawki, użyć tej zaszyfrowanej migawki do utworzenia nowej bazy danych, a następnie, w końcu, twoja baza danych będzie zaszyfrowana.
Obok możliwości szyfrowania inherentnych dla RDS na poziomie aplikacji, RDS obsługuje również dodatkowe mechanizmy szyfrowania na poziomie platformy, aby chronić dane 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:
Stowarzyszenie grupy opcji:
Baza danych musi być stowarzyszona 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.
Jednak ważne jest, aby zauważyć, że grupy opcji są dostępne tylko dla określonych silników baz danych i wersji.
Włączenie TDE w grupie opcji:
Po stowarzyszeniu z grupą opcji, opcja Oracle Transparent Data Encryption musi być włączona w tej grupie.
Ważne jest, aby rozpoznać, że po dodaniu opcji TDE do grupy opcji staje się ona stałym elementem i nie może być usunięta.
Tryby szyfrowania TDE:
TDE oferuje dwa odrębne 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 konkretnych, indywidualnych elementów w bazie danych, co pozwala na bardziej szczegółową kontrolę nad tym, jakie dane są szyfrowane.
Zrozumienie tych wymagań wstępnych i operacyjnych zawirowań TDE jest kluczowe dla skutecznego wdrażania i zarządzania szyfrowaniem w RDS, zapewniając zarówno bezpieczeństwo danych, jak i zgodność z niezbędnymi standardami.
Istnieją sposoby na dostęp do danych DynamoDB za pomocą składni SQL, dlatego typowe iniekcje SQL są również możliwe.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)