Skip to content

অদৃশ্য কোড দিয়ে সাইবার হামলা: গিটহাবের নিরাপত্তা নিয়ে প্রশ্ন

অদৃশ্য কোড দিয়ে সাইবার হামলা: গিটহাবের নিরাপত্তা নিয়ে প্রশ্ন

আজকাল ডিজিটাল দুনিয়া যত এগোচ্ছে, সাইবার আক্রমণের ধরনও তত বদলাচ্ছে। হ্যাকাররা (hackers) নিত্যনতুন কৌশল ব্যবহার করে আমাদের অনলাইন (online) জীবনকে বিপদে ফেলছে। সম্প্রতি এক নতুন এবং উদ্বেগজনক সাইবার হামলার (cyber attack) ঘটনা সামনে এসেছে, যা বিশ্বের বৃহত্তম কোড রিপোজিটরি (code repository) গিটহাব (GitHub) সহ অন্যান্য প্ল্যাটফর্মে (platform) আঘাত হেনেছে। এই হামলার মূল অস্ত্র হলো ‘অদৃশ্য কোড’ (invisible code)। ভাবছেন, অদৃশ্য কোড আবার কী? এই কোডগুলি এমনভাবে লেখা হয় যা সাধারণ চোখে ধরা পড়ে না, কিন্তু সফটওয়্যার (software) তৈরি বা চালানোতে এর মারাত্মক প্রভাব পড়তে পারে। এটি সাপ্লাই-চেইন হামলা (Supply-chain attack) নামে পরিচিত এক বিশেষ ধরনের আক্রমণের অংশ, যা প্রযুক্তির জগতে এক নতুন চ্যালেঞ্জ (challenge) তৈরি করেছে।

বিশেষজ্ঞরা এটিকে ‘ট্রোজান সোর্স (Trojan Source)’ অ্যাটাক বলে অভিহিত করেছেন। এই ধরনের হামলায় হ্যাকাররা ইউনিকোড (Unicode) এর কিছু বিশেষ ফিচার (feature) ব্যবহার করে, যা বাইডিরেকশনাল টেক্সট (bidirectional text) বা ডান থেকে বামে লেখা ভাষার জন্য তৈরি করা হয়েছিল। এই ফিচারগুলি কোডের লেখার ক্রমকে এমনভাবে পরিবর্তন করতে পারে, যা মানুষের চোখে একটি কোডকে একরকম দেখায়, কিন্তু কম্পাইলার (compiler) বা ইন্টারপ্রেটার (interpreter) যখন সেই কোড প্রসেস (process) করে, তখন তার অর্থ সম্পূর্ণ ভিন্ন হয়ে যায়। এটি এমন এক চতুর কৌশল, যা ডেভেলপার (developer) এবং কোড রিভিউয়ার (code reviewer) উভয়কেই সহজে ফাঁকি দিতে পারে।

অদৃশ্য ইউনিকোড কোড কী এবং কিভাবে কাজ করে?

ইউনিকোড (Unicode) হলো একটি আন্তর্জাতিক স্ট্যান্ডার্ড (standard) যা পৃথিবীর প্রায় সব ভাষার অক্ষর এবং প্রতীককে ডিজিটালি (digitally) উপস্থাপন করতে সাহায্য করে। এই স্ট্যান্ডার্ডের মধ্যে কিছু বিশেষ ‘কন্ট্রোল ক্যারেক্টার (control characters)’ রয়েছে, যা টেক্সটের দিক পরিবর্তন করতে ব্যবহৃত হয়, বিশেষ করে আরবি (Arabic), হিব্রু (Hebrew) বা ফার্সির (Farsi) মতো ভাষাগুলির জন্য যা ডান থেকে বামে লেখা হয়। যেমন, ‘রাইট-টু-লেফট ওভাররাইড (Right-to-Left Override – RLO)’, ‘লেফট-টু-রাইট ওভাররাইড (Left-to-Right Override – LRO)’ এবং ‘পপ ডিরেকশনাল ফরমেটিং (Pop Directional Formatting – PDF)’। এই ক্যারেক্টারগুলি টেক্সটকে ভিন্নভাবে দেখাতে সাহায্য করে, কিন্তু মূল কন্টেন্ট (content) একই থাকে।

