ប័ណ្ណអនុញ្ញាត៖ កញ្ចប់ npm លាក់ការគំរាមកំហែងលើពពក និងប្រព័ន្ធ

ការអនុញ្ញាត៖ រឿងរ៉ាវគម្រប "ការស្រាវជ្រាវដែលមានការអនុញ្ញាត" របស់ npm ដែលលាក់ការស៊ើបអង្កេតទិន្នន័យមេតាលើពពក និងភាពស្ថិតស្ថេររបស់ប្រព័ន្ធ

​មាតិកា

ប្រកាសដែលត្រូវតែអាន

ប្រកាសថ្មីៗបំផុតដែលគួរឱ្យចាប់អារម្មណ៍

TL; កុង

ចន្លោះពីថ្ងៃទី 15 ខែមិថុនា ឆ្នាំ 2026 ដល់ថ្ងៃទី 16 ខែមិថុនា ឆ្នាំ 2026 អ្នកបោះពុម្ពផ្សាយ npm តែមួយបានជំរុញ កញ្ចប់ចំនួនប្រាំមួយ — កំណែចំនួន ២៦ សរុប — ដែលដំណើរការស្គ្រីបពេលដំឡើងនៅលើរាល់ npm installកញ្ចប់នីមួយៗបញ្ជូន README ដែលប្រកាសថាវាជាវត្ថុបុរាណស្រាវជ្រាវ HackerOne / GitHub Bug Bounty "មិនបង្កគ្រោះថ្នាក់" ដែល "មិនដែល" ប៉ះតម្លៃព័ត៌មានសម្គាល់ និង "មិនអនុវត្តការបន្ត"។ លេខកូដមិនត្រូវគ្នានឹងការបដិសេធទេ។ នៅលើប្រព័ន្ធប្រតិបត្តិការ Linux CI ទំពក់ដំឡើងនឹងសម្គាល់បរិស្ថាន ហើយស៊ើបអង្កេតចំណុចបញ្ចប់ទិន្នន័យមេតាលើពពក។ នៅលើ Windows វាស្នើសុំការលើកកំពស់ ដំណើរការជា SYSTEMហើយបើកឆានែលពាក្យបញ្ជាទៅកាន់ម៉ាស៊ីនខាងក្រៅ។ សូចនាករមួយដែលត្រូវស្វែងរកឥឡូវនេះគឺម៉ាស៊ីន C2 173.255.233[.]239ភាពធ្ងន់ធ្ងរ៖ ខ្ពស់ប្រព័ន្ធអេកូឡូស៊ីដែលរងផលប៉ះពាល់៖ ម៉ោងងងឈ្មោះ​លាយ​បញ្ចូល​គ្នា​ទៅ​នឹង​សំឡេង​រំខាន​នៃ​ការ​ពឹងផ្អែក​លើ​ការ​ធ្វើ​សមាហរណកម្ម​ជា​បន្តបន្ទាប់ (metrics-pipeline-d8k2, event-metrics-q3x7, pkg-telemetry-r4f9និងបងប្អូនបីនាក់)។

ការវាយប្រហារ៖ របៀបដែលវាដំណើរការ

កញ្ចប់នីមួយៗនៅក្នុងចង្កោមត្រូវបានបង្កើតឡើងតាមរបៀបដូចគ្នា។ កញ្ចប់ ភ្ជាប់ពាក្យបញ្ជាដូចគ្នាទៅជាវដ្តជីវិតពីរ hooks:

{   "scripts": {     "preinstall": "node run.js",     "postinstall": "node run.js"   } }

កំពុងដំណើរការលើទាំងពីរ ដំឡើងមុន និងក្រោយដំឡើង មានន័យថា payload នឹងដំណើរការ មិនថាជំហានដំឡើងនៅពេលក្រោយបរាជ័យឬអត់នោះទេ។ run.js ខ្លួនវាគឺជាកម្មវិធីបញ្ជូនវេទិកាដប់ជួរ៖

