রুট প্রসেস স্প্যানকে নিরীক্ষণের সহজ উপায় কি কেউ জানেন?


13

একটি নতুন রুট প্রক্রিয়া ফুটে উঠলে আমি একটি স্ক্রিপ্ট সম্পাদন করতে চাই। (লিনাক্সে) আমি কীভাবে এটি করতে পারি?

ধন্যবাদ


এটি একটি আকর্ষণীয় প্রশ্ন, তবে এর জন্য কি কোনও ব্যবহারিক প্রয়োগ রয়েছে? আমি আমার মস্তিষ্ককে টেনে নিয়ে যাচ্ছি এবং আমি একটি ফাঁকা অঙ্কন করছি ...
স্টিভেন সোমবার

উত্তর:


9

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

auditctl -a task,always -F uid=0

এই কমান্ডটি ভঙ্গ করে ম্যান পৃষ্ঠার অতিরিক্ত ব্যবহার করে আমরা দেখতে পাই যে:

   -a list,action
          task       Add  a  rule to the per task list. This rule list is used
                     only at the time a task is created -- when fork() or
                     clone() are called by the parent task. When using this
                     list, you should only use fields that are known at task
                     creation time, such as the uid, gid, etc.
          always     Allocate an audit context, always fill it in at syscall 
                     entry time, and always write out a record at syscall exit
                     time.

যখনই একটি কাঁটাচামচ বা ক্লোন সিস্টেম কল প্রস্থান করে তখনই এই ক্রিয়াটির জন্য সর্বদা রেকর্ড লিখুন।

চূড়ান্ত বিকল্পটি ফিল্টার স্ট্রিং হিসাবে বিবেচনা করা যেতে পারে, আমাদের ব্যবহারে -F uid=0প্রক্রিয়া মালিকের uID 0 হয় এমন ক্ষেত্রে কেবল আমাদের সীমাবদ্ধ করে।

মনে রাখবেন যে নিরীক্ষণটি সঠিকভাবে কনফিগার
-a task,always -F uid=0
করা হয়েছে এবং আপনার বিতরণের জন্য প্রাসঙ্গিক ফাইলটিতে নিয়মটি যুক্ত করে এই নিয়মটি রান সময়ে চালানো যেতে পারে likely/etc/audit/audit.rules

কেবল মনে রাখবেন যে এটি বেশ ডাঙ শোরগোল হবে, এবং আপনার লগ রিভিউগুলি যার জন্য করছেন এটির জন্য প্রস্তুত থাকা প্রয়োজন।


আসলে, এখন যে আমি এটি লিখেছিলাম, আমি হঠাৎ বুঝতে পারি যে আমি শিরোনামে প্রশ্নের উত্তর দিয়েছি, এবং প্রশ্নের মধ্যে নয়। আমি আশা করি এটি এখনও কার্যকর।
স্কট প্যাক

আপনি কেন কখনও কখনও
পিড

@ ডাকুসান বেশিরভাগ কারণ আমার একটি সম্পাদক দরকার। এখনই স্থির।
স্কট প্যাক 21

2

CONFIG_PROC_EVENTS এবং / অথবা CONFIG_KPROBES দিয়ে আপনার কার্নেলটি পুনরায় সংশোধন না করে এটি করার একটি পরিষ্কার উপায় নেই বলে আমি মনে করি না (যদিও আমি এটির করার কোনও উপায় আছে কিনা তা জানতে আগ্রহী তাই আমি আপনার প্রশ্নকে সমর্থন করেছি)।

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

perl -e 'my %pids; while(1) { my @pids = `ps -U root -u root`; foreach (@pids) { next if /ps$/; ($pid) = /^\s*(\d+)\D/; if (!$pids{$pid}) { $pids{$pid}++; print "Process $pid created (" . `cat /proc/$pid/cmdline` . ")\n"; } } }

আপনি আপনার কোডের শেষে একক উদ্ধৃতি মিস করছেন। এটি পরিবর্তন করতে পারে না কারণ এসওর পরিবর্তনের জন্য কমপক্ষে 6 টি অক্ষর প্রয়োজন। এছাড়াও, সমস্ত ব্যবহারকারীর জন্য, "-U root -u root" এর পরিবর্তে "-ax" ব্যবহার করুন
ডাকসান

1

আমি ভাবতে পারি সবচেয়ে ভাল উপায় হ'ল স্নুপি গ্রন্থাগারটি বন্ধ করা । স্নোপি একটি খুব ছোট শেয়ার্ড লাইব্রেরি যা সিস্টেমে কল হয়ে যায় /etc/ld.so.preloadএবং execve()calls এটি সমস্ত exec(), বা মূল থেকে কেবল লগ করার জন্য কনফিগারযোগ্য । বর্তমান অবতারে, প্রতিবার কোনও ম্যাচিং ইভেন্ট (সিস্কেল টু execve()) সংঘটিত হওয়ার সময় স্নিপি লগইন করে ys এটি কোনও বৃহত্তর প্রোগ্রাম নয় (বেশিরভাগ কয়েক শতাধিক কোডের লাইন, বেশিরভাগ), এবং ক্রিয়াকলাপটি লগইনের পরিবর্তে (বা অতিরিক্ত হিসাবে) কোনও স্ক্রিপ্ট সম্পাদন করতে এত অসুবিধা ছাড়াই সংশোধন করা যেতে পারে। স্নোপি সি তে লেখা আছে in

কয়েকটি বিষয় লক্ষণীয়:

  • আপনি যদি প্রতিবার কোনও শিকড় প্রক্রিয়া তৈরি হয় তখন স্ক্রিপ্টটি চালান, আপনার স্ক্রিপ্টটি একটি রুট প্রক্রিয়া হবে, যার জন্য আবার স্ক্রিপ্টটি স্প্যান করা দরকার যা অন্য একটি রুট প্রক্রিয়া ইত্যাদি হবে etc. ইত্যাদি সতর্কতা অবলম্বন করুন যে আপনি কোনও লুপের মধ্যে না পড়ে don't আছে।
  • একটি সাধারণ লিনাক্স বাক্সে, প্রচুর প্রক্রিয়া রয়েছে যা রুট হিসাবে চালিত হয় এবং নিয়মিত উত্পন্ন হয়। উদাহরণস্বরূপ, ক্রোন প্রতি মিনিট বা কয়েক মিনিটে সিস্টেম ক্রোনজগুলি রুট হিসাবে স্পোন করতে পারে। কোনও ব্যবহারকারী যখন রুট হিসাবে লগ ইন করে আপনি কেবল এটি ঘটতে সন্ধান করছেন, এটি আরও কাজ হবে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.