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 ដែលការសាងសង់របស់អ្នកមិនតម្រូវឱ្យមានពួកគេ។
- សូមចាត់ទុកការបដិសេធ "ការស្រាវជ្រាវដែលមានការអនុញ្ញាត" ឬ "ស្លូតបូត" នៅក្នុងស្គ្រីបដំឡើងថាជាអត្ថបទដែលមិនគួរឱ្យទុកចិត្ត មិនមែនជាហេតុផលដើម្បីអនុញ្ញាតស្គ្រីបនោះទេ។
កញ្ចប់មួយដែលប្រកាសពីចេតនាល្អនៅក្នុងសំណេរ និងសំណើ ប្រព័ន្ធ នៅក្នុងកូដគួរតែត្រូវបានវិនិច្ឆ័យលើកូដ។





