Întrebarea dacă software-ul open-source (OSS) este adecvat în sistemele de apărare a fost în mare parte rezolvată în anii 2000 și 2010: răspunsul este da, cu gestionare adecvată. Memorandumul de politică al Departamentului de Apărare al SUA din 2009 privind software-ul open-source a fost printre primele declarații formale că OSS trebuie evaluat pe aceleași criterii ca software-ul proprietar — fără interdicție globală, fără preferință globală, ci evaluare caz cu caz. Această poziție permisivă-dar-gestionată este acum efectiv universală printre cadrele de achiziție pentru apărare din națiunile democratice.

Provocarea actuală nu este dacă să se utilizeze OSS, ci cum să fie gestionat riguros. Software-ul modern pentru apărare încorporează de obicei sute de componente open-source — biblioteci de sistem de operare, biblioteci criptografice, stive de rețea, cadre de procesare a datelor. Incidentul cu backdoor-ul XZ Utils din 2024, în care un actor malițios a petrecut doi ani construind credibilitate într-un proiect open-source înainte de a insera un backdoor sofisticat, a demonstrat că riscurile lanțului de aprovizionare OSS nu sunt teoretice. Acest articol examinează peisajul actual al politicilor, categoriile reale de risc și practicile de guvernanță pe care programele eficiente le aplică.

Politica OSS a DoD И™i a AliaИ›ilor: PoziИ›ia ActualДѓ PermisivДѓ-dar-GestionatДѓ

Poziția actuală a DoD SUA cu privire la OSS este cuprinsă în mai multe documente de politică: memorandumul CIO din 2009, recomandările privind practicile de achiziție software ale Defense Innovation Board din 2016 și Strategia de Modernizare Software DoD din 2022. Firul consistent este că OSS nu este nici mai sigur, nici mai puțin sigur decât software-ul proprietar în mod intrinsec — securitatea depinde de componenta specifică, practicile de dezvoltare ale comunității sale și guvernanța aplicată de organizația consumatoare.

Programele DoD sunt Г®n general permise sДѓ utilizeze OSS sub rezerva: revizuirii licenИ›ei pentru a asigura cДѓ termenii licenИ›ei sunt compatibili cu cerinИ›ele de distribuИ›ie ale programului; evaluДѓrii vulnerabilitДѓИ›ilor versiunii specifice incorporate; И™i monitorizДѓrii continue pentru noi vulnerabilitДѓИ›i Г®n componentele incorporate. Unele programe sunt supuse restricИ›iilor suplimentare bazate pe nivelul de clasificare, sensibilitatea datelor procesate sau cerinИ›ele contractuale specifice.

OrganizaИ›iile aliate de apДѓrare reflectДѓ Г®n general aceastДѓ abordare. ГЋndrumarea tehnologicДѓ a Ministerului ApДѓrДѓrii din Regatul Unit permite utilizarea OSS sub rezerva clearance-ului de proprietate intelectualДѓ И™i evaluДѓrii de securitate. Programele Bundeswehr german utilizeazДѓ componente open-source extensiv, Г®n special Г®n software-ul de nivel infrastructurДѓ, sub Г®ndrumarea BSI privind evaluarea securitДѓИ›ii open-source. Alinierea Г®ntre aliaИ›i este suficient de substanИ›ialДѓ Г®ncГўt programele internaИ›ionale nu se confruntДѓ de obicei cu conflicte de politici OSS Г®ntre parteneri.

Riscuri ale LanИ›ului de Aprovizionare: Typosquatting, ActualizДѓri MaliИ›ioase И™i Biblioteci Abandonate

SuprafaИ›a de atac a lanИ›ului de aprovizionare OSS cuprinde mai multe categorii distincte de risc, fiecare necesitГўnd abordДѓri de atenuare diferite.

