আগস্ট ২০২০-এ, মাইক্রোসফট এক্টিভ ডিরেক্টরিতে একটি ক্রিটিক্যাল উইন্ডোজ সার্ভার দুর্বলতা ठीक করার জন্য একটি আপডেট জারি করেছিল — CVE-2020-1472 (আরও পরিচিত জিরোলগন নামে)। এই আপডেট ৪ মাস আগে সকল ডোমেন কন্ট্রোলারে সফলভাবে ইনস্টল করা হয়েছিল। যাচ্ছে, সব উইন্ডোজ অ্যাডমিন জানেন না যে ডোমেন কন্ট্রোলারগুলিতে আপডেট ইনস্টল করলেই চূড়ান্ত নয়। এই লেখায় আমরা জিরোলগন দুর্বলতা সম্পর্কে বলব, AD ডোমেন কন্ট্রোলারগুলিকে কীভাবে রক্ষা করবেন, কেন ফেব্রুয়ারি ২০২১-এ আরেকটি জিরোলগন আপডেট আসবে এবং একটি উইন্ডোজ সার্ভার অ্যাডমিনিস্ট্রেটরকে এই সব নিয়ে কী করবেন।
জিরোলগন: উইন্ডোজ নেটলগন দুর্বলতা CVE-2020-1472
সকল উইন্ডোজ সার্ভার ভার্সনে (২০০৮ R2, ২০১২, ২০১৬, ২০১৯) এক্টিভ ডিরেক্টরিতে ক্রিটিক্যাল দুর্বলতা CVE-2020-1472 একটি নন-অথেনটিকেটেড ব্যবহারকারীকে রিমোটলি ডোমেন অ্যাডমিনিস্ট্রেটর প্রিভিলেজ পেতে দেয়। নেটলগন রিমোট প্রোটোকল (MS-NRPC)-এ AES-CFB8 এনক্রিপশন প্রোটোকল ইমপ্লিমেন্টেশনে একটি বাগের কারণে, নেটওয়ার্কের মাধ্যমে ডোমেন কন্ট্রোলারে অ্যাক্সেস रखা একজন আক্রমণকারী প্রিভিলেজ এস্কেলেট করতে পারে এবং AD-এ ডোমেন কন্ট্রোলার অ্যাকাউন্টের পাসওয়ার্ড পরিবর্তন করতে পারে। তারপর আক্রমণকারী SYSTEM প্রিভিলেজের সাথে একটি DC-তে অথেনটিকেট होতে পারে এবং এক্টিভ ডিরেক্টরির পূর্ণ নিয়ন্ত্রণ পেতে পারে (ডোমেন অ্যাডমিন পাসওয়ার্ড রিসেট করা বা AD-এ অন্য যেকোনো কাজ করা)।
নেটলগন প্রোটোকল AD ডোমেন নেটওয়ার্কে ব্যবহারকারী এবং কম্পিউটার অথেনটিকেট করতে ব্যবহৃত হয়। নেটলগন এক্টিভ ডিরেক্টরি ডোমেনে কম্পিউটার অ্যাকাউন্ট পাসওয়ার্ড রিমোটলি আপডেট করতেও ব্যবহৃত হয়। জিরোলগন দুর্বলতা ইমপ্লিমেন্ট করতে, আক্রমণকারীকে নেটলগনের মাধ্যমে একটি কানেকশন প্রতিষ্ঠা করতে হবে (নিচের পোর্টগুলো ব্যবহৃত হয়: RPC লোকেটর TCP/135, RPC ডাইনামিক পোর্ট রেঞ্জ এবং SMB প্রোটোকল TCP/445 এর ওপর) একটি নির্দিষ্ট সিকোয়েন্স দিয়ে যা শূন্য দিয়ে শুরু হয়। নেটলগন দুর্বলতা আপনাকে লেজিটিমেট ডোমেন কম্পিউটার হিসেবে অনুকরণ করতে দেয়, এবং প্রিভিলেজ এস্কেলেট করার পর DC অ্যাকাউন্ট পাসওয়ার্ড পরিবর্তন করতে দেয়।
সর্বোচ্চ CVSS রেটিং (১০ এর ১০ পয়েন্ট) এই দুর্বলতাকে দেওয়া হয়েছিল।
প্রভাবিত সকল উইন্ডোজ সার্ভার ভার্সন:
- Windows Server 2019, Windows Server 2016;
- Windows Server 2004, 1909, 1903;
- Windows Server 2012 R2/2012;
- Windows Server 2008 R2 SP 1।
ফিলহাল, বেশ কিছু কাজের জিরোলগন পাবলিক এক্সপ্লয়েন্ট রয়েছে (mimikatz-এও একটি জিরোলগন মডিউল যোগ করা হয়েছে)।
সতর্কতা: আপনার নেটওয়ার্কে জিরোলগন এক্সপ্লয়েন্ট টেস্ট করবেন না, কারণ যদি আপনি আপনার DC পাসওয়ার্ড খালি একে রিসেট করেন, তবে আপনার AD ইনফ্রাস্ট্রাকচার ক্ষতিগ্রস্ত হতে পারে।
আপনার DCs জিরোলগন দুর্বলতা আছে কিনা টেস্ট করার জন্য একটি পাইথন স্ক্রিপ্ট রয়েছে: https://github.com/SecuraBV/CVE-2020-1472।
জিরোলগন বিপরীত উইন্ডোজ সার্ভার আপডেট
কারণ মাইক্রোসফট আর উইন্ডোজ সার্ভার ২০০৮ R2 সাপোর্ট করে না, তাই এই OS ভার্সনের জন্য কোনো পাবলিক বাগফিক্স নেই। যাচ্ছে, আপনি যদি Extended Security Updates (ESU) ১-বছরের সাবস্ক্রিপশন কেনে থাকেন, তবে WS2008R2-এর জন্য 4571729 আপডেট ডাউনলোড ও ইনস্টল করতে পারেন।
উইন্ডোজ সার্ভার ২০০৮ R2-এর জন্য একটি অনঅফিশিয়াল জিরোলগন প্যাচ রয়েছে — 0patch (https://blog.0patch.com/2020/09/micropatch-for-zerologon-perfect.html)। আপনি নিজের দায়িত্বে এটি ব্যবহার করতে পারেন।
অন্যান্য উইন্ডোজ সার্ভার ভার্সনগুলোর আপডেট উইন্ডোজ আপডেট, WSUS-এ উপলব্ধ অথবা আপনি ম্যানুয়ালি মাইক্রোসফট আপডেট ক্যাটালগ থেকে আপডেট ডাউনলোড করে MSU আপডেট ফাইল ইনস্টল করতে পারেন।
- Windows Server 2019 (KB4565349), Windows Server 2016 (KB571694);
- Windows Server 2004 (4566782), 1909 (KB4565351), 1903 (KB4565351);
- Windows Server 2012 R2 (KB4571723), Windows Server 2012 (KB4571702)।
এক্টিভ ডিরেক্টরি ডোমেন কন্ট্রোলারগুলিকে জিরোলগন থেকে রক্ষা করা
জিরোলগন দুর্বলতা ফিক্স করার আপডেটগুলো আগস্ট ২০২০-এ জারি হয়েছিল। আপনার এক্টিভ ডিরেক্টরি রক্ষা করতে, আপনার উইন্ডোজ সার্ভার ভার্সনের জন্য আগস্ট কিউমুলেটিভ আপডেট (বা তারপরের যেকোনো একটি) সকল ডোমেন কন্ট্রোলারে ইনস্টল করতে হবে।
আসলে, এই প্যাচ একটি অস্থায়ী ফিক্স। মাইক্রোসফট জিরোলগন দুটি পর্যায়ে ফিক্স করতে যাচ্ছে যাতে নেটলগনে সিকিউর রিমোট প্রসিজার কল (RPC)pta সুমথ ট্রানজিশন সম্ভব হয়:
- প্রথম (ডিপ্লয়মেন্ট) ফেজ। আগস্ট প্যাচ একটি জরুরি ফিক্স যাতে ডোমেন কন্ট্রোলারগুলো পরিচিত আক্রমণ সিন্যারিও থেকে রক্ষা পায়। কিন্তু এই আপডেট দুর্বলতাটি সম্পূর্ণরূপে ফিক্স করে না (নেটলগনের মাধ্যমে DCs আক্রমণের অন্যান্য সিন্যারিওও সম্ভব)। লেগেসি সিস্টেম যেগুলো নেটলগনের জন্য RPC প্রোটোকলের নতুন সিকিউর ভার্সন সাপোর্ট করে না, সেগুলো এখনও ডোমেন কন্ট্রোলারের সাথে কানেক্ট করতে পারে।
- দ্বিতীয় (এনফোর্সমেন্ট) ফেজ। পরবর্তী আপডেট ফেব্রুয়ারি ৯, ২০২১-এ রিলিজ হবে। এই আপডেট ইনস্টল করার পর, সকল ডোমেন কন্ট্রোলার পুরানো নেটলগন প্রোটোকল ব্যবহার করে কানেকশন রিজেক্ট করবে (যাচ্ছে, আপনি GPO ব্যবহার করে লেগেসি ডিভাইসের জন্য এক্সক্লুশন সেট করতে পারেন, নিচে দেখাব কীভাবে)।
প্রথম প্যাচ ইনস্টল করার পর, আপনি ডোমেন কন্ট্রোলার লগে নিরাপদ নয় নেটলগন RPC ভার্সন ব্যবহার করে ডিভাইস কানেকশন ইভেন্ট খুঁজে পাবেন। এছাড়া, আপনার নেটওয়ার্কে কোনো লেগেসি ডিভাইস না থাকলে, আপনি ২০২১ খুব না হলে আপনার ডোমেন কন্ট্রোলারগুলিতে পুরানো নেটলগন RPC ভার্সনের সাপোর্ট ডিজেবল করতে পারেন (FullSecureChannelProtection রেজিস্ট্রি প্যারামিটার ব্যবহার করে)।
সিকিউরিটি আপডেট ইনস্টল করার পর, কম্পিউটারগুলো নিরাপদ নয় নেটলগন ভার্সন ব্যবহার করে কানেক্ট করার ইভেন্টগুলো ডোমেন কন্ট্রোলার লগে রেজিস্টার হবে। আপনাকে ইভেন্ট ভিউয়ার -> উইন্ডোজ লগস -> সিস্টেম-এ NETLOGON থেকে নিচের EventID-গুলোতে মনোযোগ দিতে হবে:
- EventID 5827 এবং 5828 — নেটলগন সার্ভিস একটি কম্পিউটার অ্যাকাউন্ট থেকে নিরাপদ নয় নেটলগন সিকিউর চ্যানেল কানেকশন অস্বীকার করেছে। এই মেসেজের মানে এই কম্পিউটারের নিরাপদ নয় নেটলগন ভার্সন ব্যবহার করে কানেকশন অস্বীকৃত (ফেব্রুয়ারি ২০২১ পর্যন্ত এটি একটি রেফারেন্স মেসেজ, কানেকশন ব্লক করার কোনো রিয়েল অ্যাকশন নেওয়া হয় না)। আপনি সকল ইভেন্ট CSV ফাইলে সংরক্ষণ করে ডিভাইসের নাম বিশ্লেষণ করতে পারেন। নিচের পাওয়ারশেল কমান্ড ব্যবহার করুন:
Get-EventLog -LogName System -InstanceId 5827 -Source NETLOGON|Select-Object message| Export-Csv c:\ps\5827.csv -Encoding utf8
- EventID 5829 — নিরাপদ নয় নেটলগন ভার্সন ব্যবহার করে কানেকশন অনুমোদিত;
- EventID 5830, 5831 — নিরাপদ নয় নেটলগন ভার্সন ব্যবহার করে কানেকশন অনুমোদিত কারণ ডিভাইসটি "Domain controller: Allow vulnerable Netlogon secure channel connections" পলিসিতে যোগ করা হয়েছে।
ফেব্রুয়ারি ২০২১ পর্যন্ত, আপনাকে সনাক্ত সকল ডিভাইসে লেটেস্ট সিকিউরিটি আপডেট ইনস্টল করতে হবে। উইন্ডোজে, লেটেস্ট কিউমুলেটিভ আপডেট ইনস্টল করলেই চলে। অন্যান্য সকল ডিভাইস যা নেটলগন রিমোট প্রোটোকল ব্যবহার করে এক্টিভ ডিরেক্টরির সাথে কানেক্ট করে, তাদের জন্য আপনার ডিভাইস/সফটওয়্যার ভেন্ডর (OEM) থেকে আপডেট চাইবেন।
ফেব্রুয়ারিতে একটি স্পেশাল সিকিউরিটি আপডেট আসবে যা ডোমেন কন্ট্রোলারগুলিকে এমন একটি মোডে রাখবে যেখানে কানেক্টিং সকল ডিভাইসকে নেটলগন প্রোটোকলের সিকিউর ভার্সন ব্যবহার করতে হবে। একই সাথে, Event 5829-এ নির্দিষ্ট ডিভাইসগুলো (যারা সিকিউর নেটলগন ভার্সন সাপোর্ট করে না) ডোমেনে কানেক্ট করতে পারবে না। আপনাকে এই ডিভাইসগুলো ম্যানুয়ালি GPO এক্সক্লুশনে যোগ করতে হবে।
এর মানে হলো, আর সাপোর্ট না করা উইন্ডোজ ভার্সনগুলো (Windows XP/ Windows Server 2003/Vista/2008) আপনার AD ডোমেনে нормаলি কাজ করতে পারবে না।
জিরোলগনের জন্য গ্রুপ পলিসি
আপনার নেটওয়ার্কে যদি কোনো ডিভাইস না থাকে যা শুধু নিরাপদ নয় নেটলগন ভার্সন সাপোর্ট করে, তবে ফেব্রুয়ারি ৯, ২০২১ (যখন দ্বিতীয় ফেজের আপডেট আসবে যা নিরাপদ নয় নেটলগন ব্যবহার করে কানেকশন ডেনাই করবে) এর আগে DCs-কে সিকিউর নেটলগন ভার্সন ব্যবহার করতে বাধ্য করার জন্য একটি আলাদা GPO তৈরি করতে পারেন। এর জন্য, আপনার সকল DCs-এ নিচের রেজিস্ট্রি কী GPO দিয়ে ডিপ্লয় করুন:
- রেজিস্ট্রি কী:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters - প্যারামিটার টাইপ:
DWORD - প্যারামিটার নাম:
FullSecureChannelProtection
সম্ভাব্য মান:
- ১ — এনফোর্সমেন্ট মোড সক্রিয় করে। DC নিরাপদ নয় নেটলগন ভার্সন ব্যবহার করে কানেকশন ডেনাই করবে। এই প্যারামিটার "Domain controller: Allow vulnerable Netlogon secure channel connections" পলিসিতে যোগ করা অ্যাকাউন্টের জন্য কোনো প্রভাব ফেলে না (নিচে দেখুন);
- ০ — DC-কে নন-উইন্ডোজ ডিভাইস থেকে নিরাপদ নয় নেটলগন ভার্সন ব্যবহার করে কানেকশন অ্যাক্সেপ্ট করতে দেয় (এই অপশন এনফোর্সমেন্ট ফেজ রিলিজে ডিপ্রিকেটেড হবে)।
নন-উইন্ডোজ ডিভাইসকে নেটলগন ব্যবহার করে DC-এ কানেক্ট করার অনুমতি দেওয়া
GPO-তে একটি স্পেশাল প্যারামিটার যোগ হয়েছে যা নির্দিষ্ট ডিভাইস/অ্যাকাউন্টকে লেগেসি নেটলগন RPC ব্যবহার করে DC-এ সিকিউর চ্যানেল প্রতিষ্ঠা করতে দেয়। পলিসিটি নাম Domain controller: Allow vulnerable Netlogon secure channel connections এবং এটি পাওয়া যায় Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options-এর অধীনে।
AD-এ একটি সিকিউরিটি গ্রুপ তৈরি করুন এবং সেটে সেই অ্যাকাউন্ট/ডিভাইসগুলো যোগ করুন যাদের লেগেসি নেটলগন RPC ব্যবহার করে ডোমেন কন্ট্রোলারের সাথে সিকিউর চ্যানেল প্রতিষ্ঠা করার অনুমতি দরকার।
DC-র জন্য পলিসি সক্রিয় করুন (Default Domain Controller policy लेভেলে), Define Security ক্লিক করুন এবং সেই গ্রুপটি নির্দিষ্ট করুন जिसे নিরাপদ নয় নেটলগন প্রোটোকল ব্যবহার করার অনুমতি দেওয়া হবে (Create Vulnerable Connection -> Allow)। Deny অপশন চেক করলে নির্দিষ্ট ডিভাইসের জন্য নিরাপদ নয় নেটলগন RPC ব্যবহার করা বন্ধ করা যাবে।