TL; DR
Viens npm izdevējs, deadcode09284814, ir uzsākusi typosquat kampaņu pret likumīgo axios un chalk-template paketes kopš 2026. gada maija vidus.
Kampaņa sākās kā tradicionāla akreditācijas datu un maka zagšana, izvilkjot datus uz Serveo HTTPS tunelis.
On 2026-05-17, ar axois-utils:1.0.9, operators pilnībā nomainīja lietderīgo slodzi: tā pati trīskāršā instalēšanas āķa sastatne, tas pats izdevējs, tas pats pakotnes nosaukums.
Bet instalēšanas skripts tagad ir starpplatformu DDoS botneta vervētājs.
Kravnesība runā ar a localhost.run tuneli un pieņem plūdu komandas, pārvēršot inficētās vides par daļu no DDoS-spējīga botneta.
Operators pat nosūtīja C2 servera binārais fails tarball iekšpusē, parādot skaidru eskalāciju no akreditācijas datu zādzības līdz aktīvai botnetu infrastruktūrai.
Divas pakotnes, četras versijas joprojām ir aktīvas reģistrā, un viens operators tagad paralēli darbina abus moduļus.
Smagums: augsts.
Uzbrukums: kā tas darbojas
Kampaņa ir veidota uz apzināti garlaicīgas piegādes sastatnes: divi typosquat pakotņu nosaukumi, kas ir par vienu burtu atšķirīgi no pakotnēm ar simtiem miljonu lejupielāžu nedēļā (axios, krīta veidne) un trīskārša instalēšana hooks kas garantē izpildi. Interesanti ir tas, kādas ir sastatnes pārvadā — un fakts, ka operators mainīja kravu, neko citu nemainot.
Koplietotās sastatnes
Katrā abu pakotņu publicētajā versijā ir deklarēti tie paši trīs dzīves cikli. hooks in pack.json:
"scripts": { "preinstall": "node <payload>.js", "install": "node <payload>.js", "postinstall": "node <payload>.js" } Kravnesības uzskaitīšana visos trijos punktos hooks ir pārspīlēti — pēc instalēšanas viens pats darbotos noklusējuma režīmā npm instalētIzvēlei ir nozīme: npm instalēšana –ignore-scripts izlaiž skriptus, bet vairākas izplatītas darbplūsmas (CI kešatmiņa atjauno, kas atkārtoti palaiž dzīves ciklu hooks selektīvi vai izstrādātāji, kas veic tikai auditu pēc instalēšanas) padarīt trīskārši lieku deklarāciju par drošāko izvēli uzbrucējam.
krīta šablons pievieno otru mehānismu: tas deklarē axois-utils:^1.0.7 kā izpildlaiks atkarībaTyposquatted instalēšana krīta veidne tāpēc tiek iesaistīts arī brālīgais typosquat, un abi lietderīgie dati tiek palaisti. Abas pakotnes ir koordinēts pāris, nevis neatkarīgi saraksti.
A fāze — akreditācijas datu/maciņa zaglis (2026-05-15 → pašreiz)
A fāze ir sākotnējā lietderīgā slodze. Iekrāvējs ir īss. postinstall.js kas norāda uz Serveo HTTPS apgriezto tuneli:
// chalk-tempalte/postinstall.js:11-13 const C2_HOST = "f04a273bd84c0622-80-200-28-28.serveousercontent.com"; const C2_PORT = 443; const C2_PATH = '/collect'; Serveo apakšdomēns kodē galamērķa IP adresi (80.200.28.28) tieši resursdatora nosaukumā — atpazīstama konvencija šim pakalpojumam. Operators maina nejaušo apakšdomēna prefiksu starp versijām, lai apietu naivos domēnu bloķēšanas sarakstus, bet pamatā esošā IP adrese nekad nemainās.chalk-tempalte:1.0.14 lietots 8a3e818ea8f11186-80-200-28-28…1.0.16 / 1.0.19 / 1.0.20 lietošana; f04a273bd84c0622-….)
postinstall.js rokas prom no phantom.js, 7,667 rindu komplektēts “kolektora” modulis. phantom.js iet saimnieks pēc:
SSH privātās atslēgas (~/.ssh/*) |
.npmrc saturs un jebkurš npm_* vides žetoni |
| AWS, GCP un Azure akreditācijas datu faili |
GitHub personiskās piekļuves marķiera regulārā izteiksme (ghp_*, gho_*, ghu_*, ghs_*) |
| Kriptovalūtu maku artefakti Bitcoin, Exodus, Electrum, Monero, Litecoin, Dogecoin, Zcash, Dash valūtām |
Rekursīvs .env* iziet cauri ~/projects, ~/dev, ~/code, ~/workspaceun instalēšanas cwd |
Shell vēsture un pilns process.env |
Paka tiek nosūtīta uz Serveo tuneli pa pastu plkst. /savāktNav nekādas obfuskācijas, nav anti-VM loģikas, nav iestudējumu — operatora likme ir uz apjomu un ātrumu.
B fāze — PhantomBot DDoS vervēšana (2026-05-17, tikai axois-utils:1.0.9)
B fāze aizstāj phantom.js + postinstall.js ar vienu failu ar nosaukumu distrube.js (drukas kļūda ir operatora pieļauta). Trīskāršā āķa sastatne failā package.json paliek nemainīga; pakotne saglabā to pašu nosaukumu, darbības jomu un versiju sašaurināšanas modeli. No ārpuses axois-utils:1.0.9 izskatās kā neliels 1.0.6 turpinājums. Iekšpusē tā ir cita ļaunprogrammatūru saime.
distrube.js atveras ar konfigurācijas bloku, kas nosauc operatora paša zīmolu:
// axois-utils-1.0.9/distrube.js:11-15 |
// Use your localhost.run HTTPS URL (the tunnel handles HTTP internally) |
const C2_HOST = 'b94b6bcfa27554.lhr.life'; // Your localhost.run tunnel |
const C2_PORT = 443; // HTTPS port - tunnel handles SSL |
const BOT_ID = `${os.hostname()}_${Date.now()}_${crypto.randomBytes(4).toString('hex')}`; |
Komentāri ir adresēti nākotnes operatoram, kas darbinās komplektu (“Izmantojiet savu localhost.run HTTPS URL”). Tas, kā arī tas, kas tiek piegādāts blakus bota klientam, norāda, ka šis nav tikai upura vērtums — tas ir komplekts.
Plūsma:
- Neatlaidība Skripts tiek instalēts trīs dažādos veidos katrā operētājsistēmā (reģistra skrējiens + Startēšanas mape + uzdevumi operētājsistēmā Windows; crontab + fantomu robots.pakalpojums systemd vienība + .bashrc/.zshrc pievienot + /etc/rc.local uz Linux; LaunchAgent com.phantom.bot.plist macOS sistēmā). Gan saglabāšanas pakalpojuma nosaukums, gan LaunchAgent etiķete ir fantoma robots / com.phantom.bot, no kurienes arī radies kampaņas nosaukums.
- Sistēmas informācijas exfil darbojas vienreiz — vienreizējs pirkstu nospiedumu POST uz b94b6bcfa27554.lhr.life:443/collect, kas satur resursdatora nosaukumu, platformu, arhitektūras datus, lietotājvārdu, CPU/RAM, tīkla saskarnes, process.env, cwd, homedir, mezgla versiju un publisko IP adresi. Šī ir daudz mazāk agresīva nekā A fāze: nav SSH, nav maku, nav .env rekursijas. Bota uzdevums ir reģistrēties, nevis zagt.
- Sirdsdarbības cilpa ik pēc 30 sekundēm atver HTTPS POST ziņojumu uz b94b6bcfa27554.lhr.life:443/. Lietotāja aģents ir PhantomBot/1.0. TLS verifikācija ir nepārprotami atspējota (rejectUnauthorized: false). C2 atbilde tiek parsēta kā JSON formātā {type, target, port, duration, threads, method} un nosūtīta.
- Plūdu arsenāls ir savienots ar sešām komandām:
| Komandas veids | Moduļi | Piezīmes |
|---|---|---|
| ping | Dzīvības atbilde | Bots sevi identificē |
| http | HTTP plūds | 7. slāņa pieprasījumu plūdi |
| https | HTTPS plūdi | Tāpat kā http, tikai ar TLS protokolu |
| tcp | TCP plūds | 65 KB nejauši ielādēts surogātpasts |
| udp | UDP plūdi | 65 507 baitu UDP paketes |
| ātrs | HTTP/2 ātrās atiestatīšanas DoS | 2023. gada CVE-2023-44487 metode |
Visi pieci plūdu moduļi ņem a mērķis, osta, ilgums, un pavedieni arguments — robots ir vispārīgs algojams plūdinātājs, kas nav vērsts pret konkrētu upuri. Operatora upuru saraksts atrodas C2, nevis pakotnē.
Kas jauns šeit — piegādātais C2 binārais fails
A fāze ir pazīstama forma: akreditācijas datu zādzība, instalēšanas āķis, pārdevēja tunelēts C2. B fāze ir Arī pazīstama forma — DDoS botneti gadiem ilgi ir bijuši ļaunprātīgu npm pakotņu neatņemama sastāvdaļa. Neparasti ir tas, ka operators nosūtīja servera pusē komplekta npm tarballā:
- c2 — 4 megabaitu kompilēts Go ELF binārais fails
- c2.go — šī binārā faila 426 rindu Go avots
Neviens no failiem netiek izsaukts ar instalēšanas āķi. Tie nav daļa no upura vērtuma. Tie atrodas pakotnes direktorijā tāpat kā dokumentācijas fails. Visticamākais lasījums ir tāds, ka operators ir pārvietojis savu izstrādes darba koku uz npm, neveidojot failu sarakstu — īsta OpSec kļūda —, un tas, kas tika piegādāts, ir pilnīgs divpusējs komplekts: klients, kuru darbina upuris, un serveris, kuru darbina operators.
Šī ir tā stāsta daļa, kas attaisno apgalvojumu par “gatava botneta komplekta” esamību. Ikviens, kurš lejupielādēja axois-utils:1.0.9 pirms takedown nav tikai upura paraugs — viņiem ir darbojošs C2 serveris.
Pagrieziena punkts vienā teikumā
Tas pats izdevējs, tie paši pakotņu nosaukumi, tā pati trīskāršā āķa sistēma, tas pats “fantoma” zīmols — bet lietderīgā slodze mainīja monetizācijas modeli vienas nakts laikāno “iegūt noslēpumus, ko varu pārdot tālāk” līdz “nomāt pārslodzes jaudu, ko varu iznomāt”. Instalēšanas laika TTP, kurus aizstāvjiem vajadzētu vērot, abās fāzēs ir gandrīz identiski; uz parakstiem balstīta aizsardzība, kas piesaistīta A fāzes maka ceļa virknēm vai… phantom.js7,667 līniju savācējs būtu pilnībā palaidis garām B fāzi.
| Datums (UTC) | notikums |
|---|---|
| 2026-05-15 | Pirmā publikācija: axois-utils:1.0.4 (LAN testa izveide, izstrādes platforma plkst. 192.168.129.19) |
| 2026-05-15 | axois-utils:1.0.6 publicēts — A fāzes C2 nomainīts uz 80.200.28.28 caur Serveo tuneli; avota komentārs // Change to '80.200.28.28' for public apstiprina izstrādātāju un ražošanas apmaiņu |
| 2026-05-16 | chalk-tempalte:1.0.14 un 1.0.16 publicēts — ķēdes iekrāvēja deklarācija axois-utils:^1.0.7 kā izpildlaika atkarība; Serveo apakšdomēns pagriezts |
| 2026-05-16 | A fāzes kampaņa atklāta rutīnas NPM skenēšanas laikā; piemēroti apstiprināti ļaunprātīgas programmatūras spriedumi |
| 2026-05-17 | axois-utils:1.0.9 publicēts — lietderīgās slodzes pagrieziena punkts: PhantomBot DDoS vervēšana, izmantojot localhost.run tuneli; operatora pusē c2 binārais un c2.go avots, kas piegādāts tarballā |
| 2026-05-17 | chalk-tempalte:1.0.19 un 1.0.20 publicēts — joprojām A fāze (zaglis); operators tagad paralēli darbina abus moduļus |
| 2026-05-17 | B fāzes atklāšana rutīnas skenēšanas laikā; spriedumi piemēroti visiem 2026-05-17 versijas |
| (notiek) | Ziņojumi par noņemšanu vēl nav saņemti; visas četras publicētās pakotnes rakstīšanas laikā joprojām ir pieejamas reģistrā. |
Kompromisa rādītāji
Paketes
| Ekosistēma | Pakete | versijas |
|---|---|---|
| npm | axois-utils (typosquat no axios) | 1.0.4, 1.0.6, 1.0.9 |
| npm | chalk-tempalte (krīta veidnes typosquat) | 1.0.14, 1.0.16, 1.0.19, 1.0.20 |
Autora identitāte
| Lauks | Vērtība |
|---|---|
| npm izdevējs | deadcode09284814 |
| Izdevēja e-pasts | phantomdeadcode@tutamail.com |
| SCM pārbaude | neviens |
Komandēšana un kontrole
| Fāze | Beigu punkts | Piegāde |
|---|---|---|
| A | f04a273bd84c0622-80-200-28-28.serveousercontent.com:443/collect | Serveo HTTPS tunelis |
| A | 8a3e818ea8f11186-80-200-28-28.serveousercontent.com:443/collect | Serveo HTTPS tunelis (agrāka versija) |
| A | 80.200.28.28:443/collect | Pamatā esošais VPS galapunkts |
| B | b94b6bcfa27554.lhr.life:443/ | localhost.run HTTPS apgrieztais tunelis |
Failu īssavilkumi (SHA-256)
| fileja | SHA-256 | Piezīmes |
|---|---|---|
c2 (Dodieties uz ELF, 4 MB) | 165fa92d237fd017c227d00da06ab788212a62be94bf61e95df2d22d00377ef2 | Operatora puses C2 serveris, piegādāts iekšpusē axois-utils:1.0.9 |
c2.go (426 rindas) | 7d0ae79fdb1e9968f3323a3712b624643a782ba3efb2cf3a2cb9c4c5513cea30 | Iet uz C2 binārā faila avotu |
distrube.js | 308b15c023088a7188dea4ef609010ac2493eb4c365b103053d7621a9ca5b935 | B fāzes robotprogrammatūras klients |
phantom.js (chalk-tempalte:1.0.19) | 9e380ec88d3ccf3929e1a104e3b868d4d7b59ca189a8a431a54e9f3357dfdd81 | A fāzes akreditācijas/maciņa savācējs |
phantom.js (chalk-tempalte:1.0.20) | d1c9e3f296ee9f7d5032f73f9c504cede50334bc14c394055fd5cb9c3a6e08b3 | A fāzes kolektors (1.0.20 variants) |
postinstall.js (chalk-tempalte:1.0.19 = 1.0.20) | ffba9bdd6793edd5b38e12900252c1813a693f59c25af51c3b658cf3f27b6162 | A fāzes ielādētājs, baiti identiski abās versijās |
Atribūcija un motivācija
Mēs izsekojam šo kampaņu kā PhantomBot, pārņemot operatora paša zīmolu no Lietotāja aģents: PhantomBot/1.0 sirdsdarbības galvene fantomu robots.pakalpojums systemd vienība com.phantom.bot LaunchAgent etiķete un phantomdeadcode@ e-pasta adreses nosaukums. Operators ir konsekvents attiecībā uz šo nosaukumu vismaz četros artefaktos.
Signālu katalogs
- izdevējs Sākot no mirušais kods09284814 npm. Vienas personas konts, vienreiz lietojams Tutamail e-pasts, nē SCM verifikācija. Nav iepriekšējas publikāciju vēstures ārpus šīs kampaņas.
- Zīmola atkārtota izmantošana — izdevēja e-pastā, A fāzes kolekcionāra faila nosaukumā parādās vārds “phantom” (phantom.js), B fāzes noturības pakalpojuma nosaukumā (fantomu robots.pakalpojums), LaunchAgent etiķetē (com.phantom.bot) un robotprogrammatūras lietotāja aģentā (FantomsBots/1.0).
- Infrastruktūras — Viens VPS vietnē 80.200.28.28 frontē A fāzi, izmantojot Serveo apakšdomēna rotāciju; B fāze pārvietojas uz a localhost.run apgrieztais tunelis (b94b6bcfa27554.lhr.life). Abi pārdevēju pakalpojumi ir bez maksas un operatora pusē ir nepieciešams tikai izejošais SSH savienojums, kas atbilst mazbudžeta un zemas OpSec iestatījumiem.
- Koda stils — Vienkāršs JavaScript viscaur; bez obfuskācijas, bez virkņu kodēšanas, bez anti-VM pārbaudēm. Mainīgo nosaukumi ir aprakstoši (zagtSystemInfo, izpildes komanda, httpFlood). Komentāri sadaļā distrube.js tieši uzrunāt nākotnes operatoru (“Izmantojiet savu localhost.run HTTPS URL”), norādot, ka fails bija paredzēts tālākizplatīšanai kā komplektam, nevis viena uzbrucēja vajadzībām.
- Operatīvās drošības kvīts — B fāzes tarball satur gan bota klientu, gan operatora puses C2 serveri (c2 ELF + c2.go avots). Tas atbilst operatoram, kurš savu darba koku nosūtīja uz npm, neauditējot failu sarakstu. Vai nu operatoram nav pieredzes, vai komplekts ir nozīmēja tiks publiski izplatīts, un C2 binārais fails ir produkta sastāvdaļa.
- Pašapliecināšanās Sākot no axois-utils:1.0.4 satur avota komentāru // Mainīt uz '80.200.28.28' publiskai lietošanai 12. rindā, apstiprinot izstrādes/iestādīšanas/ražošanas progresu, ko operatori parasti noliedz.
Motivācija
A fāzes lietderīgā slodze ir vienkārša finansiāla zādzība: akreditācijas datiem, mākoņa atslēgām, GitHub žetoniem un kriptovalūtu makiem visiem ir likvīdi tālākpārdošanas tirgi. B fāze arī ir finansiāla, bet netieša: DDoS pakalpojumi nomā (“booter”) īrē neierobežotu jaudu par katru minūti, un tādi roboti kā šeit piegādātais ir inventārs, ko šie pakalpojumi izmanto. 30 sekunžu sirdsdarbība, vispārīgais mērķis/osta/ilgums komandu shēma un piecu protokolu plūdu arsenāls ir standard laupītāja operatora produkts.
Abu moduļu paralēla palaišana — chalk-tempalte:1.0.19 un 1.0.20 turpiniet sūtīt zagli, kamēr axois-utils:1.0.9 nosūta robotprogrammatūru — liek domāt, ka operators ierobežo ieņēmumu plūsmas, nevis atsakās no A fāzes. Pagrieziena punkts ir papildinājums, nevis aizstājējs.
Ko mēs neapgalvojam
Mums nav izdevies apstiprināt reālās pasaules identitāti aiz tā. mirušais kods09284814 rokturi, un mēs šo kampaņu nepiedēvējam nevienam nosauktam apdraudējuma spēlētājam, grupai vai valstij. “Fantoma” zīmols ir pietiekami konsekvents visos artefaktos, lai liecinātu par vienu operatoru, taču C2 binārā faila piegāde komplekta stilā atstāj iespēju, ka nākotnē nesaistītu rokturi atkārtoti izmantos to pašu kodu.
Ietekme, tendences un kas aizstāvjiem būtu jādara
Ietekme
Likumīgie pietupienu mērķi axios un krīta veidne ir plaši atkarīgi JavaScript ekosistēmā; axios viens pats atrodas starp trīsdesmit visvairāk lejupielādētajām npm pakotnēm. Typosquat nosaukumi ir viena taustiņa nospiediena attālumā no īstajiem (aksois ↔ axios, šablons ↔ veidne), un abas ir lingvistiski ticamas pareizrakstības kļūdas.
Pirms pakotnes noņemšanas mums neizdevās iegūt uzticamu lejupielāžu statistiku par ļaunprātīgajām versijām — npm nesaglabā lejupielāžu skaitu katrā versijā pēc pakotnes publicēšanas atcelšanas, un npms.io-stila starpniekserveri šādā mērogā ir trokšņaini. Jebkura organizācija, kuras bloķēšanas fails ir saistīts ar pakotni ar nosaukumu axois-utils or krīta šablons no izdevēja mirušais kods09284814 jāuzskata par apdraudētu: jāmaina visi esošie akreditācijas dati process.env skartajā resursdatorā veiciet noturības vektoru auditu katrā operētājsistēmā (skatiet tālāk sadaļu “Kas aizsargiem jādara”) un noņemiet atkarību.
Jauni modeļi
Šī kampaņa ir piemērs pārmaiņām, ko esam novērojuši vairākos nesenos NPM incidentos: Uzstādīšanas āķa sastatnes ir izturīgs aktīvs; lietderīgā slodze ir maināmaTas pats izdevējs, tas pats iepakojums, tas pats iepriekšinstalēt / uzstādīt / pēc instalēšanas trīskāršs, un pat tā pati versijas izciļņa kadence — vienīgā lieta, kas mainījās starp axois-utils:1.0.6 un axois-utils:1.0.9 vai fails bija hooks palaist. Uz parakstu balstīta noteikšana, kas piesaistīta A fāzes lietderīgajai slodzei (maciņa ceļa virknes, phantom.js7,667 rindu savācējs, Serveo C2 resursdators), būtu atzīmējis pirmās trīs versijas un pilnībā izlaidis B fāzi.
Tā pati tendence ir redzama arī citās 2026. gada kampaņās, kuras esam izsekojuši: viens operators ar stabilu platformu, kas mainās starp akreditācijas datu zādzību, eksāmenu krāpnieciskiem klientiem, Telegram-bot exfil un tagad arī DDoS vervēšanu. Aizsargi, kas paļaujas uz vērtuma datu parakstiem, turpinās zaudēt katras kampaņas otrajā kārtā.
Secinājums ir tāds, ka Instalēšanas laika TTP ir labāks signālsTrīskāršas instalēšanas āķa deklarācijas, instalēšanas skripti, kas importē https or bērna_process, instalējiet skriptus, kas raksta lietotāja startēšanas mapēs, un instalējiet skriptus, kas atrisina resursdatora nosaukumus bezmaksas apgrieztā tuneļa pakalpojumos (Serveo, localhost.run, ngrok, cloudflared) visi ir reti sastopami likumīgās pakotnēs un bieži sastopami ļaunprātīgās pakotnēs.
Kas aizstāvjiem būtu jādara
- Bloķēšanas faila audits. Meklēt katru pack-lock.json / dzijas.slēdzene / pnpm-lock.yaml jūsu organizācijā, lai iegūtu precīzas virknes axois-utils un krīta šablonsUztveriet jebkuru maču kā kompromisu.
- Rotēt noslēpumus uz skartajiem saimniekiem. A fāzē masveidā apkopoti SSH, mākoņa, GitHub, npm un maka akreditācijas dati. Pieņemsim, ka visi akreditācijas dati jebkad ir bijuši process.env, ~ / .ssh, ~/.aws, ~/.npmrc, ~ / .konfigvai jebkuru citu .env* fails skartajā resursdatorā ir atklāts.
- Novērst noturību (B fāze). Operētājsistēmā Windows dzēst HKCU\Software\Microsoft\Windows\CurrentVersion\Run\SystemUpdate, noņemiet %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\system-update.bat, un schtasks /delete /tn SystemUpdate /fOperētājsistēmā Linux crontab -e un noņemiet @reboot mezgls…, systemctl –lietotāja atspējošana –tagad phantom-bot.service pēc tam izdzēsiet ~/.config/systemd/user/phantom-bot.service, skrubis .bashrc / .zshrc / /etc/rc.localOperētājsistēmā macOS launchctl izlādēt ~/Library/LaunchAgents/com.phantom.bot.plist pēc tam izdzēsiet sarakstu.
- Bloķēt C2 resursdatorus. Pievienojiet izejošās plūsmas bloķēšanas sarakstam četrus C2 galapunktus no IOC tabulas. *.serveousercontent.com un *.lhr.life var tikt bloķēts vairumā, ja jūsu videi nav likumīga pielietojuma reversā tuneļa pakalpojumiem.
- Medības pēc instalēšanas laika TTP, nevis lietderīgā slodze. Inventāra bloķēšanas faila ieraksti, kuru pack.json deklarē iepriekšinstalēt, uzstādīt, un pēc instalēšanas visi norāda uz vienu un to pašu skriptu. Salīdziniet pakotnes vecumu un izdevēja verifikācijas statusu. Šis modelis ir reti sastopams likumīgās pakotnēs un ir visuzticamākais signāls, ko PhantomBot atkārtoti izmanto.
- C2 binārā faila audits. Ikviens, kurš lejupielādēja axois-utils:1.0.9 ir operatora C2 serveris (c2 ELF, sha256 165fa92d…) diskā. Skenējiet kešatmiņas un CI artefaktu krātuves. Binārais fails pats par sevi ir neaktīvs, taču tā klātbūtne darbstacijā ir nepārprotams pierādījums tam, ka pakotne tika instalēta.
Noslēguma līnija
Viens un tas pats operators, viena un tā pati pakotne un viens un tas pats instalēšanas āķis 48 stundu laikā var piegādāt pilnīgi atšķirīgus draudus. Pievērsiet uzmanību platformai, nevis vērtajam saturam.




