পরিবেশ সুরক্ষিত করুন

আপনার অ্যাপ নিরাপদ ও বিশ্বস্ত পরিবেশে চলছে কিনা তা শনাক্ত করতে সাহায্য করার জন্য Google এক সেট API এবং পরিষেবা অফার করে। এর মূল কেন্দ্রবিন্দু হল Play Integrity API, যা সম্ভাব্য ঝুঁকিপূর্ণ এবং প্রতারণামূলক ইন্টার‍্যাকশন শনাক্ত করে ইন্টার‍্যাকশনগুলি আসল কিনা তা পরীক্ষা করতে সাহায্য করে। অ্যাপ ও ডিভাইসের ইন্টিগ্রিটি ছাড়াও, Play Integrity API এখন অ্যাক্সেস ও অ্যাক্সেসিবিলিটি সংক্রান্ত ঝুঁকি, Google Play Protect এবং সাম্প্রতিক ডিভাইস অ্যাক্টিভিটি সম্পর্কে তথ্য প্রদান করে। আপনার জালিয়াতি-প্রতিরোধকারী কৌশল আরও শক্তিশালী করতে, Android প্ল্যাটফর্ম নির্দিষ্ট পরিস্থিতির জন্য API অফার করে যা আপনার অ্যাপের জন্য প্রাসঙ্গিক হতে পারে।

Play Integrity API

Play Integrity API ফিচার

Play Integrity API-এর মাধ্যমে আপনি জানতে পারবেন যে ডিভাইসে অ্যাপটি চলছে সেটির নিরাপত্তা সংক্রান্ত স্ট্যাটাস কী। এটি আপনাকে নিশ্চিত হতে সাহায্য করে যে সঠিক ব্যবহারকারী সংবেদনশীল তথ্য অ্যাক্সেস করছেন।

এটি আপনাকে চেক করতে সাহায্য করে যে ইন্টার‍্যাকশন এবং সার্ভার অনুরোধগুলি আপনার আসল অ্যাপ বাইনারি থেকে বিশ্বস্ত পরিবেশে আসছে:

  • আসল অ্যাপ বাইনারি: আপনি Google Play-এর শনাক্ত করা অপরিবর্তিত বাইনারির সাথে ইন্টার‍্যাক্ট করছেন কিনা তা নির্ধারণ করুন।
  • আসল Play ইনস্টল: বর্তমান ব্যবহারকারীর অ্যাকাউন্ট লাইসেন্সপ্রাপ্ত কিনা তা নির্ধারণ করুন, যার অর্থ হল ব্যবহারকারী Google Play-তে আপনার অ্যাপ বা গেম ইনস্টল করেছেন বা তার জন্য পেমেন্ট করেছেন।
  • আসল Android ডিভাইস: আপনার অ্যাপটি Google Play পরিষেবা দ্বারা পরিচালিত আসল Android-চালিত ডিভাইসে চলছে কিনা তা নির্ধারণ করুন।
  • পরিচিত ম্যালওয়্যার থেকে মুক্ত: Google Play Protect চালু আছে কিনা এবং ডিভাইসে ইনস্টল করা কোনও ঝুঁকিপূর্ণ বা বিপজ্জনক অ্যাপ খুঁজে পেয়েছে কিনা তা নির্ধারণ করুন।
  • অন্য অ্যাপের মাধ্যমে অ্যাক্সেস করার ঝুঁকি কম: স্ক্রিন ক্যাপচার করতে বা ডিভাইস ও আপনার অ্যাপে ইনপুট কন্ট্রোল করতে পারে এমন অন্য অ্যাপ চলছে কিনা তা নির্ধারণ করুন।

এটি কীভাবে জালিয়াতি কমাতে সাহায্য করে

