প্রক্সি ব্যবহার করে ফায়ারফক্স ওএস ট্রাফিকে বাধাদান

ডিবাগিং এবং সিক্যুরিটি পরীক্ষা সম্পর্কিত নিবন্ধের এই অংশে আমরা দেখব, প্রক্সির SSL সার্টিফিকেট সাদাতালিকাভুক্ত করা সহ প্রক্সি ব্যাবহার করে ফায়ারফক্স ওএস ট্রাফিককে বাধাদান করা (B2G ডেস্কটপ ও ডিভাইসে), যাতে করে যে কেও ফায়ারফক্স ওএস এর মাধ্যমে HTTPS যোগাযোগে বাধাদান বা রি-এনক্রিপ্ট করতে পারে । আপনি যদি B2G ডেস্কটপ ব্যাবহার করে থাকেন, তাহলে এটি ইন্সটল করা ও ম্যারিওনেট জাভাস্ক্রিপ্ট ডিবাগিং শেল যুক্ত করার পদ্ধতি Debugging and security testing with Firefox OS –এ বর্ণিত আছে ।

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

ZAP পরিচিতি

ZAP দিয়েই শুরু করা যাক । ZAP হল একটি বাধাদানকারী প্রক্সি, যা সহজে ডিবাগিংএর জন্য HTTPS ট্রাফিককে বাধা দেয় এবং পুনরায় এনক্রিপ্ট করে । এটি ডাউনলোডের জন্য ZAP homepage এর উপরের বড় নীল বাটনটি ক্লিক করুন । আপনি যদি আরেকটি প্রক্সি ব্যাবহার করতে চান (যেমন Burp Proxy), করতে পারেন ; কারণ পদ্ধতিটি দুইক্ষেত্রেই কাজ করবে ।

ZAP সার্টিফিকেট

এখন, আপনি যে প্রক্সিই ব্যাবহার করুন না কেন, এটির সার্টিফিকেটটি একটি ফাইলে এক্সপোর্ট করুন এভাবে owasp_zap_root_ca.cer (go in Tools > Options > Dynamic SSL Certificates > Save)। যখন ZAP প্রথম চালু হবে, এটি একটি একবছর মেয়াদী সার্টিফিকেট তৈরি করে । আপনি Dynamic SSL Certificates অংশ থেকেও নতুন একটি তৈরি করতে পারেন ।

 

লোকাল প্রক্সি

আপনি যদি B2G  ডেস্কটপ ব্যাবহারকারি হয়ে থাকেন, তাহলে ZAP যেন localhost অনুসরণ না করে আপনার নির্দিষ্ট বৈশিষ্ট্যের IP অ্যাড্রেস (ইথারনেট বা ওয়াই-ফাই) অনুসরণ করে, এটি আপনাকে নিশ্চিত করতে হবে । কারণ, B2G ডেস্কটপের localhost আপনার ডেস্কটপ কম্পিউটারটিকে নির্দেশ করে না, বরং B2G বাইনারির নিজস্ব কোন কিছুকে নির্দেশ করে । উদাহরণস্বরূপ, আমরা আমাদের IP হিসেবে 10.264.1.5 ব্যাবহার করব ।

আপনি যদি একটি প্রকৃত ডিভাইস নিয়ে কাজ করেন, তাহলে আপনার ফোন এবং কম্পিউটার যেন একই নেটওয়ার্কে/VLAN-এ যুক্ত থাকে এবং নিজেদের মধ্যে যোগাযোগ রাখতে পারে, সেটি নিশ্চিত করতে হবে (সন্দেহ হলে একটি ডিভাইসের IP অন্য ডিভাইস থেকে পিং করার চেষ্টা করতে পারেন) ।

 

সার্টিফিকেট ডেটাবেইজ তৈরি

