8.2 KiB
8.2 KiB
Zadania do przedmiotu Bezpieczeństwo w Chmurze:
Wprowadzenie
-
Zapoznaj się z bazą podatności Common Vulnerabilities and Exposures oraz NIST National Vulnerability Database
-
Zapoznaj się z opisem CVE od firmy Red Hat
-
Zapoznaj się z Modelami Wspólnej Odpowiedzialności:
-
Przygotuj dostęp do Laboratorium AWS
Aplikacja w Chmurze
-
Zapoznaj się z konsolą AWS;
-
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 w sekcji User Data;
- zaloguj się na maszynę za pomocą kluczy ssh i przejrzyj logi dostępowe:
tail -f /var/log/apache2/access.log /var/log/auth.log
-
Zapoznaj się z ofertą AWS Free Tier
-
Po zakończeniu ćwiczeń, usuń maszynę wirtualną EC2.
OWASP i Nagłówki HTTP
- Zapoznaj się z projektami OWASP
- Zapoznaj się z nagłówkami bezpieczeństwa HTTP:
- Content Security Policy
- Cross-Origin Resource Sharing
- Cache-Control
- Strict-Transport-Security
- robots.txt -
Sprawdź jakie nagłówki i zawartość pliku
robots.txt
są dostępne różnych stronach internetowych.
- Za pomocą dodatków do przeglądarki WWW, np. ModHeader spróbuj zbudować politykę CSP dla wybranej strony internetowej, np. 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';
- Sprawdź co oznacza wartość
no-cache
w nagłówkuCache-Control
.
Certyfikaty TLS
- Przygotuj certyfikat TLS za pomocą narzędzia Let's Encrypt 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
- instrukacja dla konfiguracji Certbot dla Apache Web Server na Ubuntu https://certbot.eff.org/instructions?ws=apache&os=snap
- Zapoznaj się z wartością certyfikatu TLS dla dowolnej strony obsługującej HTTPS, np. Sejmu RP .
- Przygotuj prywatny certifikat TLS za pomocą narzędzia OpenSSL. W jaki sposób taki certyfikat może być autoryzowany przez przeglądarkę WWW bądź system operacyjny?
EC2 i EBS
- Uruchom maszynę wirtualną EC2 w użyciem skryptu create-ec2-for-inspector.sh.
- Uruchom usługę AWS Inspector i przeskanuj maszynę wirtualną EC2.
- Zmodifikuj ustawienia Security Group tak, aby zezwolić na dostęp do maszyny wirtualnej EC2 tylko z wybranego adresu IP.
- Dołącz do maszyny EC2 przestrzeń dyskową EBS.
- Wykonaj snapshot dla przestrzeni dyskowej EBS.
- Usuń maszynę wirtualną EC2 i sprawdź czy dane z przestrzeni dyskowej EBS są dostępne.
- Zapoznaj się z CIS Benchmarks List oraz AWS Inspector.
S3
- 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. Ustaw wersjonowanie plików. Wrzuć plik do bucketa z taką samą nazwą ale inną zawartością.
- Przygotuj nowy bucket 3. Skonfiguruj go, aby mógł służyć jako serwer www dla statycznych treści.
- Zapoznaj się z opcją replikacji danych pomiędzy regionami AWS - Cross-Region Replication.
VPC
- 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;
- Przygotuj maszynę wirtualną EC2 w przygotowanym VPC w podsieci publicznej.
- Przygotuj maszynę wirtualną EC2 w przygotowanym VPC w podsieci prywatnej.
- Zapoznaj się z możliwością połączenia VPC za pomocą VPN.
ELB + CloudFront
- Przygotuj ALB w regionie us-east-1 z dwoma instancjami EC2. Skonfiguruj ALB tak, aby przekierowywał ruch na EC2 na porcie 80. Wykorzystaj skrypty do przygotowania VPC oraz EC2: create-vpc.sh i create-ec2-in-vpc.sh.
- Wygeneruj self-signed certyfikat TLS za pomocą tej strony. Dodaj listener dla ALB na porcie 443 z wykorzystaniem własnego certyfikatu TLS.
- Zapoznaj się z możliwością hostowania strony za pomocą CloudFront oraz S3
- Zapoznaj się z AWS Lambda @ Edge oraz CloudFront Functions.
Shield + WAF
- Przygotuj ALB we własnym VPC za pomocą skryptów:
- Skonfiguruj usługę AWS WAF dla ALB. Przygotuj własne reguły dla WAF, które będzie blokowały dostęp do strony
/secure.html
na podstawie
- URI
- query string
- CATPCHA
- Dodaj regułę WAF, która ustawi rate limit dla dostępu do strony
/login.html
. - Zapoznaj się z usługą AWS Shield
Security Tools
- Zapoznaj się z narzędziami nikto oraz Siege
- Zapoznaj się z regułami [AWS Managed Rules](https://docs.aws.amazon.com/waf/latest
- Przygotuj infrastrukturę w AWS na bazie skryptów:
- Wykorzystaj narzędzie nikto do przetestowania poziomu bezpieczeństwa swojej infrastruktury. Poniżej przykład użycia:
cd ~ git clone https://github.com/sullo/nikto cd nikto/program chmod +x nikto.pl ./nikto.pl -useragent "UAM WMI Lab" -D V -T <id> -h https://<domain url> -o ~/nikto-report.txt
- Wykorzystaj narzędzie Siege aby przetestować wytrzymałość swojej infrastruktury. Poniżej przykład użycia:
cd ~ curl https://download.joedog.org/siege/siege-latest.tar.gz tar -xvzf siege-latest.tar.gz cd siege-4.1.7/ chmod +x configure ./configure --prefix ~/siege-4.1.7/ make make install cd ~/siege-4.1.7/bin/ ./siege.config ./siege -c 10 -t 10s https://<domain url>
IAM
- Przygotuj nową maszynę EC2, do której dostęp będzie możliwy z konsoli AWS.
- Nadaj uprawnienia dla maszyny EC2 do odczytu danych z bucketu S3.