Curs Web Security and Cryptography

Criptografia sau codificarea este ştiinţa care se ocupă cu transformarea datelor într-o formă incomprehensibilă, cu posibilitatea de întoarcere la forma iniţială prin aplicarea unor diverse operaţii matematice. În situaţiile în care se transmit prin internet informaţii personale, militare, financiare sau de altă natură de foarte mare importanţă, acestea devin ţinta utilizării maliţioase. În astfel de situaţii, criptarea sau codificarea face ca anumite informaţii să fie inaccesibile pentru partea nedorită. 

Noţiunea de criptografie a apărut prima dată în urmă cu 3000 de ani, când vechii egipteni şi indieni au folosit forme primitive de codificare a mesajelor prin diverse limbaje alternative, cunoscute unui număr limitat de persoane. 

Ştiinţele criptografice se dezvoltă împreună cu calculatoarele şi depind în mod direct de viteza lor. Odată cu creşterea vitezei calculatoarelor, se pot folosi algoritmi de codificare tot mai complecşi şi mai siguri. Ca efect negativ, creşte şi viteza de spargere a cheilor, aşa-numita metodă bruce force. Astfel, în ultima vreme lungimea cheilor trebuie să crească proporțional cu creşterea vitezei calculatoarelor. 

Astăzi, criptografia reprezintă una din tehnologiile de bază folosite pentru securitatea informaţiilor care circulă pe internet. Criptarea se foloseşte zilnic pentru a proteja conţinutul care se schimbă pe web între utilizatori. Numeroase sisteme criptografice complexe permit controlul accesului la sisteme de calcul pentru schimb de bani digitali. Rolul tot mai mare pe care îl are criptografia pe web a făcut ca această ştiinţă să devină o parte foarte importantă din lumea IT, aşadar, din acest motiv în cadrul cursului veţi avea ocazia de a obţine competențe referitoare la codificarea datelor pe internet.

Sunteţi interesat de acest curs? Îl puteţi parcurge în cadrul acestor programe LINK Academy: Programare PHP.

Descrierea și scopul cursului Web Security and Cryptography

Cursul analizează problemele de securitate la nivelurile de bază și avansat, prezentând modalitățile de găsire și de soluționare a acestora, precum și testarea soluțiilor create pentru a fi siguri că soluția este completă. În două module, la curs ne vom ocupa de securitatea web și de criptografia web – care sunt două aspecte ale unui site de calitate și sigur. În cadrul securității web abordăm temele referitoare la access control (accesarea datelor, nivelul de acces, parole de securitate), code injection (atacuri care presupun introducerea unui cod străin pe pagina web, precum SQL injection și atacul cross-site scripting), data breach și pericole privind data integrity (păstrarea integrității datelor în timpul lucrului cu acestea, în timpul transportului, dar și stocarea datelor în sine), atacuri malware (atacuri caracterizate prin utilizarea unui virus, programe malware, ransomware), atacuri denial-of-service (caracterizate prin împiedicarea accesului pe pagina web și împiedicarea funcționării sale normale), precum și securitatea sistemelor CMS în sine (de exemplu, WordPress). 

În plus, ca parte a criptografiei web, procesăm tehnici criptografice și modalități de lucru cu acestea, arătându-le pe exemple în cadrul tehnologiilor PHP și JavaScript și ne ocupăm de criptografie SSL/TLS, care se referă la diferite aspecte ale securității web. 

Scopul acestui curs este, în primul rând, familiarizarea cursanților cu securitatea web, cu principiile de bază ale securității web, până unde se extinde (dacă se referă numai la web și tehnologie sau este mai flexibilă), apoi și cu tipurile concrete de atacuri și cu modalitățile lor de găsire, rezolvare și testare pe pagina web. De asemenea, scopul este abordarea principalelor teme de securitate, precum access control (acces la date, niveluri de acces ale utilizatorilor de sistem, parole, autentificarea two-factor), code injection (introducerea unui alt cod pe pagina web, SQL injection, atacurile cross-site scripting), pericolele privind data breach și data integrity (cum se păstrează integritatea datelor în timpul stocării, lucrului și transportului; exemple de blockchain), atacuri malware (viruși, malware, ransomware), atacuri denial-of-service (DoS)  (rețele botnet, atacuri individuale și de grup), precum și securitatea în cadrul sistemului CMS (de exemplu, WordPress CMS). 

Veți învăța să procesați criptografia, ceea ce vă va indica importanța utilizării acestor sisteme, care sunt ușor de folosit și care aduc multe beneficii. Veți înțelege această problemă și importanța sa, precum și importanța integrării mecanismelor de securitate în cadrul sistemului (pe lângă design și funcționalitate). La final, scopul cursului este prezentarea relației dintre design, funcționalitate și securitate, cum se obține un echilibru între aceste trei aspecte ale aplicației web. 

