কোনও অ্যাপ্লিকেশনটিতে এসইউডি সেট থাকা অবস্থায় কোনও কোর ডাম্প কীভাবে তৈরি হবে না?


16

আমি ক্র্যাশ হওয়া সমস্ত কিছুর একটি কোর ডাম্প তৈরির জন্য আমার পরিবেশ সেটআপ করি, তবে আমি যখন এক্সিকিউটিভ ব্যবহারকারীর চেয়ে আলাদা ব্যবহারকারীর উপর এসইউডি সেট সেট করি তবে এটি কোনও कोर ডাম্প তৈরি করে না। কোন ধারনা কেন এই হতে পারে? আমি ওয়েবে এটি কোথাও খুঁজে পাইনি, আমার মনে হয় এটি কোনও ধরণের সুরক্ষা বৈশিষ্ট্য তবে আমি এটি অক্ষম করতে চাই ...

সমস্যা:

$ cd /tmp
$ cat /etc/security/limits.conf | grep core
*     -     core     unlimited
root  -     core     unlimited

$ ls -l ohai
-rwsr-sr-x 1 root root 578988 2011-06-23 23:29 ohai

$ ./ohai
...
Floating point exception

$ sudo -i
# ./ohai
...
Floating point exception (core dumped)
# chmod -s ohai
# exit
$ ./ohai
...
Floating point exception (core dumped)

সম্পাদনা করুন: এটি যথাসম্ভব সুরক্ষিতভাবে কাজ করতে পরিবেশের সেটআপ করার জন্য আমার কাছে এখন নিম্নলিখিত স্ক্রিপ্ট রয়েছে:

mkdir -p /var/coredumps/
chown root:adm /var/coredumps/
chmod 772 /var/coredumps/

echo "kernel.core_pattern = /var/coredumps/core.%u.%e.%p" >> /etc/sysctrl.conf
echo "fs.suid_dumpable = 2" >> /etc/sysctl.conf

echo -e "*\t-\tcore\tunlimited" >> /etc/security/limits.conf
echo -e "root\t-\tcore\tunlimited" >> /etc/security/limits.conf

এখন যা করা দরকার তা হ'ল এসিএলকে / ভার / করডাম্পগুলিতে যুক্ত করা যাতে ব্যবহারকারীরা কেবল ফাইল যুক্ত করতে পারেন এবং এগুলি আর কখনও পরিবর্তন করতে বা পড়তে পারেন না। একমাত্র ডাউনসাইজটি হ'ল chroot'ed অ্যাপ্লিকেশনগুলির সাথে আমার এখনও সমস্যা আছে যার জন্য এর bind mountমতো একটি বা অন্য কিছু প্রয়োজন ।

উত্তর:


21

একটি সেটুইড প্রোগ্রামের মেমরিটিতে গোপনীয় ডেটা থাকতে পারে (সম্ভবত এটি হতে পারে)। সুতরাং কোর ডাম্প কেবল রুট দ্বারা পঠনযোগ্য হবে।

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

লিনাক্স সেটক্সিড প্রোগ্রামগুলির জন্য কোর ডাম্পগুলি অক্ষম করে। এগুলি সক্ষম করতে, আপনাকে কমপক্ষে নিম্নলিখিতগুলি করতে হবে (আমি এটি যথেষ্ট কিনা তা পরীক্ষা করে দেখিনি):

  • fs.suid_dumpableসিসিকটেলকে 2 এ সেট করে সাধারণভাবে সেটুইড কোর ডাম্পগুলি সক্ষম করুন , যেমন echo 2 >/proc/sys/fs/suid_dumpable। (দ্রষ্টব্য: 2, 1 নয় 1 এর অর্থ "আমি পুরো সিস্টেমটি ডিবাগ করছি এবং সমস্ত সুরক্ষা সরিয়ে নিতে চাই"))
  • prctl(PR_SET_DUMPABLE, 1)প্রোগ্রাম থেকে কল ।

স্যার, আপনি এখন আমার ব্যক্তিগত নায়ক!
ডিপসুইচ

@ ডিপসুইচ স্ট্রেঞ্জ, এর জন্য ডকুমেন্টেশন যা fs.suid_dumpableবলে তা নয় । আপনি প্রোগ্রামে fs.suid_dumpableকল pctrlনা করে সেটিং চেষ্টা করতে পারেন ? হতে পারে আমি ডকুমেন্টেশনের ভুল বোঝাবুঝি করছি এবং আপনি এই ক্ষেত্রে মূলের মালিকানাধীন তবে মালিকানার মালিক হন।
গিলস 23'19

আহ কৃপণতা আমার খারাপ ... ফাইলটি মূলের মালিকানাধীন তবে কোর_প্যাটার্নে থাকা% ইউ (ইউআইডি) আমাকে প্রথম দর্শনে বোকা বানাচ্ছিল।
ডিপসুইচ

এই সমাধানটি "sudo -s" এর অধীনে চালিত প্রোগ্রামগুলিতেও প্রয়োগ হবে বলে মনে হয়, কমপক্ষে কার্নেল ২.6.২7 এর জন্য।
শেঠ নোবেল

7

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

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

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


1
আমি আপনাকে ভয় পেয়েছিলাম যেখানে এমন কিছু বলতে যাচ্ছেন :(
ডিপসুইচ

0

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

সমস্যা: সেখানে কী চলছে তা ধারণা নেই:

sudo id
Segmentation fault

সমাধান: থেকে SUID বিট সরান sudoকরার valgrindকাজ জরিমানা:

chmod +s /usr/bin/valgrind
chmod -s /usr/bin/sudo
valgrind /usr/bin/sudo id

যদি ডিবাগইনফো ইনস্টল করা থাকে তবে চমৎকার ব্যাকট্র্যাসটি লেখা আছে।


এবং ইতিমধ্যে, যতক্ষণ না আপনি স্থিরতাগুলি পুনরায় সেট করতে ভুলবেন না, ততক্ষণ সকলেই এবং খালা টিলি valgrindযা খুশি তাই করতে পারেন। এটি করবেন না , এটি একটি বিশাল সুরক্ষা ঝুঁকি।
ভোনব্র্যান্ড

শুধুমাত্র পরীক্ষার মেশিনে এবং অবশ্যই পরীক্ষার উদ্দেশ্যে।
জাকুজে

নির্বিশেষে আমাকে উইলগুলি দেয়।
ভোনব্র্যান্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.