আমার মেশিনে বাফার ওভারফ্লো সুরক্ষা নিষ্ক্রিয় করার কোনও উপায় আছে কি?


11

আমি আমার বিভিন্ন ভার্চুয়াল মেশিনে বাফার ওভারফ্লো নিয়ে কিছু পরীক্ষা-নিরীক্ষা করতে চাই, যার মধ্যে রয়েছে (তবে সীমাবদ্ধ নয়) দেবিয়ান 6, উবুন্টু 12.04, ফেডোরা 16, তবে প্রতিবারই আমি বাফার ওভারফ্লো শোষণ চালানোর চেষ্টা করি আমি নিম্নলিখিত বার্তাটি পাই:

stack smashing detected (core dumped)

আমার গবেষণা করার পরে আমি পড়লাম যে এটি সংকলকটিতে প্রয়োগ করা বাফার ওভারফ্লো সুরক্ষা নামে পরিচিত একটি বৈশিষ্ট্য । জিসিসি উদাহরণস্বরূপ জিসিসি স্ট্যাক-স্ম্যাশিং প্রটেক্টর (প্রোপোলিস) ব্যবহার করে , ক্ল্যাং / এলএলভিএম দুটি বাফার ওভারফ্লো সনাক্তকারী, সেফকোড এবং অ্যাড্রেসনিটিজার ব্যবহার করে

আমার প্রশ্নটি: যেহেতু আমি সত্যিই আমার মেশিনগুলিতে বাফার ওভারফ্লো আক্রমণগুলি পরীক্ষা করে দেখতে চাই বাফার ওভারফ্লো সুরক্ষা নিষ্ক্রিয় করার কোনও উপায় আছে (একটি সংকলক পতাকা, সম্ভবত? একটি লিনাক্স কনফিগারেশন ফাইল?)?

উত্তর:


16

জিসিসি

জিসিসি তে ( man gcc) চেকগুলি দ্বারা সক্ষম করা হয়

  -fstack-protector
      Emit extra code to check for buffer overflows, such as stack smashing attacks.  >This is done by adding a guard variable to functions with
      vulnerable objects.  This includes functions that call alloca, and functions with >buffers larger than 8 bytes.  The guards are initialized when
      a function is entered and then checked when the function exits.  If a guard check >fails, an error message is printed and the program exits.

  -fstack-protector-all
      Like -fstack-protector except that all functions are protected.

no-বিকল্প নামটি প্রেরণ করে আপনি উভয় অক্ষম করতে পারবেন

-fno-stack-protector -fno-stack-protector-all

LLVM / ঝনঝন

অ্যাড্রেসস্যানেটিজার সক্ষম / অক্ষম করতে এলএলভিএম / কলংয়ে ( http://clang.llvm.org/docs/UserManual.html#commandline ):

-ফ [নং-] ঠিকানা-স্যানিটাইজার: অ্যাড্রেস স্যানিটাইজার চালু করুন, একটি মেমরি ত্রুটি সনাক্তকারী।

এবং সাফেকোড ( http://safecode.cs.illinois.edu/docs/UserGuide.html )

-f [নং] memsafety


2
এসএসপি দিয়ে কোনও প্রোগ্রাম সংকলিত হয়েছে কিনা তা সনাক্ত করার কোনও (সহজ) উপায় আছে?
মিচুয়েলনিক

2
@ মিচুয়েলনিক আপনি দেখতে পাচ্ছেন যে বাইনারিটিতে কোনও রেফারেন্স রয়েছে কিনা __stack_chk_fail(উদাহরণস্বরূপstrings /bin/mybinary | grep __stack_chk_fail
ম্যাটেইও

6
আমি শুধু জিসিসি 4.7 এবং 4.1 সঙ্গে এটি পরীক্ষিত: বিকল্প -fno-stack-protector-allস্বীকৃত নয় ( -fstack-protector, -fstack-protector-allএবং -fno-stack-protectorস্বীকৃত হয়)
Marcin

gcc: error: unrecognized command line option ‘-fno-stack-protector-all’; did you mean ‘-fstack-protector-all’?
ক্লিমেট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.