ক্রোমিয়াম ক্রনিকল #9: ক্লাস্টারফুজ

পর্ব 9: মাউন্টেন ভিউতে অ্যাড্রিয়ান টেলর দ্বারা (ডিসেম্বর, 2019)
আগের পর্বগুলো

আপনি দেখতে পারেন যে আপনাকে ClusterFuzz দ্বারা আবিষ্কৃত উচ্চ-প্রধান নিরাপত্তা বাগগুলি ঠিক করতে বলা হয়েছে৷ এটা কি? আপনি গুরুত্ব সহকারে যারা বাগ নিতে হবে? কিভাবে সাহায্য করতে পারেন?

অস্পষ্ট ফ্লো চার্ট

ClusterFuzz Chrome-এ ইনপুট ফিড করে এবং ক্র্যাশের দিকে নজর দেয়। এই ক্রোম বিল্ডগুলির মধ্যে কিছুতে অতিরিক্ত চেক চালু করা আছে, উদাহরণস্বরূপ AddressSanitizer , যা মেমরি নিরাপত্তা ত্রুটির জন্য দেখায়৷

ClusterFuzz ক্র্যাশের অবস্থানের উপর ভিত্তি করে উপাদানগুলি বরাদ্দ করে এবং ক্র্যাশের ধরন এবং এটি একটি স্যান্ডবক্সড প্রক্রিয়ায় ঘটেছে কিনা তার উপর ভিত্তি করে তীব্রতা নির্ধারণ করে ৷ উদাহরণস্বরূপ, একটি হিপ ইউজ-আফটার-ফ্রি উচ্চ তীব্রতা হবে, যদি না এটি ব্রাউজার প্রক্রিয়ায় থাকে, সেক্ষেত্রে এটি গুরুত্বপূর্ণ (প্রভাব সীমিত করার জন্য কোন স্যান্ডবক্স নেই!):

class Foo {
  Widget* widget;
};

void Foo::Bar() {
  delete widget;
  ...
  widget->Activate();  // Bad in the renderer process, worse in the
                       // browser process. Obviously, real bugs are
                       // more subtle. Usually.

ClusterFuzz fuzzers থেকে বা বাহ্যিকভাবে জমা দেওয়া বাগ থেকে ইনপুট তৈরি করে। কিছু fuzzer libFuzer দ্বারা চালিত হয়, যা কোড কভারেজ বাড়ানোর জন্য ইনপুট বিকশিত করে। কেউ কেউ protobufs রূপান্তরিত ইনপুট ভাষার ব্যাকরণ বোঝেন। একবার ClusterFuzz একটি ক্র্যাশ খুঁজে পেলে, এটি ইনপুট টেস্ট কেসকে ছোট করার চেষ্টা করবে এবং এমনকি আপত্তিকর প্রতিশ্রুতি খুঁজে পেতে দ্বিখণ্ডিত করার চেষ্টা করবে৷ এটা অনেক খুঁজে পায়...

তুমি সাহায্য করতে পার:

  • বস্তুর জীবনকাল এবং পূর্ণসংখ্যা ওভারফ্লো সম্পর্কে বিভ্রান্ত হন।
  • নতুন fuzzers যোগ করুন, বিশেষ করে যখন আপনি অবিশ্বস্ত ডেটা বা IPC প্রক্রিয়া করেন (নীচের লিঙ্কগুলি দেখুন, প্রায়ই <20 লাইন কোড)।
  • ClusterFuzz-প্রতিবেদিত বাগগুলি ঠিক করুন: এর তীব্রতা হিউরিস্টিকগুলি বিশ্বাস করা যেতে পারে কারণ তারা বাস্তব-বিশ্বের শোষণের উপর ভিত্তি করে : এমনকি একটি একক বাইট ওভারফ্লো আক্রমণকারীর দ্বারা নির্বিচারে কোড সম্পাদনের দিকে পরিচালিত করেছে।

সম্পদ

  • ক্রোমিয়ামে ফাজ টেস্টিং : নতুন ডেটা ফরম্যাটের জন্য ক্লাস্টারফুজ-এ কীভাবে নতুন ফুজার যুক্ত করা যায়, বা শুধুমাত্র এই কারণে যে আপনি দুর্দান্ত ভালনগুলি খুঁজে পাওয়ার কৃতিত্ব চান৷
  • Chrome Fuzzer প্রোগ্রাম আপডেট এবং কিভাবে করতে হবে : Fuzzers এছাড়াও বহিরাগত অবদানকারীদের দ্বারা লেখা হয়. তাদের অভিজ্ঞতা সম্পর্কে শুনুন এবং এটি শুরু করা কতটা সহজ হতে পারে।