ব্যবহারকারী আপনার অ্যাপে কোনও গুরুত্বপূর্ণ অ্যাকশন নিলে, আপনি Play Integrity API কল করতে পারেন। যদি তা না হয়, তাহলে আপনার অ্যাপের ব্যাকএন্ড সার্ভার সিদ্ধান্ত নিতে পারে যে আক্রমণ এবং জালিয়াতির বিরুদ্ধে প্রতিরক্ষা করতে কী করতে হবে। যেমন, আপনার অতিরিক্ত ব্যবহারকারী যাচাইকরণের প্রয়োজন হতে পারে অথবা সংবেদনশীল কার্যকারিতায় অ্যাক্সেস অস্বীকার করতে পারেন।

Play Integrity API-এর সিদ্ধান্ত নেওয়ার ফ্লো

অ্যাপ অ্যাক্সেস রিস্ক

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

ফোনের স্ক্রিনশট যেখানে ব্যবহারকারীকে নির্দিষ্ট কিছু অ্যাপ বন্ধ করতে বলা হচ্ছে।

এই সহযোগিতামূলক প্রচেষ্টার জন্য ধন্যবাদ, আমরা গ্রাহকদের আরও কার্যকরভাবে সুরক্ষিত করার জন্য গভীর ইনসাইট পেতে প্রয়োজনীয় সিগন্যাল পেতে সক্ষম হয়েছি।
—Nubank, আগেভাগে অ্যাক্সেস পার্টনার

অ্যাপ অ্যাক্সেস রিস্কের বিভিন্ন রিস্ক লেভেল আছে:

  • ক্যাপচারিং রেসপন্স মানে হল, স্ক্রিন ক্যাপচার করতে পারে এমন অন্যান্য অ্যাপ চলছে।
  • কন্ট্রোলিং রেসপন্স মানে হল, অন্যান্য অ্যাপ চলছে যা ডিভাইস কন্ট্রোল করতে পারে এবং তাই তারা স্ক্রিন ক্যাপচার করতে এবং আপনার অ্যাপে ইনপুট কন্ট্রোল করতে পারে।

অ্যাপ অ্যাক্সেস রিস্ক এনফোর্সমেন্ট

আপনার অ্যাপ বা গেমে উচ্চ মূল্যের বা সংবেদনশীল অ্যাকশন শনাক্ত করুন যাতে সরাসরি অ্যাক্সেস অস্বীকার করার পরিবর্তে Play Integrity API-এর মাধ্যমে সুরক্ষিত করা যায়। সম্ভব হলে, বেশি-মূল্যের অ্যাকশন চালিয়ে যাওয়ার অনুমতি দেওয়ার আগে ঝুঁকিপূর্ণ ট্রাফিক চ্যালেঞ্জ করুন। যেমন, অ্যাপ অ্যাক্সেস রিস্ক যদি দেখায় যে এমন কোনও অ্যাপ চলছে যা স্ক্রিন ক্যাপচার করতে পারে, তাহলে আপনি যে কার্যকারিতা সুরক্ষিত রাখতে চান, ব্যবহারকারীকে সেটি ব্যবহার করার অনুমতি দেওয়ার আগে, স্ক্রিন ক্যাপচার করতে পারে এমন অ্যাপ বন্ধ করতে বা আনইনস্টল করতে বলুন।

এই টেবিলে কিছু উদাহরণস্বরূপ রায় দেওয়া হল:

অ্যাপ অ্যাক্সেস রিস্কের রায় সংক্রান্ত উত্তরের উদাহরণ ব্যাখ্যা
appsDetected:
["KNOWN_INSTALLED"]
শুধুমাত্র Google Play দ্বারা স্বীকৃত বা ডিভাইস প্রস্তুতকারকের দ্বারা সিস্টেম পার্টিশনে প্রিলোড করা অ্যাপ ইনস্টল করা আছে। এমন কোনও অ্যাপ চলছে না যা ক্যাপচার, কন্ট্রোল বা ওভারলে সংক্রান্ত রায় দিতে পারে।
appsDetected:
["KNOWN_INSTALLED",
"UNKNOWN_INSTALLED",
"UNKNOWN_CAPTURING"]
Google Play-এর মাধ্যমে ইনস্টল করা বা ডিভাইস প্রস্তুতকারকের দ্বারা সিস্টেম পার্টিশনে প্রিলোড করা অ্যাপ আছে। অন্যান্য অ্যাপ চলছে এবং সেগুলির অনুমতি চালু করা আছে যা স্ক্রিন দেখতে বা অন্যান্য ইনপুট ও আউটপুট ক্যাপচার করতে ব্যবহার করা যেতে পারে।
appsDetected:
["KNOWN_INSTALLED",
"KNOWN_CAPTURING",
"UNKNOWN_INSTALLED",
"UNKNOWN_CONTROLLING"]
Play বা সিস্টেম চলছে যার অনুমতি চালু করা আছে এবং স্ক্রিন দেখতে বা অন্যান্য ইনপুট ও আউটপুট ক্যাপচার করতে ব্যবহার করা যেতে পারে। এছাড়াও, অন্যান্য অ্যাপ চলছে যেগুলির অনুমতি চালু করা আছে এবং ডিভাইস কন্ট্রোল করতে ও আপনার অ্যাপে সরাসরি ইনপুট কন্ট্রোল করতে ব্যবহার করা যেতে পারে।
appAccessRiskVerdict: {} অ্যাপ অ্যাক্সেস রিস্ক মূল্যায়ন করা হয়নি কারণ প্রয়োজনীয় শর্ত পূরণ করা হয়নি। যেমন, ডিভাইসটি যথেষ্ট বিশ্বাসযোগ্য ছিল না।

Play Protect সিগন্যাল

Play Protect সিগন্যাল আপনার অ্যাপকে জানায় যে Play Protect চালু আছে কিনা এবং ডিভাইসে ইনস্টল করা কোনও ক্ষতিকর অ্যাপ খুঁজে পেয়েছে কিনা।

environmentDetails:{
  playProtectVerdict: "NO_ISSUES"
}

আপনার অ্যাপ বা ব্যবহারকারীর ডেটার ক্ষেত্রে ম্যালওয়্যার যদি বিশেষ উদ্বেগের কারণ হয়, তাহলে আপনি এই রায় চেক করে দেখতে পারেন এবং ব্যবহারকারীকে Play Protect চালু করতে বা ক্ষতিকর অ্যাপ সরিয়ে দিতে বলতে পারেন।

Play Protect ডায়ালগ চালু করুন

playProtectVerdict-এর নিম্নলিখিত মানগুলির মধ্যে যেকোনও একটি থাকতে পারে:

ভার্ডিক্ট ব্যাখ্যা প্রস্তাবিত পদক্ষেপ

NO_ISSUES

Play Protect চালু করা আছে এবং ডিভাইসে কোনও অ্যাপ সংক্রান্ত সমস্যা খুঁজে পাওয়া যায়নি।

Play Protect চালু আছে এবং কোনও সমস্যা খুঁজে পায়নি, তাই ব্যবহারকারীকে কোনও অ্যাকশন নিতে হবে না।

NO_DATA

Play Protect চালু করা আছে কিন্তু এখনও কোনও স্ক্যান করা হয়নি। ডিভাইস বা Play Store অ্যাপ সম্প্রতি রিসেট করা হয়ে থাকতে পারে।

Play Protect চালু আছে এবং কোনও সমস্যা খুঁজে পায়নি, তাই ব্যবহারকারীকে কোনও অ্যাকশন নিতে হবে না।

POSSIBLE_RISK

Play Protect বন্ধ করা আছে।

Play Protect চালু আছে এবং কোনও সমস্যা খুঁজে পায়নি, তাই ব্যবহারকারীকে কোনও অ্যাকশন নিতে হবে না।

MEDIUM_RISK

Play Protect চালু করা আছে এবং ডিভাইসে ইনস্টল করা অ্যাপটি ক্ষতিকারক হতে পারে বলে শনাক্ত করা হয়েছে।

