A mesura que el desenvolupament de programari avança al llarg del cicle de vida de la cadena de subministrament de programari, l'etapa de paquets emergeix com un punt crucial, convertint el codi font en artefactes executables preparats per a la distribució. Tanmateix, aquesta etapa crítica no és immune a les vulnerabilitats, convertint-la en un objectiu principal per a actors maliciosos que busquen soscavar la integritat i la seguretat del programari. Aquesta entrada de blog aprofundeix en les amenaces prevalents que poden sorgir durant aquesta fase i descriu estratègies efectives per mitigar-les. Aquest contingut serveix com a continuació de la nostra sèrie de blogs que explora software supply chain security a través de la SDLC.
L'etapa del paquet en el cicle de vida del desenvolupament de programari
L'etapa d'empaquetament del cicle de vida de la cadena de subministrament de programari engloba el procés d'empaquetament i preparació del programari per a la seva distribució als usuaris. Aquesta etapa implica la creació de paquets d'instal·lació, la gestió de dependències i la generació de metadades per al programari.
Les amenaces a la integritat de la compilació són vulnerabilitats que podrien permetre als atacants introduir canvis no autoritzats al programari durant el procés d'empaquetament. Aquestes amenaces es poden introduir a través de diversos mètodes, com ara comprometre el registre del paquet, explotar vulnerabilitats a les eines d'empaquetament o manipular dependències de tercers.
La dependència total dels components de codi obert en el programari modern va fer que aquesta etapa fos la S més freqüent.SCA objectiu. Introduir programari maliciós ocult en un component popular de codi obert és un somni per a molts ciberdelinqüents. És per això que més de Es van trobar 245,000 paquets maliciosos durant el 2023.
Exemples de Software Supply Chain Security Amenaces en la fase de paquet
Utilitza un paquet compromès
Això es refereix a l'acte de desplegar o utilitzar un paquet de programari que ha estat manipulat o modificat per un adversari.
Això pot passar després que el paquet hagi sortit del registre oficial de paquets, ja sigui mitjançant l'accés directe al sistema de l'usuari o mitjançant tàctiques d'enginyeria social que enganyen l'usuari perquè descarregui o instal·li un paquet maliciós. Un exemple d'aquest vector va ser el Navegar mecanografia tipogràfica Atac.
Un atacant, que buscava comprometre els sistemes Linux i Mac, es va infiltrar en el procés de desenvolupament d'una popular biblioteca Node.js anomenada Browserify. L'atacant va introduir codi maliciós al codi font del projecte amb la intenció de distribuir-lo a través del registre de paquets NPM. Un cop carregat el paquet Browserify contaminat a NPM, els desenvolupadors desprevinguts el descarregaven i el instal·laven, creient que era la versió legítima. El codi maliciós, incrustat dins del paquet, s'executava silenciosament, comprometent la integritat dels sistemes que infectava. Això podia provocar robatori de dades, inestabilitat del sistema o fins i tot accés remot per a l'atacant.
Registre de paquets compromesos
Un registre de paquets compromès és un repositori de programari que ha estat infiltrat per un adversari que ha obtingut accés no autoritzat a la interfície administrativa o infraestructura del registre.
Això permet a l'adversari modificar o substituir paquets de programari legítims per paquets maliciosos, que després es poden distribuir a usuaris instal·lats sense sospitar-ne. Un exemple d'aquest tipus d'amenaça va ser la Atac als miralls de paquets: Un investigador, amb la intenció de promoure programari de codi obert, va comprometre diversos registres de paquets populars, com ara Maven Central, NPM i RubyGems. En obtenir accés a aquests registres, l'investigador va poder crear miralls i rèpliques dels repositoris originals, que van proporcionar una alternativa convenient perquè els desenvolupadors descarreguessin paquets.
Tanmateix, aquests miralls tenien un propòsit sinistre. Els miralls compromesos servien com a conductes perquè l'investigador distribuís paquets maliciosos. Aquests paquets substituïen els legítims, que no eren detectats pels registres principals, i els desenvolupadors desprevinguts els descarregaven i instal·laven sense saber-ho. Un cop instal·lats, aquests paquets maliciosos alliberaven la seva càrrega útil, executant codi arbitrari, robant dades sensibles o interrompent les operacions.
Puja el paquet modificat
Un adversari carrega un paquet modificat a un repositori o canal de distribució que conté codi o càrregues útils malicioses. Això es pot fer modificant el codi font, l'empaquetatge o les metadades del paquet.
Una de les amenaces més notòries d'aquest tipus va ser la Atac de CodeCov el 2021. Un atacant, que busca comprometre projectes de programari que utilitzen CodeCov, una popular integració contínua i lliurament continu (CI/CD) va utilitzar credencials filtrades per obtenir accés no autoritzat al contenidor de Google Cloud Storage (GCS) d'un projecte. Un cop l'atacant va obtenir accés al contenidor de GCS, va carregar un artefacte maliciós, una versió modificada del paquet CodeCov, que després es va distribuir als usuaris a través del servei CodeCov. Desenvolupadors desprevinguts, confiant en la funció d'actualitzacions automàtiques, van descarregar i instal·lar el paquet maliciós, creient que era el legítim. Un cop instal·lat, el codi maliciós s'executava silenciosament, comprometent la integritat dels sistemes que infectava. Això podria provocar robatori de dades, inestabilitat del sistema o fins i tot accés remot per a l'atacant.
Els atacs als registres de paquets són tan comuns que alguns patrons d'atac han rebut un nom:
In typosquatting, el malfactor puja al registre diversos paquets maliciosos amb lleus errors tipogràfics o noms similars als legítims i populars, amb l'esperança que els desenvolupadors escriguin malament el nom del paquet previst amb un nom maliciós. Sovint, el paquet maliciós es fa passar per legítim per passar desapercebut, augmentant la probabilitat de ser atacat per un programa d'observació d'estrelles.
Confusió de dependència aprofita la manera com alguns gestors de paquets resolen els paquets sol·licitats des de múltiples registres. Quan una organització utilitza components interns publicats en un registre intern, un atacant que ho sàpiga pot publicar un component maliciós amb el mateix nom en un registre públic. Si el nom utilitzat per al component intern no està delimitat, alguns gestors de paquets buscaran el component maliciós en lloc de l'intern.
Amb Paquets Troyan, el ciberdelinqüent disfressa programari maliciós entre codi vàlid útil. Això podria ser utilitzat per l'autor real o per un col·laborador que s'ofereixi per mantenir el paquet. Això també es coneix com a Segrest de paquetsEls atacants van utilitzar moltes tècniques per segrestar un paquet existent, com ara Adquisició de domini on l'atacant va prendre un domini caducat abandonat que va recrear l'antic correu electrònic del mantenidor i va realitzar una recuperació de la contrasenya per prendre el control del compte del mantenidor.
Observacions finals
A mesura que les organitzacions adopten cada cop més metodologies de desenvolupament de programari que prioritzen l'automatització i el lliurament continu, la importància de protegir la fase del paquet de programari mai ha estat tan primordial. Mitjançant la implementació de mesures de seguretat robustes durant aquesta fase crítica, les organitzacions poden mitigar substancialment el risc de sucumbir a atacs maliciosos que poden comprometre la integritat i la seguretat del seu programari.
Les estratègies descrites en aquesta entrada de blog, juntament amb els exemples proporcionats, serveixen com a recordatori clar que l'etapa de paquet representa un punt vulnerable dins de la cadena de subministrament de programari. Les organitzacions han de tenir en compte aquestes amenaces i implementar les mesures de seguretat necessàries per protegir el seu programari dels atacs. D'aquesta manera, poden garantir la integritat, la seguretat i la fiabilitat del seu programari per als seus usuaris i clients.
Uneix-te al nostre viatge cap a un ecosistema de programari segur
No perdeu l'oportunitat d'anar un pas per davant en l'àmbit de software supply chain securitySubscriu-te al nostre blog avui mateix i sigues dels primers a rebre les nostres últimes novetats, garantint que la teva organització es mantingui resilient i segura enmig de les amenaces en constant evolució. Junts, podem construir un ecosistema de programari més robust i segur per a tothom.
Recorda, software supply chain security és un viatge continu, no una destinació. En avaluar i adaptar contínuament les pràctiques de seguretat per fer front a les amenaces emergents, les organitzacions poden protegir la seva cadena de subministrament de programari i oferir programari de confiança als seus usuaris.
Mireu la nostra demostració en vídeo




