PyTorch: মেশিন লার্নিং টুলকিট ক্রিসমাস থেকে নববর্ষ পর্যন্ত প্লাটোব্লকচেইন ডেটা ইন্টেলিজেন্স। উল্লম্ব অনুসন্ধান. আ.

PyTorch: মেশিন লার্নিং টুলকিট ক্রিসমাস থেকে নতুন বছর পর্যন্ত তৈরি

PyTorch হল সবচেয়ে জনপ্রিয় এবং বহুল ব্যবহৃত মেশিন লার্নিং টুলকিটগুলির মধ্যে একটি।

(কৃত্রিম বুদ্ধিমত্তার লিডারবোর্ডে এটি কোথায় বসেছে তা নিয়ে আমরা আঁকতে যাচ্ছি না - যেমন একটি প্রতিযোগিতামূলক ক্ষেত্রে অনেক বহুল ব্যবহৃত ওপেন সোর্স টুলের সাথে, উত্তরটি আপনি কাকে জিজ্ঞাসা করছেন এবং কোন টুলকিট ব্যবহার করবেন তার উপর নির্ভর করে বলে মনে হচ্ছে নিজেদের.)

মূলত Facebook দ্বারা একটি ওপেন সোর্স প্রজেক্ট হিসাবে বিকশিত এবং প্রকাশ করা হয়েছে, এখন মেটা, সফ্টওয়্যারটি 2022 সালের শেষের দিকে Linux ফাউন্ডেশনের কাছে হস্তান্তর করা হয়েছিল, যা এখন এটি PyTorch ফাউন্ডেশনের তত্ত্বাবধানে চালায়।

দুর্ভাগ্যবশত, একটি সাপ্লাই-চেইন আক্রমণের মাধ্যমে প্রকল্পটি আপস করা হয়েছিল 2022-এর শেষে ছুটির মরসুমে, ক্রিসমাস ডে [2022-12-25] এবং নববর্ষের আগের দিন [2022-12-30] এর মধ্যে।

আক্রমণকারীরা নৃশংসভাবে একটি পাইথন প্যাকেজ তৈরি করেছে torchtriton PyPI-তে, জনপ্রিয় পাইথন প্যাকেজ ইনডেক্স সংগ্রহস্থল।

নাম torchtriton বেছে নেওয়া হয়েছিল তাই এটি PyTorch সিস্টেমের একটি প্যাকেজের নামের সাথে মিলবে, যা একটি বিপজ্জনক পরিস্থিতির দিকে নিয়ে যায় PyTorch টিম দ্বারা ব্যাখ্যা করা হয়েছে (আমাদের জোর) নিম্নরূপ:

[ক] দূষিত নির্ভরতা প্যাকেজ (torchtriton) […] পাইথন প্যাকেজ ইনডেক্স (PyPI) কোড রিপোজিটরিতে আপলোড করা হয়েছে যেটি আমরা পাইটর্চ রাত্রিকালীন প্যাকেজ সূচকে শিপিং করি সেই একই প্যাকেজ নামের সাথে। যেহেতু PyPI সূচক অগ্রাধিকার নেয়, আমাদের অফিসিয়াল রিপোজিটরি থেকে সংস্করণের পরিবর্তে এই দূষিত প্যাকেজটি ইনস্টল করা হচ্ছে. এই নকশাটি কাউকে তৃতীয় পক্ষের সূচকে বিদ্যমান প্যাকেজের মতো একই নামে একটি প্যাকেজ নিবন্ধন করতে সক্ষম করে এবং pip ডিফল্টরূপে তাদের সংস্করণ ইনস্টল করবে।

কার্যক্রম pip, উপায় দ্বারা, হিসাবে পরিচিত হতে ব্যবহৃত pyinstall, এবং দৃশ্যত একটি পুনরাবৃত্তিমূলক কৌতুক যার জন্য সংক্ষিপ্ত pip installs packages. এর আসল নাম থাকা সত্ত্বেও, এটি পাইথন নিজেই ইনস্টল করার জন্য নয় - এটি পাইথন ব্যবহারকারীদের জন্য পাইথনে লেখা সফ্টওয়্যার লাইব্রেরি এবং অ্যাপ্লিকেশনগুলি পরিচালনা করার একটি আদর্শ উপায়, যেমন পাইটর্চ এবং অন্যান্য অনেক জনপ্রিয় সরঞ্জাম।

একটি সাপ্লাই-চেইন কৌশল দ্বারা Pwned

