bezpieczenstwo-w-chmurze/zadania.md
2024-12-17 15:08:05 +01:00

9.1 KiB

Zadania do przedmiotu Bezpieczeństwo w Chmurze:

Wprowadzenie

  1. Zapoznaj się z bazą podatności Common Vulnerabilities and Exposures oraz NIST National Vulnerability Database

  2. Zapoznaj się z opisem CVE od firmy Red Hat

  3. Zapoznaj się z Modelami Wspólnej Odpowiedzialności:

  4. Przygotuj dostęp do Laboratorium AWS

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 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
      
  3. Zapoznaj się z ofertą AWS Free Tier

  4. Po zakończeniu ćwiczeń, usuń maszynę wirtualną EC2.

OWASP i Nagłówki HTTP

  1. Zapoznaj się z projektami OWASP
  2. Zapoznaj się z nagłówkami bezpieczeństwa HTTP:
  3. 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';
  1. Sprawdź co oznacza wartość no-cache w nagłówku Cache-Control.

Certyfikaty TLS

  1. Przygotuj certyfikat TLS za pomocą narzędzia Let's Encrypt dla serwera Apache na maszynie wirtualnej EC2.
  1. Zapoznaj się z wartością certyfikatu TLS dla dowolnej strony obsługującej HTTPS, np. Sejmu RP .
  2. 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

  1. Uruchom maszynę wirtualną EC2 w użyciem skryptu create-ec2-for-inspector.sh.
  2. Uruchom usługę AWS Inspector i przeskanuj maszynę wirtualną EC2.
  3. Zmodifikuj ustawienia Security Group tak, aby zezwolić na dostęp do maszyny wirtualnej EC2 tylko z wybranego adresu IP.
  4. Dołącz do maszyny EC2 przestrzeń dyskową EBS.
  5. Wykonaj snapshot dla przestrzeni dyskowej EBS.
  6. Usuń maszynę wirtualną EC2 i sprawdź czy dane z przestrzeni dyskowej EBS są dostępne.
  7. Zapoznaj się z CIS Benchmarks List oraz AWS Inspector.

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. Ustaw wersjonowanie plików. Wrzuć plik do bucketa z taką samą nazwą ale inną zawartością.
  2. Przygotuj nowy bucket 3. Skonfiguruj go, aby mógł służyć jako serwer www dla statycznych treści.
  3. Zapoznaj się z opcją replikacji danych pomiędzy regionami AWS - Cross-Region Replication.

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.
  4. Zapoznaj się z możliwością połączenia VPC za pomocą VPN.

ELB + CloudFront

  1. 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.
  2. Wygeneruj self-signed certyfikat TLS za pomocą tej strony. Dodaj listener dla ALB na porcie 443 z wykorzystaniem własnego certyfikatu TLS.
  3. Zapoznaj się z możliwością hostowania strony za pomocą CloudFront oraz S3
  4. Zapoznaj się z AWS Lambda @ Edge oraz CloudFront Functions.

Shield + WAF

  1. Przygotuj ALB we własnym VPC za pomocą skryptów:
  1. 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
  1. Dodaj regułę WAF, która ustawi rate limit dla dostępu do strony /login.html.
  2. Zapoznaj się z usługą AWS Shield

Security Tools

  1. Zapoznaj się z narzędziami nikto oraz Siege
  2. Zapoznaj się z regułami [AWS Managed Rules](https://docs.aws.amazon.com/waf/latest
  3. Przygotuj infrastrukturę w AWS na bazie skryptów:
  1. 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
    
  2. Wykorzystaj narzędzie Siege aby przetestować wytrzymałość swojej infrastruktury. Poniżej przykład użycia:
    cd ~
    wget 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

  1. Przygotuj nową maszynę EC2, do której dostęp będzie możliwy z konsoli AWS za pomocą usługi EC2 Connect. Wykorzystaj domyślne VPC oraz region us-east-1.
  • Uwaga! Ze względu na organiczenia środowiska laboratoryjnego, nie mamy możliwości wykonania wszystkich kroków jakie są przedstawione w tutorialu. Należy stosować się do poniższych wskazówek:
  • Przygotuj Security Groups dla usługi EC2 Instance Connect - link
  • Przygotuj nową EC2 z dostępem do usługi EC2 Instance Connect - link
  • Połącz się z maszyną za pomocą EC2 Instance Connect.
  1. Po zalogowaniu się na EC2, próbuj przygotować nowy bucket S3 za pomocą polecenia aws s3api create-bucket --bucket <nazwa-bucketa-s3> --region us-east-1. Następnie nadaj Rolę LabInstanceProfile i spróbuj ponownie wykonać polecenie.