১৯ অক্টোবর, ২০২৬-এ, Google একটি আপোস করা সার্টিফিকেট অথরিটি (eMudhra) সম্পর্কে জানতে পেরেছে। এই নিরাপত্তা সংক্রান্ত সমস্যা সমাধান করতে, আমরা অবিলম্বে আমাদের ইকোসিস্টেমের বিভিন্ন অংশে নিরাপত্তা প্যাচ জারি করেছি।
এই পৃষ্ঠা থেকে আপনি প্রভাবিত অ্যাপের ধরন এবং প্রয়োজনীয় অ্যাকশন সম্পর্কে জানতে পারবেন, যা eMudhra সার্টিফিকেট সংক্রান্ত সমস্যা সমাধানের জন্য প্রয়োজন। এছাড়াও, আমরা নিরাপত্তা সংক্রান্ত সমস্যা সম্পর্কে বিস্তারিত তথ্য প্রদান করি।
প্রভাবিত অ্যাপের ধরন ও প্রয়োজনীয় অ্যাকশন
এই নিরাপত্তা সংক্রান্ত সমস্যার প্রকৃতির কারণে, এটি বিভিন্ন ধরনের অ্যাপকে প্রভাবিত করেছে। আপনার অ্যাপের ধরন এখানে তালিকাভুক্ত থাকলে, এটি সম্ভবত প্রভাবিত হয়েছে। আপনাকে কী অ্যাকশন নিতে হবে তা জানতে প্রযোজ্য বিভাগটি পর্যালোচনা করুন।
- Flutter অ্যাপ (টার্গেট প্ল্যাটফর্ম বা প্রোডাক্ট যাই হোক না কেন)
- Apple প্ল্যাটফর্ম অ্যাপ (নেটিভ) যা Cloud Firestore ব্যবহার করে
- Apple বা ডেস্কটপ প্ল্যাটফর্মকে টার্গেট করে এমন Unity অ্যাপ এবং Cloud Firestore ব্যবহার করে
- C++ অ্যাপ যা Apple বা ডেস্কটপ প্ল্যাটফর্মকে টার্গেট করে এবং Cloud Firestore ব্যবহার করে
- Android অ্যাপ (নেটিভ) যা Firebase App Distribution Gradle প্লাগ-ইন ব্যবহার করে
এছাড়াও, কমিউনিটি-সমর্থিত অন্যান্য প্ল্যাটফর্মও প্রভাবিত হয় (যেমন, React Native অ্যাপ যা Apple প্ল্যাটফর্মকে টার্গেট করে এবং Firestore ব্যবহার করে)।
Flutter অ্যাপ
Flutter অ্যাপ বিভিন্নভাবে প্রভাবিত হয়েছে। আপনাকে কী অ্যাকশন নিতে হবে তা বুঝতে প্রযোজ্য বিভাগটি পর্যালোচনা করুন।
Android, Windows অথবা Linux-এর জন্য Flutter অ্যাপ
ব্রাউজার এবং অপারেটিং সিস্টেম জরুরি অন্তর্বর্তী সার্টিফিকেট ব্লকলিস্ট পুশ করলেও,
Android, Windows এবং Linux-এ dart:io নিজস্ব কম্পাইল-ইন BoringSSL ইঞ্জিন ব্যবহার করে TLS সার্টিফিকেট চেন যাচাই করে এবং OS অন্তর্বর্তী সার্টিফিকেট ব্লকলিস্ট পড়ে না। এই
নিরাপত্তা সংক্রান্ত পরামর্শ সম্পর্কে আরও জানুন।
আপনার কাছে Android, Windows বা Linux-কে টার্গেট করে এমন Flutter বা Dart অ্যাপ থাকলে, নিম্নলিখিত অ্যাকশন নিন:
নিম্নলিখিত Dart ও Flutter ভার্সনে আপগ্রেড করুন:
- Dart 3.13.7 বা তার পরের যেকোনও ভার্সন
- Flutter 3.47.8 বা তার পরের ভার্সন (Dart 3.13.7 বা তার পরের ভার্সন সহ)
আপনার অ্যাপ আবার তৈরি করুন।
আপনার অ্যাপ বা বাইনারি আবার ডিপ্লয় করুন। আপনার Android, Window ও Linux অ্যাপ বা বাইনারি আবার ডিপ্লয় করুন যাতে সেগুলিতে নিরাপত্তা সংক্রান্ত সমস্যার সমাধান সহ আপডেট অন্তর্ভুক্ত থাকে।
Flutter অ্যাপ যা Apple বা Windows প্ল্যাটফর্মকে টার্গেট করে এবং Cloud Firestore ব্যবহার করে
আপনার যদি এমন কোনও Flutter অ্যাপ থাকে যা Apple প্ল্যাটফর্মকে (যেমন, iOS) টার্গেট করে এবং আপনার অ্যাপ Cloud Firestore ব্যবহার করে, তাহলে নিম্নলিখিত অ্যাকশন নিন:
আপনার অ্যাপের জন্য উপযুক্ত প্লাগ-ইন ভার্সন নির্ধারণ করুন। আপনার বর্তমান প্লাগ-ইন ভার্সনের উপর নির্ভর করে, এমন একটি প্লাগ-ইন ভার্সন বেছে নিন যা আপনার অ্যাপের জন্য উপযুক্ত।
FlutterFire প্লাগ-ইন (
flutterfire) — iOS, macOS বা Windowsপ্রভাবিত প্লাগ-ইন ভার্সন নিরাপত্তা সংক্রান্ত সমস্যার সমাধান সহ প্লাগ-ইন ভার্সন cloud_firestore7.0.0এবং তার আগে
(6.10.1এবং6.10.2বাদ দিয়ে)-
বিকল্প ১:
cloud_firestore7.1.0(FlutterFire BoM5.1.0বা তার পরবর্তী ভার্সন) -
বিকল্প ২:
-
iOS ও macOS:
cloud_firestore6.10.1(FlutterFire BoM4.20.1) -
Windows:
cloud_firestore6.10.2(FlutterFire BoM4.20.2)
-
iOS ও macOS:
-
বিকল্প ১:
আপনার অ্যাপ আপডেট করুন। আপনার পছন্দের ভার্সনে
cloud_firestoreপ্লাগ-ইন আপডেট করতেflutter pub upgradeরান করুন।আপনার অ্যাপ আবার তৈরি করুন।
আপনার অ্যাপ আবার প্রকাশ করুন। আপডেট করা SDK ভার্সন সহ আপনার অ্যাপ আবার প্রকাশ করুন (যেমন, Apple App Store বা আপনার ডেস্কটপ ডিস্ট্রিবিউশন চ্যানেলে)।
আপনার অ্যাপ আবার প্রকাশ করার পরে, আপনাকে ব্যবহারকারীদের আপনার অ্যাপের লেটেস্ট ভার্সনে আপডেট করার জন্য উৎসাহিত করতে হবে। কারণ TLS রুট সার্টিফিকেট বান্ডেল অ্যাপ্লিকেশন বাইনারিতে কম্পাইল করা হয়, অপারেটিং সিস্টেম আপডেট বা সার্ভার-সাইড পরিবর্তন একা আগে ইনস্টল করা অ্যাপ্লিকেশন বিল্ডের সমস্যার সমাধান করে না।
Apple প্ল্যাটফর্ম অ্যাপ (নেটিভ) যা Cloud Firestore ব্যবহার করে
আপনার কাছে নেটিভ Apple প্ল্যাটফর্ম অ্যাপ (যেমন, iOS) থাকলে এবং আপনার অ্যাপ Cloud Firestore ব্যবহার করলে, নিম্নলিখিত অ্যাকশন নিন:
আপনার অ্যাপের জন্য উপযুক্ত SDK ভার্সন নির্ধারণ করুন। আপনার বর্তমান SDK ভার্সনের উপর নির্ভর করে, এমন একটি SDK ভার্সন বেছে নিন যা আপনার অ্যাপের জন্য উপযুক্ত।
Apple প্ল্যাটফর্মের জন্য Firebase SDK (বিশেষত,
FirebaseFirestore)প্রভাবিত SDK ভার্সন নিরাপত্তা সংক্রান্ত সমস্যার সমাধান সহ SDK ভার্সন 13.1.0এবং তার আগে
(12.19.3বাদ দিয়ে)-
বিকল্প ১:
13.1.1বা তার পরে -
বিকল্প ২:
12.19.3
-
বিকল্প ১:
আপনার অ্যাপ আপডেট করুন। আপনার ডিস্ট্রিবিউশন চ্যানেলের জন্য নির্দেশাবলী অনুসরণ করুন:
SPM: Xcode বা
Package.swift-এ আপনারfirebase-ios-sdkপ্যাকেজ ডিপেন্ডেন্সি ভার্সন আপডেট করুন।Zip ডিস্ট্রিবিউশন: GitHub রিলিজ থেকে, পছন্দসই ভার্সনের জন্য
Firebase.zipডাউনলোড করুন এবং আপনার প্রোজেক্টে আগে থেকে থাকা.xcframeworkবান্ডেল পরিবর্তন করুন।Carthage: আপনার Cartfile আপডেট করুন যাতে কাঙ্খিত ভার্সন টার্গেট করা যায় এবং Carthage-এর মাধ্যমে ডিপেন্ডেন্সি আপডেট করুন।
আপনার অ্যাপ আবার প্রকাশ করুন। আপডেট করা SDK ভার্সন সহ আপনার অ্যাপ আবার প্রকাশ করুন (যেমন, Apple App Store বা আপনার ডেস্কটপ ডিস্ট্রিবিউশন চ্যানেলে)।
আপনার অ্যাপ আবার প্রকাশ করার পরে, আপনাকে ব্যবহারকারীদের আপনার অ্যাপের লেটেস্ট ভার্সনে আপডেট করার জন্য উৎসাহিত করতে হবে। কারণ TLS রুট সার্টিফিকেট বান্ডেল অ্যাপ্লিকেশন বাইনারিতে কম্পাইল করা হয়, অপারেটিং সিস্টেম আপডেট বা সার্ভার-সাইড পরিবর্তন একা আগে ইনস্টল করা অ্যাপ্লিকেশন বিল্ডের সমস্যা সমাধান করে না।
Unity অ্যাপ যা Apple বা ডেস্কটপ প্ল্যাটফর্মকে টার্গেট করে এবং Cloud Firestore ব্যবহার করে
আপনার যদি এমন কোনও Unity অ্যাপ থাকে যা Apple প্ল্যাটফর্মকে (যেমন, iOS) টার্গেট করে এবং আপনার অ্যাপ Cloud Firestore ব্যবহার করে, তাহলে নিম্নলিখিত অ্যাকশন নিন:
আপনার অ্যাপের জন্য উপযুক্ত নতুন SDK ভার্সন নির্ধারণ করুন। আপনার বর্তমান SDK ভার্সনের উপর নির্ভর করে, এমন একটি SDK ভার্সন বেছে নিন যা আপনার অ্যাপের জন্য উপযুক্ত।
Unity (
firebase-unity-sdk)-এর জন্য Firebase SDK — iOS বা ডেস্কটপ (Linux, macOS, Windows)প্রভাবিত SDK ভার্সন নিরাপত্তা সংক্রান্ত সমস্যার সমাধান সহ SDK ভার্সন 14.0.0এবং তার আগে
(13.17.1বাদ দিয়ে)-
বিকল্প ১:
14.1.0বা তার পরে -
বিকল্প ২:
13.17.1
-
বিকল্প ১:
আপনার অ্যাপ আপডেট করুন। GitHub রিলিজ পৃষ্ঠা থেকে আপনার পছন্দের ভার্সনের জন্য Firebase ইউনিটি SDK ডাউনলোড করুন।
আপনার অ্যাপ লিঙ্ক ও রিবিল্ড করুন। আপনার iOS ও ডেস্কটপ অ্যাপ্লিকেশন লিঙ্ক ও রিবিল্ড করুন।
আপনার অ্যাপ আবার প্রকাশ করুন। আপডেট করা SDK ভার্সন সহ আপনার অ্যাপ আবার প্রকাশ করুন (যেমন, Apple App Store বা আপনার ডেস্কটপ ডিস্ট্রিবিউশন চ্যানেলে)।
আপনার অ্যাপ আবার প্রকাশ করার পরে, আপনাকে ব্যবহারকারীদের আপনার অ্যাপের লেটেস্ট ভার্সনে আপডেট করার জন্য উৎসাহিত করতে হবে। কারণ TLS রুট সার্টিফিকেট বান্ডেল অ্যাপ্লিকেশন বাইনারিতে কম্পাইল করা হয়, অপারেটিং সিস্টেম আপডেট বা সার্ভার-সাইড পরিবর্তন একা আগে ইনস্টল করা অ্যাপ্লিকেশন বিল্ডের সমস্যার সমাধান করে না।
C++ অ্যাপ যা Apple বা ডেস্কটপ প্ল্যাটফর্মকে টার্গেট করে এবং Cloud Firestore ব্যবহার করে
আপনার যদি এমন কোনও C++ অ্যাপ থাকে যা Apple প্ল্যাটফর্মকে (যেমন, iOS) টার্গেট করে এবং আপনার অ্যাপ Cloud Firestore ব্যবহার করে, তাহলে নিম্নলিখিত অ্যাকশন নিন:
আপনার অ্যাপের জন্য উপযুক্ত নতুন SDK ভার্সন নির্ধারণ করুন। আপনার বর্তমান SDK ভার্সনের উপর নির্ভর করে, এমন একটি SDK ভার্সন বেছে নিন যা আপনার অ্যাপের জন্য উপযুক্ত।
C++ (
firebase_cpp_sdk)-এর জন্য Firebase SDK — iOS বা ডেস্কটপ (Linux, macOS, Windows)প্রভাবিত SDK ভার্সন নিরাপত্তা সংক্রান্ত সমস্যার সমাধান সহ SDK ভার্সন 14.0.0এবং তার আগে
(13.13.1বাদ দিয়ে)-
বিকল্প ১:
14.1.0বা তার পরে -
বিকল্প ২:
13.13.1
-
বিকল্প ১:
আপনার অ্যাপ আপডেট করুন। GitHub রিলিজ পৃষ্ঠা থেকে পছন্দসই ভার্সনের জন্য Firebase C++ SDK ডাউনলোড করুন।
আপনার অ্যাপ লিঙ্ক ও রিবিল্ড করুন। আপনার iOS ও ডেস্কটপ অ্যাপ্লিকেশন লিঙ্ক ও রিবিল্ড করুন।
আপনার অ্যাপ আবার প্রকাশ করুন। আপডেট করা SDK ভার্সন সহ আপনার অ্যাপ আবার প্রকাশ করুন (যেমন, Apple App Store বা আপনার ডেস্কটপ ডিস্ট্রিবিউশন চ্যানেলে)।
আপনার অ্যাপ আবার প্রকাশ করার পরে, আপনাকে ব্যবহারকারীদের আপনার অ্যাপের লেটেস্ট ভার্সনে আপডেট করার জন্য উৎসাহিত করতে হবে। কারণ TLS রুট সার্টিফিকেট বান্ডেল অ্যাপ্লিকেশন বাইনারিতে কম্পাইল করা হয়, অপারেটিং সিস্টেম আপডেট বা সার্ভার-সাইড পরিবর্তন একা আগে ইনস্টল করা অ্যাপ্লিকেশন বিল্ডের সমস্যার সমাধান করে না।
Android অ্যাপ (নেটিভ) যা Firebase App Distribution Gradle প্লাগ-ইন ব্যবহার করে
আপনার কাছে যদি এমন কোনও নেটিভ Android অ্যাপ থাকে যা Firebase App Distribution Gradle প্লাগ-ইন ব্যবহার করে, তাহলে নিম্নলিখিত অ্যাকশন নিন:
আপনার অ্যাপের জন্য উপযুক্ত নতুন প্লাগ-ইন ভার্সন নির্ধারণ করুন। আপনি প্লাগ-ইন ভার্সন 5.3.1 বা তার পরবর্তী যেকোনও ভার্সন ব্যবহার করতে পারবেন।
আপনার Gradle ফাইল আপডেট করুন। আপনার রুট-লেভেল (প্রোজেক্ট-লেভেল) Gradle ফাইলে (
<project>/build.gradle.ktsবা<project>/build.gradle), App Distribution Gradle প্লাগ-ইন ভার্সন 5.3.1 বা তার পরবর্তী যেকোনও ভার্সনে আপডেট করুন:Kotlin
plugins { // ... // Update the version in the dependency for the App Distribution Gradle plugin. // Make sure the version is 5.3.1 or higher. id("com.google.firebase.appdistribution") version "5.3.1" apply false }Groovy
plugins { // ... // Update the version in the dependency for the App Distribution Gradle plugin. // Make sure the version is 5.3.1 or higher. id 'com.google.firebase.appdistribution' version '5.3.1' apply false }buildscript (পুরনো)
buildscript { dependencies { // ... // Update the version in the dependency for the App Distribution Gradle plugin. // Make sure the version is 5.3.1 or higher. classpath 'com.google.firebase:firebase-appdistribution-gradle:5.3.1' } }আপনার CI/CD ওয়ার্কফ্লো ক্লিন ও যাচাই করুন।
./gradlew appDistributionUpload<Variant>-এর মতো টাস্ক এক্সিকিউট করার সময় আপনার অটোমেটেড বিল্ড ও ডিপ্লয়মেন্ট পাইপলাইন (যেমন GitHub Actions, GitLab CI বা Jenkins) যাতে প্লাগ-ইনের আপডেট করা ভার্সন পুল করে তা নিশ্চিত করুন।
কী ঘটেছে সেই সম্পর্কে বিস্তারিত তথ্য
১৯ অক্টোবর, ২০২৬-এ Google জানতে পেরেছে যে থার্ড-পার্টি সার্টিফিকেট অথরিটি (eMudhra) দ্বারা ইস্যু করা একাধিক ইন্টারমিডিয়েট সার্টিফিকেট অথরিটি (CA) সার্টিফিকেটের ব্যক্তিগত কী কম্প্রোমাইজ করা হয়েছে এবং পরে তা প্রত্যাহার করা হয়েছে (আরও বিবরণের জন্য, Google নিরাপত্তা ব্লগ পোস্ট দেখুন)।
যদিও অপারেটিং সিস্টেম এবং ওয়েব ব্রাউজারগুলি সিস্টেম ট্রাস্ট স্টোরে এই অন্তর্বর্তী সার্টিফিকেটগুলিকে অবিশ্বাস করার জন্য আপডেট বিতরণ করেছে, প্রভাবিত প্রোডাক্টগুলি বাইনারিতে কম্পাইল করা একটি এমবেডেড রুট সার্টিফিকেট বান্ডেল ব্যবহার করে ট্রান্সপোর্ট লেয়ার সিকিউরিটি (TLS) কানেকশন যাচাই করে।
কারণ, আক্রমণকারীরা বৈধ-দেখতে HTTPS সার্টিফিকেট জাল করতে আপোস করা সার্টিফিকেট অথরিটি কী ব্যবহার করতে পারে, প্রভাবিত অ্যাপগুলি প্রত্যাহার শনাক্ত করতে ব্যর্থ হবে এবং জাল ক্রেডেনশিয়াল বিশ্বাস করা চালিয়ে যাবে। এর ফলে, নেটওয়ার্কে থাকা অ্যাটাকাররা ম্যান-ইন-দ্য-মিডল অ্যাটাক করে আসল ব্যাকএন্ড সার্ভারের ছদ্মবেশ ধারণ করতে পারে, যার মধ্যে Firestore এবং প্রভাবিত Flutter/Dart অ্যাপ বা App Distribution Gradle প্লাগিনের মাধ্যমে যোগাযোগ করা যেকোনও HTTPS এন্ডপয়েন্ট অন্তর্ভুক্ত, যা ব্যবহারকারীর সংবেদনশীল ডেটা গোপনে ইন্টারসেপ্ট, চুরি বা টেম্পার করে।
এই আপোস করা সার্টিফিকেট অথরিটির বিরুদ্ধে ক্লায়েন্ট কানেকশন সুরক্ষিত করতে, আমরা নিম্নলিখিত আপোস করা eMudhra ইন্টারমিডিয়েটের সাথে চেইন করা রুট সার্টিফিকেটগুলি সরিয়ে দিয়ে এই সমস্যাটি সমাধান করেছি:
Cloud Firestore Apple, Flutter, Unity ও C++-এর জন্য SDK
Cloud Firestore ব্যাকএন্ড প্রভাবিত হয়নি এবং Cloud Firestore প্রোডাক্টের অন্য কোনও অংশও প্রভাবিত হয়নি।
Flutter SDK এবং Cloud Firestore-এর জন্য FlutterFire প্লাগ-ইন
Firebase App Distribution Gradle প্লাগ-ইন
App Distribution ব্যাকএন্ড প্রভাবিত হয়নি এবং App Distribution প্রোডাক্টের অন্য কোনও অংশও প্রভাবিত হয়নি।