বিপদের সময় PyTorch এর pwned সংস্করণ ইনস্টল করার জন্য যথেষ্ট দুর্ভাগ্যজনক যে কেউ প্রায় নিশ্চিতভাবে তাদের কম্পিউটারে ইমপ্লান্ট করা ডেটা-চুরির ম্যালওয়্যার দিয়ে শেষ হয়েছিল।

PyTorch এর নিজস্ব ছোট কিন্তু দরকারী অনুযায়ী ম্যালওয়্যার বিশ্লেষণ, আক্রমণকারীরা সংক্রামিত সিস্টেম থেকে কিছু, অধিকাংশ বা নিম্নলিখিত উল্লেখযোগ্য ডেটা চুরি করেছে:

  • হোস্টনাম, ব্যবহারকারীর নাম, সিস্টেমে পরিচিত ব্যবহারকারী এবং সমস্ত সিস্টেম এনভায়রনমেন্ট ভেরিয়েবলের বিষয়বস্তু সহ সিস্টেম তথ্য। এনভায়রনমেন্ট ভেরিয়েবল হল মেমরি-অনলি ইনপুট ডেটা প্রদানের একটি উপায় যা প্রোগ্রামগুলি শুরু করার সময় অ্যাক্সেস করতে পারে, প্রায়শই ডিস্কে সংরক্ষণ করা উচিত নয় এমন ডেটা সহ, যেমন ক্রিপ্টোগ্রাফিক কী এবং প্রমাণীকরণ টোকেন ক্লাউড-ভিত্তিক পরিষেবাগুলিতে অ্যাক্সেস দেয়। পরিচিত ব্যবহারকারীদের তালিকা থেকে বের করা হয় /etc/passwd, যা, ভাগ্যক্রমে, আসলে কোনো পাসওয়ার্ড বা পাসওয়ার্ড হ্যাশ ধারণ করে না।
  • আপনার স্থানীয় গিট কনফিগারেশন। এই থেকে চুরি করা হয় $HOME/.gitconfig, এবং সাধারণত জনপ্রিয় গিট সোর্স কোড ম্যানেজমেন্ট সিস্টেম ব্যবহার করে যে কারো ব্যক্তিগত সেটআপ সম্পর্কে দরকারী তথ্য রয়েছে।
  • আপনার SSH কী। এই ডিরেক্টরি থেকে চুরি করা হয় $HOME/.ssh. SSH কীগুলি সাধারণত SSH (নিরাপদ শেল) এর মাধ্যমে নিরাপদে সংযোগ করার জন্য বা আপনার নিজস্ব নেটওয়ার্কে বা ক্লাউডে অন্যান্য সার্ভারে SCP (নিরাপদ কপি) ব্যবহার করার জন্য ব্যবহৃত ব্যক্তিগত কীগুলি অন্তর্ভুক্ত করে। অনেক ডেভেলপার তাদের অন্তত কিছু প্রাইভেট কী আনক্রিপ্ট করে রাখে, যাতে তারা যে স্ক্রিপ্ট এবং সফ্টওয়্যার টুল ব্যবহার করে সেগুলি প্রতিবার পাসওয়ার্ড বা হার্ডওয়্যার সিকিউরিটি কী জিজ্ঞাসা না করে স্বয়ংক্রিয়ভাবে দূরবর্তী সিস্টেমের সাথে সংযোগ করতে পারে।
  • আপনার হোম ডিরেক্টরির প্রথম 1000টি অন্যান্য ফাইল 100 কিলোবাইটের আকারে ছোট। PyTorch ম্যালওয়্যার বিবরণ "প্রথম 1000 ফাইল তালিকা" কিভাবে গণনা করা হয় তা বলে না। ফাইল তালিকার বিষয়বস্তু এবং ক্রম তালিকাটি বর্ণানুক্রমিকভাবে সাজানো হয়েছে কিনা তার উপর নির্ভর করে; সাব-ডিরেক্টরিগুলি কোনও ডিরেক্টরিতে ফাইলগুলি প্রক্রিয়া করার আগে, সময় বা পরে পরিদর্শন করা হয় কিনা; লুকানো ফাইল অন্তর্ভুক্ত কিনা; এবং কোডে কোনো এলোমেলোতা ব্যবহার করা হয়েছে কি না যা ডিরেক্টরির মধ্য দিয়ে চলে। আপনার সম্ভবত অনুমান করা উচিত যে আকার থ্রেশহোল্ডের নীচের যে কোনও ফাইল চুরি হয়ে যেতে পারে।

