# 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. - skorzystaj ze skryptu w AWS Cloud Shell aby przygotować EC2 z Apache Web Server: [create-ec2-with-http.sh](skrypty/create-ec2-with-http.sh) - instrukacja dla konfiguracji Certbot dla Apache Web Server na Ubuntu https://certbot.eff.org/instructions?ws=apache&os=snap 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 w użyciem skryptu [uam-bwc-ec2-httpd.sh](skrypty/uam-bwc-ec2-httpd.sh). 2. Zmodifikuj ustawienia Security Group tak, aby zezwolić na dostęp do maszyny wirtualnej EC2 tylko z wybranego adresu IP. 3. Dołącz do maszyny EC2 przestrzeń dyskową EBS. 4. Wykonaj snapshot dla przestrzeni dyskowej EBS. 5. Uruchom usługę AWS Inspector dla maszyny wirtualnej EC2. 6. Usuń maszynę wirtualną EC2 i sprawdź czy dane z przestrzeni dyskowej EBS są dostępne. ## S3 1. Przygotuj własny bucket S3 w regionie *us-east-1*. Użyj własnego klucza w celu zaszyfrowania danych. Prześlij do bucketu dowolny plik. 2. Przygotuj nowy bucket 3. Skonfiguruj go, aby mógł służyć jako serwer www dla statycznych treści. 4. Zapoznaj się z opcją replikacji danych pomiędzy regionami AWS - [Cross-Region Replication](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html). ## VPC 1. Przygotuj nową sieć VPC w regionie *us-east-1* z następującymi elementami: - CIDR VPC: *10.10.0.0/16*; - Internet Gateway przyłączony do VPC; - Public Subnet: *10.10.0.0/24*; - Private Subnet *10.10.1.0/24*; - Nat Gateway dla podsieci prywatnej; - Routing Table dla podsieci publicznej z trasą do Internet Gateway; - Routing Table dla podsieci prywatnej z trasą do Nat Gateway; - ACL dla podsieci publicznej z zezwoleniem na ruch HTTP i SSH; 2. Przygotuj maszynę wirtualną EC2 w przygotowanym VPC w podsieci publicznej. 3. Przygotuj maszynę wirtualną EC2 w przygotowanym VPC w podsieci prywatnej.