// Platform dispatcher — runs beaconNN.js on Windows, beacon_linux.js on Linux. // GitHub Bug Bounty authorized research. Contact: nicholas@curran.tech 'use strict'; const { execFileSync } = require('child_process'); const path = require('path'); const node = process.execPath; const script = process.platform === 'win32'   ? path.join(__dirname, 'beacon34.js')   : path.join(__dirname, 'beacon_linux.js'); try { execFileSync(node, [script], { stdio: 'inherit', timeout: 90000 }); } catch (e) {}

បន្ទាប់មក ឥរិយាបថនេះបែងចែកតាមប្រព័ន្ធប្រតិបត្តិការ។ កញ្ចប់ទាំងប្រាំមួយមានពីរផ្នែកដូចគ្នា — run.js និង​ឧបករណ៍​បញ្ជូន​សញ្ញា​វេទិកា — ដូច្នេះ​ពួកវា​ជា​ឧបករណ៍​ទម្លាក់​ទិន្នន័យ​ដែល​អាច​ផ្លាស់ប្ដូរ​គ្នា​បាន ជាជាង​ឧបករណ៍​ប្រាំមួយ​ផ្សេងគ្នា។ ភាពខុសគ្នា​ដ៏មាន​អត្ថន័យ​តែមួយគត់​រវាង​ពួកវា​គឺ​ចង្វាក់​បោះពុម្ពផ្សាយ៖ ឈ្មោះ​ចំនួនបួន​ត្រូវបាន​ដឹកជញ្ជូន​ម្តង ខណៈពេលដែល​ឈ្មោះ​ពីរ​ត្រូវបាន​ចេញផ្សាយ​ឡើងវិញ​រៀងរាល់ 30-60 នាទី​រយៈពេល​ជាច្រើន​ម៉ោង ដែល​រក្សា​កំណែ​ដែល​ទើប​បោះពុម្ពផ្សាយ​ថ្មីៗ​នៅពីមុខ​កម្មវិធីដំឡើង និង​កម្មវិធី​ដោះស្រាយ ទោះបីជា​កំណែ​ចាស់ៗ​ត្រូវបាន​ទាញ​ចេញ​ក៏ដោយ។

នៅលើលីនុច (beacon_linux.js) ទម្រង់ស្គ្រីបដែលវាកំពុងដំណើរការ។ វារាយឈ្មោះអថេរបរិស្ថាន អានឯកសារនៅក្រោម / proc, ត្រួតពិនិត្យសម្រាប់ docker.sock, ហើយរត់ ឈ្មោះម៉ាស៊ីន និង តើ​ខ្ញុំ​ជា​អ្នកណាបន្ទាប់មកវាចេញសំណើ HTTP ទៅកាន់ចំណុចបញ្ចប់ instance-metadata របស់កុងតឺន័រ AWS ១១៥.១៤៤.៦៩[.]១០៨ — អាសយដ្ឋាន link-local ដែលភារកិច្ច ECS សាកសួរដើម្បីទទួលបានការកំណត់រចនាសម្ព័ន្ធផ្ទាល់ខ្លួន និងលិខិតសម្គាល់តួនាទីរយៈពេលខ្លី (IMDS សេវាកម្មទិន្នន័យមេតាឧទាហរណ៍)។ លទ្ធផលត្រូវបាន POST ទៅកាន់អ្នកប្រមូលយុទ្ធនាការនៅ ១១៥.១៤៤.៦៩[.]១០៨.

នៅលើវីនដូ (beacon34.js / beacon18.js) កញ្ចប់នេះធ្វើច្រើនជាងការកំណត់ទម្រង់ម៉ាស៊ីនរបស់វា។ កូដដែលបានដាក់ទង់បន្ថែមសោចុះបញ្ជីនៅក្រោម ការកំណត់ ms អ្នកដោះស្រាយជាមួយ ប្រតិបត្តិ​ដោយ​អ្នក​ទទួល​បន្ទុក តម្លៃ — ការគ្រប់គ្រងគណនីអ្នកប្រើប្រាស់ដែលគេស្គាល់ ដែលអនុញ្ញាតឱ្យដំណើរការដែលបានដាក់ឱ្យដំណើរការដោយមិនចាំបាច់មានប្រអប់បញ្ចូល។ វាហៅ PowerShell ជាមួយ -EpretPolicy Bypass និង ហៅ-ការបញ្ចេញមតិ, ប្រតិបត្តិនៅក្នុង NT AUTHORITY\SYSTEM បរិបទ ហើយស្ទង់មតិម៉ាស៊ីនខាងក្រៅសម្រាប់ពាក្យបញ្ជា។ ឆានែលពាក្យបញ្ជា Windows ដំណើរការលើ ផ្លូវរូងក្រោមដី Cloudflare, អង្កត់ផ្ចិត-កាក់-ដែនកំណត់-parents.trycloudflare[.]com:443, ធ្លាក់ចុះមកវិញ 173.255.233[.]239:443ដោយប្រើចំណុចបញ្ចប់បី៖ /c2/ការស្ទង់មតិ ដើម្បីទាញយកពាក្យបញ្ជា /c2/ចេញ ដើម្បីត្រឡប់ទិន្នផល /c2/eof បិទ។