Typosquatting. Atacatorii înregistrează nume de pachete care sunt apropiate de pachetele legitime populare — greșeli de scriere tranzitive, grafii alternative sau greșeli comune de dactilografiere. Un dezvoltator care tastează greșit un nume de pachet instalează cod malițios în loc de biblioteca intenționată. Atacurile de typosquatting au fost observate în npm, PyPI și RubyGems și au vizat credențialele dezvoltatorilor, variabilele de mediu și secretele de implementare. Atenuarea necesită verificarea numelor de pachete la punctul de instalare și lockfile-uri de dependențe care fixează exact numele și versiunile pachetelor.

Actualizări malițioase. Un pachet legitim, utilizat pe scară largă, poate deveni un vehicul pentru malware dacă mentenanoriis săi sunt compromisi, constrânși sau înlocuiți de actori ostili. Incidentul XZ Utils este cel mai sofisticat exemplu, dar cazuri mai simple — compromiterea contului unui mentenanor ducând la o încărcare de versiune malițioasă — apar regulat. Atenuarea necesită fixarea unor versiuni specifice în loc de acceptarea automată a actualizărilor la cea mai recentă versiune, verificarea semnăturilor pachetelor acolo unde sunt disponibile și monitorizarea pentru modificări anomale în comportamentul pachetelor între versiuni.

Biblioteci abandonate. Proiectele open-source sunt frecvent menИ›inute de voluntari individuali sau grupuri mici. CГўnd mentenanoriis nu mai fac dezvoltare activДѓ, proiectul poate continua sДѓ fie utilizat de software-ul downstream Г®n timp ce acumuleazДѓ vulnerabilitДѓИ›i neacoperite. Vulnerabilitatea Log4Shell a afectat un proiect cu mentenanИ›Дѓ activДѓ; multe vulnerabilitДѓИ›i reale afecteazДѓ componente care au fost efectiv nemenИ›inute ani de zile. Atenuarea necesitДѓ urmДѓrirea stДѓrii de mentenanИ›Дѓ a dependenИ›elor И™i o politicДѓ de Г®nlocuire sau fork pentru componentele nemenИ›inute care gestioneazДѓ funcИ›ii sensibile la securitate.

Conformitatea licențelor. Licențele open-source impun obligații consumatorilor. Licențele copyleft (GPL, AGPL) pot necesita divulgarea codului sursă derivat — creând riscuri legale și de securitate pentru programele de apărare care nu pot divulga codul sursă din cauza clasificării sau preocupărilor competitive. Incompatibilitatea licențelor poate afecta, de asemenea, distribuția către aliați sau contractanți. Revizuirea licențelor trebuie să fie sistematică, nu ad hoc.

Procesul de Aprobare OSS: Revizuirea LicenИ›ei, Scanarea VulnerabilitДѓИ›ilor И™i ProvenienИ›a

GuvernanИ›a OSS eficientДѓ Г®n programele de apДѓrare necesitДѓ un proces de aprobare definit prin care trebuie sДѓ treacДѓ fiecare dependenИ›Дѓ nouДѓ Г®nainte de a fi incorporatДѓ Г®n baza de cod. Procesul ar trebui sДѓ acopere trei domenii.

Revizuirea licenței determină dacă licența componentei este compatibilă cu utilizarea intenționată a programului. Aceasta necesită înțelegerea modelului de distribuție al programului (utilizare internă, livrare către un client specific, distribuție comercială), obligațiile de licență impuse de fiecare componentă candidată și dacă acele obligații creează conflicte. Programele care utilizează componente cu licențe incompatibile descoperă problema la livrarea contractului sau revizuirea juridică — momente atât scumpe, cât și cu impact asupra programului pentru a rezolva.

Scanarea vulnerabilităților evaluează versiunea specifică a componentei luate în considerare pentru includere față de bazele de date de vulnerabilități cunoscute (NVD, OSV.dev, GitHub Advisory Database). Evaluarea ar trebui să acopere nu doar componenta în sine, ci și dependențele tranzitive — dependențele dependenței — deoarece vulnerabilitățile din codul tranzitiv afectează sistemul incorporator la fel de mult ca cele directe. Scanarea la momentul includerii este necesară dar nu suficientă; trebuie repetată continuu pe măsura divulgării de noi vulnerabilități.

