ট্রোজান উত্স, আক্রমণ যা বিকাশকারীর কাছে অদৃশ্য কোড পরিবর্তনগুলি যোগ করার অনুমতি দেয়

কয়েক দিন আগে কেমব্রিজ বিশ্ববিদ্যালয়ের গবেষকরা প্রকাশ করেছেন প্রকাশনা সূক্ষ্মভাবে কোড প্রতিস্থাপন একটি কৌশল অ্যাপ্লিকেশন সোর্স কোডে দূষিত।

আক্রমণের পদ্ধতি সেই প্রস্তুতি এটি ইতিমধ্যেই CVE-2021-42574 এর অধীনে তালিকাভুক্ত এটি ট্রোজান সোর্স নামে আসে এবং এটি টেক্সট গঠনের উপর ভিত্তি করে তৈরি করা হয় যা কম্পাইলার/দোভাষী এবং যে ব্যক্তি কোডটি দেখছেন তাদের কাছে আলাদা দেখায়।

ট্রোজান উত্স সম্পর্কে

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

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

এই পদ্ধতির সাথে, একটি দূষিত গঠন কোড যোগ করা যেতে পারে, কিন্তু তারপরে কোডটি দেখার সময় এই নির্মাণের সাথে পাঠ্যটিকে অদৃশ্য করে দিন, পরবর্তী মন্তব্যে বা আক্ষরিক অভ্যন্তরে ডান থেকে বামে দেখানো অক্ষরগুলি যোগ করুন, যার ফলে ক্ষতিকারক সন্নিবেশে সম্পূর্ণ ভিন্ন অক্ষরগুলি সুপারইম্পোজ করা হবে। এই ধরনের কোড এখনও শব্দার্থগতভাবে সঠিক হবে, কিন্তু এটি ব্যাখ্যা করা হবে এবং ভিন্নভাবে প্রদর্শিত হবে।

আমরা সোর্স কোড ফাইলের এনকোডিং ম্যানিপুলেট করার উপায় আবিষ্কার করেছি যাতে মানুষের দর্শক এবং কম্পাইলাররা বিভিন্ন যুক্তি দেখতে পায়। একটি বিশেষভাবে ক্ষতিকর পদ্ধতি ইউনিকোড দিকনির্দেশনা ওভাররাইড অক্ষর ব্যবহার করে কোডটিকে তার সত্য যুক্তির অ্যানাগ্রাম হিসাবে প্রদর্শন করে। আমরা যাচাই করেছি যে এই আক্রমণটি C, C++, C#, JavaScript, Java, Rust, Go, এবং Python এর বিরুদ্ধে কাজ করে এবং আমরা সন্দেহ করি যে এটি অন্যান্য আধুনিক ভাষার বিরুদ্ধে কাজ করবে।

কোড পর্যালোচনা করার সময়, বিকাশকারী চরিত্রগুলির ভিজ্যুয়াল অর্ডারের মুখোমুখি হবে এবং একটি সম্পাদকে একটি সন্দেহজনক মন্তব্য দেখতে পাবে পাঠ্য, ওয়েব ইন্টারফেস বা IDE, কিন্তু কম্পাইলার এবং দোভাষী অক্ষরের যৌক্তিক ক্রম ব্যবহার করবে এবং দূষিত কোড পরিচালনা করবে যেমনটি, মন্তব্যে দ্বিমুখী পাঠ্য নির্বিশেষে। বেশ কিছু জনপ্রিয় কোড এডিটর (VS Code, Emacs, Atom), সেইসাথে রিপোজিটরিতে কোড দেখার ইন্টারফেস (GitHub, Gitlab, BitBucket, এবং সমস্ত Atlassian পণ্য) প্রভাবিত হয়।

