লিনাক্সে ভাইরাসের ইতিকথা

লিনাক্স ব্যবহার শুরুর আগে আমি পুরোপুরি উইন্ডোজ ব্যবহার করতাম। যখন লিনাক্স ব্যবহার শুরু করলাম এটি অন্যান্য নতুন ধারনার মত প্রথম শুরু ছিল যার সাথে উইন্ডোজের খুব কমই সাদৃশ্য ছিল।

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

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

এ পোস্টে আমি ভাইরাস এবং লিনাক্স সিকিউরিটি নিয়ে কিছু পূর্বকথা আলোচনা করবো যেটি সম্ভাব্য অনেক বাতিল এবং ভুল ধারনাগুলিকে স্পষ্ট করে তুলে ধরবে।

ভাইরাস কি?

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

"A computer virus is a program that can copy itself and infect a computer. The term "virus" is also commonly but erroneously used to refer to other types of malware, adware, and spyware programs that do not have the reproductive ability. A true virus can only spread from one computer to another (in some form of executable code) when its host is taken to the target computer"

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

এ সংজ্ঞাটি আগেই বেশ কিছু ধারনাকে স্পষ্ট করেছে। তার মধ্যে গুরুত্বপূর্ন ধারনা গুলি হলঃ

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

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

ভাইরাসের মৌলিক বিষয়সমূহ এবং লিনাক্সের গঠনকাঠামো

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

১নং পদ্ধতি: সিস্টেম এক্সিকিউটেবল ফাইলসমূহে নিজস্ব কোড যুক্ত করে

ইউনিক্সের একটি সফল উত্তরাধিকার হিসেবে লিনাক্স এমন একটি ফাইল ব্যবস্থাপনা সমর্থন করে যেটি মৌলিকভাবে কোন ফাইলের মালিকানা এবং অধিকার সংরক্ষন করে। আরো সহজে বলা যায় যে, বাস্তবে এটি এভাবে কাজ করে থাকে-

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

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

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

তাই, অনুগ্রহপূর্বক রুট একাউন্ট ব্যবহার করবেন না যতক্ষন না প্রয়োজন হয়।

২নং পদ্ধতি: এক্সিকিউশন এর সময়ে অন্য কোন প্রসেসের মেমোরীর সাথে সংযুক্ত করা

লিনাক্স ইনটেল এর এক্স'৮৬ স্থাপত্যের উপর চলে (এএমডি ৬৪-বিট প্রকৃতপক্ষে ইনটেল এক্স'৮৬ এর একটি এক্সটেনশত মাত্র), তাই লিনাক্স কিভাবে এটিকে ব্যবহার করে থাকে তা বোঝাটা বেশ গুরুত্বপূর্ন। এক্স'৮৬ স্থাপত্য মূলতঃ চারটি রিং ব্যবহার করে থাকে, যেগুলিকে ০ থেকে ৩ দ্বারা চিহ্নিত করা হয়ে থাকে। লিনাক্স এ রিং-গুলির দুটি ব্যবহার করে থাকে, যথাঃ রিং-০ কার্নেল সিস্টেম কোড এর জন্য এবং রিং-৩ বিভিন্ন ব্যবহারকারীর প্রসেস, এ্যাপ্লিকেশন ইত্যাদির জন্য ব্যবহৃত হয়। এ দু'ধরনের কোডের মিশ্রন লিনাক্সে কখনই ঘটে না, তারা ভিন্ন ধরনের রিং ব্যবহার করে এবং এদের যোগাযোগের জন্য মাত্র একটিই দরজা/গেট রয়েছে। এখানে মূল ব্যাপারটি হচ্ছে একমাত্র কার্নেলই পারে কোন কিছুর পরিবর্তন করতে যাতে ভাইরাস সে সুযোগের সদ্ব্যবহার করতে পারে।

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

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

অন্যান্য ধরনের ম্যালওয়্যার

ভাইরাস নিয়ে আলোচনা তো অনেক হল, আসুন এবার অন্যান্য এ জাতীয় ক্ষতিকর কোড নিয়ন্ত্রিত প্রোগ্রামসমূহ নিয়ে কথা বলা যাক।

রুটকিটস্

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

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

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

ট্রোজানসমূহ

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

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

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

উপসংহার

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

সূত্রঃ ইন্টারনেট

0 comments:

Post a Comment