"LD_LIBRARY_PATH" কি সুরক্ষা ঝুঁকিপূর্ণ?


8

আমরা জানি ld.soপরিবেশগত পরিবর্তনশীল দ্বারা নির্দিষ্ট ডিরেক্টরিতে গ্রন্থাগারগুলির জন্য অনুসন্ধানগুলি $LD_LIBRARY_PATH, তবে নিয়মিত ব্যবহারকারীরা চালাতে পারেন:

export LD_LIBRARY_PATH=dir1:dir2...

তারা সংক্রামিত গ্রন্থাগারটিকে মূলের তুলনায় উচ্চতর অগ্রাধিকার সহ এমন একটি পথে সংরক্ষণ করতে পারে যাতে ld.soএটির মধ্যে বিশ্বস্ত লাইব্রেরির পরিবর্তে একটি খুঁজে পায় ld.so.cache

এটি কি ঝুঁকিপূর্ণ?
আমরা কীভাবে নিয়মিত ব্যবহারকারীর জন্য এই পরিবেশের পরিবর্তনশীলটিতে লেখা অক্ষম করতে পারি?


সম্পাদনা করার জন্য @ বাইট কমান্ডারকে ধন্যবাদ। আমার ইংরেজি ভাল নয় :)
সিনোশ

কোনও সমস্যা নেই, এটি গড়ের চেয়ে ভাল :)
বাইট কমান্ডার

উত্তর:


17

এটি মোটেও কোনও সুরক্ষা ঝুঁকি নয়, কারণ আপনি সর্বদা আপনার বর্তমান পরিবেশের জন্য পরিবেশগত পরিবর্তনশীল (যেমন বর্তমান বাশ সেশন) এবং exportকমান্ডটি ব্যবহার করে , তার শিশু পরিবেশ (আপনি যে স্ক্রিপ্টগুলি চালু করেন, সাবশেলস ইত্যাদি) সেট করতে পারেন। প্যারেন্ট এনভায়রনমেন্টে তৈরি বা পরিবর্তিত পরিবেশের পরিবর্তনশীলটিকে বাড়ানো অসম্ভব esc এর মধ্যে রয়েছে যে নিয়মিত ব্যবহারকারীদের অবশ্যই সিস্টেম-ব্যাপী পরিবর্তন করা অসম্ভব।

সুতরাং যদি আপনি চালান তবে কেবলমাত্র পরিবেশটি প্রভাবিত হবে তা export LD_LIBRARY_PATH=...হ'ল আপনার বর্তমান শেল এবং এর কোনও সাব-শেল আপনি পরে স্প্যান করতে পারেন। ধরা যাক আপনি শুরুতে সংক্রামিত গ্রন্থাগারগুলি অন্তর্ভুক্ত করতে সন্ধানের পথটি পরিবর্তন করেছেন অর্থাৎ সর্বোচ্চ অগ্রাধিকার সহ। তারপরে আপনি এমন একটি এক্সিকিউটেবল চালাবেন যা কোনও জেনেও সংক্রামিত libs লোড করে। এখন কি ঘটছে?

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

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

দ্রষ্টব্য: এছাড়া এক্সেকিউটেবল যা আছে setuid বা setgid পতাকা সেট, যার মানে তারা এক যারা তাদের রান ব্যবহারকারী / গ্রুপ হিসাবে চালনা করা হবে, কিন্তু এক যারা এর মালিক তাদের। উদাহরণস্বরূপ, sudoএক্সিকিউটেবলটি রুটের মালিকানাধীন এবং সেটুইড পতাকা সেট থাকে যার অর্থ এটি কার্যকর করা হলে এটি সর্বদা রুটের মতো চলে। সুরক্ষার কারণে, নিয়মিত ব্যবহারকারী স্বেচ্ছাসেবী লাইব্রেরি লোড করার জন্য রুট সুবিধাগুলি সহ একটি এক্সিকিউটেবল চলমান করতে না পারে তা নিশ্চিত করার জন্য নির্ধারিত সেটআপড / সেটগিড পতাকাগুলির $LD_LIBRARY_PATHসাথে এক্সিকিউটেবলগুলি দ্বারা চলকটিকে উপেক্ষা করা হয় ।
(এটি প্রকাশ করার জন্য @ রিনজউইন্ডকে ধন্যবাদ!)


অনেক ধন্যবাদ ! আমি একটি বই পড়ছি যা এতে বলেছে "" এলডি_লিবিআরএইপিএটিএইচটিকে একটি সুরক্ষা ঝুঁকি হিসাবে বিবেচনা করা হয় কারণ এটি অননুমোদিত প্রোগ্রামগুলিকে দুর্ঘটনাক্রমে সিস্টেম লাইব্রেরিতে অ্যাক্সেসের অনুমতি দিতে পারে বা অন্যথায় অননুমোদিত ব্যবহারকারীদের জন্য সিস্টেম লাইব্রেরি পাথ উন্মুক্ত করে দিতে পারে। " মানে কি?
সিনোশ

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


@ বাইট কমান্ডার, আমি আপনার সাথে লেখকের সাথে একমত নই :)
সিনোশ

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