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 45
Abonament PDF

Securitatea librăriilor terțe: riscuri actuale

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



PROGRAMARE

Introducere

Majoritatea codului care stă la baza aplicațiilor actuale provine din librării, însă riscurile pe care aceste librării le presupun sunt minimizate și ignorate la scară largă. Librăriile sunt modulare, reutilizabile, ușor de distribuit. Librăriile sunt folosite în aplicații ale căror utilizări cuprind domenii variate, de la finanțe la managementul drepturilor digitale, pe o serie de sisteme de operare și platforme. Aceste librării terțe pot fi conectate dinamic sau static, pot fi utilizate drept cod sursă (opensource), binar (proprietary) sau ca parte integrată a unui nivel kernel sau a unei componente de tip utilizator. O librărie vulnerabilă îi poate permite unui atacator să exploateze întreaga gamă de privilegii ale aplicației. Organizațiile au încredere în librăriile pe care se bazează afacerile lor. Astfel, librăriile reprezintă un vector potențial pentru declanșarea unui atac de securitate la ecosistemele în care sunt integrate. Pornind de la această motivație, în acest articol, autorul ilustrează pericolele actuale ale librăriilor terțe și provocările dezvoltării unui model exhaustiv de evaluare a pericolului de securitate asociat librăriilor. Autorul explică tiparele de atac comune care facilitează vulnerabilitățile frecvente din cadrul librăriilor.

Librarii - riscuri actuale

A. Înlănțuirea vulnerabilităților

Înlănțuirea vulnerabilităților a devenit o regulă în potențialul nociv pe care aceasta îl are asupra securității. Axarea pe patching-ul vulnerabilităților critice, în izolare, a dus la stabilirea unor legături între vulnerabilități mai puțin critice, fapt care a condus apoi la rezolvarea vulnerabilităților majore. Librăriile reprezintă o componentă importantă a acestui lanț. De exemplu, să luăm în considerare cazul unei librării conectate dinamic care nu are protecție pentru compilator, anume nu are enabled: ASLR, Data Execute Prevention și Stack Canary. Încărcarea acestei librării vulnerabile îi va oferi atacatorului o breșă prin care să treacă de bypass ASLR. Mai mult, un buffer overflow în librăria vulnerabilă poate fi exploatat pentru a corupe adresa de întoarcere și pentru a controla execuția programului în scopuri malițioase. Momentan, niciuna dintre cele mai cunoscute scheme de management a vulnerabilităților, precum Common Vulnerability Scoring System (CVSS) sau Common Attack Pattern Enumeration and Classification (CAPEC), nu iau în calcul evaluarea riscului în contextul modului în care o vulnerabilitate se leagă de altele.

Moștenirea vulnerabilităților

Frecvent, programatorii vor descărca anumite librării și le vor utiliza 'ca atare', depunând efort minim sau deloc pentru a le menține sau pentru a le actualiza în timp. Reutilizarea librăriilor embedded, a plugin-urilor terțe sau a codului opensource poate facilita moștenirea unor vulnerabilități pe parcursul ciclurilor de cod și pot crea oportunități adiționale de risc și de atac. Plugin-urile reprezintă o zonă gri pentru conceptul de ownership (proprietate), deoarece furnizorii de aplicații, la modul general, nu consideră că este responsabilitatea lor să facă managementul de patching de plugin-uri. Acest lucru se datoreaza faptului că plugin-urile sunt opționale și recuperabile de pe site-uri terțe. Mai mult, acestea sunt menținute cu mai puțină atenție decât codul primar, deseori fără vreo actualizare automată (auto-update feature).

Provocări pentru dezvoltarea unui model de evaluare a riscului de securitate asociat librăriilor

