TL; ডিআর
PyPI প্যাকেজের একটি গুচ্ছ নামটি ধার করেছিল uvদ্রুত ও অত্যন্ত জনপ্রিয় রাস্ট-ভিত্তিক পাইথন প্যাকেজ ম্যানেজারকে ইউভি হেল্পার হিসেবে ব্যবহার করা হয়। এগুলোর সাথে প্রায় কোনো বাস্তব কার্যকারিতাই থাকে না। এর পরিবর্তে, এগুলো একটি উইন্ডোজ পেলোড বহন করে যা একটি প্রমাণীকরণ বন্ধ থাকা অবস্থায় JupyterLab সার্ভার এবং, পরবর্তী সংস্করণগুলিতে, একটি রিভার্স টানেলের মাধ্যমে এটিকে পাবলিক ইন্টারনেটে প্রকাশ করে।
এক কথায় এটাই পুরো গল্প: প্রলোভন হিসেবে একটি বিশ্বস্ত টুলের নাম, এবং রিমোট-কোড-এক্সিকিউশন ইঞ্জিন হিসেবে জুপিটারল্যাব। একটি জুপিটার সার্ভার আপনি নোটে যা কোড টাইপ করেন তা চালায়।ebook একটি সেল; যা একটি খালি টোকেন দিয়ে চালু করা হয় এবং প্রতিটি নেটওয়ার্ক ইন্টারফেসের সাথে সংযুক্ত থাকে, সেটি একটি উন্মুক্ত ইন্টারপ্রেটার যা পোর্টে পৌঁছাতে সক্ষম যে কেউ চালাতে পারে।
আমরা ক্লাস্টারটিকে ট্র্যাক করি যেমন ফক্সইউভিযে দুটি প্যাকেজ পরীক্ষা করা হয়েছে তা হলো moon-uv (0.0.1-0.0.16) এবং my-magic-uv-helper (0.0.1), যা একই অপারেটর দ্বারা প্রকাশিত এবং বিশ্লেষণের সময় PyPI-তে লাইভ ছিল।
| ইকোসিস্টেম | PyPI |
| প্যাকেজ | moon-uv (0.0.1-0.0.16), my-magic-uv-helper (0.0.1) |
| প্ল্যাটফর্ম লক্ষ্য | উইন্ডোজ |
| মূল আচরণ | রিভার্স টানেলের মাধ্যমে ইন্টারনেটে প্রকাশিত প্রমাণীকরণবিহীন জুপিটারল্যাব সার্ভার। |
| বৈধ সরঞ্জামের অপব্যবহার | uv, JupyterLab, cloudflared, Pinggy |
আকর্ষণ: এমন একটি নাম যাকে আপনি ইতিমধ্যেই বিশ্বাস করেন।
uv গত দুই বছরে সবচেয়ে বেশি ইনস্টল করা পাইথন টুলগুলোর মধ্যে একটি, তাই “এর জন্য একটি সহায়ক uv"FauxUV" এমন একটি প্যাকেজ যা একজন ডেভেলপার কোনো দ্বিধা ছাড়াই ইনস্টল করে। FauxUV তার বিশ্বাসযোগ্যতা সম্পূর্ণরূপে এই নামের উপরই নির্ভর করে। প্যাকেজগুলো র্যাপ করে... অকৃত্রিম uv অ্যাস্ট্রালের ইনস্টলার — পেলোডের ইউআরএলগুলো আসল, স্বনামধন্য হোস্টের দিকে নির্দেশ করে — তাই এক নজরেই বিশ্বাসযোগ্য রেফারেন্স ছাড়া আর কিছুই দেখা যায় না। প্যাকেজগুলোর কোনোটিই আসলে কিছু যোগ করে না। uv কার্যকারিতা; নামটিই হলো সম্পূর্ণ ছদ্মবেশ।
আরসিই ইঞ্জিন হিসেবে জুপিটারল্যাব
পেলোডের মূল আকর্ষণ হলো একটি লঞ্চার, যা সমস্ত গার্ডরেল অপসারণ করে জুপিটারল্যাব চালু করে:
jupyter server --with jupyterlab --ip=0.0.0.0 # listen on every interface --ServerApp.token="" # no password, no token --allow_origin='*' # accept cross-origin connections --disable_check_xsrf # allow a remote browser/WebSocket to drive it প্রতিটি পতাকা একটি সুরক্ষা কেড়ে নেয়, এবং প্রেরিত লিপিটিতেও সেগুলোর টীকা দেওয়া আছে (মূল চীনা ভাষায়): শূন্য প্রতীক। পাসওয়ার্ড এবং টোকেন যাচাই বন্ধ করে দেয় — যে কেউ সংযোগ করতে পারে। জুপিটারল্যাব এটি একটি বৈধ ডেটা-সায়েন্স IDE, কিন্তু একটি নয়ebook সেলটি নকশা অনুযায়ী যথেচ্ছ কোড কার্যকর করে। এইভাবে কনফিগার করা এবং আবদ্ধ করা হয়েছে। 0.0.0.0এটি তখন IDE থাকা বন্ধ করে হোস্টের উপর একটি প্রমাণীকরণবিহীন রিমোট শেলে পরিণত হয় — কোনো কাস্টম ম্যালওয়্যার বাইনারির প্রয়োজন হয় না, শুধু একটি প্রচলিত টুলকে ভুল পথে চালিত করলেই চলে।
দুটি সহায়ক উপাদান এটিকে অর্জনযোগ্য ও পুনরাবৃত্তিযোগ্য করে তোলে:
- একটি নীরব ইনস্টল ট্রিগার। প্রথম দিকের সংস্করণগুলো পাওয়ারশেল দিয়ে চলে -ExecutionPolicy বাইপাস সোজা থেকে setup.py on পিপ ইনস্টল, পটভূমিতে ত্রুটিগুলি দমন করে যাতে বীচি দেখতে স্বাভাবিক লাগছে। পরবর্তী সংস্করণগুলিতে একই প্রিমিটিভকে একটিতে সরানো হয়। পিপ-ইউভি কমান্ড-লাইন টুল — এবং ইনস্টল-সময়ের অটো-রান পুরোপুরি বাদ দিন।
- একটি সর্বজনীন বিপরীতমুখী টানেল। একটি সার্ভার চালু 0.0.0.0 এখনও শুধুমাত্র সেইসব হোস্টের দ্বারাই পৌঁছানো যায় যারা মেশিনটিতে রাউট করতে পারে। একটি বান্ডেল করা মডিউল একটি [Pinggy]( খোলে।https://pinggy.io/একটি SSH রিভার্স টানেল যা লোকাল জুপিটার পোর্টকে একটি পাবলিক অ্যাড্রেসে ফরওয়ার্ড করে, ফলে সেই সীমাবদ্ধতাটি দূর হয়। সাথে থাকা স্ক্রিপ্টটিতে ক্লাউডফ্লেয়ার ব্যবহার করে একটি বিকল্প পথও রয়েছে — যা কমেন্ট করে রাখা হয়েছে। মেঘে ঝলসানো এবং একটি netsh একটি লিনোড আইপি-তে পোর্ট-প্রক্সি ব্যবহার করে ভিন্ন পরিকাঠামোর মাধ্যমে একই লক্ষ্য নথিভুক্ত করা হচ্ছে।
সব মিলিয়ে: প্যাকেজটি ইনস্টল করলে, একটি উইন্ডোজ হোস্ট পাসওয়ার্ডবিহীন জুপিটারল্যাব চালাতে এবং তা উন্মুক্ত ইন্টারনেটে প্রকাশ করতে পারে।
ফক্সইউভি কীভাবে বিকশিত হয়েছে
FauxUV-এর সংস্করণগুলো দ্রুত একের পর এক প্রকাশিত হচ্ছিল, এবং সেগুলোর মধ্যে পেলোডের ট্রিগার পয়েন্টও পরিবর্তিত হচ্ছিল — যা মনে করিয়ে দেয় যে, চিহ্নিত একটি সংস্করণ খুব কমই কোনো প্যাকেজ লাইনের সম্পূর্ণ চিত্র তুলে ধরে।
| পর্যায় | সংস্করণ | ট্রিগার | এটি যা যোগ করে |
|---|---|---|---|
| ইনস্টল-হুক | moon-uv 0.0.1-0.0.3, my-magic-uv-helper 0.0.1 | setup.py pip ইনস্টল করার সময় | uv ইনস্টল + PATH প্রিপেন্ড |
| CLI-রানটাইম | moon-uv 0.0.5-0.0.13 | pip-uv হুকুম | পাসওয়ার্ডবিহীন জুপিটারল্যাব লঞ্চার |
| সুড়ঙ্গ | moon-uv 0.0.14-0.0.16 | pip-uv হুকুম | একটি সক্রিয় পিংগি রিভার্স টানেল |
উল্লেখযোগ্যভাবে, ইনস্টল-সময়ের স্বয়ংক্রিয় চালনাটি ছিল অপসারিত পরবর্তী, আরও সক্ষম সংস্করণগুলিতে — তাই একটি স্ক্যানার যা শুধুমাত্র জীবনচক্রের উপর ভিত্তি করে কাজ করে। hooks নতুন রিলিজগুলোকে স্কোর করবে কম ঝুঁকিপূর্ণ, একদম উল্টো।
সমঝোতার সূচক
প্যাকেজের সোর্স পড়ে নিশ্চিত করা হয়েছে; এন্ডপয়েন্টগুলো চিহ্নিত করা হয়েছে। মন্তব্য ফাইলগুলিতে উপস্থিত থাকলেও বিশ্লেষিত সংস্করণ দ্বারা তা কার্যকর করা হয়নি। নেটওয়ার্ক সূচকগুলি নিষ্ক্রিয় করা হয়েছে।
| আদর্শ | ইনডিকেটর |
|---|---|
| ইনস্টল কমান্ড | powershell -ExecutionPolicy Bypass pip install করার সময় আসল uv ইনস্টলারটি আনা হচ্ছে। |
| JupyterLab ফ্ল্যাগ | --ip=0.0.0.0 --ServerApp.token="" --allow_origin='*' --disable_check_xsrf |
| বিপরীত টানেল (সক্রিয়) | free[.]pinggy[.]io:443 স্থানীয় ফরওয়ার্ডিং 127.0.0.1:8888 |
| টানেল হোস্ট (মন্তব্য করেছেন) | cloudflared tunnel --url hxxp://127[.]0[.]0[.]1:2718 |
| আইপি (মন্তব্য) | 45[.]79[.]134[.]161 (লিনোড) মাধ্যমে netsh port-proxy |
| অধ্যবসায় | প্রিপেন্ডস %USERPROFILE%\.local\bin ব্যবহারকারীর PATH-এ |
এই নির্দিষ্ট স্ট্রিংগুলো থেকে স্বাধীনভাবে, সতর্ক করার মতো আচরণগত সংকেত: ক পিপ ইনস্টল যেটি জন্ম দেয় powershell -ExecutionPolicy Bypassযেকোনো ; জুপিটার লঞ্চ একত্রিতকরণ টোকেন=”” সঙ্গে -আইপি=১৯২.১৬৮.১.৮০এবং বহির্গামী SSH *.pinggy.io একজন ডেভেলপার বা CI মেশিন থেকে।
পর্যবেক্ষিত আচরণ এবং উৎস
প্যাকেজ দুটির লেখক এবং পদ্ধতি একই: একটি বিশ্বস্ত টুলের নাম, শুধুমাত্র উইন্ডোজের জন্য সীমাবদ্ধ ব্যবস্থা, ত্রুটি দমন করে ব্যাকগ্রাউন্ডে চালানো, এবং স্বনামধন্য টুলের উপর নির্ভরতা, যার ফলে দ্রুত দেখলে কেবল স্বনামধন্য ইউআরএলগুলোই দেখা যায়। সোর্স কোডে চীনা ভাষায় মন্তব্য রয়েছে যা নিরাপত্তা-সম্পর্কিত ফ্ল্যাগগুলোকে স্পষ্টভাবে বর্ণনা করে; আমরা সেগুলোকে ফাইলের মধ্যে পর্যবেক্ষণযোগ্য বিবৃতি হিসেবে উল্লেখ করছি, উদ্দেশ্য সম্পর্কে কোনো দাবি হিসেবে নয়। allow_origin মূল্য এবং একটি colab.bat গুগল কোলাবের জন্য প্রচলিত অনানুষ্ঠানিক “আমার লোকাল রানটাইম শেয়ার করুন” ওয়ার্কফ্লো-গুলোকেই ফাইলের নাম হিসেবে ব্যবহার করুন। উৎস যাই হোক না কেন, প্যাকেজ করা ফলাফল একই থাকে।
প্রতিরক্ষাকারীদের জন্য প্রভাব ও নির্দেশনা
কারা কৃত্রিম অতিবেগুনি রশ্মির (FauxUV) সংস্পর্শে আসে। উইন্ডোজ ডেভেলপার এবং সিআই রানাররা যারা পিপ ইনস্টল এই প্যাকেজগুলোর মধ্যে একটি। একটি পাসওয়ার্ডবিহীন JupyterLab 0.0.0.0 যে কেউ পোর্টে পৌঁছাতে পারলেই রিমোট কোড এক্সিকিউশন করতে পারে; টানেলটি এই ‘কে পৌঁছাতে পারবে’ সীমাবদ্ধতাটি দূর করে। সার্ভারটি ইনস্টলকারী ব্যবহারকারী হিসেবে চলে এবং সেই ব্যবহারকারীর ফাইল, টোকেন ও ক্লাউড ক্রেডেনশিয়াল গ্রহণ করে।
কেন এটি সহজে চোখ এড়িয়ে যায়। প্রতিটি নেটওয়ার্ক স্ট্রিং একটি নির্ভরযোগ্য হোস্টকে নির্দেশ করে — অ্যাস্ট্রাল, জুপিটারল্যাব, মেঘে ঝলসানোপিংগি, কোলাব। এখানে হ্যাশ করার জন্য কোনো ম্যালওয়্যার বাইনারি নেই এবং ডিকোড করার জন্য কোনো দুর্বোধ্য ব্লবও নেই। খ্যাতি-ভিত্তিক এবং সিগনেচার-ভিত্তিক স্ক্যানিং উভয়ই এই বিষয়টিকে কম গুরুত্ব দেয়, যে কারণে আচরণগত প্রশ্নটি আসে — এই প্যাকেজটি ইনস্টল করলে মেশিনটি কী করে? — যে এটা ধরে।
গাইডেন্স:
- যেকোনো ইনস্টল-সময়ের সাথে আচরণ করুন powershell -ExecutionPolicy Bypass এটি যে URL-ই ফেচ করুক না কেন, এটি একটি বিল্ড-ভেঙে দেওয়ার সংকেত হিসেবে কাজ করে।
- সতর্কতা জুপিটার খালি টোকেন দিয়ে চালু করা হয়েছে এবং -আইপি=১৯২.১৬৮.১.৮০এই সংমিশ্রণটি কোনো ওয়ার্কস্টেশন বা রানারে কখনোই থাকা উচিত নয়।
- টানেল প্রোভাইডারদের কাছে বহির্গামী SSH নিরীক্ষণ করুন (*.pinggy.io, *.trycloudflare.comডেভেলপার এবং সিআই পরিবেশ থেকে।
- ইনস্টল করুন uv [এর আনুষ্ঠানিক সূত্র থেকে](https://docs.astral.sh/uv/এবং এমন থার্ড-পার্টি “হেল্পার” প্যাকেজ সম্পর্কে সন্দিহান হন, যা এমন একটি টুলকে র্যাপ করে রাখে যা ইনস্টল করা ইতিমধ্যেই খুব সহজ।
- আপগ্রেড করার সময় নির্ভরতাগুলো চিহ্নিত করুন এবং পুনরায় পর্যালোচনা করুন — একটি প্যাকেজ লাইন প্রতি সংস্করণে নতুন সক্ষমতা অর্জন করতে পারে।