এই মুহুর্তে, আমরা সুসংবাদটি উল্লেখ করব: শুধুমাত্র যারা তথাকথিত "নাইটলি" বা পরীক্ষামূলক, সফ্টওয়্যারটির সংস্করণ নিয়ে এসেছেন তারা ঝুঁকির মধ্যে ছিলেন. ("নাইটলি" নামটি এই সত্য থেকে এসেছে যে এটি একেবারে সর্বশেষ বিল্ড, সাধারণত প্রতিটি কাজের দিনের শেষে স্বয়ংক্রিয়ভাবে তৈরি হয়।)

বেশিরভাগ PyTorch ব্যবহারকারী সম্ভবত লেগে থাকবে তথাকথিত "স্থিতিশীল" সংস্করণ, যা এই আক্রমণ দ্বারা প্রভাবিত হয়নি.

এছাড়াও, PyTorch এর রিপোর্ট থেকে, এটা মনে হয় Triton ম্যালওয়্যার এক্সিকিউটেবল ফাইলটি বিশেষভাবে 64-বিট লিনাক্স পরিবেশকে লক্ষ্য করে.

তাই আমরা ধরে নিচ্ছি যে এই দূষিত প্রোগ্রামটি শুধুমাত্র Windows কম্পিউটারে চলবে যদি লিনাক্সের জন্য Windows সাবসিস্টেম (WSL) ইনস্টল করা থাকে।

ভুলে যাবেন না, যদিও যে লোকেরা নিয়মিত "নাইটলিস" ইনস্টল করতে পারে তাদের মধ্যে PyTorch নিজেই বা এটি ব্যবহার করে এমন অ্যাপ্লিকেশনগুলির বিকাশকারীরা অন্তর্ভুক্ত - সম্ভবত আপনার নিজস্ব ইন-হাউস ডেভেলপার সহ, যাদের কর্পোরেট বিল্ডে ব্যক্তিগত-কী-ভিত্তিক অ্যাক্সেস থাকতে পারে। , পরীক্ষা এবং উৎপাদন সার্ভার।

DNS ডেটা চুরি

কৌতূহলজনকভাবে, ট্রাইটন ম্যালওয়্যার তার ডেটা বের করে দেয় না (সাইবারসিকিউরিটি ইন্ডাস্ট্রি এর পরিবর্তে ব্যবহার করতে পছন্দ করে এমন সামরিক জার্গন শব্দটি চুরি করা or অবৈধভাবে অনুলিপি করা) HTTP, HTTPS, SSH, বা অন্য কোনো উচ্চ-স্তরের প্রোটোকল ব্যবহার করে।

পরিবর্তে, এটি অপরাধীদের দ্বারা নিয়ন্ত্রিত একটি ডোমেন নামের অন্তর্গত "সার্ভার নাম" এর মতো দেখতে একটি ক্রমানুসারে চুরি করতে চায় এমন ডেটা এনক্রিপ্ট এবং এনকোড করে৷

এর মানে হল যে, DNS লুকআপের একটি ক্রম তৈরি করে, বদমাশরা প্রতিটি জাল অনুরোধে অল্প পরিমাণ ডেটা লুকিয়ে রাখতে পারে।

এটি একই ধরণের কৌশল যা ব্যবহার করা হয়েছিল Log4Shell হ্যাকার 2021 এর শেষে, যারা "নাম" সহ "সার্ভার" এর জন্য DNS লুকআপ করার মাধ্যমে এনক্রিপশন কীগুলি ফাঁস করেছে যেটি কেবলমাত্র আপনার গোপন AWS অ্যাক্সেস কীটির মান হিসাবে ঘটেছে, একটি ইন-মেমরি এনভায়রনমেন্ট ভেরিয়েবল থেকে লুণ্ঠিত হয়েছে৷

তাই কি একটি নির্দোষ মত লাগছিল, যদি অর্থহীন, একটি জন্য DNS সন্ধান “সার্ভার” যেমন S3CR3TPA55W0RD.DODGY.EXAMPLE একটি সাধারণ লুকআপের ছদ্মবেশে নিঃশব্দে আপনার অ্যাক্সেস কী ফাঁস করে দেবে যা এর জন্য তালিকাভুক্ত অফিসিয়াল ডিএনএস সার্ভারে নির্দেশিত DODGY.EXAMPLE ডোমেইন.


লাইভ লগ 4শেল ডেমো ডিএনএসের মাধ্যমে ডেটা এক্সফিল্ট্রেশন ব্যাখ্যা করে

[এম্বেড করা সামগ্রী]

