স্যামি কামকার (একজন বিখ্যাত নিরাপত্তা গবেষক, যিনি ইউএসবি ফোন চার্জারে কীলগারের মতো বেশ কিছু অত্যাধুনিক আক্রমণ ডিভাইস তৈরির জন্য পরিচিত) "ন্যাট স্লিপস্ট্রিমিং" নামে একটি নতুন আক্রমণ কৌশল চালু করেছেন।
এই আক্রমণটি ব্রাউজারে একটি ওয়েবপেজ খোলার সাথে সাথেই, অ্যাড্রেস ট্রান্সলেটরের পিছনে অবস্থিত ব্যবহারকারীর সিস্টেমের যেকোনো UDP বা TCP পোর্টে আক্রমণকারীর সার্ভার থেকে একটি সংযোগ স্থাপন করতে সক্ষম করে । এই আক্রমণ টুলকিটটি গিটহাবে প্রকাশিত হয়েছে।
এই পদ্ধতিটি অ্যাড্রেস ট্রান্সলেটর বা ফায়ারওয়ালে থাকা এএলজি (অ্যাপ্লিকেশন লেভেল গেটওয়ে) কানেকশন ট্র্যাকিং মেকানিজমকে ধোঁকা দেওয়ার উপর নির্ভর করে , যা এসআইপি, এইচ৩২৩, আইআরসি ডিসিসি এবং এফটিপি-র মতো একাধিক নেটওয়ার্ক পোর্ট (একটি ডেটার জন্য এবং একটি নিয়ন্ত্রণের জন্য) ব্যবহারকারী প্রোটোকলগুলির এনএটি ফরওয়ার্ডিং সংগঠিত করতে ব্যবহৃত হয়।
এই আক্রমণটি সেইসব ব্যবহারকারীদের ক্ষেত্রে প্রযোজ্য যারা ইন্ট্রানেট রেঞ্জের (192.168.xx, 10.xxx) অভ্যন্তরীণ ঠিকানা ব্যবহার করে নেটওয়ার্কে সংযোগ স্থাপন করেন এবং এর মাধ্যমে (HTTP হেডার ছাড়াই) যেকোনো পোর্টে যেকোনো ডেটা পাঠানো যায়।
একটি আক্রমণ চালানোর জন্য, ভুক্তভোগীর পক্ষে আক্রমণকারীর তৈরি করা জাভাস্ক্রিপ্ট কোডটি চালানোই যথেষ্ট , উদাহরণস্বরূপ, আক্রমণকারীর ওয়েবসাইটের কোনো পৃষ্ঠা খোলার মাধ্যমে অথবা কোনো বৈধ ওয়েবসাইটে একটি ক্ষতিকারক বিজ্ঞাপন দেখার মাধ্যমে।
প্রথম পর্যায়ে, আক্রমণকারী ব্যবহারকারীর অভ্যন্তরীণ ঠিকানা সম্পর্কে তথ্য সংগ্রহ করে, যা WebRTC-এর মাধ্যমে নির্ধারণ করা যেতে পারে অথবা, যদি WebRTC নিষ্ক্রিয় থাকে, তবে একটি লুকানো ছবির অনুরোধ করার সময় পরিমাপকৃত প্রতিক্রিয়া সময় ব্যবহার করে ব্রুট-ফোর্স আক্রমণের মাধ্যমেও তা করা যায় (বিদ্যমান হোস্টের ক্ষেত্রে, TCP RST প্রতিক্রিয়া ফেরত দেওয়ার আগে অপেক্ষার সময়ের কারণে, ছবির অনুরোধ করার প্রচেষ্টা অস্তিত্বহীন হোস্টের তুলনায় দ্রুততর হয়)।
দ্বিতীয় পর্যায়ে, ভুক্তভোগীর ব্রাউজারে এক্সিকিউট হওয়া জাভাস্ক্রিপ্ট কোডটি একটি নন-স্ট্যান্ডার্ড নেটওয়ার্ক পোর্ট নম্বর ব্যবহার করে আক্রমণকারীর সার্ভারে একটি বড় আকারের HTTP POST রিকোয়েস্ট (যা একটি প্যাকেটে ধরে না) পাঠায়, যার উদ্দেশ্য হলো ভুক্তভোগীর TCP স্ট্যাকে TCP ফ্র্যাগমেন্টেশন প্যারামিটার এবং MTU সাইজের সমন্বয় শুরু করা।
এর জবাবে, আক্রমণকারীর সার্ভার MSS (Maximum Segment Size) অপশনসহ একটি TCP প্যাকেট ফেরত পাঠায়, যা প্রাপ্ত প্যাকেটের সর্বোচ্চ আকার নির্ধারণ করে। UDP-এর ক্ষেত্রেও কৌশলটি একই রকম, তবে এটি IP-স্তরের ফ্র্যাগমেন্টেশন শুরু করার জন্য একটি বড় WebRTC TURN রিকোয়েস্ট পাঠানোর উপর নির্ভর করে।
«নেট স্লিপস্ট্রিমিং একটি ওয়েবআরটিটিসি বা টাইমিং অ্যাটাকের মাধ্যমে অভ্যন্তরীণ আইপি এক্সট্রাকশন চেইন করে এনটি, রাউটার এবং ফায়ারওয়ালগুলিতে নির্মিত অ্যাপ্লিকেশন লেভেল গেটওয়ে (এএলজি) সংযোগ ট্র্যাকিং মেকানিজমের সাথে মিলিতভাবে ব্যবহারকারীর ব্রাউজারটি শোষণ করে, স্বয়ংক্রিয় দূরবর্তী আইপি এবং এমটিইউ, টিসিপি প্যাকেটের বিভাজন আবিষ্কার আকারের ম্যাসেজিং, টিআরএন প্রমাণীকরণের অপব্যবহার, প্যাকেটের সীমাতে সঠিক নিয়ন্ত্রণ এবং ব্রাউজারের অপব্যবহার থেকে প্রোটোকল বিভ্রান্তি, "এক বিশ্লেষণে কামকার বলেছেন।
মূল ধারণাটি হলো , ফ্র্যাগমেন্টেশন প্যারামিটারগুলো জেনে একটি বড় HTTP রিকোয়েস্ট পাঠানো যায়, যার শেষাংশটি দ্বিতীয় প্যাকেটে অন্তর্ভুক্ত হবে । একই সাথে, দ্বিতীয় প্যাকেটের আগত শেষাংশ থেকে HTTP হেডারগুলো বাদ দেওয়া হয় এবং এটিকে এমন ডেটাতে ছেঁটে ফেলা হয় যা সম্পূর্ণরূপে অন্য একটি প্রোটোকলের সাথে সম্পর্কিত, যেটির জন্য NAT ট্র্যাভার্সাল সমর্থিত।
তৃতীয় পর্যায়ে, উপরের ম্যানিপুলেশন ব্যবহার করে, জাভাস্ক্রিপ্ট কোডটি একটি বিশেষভাবে নির্বাচিত এইচটিটিপি অনুরোধ (বা ইউডিপির জন্য টার্ন) প্রেরণ করে আক্রমণকারীটির সার্ভারের টিসিপি পোর্ট 5060 এ, যা, খণ্ডিত হওয়ার পরে, দুটি প্যাকেটে বিভক্ত হবে: একটি এইচটিটিপি শিরোনামযুক্ত প্যাকেট এবং উপাত্তের একটি অংশ এবং ভুক্তভোগীর অভ্যন্তরীণ আইপি সহ একটি বৈধ এসআইপি প্যাকেট।
নেটওয়ার্ক স্ট্যাকে সংযোগ শনাক্ত করার সিস্টেমটি এই প্যাকেটটিকে একটি SIP সেশনের সূচনা হিসেবে বিবেচনা করবে এবং আক্রমণকারীর দ্বারা নির্বাচিত যেকোনো পোর্টে প্যাকেট ফরওয়ার্ডিংয়ের অনুমতি দেবে, এই শর্তে যে পোর্টটি ডেটা প্রেরণের জন্য ব্যবহৃত হচ্ছে।
ব্যবহৃত ব্রাউজার নির্বিশেষে এই আক্রমণ চালানো যেতে পারে । সমস্যাটি সমাধানের জন্য, মোজিলা ডেভেলপাররা SIP প্রোটোকলের সাথে যুক্ত নেটওয়ার্ক পোর্ট ৫০৬০ এবং ৫০৬১-এ HTTP অনুরোধ পাঠানোর ক্ষমতা ব্লক করার পরামর্শ দিয়েছেন।
ক্রোমিয়াম, ব্লিঙ্ক এবং ওয়েবকিট ইঞ্জিনগুলির বিকাশকারীরাও অনুরূপ সুরক্ষা ব্যবস্থা বাস্তবায়নের পরিকল্পনা করে।
উৎস: https://samy.pl