আপনার ঝুঁকি সহ্য করার ক্ষমতার উপর নির্ভর করে, আপনি ব্যবহারকারীকে Play Protect চালু করতে এবং Play Protect-এর সতর্কতার উপর অ্যাকশন নিতে বলতে পারেন। ব্যবহারকারী এইসব প্রয়োজনীয়তা পূরণ করতে না পারলে, আপনি সার্ভার অ্যাকশন থেকে তাকে ব্লক করতে পারেন।

HIGH_RISK

Play Protect চালু করা আছে এবং ডিভাইসে ইনস্টল করা বিপজ্জনক অ্যাপ খুঁজে পেয়েছে।

আপনার ঝুঁকি সহ্য করার ক্ষমতার উপর নির্ভর করে, আপনি ব্যবহারকারীকে Play Protect চালু করতে এবং Play Protect-এর সতর্কতার উপর অ্যাকশন নিতে বলতে পারেন। ব্যবহারকারী এইসব প্রয়োজনীয়তা পূরণ করতে না পারলে, আপনি সার্ভার অ্যাকশন থেকে তাকে ব্লক করতে পারেন।

UNEVALUATED

Play Protect-এর রায় মূল্যায়ন করা হয়নি।

এটি একাধিক কারণে হতে পারে, যার মধ্যে নিম্নলিখিত কারণগুলি অন্তর্ভুক্ত:

  • ডিভাইসটি যথেষ্ট নির্ভরযোগ্য নয়।
  • শুধুমাত্র গেমের ক্ষেত্রে: ব্যবহারকারীর অ্যাকাউন্টের লাইসেন্স নেই।

সাম্প্রতিক ডিভাইসের অ্যাক্টিভিটি

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

আপনি recentDeviceActivity পাওয়ার জন্য অপ্ট-ইন করলে, deviceIntegrity ফিল্ডে দুটি ভ্যালু থাকবে:

deviceIntegrity: {
  deviceRecognitionVerdict: ["MEETS_DEVICE_INTEGRITY"]
  recentDeviceActivity: {
    // "LEVEL_2" is one of several possible values.
    deviceActivityLevel: "LEVEL_2"
  }
}

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

স্ট্যান্ডার্ড বনাম ক্লাসিক অনুরোধ

Play Integrity প্রয়োগ করার অংশ হিসেবে, দুই ধরনের অনুরোধ বিবেচনা করা গুরুত্বপূর্ণ। বেশিরভাগ ক্ষেত্রে, দ্রুততম উত্তর পেতে আপনার স্ট্যান্ডার্ড অনুরোধ ব্যবহার করা উচিত - এবং যেখানে ডিভাইস অ্যাটেস্টেশন রেকর্ডের বিপরীতে একটি নতুন জেনারেট করা অনুরোধের প্রয়োজন সেখানে ক্লাসিক অনুরোধ ব্যবহার করা উচিত।

ক্লাসিক অনুরোধ

স্ট্যান্ডার্ড অনুরোধ

অনুরোধের উত্তর দিতে বেশি সময় লাগে এবং কম ঘনঘন অনুরোধ করা উচিত।

যেমন, কোনও অত্যন্ত মূল্যবান বা সংবেদনশীল অ্যাকশন আসল কিনা তা চেক করার জন্য মাঝে মাঝে এক-বার।

কম ব্যবহার করা।

অনুরোধের লেটেন্সি কম এবং চাহিদা অনুযায়ী ব্যবহার করা যেতে পারে।

একটি স্ট্যান্ডার্ড অনুরোধের দুটি অংশ থাকে:

  • ইন্টিগ্রিটি টোকেন প্রোভাইডার প্রস্তুত করুন (একবার)
  • ইন্টিগ্রিটি টোকেনের জন্য অনুরোধ করুন (চাহিদা অনুযায়ী)

চাহিদা মতো ব্যবহার করুন।

স্ট্যান্ডার্ড ও ক্লাসিক অনুরোধ সম্পর্কে আরও জানতে Play Integrity ডকুমেন্টেশন পড়ুন।

প্রয়োগ

Play Integrity API ব্যবহার শুরু করতে:

