Atac a la infraestructura de PyTorch, comprometent el dipòsit i els llançaments

Es van revelar els detalls de l'atac a la infraestructura utilitzada en el desenvolupament del marc d'aprenentatge automàtic PyTorch, que va permetre extreure claus d'accés suficients per col·locar dades arbitràries al repositori amb llançaments de projectes a GitHub i AWS, així com per substituir el codi. a la branca principal del repositori i afegiu una porta posterior mitjançant dependències. La falsificació de llançament de PyTorch es podria utilitzar per atacar grans empreses com Google, Meta, Boeing i Lockheed Martin que utilitzen PyTorch en els seus projectes. Com a part del programa Bug Bounty, Meta va pagar als investigadors 16250 dòlars per obtenir informació sobre el problema.

L'essència de l'atac és la capacitat d'executar el vostre codi en servidors d'integració contínua que realitzen reconstruccions i executen treballs per provar els nous canvis enviats al repositori. El problema afecta els projectes que utilitzen els seus propis controladors externs "Self-Hosted Runner" amb GitHub Actions. A diferència de les accions tradicionals de GitHub, els controladors autoallotjats no s'executen a la infraestructura de GitHub, sinó als seus propis servidors o en màquines virtuals mantingudes pel desenvolupador.

L'execució de tasques de muntatge als vostres servidors us permet organitzar el llançament de codi que pot escanejar la xarxa interna d'una empresa, cercar a l'FS local claus de xifratge i testimonis d'accés i analitzar variables ambientals amb paràmetres per accedir a l'emmagatzematge extern o als serveis al núvol. En absència d'un aïllament adequat de l'entorn de muntatge, les dades confidencials trobades es poden enviar a atacants externs, per exemple, mitjançant l'accés a API externes. Per determinar si els projectes utilitzen Self-Hosted Runner, el conjunt d'eines Gato es pot utilitzar per analitzar fitxers de flux de treball disponibles públicament i registres d'inici de treballs de CI.

A PyTorch i molts altres projectes que utilitzen l'Auto-Hosted Runner, només els desenvolupadors els canvis dels quals s'han revisat prèviament i s'han inclòs a la base de codis del projecte poden executar treballs de creació. Tenir l'estat de "contribuïdor" quan s'utilitza la configuració predeterminada al dipòsit permet llançar gestors de GitHub Actions quan s'envien sol·licituds d'extracció i, en conseqüència, executar el codi en qualsevol entorn de GitHub Actions Runner associat amb el dipòsit o l'organització que supervisa el projecte.

L'enllaç a l'estat de "contribuïdor" va resultar fàcil d'ometre: n'hi ha prou amb enviar primer un canvi menor i esperar que s'accepti a la base de codi, després del qual el desenvolupador va rebre automàticament l'estat de participant actiu, les sol·licituds d'extracció de les quals es poden provar a la infraestructura CI sense verificació independent. Per aconseguir l'estat de desenvolupador actiu, l'experiment va incloure canvis estètics menors per corregir errors d'ortografia a la documentació. Per obtenir accés al dipòsit i emmagatzematge de les versions de PyTorch, l'atac mentre s'executava codi al "Self-Hosted Runner" va interceptar el testimoni de GitHub utilitzat per accedir al dipòsit des dels processos de compilació, així com les claus AWS utilitzades per desar els resultats de la compilació. .

El problema no és específic de PyTorch i afecta molts altres projectes grans que utilitzen la configuració predeterminada per a "Self-Hosted Runner" a GitHub Actions. Per exemple, es va mencionar la implementació d'atacs similars per instal·lar una porta del darrere en algunes carteres de criptomoneda grans i projectes de cadena de blocs amb una capitalització de mil milions de dòlars, fer canvis a les versions de Microsoft Deepspeed i TensorFlow, comprometre una de les aplicacions CloudFlare i també executar codi en un ordinador de la xarxa de Microsoft. Els detalls d'aquests incidents encara no s'han revelat. Sota els programes de recompenses d'errors existents, els investigadors han enviat més de 20 sol·licituds per obtenir recompenses per valor de diversos centenars de milers de dòlars.

Font: opennet.ru

Afegeix comentari