អ្វីដែលថ្មីនៅទីនេះ៖ ការបដិសេធថាជាការក្លែងបន្លំ

ធាតុថ្មីមិនមែនជាបន្ទុកផ្ទុកទិន្នន័យទេ — ការឈ្លបយកការណ៍ install-hook និងការដំឡើង Windows elevation សុទ្ធតែត្រូវបានចងក្រងជាឯកសារយ៉ាងល្អ។ វាគឺជារឿងរ៉ាវគម្រប។ កញ្ចប់នីមួយៗមាន README ដែលអានជាវត្ថុបុរាណដែលមានការទទួលខុសត្រូវ៖

# @ncurran/sandbox-recon-880538 — authorized npm-sandbox security research

នេះ​គឺជា ធន់ កញ្ចប់​ដែល​បាន​បោះពុម្ពផ្សាយ​ក្រោម​វិសាលភាព `@ncurran` របស់​អ្នកនិពន្ធ​ផ្ទាល់​ជា​ផ្នែក​មួយ​នៃ ការចូលរួម​ផ្តល់​រង្វាន់​កំហុស HackerOne / GitHub ដែល​មាន​ការអនុញ្ញាត (npm ស្ថិត​ក្នុង​វិសាលភាព)។

ពេលដំឡើងវាពិនិត្យ បរិស្ថានប្រតិបត្តិរបស់វា … អថេរបរិស្ថាន

ឈ្មោះសំខាន់ៗតែប៉ុណ្ណោះ ... ពិនិត្យមើលថាតើគេស្គាល់ច្បាស់ឬអត់ ចំណុចបញ្ចប់ទិន្នន័យមេតាលើពពក មាន អាចទៅដល់បាន ... វារាយការណ៍តែលេខកូដស្ថានភាព រយៈពេលឆ្លើយតប និង ហាស — មិនដែល លិខិតសម្គាល់ តម្លៃសញ្ញាសម្ងាត់ ឬទិន្នន័យភាគីទីបីណាមួយ។ វាមិនអនុវត្ត ការតស៊ូ គ្មានចលនាចំហៀង និងគ្មានសកម្មភាពបំផ្លិចបំផ្លាញ។