ডিফল্ট হিসেবে, Play Integrity API প্রতিদিন অ্যাপ প্রতি সর্বাধিক ১০ হাজার অনুরোধের অনুমতি দেয়। আপনার দৈনিক সর্বাধিক অনুরোধের সংখ্যা বাড়ানোর ব্যাপারে আগ্রহ প্রকাশ করতে, এইসব নির্দেশাবলী অনুসরণ করুন। আপনার দৈনিক অনুরোধের সর্বাধিক সংখ্যা বাড়ানোর জন্য উপযুক্ত হতে, আপনার অ্যাপকে Play Integrity API সঠিকভাবে প্রয়োগ করতে হবে এবং অন্য কোনও ডিস্ট্রিবিউশন চ্যানেল ছাড়াও Google Play-তে উপলভ্য হতে হবে।

Play Integrity API-এর জন্য যেসব বিষয় মনে রাখতে হবে

অটোমেটিক ইন্টেগ্রিটি প্রোটেকশন (API >= ২৩)

অটোমেটিক ইন্টেগ্রিটি প্রোটেকশন হল একটি অ্যান্টি-ট্যাম্পার কোড প্রোটেকশন পরিষেবা যা অননুমোদিত পরিবর্তন এবং পুনর্বণ্টনের মতো ইন্টেগ্রিটি অপব্যবহারের হাত থেকে আপনার অ্যাপকে রক্ষা করে। এটি ডেটা কানেকশন ছাড়াই কাজ করে এবং টেস্টিংয়ের আগে কোনও ডেভেলপার অ্যাক্টিভিটি এবং ব্যাকএন্ড সার্ভার ইন্টিগ্রেশনের প্রয়োজন হয় না।

এটি কীভাবে জালিয়াতি কমাতে সাহায্য করে

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

  • ইনস্টলার চেক করা না গেলে, ব্যবহারকারীদের Google Play থেকে আপনার অ্যাপ ডাউনলোড করার জন্য প্রম্পট করা হবে
  • পরিবর্তন চেক করা না গেলে, অ্যাপটি চলবে না

এটি আপনার অ্যাপের পরিবর্তিত ভার্সন থেকে ব্যবহারকারীদের সুরক্ষিত রাখতে সাহায্য করে।

প্রয়োগ

অটোমেটিক ইন্টেগ্রিটি প্রোটেকশন এই মুহূর্তে শুধু বাছাই করা Play পার্টনারদের জন্য উপলভ্য। আপনার Google Play Console-এ ফিচারটি উপলভ্য না থাকলে এবং আপনি অ্যাক্সেস পেতে আগ্রহী হলে, Google Play ডেভেলপার সহায়তা টিমের সাথে যোগাযোগ করুন।

আপনি রিলিজ তৈরি করার সময় অথবা Play-এর মাধ্যমে সুরক্ষিত পৃষ্ঠা থেকে সুরক্ষা চালু করতে পারবেন। অটোমেটিক ইন্টেগ্রিটি প্রোটেকশন ব্যবহার করতে হলে আপনার অ্যাপকে Play অ্যাপ সাইনিং ব্যবহার করতে হবে।

প্রোডাকশনে রিলিজ প্রোমোট করার আগে আপনার সুরক্ষিত অ্যাপ টেস্ট করতে ভুলবেন না।

যেসব বিষয় মনে রাখতে হবে

  • সুরক্ষিত নয় এমন অ্যাপ ভার্সন রিলিজ করবেন না
  • অ্যান্টি-ট্যাম্পার প্রোটেকশন সলিউশন মিক্স করার সময় সাবধানতা অবলম্বন করুন
  • প্রোডাকশনে রিলিজ করার আগে আপনার সুরক্ষিত অ্যাপ টেস্ট করুন
  • ক্র্যাশ হওয়ার ঘটনা বৃদ্ধি পাওয়ার জন্য স্বাভাবিকভাবে পরিসংখ্যান মনিটর করুন
  • আপনার অ্যাপের ক্র্যাক করা ভার্সন সম্পর্কে Google Play-তে অভিযোগ জানাতে পারবেন