দূষিত ক্রিয়াগুলি বাস্তবায়নের জন্য পদ্ধতিটি ব্যবহার করার বিভিন্ন উপায় রয়েছে: একটি লুকানো অভিব্যক্তি "রিটার্ন" যোগ করুন, যা সময়ের আগে ফাংশন সম্পাদনের সমাপ্তির দিকে নিয়ে যায়; অভিব্যক্তির মন্তব্যে উপসংহার যা সাধারণত বৈধ গঠন হিসাবে বিবেচিত হয় (উদাহরণস্বরূপ, গুরুত্বপূর্ণ চেকগুলি নিষ্ক্রিয় করতে); অন্যান্য স্ট্রিং মান বরাদ্দ করা স্ট্রিং যাচাইকরণ ব্যর্থতার দিকে পরিচালিত করে।

উপরন্তু, আরেকটি আক্রমণের বিকল্প প্রস্তাব করা হয়েছিল (CVE-2021-42694), যা হোমোগ্লিফের ব্যবহার জড়িত, চিহ্ন যা দেখতে একই রকম, কিন্তু অর্থে ভিন্ন এবং ভিন্ন ইউনিকোড কোড রয়েছে। এই অক্ষরগুলি বিকাশকারীদের বিভ্রান্ত করতে ফাংশন এবং পরিবর্তনশীল নামে কিছু ভাষায় ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, আপনি দুটি ফাংশন সংজ্ঞায়িত করতে পারেন অভেদ্য নাম দিয়ে যা বিভিন্ন ক্রিয়া সম্পাদন করে। বিশদ বিশ্লেষণ ছাড়া, আপনি অবিলম্বে বুঝতে পারবেন না যে এই দুটি ফাংশনের মধ্যে কোনটিকে একটি নির্দিষ্ট জায়গায় বলা হয়।

সুরক্ষা ব্যবস্থা হিসাবে, এটি কম্পাইলার, দোভাষী এবং সমাবেশ সরঞ্জামগুলিতে প্রয়োগ করার সুপারিশ করা হয় যা ইউনিকোড অক্ষর সমর্থন করে, একটি ত্রুটি বা সতর্কতা দেখায় মন্তব্য, স্ট্রিং লিটারাল, বা শনাক্তকারী যা আউটপুট দিক পরিবর্তন করে তাতে জোড়াবিহীন নিয়ন্ত্রণ অক্ষর আছে কিনা। এই অক্ষরগুলি অবশ্যই প্রোগ্রামিং ভাষার স্পেসিফিকেশনগুলিতে স্পষ্টভাবে নিষিদ্ধ করা উচিত এবং সংগ্রহস্থলগুলির সাথে কাজ করার জন্য কোড এডিটর এবং ইন্টারফেসে অবশ্যই বিবেচনা করা উচিত।

এর পাশাপাশি দুর্বলতা ইতিমধ্যে সংশোধন করা শুরু হয়েছে GCC, LLVM/Clang, Rust, Go, Python এবং binutils-এর জন্য প্রস্তুত। গিটহাব, বিটবাকেট এবং জিরা ইতিমধ্যেই গিটল্যাবের সাথে একত্রে একটি সমাধানের প্রস্তুতি নিচ্ছে।

পরিশেষে আপনি যদি এটি সম্পর্কে আরও জানতে আগ্রহী হন, আপনি পরামর্শ করতে পারেন নিম্নলিখিত লিঙ্কে বিশদ।


আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

  1. ডেটার জন্য দায়ী: AB ইন্টারনেট নেটওয়ার্ক 2008 SL
  2. ডেটার উদ্দেশ্য: নিয়ন্ত্রণ স্প্যাম, মন্তব্য পরিচালনা।
  3. আইনীকরণ: আপনার সম্মতি
  4. তথ্য যোগাযোগ: ডেটা আইনি বাধ্যবাধকতা ব্যতীত তৃতীয় পক্ষের কাছে জানানো হবে না।
  5. ডেটা স্টোরেজ: ওসেন্টাস নেটওয়ার্কস (ইইউ) দ্বারা হোস্ট করা ডেটাবেস
  6. অধিকার: যে কোনও সময় আপনি আপনার তথ্য সীমাবদ্ধ করতে, পুনরুদ্ধার করতে এবং মুছতে পারেন।