ការអះអាងចំនួនបីនៅក្នុងអត្ថបទនោះត្រូវបានជំទាស់ដោយកូដដែលបានដឹកជញ្ជូន។ README និយាយថា "គ្មានការបន្ត" ប៉ុន្តែ Windows beacon សរសេរកូនសោរ elevation ដែលមានមូលដ្ឋានលើ registry។ វានិយាយថា "មិនដែលមាន credential ឬតម្លៃ token ណាមួយឡើយ" ប៉ុន្តែផ្លូវ Windows ដំណើរការពាក្យបញ្ជាដែលទាញយកដោយបំពានដូចជា ប្រព័ន្ធដែលមិនដាក់ដែនកំណត់បែបនេះលើអ្វីដែលត្រូវបានអាន ឬត្រឡប់មកវិញ។ វាថែមទាំងដាក់ឈ្មោះកញ្ចប់មួយទៀតផង — @ncurran/sandbox-recon-880538 — នោះមិនមែនជាឯកសារដែលវាដឹកជញ្ជូននោះទេ ដែលបង្ហាញថា README គឺជាគំរូដែលបានប្រើឡើងវិញ ជាជាងការពិពណ៌នាអំពីវត្ថុបុរាណនៅក្នុងដៃ។ ការបដិសេធការយល់ព្រមនៅក្នុងកញ្ចប់ដែលជនរងគ្រោះមិនដែលយល់ព្រមដំឡើងមិនផ្តល់ការយល់ព្រមទេ។ ការចាត់ថ្នាក់នៅទីនេះគឺព្យាបាទដោយមិនគិតពីពាក្យពេចន៍នោះទេ។ ការបដិសេធក៏មានគោលដៅស្ងាត់ជាងផងដែរ៖ ជំហានជ្រើសរើសដោយស្វ័យប្រវត្តិដែលអានអត្ថបទកញ្ចប់សម្រាប់សញ្ញាធានា - "ស្លូតបូត" "អនុញ្ញាត" កម្មវិធីដែលមានឈ្មោះ អ៊ីមែលទំនាក់ទំនង - អាចត្រូវបានជំរុញទៅរកការសម្រេចដែលមានសុវត្ថិភាពដោយសំណេរដែលបន្ទុកផ្ទុយ។ មេរៀននេះមានសម្រាប់អ្នកពិនិត្យមនុស្ស និងម៉ាស៊ីនដូចគ្នា៖ ថ្លឹងថ្លែងឥរិយាបថពេលវេលាដំឡើង មិនមែនការពិពណ៌នាដោយខ្លួនឯងរបស់ README ទេ។

ការកំណត់ពេលវេលា

កញ្ចប់ទាំងអស់បានលេចឡើងក្នុងរយៈពេល 24 ម៉ោង។ ឈ្មោះកំណែតែមួយទាំងបួនបានលេចចេញមុនគេ បន្ទាប់មកកញ្ចប់ពីរដែលត្រូវបានបោះពុម្ពផ្សាយឡើងវិញរៀងរាល់ 30-60 នាទីម្តង។

កាលបរិច្ឆេទ (UTC) ព្រឹត្តការណ៍
2026-06-15 18:32 កញ្ចប់ដំបូងដែលបានបោះពុម្ពផ្សាយ — npm:pkg-telemetry-r4f9@1.0.0
2026-06-15 19:50 npm:runtime-metrics-w7k2@1.0.0 បោះពុម្ភ
2026-06-15 20:14 npm:build-tracker-n5p1@1.0.0 បោះពុម្ភ
2026-06-15 20:35 npm:npm-sandbox-ping-r9t2@1.0.0 បោះពុម្ភ
2026-06-15 21:09–22:42 npm:event-metrics-q3x7 បោះពុម្ភ 1.0.0 → 1.0.8 (១១ កំណែ)
2026-06-15 23:40 → 2026-06-16 04:40 npm:metrics-pipeline-d8k2 បោះពុម្ភ 1.0.0 → 1.0.10 (១១ កំណែ)
2026-06-16 ចង្កោម​ត្រូវ​បាន​កំណត់​អត្តសញ្ញាណ និង​ចាត់​ថ្នាក់​ជា​មេរោគ​ព្យាបាទ; tarballs ជាច្រើន​កំពុង​ត្រឡប់​មក​វិញ 404 នៅ​ក្នុង​បញ្ជី​ឈ្មោះ​រួចហើយ (កំពុង​ដំណើរការ)

យុទ្ធនាការនេះទើបតែកើតឡើងថ្មីៗនេះ ហើយការដកចេញនៅតែមិនទាន់ដោះស្រាយនៅឡើយទេ៖ នៅពេលវិភាគ កំណែខ្លះត្រូវបានដោះស្រាយនៅក្នុងបញ្ជីឈ្មោះ ហើយកំណែខ្លះទៀតមិនទាន់ដោះស្រាយនៅឡើយទេ។ ចាត់ទុកកំណែទាំង 26 ថាមានការគំរាមកំហែង។

សូចនាករនៃការសម្របសម្រួល

កញ្ចប់