Cursul Web Security and Cryptography vă va răspunde la următoarele întrebări:

1. Care sunt principalele noțiuni referitoare la securitatea pe web?

Câteva dintre principalele întrebări la care avem nevoie de răspuns pentru a înțelegem securitatea în sens general și securitatea pe web sunt – ce este securitatea, ce este riscul, ce este atacul?

Securitatea reprezintă protecția datelor și a sistemului față de orice utilizare neautorizată, astfel încât securitatea să fie, practic, „invizibilă” pentru utilizatorul final și să nu-l încurce în utilizarea zilnică a sistemului informațional. Riscul reprezintă dimensiunea (de exemplu, procentual), posibilitatea de a apărea o daună, respectiv o problemă în sistemul informațional.  

În esență, prin estimarea riscului obținem o imagine despre șansa sistemului de a fi compromis; această estimare se face prin observarea pericolelor existente pentru sistem (avertisment – cine se opune sistemului), care sunt punctele slabe ale sistemului și valoarea sistemului (cât este de important, dar și, foarte des, cât este de valoros ca și resursă). Atacul reprezintă un tip de proces, acțiune, cu scopul de a amenința securitatea sistemului informațional printr-una din componentele sale. 

2. Ce este access control și cum se manifestă?

La planificarea editării sistemului informațional, dar și procesul de editare în sine, trebuie ținut cont de un element important: cine are acces la sistem? Această întrebare se împarte în continuare la întrebări precum: Cine are acces la ce parte a sistemului? Cum se accesează sistemul? De unde se poate accesa sistemul? etc. Este evident că răspunsurile la aceste întrebări definesc, de fapt, care este politica noastră de access control și cum vom implementa asta în sistemul nostru. Cel mai des, politica de access control trebuie să fie de așa natură încât utilizatorii sistemului să aibă acces doar la aceste părți din sistem (împreună cu date, informații și resurse) pentru care sunt autorizați. 

3. Câte tipuri de atac există?

Atacul este un fel de proces, adică o acțiune cu scopul de a amenința securitatea sistemului informațional printr-una din componentele sale. Deși aceasta este o definiție generică, ne oferă o prezentare în esența fiecărui atac. Un atac concret, respectiv un grup de atacuri care au loc pe web, vor depinde doar de categoria de atac. 

Analizând după categorii, împărțim atacurile în atacuri prin întrerupere (are scopul de a împiedica funcționarea unui sistem informațional concret – acesta este, în esență, atacul privind disponibilitatea serviciului), intersectarea (tipul de atac în care utilizatorul comunică cu sistemul și încearcă să întâlnească sistemul ca să-l exploateze ulterior), prin comunicare (reprezintă tipul de atac cu scopul de a modifica datele și comportamentul utilizatorului legitim pentru acces la sistem) și atacul asupra fabricării (crearea și generarea datelor și a informațiilor false are drept scop comunicarea cu sistemul și introducerea datelor în el prin intermediul unui utilizator neautorizat, dar ca și cum ar fi utilizator valid). 

Web Security and Cryptography

4. Ce este code injection și cum se manifestă?

Una dintre problemele frecvente pe care le putem întâlni în cadrul sistemelor conexe, informaționale este securitatea și rezistența insuficientă față de problema code injection, respectiv introducerea unui cod malițios în aplicație prin modalități, formulare și elemente legitime pentru introducere. Această problemă se reflectă foarte des în faptul că programatorii, precum și inginerii, nu-i acordă suficientă atenție formularului de securitate de pe web, care reprezintă, practic, intrarea de bază (și, în esență, unica) în aplicație în ceea ce privește utilizatorul.   

Se uită foarte des faptul că nu trebuie să avem încredere în utilizator. Deși pare brutal, fiecare strategie de securitate se bazează pe faptul că nu trebuie avut încredere în nimeni și nimic – respectiv, că nimic nu trebuie să fie la voia întâmplării. În acest curs, vom vedea modalitățile prin care putem să rezolvăm manifestarea acestei probleme, precum atacurile SQL injection și cross-site scripting, respectiv cum să înlăturăm posibilitatea ca acestea să se întâmple.

5. Cum se păstrează integritatea datelor la introducerea, funcționarea, transportul și stocarea în baza de date?

Păstrarea integrității datelor la introducerea, prelucrarea, transportul și stocarea datelor se reflectă în protejarea tuturor nivelurilor împreună. Totul începe din locul în care se introduc datele și se termină în locul unde se salvează datele, ceea ce înseamnă că dacă o verigă este slabă, sistemul are, foarte probabil, o problemă care se poate exploata. În general, la introducerea și lucrul față de atacul SQL injection, adică atacul XSS, protejăm cu liste albe și negre, cu controlul utilizatorilor și cu abordarea sistemului lor, precum și cu controlul drepturilor asupra sistemului. 

