কীভাবে কাঁটাচামচ বোমা থামাতে এবং সনাক্ত করতে হয়


14
#include <stdlib.h>
#include <unistd.h>

int main()
{
   while(1)
      fork();
}

এটি একটি কাঁটাচামচ বোমা কোড।

আমাদের কলেজে আমরা টেলনেট অর্থাৎ ক্লায়েন্ট পরিবেশনকারী প্রোটোকলের মাধ্যমে সংযুক্ত করি। প্রায় 100 টি সিস্টেম সার্ভারের সাথে সংযুক্ত রয়েছে। হঠাৎ আমরা দেখতে পেলাম যে সার্ভারটি ধীর হয়ে যাচ্ছে এবং কিছুক্ষণ পরে এটি ক্র্যাশ হয়ে গেছে। আমি জানতে পারলাম যে সম্বডি একটি কাঁটাচামচ প্রয়োগ করেছে implemented

কোন সিস্টেমে কাঁটাচামচ প্রয়োগ করা হয় তা আমরা কীভাবে সনাক্ত করতে পারি? এবং কীভাবে আমরা এটি বন্ধ করতে পারি?

একটি পদ্ধতি হ'ল একক ব্যবহারকারীর মালিকানাধীন সর্বাধিক সংখ্যক প্রক্রিয়া সীমাবদ্ধ করা। এটি বন্ধ করার এবং কোন সিস্টেম থেকে এটি প্রয়োগ করা হয়েছে তা জানতে কোনও পদ্ধতি আছে?


19
টেলনেট? সিরিয়াসলি? আপনার সত্যই এসএসএইচ ব্যবহার করা উচিত ...
থিফমাস্টার



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

উত্তর:


16

একটি উপায় হ'ল প্রক্রিয়া সংখ্যা সীমাবদ্ধ করা, একজন ব্যবহারকারী চালাতে পারবেন।

কেবল রুট হিসাবে লগইন করুন এবং ব্যবহারকারীদের যুক্ত করতে এবং তাদের সীমাটি কনফিগার করতে এই ফাইলটি সম্পাদনা করুন।

# vi /etc/security/limits.conf

এই লাইনটি ফাইলটিতে যুক্ত করুন

john hard nproc 10

এখন ব্যবহারকারী জন কেবলমাত্র 10 টি প্রক্রিয়া তৈরি করতে পারবেন।


আমি মনে করি নতুন সেটিংস /etc/security/limits.confকার্যকর করার জন্য আপনাকে পুনরায় বুট করতে হবে ।
ড্যান ডি

2
না। তবে এগুলি পিএএম দ্বারা প্রয়োগ করা হয় যাতে তারা কেবলমাত্র নতুন লগইনগুলিতে প্রয়োগ করে।
চোরমাস্টার

14

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

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

তবে, যে কাঁটা বোমাটি বিস্ফোরণ ঘটিয়েছে তাকে শাস্তি দেওয়ার পরিবর্তে কাঁটা বোমা নিরস্ত্র করার জন্য আপনার সিস্টেমের কনফিগারেশনটি ঠিক করা উচিত। আপনি প্রতি ব্যবহারকারীর প্রক্রিয়া সীমাটি সেট করে ব্যবহার করতে পারেন /etc/security/limits.confএবং এভাবে কাঁটাচামচ নিয়ন্ত্রণ থেকে বের হওয়া থেকে বিরত রাখতে পারেন - উদাহরণস্বরূপ, মাত্র 50 টি প্রক্রিয়াতে কাঁটাচামচ বেশি ক্ষতি করতে পারে না।


এটি আসার কোন সিস্টেম থেকে এটি সনাক্ত করা অসম্ভব?
রাজেশ এম

@ ব্যবহারকারী 1670364: আপনি কী জিজ্ঞাসা করছেন তা পরিষ্কার নয়। "এর আগমন" বলতে কী বোঝ? আপনি কী ব্যবহারকারীর প্রক্রিয়াটির মালিক তা বলতে পারেন, আপনি আর কী জানতে চান?
ডেভিড শোয়ার্টজ

@ ডেভিডশওয়ার্টজ মানে আমি বোঝাচ্ছি যে কোন সিস্টেমে কাঁটাচামচ প্রয়োগ করা হচ্ছে এটি প্রয়োগ করা হচ্ছে?
রাজেশ এম

@ ইউজার ১7070০৩ you৪: যদি আপনি বোঝাচ্ছেন যে সিস্টেমটি আসলে কাঁটাচামচ চালাচ্ছে তবে এটি ধীর গতির। আপনি যদি দায়বদ্ধ ব্যবহারকারীর অর্থ যদি করেন তবে এটি সেই ব্যবহারকারী যা প্রসেসিংগুলি প্রক্রিয়াধীন তার মালিক।
ডেভিড শোয়ার্টজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.