ប្រព័ន្ធអេកូ កញ្ចប់សមាជិក កំណែ ស្ថានភាព
ម៉ោងងង metrics-pipeline-d8k2 1.0.0 – 1.0.10 ព្យាបាទ
ម៉ោងងង event-metrics-q3x7 1.0.0 – 1.0.8 ព្យាបាទ
ម៉ោងងង runtime-metrics-w7k2 1.0.0 ព្យាបាទ
ម៉ោងងង build-tracker-n5p1 1.0.0 ព្យាបាទ
ម៉ោងងង npm-sandbox-ping-r9t2 1.0.0 ព្យាបាទ
ម៉ោងងង pkg-telemetry-r4f9 1.0.0 ព្យាបាទ

Network

វាយបញ្ចូល ទ្រនិចបង្ហាញ ភក្ដិកំណត់ត្រាកំណត់
IP 173.255.233[.]239 ឧបករណ៍ប្រមូល C2; POST ពិនិត្យឡើងវិញរបស់ Linux និង fallback របស់ Windows: 443
Domain diameter-coins-limitations-parents.trycloudflare[.]com ឆានែលពាក្យបញ្ជា Windows លើផ្លូវរូងក្រោមដី Cloudflare, :443
ផ្លូវ URI /c2/poll, /c2/out, /c2/eof ពាក្យបញ្ជា Windows poll / output / close
IP 169.254.170[.]2 ចំណុចបញ្ចប់ទិន្នន័យមេតារបស់ AWS ECS ត្រូវបានស៊ើបអង្កេតពីទំពក់ដំឡើង

ឥរិយាបថ

សញ្ញា ការពិពណ៌នា
ដំឡើង hooks preinstall និង postinstall រត់ទាំងពីរ node run.js
ការបញ្ជូនវេទិកា run.js ការរត់ beacon_linux.js នៅលើលីនុច beacon34.js / beacon18.js នៅលើវីនដូ
ការ​ពិនិត្យ​ឡើងវិញ​របស់ Linux រាប់ឈ្មោះសោ env-var និងការអាន /proc, ពិនិត្យ docker.sock, រត់ hostname / whoami, ស៊ើបអង្កេត IMDS
កម្ពស់បង្អួច ms-settings DelegateExecute រំលងការចុះឈ្មោះ UAC; PowerShell -ExecutionPolicy Bypass + Invoke-Expression; ដំណើរការជា SYSTEM
បន្លំខ្លួន README អះអាងថាការស្រាវជ្រាវ "ស្លូតបូត" "មានការអនុញ្ញាត" និង "គ្មានការបន្ត"; យោងទៅលើឈ្មោះកញ្ចប់ដែលវាមិនដឹកជញ្ជូនមក

ការសន្មត់ និងឥរិយាបថដែលសង្កេតឃើញ

