এই বছরের Black Hat Europe সিকিউরিটি কনফারেন্সে, চাইনিজ হংকং ইউনিভার্সিটির দুজন রিসার্চার একটি রিসার্চ প্রেজেন্ট করেছেন যা দেখিয়েছে অ্যান্ড্রয়েড অ্যাপগুলোর একটি এক্সপ্লয়েট যা সম্ভবত এক বিলিয়ন এরও অধিক ইনস্টল্ড অ্যাপ্লিকেশনকে অ্যাটাকের מול ঝুঁকিপূর্ণ করে তুলেছে।
এক্সপ্লয়েটটি OAuth ২.০ অথরাইজেশন স্ট্যান্ডার্ডের মোবাইল ইমপ্লিমেন্টেশনের একটি ম্যান-ইন-দ-মিডল অ্যাটাকের ওপর নির্ভর করে। এটি শুনতে খুব টেকনিক্যাল, কিন্তু এর আসলে মানে কী, এবং আপনার ডেটা কি সুরক্ষিত?
OAuth কী?
OAuth একটি ওপেন স্ট্যান্ডার্ড যা অনেক ওয়েবসাইট এবং অ্যাপ ব্যবহার করে যাতে আপনি OAuth প্রোভাইডারগুলোর একটি থেকে একটি অ্যাকাউন্ট ব্যবহার করে একটি থার্ড-পার্টি অ্যাপ বা ওয়েবসাইটে লগইন করতে পারেন। সবচেয়ে সাধারণ এবং পরিচিত উদাহরণগুলো হলো Google, Facebook, এবং Twitter।
Single Sign On (SSO) বাটন আপনাকে আপনার অ্যাকাউন্ট ইনফরমেশন অ্যাক্সেস দিতে দেয়। আপনি যখন ফেসবুক বাটনে ক্লিক করেন, থার্ড-পার্টি অ্যাপ বা ওয়েবসাইট একটি অ্যাক্সেস টোকেন খুঁজে, যা এটিকে আপনার ফেসবুক ইনফরমেশন অ্যাক্সেস দেয়।
যদি এই টোকেন খুঁজে পাওয়া না যায়, তবে আপনাকে থার্ড-পার্টিকে আপনার ফেসবুক অ্যাকাউন্ট অ্যাক্সেস করার অনুমতি দিতে বলা হবে। একবার আপনি এটি অথরাইজ করলে, ফেসবুক থার্ড পার্টি থেকে একটি মেসেজ পায় অ্যাক্সেস টোকেন চেয়ে।
ফেসবুক একটি টোকেন রেসপন্স দেয়, যা থার্ড-পার্টিকে আপনার নির্দিষ্ট করা ইনফরমেশন অ্যাক্সেস দেয়। উদাহরণস্বরূপ, আপনি আপনার বেসিক প্রোফাইল ইনফরমেশন এবং ফ্রেন্ডস লিস্ট অ্যাক্সেস দেন, কিন্তু ফটো না দেন। থার্ড-পার্টি টোকেন পায় এবং আপনাকে আপনার ফেসবুক শংসাপত্র দিয়ে লগইন করতে দেয়। তারপর, যতক্ষণ না টোকেন এক্সপায়ার হয়, ততক্ষণ এটিকে আপনার অথরাইজ করা ইনফরমেশনে অ্যাক্সেস থাকবে।
এটি একটি দুর্দান্ত সিস্টেম মনে হয়। আপনাকে কম পাসওয়ার্ড মনে রাখতে হয়, এবং আপনার ইতিমধ্যে থাকা একটি অ্যাকাউন্ট দিয়ে সহজে লগইন ও ভেরিফাই করতে পারেন। SSO বাটনগুলো মোবাইলে আরও উপযোগী যেখানে নতুন পাসওয়ার্ড তৈরি করা, যেখানে একটি নতুন অ্যাকাউন্ট অথরাইজ করা টাইম কনসামিং।
সমস্যা কী?
সর্বশেষ OAuth ফ্রেমওয়ার্ক — OAuth ২.০ — অক্টোবর ২০১২ সালে রিলিজ হয়েছিল, এবং মোবাইল অ্যাপের জন্য ডিজাইন করা হয়নি। இதেই многие অ্যাপ ডেভেলপারকে নিজেদের OAuth ইমপ্লিমেন্ট করতে হয়েছে, সিকিউরলি কীভাবে করা যায় সেটি সম্পর্কে কোনো গাইডেন্স ছাড়া।
যখন ওয়েবসাইটে OAuth ডায়রেক্ট কমিউনিকেশন ব্যবহার করে থার্ড-পার্টি এবং SSO প্রোভাইডারসার্ভারের মাঝপথে, মোবাইল অ্যাপগুলো এই ডায়রেক্ট কমিউনিকেশন মেথড ব্যবহার করে না। বদলে, মোবাইল অ্যাপগুলো আপনার ডিভাইসের মাধ্যমে একে অপরের সাথে যোগাযোগ করে।
ওয়েবসাইটে OAuth ব্যবহার করলে, ফেসবুক অ্যাক্সেস টোকেন এবং অথেন্টিকেশন ইনফরমেশন সরাসরি থার্ড-পার্টি সার্ভারগুলোতে ডেলিভার করে। এই ইনফরমেশন তারপর যাচাই করা যায় ইউজারকে লগইন করানোর আগে বা কোনো পারসোনাল ডেটা অ্যাক্সেস করার আগে।
রিসার্চাররা জানিয়েছে যে, SSO সাপোর্টকারী অ্যান্ড্রয়েড অ্যাপ্লিকেশনের একটি বড় অংশ এই ভ্যালিডেশন মিসিং। বদলে, ফেসবুক সার্ভার অ্যাক্সেস টোকেন ফেসবুক অ্যাপে পাঠায়। অ্যাক্সেস টোকেনটি তারপর থার্ড-পার্টি অ্যাপে ডেলিভার করা হয়। থার্ড-পার্টি অ্যাপ আপনাকে লগইন করতে দেয়, ফেসবুক সার্ভারের সাথে যাচাই না করে যে ইউজার ইনফরমেশন লেজিটিমেট কিনা।
অ্যাটাকার নিজের रूपে লগইন করতে পারে, OAuth টোকেন রিকোয়েস্ট ট্রিগার করে। একবার ফেসবুক টোকেন অথরাইজ করলে, তারা ফেসবুক সার্ভার এবং ফেসবুক অ্যাপের মাঝপথে নিজেদের ইনসার্ট করতে পারে। অ্যাটাকার টোকেনে ইউজার আইডি ভিক্টিমের ধরণে পরিবর্তন করতে পারে। ইউজারনেম সাধারণত পাবলিক্যালি উপলব্ধ ইনফরমেশন, তাই অ্যাটাকারের জন্য খুব কম বাধা রয়েছে। একবার ইউজার আইডি পরিবর্তন হলে — কিন্তু অথরাইজেশন এখনো গ্রান্টেড — থার্ড-পার্টি অ্যাপ ভিক্টিমের অ্যাকাউন্টে লগইন করবে।
এই টাইপের এক্সপ্লয়েটকে ম্যান-ইন-দ-মিডল (MitM) অ্যাটাক বলে। এটি সেটি যেখানে অ্যাটাকার ডেটা ইন্টারসেপ্ট এবং অ্যাল্টার করতে পারে, যখন দুপক্ষই মনে করে তারা একে অপরের সাথে সরাসরি যোগাযোগ করছে।
এটি আপনাকে কীভাবে প্রভাবিত করে?
যদি একজন অ্যাটাকার একটি অ্যাপকে মনে করাতে পারে যে সে আপনি, তবে হ্যাকারটি আপনার সার্ভিসে সংরক্ষিত সকল ইনফরমেশনে অ্যাক্সেস পাবে। রিসার্চাররা নিচে দেখানো টেবিলটি তৈরি করেছেন যা বিভিন্ন টাইপের অ্যাপে আপনি যেসব ইনফরমেশন এক্সপোজ করতে পারেন সেগুলো লিস্ট করে।
কিছু টাইপের ইনফরমেশন অন্যান্য চেয়ে কম ক্ষতিকর। আপনার নিউজ রিডিং হিস্টরি এক্সপোজ হওয়ার চেয়ে আপনার সকল ট্রাভেল প্ল্যান, বা আপনার নামে প্রাইভেট মেসেজ পাঠানো ও রিসিভ করার ক্ষমতা আরও ক্ষতিকর। এটি একটি স্মরণীয় স্মরণ যে আমরা থার্ড-পার্টিগুলোর কাছে নিত্য নিত্য কী টাইপের ইনফরমেশন বিশ্বাস করি — এবং এর মিসইউজের ফলাফল।
আপনি কি চিন্তিত হওয়া উচিত?
রিসার্চাররা পেয়েছে যে, Google Play Store-এ SSO সাপোর্টকারী ৬০০টি সবচেয়ে জনপ্রিয় অ্যাপের ৪১.২১% MitM অ্যাটাকের מול ভুলNERVABLE। এটি বিশ্বব্যাপী বিলিয়ন বিলিয়ন ইউজারকে এই টাইপের অ্যাটাকের מול এক্সপোজ করতে পারে। টিমটি তাদের রিসার্চ অ্যান্ড্রয়েডে করলেও তারা মনে করে iOS-এও এটি রিপ্লিকেট করা সম্ভব। এটি সম্ভবত দুটি সবচেয়ে বড় মোবাইল অপারেটিং সিস্টেমে মিলিয়ে লাখ লাখ অ্যাপকে এই অ্যাটাকের מול ভুলNERVABLE করে তুলতে পারে।
লেখার সময়, ইন্টারনেট Engineering Task Force (IETF)-র কেউ OAuth ২.০ স্পেসিফিকেশন ডেভেলপ করেছে তাদের Officially কোনো স্টেটমেন্ট দিয়েনি। রিসার্চাররা প্রভাবিত অ্যাপের নাম প্রকাশ করতে অস্বীকৃতি জানিয়েছে, তাই মোবাইল অ্যাপে SSO ব্যবহার করার সময় আপনাকে সতর্ক থাকা উচিত।
একটি সিলভার লাইনিং আছে। রিসার্চাররা ইতিমধ্যে গুগল এবং ফেসবুক, এবং অন্যান্য SSO প্রোভাইডারকে এক্সপ্লয়েটের বিষয়ে সতর্ক করেছে। এর উপরে, তারা প্রভাবিত থার্ড-পার্টি ডেভেলপারদের সাথে মিলিতভাবে সমস্যা ফিক্স করার জন্য কাজ করছে।
এখন আপনি কী করতে পারেন?
যদিও ফিক্স আসতে পারে, অনেক প্রভাবিত অ্যাপ আপডেট হতে হবে। এটিতে কিছু সময় লাগতে পারে, তাই ফিলহাল SSO ব্যবহার না করা ভালো হতে পারে। বদলে, যখন আপনি নতুন অ্যাকাউন্ট রেজিস্টার করবেন, নিশ্চিত করুন আপনি একটি শক্তিশালী পাসওয়ার্ড তৈরি করছেন যা আপনি ভুলবেন না। অথবা একটি পাসওয়ার্ড ম্যানেজার ব্যবহার করুন ভালো কাজটি করার জন্য।
সময়ের সাথে সাথে নিজের সিকিউরিটি চেকআপ করা ভালো অভ্যাস। Google আপনাকে তাদের চেকআপ করার জন্য ক্লাউড স্টোরেজে রিওয়ার্ডও দেয়। এটি আপনার SSO অ্যাকাউন্টগুলোর ওপর আপনি কোন অ্যাপগুলোর পারমিশন দিয়েছেন সেটি চেক আউট করার আদর্শ সময়। এটি ফেসবুকের মতো সাইটে বিশেষভাবে গুরুত্বপূর্ণ, যেটি প্রচুর পরিমাণ খুব ব্যক্তিগত ইনফরমেশন স্টোর করে।
আপনি কি মনে করেন Single Sign On থেকে দূরে যাওয়ার সময় এসে গেছে? আপনার মতে সেরা লগইন মেথড কী? আপনি কি এই এক্সপ্লয়েট দ্বারা প্রভাবিত হয়েছেন? কমেন্টে জানান!