সিকিউরিটি গবেষক আম্মার আসকার ২ জুন, ২০২৬-এ ভিজুয়াল স্টুডিও কোডে একটি গুরুতর দুর্বলতা প্রকাশ করেন, যা প্রকাশ করে যে আক্রমণকারীরা একটি প্রতারণামূলকভাবে সরল এক-ক্লিক আক্রমণের মাধ্যমে গিটহাব OAuth টোকেন চুরি করতে পারে। মাইক্রোসফট পরবর্তী দিন, ৩ জুন, একটি অস্থায়ী সমাধান প্রকাশ করে, যা বলে দেয় যে রেডমন্ড এটিকে কতটা গুরুত্বের সাথে নিয়েছিল।
এই ত্রুটিটি GitHub.dev-কে লক্ষ্য করে, যা VS Code-এর ব্রাউজার-ভিত্তিক সংস্করণ এবং লক্ষ লক্ষ ডেভেলপার এটি ব্যবহার করেন তাদের ব্রাউজারে সরাসরি কোড সম্পাদনা করতে। এই দুর্বলতা ব্যবহার করে একজন আক্রমণকারী প্রতিটি রিপোজিটরির প্রবেশাধিকার অর্জন করতে পারেন যা ক্ষতিগ্রস্ত টোকেনের সাথে সংযুক্ত, ব্যক্তিগত রিপোজিটরি সহ।
আক্রমণটি কীভাবে কাজ করে
দুর্বলতাটি VS Code-এর ওয়েবভিউ সিস্টেমে বিদ্যমান, যা সম্পাদকের ভিতরে এম্বেডেড ওয়েব কন্টেন্ট রেন্ডার করার জন্য দায়ী। ওয়েবভিউগুলি একটি মেসেজ-পাসিং মেকানিজমের মাধ্যমে মূল VS Code প্রক্রিয়ার সাথে যোগাযোগ করে, এবং সেখানেই বিষয়গুলি আকর্ষণীয় হয়ে উঠে।
আক্রমণ শৃঙ্খলটি একটি ক্ষতিকারক লিঙ্ক দিয়ে শুরু হয় যা GitHub.dev ওয়ার্কস্পেসের দিকে ইঙ্গিত করে। সেই ওয়ার্কস্পেসের ভিতরে একটি জাভাস্ক্রিপ্টযুক্ত ক্ষতিকারক জুপিটার নোটবুক রয়েছে। যখন একজন বিকটিম লিঙ্কটি খোলে, তখন নোটবুকের কোডটি ওয়েবভিউ কনটেক্সটের মধ্যে কার্যকর হয়।
সেখান থেকে, ক্ষতিকারক স্ক্রিপ্টটি VS Code-এর ইন্টারফেসের সাথে প্রোগ্রাম্যাটিকভাবে মিলিত হতে কীবোর্ড ইভেন্টগুলি সিমুলেট করে। এটি GitHub.dev যে ট্রাস্ট মডেলটি ওয়ার্কস্পেস কন্টেন্টগুলির প্রতি প্রসারিত করে, তার ব্যবহার করে এডিটরকে আক্রমণকারীর কোডকে বৈধ ব্যবহারকারীর ইনপুট হিসাবে বিবেচনা করতে বাড়িয়ে দেয়।
তারপর স্ক্রিপ্টটি বিশ্বস্ত ওয়ার্কস্পেস থেকে একটি ক্ষতিকারক এক্সটেনশন ইনস্টল করে। সেই এক্সটেনশনটি চুপচাপ বিষয়ের GitHub OAuth টোকেন বহির্বাহিত করে, যেখানে কোনো দৃশ্যমান সতর্কবার্তা ট্রিগার হয় না। পুরো ধাপটি শুধুমাত্র একটি লিঙ্কে ক্লিক করার মাধ্যমেই সম্ভব।
অস্কার প্রকাশের সাথে একটি পূর্ণাঙ্গ পাবলিক প্রুফ-অফ-কনসেপ্ট রিপোজিটরি প্রকাশ করেছেন, যা সিকিউরিটি টিমগুলিকে ভালনারেবিলিটি বুঝতে এবং পরীক্ষা করতে প্রয়োজনীয় তথ্য প্রদান করে।
মাইক্রোসফ্টের প্রতিক্রিয়া এবং ব্যাপক প্যাটার্ন
জুন ৩-এ মাইক্রোসফ্টের প্যাচটি দুটি প্রধান সুরক্ষা যোগ করে। প্রথমত, এটি GitHub.dev-এর মধ্যে কিছু ফাইল টাইপ খোলার চেষ্টা করার সময় একটি নিশ্চিতকরণ প্রম্পট যোগ করে, যা আক্রমণটিকে এতটাই কার্যকর করে তোলে এমন সহজ এক-ক্লিক চেইনটিকে বাধা দেয়। দ্বিতীয়ত, এটি দুষ্টু কোড নিঃশব্দে ইনস্টল করার জন্য এক্সপ্লয়িটটির উপর নির্ভরশীল সম্ভাব্য ক্ষতিকর এক্সটেনশন কমান্ডগুলিকে বন্ধ করে দেয়।
এই প্রকাশের সময়সীমা উল্লেখযোগ্য। কেবল কয়েক সপ্তাহ আগে, ২০২৬ সালের ২০ মে, গিটহাব নিজেই একটি বিষাক্ত VS Code এক্সটেনশন দ্বারা প্রায় ৩,৮০০টি অভ্যন্তরীণ রিপোজিটরি দখলের শিকার হয়।
ডেভেলপার এবং সংগঠনগুলির জন্য এটির অর্থ কী
ব্যক্তিগত ডেভেলপারদের জন্য, প্রাথমিক কাজটি সহজ: GitHub.dev সেশনগুলিকে Microsoft-এর সর্বশেষ প্যাচগুলি দিয়ে আপডেট করুন। যদি গত কয়েক সপ্তাহে আপনি GitHub.dev ওয়ার্কস্পেসের অপরিচিত লিঙ্কে ক্লিক করে থাকেন, তবে যেকোনো OAuth টোকেন পরিবর্তন করুন। আপনার ইনস্টল করা এক্সটেনশনগুলি পরীক্ষা করুন এবং যা আপনি সক্রিয়ভাবে ব্যবহার করছেন না, তা অপসারণ করুন।
সিকিউরিটি টিমগুলিকে যারা GitHub.dev-এ অ্যাক্সেস রাখে তাদের পরীক্ষা করা উচিত এবং তাদের OAuth টোকেনগুলি কি প্রয়োজনের চেয়ে বেশি অনুমতি বহন করে কিনা। সর্বনিম্ন অনুমতির নীতি, অর্থাৎ শুধুমাত্র প্রয়োজনীয় সর্বনিম্ন অ্যাক্সেসই টোকেনগুলিকে দেওয়া, এই নির্দিষ্ট আক্রমণের ক্ষতির পরিসরকে উল্লেখযোগ্যভাবে সীমাবদ্ধ করত।
