মেমরি নিরাপত্তা

স্মৃতির নিরাপত্তাহীনতা

মেমরি সেফটি বাগ, নেটিভ প্রোগ্রামিং ল্যাঙ্গুয়েজে মেমরি পরিচালনার ত্রুটি, অ্যান্ড্রয়েড কোডবেসে সবচেয়ে সাধারণ সমস্যা। তারা উচ্চ তীব্রতার নিরাপত্তা দুর্বলতার 60% এর জন্য দায়ী এবং লক্ষ লক্ষ ব্যবহারকারী-দৃশ্যমান ক্র্যাশের জন্য দায়ী।

মেমরি নিরাপত্তা বাগ ব্যবহারকারীর অভিজ্ঞতা, খরচ, এবং নিরাপত্তা প্রভাবিত করে।
চিত্র 1 : মেমরি নিরাপত্তা বাগ এবং গুণমান, নিরাপত্তা, এবং খরচের উপর তাদের নেতিবাচক প্রভাব

মেমরি নিরাপত্তা বাগ নেতিবাচকভাবে গুণমান এবং স্থিতিশীলতাকে প্রভাবিত করে এবং শেষ ব্যবহারকারীর ডিভাইসে লক্ষ্য করা ক্র্যাশগুলির একটি উল্লেখযোগ্য অংশের জন্য দায়ী। তাই উচ্চ ঘনত্বের মেমরি নিরাপত্তা বাগ সরাসরি দুর্বল ব্যবহারকারীর অভিজ্ঞতার সাথে সম্পর্কযুক্ত।
C, C++ এবং অ্যাসেম্বলির মতো মেমরির অনিরাপদ ভাষায় লেখা নেটিভ কোড অ্যান্ড্রয়েড প্ল্যাটফর্ম কোডের 70% এর বেশি প্রতিনিধিত্ব করে এবং প্রায় 50% প্লে স্টোর অ্যাপ্লিকেশনগুলিতে উপস্থিত থাকে।
কোডের ক্রমাগত ক্রমবর্ধমান জটিলতার পরিপ্রেক্ষিতে, যদি উপেক্ষা না করা হয় তবে সময়ের সাথে সাথে মেমরি সুরক্ষা বাগগুলি বাড়তে চলেছে। অতএব, আমাদের ইকোসিস্টেমকে এমন সরঞ্জাম এবং প্রযুক্তি সরবরাহ করা যা এই জাতীয় বাগগুলি সনাক্ত করতে এবং প্রশমিত করতে পারে আমাদের দীর্ঘমেয়াদী সাফল্যের জন্য গুরুত্বপূর্ণ।
গত বেশ কয়েক বছর ধরে, আমরা আমাদের হার্ডওয়্যার অংশীদারদের সাথে ঘনিষ্ঠভাবে কাজ করছি হার্ডওয়্যার প্রযুক্তি যেমন আর্ম মেমরি ট্যাগিং তৈরি করতে এবং Android কোডবেসে রাস্ট চালু করেছি।
এই প্রযুক্তিগুলি আমাদের মেমরি সুরক্ষার পথকে ত্বরান্বিত করতে চলেছে এবং বৃহত্তর সফ্টওয়্যার শিল্পকে একটি মূল সমস্যা সমাধানে সহায়তা করতে চলেছে৷

মেমরি নিরাপত্তা বাগ নেতিবাচক গুণমান প্রভাবিত

সিস্টেমের অবস্থার উপর নির্ভর করে সুপ্ত মেমরি নিরাপত্তা বাগগুলি অ-নির্ধারক ফলাফল সৃষ্টি করতে পারে। এই অপ্রত্যাশিত আচরণ আমাদের ব্যবহারকারীদের জন্য ক্র্যাশ এবং বিরক্তির দিকে পরিচালিত করে।

প্রতিদিন আমরা শেষ ব্যবহারকারীর ডিভাইস থেকে লক্ষাধিক নেটিভ ক্র্যাশ পর্যবেক্ষণ করি এবং GWP-ASan প্রবর্তনের মাধ্যমে, আমরা তাদের বেশিরভাগ মেমরি নিরাপত্তা বাগ খুঁজে পেয়েছি।
এই ডেটা পয়েন্টটি মেমরি সুরক্ষা বাগগুলির গুণমান এবং ঘনত্বের মধ্যে পারস্পরিক সম্পর্ককে যাচাই করে এবং আমাদের Chrome সহকর্মীরা যা পর্যবেক্ষণ করে তার সাথে সারিবদ্ধভাবে রয়েছে (Chrome GWP-ASan বাগ হটলিস্ট দেখুন)।

