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

আমি এই ভুল পাঠটি দুইবার পেয়েছি: একবার ফোন ও ল্যাপটপ একই Wi-Fi-এ থাকার সময়, আরেকবার রিবুটের পর যখন জোড়া টিকে ছিল। দুই ক্ষেত্রেই VPN ঠিক যা করার জন্য কনফিগার করা ছিল, তা-ই করছিল।

বাগের নাম দেওয়ার আগে পর্যবেক্ষণের নাম দিন

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

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

গন্তব্য, ইন্টারফেস, ঠিকানার পরিবার, টাইমস্ট্যাম্প ও ব্যবহারকারী প্রোফাইল ঘটনার সঙ্গে সংযুক্ত রাখুন। এই বিবরণ ছাড়া পর্যবেক্ষণটিকে উদ্দিষ্ট স্থানীয়-নেটওয়ার্ক নীতির সঙ্গে, বা তখন চলা VPN বিল্ডের সঙ্গে তুলনা করা যায় না।

কেন দুই পথ কখনো মেলে না

ওয়্যারলেস ডিবাগিং হলো ডিভাইসে একটি অন্তর্মুখী সংযোগ। adbd এমন একটি পোর্টে শোনে যা Wi-Fi ইন্টারফেসে বাঁধা, এবং জোড়া দেওয়ার পর ওয়ার্কস্টেশন সেটিতে সংযোগ করে। দিকটি গুরুত্বপূর্ণ: আপনার ল্যাপটপ ফোনের ভেতরে পৌঁছায়, উল্টোটা নয়। এটি নির্গমন লিকের বিপরীত।

একটি অ্যাপের ইন্টারনেট ট্র্যাফিক VpnService যে টানেল ইন্টারফেস ইনস্টল করে তার মধ্য দিয়ে বের হয়, UID ও রাউটিং নিয়মে মিলিয়ে। adbd হলো shell ব্যবহারকারী হিসেবে চলা একটি সিস্টেম ডেমন, সেই রাউটিং সেটের ভেতরের অ্যাপ নয়। প্রতিটি অ্যাপ টানেলে পিন করা থাকলেও এটি অন্তর্নিহিত Wi-Fi লিঙ্কেই থাকে।

লকডাউন মোড আওতাভুক্ত অ্যাপের জন্য টানেল কার্যকর করে। এটি শোনা সকেটকে নির্গমন পথে পরিণত করে না।

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

একটি নির্গমন পরীক্ষা আসলে কেমন দেখায়

আওতাভুক্ত অ্যাপটি পরীক্ষা করুন, ডিবাগিং চ্যানেল নয়। ব্যর্থতার অবস্থাটি ইচ্ছাকৃতভাবে তৈরি করুন, তারপর একটি নতুন অনুরোধ করুন এবং কী ঘটল তা লিপিবদ্ধ করুন।

  1. নিশ্চিত করুন VPN-ই একমাত্র পথ: VPN ছাড়া সংযোগ ব্লক করা সহ সর্বদা-চালু VPN চালু করুন।
  2. সমর্থিত উপায়ে VPN বন্ধ করুন এবং নিশ্চিত করুন অ্যাপটি কোনো সংযোগ নেই বলে জানায়।
  3. সেই অ্যাপ থেকে একটি নিরীহ অনুরোধ পাঠান এবং তা ব্যর্থ হয় না সফল হয় লক্ষ্য করুন।
  4. ওয়্যারলেস ডিবাগিং চালু, তারপর বন্ধ অবস্থায় পুনরাবৃত্তি করুন, যাতে চলকটি বিচ্ছিন্ন হয়।

সেই পরিস্থিতিতে অবরুদ্ধ অনুরোধ হলো প্রমাণ। সফল ADB সেশন নয়, আর একটি টার্মিনাল অ্যাপ থেকে একটি ping-ও নয়।

যদি লকডাউন চালু থাকা অবস্থায় অনুরোধটি সত্যিই সফল হয়, তবে অ্যাপের UID ও তার VPN অনুমতি, সক্রিয় নেটওয়ার্ক এবং ক্লায়েন্ট সংস্করণ লিপিবদ্ধ করুন। সেই সমন্বয়টিই প্রকৃত অনুসন্ধান।

জোড়া সেশনের চেয়ে বেশি টেকে

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

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

শেয়ার করা বা অবিশ্বস্ত নেটওয়ার্কে এটি বন্ধ রাখুন। যে নেটওয়ার্ক আপনি নিয়ন্ত্রণ করেন না সেখানে স্থায়ী অনুমোদন একটি কাল্পনিক TUN বাইপাসের চেয়ে বড় সমস্যা।

সেই বাগ রিপোর্ট করার আগে

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

পরীক্ষাটিকে আরও নাটকীয় দেখাতে বলবৎকরণ বন্ধ করবেন না বা অবিশ্বস্ত নেটওয়ার্কে ডিবাগিং উন্মুক্ত করবেন না। এটি আপনি যে সিস্টেম মাপছেন তা বদলে দেয় এবং এমন প্রমাণ রেখে যায় যা কেউ পুনরাবৃত্তি করতে পারবে না।

যদি আপনার একমাত্র প্রমাণ হয় VPN চালু থাকা অবস্থায় ADB সংযুক্ত হয়েছিল, তবে আপনি ভুল পথ মেপেছেন। আগে অ্যাপ-স্তরের পরীক্ষাটি আবার চালান; উত্তর সাধারণত সেখানেই আসে।

সম্পর্কিত নিবন্ধ