Evaluarea provenienИ›ei evalueazДѓ fiabilitatea dezvoltДѓrii И™i distribuИ›iei componentei. Aceasta include: identitatea И™i istoricul mentenanorilor; dacДѓ proiectul are un proces de divulgare a securitДѓИ›ii; dacДѓ lansДѓrile sunt semnate; dacДѓ practicile de dezvoltare ale proiectului (revizuirea codului, testarea, CI) oferДѓ asigurare rezonabilДѓ a calitДѓИ›ii intenИ›ionate. O componentДѓ cu proprietДѓИ›i tehnice de securitate puternice, dar dezvoltatДѓ de pДѓrИ›i necunoscute fДѓrДѓ niciun proces de divulgare a securitДѓИ›ii prezintДѓ un profil de risc diferit faИ›Дѓ de o componentДѓ cu proprietДѓИ›i echivalente dezvoltatДѓ de o fundaИ›ie bine-cunoscute cu guvernanИ›Дѓ transparentДѓ.

DistincИ›ie criticДѓ: Scanarea vulnerabilitДѓИ›ilor identificДѓ vulnerabilitДѓИ›ile cunoscute. Nu oferДѓ nicio protecИ›ie Г®mpotriva vulnerabilitДѓИ›ilor necunoscute sau a backdoor-urilor intenИ›ionate. Evaluarea provenienИ›ei И™i postura mai largДѓ de securitate a lanИ›ului de aprovizionare al proiectului abordeazДѓ spaИ›iul de risc pe care scanarea vulnerabilitДѓИ›ilor nu Г®l poate atinge.

SBOM ca Instrument de Gestionare a DependenИ›elor OSS

Un Software Bill of Materials (SBOM) este un inventar formal, lizibil de mașini al tuturor componentelor software dintr-un sistem — inclusiv bibliotecile open-source, componentele comerciale disponibile imediat și modulele dezvoltate intern — cu versiunile, licențele și relațiile de dependență ale acestora. SBOM este din ce în ce mai mandatat pentru software-ul de apărare: Ordinul Executiv SUA 14028 (2021) necesită SBOM pentru software-ul vândut agențiilor federale, iar națiunile aliate implementează cerințe echivalente.

Pentru gestionarea OSS în mod specific, SBOM oferă două capacități care sunt altfel dificil de obținut la scară. În primul rând, permite corelarea automată a vulnerabilităților: când este divulgată o nouă vulnerabilitate (de ex., un CVE este publicat pentru o versiune specifică de OpenSSL), aceasta poate fi corelată automat față de SBOM pentru a identifica toate programele care incorporează versiunea afectată. Fără SBOM, această corelare necesită un inventar manual — care este lent, predispus la erori și puțin probabil să fie efectuat consecvent.

ГЋn al doilea rГўnd, SBOM permite monitorizarea conformitДѓИ›ii licenИ›elor pe Г®ntregul arbore de dependenИ›e, inclusiv dependenИ›ele tranzitive. UrmДѓrirea manualДѓ a licenИ›elor pe sute de dependenИ›e И™i dependenИ›ele lor tranzitive nu este fezabilДѓ; instrumentele SBOM automatizate fac acest lucru gestionabil.

Programele SBOM eficiente integrează generarea SBOM în pipeline-ul CI/CD astfel încât SBOM-ul să fie mereu la curent cu codul implementat efectiv, mai degrabă decât să fie un document la un moment dat care deriva de la realitate pe măsura actualizării componentelor. Standardele de format SBOM (CycloneDX, SPDX) sunt mature și suportul pentru instrumente este larg. Nu mai există o barieră tehnică pentru adoptarea SBOM — barierele rămase sunt organizaționale: prioritizarea SBOM ca cerință de program și alocarea capacității de inginerie pentru implementarea și mentenanța instrumentelor.