យើងពិពណ៌នាអំពីអ្នកបោះពុម្ពផ្សាយតាមរយៈសញ្ញារបស់វាតែប៉ុណ្ណោះ ហើយមិនអះអាងអត្តសញ្ញាណរបស់បុគ្គលណាម្នាក់នៅពីក្រោយគណនីនោះទេ។

  • កាតាឡុកសញ្ញា។ កញ្ចប់ទាំងប្រាំមួយត្រូវបានបោះពុម្ពផ្សាយដោយគណនី npm ដូចគ្នា។ npmresearch8847ជាមួយអ៊ីមែលដែលបានបញ្ជាក់ npmresearch8847@web-library.net (អ៊ីមែល និង SCM ការផ្ទៀងផ្ទាត់ទាំងពីរអវត្តមាន; យើងមិនទាន់បានផ្ទៀងផ្ទាត់ភាពជាម្ចាស់នៅឡើយទេ)។ READMEs បោះពុម្ពផ្សាយក្រោម @ncurran វិសាលភាព និងផ្តល់ទំនាក់ទំនង nicholas@curran.techនិង run.js ចំណុចនៅក្នុងឃ្លាំង github.com/ncurran/npm-sandbox-research`។ កញ្ចប់ទាំងប្រាំមួយមានមុខងារដូចគ្នាបេះបិទ run.js អ្នកបញ្ជូន, ទូទៅ beacon_linux.js ដំណាក់កាល​ស៊ើបការណ៍​សម្ងាត់ និង​ម៉ាស៊ីន​ប្រមូល​តែមួយ 173.255.233[.]239`។ គ្រោងការណ៍ដាក់ឈ្មោះគឺស្របគ្នា៖ ដើមដែលស្តាប់ទៅដូចជា CI ទូទៅ (ម៉ែត្រ, តេឡេម, កម្មវិធីតាមដានការសាងសង់, ការ​ដាក់​កុងតាក់​ខ្សាច់) បូករួមទាំងបច្ច័យចៃដន្យខ្លីមួយ។
  • ទំនុកចិត្ត។ កញ្ចប់ទាំងប្រាំមួយហាក់ដូចជាយុទ្ធនាការមួយដោយផ្អែកលើចំណុចខ្លាំងនៃឧបករណ៍ចែកចាយដែលបានចែករំលែក ដំណាក់កាលស៊ើបការណ៍សម្ងាត់ និងម៉ាស៊ីន C2។ ក្របខ័ណ្ឌ "ការស្រាវជ្រាវដែលមានការអនុញ្ញាត" ហាក់ដូចជាស្របគ្នានៅទូទាំង README ទាំងប្រាំមួយ។ យើងមិនទាន់អាចបញ្ជាក់បានថាកម្មវិធីផ្តល់រង្វាន់កំហុសណាមួយបានអនុញ្ញាតសកម្មភាពនេះទេ ហើយការអះអាងរបស់អ្នកបដិសេធមិនត្រូវគ្នានឹងលេខកូដដែលបានដឹកជញ្ជូននោះទេ។
  • សមត្ថភាពដែលសង្កេតឃើញ។ ឧបករណ៍ផ្ទុកបន្ទុកcises ថ្នាក់សមត្ថភាពចំនួនបួន៖ ការប្រតិបត្តិកូដ install-hook លើទាំងពីរ ដំឡើងជាមុន និង ក្រោយការដំឡើង; ការឈ្លបយកការណ៍របស់ម៉ាស៊ីន និងបរិស្ថាន CI ជាមួយនឹងច្រកចេញទៅអ្នកប្រមូលខាងក្រៅ; ការស៊ើបអង្កេតលទ្ធភាពទៅដល់ទិន្នន័យមេតានៃឧទាហរណ៍ពពកពីបរិបទដំឡើង; និង នៅលើ Windows ការកើនឡើងសិទ្ធិក្នុងស្រុក ការប្រតិបត្តិជា ប្រព័ន្ធនិងរង្វិលជុំពាក្យបញ្ជា fetch-and-run លើឆានែលខាងក្រៅ។ រង្វិលជុំពាក្យបញ្ជា Windows គឺជាសមត្ថភាពបញ្ជាពីចម្ងាយ៖ វាស្ទង់មតិសម្រាប់ការណែនាំ ហើយត្រឡប់ទិន្នផលរបស់វា។

ផលប៉ះពាល់ និន្នាការ និងអ្វីដែលអ្នកការពារគួរធ្វើ

ផលប៉ះពាល់

ការប៉ះពាល់គឺខ្ពស់បំផុតសម្រាប់បរិស្ថានសាងសង់ដោយស្វ័យប្រវត្តិ។ ការដំឡើង npm នៅក្នុង CI ដំណើរការវដ្តជីវិត។ hooks ជាមួយនឹងអត្តសញ្ញាណណាមួយដែលអ្នករត់មាន; នៅលើ cloud runner អត្តសញ្ញាណនោះច្រើនតែរួមបញ្ចូលចំណុចបញ្ចប់ metadata ដែលអាចទៅដល់បាន និងលិខិតសម្គាល់តួនាទី។ អាសយដ្ឋានដែល Linux beacon ស៊ើបអង្កេត ១១៥.១៤៤.៦៩[.]១០៨, គឺជាចំណុចបញ្ចប់ទិន្នន័យមេតាភារកិច្ច AWS ECS៖ ភារកិច្ចដែលអាចទៅដល់វាជាធម្មតាក៏អាចទាញយកព័ត៌មានបញ្ជាក់អត្តសញ្ញាណបណ្ដោះអាសន្ននៃតួនាទីភារកិច្ចរបស់វាពីសេវាកម្មតំណភ្ជាប់ក្នុងស្រុកដូចគ្នា។ ការត្រួតពិនិត្យលទ្ធភាពទៅដល់ពីខាងក្នុងស្គ្រីបដំឡើងគឺជាជំហានដែលនាំមុខការទាញយកព័ត៌មានបញ្ជាក់អត្តសញ្ញាណទាំងនោះ ដូច្នេះអ្នករត់ណាមួយដែលបានដំណើរការ hook ហើយអាចទៅដល់ចំណុចបញ្ចប់នោះគួរតែត្រូវបានចាត់ទុកថាបានលាតត្រដាងតួនាទីភារកិច្ចរបស់វា។ នៅលើអ្នកអភិវឌ្ឍន៍ Windows ឬម៉ាស៊ីនបង្កើត payload ស្នើសុំការលើកកម្ពស់ និងបើកឆានែលពាក្យបញ្ជា ដែលពង្រីកការលាតត្រដាងពីទម្រង់ និងច្រកចេញតែមួយទៅការបញ្ជាពីចម្ងាយអន្តរកម្ម។