আপনি যদি এখানে পাঠ্যটি স্পষ্টভাবে পড়তে না পারেন, তাহলে পূর্ণ স্ক্রীন মোড ব্যবহার করার চেষ্টা করুন, অথবা সরাসরি দেখুন ইউটিউবে.
প্লেব্যাকের গতি বাড়াতে বা সাবটাইটেল চালু করতে ভিডিও প্লেয়ারের কগ-এ ক্লিক করুন।


যদি বদমাশরা ডোমেনের মালিক হয় DODGY.EXAMPLE, তারা সেই লুকআপগুলি করার সময় কোন DNS সার্ভারের সাথে সংযোগ করতে হবে তা বিশ্বকে বলতে পারে৷

আরও গুরুত্বপূর্ণ, এমনকি নেটওয়ার্কগুলি যেগুলি HTTP, SSH এবং অন্যান্য উচ্চ-স্তরের ডেটা শেয়ারিং প্রোটোকল ব্যবহার করে TCP-ভিত্তিক নেটওয়ার্ক সংযোগগুলিকে কঠোরভাবে ফিল্টার করে...

…কখনও কখনও DNS লুকআপের জন্য ব্যবহৃত UDP-ভিত্তিক নেটওয়ার্ক সংযোগগুলিকে ফিল্টার করবেন না৷

ক্রুকদের একমাত্র খারাপ দিক হল যে ডিএনএস অনুরোধগুলির একটি বরং সীমিত আকার রয়েছে।

স্বতন্ত্র সার্ভারের নামগুলি 64 (AZ, 37-0 এবং ড্যাশ বা হাইফেন চিহ্ন) এর সেট থেকে 9টি অক্ষরের মধ্যে সীমাবদ্ধ এবং অনেক নেটওয়ার্ক সমস্ত আবদ্ধ অনুরোধ, শিরোনাম এবং মেটাডেটা সহ পৃথক ডিএনএস প্যাকেটগুলিকে শুধুমাত্র 512 বাইট প্রতিটিতে সীমাবদ্ধ করে।

আমরা অনুমান করছি যে কেন এই ক্ষেত্রে ম্যালওয়্যারটি আপনার ব্যক্তিগত কীগুলি অনুসরণ করে শুরু হয়েছিল, তারপরে নিজেকে সর্বাধিক 1000টি ফাইলের মধ্যে সীমাবদ্ধ করে, প্রতিটি 100,000 বাইটের চেয়ে ছোট৷

এইভাবে, দুর্বৃত্তরা প্রচুর পরিমাণে ব্যক্তিগত ডেটা চুরি করতে পারে, বিশেষত সার্ভার অ্যাক্সেস কী সহ, অব্যবস্থাপিতভাবে বড় সংখ্যক DNS লুকআপ তৈরি না করে।

সাইবার নিরাপত্তার উদ্দেশ্যে বিশেষভাবে প্রয়োগ করা কোনো যাচাই-বাছাইয়ের অনুপস্থিতিতে, নিয়মিত অপারেশনাল কারণে অস্বাভাবিকভাবে বিপুল সংখ্যক ডিএনএস লুকস লক্ষ্য করা যেতে পারে।

কি করো?

PyTorch ইতিমধ্যেই এই আক্রমণটি বন্ধ করার জন্য পদক্ষেপ নিয়েছে, তাই আপনি যদি এখনও আঘাত না পেয়ে থাকেন, তাহলে আপনি প্রায় নিশ্চিতভাবে এখন আঘাত পাবেন না, কারণ দূষিত torchtriton PyPI-এর প্যাকেজটিকে ইচ্ছাকৃতভাবে "dud" দিয়ে প্রতিস্থাপিত করা হয়েছে, একই নামের খালি প্যাকেজ।

এর মানে হল যে কোনো ব্যক্তি, বা কোনো সফ্টওয়্যার, যা ইনস্টল করার চেষ্টা করেছে torchtriton 2022-12-30T08:38:06Z পরে PyPI থেকে, দুর্ঘটনাক্রমে বা ডিজাইন দ্বারা, ম্যালওয়্যারটি পাবে না।

PyTorch এর হস্তক্ষেপের পর দুর্বৃত্ত PyPI প্যাকেজ।

PyTorch IoCs এর একটি সহজ তালিকা প্রকাশ করেছে, বা সমঝোতার সূচক, যা আপনি আপনার নেটওয়ার্ক জুড়ে অনুসন্ধান করতে পারেন।

