Репозиторийдегі барлық бумаларға тәуелді NPM бумасын жасаумен тәжірибе жасаңыз

JavaScript пакеттерін әзірлеушілердің бірі NPM репозиторийінде тәуелділіктері бар репозиторийдегі барлық бар пакеттерді қамтитын «бәрі» бумасын жасау және орналастыру бойынша тәжірибе жасады. Бұл мүмкіндікті іске асыру үшін «бәрі» бумасы бес «@everything-registry/chunk-N» пакетіне тікелей тәуелділіктер арқылы байланыстырылады, олар өз кезегінде әрқайсысы 3000-нан астам «sub-chunk-N» пакеттеріне тәуелділіктер арқылы байланыстырылады. оның ішінде репозиторийдегі 800 бар пакеттермен байланысады.

NPM-де «бәрін» орналастыру екі қызықты әсерге ие болды. Біріншіден, «бәрі» пакеті DoS шабуылдарын орындаудың өзіндік құралы болды, өйткені оны орнату әрекеті NPM-де орналастырылған миллиондаған пакеттерді жүктеп алуға және қол жетімді дискілік кеңістікті таусуға немесе құрастыру процестерінің орындалуын тоқтатуға әкеледі. NPM статистикасына сәйкес, пакет шамамен 250 рет жүктелген, бірақ диверсия жасау үшін әзірлеушінің есептік жазбасы бұзылғаннан кейін оны басқа пакетке тәуелділік ретінде қосуға ешкім алаңдамайды. Сонымен қатар, NPM орналастыратын жаңа пакеттерді бақылайтын және тексеретін кейбір қызметтер мен құралдар байқаусызда шабуылға ұшырады.

Екіншіден, «бәрі» пакетін жариялау NPM-дегі тәуелділіктер тізімінде аяқталған кез келген пакеттерді жою мүмкіндігін тиімді бұғаттады. NPM бумасын автор ол басқа бумалардың тәуелділіктерінде пайдаланылмаған жағдайда ғана жоя алады, бірақ «бәрі» жарияланғаннан кейін репозиторийдегі барлық пакеттер тәуелділіктермен қамтылған. Бір қызығы, «бәрі» пакетін жоюдың өзі де бұғатталған, өйткені 9 жыл бұрын репозиторийде «бәрі-басқа» сынақ пакеті орналастырылған, ол тәуелділіктер тізіміне «бәрі» жолын қосқан. Осылайша, жарияланғаннан кейін «бәрі» пакеті басқа пакетке тәуелді болды.

Ақпарат көзі: opennet.ru

пікір қалдыру