আমি এখন উবুন্টু 12.04 32-বিট ব্যবহার করছি কিছু পরীক্ষার জন্য আমাকে এএসএলআর নিষ্ক্রিয় করা দরকার আমি কীভাবে এটি করতে পারি? এবং তারপরে আবার এএসএলআর সক্ষম করতে আমার কী করা উচিত?
আমি এখন উবুন্টু 12.04 32-বিট ব্যবহার করছি কিছু পরীক্ষার জন্য আমাকে এএসএলআর নিষ্ক্রিয় করা দরকার আমি কীভাবে এটি করতে পারি? এবং তারপরে আবার এএসএলআর সক্ষম করতে আমার কী করা উচিত?
উত্তর:
একটি নিবন্ধ অনুসারে লিনাক্স সিস্টেমগুলিতে 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
স্থায়ীভাবে এটি অক্ষম করা উচিত।
brk()
?
/proc/sys/kernel/randomize_va_space
ইন্টারফেস ASLR সিস্টেম-ব্যাপী নিয়ন্ত্রণ করে।
আপনি যদি সিস্টেম-ব্যাপী পরিবর্তন না চান তবে অস্থায়ীভাবে ASLR অক্ষম করতে ADDR_NO_RANDOMIZE
ব্যক্তিত্ব ব্যবহার করুন । এই ব্যক্তিত্বের পতাকাটি নিয়ন্ত্রণ করা setarch
এবং এটির -R
বিকল্প ( ম্যানপেজ ), একটি আদেশ প্রেরণ সহ করা যেতে পারে ।
আমি এটি ব্যবহার করে সম্পূর্ণ নতুন শেলটি খোলার পক্ষে সত্যই সুবিধাজনক বলে মনে করি:
setarch `uname -m` -R /bin/bash
এটি আপনার পক্ষে সমস্ত শিশু প্রক্রিয়াগুলি (এই শেলটি থেকে চালিত প্রোগ্রামগুলি) সহ এএসএলআর অক্ষম করে আপনার জন্য একটি নতুন বাশ শেল খুলবে।
শুধু exit
শেল একবার আপনি সম্পন্ন করেছেন।
যাইহোক, ulimit -s unlimited
i386- তে, ASLR "অক্ষম" করতে পারে।
সম্পাদনা (এপ্রিল 2016): ulimit -s unlimited
এটি নির্দিষ্ট এবং নির্ধারিত CVE-2016-3672 নির্ধারণ করা হয়েছিল ।
uname -m
একটির পরিবর্তে এটিও ব্যবহার করতে পারে arch
, একটি বাইনারি যা মূলত একই কাজ করে।
arch
একটি
এএসএলআর অক্ষম করার আরও স্থায়ী উপায়গুলি সুস্পষ্ট কারণে ভিএম-এ রাখা উচিত।
স্ট্যাক ফ্রেম রিটার্ন অ্যাড্রেস এডেটেরা ওভাররাইট করার ক্ষমতা পরীক্ষা করার জন্য, আপনাকে স্ট্যাক ক্যানারি ছাড়াই সংকলন করতে হবে -fno-stack-protector
, যখন আপনাকে স্ট্যাকের সাথে কোডটি সম্পাদন করার অনুমতি দেওয়া হবে -z execstack
, তৈরি করার সাথে
$ gcc -fno-stack-protector -z execstack -o <my_program> my_code.c