হ্যাকাররা এই কন্ট্রোল ক্যারেক্টারগুলির অপব্যবহার করে। তারা সোর্স কোড (source code)-এর মধ্যে এই অদৃশ্য ক্যারেক্টারগুলি ঢুকিয়ে দেয়। ধরা যাক, একটি কোড দেখতে এমন দেখাচ্ছে: if (user.isAdmin()) { execute_safe_code(); } else { execute_malicious_code(); }। কিন্তু এই অদৃশ্য ক্যারেক্টারগুলি ব্যবহার করে হ্যাকাররা এমনভাবে কোডকে সাজিয়ে দিতে পারে যে মানুষের চোখে execute_safe_code() অংশটি if ব্লকের (block) মধ্যে থাকলেও, কম্পাইলারের কাছে এটি আসলে execute_malicious_code() হিসেবে গণ্য হয়। অর্থাৎ, যখন কোড রান (run) করা হয়, তখন execute_malicious_code() অংশটি এক্সিকিউট (execute) হয়ে যায়, যা কোড রিভিউয়ারের চোখ এড়িয়ে গেছে। যেহেতু এই ক্যারেক্টারগুলি দৃশ্যমান নয়, তাই একজন ডেভেলপার তাদের চোখ দিয়ে কোড চেক (check) করলেও এই লুকানো অংশটি ধরতে পারেন না। এটি কোডবেস (codebase)-এ লুকানো ব্যাকডোর (backdoor) তৈরি করার একটি অত্যন্ত কার্যকর উপায়।

কেন এটি এত বিপজ্জনক?

১. অদৃশ্য প্রকৃতির কারণে

এই আক্রমণের সবচেয়ে বড় বিপদ হলো এর অদৃশ্য প্রকৃতি। একজন অভিজ্ঞ ডেভেলপার বা সাইবার নিরাপত্তা বিশেষজ্ঞও খালি চোখে এই লুকানো কোড শনাক্ত করতে পারবেন না। যেহেতু কোডের দৃশ্যমানতা অপরিবর্তিত থাকে, তাই ম্যানুয়াল কোড রিভিউ (manual code review) অথবা স্বয়ংক্রিয় কোড অ্যানালাইসিস টুলস (automated code analysis tools) দ্বারাও এটি সহজে ধরা পড়ে না। এটি একটি ম্যালওয়্যার (malware) বা দুর্বলতা (vulnerability) কোডবেসের গভীরে লুকিয়ে রাখার এক নতুন উপায়।

২. সাপ্লাই-চেইন হামলার জন্য আদর্শ

বর্তমান বিশ্বে প্রায় সব সফটওয়্যারই ওপেন সোর্স (open source) লাইব্রেরি (library) বা থার্ড-পার্টি (third-party) কম্পোনেন্ট (component) ব্যবহার করে তৈরি হয়। এই অদৃশ্য কোডগুলি সাপ্লাই-চেইন হামলার জন্য নিখুঁত। একটি ছোট ওপেন সোর্স প্রজেক্টে এই ধরনের দূষিত কোড ঢুকিয়ে দিলে, সেই প্রজেক্টটি ব্যবহার করে তৈরি হওয়া হাজার হাজার অন্যান্য সফটওয়্যারও প্রভাবিত হতে পারে। একবার একটি জনপ্রিয় লাইব্রেরি আক্রান্ত হলে, তার প্রভাব দ্রুত ব্যাপক আকার ধারণ করে, যা অজস্র কোম্পানি (company) এবং ব্যবহারকারীদের জন্য ঝুঁকি তৈরি করে।

৩. ব্যাপক প্রভাব

গিটহাব (GitHub), গিটল্যাব (GitLab) বা বিটবাকেট (Bitbucket)-এর মতো প্ল্যাটফর্মগুলি কোটি কোটি সফটওয়্যার ডেভেলপারের কেন্দ্র। যদি এই প্ল্যাটফর্মগুলির মাধ্যমে এমন আক্রমণ সফল হয়, তবে বিশ্বের বড় বড় প্রযুক্তি প্রতিষ্ঠান থেকে শুরু করে ছোট স্টার্টআপ (startup) পর্যন্ত সবাই ঝুঁকির মুখে পড়ে। সফটওয়্যার ডেভলপমেন্ট ইকোসিস্টেমের (software development ecosystem) ভিত্তি দুর্বল হয়ে পড়ে, যা ডিজিটাল অর্থনীতিতে (digital economy) ব্যাপক ক্ষয়ক্ষতি সাধন করতে পারে।

