Software Supply Chain Attacks – detectare, prevenire și remediere
Aplicațiile moderne nu sunt construite doar din cod scris de echipa care le dezvoltă. O aplicație poate utiliza zeci sau sute de componente externe: biblioteci, framework-uri, pachete, module, imagini Docker și alte servicii. Acest lucru accelerează dezvoltarea, dar introduce un risc important: dacă una dintre componente este compromisă, problema poate ajunge automat în aplicația care o folosește.
Un atac de tip Software Supply Chain apare atunci când un atacator introduce cod malițios sau exploatează o vulnerabilitate într-o componentă utilizată de alte aplicații.
Schema poate fi simplificată astfel:
Atacator → componentă compromisă → aplicație → sistemul companiei
Problema principală este că aplicația finală poate părea perfect legitimă. Componenta compromisă poate proveni dintr-o sursă utilizată în mod normal de dezvoltatori.
Există mai multe puncte în care lanțul software poate fi compromis.
Bibliotecă externă compromisă
O bibliotecă utilizată de aplicație poate fi modificată pentru a executa cod nedorit. De exemplu, o aplicație folosește:
Library-X 2.4.1
Dezvoltatorul descarcă versiunea respectivă și o introduce în proiect. Dacă acea versiune a fost compromisă, codul malițios ajunge în aplicație fără ca dezvoltatorul să-l fi scris.
Pachet fals
Un atacator poate crea un pachet cu un nume foarte asemănător cu unul legitim.
De exemplu:
package-original
package-orignal
O simplă greșeală de scriere poate duce la instalarea pachetului greșit.
Cont de dezvoltator compromis
Dacă atacatorul obține acces la contul unui dezvoltator, poate modifica repository-ul și introduce cod malițios. Problema poate trece neobservată dacă modificarea arată ca un update normal.
Pipeline CI/CD compromis
CI/CD este sistemul care automatizează compilarea, testarea și distribuirea aplicației. Dacă pipeline-ul este compromis, atacatorul poate modifica rezultatul final chiar dacă repository-ul pare curat.
[mai mult...]