Agentia de Securitate Cibernetica si Infrastructura din SUA (CISA) a publicat un studiu privind 172 de proiecte open-source cheie si daca acestea sunt susceptibile la erori de memorie.
Raportul, semnat de CISA, Biroul Federal de Investigatii (FBI), precum si de organizatiile Australiene (ASD, ACSC) si Canadiene (CCCS), este o continuare a ‘Argumentului pentru Hărți de Drum pentru Siguranța Memoriei’ lansat in decembrie 2023, avand ca scop cresterea constientizarii cu privire la importanta codului sigur pentru memorie.
Limbajele sigure pentru memorie sunt limbaje de programare concepute pentru a preveni erorile comune legate de memorie, cum ar fi depasiri de buffer, utilizarea dupa eliberare si alte tipuri de coruptie de memorie.
Acestea reusesc acest lucru prin gestionarea automata a memoriei in loc sa se bazeze pe programator pentru a implementa mecanisme sigure de alocare si dealocare a memoriei.
Un exemplu modern de sistem de limbaj sigur este verificatorul de imprumuturi Rust, care elimina cursele de date. Alte limbaje precum Golang, Java, C# si Python gestioneaza memoria prin colectarea de gunoi, recuperand automat memoria eliberata pentru a preveni exploatarea.
Limbajele nesigure pentru memorie sunt cele care nu ofera mecanisme de gestionare a memoriei incorporate, impovarand dezvoltatorul cu aceasta responsabilitate si crescand probabilitatea de erori. Exemple de astfel de cazuri sunt C, C++, Objective-C, Assembly, Cython si D.
Raportul prezinta cercetari care examineaza 172 de proiecte open-source larg raspandite, constatand ca peste jumatate contin cod nesigur pentru memorie.
Concluziile cheie prezentate in raport sunt urmatoarele:
Cateva exemple remarcabile din setul examinat sunt Linux (raport de cod nesigur 95%), Tor (raport de cod nesigur 93%), Chromium (raport nesigur 51%), MySQL Server (raport nesigur 84%), glibc (raport 85%), Redis (raport 85%), SystemD (65%) si Electron (47%).
CISA explica ca dezvoltatorii de software se confrunta cu multiple provocari care adesea ii obliga sa foloseasca limbaje nesigure pentru memorie, cum ar fi constrangerile de resurse si cerintele de performanta.
Aceasta este cu atat mai adevarat atunci cand se implementeaza functionalitati la nivel scazut precum retele, criptografie si functii de sistem de operare.
‘Am observat ca multe proiecte open-source critice sunt partial scrise in limbaje nesigure pentru memorie si analiza limitata a dependentei indica faptul ca proiectele mostenesc cod scris in limbaje nesigure pentru memorie prin dependente,’ explica CISA in raport.
‘Acolo unde performanta si constrangerile de resurse sunt factori critici, am vazut si ne asteptam la continuarea utilizarii limbajelor nesigure pentru memorie.’
Agentia subliniaza, de asemenea, problema dezvoltatorilor care dezactiveaza caracteristicile de siguranta a memoriei, fie din eroare, fie intentionat, pentru a indeplini anumite cerinte, rezultand riscuri chiar si atunci cand se folosesc blocuri de constructie teoretic mai sigure.
In cele din urma, CISA recomanda dezvoltatorilor de software sa scrie cod nou in limbaje sigure pentru memorie precum Rust, Java si GO si sa treaca proiectele existente, in special componentele critice, la aceste limbaje.
In plus, se recomanda urmarea practicilor sigure de codificare, gestionarea si auditarea atenta a dependentei si efectuarea testelor continue, inclusiv analiza statica, analiza dinamica si teste de fuzz, pentru a detecta si remedia problemele de siguranta a memoriei.
CISA indemnă dezvoltatorii de software să elimine vulnerabilitățile de traversare a căilor
Facilitățile chimice avertizate cu privire la posibila furt de date in incalcarea CISA CSAT
CISA avertizează cu privire la defectiunea de creștere a privilegiilor Linux exploatată activ
CISA avertizează cu privire la hackeri care exploatează bug-urile Chrome, EoL D-Link
Exploatarea pentru defectul critic Fortra FileCatalyst Workflow SQLi a fost lansata
Leave a Reply