យើងមិនអាចទទួលបានចំនួនទាញយកដែលអាចទុកចិត្តបានសម្រាប់កំណែព្យាបាទមុនពេលដកចេញទេ ដូច្នេះយើងមិនប៉ាន់ស្មានចំនួនជនរងគ្រោះទេ។ ការបោះពុម្ពផ្សាយឡើងវិញយ៉ាងឆាប់រហ័សនៃកញ្ចប់ពីរ — កំណែចំនួនដប់មួយ និងប្រាំបួនក្នុងរយៈពេលប៉ុន្មានម៉ោង — បានរក្សាវត្ថុបុរាណថ្មីៗនៅចំពោះមុខអ្នកដំឡើង និងអ្នកដោះស្រាយ ខណៈពេលដែលកំណែចាស់ៗកំពុងត្រូវបានដកចេញ។

លំនាំដែលកំពុងលេចឡើង

ចង្កោមនេះគឺជាឧទាហរណ៍នៃស្លាកដែលត្រូវបានប្រើជាគម្រប។ “ការស្រាវជ្រាវដែលមានការអនុញ្ញាត” “រង្វាន់កំហុស” និង “ការធ្វើតេស្ត sandbox” ត្រូវបានភ្ជាប់កាន់តែខ្លាំងឡើងទៅនឹងកញ្ចប់ដែលស្គ្រីបដំឡើងរបស់វាធ្វើច្រើនជាងទម្រង់ម៉ាស៊ីន។ ការកំណត់ស៊ុមជួញដូរលើការស្ទាក់ស្ទើររបស់អ្នកពិនិត្យក្នុងការធ្វើសកម្មភាពប្រឆាំងនឹងអ្វីមួយដែលប្រកាសខ្លួនឯងថាត្រូវបានអនុម័ត។ វាផ្គូផ្គងជាមួយនឹងយុទ្ធសាស្ត្រស៊ាំទីពីរ៖ ឈ្មោះកញ្ចប់ដែលត្រូវបានរចនាឡើងដើម្បីមើលទៅដូចជាឧបករណ៍ CI ខាងក្នុង ដូច្នេះពួកវារអិលហួសពីការក្រឡេកមើលរហ័សនៅដើមឈើអាស្រ័យ។ ការរួមបញ្ចូលគ្នាគឺជាអ្វីដែលធ្វើឱ្យគំរូមានតម្លៃក្នុងការមើល - ឈ្មោះដែលអានថាជាបរិក្ខារហេដ្ឋារចនាសម្ព័ន្ធ រុំក្នុងសំណេរដែលអានថាជាការធ្វើតេស្តដែលត្រូវបានអនុម័ត ដែលនៅពីមុខទំពក់ដំឡើងដែលកើនឡើងនៅលើប្រព័ន្ធប្រតិបត្តិការមួយ និងស៊ើបអង្កេតព័ត៌មានសម្គាល់ cloud នៅលើប្រព័ន្ធផ្សេងទៀត។ ទាំងការបដិសេធ និងឈ្មោះសាមញ្ញមិនផ្លាស់ប្តូរអ្វីដែលកូដធ្វើនៅលើការដំឡើងនោះទេ ហើយដំណើរការជ្រើសរើសដែលថ្លឹងថ្លែងពួកវាណាមួយជាភស្តុតាងកាត់បន្ថយនឹងឈានដល់ការវិនិច្ឆ័យខុស។

