Differences

This shows you the differences between two versions of the page.

Link to this comparison view

rl:labs:11 [2023/01/04 11:42]
laurentiu.botezatu [Introducere]
rl:labs:11 [2024/01/09 08:27] (current)
cosmin.prunaru [Pregătire infrastructură de laborator]
Line 1: Line 1:
 ~~NOTOC~~ ~~NOTOC~~
  
-====== Laborator 11. Securitatea Rețelelor Locale ​======+====== Laborator 11. Google Cloud Platform (GCP) ======
  
 +  * [[ https://​curs.upb.ro/​2023/​mod/​feedbackadm/​view.php?​id=9386 | Feedback CA]]
 +  * [[ https://​curs.upb.ro/​2023/​mod/​feedbackadm/​view.php?​id=9388 | Feedback CB]]
 +  * [[ https://​curs.upb.ro/​2023/​mod/​feedbackadm/​view.php?​id=9390 | Feedback CC]]
 +  * [[ https://​curs.upb.ro/​2023/​mod/​feedbackadm/​view.php?​id=9392 | Feedback CD]]
  
-  * [[ https://​curs.upb.ro/​2021/​mod/​feedbackadm/​view.php?​id=15298 | Feedback CA]] +===== Cunoștințe și abilități ce vor fi dobândite =====
-  * [[ https://​curs.upb.ro/​2021/​mod/​feedbackadm/​view.php?​id=15301 | Feedback CB]] +
-  * [[ https://​curs.upb.ro/​2021/​mod/​feedbackadm/​view.php?​id=15304 | Feedback CC]]+
  
-<​hidden> ​+  * Administrarea resurselor cloud folosind consola grafică. 
 +  * Securitate în cloud. 
 +  * Configurarea rutării în cloud. 
 +  * Accesarea serviciilor de transfer de fișiere (FTP).
  
-Arhiva laboratorului se găsește [[ https://​drive.google.com/​file/​d/​1guW9Kx3S8PATZ_ljmPmadP16rq7pWd42/​view?​usp=sharing | aici]] +===== Pregătire infrastructură de laborator =====
-</​hidden>​+
  
 +  * Vom crea o infrastructură de rețea în cloud-ul Google.
 +  * Fiecare student va folosi contul propriu de pe [[https://​console.cloud.google.com/​|GCP]]. Pentru a putea crea infrastructura necesară veți primi un număr de credite pentru GCP.  ​
  
-===== Cunoștințe ​și abilitățce vor fi dobândite =====+<note warning>​Fiecare student își va denumi resursele astfel //​student<​X>//​-[nume_resursa]. De exemplu //​student1-//​vpc. GCP acceptă în numele de obiecte doar litere mici, cifre șcratimă. ​
  
-  * Descoperirea de informații despre o anumită rețea, entitate +Vă puteți afla ID-ul accesând linkul ​**"​https://​rl.vladn.st/​get/<​email>"​** </​note>​
-  ​Înțelegerea taxonomiei folosite în industrie pentru identificarea vulnerabilităților +
-  ​Folosirea utilitarelor în vederea descoperirii de vulnerabilități +
-  ​Înțelegerea tipului de atac MiTM (Man in the Middle) folosind ARP spoofing și DNS spoofing+
  
-===== Cheat sheet =====+===== Introducere ​=====
  
-  * {{:rl:​rl_cheatsheet.pdf|Cheat Sheet}}+Servicii de cloud existente: 
 +  * Google Cloud Platform 
 +  * Microsoft Azure 
 +  * Amazon Web Services.
  
 +Vom discuta mai departe despre **Google Cloud Platform** (GCP). Serviciile pe care le vom folosi în cadrul laboratorului:​
  
-===== Pregătire infrastructură de laborator ===== +  ​Google Compute Engine 
-  ​**Reminder**:​ avem nevoie de o masina virtuală a laboratorului. Vă rugăm urmăriți [[:​rl:​info:​resurse:​vm-laborator|pagina aceasta pentru instrucțiuni]],​ apoi reveniți. +  * NetworkingVPCCloud NAT
-  ​ +
-  * Schimbati utilizatorul curent ca ''​root''​ folosind comanda <code bash> student@host:~$ sudo su</​code>​ +
-  * Pentru a pregăti configurația de laboratorpe mașina virtuală (stația ''​host''​) folosiți comenzile următoare din contul utilizatorului ''​root''​ de pe stația ''​host''​ (puteți da copy/paste la comenzi în terminal):<​code bash> +
-root@host:​~#​ update_lab --force +
-root@host:​~#​ start_lab lab11 +
-</​code>​ +
-  * Deschideți trei noi tab-uri în terminal (folosiți combinația de taste ''​Ctrl+Shift+t''​),​ și conectați-vă,​ din nou, la mașina virtuală folosind comanda ''​ssh''​ de mai sus. +
-    * De pe cele trei noi tab-uri, conectați-vă la cele trei containere (''​red'',​ ''​green''​ și ''​blue''​). +
-    * Pentru o conectare mai usoara puteti folosi aliasul ''​go''​ (ex. ''​go red''​)+
  
-<​note>​ +Alte servicii în cloud-ul GCP:
-În mod implicit folosiți contul ''​root''​ pentru conectare pe toate stațiile. Aveți nevoie de drepturi privilegiate pentru configurare. Folosiți contul ''​student''​ doar unde vi se cere explicit. +
-</​note>​+
  
-===== Introducere ===== +  * Cloud Storage 
-{{ :rl:labs:l11-header.png?700 |}} +  * Databases: AlloyDB, Cloud SQL, Cloud Bigtable 
-<note warning> +  * Networking: Cloud DNS, Cloud CDN 
-Conform legilor în vigoare, scanarea IP-urilor în vederea obținerii ​de informații este ilegală. Pentru exercițiile de scanare utilizați doar IP-urile/​Domeniile specificate ​în laborator.+  * Cloud Monitoring 
 + 
 +O listă completă a tuturor serviciilor oferite de Google poate fi consultată aici : 
 +[[https://​cloud.google.com/​terms/​services| GCP Services]] 
 + 
 + 
 +**(Google) Compute Engine** oferă capacitate dinamică computațională în cloud. De asemenea, pentru a dezvolta și lansa aplicații nu mai ai nevoie să îți achiziționezi hardware-ul,​ acest serviciu punându-ți la dispoziție:​ servere virtuale, configurarea securității și networking, ajustarea spațiului de stocare. 
 + 
 +{{ :rl:labs:vpc-overview-example.png?500 |}} 
 + 
 +**Virtual Private Cloud (VPC) Network** te ajută să pornești resursele GCP într-o rețea virtuală definită ​de tine. Această rețea seamănă cu o rețea tradițională unde poți configura spații de adrese, tabele de rutare, gateways și setări de securitate, dar are în plus beneficiile utilizării unui infrastructuri scalabile. Fiecare VPC creat este izolat logic de oricare alt VPC din cloud. 
 + 
 +Două sau mai multe VPC-uri pot comunica folosind **VPC Network Peering**Rețelele VPC conectate folosind VPC Network Peering pot fi în același proiect sau proiecte diferite. \\ 
 +\\ 
 +Pot fi create două tipuri ​de rețele tip VPC: 
 +  * auto-mode - unde un subnet din fiecare regiune este automat alocat, subnet-ul fiind creat sub blocul de adrese 10.128.0.0/​9 .  
 +  * custom-mode - nu sunt create subnet-uri automat șutilizatorul poate avea control complet asupra clasei de IP-uri private utilizate pentru crearea VPC-ului.  
 + 
 +Având ​în vedere considerentele de mai sus, nu se pot conecta două rețele VPC create în auto-mode, dar se pot conecta două rețele, una creată auto-mode, cealaltă custom-mode cât timp nu folosesc adrese IP din aceeași clasă 
 + 
 +3 tipuri de adrese IP: 
 + 
 +  * adrese IP private 
 +  * adrese IP publice. O adresă publică ce a fost atribuită unei instanțe pe care am închis-o va reveni în pool-ul inițial de adrese. Când vom reporni instanța, aceasta va avea o altă adresă IP publică. 
 +  * adrese IP publice statice sunt adrese IP publice care rămân asociate pe cont până în momentul în care alegi să renunți la ele.\\ 
 + 
 + 
 +<note tip> 
 +//Care este diferența între adrese IP private și adresele IP publice?//
 </​note>​ </​note>​
  
-Este estimat că la nivel global, companiile vor pierde aproximativ 10.5 trilioane de dolari până în 2025, o creștere de 15% per an. 
  
-Odată cu necesitatea digitalizării lumii în care trăim numărul de aplicații utilizate în medie de un om a crescut considerabil. Această creștere a numărului de aplicații a venit însă și cu un risc crescut în fața atacurilor cibernetice. Fiecare aplicație nouă introdusă în infrastructura digitală a unei entități duce și la creșterea **suprafeței de atac** a acesteia. Prin [[https://​en.wikipedia.org/​wiki/​Attack_surface|suprafața de atac]] se înțelege numărul total de puncte prin care o persoană neautorizată ar putea accesa un sistem. 
  
-Pentru a ne putea proteja în fața atacurilor cibernetice,​ este necesar să înțelegem fazele unui atac și ce reprezintă acestea. 
  
-În încercarea unui atacator ​de a avea acces la un sistem, acesta va trece prin următoarele faze generale:+**Subnet** - interval ​de adrese IP într-un VPC. Poți să lansezi resursele GCP într-un subnet fie ales automat (auto-mode) fie creat la alegere (custom-mode).
  
-**1. Recunoașterea țintei**+În GCP avem două tipuri de **IP-uri**:
  
-În această fază se urmărește culegerea de informații pentru ținta ​în cauzăInformațiile ​de interes ​pentru ​un atacator constau în detecția de hardware ​și software prezenteAceastă fază este extrem ​de importantă deoarece pe baza detecției aplicațiilor se pot identifica posibilele vulnerabilități.+  * **Publice** (atunci când resursele trebuie să aibă acces direct în Internet, de exemplu serverele web). O adresă IP publică poate fi configurată pe interfața unei mașini virtuale create ​în GCPPot fi aplicate ulterior reguli ​de firewall ​pentru ​a putea controla accesul către acea mașină virtuală 
 +  * **Private** (atunci când resursele nu trebuie să fie accesibile din Internet, ​de exemplu bazele de date)
  
-În cadrul fazei de recunoaștere ne întâlnim cu două standarde foarte importante: 
  
-  * **CPE(Common Platform Enumeration)** reprezintă o metoda structurată de indetificare a unui software/​hardware. Eexemplu: ''​cpe:​2.3:​a:​microsoft:​exchange_server:​2016:​cumulative_update_23:​*:​*:​*:​*:​*:​*''​ reprezentând:​ ''​part="​o",​vendor="​microsoft",​product="​exchange_server",​version="​2016",​ update="​cumulative_update_23",​edition=NA,​language=NA,​sw_edition="​NA",​ target_sw=NA,​target_hw="​NA",​other=NA)''​ +<note important>​
-  * **CVE(Common Vulnerabilities and Exposures)** reprezintă o metoda structurată de identificare a unei vulnerabilități. (exmplu: ''​CVE-2022-21978''​)+
  
-Asocierea dintre cele două standarde este dată de faptul că unui **CPE** îi sunt asociate toate **CVE**-urile descoperitespre exemplu pentru **CPE** folosit ca exemplu avem următoarele **CVE**-uri: +În fiecare subnetexistă 4 IP-uri rezervate în intervalul primar ​:
-''​CVE-2022-21978,​ CVE-2022-21979,​ CVE-2022-21980,​ CVE-2022-24477,​ CVE-2022-24516,​ CVE-2022-30134,​ CVE-2022-34692,​ CVE-2022-41040,​ CVE-2022-41082,​ CVE-2022-41078,​ CVE-2022-41079,​ CVE-2022-41080,​ CVE-2022-41123''​+
  
-**2. Înarmarea ​pentru ​atac**+  ​Prima este adresă de rețea 
 +  ​A doua este rezervată ca adresă ​pentru ​default gateway. 
 +  ​Penultima adresă este rezervată de către GCP pentru viitoare utilizări.  
 +  ​Ultima este adresa de broadcast
  
-Pe baza informațiilor obținute anterioratacatorul va alege cele mai potrivite metode prin care va exploata vulnerabilitățile descoperite.+</​note>​ 
 + 
 + 
 +**Cloud NAT**. Cloud NAT este o componentă a GCP care permite comunicarea între instanțele din VPC care nu folosesc adrese IP publice și Internet.\\ 
 +Cloud NAT oferă conectivitate în Internet pentru următoarele tipuri de resurse: 
 +  * Mașini virtuale din Compute Engine fără adrese IP publice/​externe asociate 
 +  * Clustere de Google Kubernetes Engine (GKE) 
 +  * Instanțe de Cloud Run (aplicații containerizate)Cloud Functions (code in the cloud/​FaaS),​ App Engine 
 + 
 + 
 +**Tabela de rutare**. Fiecare subnet dintr-un VPC trebuie să aibă asociată o tabelă de rutare, definită în cadrul VPC network. 
 +Google Cloud folosește ​mai multe tipuri de rute: 
 + 
 +  * Generate de sistem 
 +      * Rute default ( 0.0.0.0/0 pentru IPv4 sau ::/0 pentru IPv6) 
 +      * Rute pentru subrețea (create automat pentru fiecare subrețea) 
 +  * Rute personalizate (custom) 
 +      * Statice (către diverse destinații) 
 +      * Dinamice (sesiuni BGP către un Cloud Router) 
 +  * Rute peering 
 +  * Rute policy-based (către un Network Load Balancer din GCP). 
 + 
 +Un **VPC firewall** acționează ca un firewall virtual ​care controlează traficul pentru una sau mai multe instanțe. Putem adăuga reguli pentru fiecare firewall care să permită traficul către/de la instanțele asociate. ​   
 + 
 +Prestabilit,​ fiecare firewall permite tot traficul de ieșire și blochează traficul de intrare.  
 +Acțiunile pentru o regulă din firewall pot fi ori "​allow"​ ori "​deny",​ nu ambele.  
 + 
 +<note tip>​Pentru mai multe detalii despre funcționarea VPC-urilor și resursele GCP, urmăriți [[https://​www.youtube.com/​watch?​v=vACTtmLWiQY|tutorialul]]. 
 + 
 +Documentație GCP: 
 + 
 +[[https://​cloud.google.com/​curated-resources/​compute-engine?​hl=en|Compute Engine]]\\ 
 +[[https://​cloud.google.com/​vpc/​docs/​overview?​hl=en|VPC and Subnets]]\\ 
 +[[https://​cloud.google.com/​network-connectivity/​docs/​router/​concepts/​overview?​hl=en|Cloud Router]]\\ 
 +</​note>​
  
-**3. Livrarea atacului** 
  
-Prin livrarea atacului se înțelege orice metodă prin care atacatorul ar putea obține acces in sistem. Aici putem discuta despre exploatarea factorului uman prin mesaje de tip phising sau în funcție de vulnerabilitățile descoperite,​ acesta poate trimite diverse payload-uri către țintă. +===== Topologie =====
-Odată cu livrarea atacului, dacă acesta a avut succes, atacatorul își va putea exercita controlul asupra sistemului.+
  
-În cadrul acestui laborator vom trece prin toate fazele unui atac folosind utilitare cunoscute sau servicii puse la dispoziție de [[https://www.codaintelligence.com/​|CODA Intelligence]].+{{ :rl:​labs:​12:​gcp_infrastructure.png |}}
  
 ===== Navigare ===== ===== Navigare =====
  
 **[[:​rl:​labs:​11|Laboratorul 11]]** **[[:​rl:​labs:​11|Laboratorul 11]]**
-{{page>:​rl:​labs:​12:​meta:​nav&​nofooter&​noeditbutton}}+{{page>:​rl:​labs:​11:​meta:​nav&​nofooter&​noeditbutton}}
  
 ===== Exerciții ===== ===== Exerciții =====
  
-{{namespace>:​rl:​labs:​12:​contents&​nofooter&​noeditbutton}}+Acest laborator își propune configurarea unei rețele asemănătoare topoligiei de mai sus. 
 +Vom avea nevoie de crearea **unui VPC** cu **4 subnets**, unul în care va fi creată stația **Host**, iar apoi **câte un subnet** separat pentru **Red**, **Green** și **Blue**. 
 + 
 +Stația **Host** va fi folosită drept **Bastion**,​ o mașină virtuală folosită doar pentru a ne conecta prin Internet la celelalte mașini, **Red**, **Green** și **Blue**. 
 + 
 +Această va avea configurată o adresa IP publică, celelalte vor avea configurate doar adresa IP private, comunicând pe Internet cu ajutorul serviciului de **Cloud NAT**. 
 + 
 + 
 +Următoarele exerciții constituie pașii de parcurgere pentru ca la final să putem folosi rețeaua. 
  
 +{{namespace>:​rl:​labs:​11:​contents&​nofooter&​noeditbutton}}
  
rl/labs/11.1672825357.txt.gz · Last modified: 2023/01/04 11:42 by laurentiu.botezatu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0