Docker security – największe błędy administratorów
Konteneryzacja w systemie Linux stała się standardem w DevOps, chmurze i hostingu aplikacji. Narzędzie Docker pozwala uruchamiać aplikacje w izolowanych środowiskach, ale daje też fałszywe poczucie bezpieczeństwa.
W praktyce błędy administracyjne w Dockerze są jedną z najczęstszych przyczyn:
- wycieków danych,
- przejęcia serwerów,
- eskalacji uprawnień,
- infekcji hosta przez kontenery.
Dlaczego Docker nie jest automatycznie bezpieczny?
Kontener:
- nie jest pełną maszyną wirtualną,
- współdzieli kernel z hostem,
- działa w ograniczonej izolacji.
To oznacza, że błąd w konfiguracji może dać atakującemu dostęp do całego systemu.
Największe błędy administratorów Docker
1. Uruchamianie kontenerów jako root
Najczęstszy i najbardziej krytyczny błąd.
Jeśli kontener działa jako root:
- atakujący po przejęciu aplikacji może przejąć hosta,
- łatwa eskalacja uprawnień,
- pełny dostęp do systemu plików.
2. Używanie --privileged
Opcja:
--privileged
to praktycznie:
❌ brak izolacji
Pozwala kontenerowi:
- kontrolować urządzenia hosta,
- manipulować kernelami,
- omijać zabezpieczenia.
3. Mountowanie / lub /var/run/docker.sock
Najbardziej niebezpieczne błędy:
-v /:/host
lub
-v /var/run/docker.sock:/var/run/docker.sock
Skutek:
- pełny dostęp do hosta,
- możliwość uruchamiania nowych kontenerów,
- eskalacja do root na hoście.
4. Brak ograniczeń zasobów
Bez limitów:
- CPU,
- RAM,
- I/O
atakujący może wykonać:
- DoS na hosta,
- „container escape” przez przeciążenie systemu.

5. Używanie niezweryfikowanych obrazów
Pobieranie z:
- publicznego Docker Hub,
- nieznanych repozytoriów,
- „latest” tagów.
Ryzyko:
- backdoory,
- cryptominery,
- malware w obrazach.
6. Brak aktualizacji obrazów
Stare obrazy mogą zawierać:
- podatności CVE,
- exploity kernelowe,
- lukę w bibliotekach systemowych.
7. Zbyt szerokie uprawnienia sieciowe
Domyślnie kontenery mogą:
- komunikować się ze wszystkim,
- działać bez segmentacji.
Brak network policy = większa powierzchnia ataku.
8. Brak kontroli secrets
Przechowywanie:
- haseł,
- tokenów API,
- kluczy SSH
w:
- ENV,
- plikach w kontenerze.
To częsty błąd.
9. Wyłączony user namespace
Bez user namespaces:
- root w kontenerze = root na hoście (w wielu konfiguracjach)
10. Brak logowania i monitoringu
Bez monitoringu:
- nie wykryjesz crypto-minera,
- nie zobaczysz anomalii,
- brak audytu działań kontenera.
Najgroźniejsze scenariusze ataku
1. Container escape
Atakujący wychodzi z kontenera i przejmuje hosta.
2. Docker socket takeover
Przez /var/run/docker.sock:
- uruchamia nowe kontenery,
- przejmuje system.
3. Supply chain attack
Zainfekowany obraz:
- wprowadza malware,
- działa jak backdoor.
4. Cryptomining farm
Kontenery:
- kopią kryptowaluty,
- wykorzystują CPU/GPU serwera.
Jak zabezpieczyć Docker?
1. Nie uruchamiaj jako root
Używaj:
USER appuser
2. Usuń --privileged
Używaj minimalnych uprawnień.
3. Read-only filesystem
--read-only
4. Limit zasobów
--memory=512m
--cpus=1
5. Scan obrazów
Używaj:
- Docker Scout,
- Trivy,
- Snyk.
6. Minimalne obrazy
Preferuj:
- Alpine,
- distroless images.
7. Network segmentation
- osobne sieci Docker,
- brak dostępu do hosta.
8. Secrets management
Zamiast ENV:
- Docker secrets,
- vault (HashiCorp Vault).
9. Regularne update
- obrazy,
- kernel,
- Docker Engine.
10. Runtime security
Narzędzia:
- Falco,
- AppArmor,
- SELinux.
Docker vs bezpieczeństwo – ważna prawda
Docker NIE jest:
❌ sandboxem jak VM
❌ izolacją na poziomie hypervisora
Docker jest:
✔ lekką izolacją procesów
Podsumowanie
Największe błędy administratorów Docker wynikają z nadmiernego zaufania do kontenerów.
Najważniejsze wnioski:
- root w kontenerze = duże ryzyko,
--privilegedto prawie brak zabezpieczeń,/var/run/docker.sockto krytyczna luka,- obrazy z internetu mogą zawierać malware,
- brak limitów zasobów i monitoringu zwiększa ryzyko ataku,
- Docker wymaga aktywnego hardeningu, nie działa bezpiecznie „sam z siebie”.






