স্টাখেলদ্রাথ বটনেটের ডিস্ট্রিবিউটেড ডিনায়েল অব সার্ভিস (DDoS) আক্রমণের নকশা (এটা বটনেটের ক্লায়েন্ট সার্ভার নকশারও অন্যতম উদাহরণ)
"বটনেট" হল যখন একজন ব্যবহারকারী অনেকগুলো ইন্টারনেট যুক্ত যন্ত্র (Device) ব্যবহার করে বিভিন্ন ধরনের কাজ করে। **বটনেট** ব্যবহার করে ডিস্ট্রিবিউটেড ডিনায়েল অব সার্ভিস (DDoS), তথ্য চুরি, স্প্যাম পাঠানো, আক্রমণকারীকে ওই যন্ত্রের নিয়ন্ত্রণ দেয়া ইত্যাদি করা যায়। বটনেটের স্বত্বাধিকারী কমান্ড এন্ড কন্ট্রোল (C&C) সফটওয়্যার দিয়ে এটিকে নিয়ন্ত্রণ করতে পারে। বটনেট শব্দটি এসেছে রোবট এবং নেটওয়ার্কের সংমিশ্রণে। শব্দটি মূলত নেতিবাচক দৃষ্টিকোণ থেকে ব্যবহৃত হয়।

ব্যবহার
-------

বটনেট ব্যবহার হয় মূলত কোন কম্পিউটারের নিরাপত্তা ব্যবস্থা ভেঙ্গে সেই কম্পিউটারকে নিয়ন্ত্রণের জন্য। এইভাবে অনেকগুলো যন্ত্র যখন কোন ম্যালওয়্যার (malware) বা ক্ষতিকর সফটওয়্যার দ্বারা আক্রান্ত হয়ে যন্ত্রের দখল অন্য কোন তৃতীয় পক্ষের নিয়ন্ত্রণে দিয়ে দেয় তখন প্রতিটা কম্পিউটার একেকটা ‘বট’ হয়ে যায়। এরপর বটনেটের নিয়ন্ত্রক আইআরসি (IRC) এবং হাইপারটেক্স ট্রান্সফার প্রটোকল (Hypertext Transfer Protocol - HTTP) এর মত নেটওয়ার্ক প্রটোকল ব্যবহার করে
মূলত সাইবার অপরাধীরাই বিভিন্ন উদ্দেশ্যে সবচেয়ে বেশি বটনেট ব্যবহার করে থাকে।

গঠন
---

সময়ের সাথে সাথে শনাক্তকরণের বিভিন্ন উপায় আবিষ্কারের সাথে সাথে বটনেটের গঠনও বদলাচ্ছে। সাধারণত, বট প্রোগ্রামগুলো ক্লায়েন্ট হিসেবে তৈরি করা হয় যাতে তারা সার্ভারের সাথে যোগাযোগ রাখতে পারে। এর ফলে বটের নিয়ন্ত্রক (যিনি বা যারা বটকে নিয়ন্ত্রণ করছে) দূরে কোথাও থেকেও সকল কার্যক্রম নিয়ন্ত্রণ করতে পারে। আগের অনেক বটনেটই তাই এখন পিয়ার-টু-পিয়ার (peer-to-peer) নেটওয়ার্কের মাধ্যমে যোগাযোগ করে। ক্লায়েন্ট-সার্ভার মডেলের মত পি-টু-পি (P2P-Peer to Peer) বট প্রোগ্রামও একই কাজ করে থাকে। এর ফলে তাদের আর মূল সার্ভারের মাধ্যমে যোগাযোগ না করলেও চলে।

### ক্লায়েন্ট-সার্ভার মডেল (Client-server model)

