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...]