អ្វីដែលអ្នកការពារគួរធ្វើ

  • ស្វែងរកឯកសារចាក់សោ និងដំឡើងកំណត់ហេតុសម្រាប់ឈ្មោះកញ្ចប់ទាំងប្រាំមួយ។ ចាត់ទុកការផ្គូផ្គងណាមួយជាឧប្បត្តិហេតុ មិនមែនជាការព្រមានទេ។
  • រារាំង និងជូនដំណឹងអំពីចរាចរណ៍ចេញទៅកាន់ ១១៥.១៤៤.៦៩[.]១០៨ និងទៅ *.trycloudflare[.]com ម៉ាស៊ីនពីការសាងសង់ហេដ្ឋារចនាសម្ព័ន្ធ។
  • ស្វែងរកសំណើ HTTP ពេលដំឡើងទៅកាន់អាសយដ្ឋានទិន្នន័យមេតារបស់ instance (169.254.170.2, 169.254.169.254) ដែលមានប្រភពមកពីអ្នកគ្រប់គ្រងកញ្ចប់នៅក្នុង CI។
  • បង្វិល​ព័ត៌មាន​សម្គាល់​តួនាទី​លើ​ពពក និង​ថូខឹន​ណាមួយ​ដែល​អាច​ទាក់ទង​បាន​ពី​អ្នក​ដំណើរការ​ដែល​បាន​ដំឡើង​កំណែ​ដែល​ប៉ះពាល់។
  • សវនកម្ម ដំឡើងជាមុន/ក្រោយការដំឡើង ស្គ្រីបនៅក្នុងរបស់អ្នក សំណុំ​នៃ​ការពឹងផ្អែក; ទំពក់​វដ្តជីវិត​ដែលដំណើរការឯកសារស្គ្រីបទីពីរសមនឹងទទួលបានការអាន។
  • នៅលើចំណុចបញ្ចប់ Windows សូមស្វែងរករបស់ថ្មីៗ ប្រតិបត្តិ​ដោយ​អ្នក​ទទួល​បន្ទុក តម្លៃដែលសរសេរនៅក្រោម ការកំណត់ ms កូនសោ shell-handler — កម្ពស់​ដំបូង​ដែល payload នេះ​ប្រើ និង​ជា​សញ្ញា​ដែល​អាច​ទុកចិត្ត​បាន​ដោយ​ឯករាជ្យ​ពី​ឈ្មោះ​កញ្ចប់។
  • ខ្ទាស់ និងពិនិត្យមើលឯកសារចាក់សោ ហើយបិទស្គ្រីបដំឡើង (npm ដំឡើង - មិនអើពើស្គ្រីប) នៅក្នុង CI ដែលការសាងសង់របស់អ្នកមិនតម្រូវឱ្យមានពួកគេ។
  • សូមចាត់ទុកការបដិសេធ "ការស្រាវជ្រាវដែលមានការអនុញ្ញាត" ឬ "ស្លូតបូត" នៅក្នុងស្គ្រីបដំឡើងថាជាអត្ថបទដែលមិនគួរឱ្យទុកចិត្ត មិនមែនជាហេតុផលដើម្បីអនុញ្ញាតស្គ្រីបនោះទេ។

កញ្ចប់មួយដែលប្រកាសពីចេតនាល្អនៅក្នុងសំណេរ និងសំណើ ប្រព័ន្ធ នៅក្នុងកូដគួរតែត្រូវបានវិនិច្ឆ័យលើកូដ។

ឧបករណ៍វិភាគសមាសភាពកម្មវិធី sca
ផ្តល់អាទិភាព ដោះស្រាយ និងធានាសុវត្ថិភាពហានិភ័យផ្នែកទន់របស់អ្នក
ទទួលបានគណនីឥតគិតថ្លៃរបស់អ្នក។
មិនតម្រូវឱ្យមានកាតឥណទានទេ។

ធានាសុវត្ថិភាពនៃការអភិវឌ្ឍន៍ និងការដឹកជញ្ជូនកម្មវិធីរបស់អ្នក

ជាមួយឈុតផលិតផល Xygeni