ক্লায়েন্ট-সার্ভারের মডেলের উপর ভিত্তি করে তৈরি নেটওয়ার্ক, যেখানে ক্লায়েন্ট মূল সার্ভার থেকে সকল সেবা ও উপাদান নিয়ে থাকে।
ইন্টারনেটের প্রথমদিকের বটনেটগুলো ক্লায়েন্ট-সার্ভার নকশা অনুসারে কাজ করত। সাধারণত, এই বটনেটগুলো আইআরসি (IRC-Internet Relay Chat) নেটওয়ার্ক কিংবা ওয়েবসাইটের মাধ্যমে কাজ করে থাকে। আক্রান্ত ক্লায়েন্টে পূর্বে থেকেই নির্ধারিত একটি জায়গা দখল করে নিয়ে এটি সার্ভার থেকে নির্দেশের অপেক্ষা করে। বটের নিয়ন্ত্রক সার্ভারে তার নির্দেশ প্রেরণ করেন, যেটা সার্ভার আক্রান্ত ক্লায়েন্টগুলোতে ছড়িয়ে দেয়। ক্লায়েন্টে বটগুলো নির্দেশ অনুযায়ী কাজ করে তথ্য সার্ভারে পাঠাতে থাকে।
আইআরসি বটনেটগুলোর ক্ষেত্রে, আক্রান্ত ক্লায়েন্ট কোন আক্রান্ত আইআরসি সার্ভারের সাথে যুক্ত হয় এবং আগে থেকে বট নিয়ন্ত্রকের তৈরী করা চ্যানেলে যোগদান করে। এক্ষেত্রে বট নিয়ন্ত্রক আইআরসি সার্ভারের মাধ্যমে চ্যানেলে নির্দেশ পাঠাতে থাকে। প্রতিটি ক্লায়েন্ট নির্দেশগুলো গ্রহণ করে এবং সে মোতাবকে কাজ আইআরসি চ্যানেলে তথ্য ফেরত পাঠাতে থাকে।
অনেক আগে থেকেই আইআরসি তার যোগাযোগের প্রটোকলের কারণে ‘কমান্ড এন্ড কন্ট্রোল’এর আওতাধীন। বট নিয়ন্ত্রক নিজে একটা আইআরসি চ্যানেল তৈরী করে নেয় যাতে আক্রান্ত ক্লায়েন্টগুলো যোগ দিতে পারে। এমনকি নিয়ন্ত্রক বটকে নির্দেশ পাঠাতে চ্যানেলের প্রসঙ্গ পরিবর্তন করে দিতে পারে। যেমনঃ 
`:herder!herder@example.com TOPIC #channel ddos www.victim.com`
এই বার্তাটি বট নিয়ন্ত্রক যদি পাঠায় তার মানে হল #channel এর সকল আক্রান্ত ক্লায়েন্টগুলোকে www.victim.com এ DDoS আক্রমণ চালাতে নির্দেশ দিচ্ছে। বট ক্লায়েন্টগুলো আক্রমণ শুরু করলে ফিরতি বার্তায় এরকম তথ্য দিতে পারে-
`:bot1!bot1@compromised.net PRIVMSG #channel I am ddosing www.victim.com`
আইআরসি ব্যবহারে একটিই সমস্যা যে বটনেট হিসেবে ব্যবহৃত হতে প্রতিটি বট ক্লায়েন্টকে তার সার্ভার, পোর্ট এবং চ্যানেল সম্বন্ধে অবশ্যই জানতে হবে। ম্যালওয়্যার প্রতিরোধকারী (Anti-malware) সংস্থাগুলো টের পেলে এসব সার্ভার ও চ্যানেল বন্ধ করে দেয়, যাতে বটনেট আক্রমণ রোধ করা যায়। যদি এরকমও হয়, তাও ক্লায়েন্টগুলো আক্রান্ত অবস্থাতেই থাকে। তারা যেহেতু কোন নির্দেশ গ্রহণ করতে পারছে না, সেক্ষেত্রে সুপ্ত অবস্থাতেই ক্লায়েন্টে থেকে যায়। এই সমস্যা সমাধানে, একটি বটনেটের একাধিক সার্ভার বা চ্যানেল থাকতে পারে। যদি কোন একটা সার্ভার বা চ্যানেল বন্ধ হয়ে যায় তো বটগুলো অন্য আরেকটি সার্ভার বা চ্যানেলে স্থান পরিবর্তন করে নেয়। এরপরেও আইআরসি চলাচলে নজর রেখে সম্ভাব্য চ্যানেল কিংবা সার্ভার খুঁজে বের করে বন্ধ করে দেয়া সম্ভব। 
অনেক বৃহৎ বটনেট আইআরসি-র পরিবর্তে ডোমেইন (domain) ব্যবহার করে থাকে। এগুলো মূলত দুর্ভেদ্য হোস্টিং সার্ভিসে স্থান নিয়ে থাকে।

