ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
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 46
Abonament PDF

Securitatea librăriilor terţe: Minimizarea riscurilor via SDL

Raghudeep Kannavara
Security Researcher, Software and Services Group
@Intel USA



PROGRAMARE

Librăriile reprezintă un vector potenţial pentru declanşarea unui atac de securitate la ecosistemele în care sunt integrate, deoarece codul din cadrul multor aplicaţii de astăzi provine din librării terţe, iar riscurile asociate vulnerabilităţilor din aceste librării este ignorat și minimizat. 

Într-un articol precedent, autorul a ilustrat care sunt vulnerabilităţile asociate, provocările care apar în identificarea vulnerabilităţilor și a explicat tiparele commune de atac care profită de pe urma acestor vulnerabilităţi. În acest articol, autorul discută tehnicile și provocările care apar în reducerea riscurilor și a vulnerabilităţilor în librăriile terţe via Security Development Lifecycle (SDL).

Security development lifecycle

Security Development Lifecycle (SDL) este un set de activităţi și de puncte de convergenţă care pot produce rezultate de înaltă calitate în dezvoltarea de produse și de servicii. SDL face ca securitatea să fie parte integrantă din definirea, designul, dezvoltarea și validarea produsului. SDL se integrează cu procesul Corporate Product Life Cycle (PLC) pentru a ne asigura că produsul este conform cu măsurile de securitate. SDL presupune cinci faze diferite.

fig. 1. Security Development Lifecycle

 Faza SDL S0 se asigură că toate activităţile SDL sunt bine recomandate și încorporate corespunzător pentru a răspunde riscurilor de securitate preconizate din proiect. Planul SDL este adaptat riscurilor de securitate specifice fiecărui proiect. Pentru a evalua corect riscurile de securitate ale librăriilor software, trebuie să cunoaștem contextele specifice de utilizare pentru aceste librării, contexte care nu sunt direct evidente.

Faza SDL S1 permite echipei de proiect să dezvolte un model adecvat de întâmpinare a vulnerabilităţilor, model care să determine mai apoi măsuri și obiective de securitate potrivite. Aceste măsuri și obiective le vor permite designerilor, programatorilor și validatorilor/testerilor să ia în calcul problemele de securitate în timp ce își îndeplinesc responsabilităţile cu securitatea. În cazul librăriilor, așa cum s-a explicat anterior, de multe ori, vulnerabilităţle specifice aplicaţiei sunt necunoscute. Dacă vulnerabilităţile aplicaţiei sunt cunoscute, iar obiectivele de securitate sunt deja identificate, este mai ușor să se aleagă librăria potrivită. De exemplu, dacă proprietăţle de securitate ale unei librării existente nu sunt aliniate la obiectivele de securitate ale aplicaţiei, o alternativă ar putea fi să se dezvolte o nouă librărie, ceea ce presupune consum de timp și de resurse.

Faza SDL S2 se asigură că toate măsurile și obiectivele de securitate sunt transpuse cu succes la nivelul artefactelor de nivel inferior, păstrând asigurarea securităţii în dezvoltarea proiectului. În practică, această fază se aplică sau nu, în funcţie de aplicarea obiectivelor de securitate. 

Faza SDL S3 le permite programatorilor și validatorilor/testerilor să evalueze un set parţial de măsuri de securitate, acordând timp suficient pentru a răspunde lipsurilor din cadrul proceselor de securitate sau a zonei pe care acestea o acoperă. Această fază presupune examinarea etapelor timpurii de implementare, de exemplu alpha code, pentru a ne asigura că implementarea este la zi și că va oferi un produs de încredere. SDL S3 este o etapă critică în asigurarea securităţii unui software, în ceea ce privește librăriile, și în verificarea practicilor de dezvoltare de cod sigur, de analiză statică și dinamică, de revizie manuală de cod, de fuzz testing, de verificare și de activare a securităţii compilatorului. Problemele de securitate identificate acum sunt rezolvate în această etapă.

Pe de altă parte, atunci când se folosesc librării terţe pentru dezvoltarea aplicaţiilor, utilizarea greșită a librăriilor este o problemă majoră. Au existat situaţii în care s-au folosit librăriistandard, dar programatorii care au folosit acele librării au făcut presupuneri greșite în ceea ce priveșe modul de utilizare a rutinelor/routines din librării. De exemplu, programatorii pot alege algoritmul crypto/criptat corect, dar să îl folosească incorect prin alegerea unei vector de iniţializare greșit, a unor resurse de entropie, a unor credenţiale hardcodate și a unor lungimi de chei/key lengths. Înţelegerea nuanţelor în ceea ce privește algoritmul și utilizarea librăriilor este o abilitate de bază pentru criptografia aplicată. În general, utilizările improprii cele mai commune, în cazul librăriilor, aşa cum sunt documentate de IEEE Center for Secure Design, includ:

Faza SDL S4 permite managementului să înţeleagă orice alt risc semnificativ de securitate care nu a fost suficient abordat înainte de lansarea produsului. SDL S4 ne asigură că produsul este gata de lansare din punctul de vedere al securităţii.

Dacă fazele S0, S1 și S2 sunt părţi componente din SDL, faza S3, urmată de faza S4, este critică pentru asigurarea securităţii în timpul dezvoltării de librării. Cele opt categorii majore de vulnerabilităţi identificate în tabelul 1 pot fi detectate și rezolvate în cadrul activităţilor din faza S3, activităţi care includ analiza de cod static, revizia manuală a codului sursă conform cu practicile de dezvoltare de cod sigur, fuzz testing, analiza dinamică și activarea securităţii compilatorului. Mai mult, succesul SDL depinde în mare măsură de eficacitatea trainingului de securitate bazat pe roluri şi de aducerea acestor probleme în atenţia arhitecţilor, programatorilor, validatorilor/testerilor şi managerilor. În acest context, evaluarea securităţii librăriilor terţe este importantă. Atunci când librăriile sunt obţinute de la furnizori terţi sau comunităţi opensource a căror practici SDL nu se cunosc, se recomandă ca programatorii de aplicaţii şi validatorii/testerii să se asigure că aceste librării au ultimele actualizări de securitate, la nivel de compilator şi configurări, înainte de integrarea în aplicaţie. Acolo unde este disponibil codul sursă al librăriei, în funcţie de modelul de licenţă, se poate realiza validarea securităţii în profunzime. Optimizările de performanţă şi canale auxiliare oferă securitate suplimentară pentru librăriile crypto/criptate. 

Concluzii

Un principiu de bază al strategiei Defense in Depth este că, pentru a securiza informaţia, e necesar un echilibru concentrat pe trei elemente primare: oameni, tehnologie și operaţiuni. În cazul librăriilor, găsirea echilibrului între cele trei elemente primare trebuie să facă faţă complexităţii curente. Librăriilesoftware oferă din ce în ce mai multe blocuri reutilizabile care deservesc un număr mare de aplicaţii din ziua de azi. Trebuie să creștem gradul de conștientizare asupra riscurilor potenţiale de securitate asociate librăriilor vulnerabile, să ne asigurăm că mecanismele de validare a securităţii sunt la locul lor, să dezvoltăm politici formale de achiziție sau guvernare pentru a înţelege, a gestiona și a reduce riscurile care derivă din adoptarea/preluarea librăriilor opensource sau terţe, să creăm practici care să asigure un răspuns formal, standard la incidente. Toate acestea vor ridica nivelul de securitate necesar pentru librăriile software. 

În aceeaşi ediţie ... (46)

▼ TOATE ARTICOLELE ▼

Conferință TSM

NUMĂRUL 147 - Automotive

Sponsori

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