৪. পুরনো অথচ নতুন কৌশল

ইউনিকোড বিডিরেকশনাল ক্যারেক্টার (Unicode bidirectional characters) নতুন কিছু নয়। এগুলি বহু বছর ধরেই বিদ্যমান। কিন্তু এদেরকে কোড রিশাফলিং (code reshuffling) বা কোড পুনরায় সাজানোর কাজে ব্যবহার করে সাপ্লাই-চেইন হামলা চালানো এক নতুন এবং অপ্রত্যাশিত কৌশল। হ্যাকাররা পুরোনো প্রযুক্তির নতুন অপব্যবহারের পথ খুঁজে বের করছে, যা সাইবার নিরাপত্তা বিশেষজ্ঞদের জন্য প্রতিনিয়ত নতুন চ্যালেঞ্জ তৈরি করছে।

গিটহাব এবং অন্যান্য প্ল্যাটফর্মের প্রতিক্রিয়া

এই দুর্বলতা প্রকাশ্যে আসার পর থেকে গিটহাব, গিটল্যাব (GitLab) এবং বিটবাকেট (Bitbucket) সহ অন্যান্য কোড হোস্টিং প্ল্যাটফর্ম (code hosting platforms) দ্রুত ব্যবস্থা নিতে শুরু করেছে। তারা তাদের প্ল্যাটফর্মগুলিতে এমন অদৃশ্য কোড শনাক্ত করার এবং হাইলাইট (highlight) করার পদ্ধতি যোগ করছে। ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট (Integrated Development Environment – IDE) যেমন ভিস্যুয়াল স্টুডিও কোড (Visual Studio Code), ইন্টেলিজে আইডিয়া (IntelliJ IDEA) এবং অন্যান্য টেক্সট এডিটরগুলিও (text editors) তাদের নতুন সংস্করণে এই কন্ট্রোল ক্যারেক্টারগুলি সম্পর্কে সতর্কবার্তা (warning) বা ভিজ্যুয়াল ইন্ডিকেটর (visual indicator) যোগ করছে। কম্পাইলার প্রস্তুতকারকরাও (compiler manufacturers) তাদের টুলসকে আপডেট (update) করছে যাতে এই ধরনের কোড স্বয়ংক্রিয়ভাবে ব্লক (block) বা রিপোর্ট (report) করা যায়। এই সমন্বিত প্রচেষ্টা সাইবার নিরাপত্তা কমিউনিটির (community) জন্য অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি দ্রুত প্রতিক্রিয়া এবং প্রতিরোধের পথ খুলে দেয়।

ডেভেলপারদের করণীয় কী?

১. সচেতনতা

এই ধরনের নতুন আক্রমণের বিষয়ে সচেতন থাকা ডেভেলপারদের জন্য সবচেয়ে গুরুত্বপূর্ণ। কিভাবে অদৃশ্য ইউনিকোড ক্যারেক্টার কোডকে ম্যানিপুলেট (manipulate) করতে পারে সে সম্পর্কে জানতে হবে এবং এই ঝুঁকি সম্পর্কে দলের অন্য সদস্যদেরও অবগত করতে হবে।

২. কোড রিভিউ প্রক্রিয়া শক্তিশালীকরণ

যদিও এটি অদৃশ্য, কোড রিভিউ প্রক্রিয়াকে আরও শক্তিশালী করতে হবে। সন্দেহজনক কোড সোর্স (source) থেকে আসা কোডকে আরও কঠোরভাবে যাচাই করতে হবে। বিশেষ করে, যে লাইব্রেরিগুলি নতুন বা অজানা সোর্স থেকে আসছে, সেগুলির ক্ষেত্রে অতিরিক্ত সতর্কতা অবলম্বন করা জরুরি।

৩. ডেভেলপমেন্ট টুলস নিয়মিত আপডেট