### পিয়ার-টু-পিয়ার (Peer-to-Peer)

মূল নিবন্ধ: পিয়ার-টু-পিয়ার
একটি পিয়ার-টু-পিয়ার (P2P) নেটওয়ার্ক যেখানে নোড/পিয়ারগুলো কোনরকম কেন্দ্রীয় নিয়ন্ত্রক ব্যবস্থা ছাড়াই নিজেদের মধ্যে প্রয়োজনীয় তথ্য আদান প্রদান করছে
আইআরসি বটনেটগুলো খুঁজে আক্রান্ত করার জন্য বট নিয়ন্ত্রক পিয়ার-টু-পিয়ার নেটওয়ার্কে ম্যালওয়্যার ছড়িয়ে দেয়। এইসব বটগুলো ডিজিটাল সিগনেচার ব্যবহার করে যাতে প্রাইভেট কী (Private Key) ছাড়া কেউ এগুলো নিয়ন্ত্রণ করতে না পারে। এরকম বটনেটের উদাহরণ হল- Gameover ZeuS এবং ZeroAccess বটনেট। 
তুলনামূলক নতুন বটনেটগুলো পিয়ার-টু-পিয়ার নেটওয়ার্কে পুরোদমে কাজ করতে পারে। কেন্দ্রীয় কোন সার্ভারে সাথে যোগাযোগ ছাড়াই পিয়ার-টু-পিয়ার বট একইসাথে ক্লায়েন্ট এবং আদেশ প্রদানকারী সার্ভার হিসেবে কাজ করে। এর ফলে কেন্দ্রীয় সার্ভার নির্ভর বটনেটের তুলনায় ব্যর্থতার পরিমাণ কম হয়।
একই রকম অন্য কোন আক্রান্ত মেশিনের সন্ধানে বট চতুরভাবে ভিন্ন ভিন্ন আইপি এড্রেসে সন্ধান করতে থাকে যতক্ষণ না সেরকম মেশিনের খোঁজ পায়। পরের বট তখন বিভিন্ন তথ্য যেমন- সফটওয়্যার ভার্সন কিংবা তার বটতালিকা ইত্যাদি প্রথম বটের কাছে পাঠাতে থাকে। যদি কোন একটি বট অন্যটির থেকে হালনাগাদে পিছিয়ে থাকে তখন অন্যটি থেকে প্রয়োজনীয় তথ্য নিয়ে হালনাগাদ করে নেয়। এইভাবে, প্রতেকটি বট নিজস্ব আক্রান্ত মেশিনের তালিকা বড় করার পাশাপাশি অন্যান্য বটগুলোর সাথে হালনাগাদ করে নিতে থাকে।

বটনেটের মৌলিক উপাদানসমূহ
------------------------

বটনেটে বিভিন্ন উপাদান জড়িত। তার মধ্যে মূল কিছু নিম্নে বর্ণিত হল

### কমান্ড এন্ড কন্ট্রোল