মেমরি নিরাপত্তা বাগ নেতিবাচকভাবে নিরাপত্তা প্রভাবিত

মেমরি সেফটি বাগগুলি ধারাবাহিকভাবে Android নিরাপত্তা দুর্বলতার শীর্ষস্থানীয় অবদানকারী হয়েছে, প্রথম অ্যান্ড্রয়েড রিলিজের মতোই।

মেমরি নিরাপত্তা বাগ নেতিবাচকভাবে নিরাপত্তা প্রভাবিত.
চিত্র 2 : অ্যান্ড্রয়েড দুর্বলতায় মেমরি নিরাপত্তা বাগ অবদান

যদিও এটা জেনে উৎসাহিত করা হয় যে এটি শুধুমাত্র একটি Android সমস্যা নয় ( Chrome এবং Microsoft পরিসংখ্যান দেখুন), আমাদের ব্যবহারকারীদের নিরাপত্তার জন্য আমাদের আরও কিছু করতে হবে।
Google-এর প্রোজেক্ট জিরো টিম শূন্য দিনের শোষণগুলি ট্র্যাক করে যা ব্যবহারকারীদের বিরুদ্ধে শূন্য দিনের দুর্বলতা হিসাবে বাস্তব আক্রমণে ব্যবহৃত হয়েছে৷ এগুলি অনুমানমূলক বাগ নয় তবে ব্যবহারকারীদের বিরুদ্ধে আক্রমণে সক্রিয়ভাবে ব্যবহৃত শোষণ। মেমরি নিরাপত্তা বাগ (মেমরি দুর্নীতি এবং ব্যবহারের পরে-মুক্ত) একটি অপ্রতিরোধ্য সংখ্যাগরিষ্ঠ গঠিত।

মেমরি নিরাপত্তা বাগ খরচ বৃদ্ধি

নিরাপত্তা সংশোধনের সাথে ডিভাইসগুলিকে আপ টু ডেট রাখা আমাদের ব্যবহারকারীদের নিরাপদ রাখে কিন্তু আমাদের ইকোসিস্টেমের জন্য একটি আর্থিক খরচ সহ আসে৷

নিম্ন স্তরের বিক্রেতা কোডে মেমরি নিরাপত্তা বাগগুলির উচ্চ ঘনত্ব, যেটিতে প্রায়শই কাস্টম পরিবর্তন থাকে, তা উল্লেখযোগ্যভাবে সংশোধন এবং পরীক্ষার খরচ বাড়ায়। যাইহোক, বিকাশ চক্রের প্রথম দিকে এই বাগগুলি সনাক্ত করা এই খরচগুলি কমাতে পারে।

গবেষণা দেখায় যে আগে বাগ সনাক্ত করা খরচ ছয় গুণ পর্যন্ত কমাতে পারে। যাইহোক, আমাদের ইকোসিস্টেমের জটিলতা, একটি বিক্রেতা দ্বারা রক্ষণাবেক্ষণ করা কোডবেসের গড় সংখ্যা এবং সফ্টওয়্যারের ক্রমবর্ধমান জটিলতার কারণে, সঞ্চয় আরও বেশি হতে পারে।

মেমরি নিরাপত্তা

অ্যান্ড্রয়েড 12 দিয়ে শুরু করে, আমরা অ্যান্ড্রয়েড কোডবেসে মেমরি সেফটি বাগগুলির ঘনত্ব কমাতে সিস্টেমিক পরিবর্তন করেছি। আমরা অ্যান্ড্রয়েড মেমরি সুরক্ষা সরঞ্জামগুলি প্রসারিত করছি এবং নতুন প্রয়োজনীয়তা প্রবর্তন করছি যা আমাদের বাস্তুতন্ত্রকে এই শ্রেণীর বাগগুলি মোকাবেলা করতে উত্সাহিত করে৷ সময়ের সাথে সাথে, এগুলি আমাদের ব্যবহারকারীদের জন্য উচ্চ মানের এবং আরও ভাল নিরাপত্তা এবং আমাদের বিক্রেতাদের কম খরচে অনুবাদ করা উচিত।

মেমরি নিরাপত্তা আগামী বছরগুলিতে গুণমান এবং নিরাপত্তার জন্য একটি পার্থক্যকারী হয়ে উঠতে পারে, এবং Android এর পথ দেখানোর পরিকল্পনা করছে।

মেমরি নিরাপত্তা সমর্থনে প্রয়োজনীয়তা

অ্যান্ড্রয়েড কম্প্যাটিবিলিটি ডেফিনিশন ডকুমেন্ট (CDD) দৃঢ়ভাবে ডেভেলপমেন্টের সময় মেমরি নিরাপত্তা সরঞ্জাম ব্যবহারের সুপারিশ করে।
আমরা আমাদের ইকোসিস্টেমের সাথে ঘনিষ্ঠভাবে কাজ করছি যাতে মেমরি সুরক্ষা সরঞ্জামগুলির ব্যবহার বাড়ানো যায় এবং ক্রমাগত একীকরণ এবং পরীক্ষার প্রক্রিয়াগুলিতে তাদের সংহত করা যায়।
সময়ের সাথে সাথে, আমরা নিশ্চিত করতে চাই যে প্রতিটি ডিভাইস একটি সম্পূর্ণ কম্প্যাটিবিলিটি টেস্ট স্যুট ( CTS ) রানে পাস করে, মেমরি সুরক্ষা সরঞ্জামগুলি ব্যবহার করে, যা দেখায় যে এই ধরনের কোনও বাগ পাওয়া যায়নি। উদাহরণস্বরূপ, আর্ম v9 প্ল্যাটফর্মগুলিকে মেমরি ট্যাগিং সক্ষম সহ একটি CTS চালানোর প্রয়োজন হবে, যেখানে আর্ম v8 প্ল্যাটফর্মগুলিকে HWASAN এবং KASAN ব্যবহার করে একটি CTS চালানোর জন্য অনুরোধ করা হবে।

প্ল্যাটফর্ম কোডের জন্য একটি নতুন প্রোগ্রামিং ভাষা হিসাবে মরিচা

অ্যান্ড্রয়েড 12 একটি প্ল্যাটফর্ম ভাষা হিসাবে মরিচা চালু করেছে। মরিচা C/C++ এর মত কর্মক্ষমতা স্তরে মেমরি এবং থ্রেড নিরাপত্তা প্রদান করে। আমরা আশা করি যে মরিচা বেশিরভাগ নতুন দেশীয় প্রকল্পগুলির জন্য পছন্দের পছন্দ হবে। যাইহোক, সমস্ত মেমরির অনিরাপদ কোড পুনর্লিখন করা, যা বর্তমানে Android প্ল্যাটফর্ম কোডের 70% এর বেশি প্রতিনিধিত্ব করে, মরিচা-এ সম্ভব নয়। এগিয়ে যাওয়া মরিচা মেমরি সুরক্ষা সরঞ্জামের পরিপূরক হবে।

মেমরি নিরাপত্তা সরঞ্জাম

অ্যান্ড্রয়েড বিভিন্ন ধরনের টুল সমর্থন করে যা মেমরি নিরাপত্তা বাগ শনাক্ত করতে সাহায্য করে। নীচের চিত্রটি উপলব্ধ Android মেমরি সুরক্ষা সরঞ্জামগুলির একটি শ্রেণিবিন্যাস উপস্থাপন করে৷

মেমরি নিরাপত্তা বাগ নেতিবাচকভাবে নিরাপত্তা প্রভাবিত.
চিত্র 3 : অ্যান্ড্রয়েড মেমরি নিরাপত্তা সরঞ্জাম ল্যান্ডস্কেপ

আমাদের টুলিং একটি বিশাল পরিসরে স্থাপনার পরিস্থিতি এবং লক্ষ্যগুলি কভার করে। নিম্নলিখিত ডকুমেন্টেশন প্রতিটি টুল বর্ণনা করে এবং আপনার পণ্যগুলিতে তাদের ব্যবহারের জন্য একটি রেফারেন্স প্রদান করে।