IDE, কম্পাইলার এবং অন্যান্য ডেভেলপমেন্ট টুলসগুলি নিয়মিত আপডেট করা আবশ্যক। সফটওয়্যার ভেন্ডররা (software vendors) যখন এই দুর্বলতা প্রতিরোধের জন্য প্যাচ (patch) বা আপডেট প্রকাশ করে, তখন তা যত দ্রুত সম্ভব ইনস্টল (install) করতে হবে।

৪. সোর্স কোড স্ক্যানার ব্যবহার

স্বয়ংক্রিয় সোর্স কোড স্ক্যানার (source code scanner) এবং স্ট্যাটিক অ্যানালাইসিস টুলস (static analysis tools) ব্যবহার করা উচিত, যা এই ধরনের লুকানো ক্যারেক্টার শনাক্ত করতে সক্ষম। এই টুলসগুলি কোডের গভীর স্তরে গিয়ে সম্ভাব্য দুর্বলতা খুঁজে বের করতে পারে যা মানুষের পক্ষে সম্ভব নয়।

৫. নিরাপদ কোডিং অভ্যাস

সবসময় নিরাপদ কোডিং অভ্যাস (secure coding practices) অনুসরণ করুন। অপ্রয়োজনীয় বা অজানা কোড এড়িয়ে চলুন। কোড ডিপ্লোয় (deploy) করার আগে একাধিকবার যাচাই করুন এবং নিরাপত্তা নীতিগুলি কঠোরভাবে অনুসরণ করুন।

৬. থার্ড-পার্টি লাইব্রেরি যাচাই

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

ভবিষ্যতের সাইবার নিরাপত্তার চ্যালেঞ্জ

অদৃশ্য কোড ব্যবহার করে সাপ্লাই-চেইন হামলার ঘটনা সাইবার নিরাপত্তার জগতে একটি নতুন মাত্রা যোগ করেছে। এটি প্রমাণ করে যে হ্যাকাররা প্রতিনিয়ত নতুন এবং সৃজনশীল উপায়ে সিস্টেমের দুর্বলতাগুলি খুঁজে বের করছে। ভবিষ্যতে সাইবার নিরাপত্তা শুধু টেকনিক্যাল সমাধানের উপর নির্ভর করবে না, বরং ব্যবহারকারী এবং ডেভেলপারদের সচেতনতা, প্রশিক্ষণ এবং সতর্কতাও একটি বড় ভূমিকা পালন করবে। আমাদের আরও স্মার্ট (smart) এবং প্রোঅ্যাকটিভ (proactive) হতে হবে। পুরোনো প্রযুক্তির নতুন অপব্যবহার থেকে রক্ষা পেতে হলে নিরন্তর গবেষণা (research), উদ্ভাবন (innovation) এবং সাইবার নিরাপত্তা কমিউনিটির মধ্যে সহযোগিতা (collaboration) অপরিহার্য। ডিজিটাল বিশ্বকে সুরক্ষিত রাখতে এটি একটি চলমান যুদ্ধ, যেখানে প্রতিটি নতুন কৌশল একটি নতুন শেখার সুযোগ নিয়ে আসে।

উপসংহার

অদৃশ্য ইউনিকোড (Unicode) ব্যবহার করে সাপ্লাই-চেইন হামলা (Supply-chain attack) সাইবার জগতে এক নতুন এবং গুরুতর চ্যালেঞ্জ। গিটহাব (GitHub) সহ অন্যান্য কোড রিপোজিটরিগুলিতে (code repositories) এই ধরনের হামলা ডিজিটাল ইকোসিস্টেমের (ecosystem) নিরাপত্তাকে প্রশ্নের মুখে ফেলেছে। তবে, দ্রুত প্রতিক্রিয়া, উন্নত ডেভেলপমেন্ট টুলস (development tools) এবং ডেভেলপারদের সচেতনতা ও কঠোর নিরাপত্তা প্রোটোকল (protocol) এই বিপদ মোকাবিলায় সহায়ক হবে। সাইবার নিরাপত্তার এই নিরন্তর যুদ্ধে জয়ী হতে হলে আমাদের সবাইকে একসঙ্গে কাজ করতে হবে এবং সর্বদা নতুন হুমকির জন্য প্রস্তুত থাকতে হবে।

মন্তব্য করুন

আপনার ই-মেইল এ্যাড্রেস প্রকাশিত হবে না। * চিহ্নিত বিষয়গুলো আবশ্যক।