মনে রাখবেন, যেমনটি আমরা উপরে উল্লেখ করেছি, এমনকি যদি আপনার প্রায় সমস্ত ব্যবহারকারী "স্থিতিশীল" সংস্করণে লেগে থাকে, যা এই আক্রমণ দ্বারা প্রভাবিত হয়নি, আপনার কাছে বিকাশকারী বা উত্সাহী থাকতে পারে যারা "নাইটলিস" নিয়ে পরীক্ষা-নিরীক্ষা করে, এমনকি তারা স্থিতিশীল ব্যবহার করলেও পাশাপাশি মুক্তি।

পাইটর্চের মতে:

  • ফাইলের নাম দিয়ে ম্যালওয়্যার ইনস্টল করা আছে triton. ডিফল্টরূপে, আপনি সাবডিরেক্টরিতে এটি খুঁজে পাওয়ার আশা করবেন triton/runtime আপনার পাইথন সাইট প্যাকেজ ডিরেক্টরিতে। প্রদত্ত যে শুধুমাত্র ফাইলের নামগুলি দুর্বল ম্যালওয়্যার সূচক, তবে, এই ফাইলের উপস্থিতিকে বিপদের প্রমাণ হিসাবে বিবেচনা করুন; এর অনুপস্থিতিকে সম্পূর্ণরূপে পরিষ্কার মনে করবেন না।
  • এই বিশেষ আক্রমণের ম্যালওয়্যারের SHA256 যোগফল রয়েছে 2385b294­89cd9e35­f92c0727­80f903ae­2e517ed4­22eae672­46ae50a5cc738a0e. আবারও, ম্যালওয়্যারটি সহজেই একটি ভিন্ন চেকসাম তৈরি করতে পুনরায় কম্পাইল করা যেতে পারে, তাই এই ফাইলের অনুপস্থিতি নির্দিষ্ট স্বাস্থ্যের লক্ষণ নয়, তবে আপনি এটির উপস্থিতিকে সংক্রমণের চিহ্ন হিসাবে বিবেচনা করতে পারেন।
  • ডেটা চুরি করার জন্য ব্যবহৃত DNS লুকআপগুলি ডোমেন নামের সাথে শেষ হয় H4CK.CFD. আপনার যদি নেটওয়ার্ক লগ থাকে যা নামের দ্বারা DNS লুকআপগুলি রেকর্ড করে, আপনি গোপন ডেটা ফাঁস হওয়ার প্রমাণ হিসাবে এই পাঠ্য স্ট্রিংটি অনুসন্ধান করতে পারেন।
  • দূষিত DNS উত্তরগুলি স্পষ্টতই গিয়েছিল, এবং উত্তরগুলি, যদি থাকে, একটি DNS সার্ভার থেকে এসেছে WHEEZY.IO. এই মুহুর্তে, আমরা সেই পরিষেবার সাথে সম্পর্কিত কোনও আইপি নম্বর খুঁজে পাচ্ছি না, এবং PyTorch এমন কোনও আইপি ডেটা সরবরাহ করেনি যা এই ম্যালওয়্যারের সাথে DNS ট্যাফিককে সংযুক্ত করবে, তাই আমরা নিশ্চিত নই যে এই তথ্যটি হুমকির শিকারের জন্য কতটা ব্যবহার করা হবে এই মুহূর্তে [2023-01-01T21:05:00Z]।

সৌভাগ্যবশত, আমরা অনুমান করছি যে বেশিরভাগ PyTorch ব্যবহারকারীরা এর দ্বারা প্রভাবিত হবেন না, কারণ তারা রাতের বিল্ড ব্যবহার করেন না, বা ছুটির সময়কালে কাজ করছেন না বা উভয়ই।

কিন্তু আপনি যদি একজন PyTorch উত্সাহী হন যিনি রাত্রিকালীন বিল্ডগুলির সাথে টিঙ্কার করেন এবং আপনি যদি ছুটির দিনগুলিতে কাজ করে থাকেন, তবে আপনি যদি কোনও স্পষ্ট প্রমাণ খুঁজে না পান যে আপনি আপোস করেছেন…

…তবুও আপনি সতর্কতা হিসাবে নতুন SSH কী-পেয়ার তৈরি করা এবং SSH-এর মাধ্যমে অ্যাক্সেস করা বিভিন্ন সার্ভারে আপলোড করা পাবলিক কীগুলি আপডেট করার কথা বিবেচনা করতে পারেন।

আপনি যদি সন্দেহ করেন যে আপনি আপোস করেছেন, অবশ্যই, তাহলে সেই SSH কী আপডেটগুলি বন্ধ করবেন না – আপনি যদি সেগুলি ইতিমধ্যে না করে থাকেন তবে এখনই করুন!


সময় স্ট্যাম্প:

থেকে আরো নগ্ন সুরক্ষা