Bezpieczeństwo kontenerów w DevOps. Zabezpieczanie i monitorowanie kontenerów Docker - ebook
Bezpieczeństwo kontenerów w DevOps. Zabezpieczanie i monitorowanie kontenerów Docker - ebook
DevOps jest innowacyjną metodyką prowadzenia projektów, w której wyjątkowe znaczenie ma integracja zespołów programistów i administratorów systemów. Taki sposób rozwijania aplikacji wydaje się szczególnie atrakcyjny w odniesieniu do aplikacji kontenerowych. Technologia kontenerów i orkiestracji jest uważana za bardzo nowoczesną, jednak nawet w przypadku kontenerów Docker i klastrów Kubernetes kwestii bezpieczeństwa nie wolno lekceważyć. Podobnie jak w innych aplikacjach, zabezpieczanie zaczyna się podczas projektowania. O czym więc powinny pamiętać zespoły pracujące zgodnie z DevOps, aby zapewnić bezpieczeństwo swoich kontenerów?
W tej książce pokazano związek między metodyką DevOps a praktyką dotyczącą kontenerów Docker i klastrów Kubernetes z perspektywy bezpieczeństwa, monitoringu i zarządzania. Przedstawiono dobre praktyki tworzenia obrazów kontenerów Docker, a także zasady bezpieczeństwa hostów, na których są uruchamiane kontenery, i wszystkich komponentów. Poruszono takie zagadnienia jak statyczna analiza zagrożeń obrazów Docker, podpisywanie obrazów za pomocą Docker Content Trust oraz umieszczanie ich w rejestrze Docker. Opisano też techniki zabezpieczania platformy Kubernetes. Ponadto znalazł się tutaj opis narzędzi do zarządzania kontenerami i aplikacjami, jak również monitorowania aplikacji kontenerowych i tworzenia sieci w platformie Docker.
Najciekawsze zagadnienia:
- gruntowne wprowadzenie do metodyki DevOps
- czym są platformy kontenerowe: Docker, Kubernetes, Swarm, OpenShift
- zagrożenia kontenerów i obrazów
- narzędzia do audytu bezpieczeństwa i zabezpieczania aplikacji kontenerowych
- zarządzanie kontenerami i ich monitorowanie za pomocą narzędzi: cAdvisor, Sysdig, Portainer i Rancher
Niezawodność DevOps to także bezpieczne wdrażanie kontenerów Docker!
Spis treści
O autorze 13
O recenzentach 14
Podziękowania 15
Wprowadzenie 17
Rozdział 1. Pierwsze kroki z DevOps 19
- Struktura 19
- Cele 20
- Czym jest DevOps? 20
- Obszary metodyki DevOps 25
- Zarządzanie i planowanie 26
- Tworzenie i kompilowanie kodu 26
- Ciągła integracja i testy 27
- Automatyczne wdrażanie 27
- Zapewnianie poprawnego działania oprogramowania w środowisku produkcyjnym 28
- Monitorowanie 28
- Ciągła integracja i ciągłe dostarczanie oprogramowania 28
- Kanał dostarczania oprogramowania 30
- Narzędzia DevOps 32
- Automatyzacja za pomocą narzędzi Jenkins i Drone 38
- Zarządzanie infrastrukturą i konfiguracją 39
- Narzędzia monitorujące 40
- Pakiet ELK 41
- Kontenery i orkiestracja 42
- DevOps a bezpieczeństwo 42
- Wprowadzenie do DevSecOps 43
- Podsumowanie 45
Rozdział 2. Platformy kontenerowe 47
- Struktura 47
- Cele 48
- Kontenery Dockera 48
- Czym jest Docker? 48
- Nowe funkcjonalności platformy Docker i zarządzanie kontenerami 49
- Architektura platformy Docker 50
- Silnik 50
- Rejestr 52
- Klient 52
- Testowanie platformy Docker w chmurze 54
- Orkiestracja kontenera 56
- Docker Compose 56
- Kubernetes 57
- Instalacja platformy Kubernetes i kluczowe pojęcia 58
- Docker Swarm 61
- Swarm w praktyce 63
- Platforma OpenShift 66
- Platforma OpenShift jako usługa 66
- Metodyka DevOps z platformą OpenShift 66
- Najważniejsze elementy platformy OpenShift 69
- Scenariusze szkoleniowe 72
- Podsumowanie 72
Rozdział 3. Zarządzanie kontenerami i obrazami Dockera 75
- Struktura 76
- Cele 76
- Zarządzanie obrazami Dockera 76
- Wprowadzenie do obrazów Dockera 76
- Warstwy obrazu 77
- Etykiety obrazu 78
- Projektowanie obrazów kontenerów 80
- Polecenia Dockerfile 80
- Czym jest plik Dockerfile? 81
- Tworzenie obrazu za pomocą pliku Dockerfile 81
- Dobre praktyki tworzenia pliku Dockerfile 85
- Zarządzanie kontenerami 86
- Wyszukiwanie i uruchamianie obrazu 86
- Uruchomienie kontenera w tle systemu 88
- Badanie kontenera 88
- Optymalizacja obrazów 91
- Pamięć podręczna platformy Docker 92
- Optymalizacja kompilacji obrazu 94
- Tworzenie aplikacji dla środowiska Node.js 94
- Zmniejszanie obrazu 96
- Zmniejszanie obrazów za pomocą obrazu Alpine Linux 97
- Okrojone obrazy 98
- Podsumowanie 101
Rozdział 4. Wprowadzenie do bezpieczeństwa platformy Docker 103
- Struktura 104
- Cele 104
- Zasady bezpieczeństwa platformy Docker 104
- Podatność głównego procesu platformy Docker na ataki 106
- Dobre praktyki bezpieczeństwa 107
- Uruchamianie kontenera jako nie-administratora 108
- Uruchamianie kontenera w trybie tylko do odczytu 110
- Blokowanie uprawnień SETUID i SETGID 111
- Weryfikowanie wiarygodności obrazów 112
- Ograniczanie wykorzystania zasobów 112
- Kompetencje kontenera 113
- Wyświetlenie wszystkich kompetencji 115
- Nadawanie i odbieranie kompetencji 116
- Blokowanie polecenia ping w kontenerze 118
- Nadawanie kompetencji do zarządzania siecią 120
- Uruchamianie uprzywilejowanych kontenerów 121
- Wiarygodność kontenerów 123
- Podpisywanie obrazów 124
- Bezpieczne pobieranie obrazów z wykorzystaniem pliku Dockerfile 126
- Narzędzie notary do zarządzania obrazami 126
- Rejestr Dockera 127
- Czym jest rejestr? 127
- Rejestr Dockera w serwisie Docker Hub 127
- Tworzenie lokalnego rejestru 128
- Podsumowanie 131
- Pytania 131
Rozdział 5. Bezpieczeństwo hosta platformy Docker 133
- Struktura 134
- Cele 134
- Bezpieczeństwo procesu platformy Docker 134
- Audyt plików i katalogów 137
- Bezpieczeństwo jądra systemu Linux i moduł SELinux 138
- Profile AppArmor i Seccomp 139
- Instalacja modułu AppArmor w systemie Ubuntu 140
- Moduł AppArmor w praktyce 142
- Domyślny profil AppArmorDocker 142
- Uruchamianie kontenera bez profilu AppArmor 143
- Uruchamianie kontenera z profilem Seccomp 144
- Zmniejszanie podatności kontenera na ataki 145
- Testowanie bezpieczeństwa platformy Docker 146
- Przykłady użycia narzędzia Docker Bench for Security 149
- Kod źródłowy narzędzia Docker Bench for Security 152
- Audyt hosta platformy Docker za pomocą narzędzi Lynis i dockscan 155
- Audyt pliku Dockerfile 156
- Narzędzie dockscan skanujące luki w bezpieczeństwie i sprawdzające podatność platformy Docker na ataki 161
- Podsumowanie 163
- Pytania 163
Rozdział 6. Bezpieczeństwo obrazów Dockera 165
- Struktura 166
- Cele 166
- Repozytorium Docker Hub 166
- Skanowanie bezpieczeństwa obrazów Dockera 166
- Proces skanowania obrazów Dockera 167
- Otwarte narzędzia do analizy zagrożeń 169
- Ciągła integracja oprogramowania na platformie Docker 169
- CoreOS Clair 171
- Dagda - pakiet testów bezpieczeństwa 171
- OWASP Dependency-Check 175
- MicroScanner 179
- Skaner Clair i repozytorium Quay.io 180
- Repozytorium GitHub i odnośniki do narzędzia Clair 187
- Repozytorium obrazów Quay.io 188
- Rejestracja w repozytorium Quay.io 189
- Analiza obrazów Dockera za pomocą silnika i interfejsu CLI narzędzia Anchore 193
- Uruchomienie silnika Anchore 195
- Podsumowanie 200
- Pytania 200
Rozdział 7. Audyt i analiza podatności kontenerów Dockera na ataki 201
- Struktura 202
- Cele 202
- Zagrożenia i ataki na kontenery 202
- Zagrożenie Dirty COW (CVE-2016-5195) 207
- Zapobieganie zagrożeniu Dirty COW przy użyciu mechanizmu AppArmor 210
- Zagrożenie jack in the box (CVE-2018-8115) 210
- Najbardziej zagrożone pakiety 211
- Analiza zagrożeń obrazów Dockera 212
- Klasyfikacja zagrożeń 213
- Zagrożenia obrazu Alpine 215
- Zagrożenia platformy Docker 217
- Zagrożone obrazy w serwisie Docker Hub 219
- Uzyskiwanie szczegółowych informacji o zagrożeniach CVE za pomocą interfejsu vulners API 220
- Podsumowanie 222
- Pytania 222
Rozdział 8. Bezpieczeństwo platformy Kubernetes 223
- Struktura 224
- Cele 224
- Wprowadzenie do bezpieczeństwa platformy Kubernetes 224
- Zabezpieczanie kontenerów na platformie Kubernetes 224
- Konfigurowanie platformy Kubernetes 225
- Dobre praktyki bezpieczeństwa na platformie Kubernetes 226
- Zarządzanie poufnymi informacjami 230
- Bezpieczeństwo silnika platformy Kubernetes 231
- Kontrola bezpieczeństwa platformy Kubernetes 231
- Zwiększanie bezpieczeństwa kontenerów na platformie Kubernetes 232
- Narzędzie Kube Bench i zagrożenia 234
- Zalecenia CIS Benchmark dla platformy Kubernetes 234
- Weryfikacja węzłów roboczych 235
- Weryfikacja węzła głównego 235
- Zagrożenia platformy Kubernetes 236
- Projekty zabezpieczeń platformy Kubernetes 238
- kube-hunter 238
- kubesec 238
- Wtyczki do zarządzania klastrem Kubernetesa 239
- Podsumowanie 242
- Pytania 242
Rozdział 9. Sieć kontenerów Dockera 245
- Struktura 245
- Cele 246
- Typy sieci kontenerów 246
- Typy sieci na platformie Docker 246
- Tryb mostu 248
- Tryb hosta 253
- Zarządzanie siecią na platformie Docker 255
- Sieć na platformie Docker 255
- Komunikacja między kontenerami i wiązanie portów 258
- Wiązanie portów kontenera i portów hosta 258
- Eksponowanie portów 259
- Tworzenie sieci na platformie Docker i zarządzanie nimi 260
- Polecenia sieciowe 260
- Sieć mostowa 261
- Dołączenie kontenera do sieci 262
- Łączenie kontenerów 265
- Łączenie kontenerów wewnątrz hosta za pomocą parametru --link 265
- Zmienne środowiskowe 266
- Podsumowanie 268
- Pytania 269
Rozdział 10. Monitorowanie kontenerów 271
- Struktura 271
- Cele 272
- Wydajność kontenerów, wskaźniki i zdarzenia 272
- Zarządzanie dziennikami 272
- Wskaźniki kontenerów 275
- Odczytywanie wskaźników za pomocą polecenia docker inspect 278
- Zdarzenia w kontenerach Dockera 278
- Inne narzędzia monitorujące 280
- Narzędzia do monitorowania wydajności 283
- cAdvisor 283
- dive 286
- Falco 289
- Monitorowanie działania 290
- Monitorowanie serwisu WordPress 290
- Uruchomienie kontenera z narzędziem Falco 291
- Filtry 294
- Analiza wywołań systemowych za pomocą narzędzia Csysdig 296
- Podsumowanie 296
- Pytania 297
Rozdział 11. Administrowanie kontenerami Dockera 299
- Struktura 300
- Cele 300
- Wprowadzenie do administrowania kontenerami 300
- Zarządzanie kontenerami Dockera za pomocą narzędzia Rancher 302
- Wdrożenie platformy Kubernetes za pomocą narzędzia Rancher 306
- Zarządzanie kontenerami za pomocą narzędzia Portainer 310
- Wdrożenie narzędzia Portainer w klastrze Docker Swarm 320
- Zarządzanie klastrem Docker Swarm za pomocą narzędzia Portainer 323
- Podsumowanie 326
- Pytania 326
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-7997-8 |
Rozmiar pliku: | 37 MB |