Jeśli uważasz, że… docker-compose.yml To tylko klej infrastrukturalny, zastanów się jeszcze raz. Te pliki często stają się niezamierzonym miejscem przechowywania sekretów, zakodowanych na stałe danych uwierzytelniających, tokenów API i zmiennych środowiskowych, które trafiają do systemu kontroli wersji. Po zsynchronizowaniu z GitHubem lub dowolnym repozytorium, te sekrety mogą pozostać w nim na zawsze. commit Historia.
Deweloperzy często traktują docker-compose.yml jako plik niewrażliwy, pomijając fakt, że może on służyć jako wektor atakuNiewielki wyciek może oznaczać dostęp do prywatnych usług, wewnętrznych interfejsów API lub całej infrastruktury. To właśnie na tego typu sekrety Docker-Compose polują atakujący.
Typowe sposoby wycieku sekretów docker-compose Docker-Compose.yml
Oto kilka codziennych błędów popełnianych przez programistów:
1. Bezpośrednie zakodowanie danych uwierzytelniających
services:
db:
image: postgres
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: supersecret123
Hasło w tym docker-compose.yml jest teraz częścią Twojej historii git. Co gorsza, może być również używany w środowisku produkcyjnym. To jedna z najbardziej bezpośrednich form sekretów docker-compose. ekspozycja.
2. Kopiowanie i wklejanie z udostępnionych konfiguracji lub StackOverflow
Złe praktyki rozprzestrzeniają się szybko. Kopiowanie niezabezpieczonych próbek i używanie ich w obecnej formie prowadzi do ujawnienia poufnych informacji w każdym środowisku, od deweloperskiego do produkcyjnego.
3. Montowanie .env pliki bezpośrednio, bez ich zabezpieczania
plik_env: – .env
.env pliki często zawierają klucze API lub dane uwierzytelniające, a programiści zapominają o ich dodaniu gitignoreDzięki temu sekrety są widoczne, niezależnie od tego, czy repozytorium jest publiczne, czy współdzielone. Pośrednio stają się one sekretami Docker Compose po odwołaniu.
Rzeczywisty wpływ sekretów Docker-Compose CI/CD
In CI/CD pipelines, skompromitowane sekrety od docker-compose.yml może:
- Wyzwalaj nieautoryzowane kompilacje
- Dostęp ograniczony do usług przygotowawczych lub produkcyjnych
- Wstrzykiwanie złośliwego kodu do wdrożeń
- Otwieranie tylnych drzwi poprzez ruch boczny
Atakujący skanują publiczność Repozytoria GitHub szukać docker-compose.yml Pliki za pomocą narzędzi GitHub dorks lub zautomatyzowanych. Po znalezieniu sekretów mogą podszywać się pod menedżerów CI, nadużywać kredytów w chmurze, a co gorsza, wdrażać ransomware w łańcuchach dostaw. Te sekrety Docker Compose stanowią poważne i często przeoczona podatność.
Bezpieczne wykrywanie i zarządzanie sekretami
Użyj narzędzi skanujących:
- TruffleHog, Gitleakilub Xygeni może wykryć sekrety w Twoim repozytorium, w tym stare commits.
- Uruchom skanowanie w swoim CI pipeline aby zablokować PR-y zawierające tajemnice.
Zastąp bezpośrednie sekrety zmiennymi środowiskowymi:
usługi:
Aplikacja:
obraz: myapp
środowisko:
HASŁO_DB: ${HASŁO_DB}
Użyj menedżera sekretów do wstrzyknięcia DB_HASŁO w czasie wykonywania, utrzymując go poza Twoim docker-compose.ymlTakie podejście pomaga ograniczyć ryzyko związane z sekretami Docker Compose.
Zintegruj menedżerów sekretów:
Narzędzia takie jak Vault, AWS Secrets Manager czy Doppler bezpiecznie obsługują sekrety i zapewniają zasady rotacji.
Najlepsze praktyki dla programistów w DevSecOps, aby uniknąć ujawnienia sekretów Docker-Compose
- Nigdy nie koduj sekretów na stałe in docker-compose.yml.
- Dodaj .env do gitignore, zawsze.
- Zastosowanie tajne narzędzia skanujące w Twoim lokalnym środowisku deweloperskim i CI/CD pipeline.
- Przejrzyj pliki do utworzenia jako część listy kontrolnej działań PR w zakresie bezpieczeństwa.
- Zautomatyzuj rotację sekretów, zwłaszcza w przypadku tokenów i poświadczeń usług.
- Przykłady audytów stron trzecich przed skopiowaniem ich do bazy kodu.
- Traktuj wszystkie poufne dane w tych plikach jako sekrety Docker Compose i zarządzaj nimi odpowiednio.
Twoje Docker-Compose.yml Może być Twoim największym martwym punktem w kwestii bezpieczeństwa
Twoje docker-compose.yml To coś więcej niż tylko konfiguracja; to część powierzchni ataku Twojej aplikacji. Traktuj ją jak kod. Sekrety ukryte w tych plikach stanowią realne ryzyko, zwłaszcza po zsynchronizowaniu z kontrolą wersji i zintegrowaniu z… CI/CD.
Narzędzia takie jak Xygeni pomagają wykrywać i zarządzać sekretami Docker Compose w bazach kodu i pipelines, zmniejszając ryzyko ataków na łańcuch dostaw. Zintegruj go ze swoim procesem pracy, aby uzyskać widoczność i kontrolę nad tym, co… docker-compose.yml może być odsłaniające.