কম্পিউটার সিকিউরিটির ক্ষেত্রে, কমান্ড এন্ড কন্ট্রোল কাঠামো সার্ভার এবং অন্যান্য প্রযুক্তি নিয়ে গঠিত যার উদ্দেশ্য ম্যালওয়্যার তথা বটনেটের নিয়ন্ত্রণ। কমান্ড এন্ড কন্ট্রোল সার্ভার হয় ম্যালওয়্যার অপারেটর দ্বারা নিয়ন্ত্রিত অথবা তারা নিজেরাই আক্রান্ত হার্ডওয়্যারের মাধ্যমে নিয়ন্ত্রণ বজায় রাখে। ফাস্ট ফ্লাক্স ডিএনএস (Fast-flux DNS) দিয়ে কন্ট্রোল সার্ভার খুঁজে বের করা দুষ্কর করা সম্ভব, যদিও তা প্রতিদিনই পরিবর্তন হচ্ছে। কন্ট্রোল সার্ভার প্রায়শই ডোমেইন উৎপাদক এলগরিদম ব্যবহার করে এক ডিএনএস ডোমেইন থেকে আরেক ডিএনএস ডোমেইনে পরিবর্তন করে।
কিছু ক্ষেত্রে, কম্পিউটার নিরাপত্তা বিশেষজ্ঞরা সফলভাবে ম্যালওয়্যার কমান্ড এন্ড কন্ট্রোল নেটওয়ার্ক ধ্বংস করতে সক্ষম হয়েছেন। এর মধ্যে আছে- সার্ভার আটক করা, সার্ভারকে ইন্টারনেট থেকে বিচ্ছিন্ন করা, যেসব ডোমেইন দ্বারা ম্যালওয়্যার এর কমান্ড এন্ড কন্ট্রোল সার্ভারে যোগাযোগ করে সেগুলো বাতিল করা কিংবা কমান্ড এন্ড কন্ট্রোল নেটওয়ার্ক-ই দেখলে নেয়া। এর ফলস্বরুপ, কমান্ড এন্ড কন্ট্রোল অপারেটররা কৌশল পরিবর্তন করে চলছে। যেমন- কমান্ড এন্ড কন্ট্রোল নেটওয়ার্ক প্রচলিত ভাল আইআরসি কিংবা টর (Tor) কাঠামোর আড়ালে চালানো, পিয়ার-টু-পিয়ার নেটওয়ার্কের বহুল প্রচলন যাতে নির্দিষ্ট সার্ভারের উপর নির্ভরতা কমে এবং পাব্লিক কী এনক্রিপশন ব্যবহারের মাধ্যমে নেটওয়ার্ক দখল আটকান।

### জম্বি কম্পিউটার (Zombie computer)

কম্পিউটার সাইন্সে, জম্বি কম্পিউটার বলতে এমন একটি কম্পিউটার বুঝায় যেটি ইন্টারনেটে যুক্ত এবং কোন হ্যাকার, কম্পিউটার ভাইরাস কিংবা ট্রোজান হর্স(Trojan Horse) দ্বারা নিয়ন্ত্রিত এবং দূর থেকে নিয়ন্ত্রণের মাধ্যমে যার দ্বারা বিভিন্ন দুষ্কৃতিমূলক কাজ করা সম্ভব। বটনেট জম্বি কম্পিউটার দ্বারা প্রায়শই বিভিন্ন স্প্যাম ইমেইল থেকে শুরু করে ডেনাইল-অব-সার্ভিস (DDoS) আক্রমণ করে থাকে। বেশিরভাগ ক্ষেত্রেই জম্বি কম্পিউটারের মালিক নিজেই টের পান না যে তার সিস্টেম জম্বি হিসেবে কাজ করছে। যেহেতু মালিকের অজ্ঞাতেই হয়, সেজন্য রূপক অর্থে এক জম্বির (Zombie) সাথে তুলনা করা হয়েছে। অনেকগুলো বটনেট মেশিন একত্রিত হয়ে ডেনাইল-অব-সার্ভিস দেয়াকেও জম্বি দলের আক্রমণের সাথে তুলনা করা হয়।