# Zadania do przedmiotu Bezpieczeństwo w Chmurze: ## Wprowadzenie 1. Zapoznaj się z bazą podatności [Common Vulnerabilities and Exposures](https://cve.mitre.org/) oraz NIST [National Vulnerability Database](https://nvd.nist.gov/) 2. Zapoznaj się z opisem [CVE od firmy Red Hat](https://www.redhat.com/en/topics/security/what-is-cve) 2. Zapoznaj się z Modelami Wspólnej Odpowiedzialności: - [AWS](https://aws.amazon.com/compliance/shared-responsibility-model/) - [Azure](https://learn.microsoft.com/en-us/azure/security/fundamentals/shared-responsibility) - [Google Cloud](https://cloud.google.com/architecture/framework/security/shared-responsibility-shared-fate) 3. Przygotuj dostęp do [Laboratorium AWS](https://awsacademy.instructure.com/) ## Aplikacja w Chmurze 1. Zapoznaj się z konsolą AWS; 2. Przygotuj maszynę wirtualną EC2: - region: *us-east-1*; - rodzaj obrazu: *Ubuntu Server 24.04 LTS*; - rodzaj instancja: *t2.micro*; - typ sieci: *domyślne VPC*; - przygotuj nową parę kluczy ssh; - zezwól na ruch SSH z dowolnego adresu IP; - zezwól na ruch HTTP z dowolnego adresu IP; - wykorzystaj [skrypt instalacyjny](skrypty/uam-bwc-ec2-httpd.sh) w sekcji *User Data*; - zaloguj się na maszynę za pomocą kluczy ssh i przejrzyj logi dostępowe: ```bash tail -f /var/log/apache2/access.log /var/log/auth.log ``` 3. Zapoznaj się z ofertą [AWS Free Tier](https://aws.amazon.com/free/) 4. Po zakończeniu ćwiczeń, usuń maszynę wirtualną EC2. ## OWASP i Nagłówki HTTP 1. Zapoznaj się z projektami [OWASP](https://owasp.org/projects/) 2. Zapoznaj się z nagłówkami bezpieczeństwa HTTP: - [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) - [Cross-Origin Resource Sharing](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) - [Cache-Control](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control) - [Strict-Transport-Security](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) - [robots.txt](https://en.wikipedia.org/wiki/Robots.txt) - Sprawdź jakie nagłówki i zawartość pliku `robots.txt` są dostępne różnych stronach internetowych. 3. Za pomocą dodatków do przeglądarki WWW, np. [ModHeader](https://modheader.com/) spróbuj zbudować politykę CSP dla wybranej strony internetowej, np. [https://wmi.amu.edu.pl/](https://wmi.amu.edu.pl/). Budowę polityki CSP można rozpocząć od następującej: ``` Content-Security-Policy-Report-Only: default-src 'none'; form-action 'none'; frame-ancestors 'none'; ``` 4. Sprawdź co oznacza wartość `no-cache` w nagłówku `Cache-Control`. ## Certyfikaty TLS 1. Przygotuj certyfikat TLS za pomocą narzędzia [Let's Encrypt](https://letsencrypt.org/) dla serwera Apache na maszynie wirtualnej EC2. 2. Zapoznaj się z wartością certyfikatu TLS dla dowolnej strony obsługującej HTTPS, np. [Sejmu RP](https://www.sejm.gov.pl/) . 3. Przygotuj prywatny certifikat TLS za pomocą narzędzia [OpenSSL](https://www.openssl.org/). W jaki sposób taki certyfikat może być autoryzowany przez przeglądarkę WWW bądź system operacyjny? ## EC2 i EBS 1. Uruchom maszynę wirtualną EC2 z przestrzenią dyskową EBS. Wykorzystaj skrypt [skrypt instalacyjny](skrypty/uam-bwc-ec2-ebs.sh) do instalacji serwera Apache. 2. Zmodifikuj ustawienia Security Group tak, aby zezwolić na dostęp do maszyny wirtualnej EC2 tylko z wybranego adresu IP. 3. Zmodifikuj rozmiar przestrzeni dyskowej EBS na maszynie wirtualnej EC2. 4. Wykonaj kopię zapasową EB2 ręcznie. 5. Wykorzystaj usługę AWS Backup do automatycznej kopii zapasowej maszyny wirtualnej EC2.