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

সিস্টেম স্টোরে থাকা রুট কোনো সর্বজনীন চাবি নয়

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

স্টোরটি সার্টিফিকেটের মতোই গুরুত্বপূর্ণ: ব্যবহারকারী-স্তরের বান্ডেল এবং সিস্টেম-ব্যাপী অ্যাঙ্কর ভিন্ন ভিন্ন গ্রাহকের কাছে পৌঁছায়।

প্রতিটি ভ্যালিডেটর এবং তার ট্রাস্ট উৎসের মানচিত্র তৈরি করুন

প্রভাবিত ওয়ার্কফ্লোগুলোর জন্য সার্টিফিকেট যাচাই করে এমন প্রতিটি উপাদান লিখে রাখুন: ব্রাউজার, প্যাকেজ ম্যানেজার, মেইল ক্লায়েন্ট, VPN। তারপর প্রত্যেকে যে ট্রাস্ট উৎস পড়ে তা খুঁজে বের করুন।

ls /usr/local/share/ca-certificates
trust list | grep -i -E "vpn|corp"

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

VPN-এর নিজস্ব পিয়ার যাচাই পরীক্ষা করুন

একটি VPN, যার প্রাইভেট CA বা স্পষ্ট ফিঙ্গারপ্রিন্ট আছে, গেটওয়েকে তার নিজস্ব কনফিগারেশনের বিপরীতে মূল্যায়ন করে। ক্লায়েন্ট কী প্রত্যাশা করে এবং গেটওয়ে কী উপস্থাপন করে তা তুলনা করুন।

openssl s_client -connect vpn.example.com:443 -servername vpn.example.com -showcerts </dev/null 2>/dev/null | openssl x509 -noout -fingerprint -sha256 -subject

আউটপুটটি এন্ডপয়েন্ট যে সার্টিফিকেট উপস্থাপন করে তার SHA-256 ফিঙ্গারপ্রিন্ট ও সাবজেক্ট দেয়, যা আপনি কনফিগার করা মানের সাথে তুলনা করতে পারেন। OpenVPN-এর পিয়ার-ফিঙ্গারপ্রিন্ট অপশন সিস্টেম স্টোরকে স্বাক্ষরকারী গ্রহণ করতে বাধ্য না করেই টানেলের জন্য ওই তুলনাটি সম্পন্ন করে। এই স্বাধীনতা টানেলের জন্য উপযোগী এবং ব্রাউজার সম্পর্কে কিছুই বলে না। প্রত্যাশিত ফিঙ্গারপ্রিন্ট যদি শুরুতেই সন্দেহজনক সংযোগ থেকে কপি করা হয়ে থাকে তবে এটিও সাহায্য করে না।

সার্টিফিকেটের বাইরেও ইনসিডেন্টের পরিধি নির্ধারণ করুন

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

তারপর যে ওয়ার্কফ্লোগুলো স্টোরটি ব্যবহার করত সেগুলো আবার পরীক্ষা করুন, কারণ একটি অ্যাঙ্কর সরালে এমন একটি অভ্যন্তরীণ সার্ভিস ভেঙে যেতে পারে যা বৈধভাবে তার উপর নির্ভর করত। প্রত্যাশিত ট্রাস্ট সম্পর্কগুলো কাজ করলে এবং অপ্রত্যাশিতগুলো না করলে পুনরুদ্ধার সম্পন্ন হয়।

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