একটি স্ট্যান্ডার্ড লিনাক্স ফাইল সিস্টেমে, এই সাধারণ ডিরেক্টরিগুলির মধ্যে কোনটি ডিফল্টরূপে বিশ্ব লিখনযোগ্য ?
/tmp
/etc
/var
/proc
/bin
/boot
/....
....
তারা বিশ্ব-রচনামূলক কেন? এটি কি সুরক্ষা ঝুঁকি সৃষ্টি করে?
একটি স্ট্যান্ডার্ড লিনাক্স ফাইল সিস্টেমে, এই সাধারণ ডিরেক্টরিগুলির মধ্যে কোনটি ডিফল্টরূপে বিশ্ব লিখনযোগ্য ?
/tmp
/etc
/var
/proc
/bin
/boot
/....
....
তারা বিশ্ব-রচনামূলক কেন? এটি কি সুরক্ষা ঝুঁকি সৃষ্টি করে?
উত্তর:
শুধুমাত্র FHS অনুসারে বাধ্যতামূলক ডিরেক্টরি হয় যার মধ্যে বিশ্ব লিখনযোগ্য হয় /tmp
এবং /var/tmp
। উভয় ক্ষেত্রেই, কারণ এগুলি কারও দ্বারা তৈরি করা হতে পারে অস্থায়ী ফাইলগুলি সংরক্ষণ করার উদ্দেশ্যে are
এছাড়াও সাধারণ /dev/shm
, একটি tmpfs (ফাইলসিস্টেম র্যাম সমর্থন), মধ্য আকারের ডেটা প্রসেস, বা শুধু ফাইল পুনরায় বুট উপর ধ্বংস হয়ে যাবে নিশ্চিত করছেন যে তৈরি মধ্যে ভাগ দ্রুত অ্যাক্সেসের জন্য।
একটি /var/mail
বা /var/spool/mail
, এবং কখনও কখনও অন্যান্য স্পোলার ডিরেক্টরিও থাকতে পারে। এগুলি প্রক্রিয়া করার আগে অস্থায়ীভাবে মেল ধরে রাখতে ব্যবহৃত হয়। ব্যবহারের সরঞ্জামগুলির উপর নির্ভর করে এগুলি সর্বদা বিশ্ব-লিখনযোগ্য নয়। যখন এটি হয়, কারণ এটি সেখানে ডিমন দ্বারা প্রক্রিয়াজাতকরণের জন্য ব্যবহারকারী সরঞ্জাম দ্বারা ফাইলগুলি তৈরি করা যায়।
এই সমস্ত ডিরেক্টরিতে সাধারণত স্টিকি বিট ( t
) সেট থাকে, যার অর্থ শুধুমাত্র কোনও ফাইলের বা ডিরেক্টরিটির মালিকই এতে ফাইলগুলি সরাতে বা মুছতে পারে।
যে কোনও প্রোগ্রাম হিসাবে চলমান যে কোনও প্রোগ্রাম এই ডিরেক্টরিগুলিতে ফাইলগুলি তৈরি করতে পারে এবং তার নির্দিষ্ট ডেটার সুরক্ষা যতটা যায় ততক্ষণ যথাযথ কাজ করার জন্য এটি তৈরির প্রোগ্রাম up সম্ভাব্যভাবে ফাইল সিস্টেমটি পূরণ করা ব্যতীত অন্য কোনও সাধারণ সুরক্ষা সমস্যা নেই, তবে কোনও প্রোগ্রামের এটির ভুল হওয়ার জন্য প্রচুর সুযোগ রয়েছে।
সেখানে হয়েছে কিছু প্যাচসমূহ পরিষেবা-নির্দিষ্ট দিকে /tmp
ডিরেক্টরি। এগুলি কিছু সম্ভাব্য বাগগুলি এড়াতে পারে যা এগুলি আসতে পারে, সুতরাং প্রোগ্রামটি কীভাবে এটি ডিরেক্টরিটি ব্যবহার করে তা বাগ-মুক্ত হওয়া এতটা গুরুত্বপূর্ণ নয়।
আপনি আপনার সিস্টেমে বিশ্ব-লিখনযোগ্য ডিরেক্টরিগুলি এটি সহ পেতে পারেন:
find / -maxdepth 3 -type d -perm -777
/tmp
, /var/tmp
এবং /var/lock
ডিফল্টরূপে বিশ্ব-লিখনযোগ্য। পুরানো অ্যাপ্লিকেশনগুলির সাথে সামঞ্জস্যের জন্য সিমলিংকগুলি থাকতে পারে, যেমন /usr/tmp
→ /var/tmp
।
/tmp
এবং /var/tmp
বিশ্ব লিখনযোগ্য কারণ এগুলি কোনও ব্যবহারকারীর দ্বারা কোনও অস্থায়ী স্টোরেজের জন্য ব্যবহার করা বোঝায়। /var/lock
বিশ্ব-লিখনযোগ্য যাতে কোনও প্রক্রিয়া, যে কোনও ব্যবহারকারী হিসাবে চলমান, কোনও কেন্দ্রীয় অবস্থানে লক ফাইল তৈরি করতে পারে।
সুরক্ষা ঝুঁকি আছে? না, তবে হ্যাঁ
এই সমস্ত ডিরেক্টরিগুলির জন্য অনুমতিগুলি হ'ল 1777
প্রধানত স্টিকি বিট । এর অর্থ হ'ল যে কেউ এই বিশ্ব-লিখনযোগ্য ডিরেক্টরিতে একটি ফাইল তৈরি করতে পারে, কেবল মালিক তার নিজের ফাইলগুলি মুছে ফেলতে পারবেন (এবং অবশ্যই, রুট ব্যবহারকারীরাও এটি করতে পারেন)।1
নিরাপত্তাহীনতার সম্ভাব্য ঝুঁকিটি অনিরাপদ টেম্প ফাইল তৈরির ফলে উদ্ভূত হতে পারে। যেহেতু এই ডিরেক্টরিগুলি সর্বদাই ফ্রি, তাই ব্যবহারকারীরা তাদের তৈরি করা ফাইলগুলি আসলে নতুন ফাইল কিনা তা নিশ্চিত করার জন্য সতর্কতা অবলম্বন করা উচিত যে কোনও দূষিত ব্যবহারকারীর দ্বারা সেখানে লাগানো থাকতে পারে এমন একটি বিদ্যমান ফাইল বা সিমলিংক না খোলার চেয়ে। যদি যথাযথ কৌশলগুলি ব্যবহার করে যেমন ফাইলগুলি তৈরি করা হয় open(…, O_EXCL)
বা যেমন হয় mkstemp(3)
তবে এই জাতীয় ঝুঁকি এড়ানো যায়।
/tmp
এটি ঝুঁকিপূর্ণ, কারণ এটি নিরাপদে ব্যবহার করার জন্য আপনাকে অতিরিক্ত কোড যুক্ত করতে হবে। স্পষ্টতই এটিকে উপেক্ষা করা হয়।
একটি সাম্প্রতিক উদাহরণ স্টিভ কেম্প দিয়েছেন। http://blog.steve.org.uk/sometimes_reading_code_makes_you_scream_.html
./mgmt/tools/SysAPI.cc: tmp = fopen("/tmp/shadow", "w"); ./mgmt/tools/SysAPI.cc: system("/bin/mv -f /tmp/shadow /etc/shadow");
যদি আপনি (আক্রমণকারী) দ্বিতীয় লাইনের আগে / টিএমপি / ছায়া প্রতিস্থাপন করেন তবে আপনি সবার পাসওয়ার্ড প্রতিস্থাপন করতে পারবেন। (আমার ধারণা এই আক্রমণটির জন্য আপনাকে প্রথম লাইনের আগে ফাইলটি তৈরি করতে হবে এবং ফাইলটি বিশ্ব-লিখনযোগ্য করে তোলা উচিত)।
লিনাক্সে সিস্টেমেডড অনেক সিস্টেম পরিষেবাদির জন্য বিচ্ছিন্ন / tmp করে এই ধরণের দুর্বলতাগুলি হ্রাস করতে দেয়। ("আইপিসি সকেট এবং অন্যান্য যোগাযোগ আদিমদের জন্য একটি অবস্থান হিসাবে অপব্যবহার / টিএমপি" বাদে)।
ফেডোরা লিনাক্সে - http://fedoraproject.org/wiki/F Features / ServicesPrivateTmp
সিস্টেমযুক্ত ব্যাখ্যা - http://0pointer.de/blog/projects/security.html
fopen
তবে এটি ওভাররাইট করে তবে অনুমতিগুলি পুনরায় সেট না করে, তাই দূষিত ব্যবহারকারী এখনও পরিবর্তন করতে পারে। এছাড়াও, কোনও দূষিত ব্যবহারকারী ln -s /bin/bash /tmp/shadow
প্রথম লাইনের আগে এমন কিছু করতে পারত , যাতে একটি প্রয়োজনীয় সিস্টেম বাইনারি ওভাররাইট হয়ে যায়।
বিশ্ব লিখনযোগ্য ডিরেক্টরিগুলি খুঁজতে, আপনি ব্যবহার করতে পারেন
find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print
ফাইল পরিবর্তন করতে টাইপ করুন f
সিমলিঙ্কগুলির জন্য টাইপ করুন l
স্টিকি বিট সেট করতে:
find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print0| xargs -0 chmod +t
/var/lock
/run/lock