Check-Host.cc

Global NULL Record Diagnostic Checker

ডোমেইন নেম সিস্টেমের হাইলি স্ট্রাকচারড হায়ারার্কির (hierarchy) মধ্যে, NULL রেকর্ডটিকে এ যাবতকালের কোডিফাই (codified) করা সবচেয়ে অ্যানোমালাস (anomalous) এবং লুজলি ডিফাইন্ড ডেটা টাইপ হিসেবে আলাদা করা যায়। অরিজিনাল RFC 1035 স্পেসিফিকেশনে আউটলাইন করা, NULL রেকর্ড ফরম্যাটিং রুল, সিনট্যাক্স কনস্ট্রেইন্ট (constraints), বা ইন্টারনাল সিমান্টিক্স (semantics) থেকে সম্পূর্ণ বর্জিত। একটি A রেকর্ড যা একটি IP অ্যাড্রেস আশা করে, অথবা একটি MX রেকর্ড যার একটি প্রায়োরিটি ইন্টিজার এবং হোস্টনেম প্রয়োজন, তার বিপরীতে NULL রেকর্ডটি শুধুমাত্র একটি খালি কন্টেইনার হিসেবে বিদ্যমান। এটি সর্বোচ্চ 65,535 বাইট দৈর্ঘ্যের আর্বিট্রারি (arbitrary) বাইনারি ডেটা পে-লোড ধরে রাখার জন্য ইঞ্জিনিয়ার করা হয়েছিল, যেখানে Authoritative Nameserver কন্টেন্টগুলোর ওপর জিরো ভ্যালিডেশন অ্যাপ্লাই করত।

The Experimental Sandbox

ইন্টারনেটের প্রতিষ্ঠাতা ইঞ্জিনিয়াররা যখন DNS আর্কিটেকচার তৈরি করেন, তখন তারা বুঝতে পেরেছিলেন যে সিস্টেমটিকে এমন ফিউচার নেটওয়ার্কিং প্রোটোকলের সাথে অ্যাডাপ্ট করতে হবে যা স্ট্যান্ডার্ড A, MX, বা TXT কনস্ট্রেইন্টে (constraints) নিটলি (neatly) ফিট করে না। NULL রেকর্ডটিকে এক্সপেরিমেন্টাল প্রোটোকল এক্সটেনশন এবং একাডেমিক রিসার্চের জন্য একটি ডেভেলপার স্যান্ডবক্স হিসেবে স্পষ্টভাবে রিজার্ভ করা হয়েছিল। যেহেতু BIND সফটওয়্যার একটি NULL পে-লোডে কোনো এনকোডিং চেক বা ক্যারেক্টার লিমিট (প্যাকেট সাইজ ছাড়া) অ্যাপ্লাই করে না, তাই নেটওয়ার্ক ইঞ্জিনিয়াররা স্পেশালাইজড ক্লায়েন্ট অ্যাপ্লিকেশনগুলোর পার্স (parse) করার জন্য জোন ফাইলে সরাসরি র (raw), আনফরম্যাটেট হেক্সাডেসিমাল স্ট্রিং, কাস্টম ক্রিপ্টোগ্রাফিক হ্যাশ, বা প্রোপাইটারি বাইনারি রাউটিং ডেটা ইনজেক্ট করতে পারতেন।

কেন এটি প্রোডাকশনে ফেইল করেছে

তাত্ত্বিক ফ্লেক্সিবিলিটি থাকা সত্ত্বেও, আধুনিক প্রোডাকশন এনভায়রনমেন্টে NULL রেকর্ড কার্যত অস্তিত্বহীন। প্রাথমিক ইস্যুটি ছিল ইন্টারঅপারেবিলিটি (interoperability)। যেহেতু আর্বিট্রারি বাইনারি ডেটা ইন্টারপ্রেট করার জন্য বিভিন্ন সফটওয়্যার ক্লায়েন্টদের কোনো স্ট্যান্ডার্ডাইজড উপায় ছিল না, তাই এটি কেবল ক্লোজড ইকোসিস্টেমেই (ecosystems) ব্যবহার করা যেত যেখানে অ্যাডমিনিস্ট্রেটর DNS সার্ভার এবং ক্লায়েন্ট অ্যাপ্লিকেশন উভয়ই কন্ট্রোল করতেন। তদুপরি, TXT রেকর্ডের উত্থান—যা স্ট্যান্ডার্ড REST API এবং ওয়েব অ্যাপ্লিকেশনগুলোর জন্য পার্স করা অনেক সহজ—এবং EDNS (Extension Mechanisms for DNS)-এর ডিপ্লয়মেন্ট রিয়েল-ওয়ার্ল্ড অ্যাপ্লিকেশন ডেটার জন্য NULL রেকর্ডের র (raw) বাইনারি পে-লোডকে সম্পূর্ণ অবসোলেট (obsolete) করে দেয়।

Covert Channels এবং Security Audits

বর্তমানে, হাইলি স্পেশালাইজড সাইবারসিকিউরিটি কনটেক্সটের বাইরে NULL রেকর্ড খুব কমই দেখা যায়। অ্যাডভান্সড পারসিস্টেন্ট থ্রেটস (APTs) এবং সোফিস্টিকেটেড ম্যালওয়্যার (malware) ভ্যারিয়েন্টগুলো ঐতিহাসিকভাবে কোভার্ট কমান্ড-অ্যান্ড-কন্ট্রোল (C2) চ্যানেল এস্টাবলিশ করার জন্য NULL রেকর্ড ব্যবহার করার চেষ্টা করেছে। NULL রেকর্ডে লুকানো আর্বিট্রারি বাইনারি ব্লবগুলোর (blobs) মাধ্যমে এক্সফিল্ট্রেটেড (exfiltrated) ডেটা এনকোড করে বা ম্যালিশিয়াস ইনস্ট্রাকশন ফেচ করে, অ্যাটাকাররা অ্যাপ্লিকেশন-লেয়ার ফায়ারওয়াল বাইপাস করতে পারে, কারণ বেশিরভাগ কর্পোরেট নেটওয়ার্ক পোর্ট 53 DNS ট্রাফিককে অন্ধভাবে অ্যালাউ (allow) করে। আজ একটি গ্লোবাল NULL লুকআপ রান করা স্ট্রিক্টলি ডিপ-লেভেল পেনেট্রেশন টেস্টিং, ম্যালওয়্যার অ্যানালাইসিস, বা একাডেমিক প্রোটোকল অডিটিংয়ের সময় করা হয় যাতে মনিটর করা যায় কিভাবে বিভিন্ন এজ রিজলভারগুলো (edge resolvers) ইন্টারনেট ব্যাকবোন জুড়ে আনরেগুলেটেড বাইনারি পে-লোডগুলো ফিল্টার বা পাস করে।