recent changed
This commit is contained in:
parent
9be78673cc
commit
fb07ae8423
35
README.md
35
README.md
@ -3,12 +3,20 @@
|
|||||||
## Opis zajęć
|
## Opis zajęć
|
||||||
Współczesne modele przetwarzania danych bazują coraz częściej na zastosowaniu rozwiązań chmurowych. Wraz z rozwojem nowych możliwości, pojawiają się również zagrożenia związane z bezpieczeństwem danych. Na zajęciach przedstawione zostaną podstawy teoretyczne oraz narzędzia przydatne przy budowaniu bezpiecznej infrastruktury IT w chmurze. Omówione zostaną też sposoby pozyskiwania informacji o nowych zagrożeniach i metodach radzenia sobie z nimi.
|
Współczesne modele przetwarzania danych bazują coraz częściej na zastosowaniu rozwiązań chmurowych. Wraz z rozwojem nowych możliwości, pojawiają się również zagrożenia związane z bezpieczeństwem danych. Na zajęciach przedstawione zostaną podstawy teoretyczne oraz narzędzia przydatne przy budowaniu bezpiecznej infrastruktury IT w chmurze. Omówione zostaną też sposoby pozyskiwania informacji o nowych zagrożeniach i metodach radzenia sobie z nimi.
|
||||||
|
|
||||||
|
## Materiały
|
||||||
|
|
||||||
|
- [slajdy](notatki/) - dostępne w formacie PDF
|
||||||
|
- [zadania](zadania.md) - lista zadań do realizacji
|
||||||
|
- [architektura](architektura.md) - opis architektury chmurowej AWS do realizacji projektu końcowego
|
||||||
|
|
||||||
## Zasady Zaliczenia
|
## Zasady Zaliczenia
|
||||||
|
|
||||||
Projekt końcowy realizowany w zespołach 2-3 osobowych oceniany na podstawie następujących kryteriów:
|
Projekt końcowy realizowany w zespołach 2-3 osobowych oceniany na podstawie następujących kryteriów:
|
||||||
1. Analiza wybranego zagrożenia CVE dla odbiorcy biznesowego oraz technicznego – 10 punktów;
|
1. Analiza wybranego zagrożenia CVE dla odbiorcy biznesowego oraz technicznego – 10 punktów;
|
||||||
2. Prezentacja metod wykrycia zagrożenia CVE oraz sposobu jego usunięcia bądź minimalizacji – 20 punktów;
|
2. Prezentacja metod wykrycia zagrożenia CVE oraz sposobu jego usunięcia bądź minimalizacji – 20 punktów;
|
||||||
|
|
||||||
|
Analizę zagrożenia oraz prezentację należy przygotować w oparciu o architekturę chmurową AWS, opisaną [tutaj](architektura.md).
|
||||||
|
|
||||||
Skala ocen:
|
Skala ocen:
|
||||||
- bardzo dobry (bdb; 5,0) – od 90% punktów,
|
- bardzo dobry (bdb; 5,0) – od 90% punktów,
|
||||||
- dobry plus (db plus; 4,5) – od 80% punktów,
|
- dobry plus (db plus; 4,5) – od 80% punktów,
|
||||||
@ -17,12 +25,31 @@ Skala ocen:
|
|||||||
- dostateczny (dst; 3,0) – od 50% punktów,
|
- dostateczny (dst; 3,0) – od 50% punktów,
|
||||||
- niedostateczny (ndst; 2,0) – poniżej 50% punktów.
|
- niedostateczny (ndst; 2,0) – poniżej 50% punktów.
|
||||||
|
|
||||||
Szczegóły dotyczące projektu zostaną podane w niedługim czasie.
|
W ramach zaliczenia projektu końcowego należy:
|
||||||
|
- przygotować prezentację w formie slajdów dla odbiorcy biznesowego oraz specyfikację techniczną dla odbiorcy technicznego w formacie PDF lub markdown.
|
||||||
|
- zaprezentować przygotowane materiały na zajęciach.
|
||||||
|
|
||||||
## Materiały
|
Terminy zaliczeń do wyboru:
|
||||||
|
- 29.01.2025
|
||||||
|
- 03.02.2025
|
||||||
|
|
||||||
- [slajdy](notatki/) - dostępne w formacie PDF
|
Materiały powinny zostać dostarczone dla prowadzącego poprzez platformę Teams najpóźniej na 3 dni przed terminem prezentacji.
|
||||||
- [zadania](zadania.md) - lista zadań do realizacji
|
|
||||||
|
Wybrane Zagrożenia CVE:
|
||||||
|
|
||||||
|
- [CVE-2014-0160](https://nvd.nist.gov/vuln/detail/CVE-2014-0160) - Heartbleed
|
||||||
|
- [CVE-2014-6271](https://nvd.nist.gov/vuln/detail/CVE-2014-6271) - Shellshock
|
||||||
|
- [CVE-2018-0886](https://nvd.nist.gov/vuln/detail/CVE-2018-0886) - BlueKeep
|
||||||
|
- [CVE-2018-10933](https://nvd.nist.gov/vuln/detail/CVE-2018-10933) - libssh
|
||||||
|
- [CVE-2019-5736](https://nvd.nist.gov/vuln/detail/CVE-2019-5736) - RunC
|
||||||
|
- [CVE-2020-1472](https://nvd.nist.gov/vuln/detail/CVE-2020-1472) - Zerologon
|
||||||
|
- [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) - Log4Shell (Log4j)
|
||||||
|
- [CVE-2022-22965](https://nvd.nist.gov/vuln/detail/CVE-2022-22965) - Spring4Shell
|
||||||
|
- [CVE-2022-26377](https://nvd.nist.gov/vuln/detail/CVE-2022-26377) - HTTP Request Smuggling
|
||||||
|
- [CVE-2022-42889](https://nvd.nist.gov/vuln/detail/CVE-2021-42889) - Text4Shell
|
||||||
|
- [CVE-2024-38063](https://nvd.nist.gov/vuln/detail/CVE-2024-38063) - Critical Remote Code Execution Threat in Windows TCP/IP Stack
|
||||||
|
|
||||||
|
Przydział zespołów do zagrożeń CVE zostanie ustalony poprzez platformę Teams.
|
||||||
|
|
||||||
|
|
||||||
## Kontakt
|
## Kontakt
|
||||||
|
2
architektura.md
Normal file
2
architektura.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Architektura systemu
|
||||||
|
TODO
|
BIN
notatki/04_certyfikaty_tls.pdf
(Stored with Git LFS)
BIN
notatki/04_certyfikaty_tls.pdf
(Stored with Git LFS)
Binary file not shown.
@ -34,7 +34,7 @@ backgroundImage: url('img/hero-background.svg')
|
|||||||
- klucz publiczny
|
- klucz publiczny
|
||||||
- dane o właścicielu
|
- dane o właścicielu
|
||||||
- dane o CA
|
- dane o CA
|
||||||
- datę ważności
|
- okres ważności
|
||||||
- można go uzyskać samodzielnie lub za pośrednictwem CA
|
- można go uzyskać samodzielnie lub za pośrednictwem CA
|
||||||
- może być pozyskany za darmo lub za opłatą
|
- może być pozyskany za darmo lub za opłatą
|
||||||
- opcja bezpłatna: [Let's Encrypt](https://letsencrypt.org/)
|
- opcja bezpłatna: [Let's Encrypt](https://letsencrypt.org/)
|
||||||
|
36
notatki/md/06_s3.md
Normal file
36
notatki/md/06_s3.md
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
marp: true
|
||||||
|
theme: gaia
|
||||||
|
backgroundColor: #fff
|
||||||
|
backgroundImage: url('img/hero-background.svg')
|
||||||
|
|
||||||
|
---
|
||||||
|
# </br></br></br>:shield: AWS S3 :shield:
|
||||||
|
---
|
||||||
|
|
||||||
|
# S3 - Simple Storage Service
|
||||||
|
- [S3](https://aws.amazon.com/s3/) - usługa przechowywania danych w chmurze
|
||||||
|
- dane przechowywane są w tzw. *buckecie*
|
||||||
|
- brak górnego limitu pojemności, największy pojedyńczy obiekt może mieć do 5TB
|
||||||
|
- dane mogą być zaszyfrowane podczas przechowywania (at-rest) oraz w trakcie przesyłania (in-transit)
|
||||||
|
- S3 można też wykorzystać jako hosting do statycznych stron internetowych
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# S3 - Simple Storage Service
|
||||||
|
- [Rodzaje przestrzeni](https://aws.amazon.com/s3/storage-classes/)
|
||||||
|
- Buckety S3 mogą spełniać wymogi prawne dotyczące przechowywania danych i braku możliwości ich usunięcia, np. poprzez WORM (Write Once Read Many) - [S3 Object Lock](https://aws.amazon.com/s3/features/object-lock/)
|
||||||
|
- S3 obsługuje zdarzenia w obrębie bucketa, np. dodanie nowego obiektu, usunięcie obiektu, itp. - [S3 Events](https://docs.aws.amazon.com/AmazonS3/latest/userguide/NotificationHowTo.html)
|
||||||
|
- Usługa S3 może być częścią rozwiązań architektonicznych tzw. serverless, np. [S3 + Lambda](https://aws.amazon.com/blogs/compute/building-scalable-serverless-applications-with-amazon-s3-and-aws-lambda/)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# S3 - Simple Storage Service
|
||||||
|
- Bezpieczeństwo danych w S3 zapewniają:
|
||||||
|
- [S3 Bucket Encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html)
|
||||||
|
- [S3 Bucket Policies](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-iam-policies.html)
|
||||||
|
- [S3 Bucket Versioning](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html)
|
||||||
|
- [S3 Bucket Logging](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html)
|
||||||
|
- [S3 Bucket Replication](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html)
|
||||||
|
- [S3 Bucket Lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)
|
||||||
|
|
45
skrypty/create-ec2-with-http.sh
Normal file
45
skrypty/create-ec2-with-http.sh
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
KEY_NAME="uam-bwc-key"
|
||||||
|
INSTANCE_TYPE="t2.micro"
|
||||||
|
SECURITY_GROUP_NAME="uam-bwc-sg"
|
||||||
|
AMI_ID="ami-005fc0f236362e99f"
|
||||||
|
REGION="us-east-1"
|
||||||
|
|
||||||
|
# Generate SSH key pair
|
||||||
|
aws ec2 create-key-pair --key-name $KEY_NAME --query 'KeyMaterial' --output text --region $REGION > ${KEY_NAME}.pem
|
||||||
|
chmod 400 ${KEY_NAME}.pem
|
||||||
|
|
||||||
|
# Create security group
|
||||||
|
SECURITY_GROUP_ID=$(aws ec2 create-security-group --group-name $SECURITY_GROUP_NAME --description "Security group for uam-bwc EC2 instance" --query 'GroupId' --output text --region $REGION)
|
||||||
|
|
||||||
|
# Add rules to security group
|
||||||
|
aws ec2 authorize-security-group-ingress --group-id $SECURITY_GROUP_ID --protocol tcp --port 22 --cidr 0.0.0.0/0 --region $REGION
|
||||||
|
aws ec2 authorize-security-group-ingress --group-id $SECURITY_GROUP_ID --protocol tcp --port 80 --cidr 0.0.0.0/0 --region $REGION
|
||||||
|
aws ec2 authorize-security-group-ingress --group-id $SECURITY_GROUP_ID --protocol tcp --port 443 --cidr 0.0.0.0/0 --region $REGION
|
||||||
|
|
||||||
|
# User data script
|
||||||
|
USER_DATA_SCRIPT=$(cat <<EOF
|
||||||
|
#!/bin/bash
|
||||||
|
apt-get update -y
|
||||||
|
apt-get install -y apache2
|
||||||
|
apt-get install -y openssl
|
||||||
|
a2enmod ssl
|
||||||
|
a2ensite default-ssl
|
||||||
|
systemctl start apache2
|
||||||
|
systemctl enable apache2
|
||||||
|
echo "Hello World!" > /var/www/html/index.html
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
# Provision EC2 instance
|
||||||
|
INSTANCE_ID=$(aws ec2 run-instances --image-id $AMI_ID --count 1 --instance-type $INSTANCE_TYPE --key-name $KEY_NAME --security-group-ids $SECURITY_GROUP_ID --user-data "$USER_DATA_SCRIPT" --query 'Instances[0].InstanceId' --output text --region $REGION)
|
||||||
|
|
||||||
|
# Wait for the instance to be in running state
|
||||||
|
aws ec2 wait instance-running --instance-ids $INSTANCE_ID --region $REGION
|
||||||
|
|
||||||
|
# Get the public IP of the instance
|
||||||
|
INSTANCE_PUBLIC_IP=$(aws ec2 describe-instances --instance-ids $INSTANCE_ID --query 'Reservations[0].Instances[0].PublicIpAddress' --output text --region $REGION)
|
||||||
|
|
||||||
|
echo "EC2 instance is running. Public IP: $INSTANCE_PUBLIC_IP"
|
15
zadania.md
15
zadania.md
@ -55,13 +55,20 @@ Content-Security-Policy-Report-Only: default-src 'none'; form-action 'none'; fra
|
|||||||
|
|
||||||
## Certyfikaty TLS
|
## Certyfikaty TLS
|
||||||
1. Przygotuj certyfikat TLS za pomocą narzędzia [Let's Encrypt](https://letsencrypt.org/) dla serwera Apache na maszynie wirtualnej EC2.
|
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: [uam-bwc-ec2-httpd.sh](skrypty/uam-bwc-ec2-httpd.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/) .
|
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?
|
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
|
## 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.
|
1. Uruchom maszynę wirtualną EC2 w użyciem skryptu [create-ec2-instance.sh](skrypty/create-ec2-instance.sh).
|
||||||
2. Zmodifikuj ustawienia Security Group tak, aby zezwolić na dostęp do maszyny wirtualnej EC2 tylko z wybranego adresu IP.
|
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.
|
3. Dołącz do maszyny EC2 przestrzeń dyskową EBS.
|
||||||
4. Wykonaj kopię zapasową EB2 ręcznie.
|
4. Wykonaj snapshot dla przestrzeni dyskowej EBS.
|
||||||
5. Wykorzystaj usługę AWS Backup do automatycznej kopii zapasowej maszyny wirtualnej EC2.
|
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).
|
Loading…
Reference in New Issue
Block a user