সার্টিফিকেট গ্রহণ করার প্রক্রিয়াটি সেটিংসে সম্পন্ন হয়, যেগুলো প্রোফাইলে সংরক্ষিত থাকে । এখানে ফায়ারফক্স প্রোফাইলসের উপর একটি সংক্ষিপ্ত সূচনা দেয়া হল :

  1. কমান্ড লাইনে –P অপশন ব্যাবহার করে ফায়ারফক্স প্রোফাইল ম্যানেজার চালু করুন এবং ফায়ারফক্স যেন কোন বর্তমান সেশন ব্যাবহার না করে, তা নিশ্চিত করুন(-no-remote):
    • লিনাক্সে আপনাকে যা করতে হবে :

      firefox -P -no-remote
    • ·ম্যাক ওএস এক্সে :

      /Applications/Firefox.app/Contents/MacOS/firefox -P -no-remote
  2. এবার “zapped.” নামে একটি প্রোফাইল তৈরি করুন । সার্টিফিকেট সেটিংসে যান - Edit > Preferences > Advanced > Encryption > View Certificates > Import। আপনার প্রক্সি দিয়ে তৈরিকৃত owasp_zap_root_ca.cer ফাইলটি সিলেক্ট করুন এবং ফায়ারফক্স যেন ওয়েবসাইট শনাক্তের কাজে এই CA কে ট্রাস্ট করে, সেই নির্দেশ দিন (এটি সত্যিকার অর্থেই শুধু এই প্রোফাইলের জন্য বৈধ) ।
  3. ফায়ারফক্সের মাধ্যমে সার্টিফিকেট ডেটাবেইজ তৈরি হয়ে যাওয়ায় আমরা এই ডেটাবেইজটি এখন B2G প্রোফাইল তৈরির কাজে ব্যবহার করতে পারি । আপনার ফায়ারফক্স প্রোফাইল ডিরেক্টরির নামটি একটি দৈবচয়িত স্ট্রিং, যেটি zapped দিয়ে শেষ হয় । এর লোকেশন অপারেটিং সিস্টেমের উপর নির্ভর করে ; এটি কোথায় পাওয়া যায়, তার বিস্তারিত জানতে Runtime Directories এ যান ।
  4. B2G ডেস্কটপের জন্য শুধুমাত্র প্রোফাইলের সার্টিফিকেট ডেটাবেইজ ফাইল cert8.db টি লাগবে । এটিকে B2G প্রোফাইল ডিরেক্টরি b2g/gaia/profile/ তে কপি করুন ।
  5. ডিভাইসেcert9.db ফাইলটি ডিভাইসের প্রোফাইল ডিরেক্টরিতে কপি করুন ।
    $ adb shell stop b2g
    $ adb push cert9.db /data/b2g/mozilla/*.default

দ্রষ্টব্য : এটি বর্তমান ফাইলকে প্রতিস্থাপিত করবে ।

 

B2G সেট আপ

পরবর্তী ধাপটি হল ZAPকে সকল নেটওয়ার্ক যোগাযোগের জন্য ডিফল্ট করে দেয়া । ফায়ারফক্স ওএস ইউজার ইন্টারফেসে সার্টিফিকেট সেটিংসের ন্যায় প্রক্সি সেটিংস এখনো অন্তর্ভুক্ত নয় ।

 

B2G ডেস্কটপে

এই কাস্টম সেটিংস আপনাকে প্রেফারেন্সেস ফাইলে অ্যাপেন্ড করতে হবে , b2g/gaia/profile/prefs.js:

user_pref("network.proxy.backup.ftp", "10.264.1.5");
user_pref("network.proxy.backup.ftp_port", 8080);
user_pref("network.proxy.backup.socks", "10.264.1.5");
user_pref("network.proxy.backup.socks_port", 8080);
user_pref("network.proxy.backup.ssl", "10.264.1.5");
user_pref("network.proxy.backup.ssl_port", 8080);
user_pref("network.proxy.ftp", "10.264.1.5");
user_pref("network.proxy.ftp_port", 8080);
user_pref("network.proxy.http", "10.264.1.5");
user_pref("network.proxy.http_port", 8080);
user_pref("network.proxy.no_proxies_on", "");
user_pref("network.proxy.share_proxy_settings", true);
user_pref("network.proxy.socks", "10.264.1.5");
user_pref("network.proxy.socks_port", 8080);
user_pref("network.proxy.ssl", "10.264.1.5");
user_pref("network.proxy.ssl_port", 8080);
user_pref("network.proxy.type", 1);

দ্রষ্টব্য : আমার আইপি অ্যাড্রেস 10.264.1.5 আপনারটি দিয়ে প্রতিস্থাপিত করতে ভুলবেন না, এবং আপনার প্রক্সি যদি 8080 পোর্টে কাজ না করে, আপনাকে এটি ফাইলেও পরিবর্তন করতে হবে ।

এখন আপনি প্রস্তুত ! B2G ডেস্কটপ পুনরায় চালু করুন এবং পরীক্ষামূলক ব্রাউজিং করুন । ZAP এ নেটওয়ার্ক ট্রাফিক দেখা যাবে ।

 

ডিভাইসে

এই পদ্ধতিগুলো ডিভাইসে আর কাজ নাও করতে পারে ।

আপনাকে /data/b2g/mozilla/*.default ফাইলটি নবায়ন করতে হবে:

$ adb pull /data/b2g/mozilla/*.default/prefs.js

ফাইলের শেষে, উপরের দ্বিতীয় অংশে উল্লেখিত কাস্টম সেটিংস যোগ করুন এবং B2G রিস্টার্ট দিন (B2G প্রক্রিয়া থেমে যাওয়ার কথা, যদি আপনি cert9.db পুশ করার নিয়ম অনুসরণ করতেন) :

$ adb push pref.js /data/b2g/mozilla/*.default
$ adb shell start b2g

ডকুমেন্ট ট্যাগ এবং অবদানকারী

ট্যাগ: 
 Contributors to this page: chrisdavidmills, pranjal
 সর্বশেষ হালনাগাদ করেছেন: chrisdavidmills,