আমি কীভাবে অস্থায়ীভাবে এএসএলআর (ঠিকানা স্থানের বিন্যাস র্যান্ডমাইজেশন) অক্ষম করতে পারি?


57

আমি এখন উবুন্টু 12.04 32-বিট ব্যবহার করছি কিছু পরীক্ষার জন্য আমাকে এএসএলআর নিষ্ক্রিয় করা দরকার আমি কীভাবে এটি করতে পারি? এবং তারপরে আবার এএসএলআর সক্ষম করতে আমার কী করা উচিত?


উত্তর:


75

একটি নিবন্ধ অনুসারে লিনাক্স সিস্টেমগুলিতে ASLR কতটা কার্যকর? , আপনি /proc/sys/kernel/randomize_va_spaceইন্টারফেস ব্যবহার করে লিনাক্সে ASLR কনফিগার করতে পারেন ।

নিম্নলিখিত মানগুলি সমর্থিত:

  • 0 - কোন র্যান্ডমাইজেশন। সবই অচল।
  • 1 - রক্ষণশীল র্যান্ডমাইজেশন। ভাগ করা লাইব্রেরি, স্ট্যাক,, mmap()ভিডিএসও এবং হিপ এলোমেলোভাবে করা হয়।
  • 2 - সম্পূর্ণ র্যান্ডমাইজেশন। পূর্ববর্তী পয়েন্টে তালিকাভুক্ত উপাদানগুলি ছাড়াও মেমোরি পরিচালনা brk()করাও এলোমেলোভাবে করা হয়।

সুতরাং, এটি অক্ষম করতে, চালান

echo 0 | sudo tee /proc/sys/kernel/randomize_va_space

এবং এটি আবার সক্ষম করতে, চালান

echo 2 | sudo tee /proc/sys/kernel/randomize_va_space

এটি পুনরায় বুট থেকে বাঁচবে না, সুতরাং আপনাকে এটি কনফিগার করতে হবে sysctl। যুক্ত একটি ফাইল যুক্ত করুন /etc/sysctl.d/01-disable-aslr.conf:

kernel.randomize_va_space = 0

স্থায়ীভাবে এটি অক্ষম করা উচিত।


1
"সম্পূর্ণ র্যান্ডমাইজেশন" আসলে কী? এর মধ্যে কি এক্সিকিউটেবল নিজেই অন্তর্ভুক্ত? আর কী brk()?
শুজেং

26

/proc/sys/kernel/randomize_va_spaceইন্টারফেস ASLR সিস্টেম-ব্যাপী নিয়ন্ত্রণ করে।

আপনি যদি সিস্টেম-ব্যাপী পরিবর্তন না চান তবে অস্থায়ীভাবে ASLR অক্ষম করতে ADDR_NO_RANDOMIZE ব্যক্তিত্ব ব্যবহার করুন । এই ব্যক্তিত্বের পতাকাটি নিয়ন্ত্রণ করা setarchএবং এটির -Rবিকল্প ( ম্যানপেজ ), একটি আদেশ প্রেরণ সহ করা যেতে পারে ।

আমি এটি ব্যবহার করে সম্পূর্ণ নতুন শেলটি খোলার পক্ষে সত্যই সুবিধাজনক বলে মনে করি:

setarch `uname -m` -R /bin/bash

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

শুধু exitশেল একবার আপনি সম্পন্ন করেছেন।


যাইহোক, ulimit -s unlimitedi386- তে, ASLR "অক্ষম" করতে পারে।


সম্পাদনা (এপ্রিল 2016): ulimit -s unlimitedএটি নির্দিষ্ট এবং নির্ধারিত CVE-2016-3672 নির্ধারণ করা হয়েছিল ।


ইউজার-লিনাক্সের চেতনায় নাবালিকা: uname -mএকটির পরিবর্তে এটিও ব্যবহার করতে পারে arch, একটি বাইনারি যা মূলত একই কাজ করে।
ড্রামফায়ার

1
@ ড্রামফায়ার archএকটি
ব্যস্তবক্স

দুই বছর পরে ফিরে আসার জন্য এবং সিভিই সম্পর্কিত তথ্য যুক্ত করার জন্য +1।
মাল্টিসিঙ্ক

3

এএসএলআর অক্ষম করার আরও স্থায়ী উপায়গুলি সুস্পষ্ট কারণে ভিএম-এ রাখা উচিত।

স্ট্যাক ফ্রেম রিটার্ন অ্যাড্রেস এডেটেরা ওভাররাইট করার ক্ষমতা পরীক্ষা করার জন্য, আপনাকে স্ট্যাক ক্যানারি ছাড়াই সংকলন করতে হবে -fno-stack-protector, যখন আপনাকে স্ট্যাকের সাথে কোডটি সম্পাদন করার অনুমতি দেওয়া হবে -z execstack, তৈরি করার সাথে

$ gcc -fno-stack-protector -z execstack -o <my_program> my_code.c

2

আপনি কেবলমাত্র sudo sysctl kernel.randomize_va_space=0অস্থায়ীভাবে ASLR অক্ষম করতে ব্যবহার করতে পারেন ।

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