O perspectivă generală asupra pașilor comuni ce trebuie efectuați pentru a preveni și a reduce riscul, presupune definirea cerințelor tehnice ale aplicației, definirea arhitecturii aplicației, identificarea riscurilor în ceea ce privește confidențialitatea, disponibilitatea și integritatea datelor și a aplicației, asignarea unor valori de risc și determinarea răspunsurilor la risc, determinarea contramăsurilor ce trebuie implementate pe baza răspunsurilor alese la risc și actualizarea continuă a modelului de evaluare a riscului pe baza problemelor de securitate emergente. Realizarea acestor pași, în vederea dezvoltării unui model de evaluare a riscului, necesită o înțelegere mai profundă cerințelor tehnice ale aplicației, a arhitecturii și a studiilor de caz, aspecte pe care furnizorul de librării nu le deține. Librăriile sunt unele dintre multiplele componente ale aplicației. Prin urmare, dezvoltarea unui model de evaluare a riscului pentru librării este o provocare, de cele mai multe ori nefezabilă. Riscurile care derivă din înlănțuirea sau moștenirea vulnerabilităților sunt parte componentă a unei aplicații și nu sunt supuse modelului de evaluare a riscului. Absența unui model de evaluare a riscului, specific librăriilor, poate duce, în multe cazuri, la absența testelor țintite, de securitate, cum ar fi pen-testing, care este de obicei efectuat în contextul unei aplicații, nu al unei librării. Dezvoltarea unor instrumente sau mecanisme de protecție în API-urile unei librării, precum validarea inputului, pot fi considerate drept o responsabilitate a aplicației, care, la rândul ei, mărește suprafața/oportunitățile de atac.

Tipare de atac comune

Un "tipar de atac" este un mecanism de abstractizare care ajută la surprinderea modului în care este executat un atac împotriva sistemelor sau a rețelelor vulnerabile. Pentru a identifica tiparele de atac care facilitează vulnerabilități în librării, am revizuit baza de date CAPEC-2000 care conține 453 de tipare de atac documentate. Pentru fiecare tipar de atac care facilitează vulnerabilitățile din librării, am detaliat următoarele aspecte asociate: gradul de severitate, posibilitatea de exploatare și nivelul abilităților atacatorului, așa cum sunt documentate în CAPEC. Rezultatul îl reprezintă cele 27 de tipare de atac din tabelul 1. În graficele 1, 2 și 3 am evidențiat corelația tiparelor de atac cu gradul de severitate, posibilitatea de exploatare și abilitățile atacatorului. Observăm că, deși gradul de severitate și gradul de exploatare a vulnerabilităților, în cazul unui atac, sunt ambele relativ ridicate, abilitățile atacatorului sunt relativ scăzute. Deși ne bazăm pe date istorice, putem să inferăm tipare curente ce pot să derive din acest scenariu. Aceste date demonstrează ușurința cu care un atacator poate declanșa cu succes un atac, profitând de pe urma vulnerabilităților din librării, astfel încât să lezeze semnificativ ecosistemul software. Datele arată, de asemenea, că probabilitatea unor astfel de atacuri este ridicată, oferind o motivație suplimentară necesității de a asigura o dezvoltare eficientă și validarea librăriilor înainte de deployment.

 

Library Specific Common Attack Pattern Enumeration and Classification (CAPEC)/ENUMERAREA ŞI CLASIFICAREA TIPARELOR DE ATAC COMUNE PENTRU LIBRĂRII

În continuare, am identificat CWEs (Common Weakness Enumeration/Enumerarea Vulnerbilităților Comune) care sunt mapate pe cele 27 de tipare de atac identificate în baza de date CAPEC și care sunt asociate cu vulnerabilitățile din librării. Aceste slăbiciuni sau vulnerabilități permit ocurența tiparelor de atac. Am clasificat aceste vulnerabilități în opt categorii majore (vezi tabelul 2).

CATEGORII DE VULNERABILITĂŢI

CONCLUZII ŞI ACTIVITATE VIITOARE

Asigurarea securității librăriilor terțe este vitală pentru securitatea ecosistemului software care utilizează aceste librării. Având în vedere utilizările vaste sau necunoscute ale librăriilor, comercianții de librării și programatorii de aplicații se confruntă cu provocări contradictorii în ceea ce privește asigurarea securității software. Într-un articol viitor, autorul va discuta care sunt tehnicile și provocările care apar în procesul de reducere a vulnerabilităților din librăriile terțe prin intermediul Ciclului de Dezvoltare a Securității (Security Development Lifecycle -SDL).

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