ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 96
Abonament PDF

De la securitate perimetrală la Security by Design, Secure Coding și Vulnerability Management

Cătălin Pătrașcu
Cybersecurity Architect @ NTT DATA Romania



PROGRAMARE


Pe măsură ce infrastructurile IT migrează în cloud, iar sistemele și aplicațiile devin accesibile în afara clasicului perimetru de rețea, este tot mai clar că protejarea acestora de amenințările și atacurile cibernetice devine o provocare dar și o oportunitate în același timp. De ce o provocare, dar mai ales de ce o oportunitate, am să explic în rândurile de mai jos.

Adevărul este că securitatea cibernetică a fost dintotdeauna cenușăreasa procesului de dezvoltare a produselor IT, mai ales când vorbim de dezvoltare software. Mai exact, securizarea unui produs se face de cele mai multe ori pe ultima sută de metri a procesului de dezvoltare sau chiar după finalizarea acestuia. Presiunea lansării cât mai rapidă a produselor face ca de multe ori să se opteze pentru rezolvarea eventualelor probleme (de funcționalitate sau de securitate) în perioada de mentenanță a produsului. Și de aici vin majoritatea problemelor. Cred că ne-am obișnuit cu toții cu avalanșa de actualizări de software pentru mai toate tehnologiile pe care le folosim, de foarte multe ori la puțin timp după lansarea acestora.

Istoric, securizarea infrastructurilor IT s-a bazat pe conceptul de securitate perimetrală, adică pe limitarea expunerii sistemelor și aplicațiilor în Internet sau alte rețele externe, astfel încât să nu poată fi accesate decât din "rețeaua internă" (Intranet). Această metodă a avut un succes relativ, pentru că sistemele respective rămân expuse amenințărilor interne (insider threats) și este de ajuns să se compromită un singur terminal (stație de lucru, server) ca ulterior să se poată ataca toate sistemele și aplicațiile la care acest terminal are vizibilitate. Plus că era important ca anumite sisteme să fie totuși expuse în Internet, precum serverele web, de aici și preferința atacatorilor pentru site-urile web ale companiilor.

Provocarea actuală constă în faptul că organizațiile sunt nevoite să expună tot mai multe sisteme și aplicații în Internet, pentru a putea fi accesate de utilizatori și clienți de oriunde s-ar afla aceștia. Mai mult, nevoia de mobilitate a propriilor angajați dar și tendința lucrului de acasă au desființat practic conceptul de securitate perimetrală. Securitatea cibernetică a unei organizații este acum la fel de eficientă pe cât de securizate sunt fiecare servere, aplicații și stații de lucru în parte. Pandemia de COVID-19 a scos și mai mult în evidență aceste realități, o mulțime de oameni fiind nevoiți să lucreze de acasă și să acceseze sistemele și aplicațiile companiei folosind propria conexiune la Internet.

Cum spuneam, toate acestea reprezintă o provocare, dar mai cu seamă trebuie să reprezinte o oportunitate. Sistemele și aplicațiile trebuie să fie cât mai autonome din punct de vedere al securității cibernetice. Vulnerabilitățile de securitate trebuie să fie în primul rând identificate și rezolvate, nu mascate cu tehnologiile de tip Next Generation Firewall (NGFW) și Web Application Firewall (WAF).

În ultimii ani am putut observa o explozie a atacurilor cibernetice soldate cu scurgeri de date confidențiale, pierderi financiare sau de altă natură. Doar că în marea majoritate a cazurilor aceste atacuri au fost posibile datorită unor sisteme și aplicații vulnerabile, sau datorită neimplementării unor măsuri și proceduri de securitate standard. Înainte de a investi în tehnologii și servicii sofisticate de securitate cibernetică, companiile ar trebui să implementeze un program serios de management al vulnerabilităților și de dezvoltare software conform unor standarde și bune practici. Managementul vulnerabilităților este un proces continuu de identificare, analiză și remediere a problemelor de securitate din cadrul sistemelor și aplicațiilor.

Următoarele 10 recomandări de secure coding și-au demonstrat eficiența în eliminarea problemelor de securitate a aplicațiilor:

  1. Validați inputul. Acordați atenția cuvenită și validați inputul preluat din surse externe, precum argumente de tip command line, variabile de tip environment, fișiere aflate sub controlul utilizatorului etc.

  2. Compilați folosind cel mai înalt nivel de avertizare. Eliminați fiecare avertizare de compilator prin modificarea codului. Utilizați unelte de analiză statică și dinamică a codului și eliminați problemele adiționale de securitate;

  3. Includeți politicile de securitate. Gândiți arhitectura software astfel încât să permită implementarea și impunerea politicilor de securitate necesare;

  4. Design simplu (KISS). Încercați să mențineți un design cât mai simplu și eficient al aplicației;

  5. Refuzați accesul în mod implicit (default deny). Gândiți accesul pe bază de permisiuni și nu pe excluziuni. Astfel, în mod implicit accesul este refuzat, iar schema de protecție identifică acele condiții în care accesul este permis;

  6. Acordați cât mai puține privilegii în mod implicit (least privilege). Fiecare proces trebuie să ruleze cu minimul de privilegii necesare pentru scopul acestuia;

  7. Igienizați (Sanitizați) datele trimise către alte sisteme și aplicații. Atacatorii pot reuși să acceseze funcționalități neutilizate ale sistemelor complexe prin intermediul unor comenzi de tip SQL Injection, Command Injection sau de altă natură;

  8. Implementați conceptul de apărare în adâncime (defense in depth). Gestionați riscurile de securitate cu mai multe strategii/metode/nivele, astfel încât dacă un nivel de securitate se dovedește a fi ineficient, un alt nivel va preveni exploatarea vulnerabilității sau va limita consecințele unei exploatări.

  9. Utilizați tehnici eficiente de control al calității (quality assurance). Testarea de tip fuzzing, testele de penetrare a securității (pentests) și auditul codului sursă se pot dovedi a fi foarte eficiente în eliminarea vulnerabilităților de securitate.

  10. Adoptați un standard de secure coding. Dezvoltați sau implementați un standard de secure coding pentru limbajul de programare vizat.

În cadrul NTT DTA Romania acordăm importanța cuvenită principiilor security by design și secure coding. Țin să închei cu un îndemn pentru întreaga comunitate a programatorilor de a face acest lucru, "scriind" astfel un viitor mai bun și mai sigur pentru mediul de business și pentru fiecare dintre noi.

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects