OWASP বিভাগ: MASVS-CODE: কোড গুণমান
ওভারভিউ
অ্যাপ ব্যাকআপের লক্ষ্য ব্যবহারকারীদের ডেটা সংরক্ষণ করা যাতে পরে এটি একটি নতুন ডিভাইসে বা ডেটা হারানোর ক্ষেত্রে পুনরুদ্ধার করা যায়। অ্যাপ্লিকেশান ব্যাকআপ সংক্রান্ত বিদ্যমান নিরাপত্তা সুপারিশগুলি সংক্ষিপ্ত, Android সংস্করণ এবং ডিভাইস নির্মাতাদের মধ্যে পরিবর্তিত। সাধারণ থিম হল যে এই সুপারিশগুলির লক্ষ্য হল কোনও সংবেদনশীল ডেটা ফাঁস না হওয়া নিশ্চিত করা।
স্ট্যান্ডার্ড অ্যান্ড্রয়েড ব্যাকআপ সিস্টেম অ্যাপ্লিকেশানগুলিকে তাদের ডেটা ক্লাউডে ব্যাক আপ করতে বা অটো ব্যাকআপের মাধ্যমে একটি নতুন ডিভাইসে ডেটা স্থানান্তর করার জন্য সবচেয়ে সুরক্ষিত, শক্তিশালী এবং সহজতম সমাধান প্রদান করে (যা ডিফল্টরূপে সক্রিয় থাকে, বাস্তবায়নের জন্য কোন কাজের প্রয়োজন হয় না এবং করতে পারে৷ এছাড়াও প্রসারিত করা হবে) এবং কী-মান ব্যাকআপ । আমরা এই সমাধানটি ব্যবহার করার পরামর্শ দিই কারণ এটি ফলস্বরূপ ব্যাকআপ ডেটা ডাইরেক্টরিতে সঞ্চয় করে যা অন্য 3p অ্যাপগুলি দ্বারা অ্যাক্সেস করা যায় না, সেইসাথে বিশ্রামে এনক্রিপশন, ট্রানজিটে এনক্রিপশন এবং কনফিগারেশনগুলি ব্যাকআপ থেকে সংবেদনশীল ডেটা বাদ দেওয়ার অনুমতি দেয়।
এর পরিবর্তে যদি কোনও অ্যাপ এমন একটি ব্যাকআপ সমাধান প্রয়োগ করে যা স্ট্যান্ডার্ড অ্যান্ড্রয়েড ব্যাকআপ সিস্টেমের উপর নির্ভরশীল নয়, তাহলে এটি সংবেদনশীল ডেটা ফাঁস হওয়ার কারণে ভুল হওয়ার সম্ভাবনা বাড়িয়ে দিতে পারে। নন-স্ট্যান্ডার্ড ব্যাকআপ সমাধানের উদাহরণগুলির মধ্যে ব্যবহারকারীর ডেটা ফাঁসের জন্য উন্মুক্ত করার উদাহরণগুলির মধ্যে রয়েছে একটি "রপ্তানি" বা "ব্যাকআপ" সক্ষমতা অফার করে যা অন্যান্য অ্যাপগুলির দ্বারা পাঠযোগ্য ডিরেক্টরিগুলিতে অ্যাপ ডেটার একটি অনুলিপি তৈরি করে এবং যেটি ফাঁস হওয়ার ঝুঁকিতে থাকে (হয় সরাসরি বা অন্যান্য দুর্বলতার মাধ্যমে)।
প্রভাব
অ্যাপ ব্যাকআপ সেট আপ করার সময় নিরাপত্তা সুপারিশ অনুসরণ করা সংবেদনশীল ডেটা সম্ভাব্য ফাঁস প্রতিরোধ করে যা ব্যাকআপ অন্তর্ভুক্ত হতে পারে। প্রকৃত ডেটা এবং আক্রমণকারীর উদ্দেশ্যের উপর নির্ভর করে, সংবেদনশীল ডেটা ফাঁস তথ্য প্রকাশ, ব্যবহারকারীর ছদ্মবেশ এবং আর্থিক ক্ষতির কারণ হতে পারে।
প্রশমন
স্ট্যান্ডার্ড অ্যান্ড্রয়েড ব্যাকআপ সিস্টেম ব্যবহার করুন
স্ট্যান্ডার্ড অ্যান্ড্রয়েড ব্যাকআপ সিস্টেম সর্বদা ট্রানজিট এবং বিশ্রামে ব্যাকআপ ডেটা এনক্রিপ্ট করে। ব্যবহার করা Android সংস্করণ এবং আপনার ডিভাইসে একটি লক স্ক্রিন আছে কিনা তা নির্বিশেষে এই এনক্রিপশন প্রয়োগ করা হয়৷ অ্যান্ড্রয়েড 9 থেকে শুরু করে, যদি ডিভাইসটিতে একটি লক স্ক্রিন সেট থাকে, তবে ব্যাকআপ ডেটা শুধুমাত্র এনক্রিপ্ট করা হয় না, কিন্তু Google-এর কাছে অজানা একটি কী দিয়ে এনক্রিপ্ট করা হয় (লক স্ক্রিন গোপনীয়তা এনক্রিপশন কীকে রক্ষা করে, এইভাবে এন্ড-টু-এন্ড এনক্রিপশন সক্ষম করে )
সাধারণভাবে মনে রাখবেন তথ্য সংরক্ষণ এবং নিরাপত্তা নির্দেশিকা অনুসরণ করুন।
যদি আপনার ব্যাকআপে বিশেষভাবে সংবেদনশীল ডেটা থাকে, তাহলে আমরা হয় এই ডেটা বাদ দেওয়ার পরামর্শ দিই বা, যদি আপনি এটি বাদ দিতে না পারেন, তাহলে নিম্নলিখিত বিভাগে বর্ণিত এন্ড-টু-এন্ড এনক্রিপশন প্রয়োজন৷
ব্যাকআপ থেকে ডেটা বাদ দেওয়া
আপনি একটি নিয়ম ফাইল ব্যবহার করে ব্যাকআপ থেকে কোন ডেটা বাদ দিতে হবে তা নির্দিষ্ট করতে পারেন, প্রচলিতভাবে backup_rules.xml
বলা হয় এবং res/xml
অ্যাপ ফোল্ডারে রাখা হয়। Android এর ব্যবহৃত সংস্করণের উপর নির্ভর করে ব্যাকআপ নিয়মগুলি কীভাবে কনফিগার করা হয় তার মধ্যে কিছু পার্থক্য রয়েছে:
- অ্যান্ড্রয়েড সংস্করণ 12 (এপিআই স্তর 31) এবং উচ্চতরের জন্য ,
AndroidManifest.xml
এর মধ্যে<application>
উপাদানটিতে একটিandroid:dataExtractionRules
অ্যাট্রিবিউট যোগ করুন : - xml
xml <application android:name="com.example.foo" android:dataExtractionRules="@xml/backup_rules_extraction"> … </application>
তারপর, আপডেট করা কনফিগারেশন বিন্যাস অনুসরণ করে, backup_rules.xml
ফাইলটিকে ডেটা অধ্যবসায় এবং অ্যাপ্লিকেশনের নিরাপত্তা প্রয়োজনীয়তা অনুযায়ী কনফিগার করুন ।
backup_rules.xml
ফাইল কনফিগারেশনের জন্য প্রয়োজনীয় বিন্যাস ডেভেলপারদের ক্লাউড এবং ডিভাইস-টু-ডিভাইস (D2D) স্থানান্তরের জন্য কাস্টম ব্যাকআপ নিয়ম সংজ্ঞায়িত করতে দেয়। <device-transfer>
অ্যাট্রিবিউট সেট না থাকলে, D2D মাইগ্রেশনের সময় সমস্ত অ্যাপ্লিকেশন ডেটা স্থানান্তর করা হবে। এটি হাইলাইট করা গুরুত্বপূর্ণ যে লক্ষ্য অ্যাপ্লিকেশনটি Android 12 বা উচ্চতরকে লক্ষ্য করলেও, Android 11 (API স্তর 30) বা তার নিচের ডিভাইসগুলির জন্য ব্যাকআপ নিয়মগুলির একটি অতিরিক্ত সেট সহ একটি পৃথক ফাইল সর্বদা নির্দিষ্ট করা উচিত।
- অ্যান্ড্রয়েড সংস্করণ 11 এবং তার নিচের সংস্করণের জন্য ,
AndroidManifest.xml
এর মধ্যে<application>
উপাদানটিতে একটিandroid:fullBackupContent
অ্যাট্রিবিউট যোগ করুন: - xml
xml <application android:name="com.example.foo" android:fullBackupContent="@xml/backup_rules_full"> … </application>
তারপর, ব্যাক আপ ব্যবহারকারীর ডেটা নিবন্ধে রিপোর্ট করা সিনট্যাক্স ব্যবহার করে অ্যাপ্লিকেশনটির ডেটা অধ্যবসায় এবং সুরক্ষা প্রয়োজনীয়তা অনুসারে backup_rules.xml
ফাইলটি কনফিগার করুন৷
এন্ড-টু-এন্ড এনক্রিপশন প্রয়োজন
আপনি যদি আপনার ব্যাকআপ থেকে সংবেদনশীল ডেটা বাদ দিতে না পারেন, তাহলে আমরা এন্ড-টু-এন্ড এনক্রিপশনের প্রয়োজন করার পরামর্শ দিই যার মানে শুধুমাত্র Android 9 বা তার বেশির ডিভাইসে এবং লক স্ক্রিন সেট করা থাকলেই ব্যাকআপ নেওয়ার অনুমতি দেওয়া। আপনি requireFlags="clientSideEncryption"
পতাকা ব্যবহার করে এটি অর্জন করতে পারেন, যেটির নাম পরিবর্তন করে disableIfNoEncryptionCapabilities
করতে হবে এবং Android 12 থেকে শুরু করে true
সেট করতে হবে।
আপনি যদি স্ট্যান্ডার্ড অ্যান্ড্রয়েড ব্যাকআপ সিস্টেম ব্যবহার করতে না পারেন
আপনি যদি স্ট্যান্ডার্ড অ্যান্ড্রয়েড ব্যাকআপ সিস্টেম ব্যবহার করতে না পারেন, তাহলে নিরাপদে আপনার ব্যাকআপ ডেটা সঞ্চয় করার পাশাপাশি আপনার ব্যাকআপ থেকে কোন ডেটা বাদ দিতে হবে তা উল্লেখ করা আরও জটিল৷ এটি কোড স্তরে নির্দিষ্ট করা প্রয়োজন এবং এর ফলে ত্রুটি-প্রবণ, ডেটা ফাঁসের ঝুঁকিপূর্ণ। এই পরিস্থিতিতে, প্রত্যাশিত ব্যাকআপ আচরণে কোনও পরিবর্তন হয়নি তা নিশ্চিত করতে নিয়মিতভাবে আপনার বাস্তবায়ন পরীক্ষা করার পরামর্শ দেওয়া হয়।
সম্পদ
- অনুমতি ব্যাকআপ বৈশিষ্ট্যের বর্ণনা
- ফাইল-ভিত্তিক এনক্রিপশন
- D2D স্থানান্তর আচরণ পরিবর্তন
- স্বয়ংক্রিয় ব্যাকআপ দিয়ে ব্যবহারকারীর ডেটা ব্যাক আপ করুন
- অ্যান্ড্রয়েড ব্যাকআপ পরিষেবার সাথে কী-মানের জোড়া ব্যাক আপ করুন
- Android 12 বা উচ্চতর সংস্করণে ব্যাকআপ নিয়ন্ত্রণ করুন
- অ্যান্ড্রয়েড 11 এবং তার নিচের সংস্করণে ব্যাকআপ নিয়ন্ত্রণ করুন
- Google-এর চুক্তি এবং নীতিতে PII বোঝা
- ব্যাকআপ পরীক্ষা করুন এবং পুনরুদ্ধার করুন
- ক্রিপ্টোগ্রাফি
- অ্যান্ড্রয়েড কীস্টোর সিস্টেম
- এডিবি
- বিকাশকারী বিকল্প