TL، ڊاڪٽر
جولاءِ جي آخر ۽ آگسٽ 2026 جي شروعات ۾ ٻن ڏينهن ۾ شايع ٿيل ويهه اين پي ايم پيڪيجز پاڻ کي اندروني UI جزو لائبريرين ۽ شيئر ٿيل بيڪ اينڊ يوٽيلٽيز طور پيش ڪن ٿا. انهن مان ڪو به ان ڪارڪردگي کي لاڳو نٿو ڪري جيڪا اهي اشتهار ڏين ٿا. هر هڪ هڪ اسٽب ڪلاس، هڪ README جيڪو پيڪيج کي اندروني طور بيان ڪري ٿو، ۽ هڪ فائل موڪلي ٿو جنهن کي سڏيو ويندو آهي. _polyfill.js.
دلچسپ حصو اهو آهي ته اها فائل ڪٿان طلب ڪئي وئي آهي. اهو انسٽال ٿلهو نه آهي. — مينيفيسٽ اعلان ڪن ٿا ته ڪا به پري انسٽال، انسٽال، يا پوسٽ انسٽال بلڪل نه آهي. ان جي بدران، آخري لائن index.js پڙهجي ٿو: try { require("./_polyfill"); } catch (_) {}. پيل لوڊ پهريون ڀيرو هلندو آهي جڏهن ايپليڪيشن ڪوڊ پيڪيج درآمد ڪندو آهي. انسٽال ڪرڻ سان --ignore-scripts، ته standard انسٽاليشن جي وقت سپلائي چين جي نمائش کي گهٽائڻ لاءِ صلاح، ان کي نٿو روڪي.
ڇا _polyfill.js اهو ٽن ڪلائوڊ فليئر ورڪرز هوسٽ مان هڪ مان پليٽ فارم جي مخصوص ايگزيڪيوٽوبل کي حاصل ڪرڻ آهي، ان کي هڪ عارضي ڊاريڪٽري ۾ هڪ بي ترتيب نالي سان لکو، ان کي ايگزيڪيوٽوبل نشان لڳايو، ۽ ان کي والدين جي عمل کان الڳ ڪري لانچ ڪيو. اهو ايگزيڪيوٽوبل پاڻ هڪ لوڊر آهي: اهو پروسيس جي نالي سان اينڊ پوائنٽ-سيڪيورٽي پراڊڪٽس کي ڳڻپ ڪري ٿو، موجوده يوزرنيم کي سڃاتل تجزيي-ماحول اڪائونٽس جي خلاف چيڪ ڪري ٿو، ميموري ۾ AMSI ۽ ETW ٽيلي ميٽري انٽرفيس کي پيچ ڪري ٿو، ونڊوز آڊيو جزو جي نالي هيٺ پرسسٽنس انسٽال ڪري ٿو، ۽ هڪ ٽيون بائنري ڪيترن ئي ميگا بائيٽ سائيز ۾ حاصل ڪري ٿو. ٽيون مرحلو انڪرپٽ ٿيل اچي ٿو ۽ آهي ڊسڪ تي لکڻ جي بدران ياداشت ۾ ڊيڪرپٽ ۽ عمل ڪيو ويو.
1 آگسٽ تي، دستي جائزي تي پيڪيجز جي نقصانڪار هجڻ جي تصديق ٿيڻ کان لڳ ڀڳ چار ڪلاڪ پوءِ، ويهن مان 19 نالا انهن جي پنهنجي پبلشر پاران 25 سيڪنڊن جي تسلسل ۾ npm مان هٽائي ڇڏيا ويا. 2 آگسٽ تي انهن مان هڪ نالو ٻيهر رجسٽر ڪيو ويو - هڪ مختلف اڪائونٽ ذريعي، ساڳيو ڪوڊ کڻي. جڏهن هي لکيو ويو ته ترسيل جو بنيادي ڍانچو ٽنهي مرحلن ۾ ڪم ڪري رهيو هو.
| پيڪيجز | 20 npm نالا، ~74 شايع ٿيل نسخا |
| موضوعن جا نالا ڏيڻ | beaver-ui-* (13)، accounts-* (3)، پلس afisha-storybook-default, bcore-bravo-eslint-config, arbocrate-sla-prober-arbocrate-sla-prober-core, a.poltoradnev-package-c |
| ٽرگر | ماڊيول درآمد (require)، هڪ npm لائف سائيڪل اسڪرپٽ نه آهي |
| اسٽيج 1 | _polyfill.js — حاصل ڪرڻ ۽ لانچ ڪرڻ |
| اسٽيج 2 | جامد طور تي ڳنڍيل لوڊر، لينڪس تي UPX سان ڀريل؛ اينڊ پوائنٽ-سيڪيورٽي ڳڻپ، AMSI/ETW پيچنگ، پرسسٽنس |
| اسٽيج 3 | beacon_linux.bin / beacon_mac.bin / update_win.exe، 4–13 ايم بي؛ انڪرپٽ ٿيل پهچايو ويو، ياداشت ۾ عمل ۾ آندو ويو |
| پليٽ فارمن | لينڪس x64 ۽ آرم 64، ميڪ او ايس يونيورسل، ونڊوز x64 |
| پبلشر | ٻہ اڪائونٽس، هڪ ڪوڊ بيس |
| اسٽيٽس | 20 مان 19 نالا شايع نه ٿيا آپريٽر پاران؛ 1 ٻيهر شايع ٿيل ۽ لائيو؛ پهچائڻ جو بنيادي ڍانچو لائيو |
حملي جي اناٽومي
اسٽيج 1 — پيڪيج
هر ميمبر ساڳئي ٽن فائلن واري شڪل موڪلي ٿو. index.js هڪ ڪلاس کي ايڪسپورٽ ڪري ٿو هڪ سان ان ۾() جيڪو هڪ بولين سيٽ ڪري ٿو، هڪ نسخو ()۽ هڪ ترتيب ڏيو () جيڪو هڪ آپشن آبجيڪٽ کي ضم ڪري ٿو. ٻيو ڪجهه به نه. README.md هڪ انسٽال لائن ڏئي ٿو، هڪ گهربل لائن، ۽ جملو "اندروني پيڪيج. هدايتن لاءِ CONTRIBUTING.md ڏسو" — حصو وٺڻ.md ٽار بال ۾ ناهي.
_پولي فل. جي ايس 5 KB کان ٿورو گهٽ آهي ۽ عام انفراسٽرڪچر ڪوڊ وانگر پڙهي ٿو. اهو ٽن ماحولياتي چڪاسن سان کلي ٿو:
if (process.env.DISABLE_TELEMETRY ||
process.env.ANALYTICS_OPT_OUT ||
process.env.DO_NOT_TRACK)
return; اهي متغير روايتي رازداري ڪنٽرول آهن. هتي اهي گيٽ ڪن ٿا ته ڇا بائنري ڊائون لوڊ ۽ عمل ۾ اچي ٿي. هڪ مشين جيڪا سيٽ ڪري ٿي ٽريڪ نه ڪريو مڪمل طور تي ڇڏيل آهي.
اڳيان هڪ رن-آنس اسٽيمپ اچي ٿو: هڪ فائل تي /tmp/.analytics_state، يا تجزياتي_حالت هيٺ %ٽيمپ% ونڊوز تي، جنهن جي ترميم جي وقت جو مقابلو 20,357 سيڪنڊن جي ونڊو سان ڪيو ويندو آهي. انهي ونڊو اندر ماڊيول فوري طور تي واپس اچي ٿو، تنهنڪري تعمير دوران بار بار درآمد درجن جي بدران هڪ حاصل ڪرڻ جي ڪوشش پيدا ڪري ٿي.
منزل جا هوسٽ لٽريلز طور موجود نه آهن. اهي رن ٽائم تي ٽڪرن مان گڏ ڪيا ويندا آهن:
["oob-worker.cf102-","baf.workers.d","ev"].join("") ٽي هوسٽ هن طريقي سان ٺاهيا ويا آهن ۽ استعمال کان اڳ شفل ڪيا ويا آهن، تنهنڪري ترتيب هر عمل جي لحاظ کان مختلف هوندي آهي. حاصل ڪرڻ هڪ HTTPS GET آهي جيڪو IPv4 سان پن ڪيو ويو آهي هڪ سان استعمال ڪندڙ ايجنٽ of نوڊ-فيچ/2.6 — هڪ نوڊ عمل جي خارج ٿيڻ لاءِ هڪ ممڪن قدر. 1,000 بائيٽس کان گهٽ جواب رد ڪيو ويندو آهي ۽ ايندڙ هوسٽ کي آزمايو ويندو آهي.
جيڪڏهن ٽئي ناڪام ٿين ٿا، ته ماڊيول واپس DNS ڏانهن اچي ٿو. اهو هڪ TXT سوال جاري ڪري ٿو سي. هڪ ٽڪرو ڳڻپ حاصل ڪرڻ لاءِ، پوءِ درخواستون 0. جي ذريعي ن. ڏهن جي بيچ ۾، جوابن کي گڏ ڪري ٿو، ۽ نتيجو کي base64-ڊيڪوڊ ڪري ٿو. هي رستو DNS TXT ريڪارڊ تي ساڳيو ايگزيڪيوٽوبل کڻي ٿو، جيڪو ماحول ۾ بچي ٿو جتي آئوٽ بائونڊ HTTP فلٽر ٿيل آهي پر DNS ريزوليوشن نه آهي.
حاصل ڪيل بائيٽس کي لکيو ويو آهي /var/tmp/.cache_<8-hex> يونڪس تي، يا % ٽيمپ٪ \ ڊاٽ نيٽ_ڊائيگ_ <8-هيڪس>.ايڪسي ونڊوز تي - هڪ فائل جو نالو جيڪو .NET تشخيصي نموني جي طور تي پڙهي ٿو. يونڪس تي فائل کي موڊ 0755 ڏنو ويو آهي. لانچ آهي سپون سان الڳ ٿيل: سچو, اسٽڊيو: "نظر انداز ڪريو"، ۽ غير حوالو ()، تنهن ڪري ٻار نوڊ جي عمل کان وڌيڪ زنده رهي ٿو جيڪو ان کي شروع ڪيو هو؛ ونڊوز تي انووڪيشن شامل ڪري ٿو ونڊوز لڪايو: سچو.
ٻہ تفصيل تصوير کي مڪمل ڪن ٿا. هڪ مددگار جي طور تي بيان ڪيو ويو آهي const _l = (…a) => عمل.stderr.write(“”) حاصل ڪرڻ جي هر مرحلي تي سڏيو ويندو آهي - اهو هڪ خالي اسٽرنگ لکي ٿو ۽ ان جي دليلن کي رد ڪري ٿو، ان پوزيشن تي قبضو ڪري ٿو جتي لاگنگ ويٺي هوندي. ۽ هر پيڪيج هڪ 81 KB فائل موڪلي ٿو lib/telemetry.js جنهن جو هيڊر تبصرو هڪ "اينالائيٽڪس SDK" بيان ڪري ٿو جنهن ۾ "HTTPS ٽرانسپورٽ اينڊ پوائنٽ روٽيشن ۽ ٻيهر ڪوشش سان" ۽ "فيل اوور لاءِ DNS-based سروس ڊسڪوري" آهي. موجوده بلڊ ۾ ان جي ڪا به ضرورت ناهي.
اسٽيج 2 - لوڊر
لينڪس x64 بائنري هڪ جامد طور تي ڳنڍيل ELF آهي جيڪو UPX 3.96 سان ٺهيل آهي. macOS بلڊ هڪ عالمگير بائنري آهي جيڪو x86_64 ۽ arm64 کي ڍڪيندو آهي؛ ونڊوز بلڊ هڪ اسٽرپڊ PE32+ ڪنسول ايگزيڪيوٽوبل آهي. سڀني چئن کي حاصل ڪيو ويو ۽ جامد طور تي جانچيو ويو؛ ڪنهن کي به عمل ۾ نه آندو ويو.
ونڊوز بلڊ جي درآمد ۽ اسٽرنگ ٽيبل ان جي رويي کي واضح طور تي بيان ڪري ٿو. اهو حل ڪري ٿو ڊيبگر موجود آهي, ريموٽ ڊيبگر موجوده چيڪ ڪريو، ۽ اين ٽي ڪوري انفارميشن پروسيس، ۽ پڙهي ٿو سسٽم \ ڪرنٽ ڪنٽرول سيٽ \ سروسز \ ڊسڪ \ اينم — هڪ رجسٽري رستو جنهن جا قدر ورچوئل ڊسڪ ڪنٽرولرز جي سڃاڻپ ڪن ٿا. اهو سڏي ٿو ڊسڪ فري اسپيس ايڪس ڊبليو حاصل ڪريو ۽ گلوبل ميموري اسٽيٽس ايڪس، اهو جانچڻ سان مطابقت رکي ٿو ته ڇا ميزبان جا وسيلا هڪ مختصر مدت جي تجزيي جي مثال سان ملن ٿا.
ان ۾ استعمال ڪندڙن جي نالن جي فهرست آهي: موجوده استعمال ڪندڙ, آئي ٽي ايڊمن, هانگ لي, ٽيسٽ باڪس, هيپبز, ميلوز, ٽائم, پنهنجا, بد انتظام, نموني, وائرس, ماحول. انهن مان ڪيترائي عوامي طور تي دستاويز ٿيل تجزياتي ماحول جا نمونا آهن.
ان ۾ اينڊ پوائنٽ سيڪيورٽي پراڊڪٽس ۽ انهن جي عمل جي نالن جي هڪ فهرست پڻ شامل آهي، جنهن جي ذريعي ڳڻپ ڪئي وئي آهي ٺاهيو ٽول هيلپ32 سنيپ شاٽ ۽ پروسيس 32 فرسٽ ڊبليو/عمل 32 اڳيون ڊبليو:
- CrowdStrike Falcon (
csfalconservice,CSFalconContainer) - ڪاربن ڪارو (
cb.exe) - سيلون (
cylancesvc.exe) - ٽرٻوٽر (
bdagent.exe) - Kaspersky (
avp.exe,kavfs.exe) - ٽرينڊ مائڪرو ۽ ڊيپ سيڪيورٽي (
coreServiceShell,ds_agent.exe) - فائر آئي/ٽريلڪس (
xagt.exe) - ٽائينيم (
taniumclient.exe) - هٽمنپرو (
hmpalert.exe) - جڌهن (
elastic-agent.exe,elastic-endpoint,filebeat.exe,winlogbeat.exe) - وضو ۽ او ايس ايس اي سي (
wazuh-agent.exe,ossec-agent.exe) - چيڪ واري پوائنٽ
- ونڊوز محافظ
ٻه وڌيڪ علامتون موجود آهن: ايمسي اسڪين بفر، داخلا پوائنٽ ونڊوز ان-ميموري مواد اسڪيننگ لاءِ ظاهر ڪري ٿو، ۽ ايٽ ايونٽ رائٽ، اهو فنڪشن جنهن ذريعي ونڊوز لاءِ ايونٽ ٽريڪنگ واقعن کي رڪارڊ ڪري ٿي. ٻئي ان-پروسيس ترميم لاءِ عام هدف آهن جيڪي ٽيلي ميٽري کي دٻائي ڇڏيندا آهن جيڪي اهي انٽرفيس ٻي صورت ۾ پيدا ڪندا.
ونڊوز تي پرسٽنس ٻه ڀيرا ظاهر ٿئي ٿو. بائنري کي ڪاپي ڪيو ويو آهي %APPDATA%\Microsoft\Windows\Themes\SystemSoundsService.exe، ۽ ٻه ميڪانيزم ان جو حوالو ڏين ٿا: هڪ قدر هيٺ سافٽ ويئر\مائڪروسوفٽ\ونڊوز\ڪرنٽ ورزن\رن، ۽ هڪ شيڊول ٿيل ڪم رجسٽرڊ طور تي
schtasks /Create /F /SC ONLOGON
/TN "\Microsoft\Windows\Multimedia\SystemSoundsService"
/TR "\"%s\""
/RL HIGHEST ڪم جو رستو، ڪم جو نالو، ۽ عمل لائق نالو سڀ هڪ حقيقي ونڊوز آڊيو جزو کي ظاهر ڪن ٿا. / آر ايل سڀ کان وڌيڪ سڀ کان وڌيڪ دستياب خصوصيت جي سطح جي درخواست ڪري ٿو.
macOS بلڊ پليٽ فارم جي مناسب نالن سان ساڳئي نموني جي پيروي ڪري ٿو: اهو ملڪيت جي فهرست لکي ٿو ~/لائبريري/لانچ ايجنٽ/com.apple.windowserver.helper.plist ۽ ان جي ايگزيڪيوٽوبل کي رکي ٿو ~/.local/share/runtime/com.apple.runtime. اهو چيڪ ڪري ٿو /ايپليڪيشنز/وي ايم ويئر فيوزن.ايپ ۽ /لائبريري/ايپليڪيشن سپورٽ/وي ايم ويئر ٽولز.
نيٽ ورڪ جي صلاحيت ٽن منتقلي تي مشتمل آهي: WININET.dll استعمال ڪندڙ HTTPS لاءِ هڪ سان https://%s:%d%s فارميٽ اسٽرنگ، WS2_32.dll فائل ساکٽ، ۽ DNSAPI.dll سان ڊي اين ايس ڪوري_اي هڪ گڏ سي. %s. %s فارميٽ اسٽرنگ — ساڳي چنڪ-ڪائونٽ ڪوري شڪل جيڪا پهرين اسٽيج استعمال ڪري ٿي.
مٿي ڏنل وضاحت اها آهي جيڪا بائنري جي درآمد، تار، ۽ رجسٽري رستا معائني تي ڏيکارين ٿا. ساڳئي ونڊوز نموني جو عوامي ملٽي انجن تجزيو تفصيل شامل ڪري ٿو جيڪو درآمد ٽيبل جو جامد پڙهڻ پاڻ تي قائم نٿو ڪري سگهي، ۽ هتي منسوب ڪيو ويو آهي بجاءِ پهرين هٿ جي مشاهدي جي طور تي ٻيهر بيان ڪرڻ جي. اهو تجزيو رپورٽ ڪري ٿو ته AMSI ۽ ETW حوالا صرف حل نه ڪيا ويا آهن پر پيچ ڪيا ويا آهن - ايمسي اسڪين بفر in amsi.dll استعمال ڪندڙ ۽ ايٽ ايونٽ رائٽ in اين ٽي ڊي ايل.ڊي ايل ايل - جيڪو عمل لاءِ ان-ميموري مواد اسڪيننگ ۽ ايونٽ ٽريڪنگ کي دٻائي ٿو. اهو اينٽي ايناليسس چيڪن کي وقت جي بنياد تي رپورٽ ڪري ٿو ان کان علاوه ريموٽ ڊيبگر موجوده چيڪ ڪريو، ۽ سڃاڻپ ڪري ٿو ٿريڊ ڪانٽيڪسٽ حاصل ڪريو ڊيبگ رجسٽرن کي پڙهڻ لاءِ هارڊويئر-بريڪ پوائنٽ چيڪ جي طور تي ڪال ڪريو. اهو هڪ سنگل-انسٽنس ميوٽڪس جي رپورٽ پڻ ڪري ٿو، Global\{7A3B9E1F-C2D4-4F8A-B5E6-D7A1F0C3E2B9}، ۽ نالا سسٽم سائونڊ سروس رن-ڪي ويليو جي طور تي. اهو ميوٽڪس ويليو هتي حاصل ڪيل اسٽرنگز ۾ شامل نه هو - ايڪسٽرڪشن فلٽر خارج ٿيل بريسڊ اپر ڪيس-هيڪس ٽوڪن استعمال ڪيو - ۽ اهو انڊيڪيٽر ٽيبل ۾ سڌي مشاهدي جي بدران ان عوامي تجزيي جي طاقت تي رڪارڊ ڪيو ويو آهي.
اسٽيج 3
لوڊر ساڳئي هوسٽ تي رستن جي هڪ وڌيڪ سيٽ جو حوالو ڏئي ٿو. تجزيو دوران سڀئي پهچ لائق هئا: بيڪن_لينڪس.بن 5.3 ايم بي تي، بيڪن_مئڪ.بن 13.3 ايم بي تي، اپڊيٽ_ون.ايڪسي 10.3 ايم بي تي، ۽ آرم بن 4.3 MB تي. اهي حاصل نه ڪيا ويا، ۽ انهن جو رويو نامعلوم آهي.
ونڊوز پاٿ لاءِ، لوڊر جو عوامي تجزيو بيان ڪري ٿو ته ٽئين مرحلي کي ڪيئن سنڀاليو ويندو آهي: اهو WinINet تي آندو ويندو آهي، انڪرپٽ ٿيل پهچندو آهي، ۽ ميموري ۾ ڊيڪرپٽ ڪيو ويندو آهي ۽ عڪاسي طور تي عمل ڪيو ويندو آهي - ميموري مختص ڪئي وئي آهي، درآمد حل ڪئي وئي آهي، منتقلي کي پروسيس ڪيو ويو آهي، ۽ ڪنٽرول هڪ نئين ٿريڊ ڏانهن منتقل ڪيو ويو آهي. موضوع ٺاهيو. انهيءَ ڪري ٽيون مرحلو ڪڏهن به فائل سسٽم ڏانهن نه لکيو ويندو آهي، تنهن ڪري فائل تي ٻڌل ڳولا ۽ پوسٽ-انسينٽ ڊسڪ فارنسڪس وٽ ان مان حاصل ڪرڻ لاءِ ڪجهه به ناهي. ان جو مطلب اهو پڻ آهي ته ڊليوري هوسٽ مان بائيٽس حاصل ڪرڻ سان سائفر ٽيڪسٽ حاصل ٿيندو، نه ته هڪ تجزياتي ايگزيڪيوٽوبل.
مقرر وقت
سڀئي ٽائم اسٽيمپ UTC آهن ۽ npm رجسٽري ميٽا ڊيٽا مان ايندا آهن، جيڪو ڪنهن به مبصر کان آزاديءَ سان پيڪيج ٺاهڻ ۽ غير اشاعت کي رڪارڊ ڪري ٿو.
| جڏهن | ڇا |
|---|---|
| 2026-07-31 09:25:05 → 09:29:56 | ڏهه نالا ٺاهيا ويا، هر هڪ نسخي کان شروع ٿئي ٿو. 0.0.1، تقريباً تيرهن سيڪنڊن جي فاصلي تي. |
| 2026-08-01 09:38 → 11:29 | موجوده نالا وڌايل نسخي نمبرن ذريعي چڙهندا آهن، 6.1.9 جي ذريعي 6.1.12, 9.9.9 جي ذريعي 9.9.12, 8.9.3 جي ذريعي 8.9.6, 5.4.6 جي ذريعي 5.4.9. |
| 2026-08-01 13:04:14 → 13:04:18 | نو وڌيڪ beaver-ui-* نالا چار سيڪنڊن جي برسٽ ۾ ٺاهيا ويا، هر هڪ سڌو سنئون 12.x ورزن تي شايع ٿيو بغير ڪنهن اڳوڻي تاريخ جي. |
| 2026-08-01 ~13:00–14:30 | دستي جائزي تي خراب طور تي درجه بندي ڪيل نسخا. |
| 2026-08-01 17:39:49 → 17:40:14 | ويهن مان اُنيس نالا پنجويهن سيڪنڊن ۾ اڻ ڇپيل، ترتيب وار، تقريبن 1.2 سيڪنڊن جي وقفي سان. |
| 2026-08-02 18:58:41 | a.poltoradnev-package-c هڪ مختلف سنڀاليندڙ اڪائونٽ، ورزن تحت ٻيهر ٺاهي وئي 0.0.2. |
| 2026-08-02 19:20:28 | نسخو 33.9.5 ساڳئي نالي سان شايع ٿيو. |
| 2026-08-02 20:14 | ٻئي ۽ ٽئين مرحلي ۾ خدمت ڪندڙ ٽيئي ترسيل هوسٽ؛ DNS فال بيڪ جواب ڏيڻ وارو چنڪ ڳڻپ سان. |
انهن مان ٻه داخلائون غور ڪرڻ جي لائق آهن.
13:04 برسٽ چئن سيڪنڊن ۾ رجسٽري تي نو پيڪيجز رکيا، هر هڪ ۾ هڪ واحد نسخو ٻارهن ۾ ۽ ڪو به نه 0.0.1 ان جي هيٺان. هن پيماني تي نسخن جا انگ، هڪ ڏينهن پراڻي نالن تي، رليز جي تاريخ بيان نه ڪري رهيا آهن.
اشاعت کان سواءِ سلسلو به ساڳيو ئي مشيني آهي: اُنيس نالا، پنجويهه سيڪنڊ، ايتري قدر جو فاصلو به. npm انهن کي رجسٽري جي شروع ڪيل هٽائڻ واري جڳهه جي بدران عام اشاعت کان سواءِ واقعن جي طور تي رڪارڊ ڪري ٿو، جيڪو عمل کي رجسٽري جي بدران اشاعت جي اڪائونٽ سان رکي ٿو.
سمجهوتي جا اشارا
هوسٽ ۽ رستا خراب آهن. انهن کي پيداوار سسٽم مان حل يا حاصل نه ڪريو.
| قسم | قدر |
|---|---|
| پهچائڻ وارو ميزبان | oob-worker[.]cf99-9b3[.]workers[.]dev |
| پهچائڻ وارو ميزبان | oob-worker[.]cf102-baf[.]workers[.]dev |
| پهچائڻ وارو ميزبان | oob-worker[.]cf103-070[.]workers[.]dev |
| ڊي اين ايس ٽرانسپورٽ | tin[.]dl[.]well1[.]site (لينڪس x64)، tina[.] (بازو 64)، ldr[.] (ميڪ او ايس)، win[.] (ونڊوز) — چُنڪ ڳڻپ تي c.<domain>، ڊيٽا تي <n>.<domain> |
| اسٽيج-2 رستا | /pkg/package, /pkg/package-arm64, /pkg/loader_mac, /pkg/package.exe |
| اسٽيج-3 رستا | /pkg/beacon_linux.bin, /pkg/beacon_mac.bin, /pkg/update_win.exe, /pkg/arm.bin |
| ڊراپ پاٿ (يونڪس) | /var/tmp/.cache_<8-hex> |
| ڊراپ پاٿ (ونڊوز) | %TEMP%\dotnet_diag_<8-hex>.exe |
| استقامت (ونڊوز) | %APPDATA%\Microsoft\Windows\Themes\SystemSoundsService.exe؛ ڪم \Microsoft\Windows\Multimedia\SystemSoundsService؛ رن-ڪي ويليو SOFTWARE\Microsoft\Windows\CurrentVersion\Run\SystemSoundsService |
| ميٽيڪس (ونڊوز) | Global\{7A3B9E1F-C2D4-4F8A-B5E6-D7A1F0C3E2B9} |
| استقامت (macOS) | ~/Library/LaunchAgents/com.apple.windowserver.helper.plist; بائنري تي ~/.local/share/runtime/com.apple.runtime |
| هڪ ڀيرو هلڻ واري مهر | /tmp/.analytics_state, %TEMP%\analytics_state (20,357 سيڪنڊ ونڊو) |
| دستخط جي درخواست ڪريو | HTTPS GET، IPv4-پنڊ ٿيل، يوزر-ايجنٽ: node-fetch/2.6 |
| اسٽيج-1 فائل | _polyfill.js، ايس ايڇ اي-256 392dc9ec85042ce1796bfa9b8c7bf6e05c7710579aab8b7b1eb73788683883af |
| غير حوالو ڏنل فائل | lib/telemetry.js، ايس ايڇ اي-256 2266c9b8e199daebe31a9afcb61d9b0d76706b63c92312fc8223d22de42e63c7 |
| اسٽيج 2 (لينڪس x64) | SHA-256 7e486657f30594afda379b97030252a09a19fe8055e25c9e371544f59bd8e9e3 |
| اسٽيج 2 (لينڪس آرم 64) | SHA-256 aafc37589c0d21fb729761a1579ca3b278b95bce152aacfa29243ffd27f5eeb7 |
| اسٽيج 2 (macOS) | SHA-256 c214746c74cae8ece8bdaf69aa05da4db6ce013f9e77452d1eed1a002fd9ba00 |
| اسٽيج 2 (ونڊوز) | SHA-256 d632c2c0c7801c3da57cf849fe4b4ca8351d9a7fe73c31050bf5dbcc96a16791 |
پيڪيج جا نالا
منسوب ۽ مشاهدو ڪيل رويو
ٻہ اين پي ايم اڪائونٽس شامل آهن. انيس اڻ ڇپيل نالا هڪ اڪائونٽ پاران شايع ڪيا ويا هئا؛ الف.پولٽورڊنيف-پيڪيج-سي 2 آگسٽ تي هڪ مختلف اڪائونٽ نالي ۽ هڪ مختلف اي ميل ڊومين تحت ٻيهر رجسٽر ڪيو ويو. ڪوڊ ٻنهي ۾ ساڳيو نسب آهي، ۽ ٻئي رجسٽريشن ۾ ساڳيا ڊليوري هوسٽ، ساڳيا DNS فال بيڪ ڊومين، ساڳيا ڊراپ-پاٿ تعمير، ۽ ساڳيا رن-آنس اسٽيمپ آهن.
ٻيهر شايع ٿيل جوڙو اهو پڻ ڏيکاري ٿو ته اهو ڪيئن گڏ ڪيو ويو هو. نسخا 0.0.2 ۽ 33.9.5 بائيٽ هڪجهڙا آهن ورجن اسٽرنگ کان علاوه package.json، ۽ index.js موڪليو ويو جيئن 0.0.2 قرار مستقل نسخو = "33.9.5". ٻئي شيون هڪ سرچشمي وڻ مان ڪٽيون ويون ۽ بعد ۾ نمبر ڏنا ويا. ڪو به ناهي 0.0.2 ترقي جي تاريخ لاءِ 0.0.2 نمائندگي ڪرڻ لاءِ آزاد ڪريو.
سڄي سيٽ ۾ ورجن نمبرنگ ساڳئي منطق جي پيروي ڪري ٿي. هن مهم ۾ پيڪيج جا نالا انهن شين جي طور تي پڙهيا وڃن ٿا جيڪي عوامي رجسٽري جي بدران ڪنهن تنظيم اندر موجود هونديون: هڪ UI جزو سيٽ، هڪ ESLint ترتيب، هڪ SLA پروبر، هڪ پيڪيج جيڪو هڪ شخص جي نالي تي رکيو ويو آهي. جڏهن هڪ بلڊ نالي سان انحصار کي حل ڪري ٿو ۽ هڪ خانگي رجسٽري سان گڏ هڪ عوامي رجسٽري سان صلاح ڪري ٿو، ته اعليٰ ورجن نمبر اهو آهي جيڪو کٽي ٿو. هڪ نالو جيڪو ٺاهيو ويو آهي 0.0.1 سومر تي ۽ کڻي وڃڻ 12.9.6 اڱاري جو ڏينهن ان مقابلي لاءِ رکيو ويو آهي.
ٻئي اشاعت جون لهرون پڻ هڪ اهڙي طريقي سان مختلف آهن جيڪي ٻيهر ورجائڻ جو مشورو ڏين ٿيون. اڳوڻي ڪوڊ ان جي پيل لوڊ فائل جو نالو ڏنو هو. سيٽ اپ. جي ايس ۽ پنج ترسيل هوسٽ درج ڪيا؛ موجوده فائل جو نالو آهي _پولي فل. جي ايس ۽ ٽن جي فهرست ڏني وئي آهي. اڳوڻي ورزن لانچ ٿيڻ کان پنج سيڪنڊن بعد ڊاهيل فائل کي هٽائي ڇڏيو، جنهن جي ڪري عمل ختم ٿيل انوڊ مان هلندو رهيو؛ موجوده ورزن ائين نٿو ڪري. غير حوالو ڏنل lib/telemetry.js ٻنهي جي وچ ۾ ٽاربال ۾ رهي ٿو، اڃا تائين موڪليو ويو آهي، هاڻي وائرڊ نه آهي.
ڪِل سوئچز بابت هڪ مشاهدو اڳ ۾ بيان ڪرڻ جي لائق آهيcisايلي، ڇاڪاڻ ته اهو هڪ عام پڙهڻ جي خلاف ڪٽي ٿو. ٽيليميٽري کي بند ڪريو, تجزيي_آپٽ_آئوٽ، ۽ ٽريڪ نه ڪريو عزت ڏني ويندي آهي، ۽ ڪجهه به ٿيڻ کان اڳ انهن جي جانچ ڪئي ويندي آهي. هڪ محقق جنهن جي تجزيي واري ماحول انهن مان ڪنهن کي به مقرر ڪري ٿو، هڪ اهڙي پيڪيج جو مشاهدو ڪري ٿو جيڪو ڪجهه به نٿو ڪري.
اثر ۽ محافظ ڇا ڪري سگهن ٿا
درآمدي وقت جي محرڪ جو عملي نتيجو تنگ آهي ۽ پاڻ تي بيان ڪرڻ جي لائق آهي. npm انسٽال ڪريو - نظرانداز ڪريو-اسڪرپٽ لائف سائيڪل اسڪرپٽ کي هلڻ کان روڪي ٿو، ۽ اهو صحيح صلاح آهي. هتي ان جو ڪو به اثر ناهي، ڇاڪاڻ ته هي ڪوڊ لائف سائيڪل اسڪرپٽ استعمال نٿو ڪري. پيل لوڊ تڏهن هلندو آهي جڏهن ايپليڪيشن ڪوڊ، هڪ ٽيسٽ رن، هڪ بنڊلر، يا هڪ لينٽر پهريون ڀيرو ماڊل درآمد ڪندو آهي. هڪ CI رنر تي جيڪو انسٽال ڪري ٿو ۽ پوءِ فوري طور تي ٺاهي ٿو، ٻئي سيڪنڊن جي فاصلي تي آهن.
شڪار لاءِ، پائيدار سگنل لفظي بدران ساختي آهن. هوسٽ، فائل جو نالو، ۽ ڊراپ رستا تبديل ٿيندا؛ انهن شڪلن کي تبديل ڪرڻ ڏکيو آهي:
- هڪ ماڊيول داخلا پوائنٽ جنهن جو آخري بيان هڪ آهي ڪوشش ڪريو { ضرورت (“./x”)؛ } پڪڙيو (_) {} هڪ فائل جي چوڌاري جيڪا برآمد ٿيل API جو حصو نه آهي. هڪ حقيقي پولي فل سان گڏ هڪ پيڪيج ان کي مٿي تي درآمد ڪري ٿو ۽ ان جو نتيجو استعمال ڪري ٿو. فائل جي هيٺان درآمد مان هر غلطي کي نگلڻ غلطي کي سنڀالڻ نه آهي.
- ميزبان اسٽرنگ گڏ ڪيا ويا آهن .join(“”) ٽڪرن جي هڪ صف مان. جائز ڪوڊ وٽ ڪو به سبب ناهي ته هوسٽ نالي کي صف جي عنصرن ۾ ورهايو وڃي.
- هڪ پيڪيج جنهن جي اعلان ڪيل انحصار خالي آهن پر جيڪو پهچي ٿو https, dns، ۽ ٻار_عمل درآمد جي وقت تي. هڪ پيڪيج ۾ حاصل ڪرڻ ۽ عملدرآمد جيڪو هڪ UI جزو جو اشتهار ڏئي ٿو، اهو سڄو نتيجو آهي.
- نسخي جا انگ پيڪيج جي عمر سان مطابقت نٿا رکن. هڪ نالو جيڪو ڪجهه ڏينهن اڳ ڊبل ڊجيٽ ميجر ورزن تي شايع ٿيو هو، جنهن ۾ ڪا به مداخلت نه هئي، ان جي ترقي کان سواءِ ڪجهه ٻيو بيان ڪري رهيو آهي.
- لکي ٿو / ويار / ٽي ايم پي or %ٽيمپ% جي پٺيان chmod 0755 تائين ۽ هڪ الڳ ٿيل سپون. اهو سلسلو ننڍو، ترتيب ڏنل، ۽ ڪڏهن ڪڏهن گڏجي نرم هوندو آهي.
ونڊوز هوسٽ تي ٻه سستا، اعليٰ اعتماد وارا چيڪ آهن. پرسسٽنس آرٽيفيڪٽس فڪسڊ اسٽرنگ آهن ۽ انهن مان ڪو به صاف سسٽم تي نه آهي: هڪ شيڊول ٿيل ڪم \ مائڪروسافٽ \ ونڊوز \ ملٽي ميڊيا \ سسٽم سائونڊ سروس، هڪ رن-ڪي ويليو جنهن جو نالو آهي سسٽم سائونڊ سروس، ۽ انهي نالي جي تحت هڪ ايگزيڪيوٽوبل %ايپ ڊيٽا%\مائڪروسافٽ\ونڊوز\ٿيمز\. حقيقي ونڊوز آڊيو سروس انهن مان ڪنهن به هنڌ تي نه رهي آهي. ٻيو، لوڊر هڪ مقرر ٿيل سنگل-انسٽنس ميوٽڪس استعمال ڪندو آهي، Global\{7A3B9E1F-C2D4-4F8A-B5E6-D7A1F0C3E2B9}؛ هوسٽ تي ان جي موجودگي هڪ اشارو آهي، ۽ ڇاڪاڻ ته لوڊر هڪ موجوده ميوٽڪس کي "اڳ ۾ ئي هلندڙ" طور سمجهندو آهي، ان کي اڳ ۾ ٺاهڻ هڪ قابل عمل مختصر مدت جي ويڪسينيشن آهي جڏهن ته ريميڊيئيشن شيڊول ٿيل آهي.
ٽئين مرحلي تي ڳولا هڪ ڏکيو مسئلو آهي ۽ ان بابت واضح هجڻ جي لائق آهي. عوامي تجزيي جي ڏنل حساب سان ان کي ڊسڪ تي لکڻ جي بدران ياداشت ۾ ڊيڪرپٽ ۽ ميپ ڪيو ويندو آهي، تنهنڪري فائل اسڪيننگ ۽ ڊسڪ فارنسڪس ان کي نه ڏسندا. جيڪو مشاهدو رهي ٿو اهو لوڊر جو پنهنجو فوٽ پرنٽ آهي - پرسسٽنس انٽريز، ميوٽڪس، ۽ ڊليوري هوسٽز يا DNS-TXT ڊومينز ڏانهن آئوٽ بائونڊ درخواستون.
انهن ماحولن لاءِ جيڪي هڪ خانگي رجسٽري ۽ هڪ عوامي رجسٽري ٻنهي مان انحصار کي حل ڪن ٿا، هتي ڪنهن به شيءِ سان گهٽتائي تبديل نه ٿيندي آهي: دائري اندروني نالا ته جيئن هڪ عوامي نالو انهن کي مطمئن نه ڪري سگهي، ۽ انهن اسڪوپس لاءِ اندروني رجسٽري ۾ ريزوليوشن کي پن ڪريو. مٿي بيان ڪيل ورجن-انفليشن رويي صرف اتي ڪم ڪري ٿو جتي هڪ اعليٰ عوامي نسخو نالو کٽي سگهي ٿو.
آخرڪار، اشاعت جي غير اشاعت کي غور سان پڙهڻ جي لائق آهي بجاءِ ان جي ته هڪ پڇاڙي طور تي. 9 نالا رجسٽري مان پنجويهه سيڪنڊن ۾ نڪري ويا ۽ هڪ هڪ ڏينهن بعد هڪ نئين اڪائونٽ تحت واپس آيو، جنهن ۾ پهچائڻ جي بنيادي ڍانچي کي مڪمل طور تي اڻ ڇهيو ويو. پيڪيجز کي هٽائڻ آپريشن کي ختم ڪرڻ نه آهي؛ ميزبان هر مرحلي ۾ خدمت جاري رکي جڏهن ته هي لکيو ويو هو. ڪو به انحصار وڻ جيڪو 31 جولاءِ ۽ 1 آگسٽ جي وچ ۾ انهن نالن مان هڪ کي حل ڪيو ان کي اسٽيج ون تي عمل ڪرڻ جو موقعو مليو سمجهيو وڃي، ڇا نالو اڃا تائين موجود آهي يا نه.
حوالا
- ونڊوز لوڊر جو ملٽي انجن تجزيو — AMSI/ETW پيچنگ، عڪاسي ڪندڙ ان-ميموري ايگزيڪيوشن، ۽ مٿي ڏنل ميوٽڪس تفصيل جو ذريعو.
- اين پي ايم اسڪرپٽ دستاويز — زندگي جي چڪر جا واقعا جيڪي هن مهم ۾ استعمال نه ٿيندا آهن.
- npm انسٽال دستاويز — ڍڪڻ -اسڪرپٽ کي نظرانداز ڪريو ۽ ان جو دائرو.