În timpul transportului, protecția se reflectă în protejarea comunicării dintre două subiecte (în general, client și server), ceea ce se reflectă practic în standardul industrial de protecție prin tehnologiile SSL/TLS care activează HTTPS și criptează întreaga comunicare folosind certificate digitale emise de către o persoană terță ca și confirmare a securității comunicării. Păstrarea datelor se reflectă în utilizarea rolurilor de utilizator și definirea datelor la care au acces utilizatorii, designul lucrului cu datele la nivel de aplicație – fără acces direct, folosind backup-ul ca și metodă pentru dublarea datelor într-un loc extern sigur. 

6. Ce sunt atacurile DDos și cum se protejează?

Atacurile Dos, respectiv atacurile denial-of-service, fac parte din atacurile a căror scop este să refuze oferirea în continuare a serviciului către utilizatori regulați. În esență, acestea sunt atacurile asupra disponibilității (availability) sistemului. În fiecare formă a acestui atac, esența este ca atacatorul că trimită numeroase cereri legitime către fiecare server, cu care îi împiedică funcționarea normală. 

În majoritatea cazurilor, astfel de atac este executat de o persoană, de pe un dispozitiv (adresă IP). Însă, există și o subvariantă a acestor atacuri, și anume atacul distributed denial-of-service (DDoS, care practic funcționează la fel – trimite o mulțime de cereri legitime cu mult mai multe dispozitive, cu care atacul devine mult mai periculos și mai greu de prevenit. 

Având în vedere că atacurile DoS sunt practic atacuri brute force, unele părți de protecție a sistemului asupra stratului de aplicație reprezintă până la un punct o protecție simplă a formularelor în sine, respectiv a locului de intrare în aplicație (login, înregistrare, parolă uitată) prin sisteme simple, cum ar fi sistemele captcha. De asemenea, securitatea este posibilă și folosind sisteme externe, precum Cloudflare. Cloudflare reprezintă sistemul informatic online care le permite utilizatorilor folosirea rețelei CDN (Content Delivery Network), protejarea față de atacurile DDoS, securitatea pe internet etc. Un mare avantaj a lui Cloudflare este că se configurează simplu, astfel încât se pune în rețea între utilizator și server, împiedicându-se în felul acesta un număr mare de atacuri și pericole de securitate. 

7. Cum este securitatea în sistemul CMS?

Content management system sau CMS reprezintă ideea sistemului complet pentru crearea și managementul conținutului (content) pe web. Practic, atacurile asupra sistemelor care nu sunt CMS sunt tipuri identice de atac care au loc și în aceste sisteme. Cele mai frecvente atacuri care au loc în sistemele CMS sunt, în general, atacuri asupra temelor și a plugin-urilor care extind posibilitatea pentru stilizare și funcționalitate. 

În sistemele CMS există un singur tip de risc de securitate care, în general, nu există atunci când vine vorba de sistemele informaționale create de la zero, adică manual, custom. Astfel de atacuri le numim atacuri accidentale, respectiv atacuri care au scopul de a exploata problemele de securitate cunoscute pe toate paginile web care mențin o astfel de problemă în temă și în plugin. 

Modalitățile de protecție sunt, în general, protecție împotriva atacurilor SQL Injection și XSS; controlul conturilor de utilizator și rolul de utilizator setat corect, precum și actualizarea la timp a nucleului sistemelor CMS; a temelor și a plugin-urilor la cele mai noi versiuni ale lor. 

De asemenea, se pot proteja și folosind plugin-urile Hide My WP și Wodfence în sistemul WordPress CMS, care ne oferă posibilitatea de a ascunde căile cunoscute în general, firewall, scanarea sistemelor pentru atacuri accidentale, autentificare pe două straturi etc.

Planul şi programa cursului:

1. Web Security

  • Introducere în security și web security
  • Problema access control
  • Code injection
  • Pericolele privind data breach și data integrity
  • Atacuri malware
  • Atacuri denial-of-service
  • Securitate în CMS

2. Cryptography

  • Introducere în criptografie și tehnicile criptografiei
  • Algoritmii hash și criptarea în cadrul tehnologiilor PHP și JavaScript
  • SSL/TLS criptografia

Web Cryptography and  Security - TLS/SSL

3 moduri de a obține un job bine plătit

Am pregătit un document în care puteţi descoperi trei moduri de a obţine un job bine plătit pentru profesioniştii care lucrează pe calculator. Descărcați raportul aici

Înscrierea pentru generaţia 2021/22 se face aici.

Pentru a afla totul despre înscriere, click aici.