Windows ভার্চুয়ালাইজেশনের গভীরতা (পর্ব ২) — কার্নেলও দেখতে পায় না এমন মেমরি: VBS, HVCI ও Credential Guard কীভাবে কাজ করে
· Go Komura · Windows, ভার্চুয়ালাইজেশন, নিরাপত্তা, VBS, HVCI, Credential Guard
Windows-এ আক্রমণকারীর কাছে অ্যাডমিনিস্ট্রেটর সুবিধা একসময় “লক্ষ্য” ছিল। অ্যাডমিনিস্ট্রেটর হিসেবে কার্নেল ড্রাইভার লোড করুন, LSASS প্রক্রিয়ার মেমরি ডাম্প করুন, আর পাসওয়ার্ড হ্যাশ ও Kerberos টিকিট হাতে। তার পর চুরি করা হ্যাশ নিয়ে অন্য মেশিনে হাঁটাই বাকি।
বর্তমান Windows 11-এ Credential Guard চললে — 22H2 থেকে Enterprise ও Education-এর মতো লাইসেন্স প্রয়োজন পূরণ করা ডিভাইসে, প্লাস হার্ডওয়্যার প্রয়োজন, ডিফল্ট অবস্থা — সেই প্লেবুক কাজ করে না। কার্নেল পুরোপুরি দখল করা আক্রমণকারী মেমরি যত খুশি খুঁজুক, সুরক্ষিত ডোমেইন ক্রেডেনশিয়ালের আসল হ্যাশ “সেই OS-এর ভেতরে” পাওয়া যায় না। না চললে পুরোনো বিপদ থেকে যায়, তাই নিবন্ধের পরে যাচাই পদ্ধতির সাথে মিলিয়ে পড়ুন।
তাহলে সেগুলো কোথায়? উত্তর “একই PC-এর ভেতরে তৈরি আরেক জগৎ”। পর্ব ১-এ দেখেছি, হোস্ট Windows হাইপারভাইজারের উপর রুট পার্টিশনে চলে (“আপনার Windows আসলে কোথায় চলছে?”)। এই নিবন্ধ সেখান থেকে চালিয়ে একই পার্টিশনের ভেতরে হাইপারভাইজার যে আরও একটি সীমানা আঁকে তা অনুসরণ করে।
পর্ব ২ যে প্রশ্নের উত্তর দেয় তা একটিই।
অ্যাডমিনিস্ট্রেটরও কার্নেলও পড়তে পারে না এমন গোপন জিনিস Windows কোথায় রাখে?
উদ্দিষ্ট পাঠক সেই ডেভেলপার ও অপারেটর যারা সেটিংস স্ক্রিনে বা ট্রাবলশুটিং কেসে Core isolation, Memory integrity ও Credential Guard-এর মতো শব্দ দেখেছেন, আর আসল জিনিস যন্ত্র থেকে বুঝতে চান। পূর্বশর্ত x64 Windows 10/11 অথবা বর্তমান Windows Server (পর্ব ১-এর মতো রিং ও SLAT আলোচনা x64 ধরে; Arm64 এক্সেপশন লেভেলের মতো ভিন্ন যন্ত্র ব্যবহার করে)। প্রয়োজনীয় পটভূমি পর্ব ১-এ ঢাকা পার্টিশন ও SLAT-এর ধারণা। কঠিনতা মাঝারি। লক্ষ্য কাঠামোর ব্যাখ্যা, নিরাপত্তা বৈশিষ্ট্য কনফিগার করার হাউ-টু নয়।
১. আগে উপসংহার
Windows VTL (Virtual Trust Level) নামের সুবিধার অক্ষ যোগ করে গোপন জিনিস VTL1-এ রেখেছে। VTL0-এ চলা সাধারণ কার্নেল থেকে VTL1-এর মেমরি পড়া যায় না। সীমানা পাহারা দেয় কার্নেল নিজে নয়, SLAT অনুবাদ টেবিল ধরে থাকা হাইপারভাইজার।
সেটাই ভার্চুয়ালাইজেশন-ভিত্তিক নিরাপত্তা (VBS)-এর কঙ্কাল। VBS হাইপারভাইজার ব্যবহার করে বিচ্ছিন্ন পরিবেশ তৈরি করে সেখানে নিরাপত্তা বৈশিষ্ট্য রাখে। কার্নেল আপস করলেও বিচ্ছিন্ন পরিবেশ সুরক্ষিত থাকবে এই ধরে ডিজাইন।1
flowchart TB
accTitle: VBS যে দুই জগৎ তৈরি করে
accDescr: VTL0 ও VTL1 একই পার্টিশনের ভেতরে বসে; VTL0 সাধারণ কার্নেল ও অ্যাপ ধরে, VTL1 Secure Kernel ও বিচ্ছিন্ন নিরাপত্তা বৈশিষ্ট্য ধরে, আর হাইপারভাইজার সীমানা পাহারা দেয়
subgraph vtl0 ["VTL0(সাধারণ জগৎ)"]
apps["অ্যাপ(রিং ৩)"]
ntk["NT কার্নেল ও ড্রাইভার(রিং ০)"]
end
subgraph vtl1 ["VTL1(বিচ্ছিন্ন জগৎ)"]
ium["বিচ্ছিন্ন নিরাপত্তা বৈশিষ্ট্য"]
sk["Secure Kernel"]
end
hv["হাইপারভাইজার(SLAT দিয়ে সীমানা বলবৎ)"] --- vtl0
hv --- vtl1
ntk -.->|পড়া যায় না| ium
চিত্র ১: একটি Windows-এর ভেতরে দুই জগৎ, আর VTL0 কার্নেল VTL1 মেমরিতে অ্যাক্সেস করতে পারে না।
গুরুত্বপূর্ণ বিষয়: এটি “আরেকটি VM দাঁড় করানো” নয়। VTL0 ও VTL1 একই পার্টিশনের ভেতরে, একই Windows-এর ভেতরে। এই ভাগ কীভাবে বাস্তবায়িত হয় তা পালাক্রমে দেখব।
২. রিং মডেলের সীমা — পাহারাদার ও পাহারা-দেওয়া একই উচ্চতায় বসে
পুরোনো Windows নিরাপত্তা রিংয়ের (সুবিধা স্তরের) সিঁড়িতে গড়া। ইউজার মোড (রিং ৩) কার্নেল মোড (রিং ০) পাহারা দেয়। তাহলে রিং ০-কে কে পাহারা দেয় — কেউ পারে না। রিং ০ সর্বোচ্চ সুবিধা।
এই কাঠামোর দুটি কাঠামোগত দুর্বলতা আছে।
- কার্নেল একক পাথর নয়। রিং ০-এ শুধু Windows নিজে নয়, প্রচুর তৃতীয়-পক্ষ ড্রাইভার চলে। তাদের কোনো একটিতে দুর্বলতা থাকলে আক্রমণকারী রিং ০-এ কোড চালনা পায়।
- রিং ০ থেকে সব দেখা যায়। LSASS-এর মতো ইউজার-মোড প্রক্রিয়া যতই আত্মরক্ষা করুক, কার্নেল দখল করা আক্রমণকারীর কাছে তার মেমরি মুক্ত পড়া। সুরক্ষা বৈশিষ্ট্য ও পেজ টেবিল দুটোই কার্নেল নিজে পরিচালনা করে।
flowchart TB
accTitle: পুরোনো রিং মডেলে ক্রেডেনশিয়াল-চুরির পথ
accDescr: দুর্বল ড্রাইভার দিয়ে রিং ০ দখল করা আক্রমণকারী কার্নেলের পূর্ণ কর্তৃত্বে LSASS প্রক্রিয়ার মেমরি পড়ে পাসওয়ার্ড হ্যাশ পেতে পারে
mal["আক্রমণকারীর কোড"] -->|দুর্বল ড্রাইভার কাজে লাগায়| r0["রিং ০ দখল করে"]
r0 --> readall["সব ফিজিক্যাল মেমরি পড়তে পারে"]
readall --> lsass["LSASS মেমরি থেকে হ্যাশ পায়"]
lsass --> lateral["অন্য মেশিনে ল্যাটারাল মুভমেন্টে অপব্যবহার"]
চিত্র ২: পাহারাদার (কার্নেল) ও পাহারা-দেওয়া (গোপন জিনিস) একই উচ্চতায় বসে বলে মৌলিক দুর্বলতা: রিং ০ পড়লে সব পড়ে।
তাহলে দরকার “রিং ০-এর চেয়ে উঁচু জায়গা”। সেই জায়গা পর্ব ১-এই এসেছিল। হাইপারভাইজার কার্নেলের চেয়ে উচ্চ সুবিধায় চলে এবং CPU-এর মেমরি-অ্যাক্সেস অনুমতি (SLAT) আগেই একচেটিয়া করে। হাইপারভাইজার পাহারা দেওয়া বিচ্ছিন্ন অঞ্চল রিং-০ (সুপারভাইজার-মোড) OS সফটওয়্যারের অ্যাক্সেসের বিরুদ্ধেও সুরক্ষিত।2
৩. VSM ও VTL — সুবিধার আরও একটি অক্ষ যোগ করা
৩.১. Virtual Trust Level (VTL)
এই আইসোলেশন দেওয়া হাইপারভাইজার বৈশিষ্ট্যের পরিবারকে VSM (Virtual Secure Mode) বলা হয়। VSM Device Guard, Credential Guard, ভার্চুয়াল TPM ইত্যাদির ভিত্তি।2
VSM-এর কেন্দ্রীয় ধারণা VTL (Virtual Trust Level)। মূল বিষয়গুলো এমন।2
- VTL অনুক্রমিক, আর সংখ্যা যত বেশি, সুবিধা তত বেশি। VTL0 সর্বনিম্ন; VTL1 VTL0-এর চেয়ে বেশি সুবিধাপ্রাপ্ত।
- আর্কিটেকচারে ১৬ স্তর পর্যন্ত সংজ্ঞায়িত, কিন্তু বর্তমানে বাস্তবায়িত দুটি: VTL0 ও VTL1।
- প্রতিটি VTL-এর স্বাধীন মেমরি অ্যাক্সেস সুরক্ষা আছে। এই সুরক্ষা হাইপারভাইজার পার্টিশনের ফিজিক্যাল অ্যাড্রেস স্পেসের বিপরীতে পরিচালনা করে, তাই পার্টিশনের ভেতরের সিস্টেম সফটওয়্যার সেগুলো বদলাতে পারে না।
- ভার্চুয়াল প্রসেসরের প্রতি VTL-এ আলাদা রেজিস্টার অবস্থা ও ইন্টারাপ্ট যন্ত্র থাকে, আর নিম্ন VTL উচ্চ VTL-এর অবস্থা উঁকি দিতে পারে না।
flowchart TB
accTitle: VTL আইসোলেশন গড়া তিন স্বাধীনতা
accDescr: মেমরি অ্যাক্সেস সুরক্ষা, ভার্চুয়াল-প্রসেসর রেজিস্টার অবস্থা ও ইন্টারাপ্ট যন্ত্র প্রতি VTL-এ স্বাধীন, আর নিম্ন VTL উচ্চ VTL-এর কোনোটাতেই হাত দিতে পারে না
vtl["প্রতি VTL-এ যা স্বাধীন"] --> m1["মেমরি অ্যাক্সেস সুরক্ষা"]
vtl --> m2["ভার্চুয়াল প্রসেসর রেজিস্টার অবস্থা"]
vtl --> m3["ইন্টারাপ্ট যন্ত্র"]
m1 -.-> rule["নিম্ন VTL উচ্চ VTL ছুঁতে পারে না"]
m2 -.-> rule
m3 -.-> rule
চিত্র ৩: শুধু মেমরি নয়, CPU অবস্থা ও ইন্টারাপ্টকেও আলাদা জগৎ করা সেই তিন-টুকরো সেট যা কোনো উঁকি-গর্ত রাখে না।
রিং (০ ও ৩) যদি “OS ও অ্যাপ” আলাদা করার অক্ষ হয়, VTL দ্বিতীয় অক্ষ যা “সাধারণ জগৎ ও বিচ্ছিন্ন জগৎ” আলাদা করে। দুই অক্ষ অর্থোগোনাল, আর VTL1-এর ভেতরেও কার্নেল মোড ও ইউজার মোড আছে।
flowchart TB
accTitle: রিং ও VTL দুই অক্ষে তৈরি চার অঞ্চল
accDescr: রিং অক্ষ কার্নেল মোড ও ইউজার মোড আলাদা করে, VTL অক্ষ সাধারণ জগৎ ও বিচ্ছিন্ন জগৎ আলাদা করে, আর মিলনে চার অঞ্চল হয়: সাধারণ অ্যাপ, NT কার্নেল, IUM ট্রাস্টলেট ও Secure Kernel
subgraph ax0 ["VTL0(সাধারণ জগৎ)"]
a0["রিং ৩: সাধারণ অ্যাপ"]
k0["রিং ০: NT কার্নেল ও ড্রাইভার"]
end
subgraph ax1 ["VTL1(বিচ্ছিন্ন জগৎ)"]
a1["রিং ৩: IUM(ট্রাস্টলেট)"]
k1["রিং ০: Secure Kernel"]
end
a0 --- k0
a1 --- k1
k0 ~~~ a1
চিত্র ৪: সুবিধার এখন দুই অক্ষ, আর “এটা কি কার্নেল?” ও “এটা কি বিচ্ছিন্ন জগৎ?” আলাদা প্রশ্ন হয়ে গেল।
৩.২. সীমানার সারবস্তু SLAT
পর্ব ১-এ বলেছিলাম গেস্ট ফিজিক্যাল অ্যাড্রেস (GPA)-কে আসল RAM (SPA)-এ ম্যাপ করা দ্বিতীয়-স্তর অনুবাদ টেবিল — SLAT — হাইপারভাইজার ধরে। VSM ঠিক এই গুণ ব্যবহার করে। VTL আইসোলেশন Hyper-V হাইপারভাইজার ও SLAT ব্যবহার করে তৈরি।3
VTL1 ঘোষণা করলে “এই মেমরি VTL0-কে দেখানো নয়”, হাইপারভাইজার VTL0-এর অনুবাদ টেবিল থেকে সেই পেজের অ্যাক্সেস অনুমতি নামিয়ে দেয়। তার পর VTL0 কার্নেল সেই অ্যাড্রেস ছুঁতে চাইলেও অস্বীকৃত হয় CPU-এর অ্যাড্রেস-অনুবাদ পর্যায়ে। কার্নেল নিজের পেজ টেবিল যত খুশি পুনর্লিখন করুক বৃথা। পেজ টেবিল (GVA→GPA) কার্নেলের হতে পারে, কিন্তু তার পরের অনুবাদ (GPA→SPA) ও চূড়ান্ত অ্যাক্সেস অনুমতি হাইপারভাইজারের।
flowchart TB
accTitle: VTL0 থেকে VTL1 মেমরিতে অ্যাক্সেস অস্বীকৃত হওয়ার প্রবাহ
accDescr: VTL0 কার্নেল VTL1 মেমরি পড়তে চাইলে নিজের পেজ টেবিল পাস করতে পারে কিন্তু SLAT অ্যাক্সেস সুরক্ষা অস্বীকার করে, আর নিয়ন্ত্রণ হাইপারভাইজারে সরে
try["VTL0 কার্নেল VTL1 পেজ পড়তে চায়"] --> pt["কার্নেলের নিজের পেজ টেবিল পাস করে"]
pt --> slat{"SLAT অ্যাক্সেস সুরক্ষা কি অনুমোদন করে?"}
slat -->|অনুমোদন নয়| deny["হাইপারভাইজার হস্তক্ষেপ করে অ্যাক্সেস অস্বীকার করে"]
slat -->|অনুমোদিত| ok["সাধারণ মেমরি অ্যাক্সেস"]
deny -.-> point["কার্নেল বদলাতে পারে না এমন স্তরে সুরক্ষিত"]
চিত্র ৫: বাধা কার্নেলের বাইরে বসে, আর SLAT সুরক্ষা পার্টিশনের ভেতরের সফটওয়্যার বদলাতে পারে না।
মেমরি সিরিজের পর্ব ১-এ লিখেছিলাম “VAD, PTE ও সুরক্ষা বৈশিষ্ট্য অ্যাক্সেস অনুমোদিত কি না ঠিক করে”। VBS পরিবেশে সাজানো যায়: সেগুলো সব পাস করার পরও একটি SLAT চেকপয়েন্ট অপেক্ষা করে।
৩.৩. Secure Kernel ও IUM
VTL1-এর ভেতরে যা চলে তা সাধারণ NT কার্নেল নয়, Secure Kernel নামের ছোট কার্নেল। VTL1-এর ইউজার মোডকে IUM (Isolated User Mode) বলা হয়, আর সেখানে চলা প্রোগ্রামকে ট্রাস্টলেট (বিশ্বস্ত প্রক্রিয়া) বলা হয়।3
ট্রাস্টলেট সাধারণ প্রক্রিয়ার মতো সব কিছু করতে পারে না। বেশিরভাগ সিস্টেম কল VTL0 পাশের NT কার্নেলে মার্শাল হয়ে সেখানে কাজ চাওয়া হয়।3 VTL1 “যেকোনো কিছু করতে পারে এমন উপরের জগৎ” নয়; ইচ্ছাকৃতভাবে ছোট করে গড়া, গোপন জিনিস ধরে রাখা ভল্ট হিসেবে। ভল্টে যত কম কোড আনতে পারেন, আক্রমণপৃষ্ঠ তত ছোট।
flowchart TB
accTitle: ট্রাস্টলেটের সিস্টেম কলের প্রবাহ
accDescr: VTL1-এর ট্রাস্টলেট বেশিরভাগ সিস্টেম কল নিজে সামলায় না; VTL0 NT কার্নেলে মার্শাল করে শুধু ফলাফল পায়, যা VTL1 ছোট রাখে
tl["ট্রাস্টলেট(VTL1-এ IUM)"] --> sc{"সিস্টেম কল দরকার"}
sc -->|বেশিরভাগ ক্ষেত্রে| mar["অনুরোধ VTL0 NT কার্নেলে মার্শাল"]
mar --> res["শুধু ফলাফল ফেরে"]
res -.-> small["VTL1 ছোট থাকে, আক্রমণপৃষ্ঠ কমে"]
চিত্র ৬: ভল্টের নিজস্ব সুবিধা নেই; কাজ বাইরে দেয় আর শুধু গোপন জিনিস পাহারা দিতে থাকে।
৪. HVCI — ভল্টে কার্নেল কোড ইন্টিগ্রিটি যাচাই
৪.১. কী যাচাই হচ্ছে
VBS-এর উপর বসা প্রথম প্রতিনিধি বৈশিষ্ট্য Memory integrity — HVCI (hypervisor-protected code integrity)। Windows-এর কোড-ইন্টিগ্রিটি যন্ত্র আছে যা কার্নেল-মোড ড্রাইভার ও বাইনারি শুরুর আগে পরীক্ষা করে স্বাক্ষরহীন বা অবিশ্বস্তগুলো লোড করে না। HVCI এই যাচাই VBS-এর বিচ্ছিন্ন পরিবেশে চালায়।1
যাচাই লজিক নিজেই VTL1-এ সরানোর কারণ ঠিক অনুচ্ছেদ ২-এর দুর্বলতা। যাচাই কোড VTL0 কার্নেলের ভেতরে বসলে কার্নেল দখল করা আক্রমণকারী যাচাই বদলে দিতে পারে। VTL1-এ থাকলে বদলানোর হাত পৌঁছায় না।
flowchart TB
accTitle: যাচাই কোড কোথায় থাকে তার পার্থক্য
accDescr: যাচাই কোড VTL0 কার্নেলের ভেতরে বসলে কার্নেল দখল করে নিষ্ক্রিয় করা যায়, কিন্তু VTL1-এ থাকলে কার্নেল দখল করা আক্রমণকারীও পৌঁছাতে পারে না এবং যাচাই সুরক্ষিত থাকে
atk["কার্নেল দখল করা আক্রমণকারী"] --> q{"কোড-ইন্টিগ্রিটি যাচাই কোথায় থাকে?"}
q -->|"VTL0 কার্নেলের ভেতরে(ক্লাসিক)"| bad["যাচাই লজিক বদলে দেওয়া যায়"]
q -->|"VTL1-এর বিচ্ছিন্ন পরিবেশ(HVCI)"| good["বদলানোর নাগালের বাইরে"]
bad --> res1["স্বাক্ষরহীন কোড কার্নেলে চলতে পারে"]
good --> res2["কার্নেল আপস করার পরও যাচাই চলতে থাকে"]
চিত্র ৭: চেকপয়েন্ট ভাঙতে পারে এমন পাশে রাখবেন না — যাচাই লজিকের সেই স্থানান্তরই HVCI-এর সার।
৪.২. এক্সিকিউটেবল পেজের নিয়ম
HVCI-এর প্রভাব “স্টার্টআপে পরীক্ষা”-তেই সীমাবদ্ধ নয়। এটি কার্নেল-মেমরি বরাদ্দও সীমাবদ্ধ করে।4
- কার্নেল পেজ এক্সিকিউটেবল হয় শুধু কোড-ইন্টিগ্রিটি যাচাই পাস করার পর।
- এক্সিকিউটেবল পেজ রাইটেবল হয় না (তথাকথিত W^X)।
এই দুটো থাকলে বাফার ওভারফ্লোর মতো দুর্বলতা দিয়ে কার্নেল মেমরি পুনর্লিখন করতে পারলেও পুনর্লিখিত বিষয় চালনায় রাখা যায় না। এক্সিকিউটেবল পেজ পুনর্লিখন করা যায় না, আর পুনর্লিখন করা যায় এমন পেজ চালানো যায় না।4 এক্সিকিউট অনুমতির চূড়ান্ত ভিত্তি SLAT পাশের এক্সিকিউট অধিকার, যা VTL0 কার্নেল নাড়াতে পারে না।
flowchart TB
accTitle: HVCI পরিবেশে কার্নেল পেজ এক্সিকিউটেবল হওয়া পর্যন্ত
accDescr: ড্রাইভার-লোড অনুরোধ VBS-এর বিচ্ছিন্ন পরিবেশে কোড-ইন্টিগ্রিটি যাচাই পায়; পাস করলে এক্সিকিউটেবল, নন-রাইটেবল পেজ হিসেবে অনুমোদিত হয়, ব্যর্থ হলে আটকে CodeIntegrity লগে রেকর্ড হয়
load["কার্নেল কোড লোড ও চালানোর অনুরোধ"] --> verify{"বিচ্ছিন্ন পরিবেশে কোড-ইন্টিগ্রিটি যাচাই"}
verify -->|পাস| exec["এক্সিকিউটেবল পেজ হিসেবে অনুমোদিত(লেখা নিষেধ)"]
verify -->|ব্যর্থ| block["লোড আটকে যায়"]
block --> log["CodeIntegrity Operational লগে রেকর্ড(ইভেন্ট ID 3087)"]
exec -.-> wx["রাইটেবল পেজ নন-এক্সিকিউটেবল থাকে"]
চিত্র ৮: এক্সিকিউট ও রাইট একসঙ্গে না থাকার নিয়মের যাচাই VTL1 পাশে হয়, আর VTL0 কার্নেল তা উল্টে দিতে পারে না।
আক্রমণকারীর দৃষ্টিকোণ থেকে এটি অনুসরণ করলে নিয়ম কীভাবে কাজ করে স্পষ্ট হয়।
flowchart TB
accTitle: HVCI পরিবেশে কোড ইনজেকশন ব্যর্থ হওয়ার প্রবাহ
accDescr: দুর্বলতা দিয়ে কার্নেল মেমরি পুনর্লিখন করতে পারলেও যে পেজ লেখা গেছে তা এক্সিকিউটেবল নয়, আর এক্সিকিউটেবল পেজ শুরুতেই পুনর্লিখন করা যায় না, তাই ইনজেক্ট করা কোড চালনায় রাখা যায় না
inj["দুর্বলতা দিয়ে কার্নেল মেমরি বিকৃত করার চেষ্টা"] --> which{"লক্ষ্য কোন পেজ?"}
which -->|রাইটেবল পেজ| wok["লেখা সফল"]
which -->|এক্সিকিউটেবল পেজ| xfail["লেখা নিজেই অসম্ভব"]
wok --> nx["কিন্তু সেই পেজ এক্সিকিউটেবল নয়"]
nx --> dead["ইনজেক্ট করা কোড চালানো যায় না"]
xfail --> dead
চিত্র ৯: রাইটেবল পেজকে চালানো যায় এমন পেজের সাথে না মেলানোর অর্থ: যে প্রবেশপথই নিন, অচলাবস্থায় পড়েন।
৪.৩. ড্রাইভার সামঞ্জস্যের দাম
এই নিয়ম পুরোনো-ডিজাইন ড্রাইভারের সাথে সংঘর্ষ করে। রান টাইমে নিজের কোড পুনর্লিখন করে, স্বাক্ষর নেই, অথবা এক্সিকিউটেবল ও রাইটেবল দুটোই এমন মেমরি চায় — এমন ড্রাইভার HVCI পরিবেশে লোড করা যায় না। আটকের ঘটনা Event Viewer-এ Applications and Services Logs\Microsoft\Windows\CodeIntegrity\Operational-এ নিশ্চিত করা যায় (ইভেন্ট ID 3087 প্রতিনিধি)।5
“Memory integrity চালু করার পর একটি পেরিফেরাল কাজ বন্ধ করেছে” — অনেক ক্ষেত্রে সমস্যার আসল পরিচয় এটাই। সঠিক সাড়া HVCI-সামঞ্জস্যপূর্ণ ড্রাইভারে আপডেট; Memory integrity নিষ্ক্রিয় করা সুরক্ষা পুরোপুরি ছেড়ে দেওয়া শেষ আশ্রয় হিসেবে ভাবা উচিত। ড্রাইভার-ডেভেলপমেন্ট দৃষ্টিকোণ থেকে এই যাচাইয়ে জড়িত থাকলে ফিল্টার-ড্রাইভার নিবন্ধও দেখুন (“Windows মিনিফিল্টার ড্রাইভার”)।
flowchart TB
accTitle: Memory integrity-এ পেরিফেরাল কাজ বন্ধ হওয়ার কেস আলাদা করা
accDescr: CodeIntegrity Operational লগে আটকানো ড্রাইভার চিহ্নিত করুন; সঠিক সাড়া HVCI-সামঞ্জস্যপূর্ণ সংস্করণে আপডেট, না থাকলে ভেন্ডরকে জিজ্ঞাসা, আর নিষ্ক্রিয়করণ স্থায়ী না করা শেষ আশ্রয়
sym["Memory integrity চালু করার পর ডিভাইস কাজ বন্ধ করে"] --> log2["CodeIntegrity লগে আটকানো ড্রাইভার চিহ্নিত করুন"]
log2 --> upd{"HVCI-সামঞ্জস্যপূর্ণ ড্রাইভার আছে?"}
upd -->|হ্যাঁ| fix2["HVCI চালু রেখে আপডেট করে সমাধান"]
upd -->|না| ask2["ভেন্ডরের কাছে সামঞ্জস্যপূর্ণ সংস্করণ চান"]
ask2 -.-> temp["নিষ্ক্রিয়করণ শেষ আশ্রয়, স্থায়ী সেটিং নয়"]
চিত্র ১০: প্রথমে দেখার জিনিস সেটিংস স্ক্রিন নয় লগ, আর ইভেন্ট ID 3087 জানে লোড কে আটকেছে।
৫. Credential Guard — হ্যাশগুলো LSAIso-এর ভেতরে
৫.১. LSASS ও LSAIso
VBS-এর উপর বসা দ্বিতীয় প্রতিনিধি বৈশিষ্ট্য শুরুর রহস্যের উত্তর: Credential Guard।
পুরোনো Windows NTLM হ্যাশ ও Kerberos টিকিট LSA প্রক্রিয়ার (lsass.exe) মেমরিতে রাখত। Credential Guard চালু হলে এগুলোর মধ্যে সুরক্ষিত গোপন জিনিসের সংরক্ষণ — ডোমেইন ক্রেডেনশিয়ালের NTLM হ্যাশ ও Kerberos TGT (Ticket Granting Ticket) — LSAIso.exe-তে যায়, VTL1-এ IUM-এ চলা একটি ট্রাস্টলেট।6
- lsass.exe (VTL0) আগের মতোই অথেন্টিকেশন প্রক্রিয়ার ফ্রন্ট ডেস্ক হিসেবে চলতে থাকে।
- আসল গোপন জিনিস LSAIso.exe (VTL1) ধরে এবং VTL0 থেকে অ্যাক্সেস করা যায় না।
- দুটো RPC (Remote Procedure Call) দিয়ে যোগাযোগ করে।
- LSAIso কোনো ডিভাইস ড্রাইভারই হোস্ট করে না, আর শুধু ন্যূনতম স্বাক্ষরিত বাইনারি রাখে। স্বাক্ষর VBS বিশ্বাস করে এমন সার্টিফিকেট দিয়ে যাচাই হয়।6
flowchart TB
accTitle: Credential Guard চালু থাকলে ক্রেডেনশিয়াল কোথায় বসে
accDescr: VTL0-এর lsass অথেন্টিকেশন ফ্রন্ট ডেস্ক হিসেবে VTL1-এর LSAIso-এর সাথে RPC দিয়ে যোগাযোগ করে; সুরক্ষিত ডোমেইন ক্রেডেনশিয়ালের আসল হ্যাশ ও TGT LSAIso ধরে, তাই VTL0-এ অ্যাডমিনিস্ট্রেটর সুবিধা পেয়ে lsass ডাম্প করলেও সুরক্ষিত সারবস্তু পাওয়া যায় না
subgraph v0 ["VTL0"]
lsassP["lsass.exe(অথেন্টিকেশন ফ্রন্ট ডেস্ক)"]
att["আক্রমণকারী(অ্যাডমিনিস্ট্রেটর সুবিধা)"]
end
subgraph v1 ["VTL1"]
iso["LSAIso.exe(গোপন জিনিসের ভল্ট)"]
end
lsassP <-->|RPC| iso
att -->|মেমরি ডাম্প| lsassP
att -.->|পৌঁছায় না| iso
চিত্র ১১: ফ্রন্ট ডেস্ক ও ভল্ট আলাদা হওয়ায় lsass ডাম্প করলে আর সুরক্ষিত ডোমেইন ক্রেডেনশিয়ালের আসল হ্যাশ পাওয়া যায় না।
Windows 11 সংস্করণ 22H2 থেকে লাইসেন্স প্রয়োজন (Enterprise E3/E5, Education A3/A5) ও হার্ডওয়্যার প্রয়োজন পূরণ করা ডিভাইসে VBS ও Credential Guard ডিফল্টে চালু। Pro-এর মতো সংস্করণে Credential Guard স্বয়ংক্রিয় চালু হয় না (ব্যতিক্রম আছে, যেমন যোগ্য লাইসেন্সে চালু থাকা মেশিন পরে ডাউনগ্রেড হলে)।7 শুরুর “প্লেবুক আর কাজ করে না” বিশেষ অ্যাড-অন পণ্যের গল্প নয়; লক্ষ্য সংস্করণে বর্তমান Windows-এর মানক অবস্থা।
flowchart TB
accTitle: সাইন-ইন থেকে অথেন্টিকেশন পর্যন্ত ক্রেডেনশিয়ালের প্রবাহ
accDescr: সাইন-ইনের পর আসল গোপন জিনিস VTL1-এর LSAIso-এ সংরক্ষিত হয়; প্রতিবার অথেন্টিকেশন দরকার হলে VTL0-এর lsass RPC দিয়ে গণনা চায়, আর সুরক্ষিত দীর্ঘমেয়াদি গোপন জিনিস নিজে ফেরানো ছাড়া শুধু অথেন্টিকেশন প্রক্রিয়ার ফলাফল VTL0-এ ফেরে
signin["ব্যবহারকারী সাইন ইন করে"] --> front["lsass ফ্রন্ট ডেস্ক হিসেবে সামলায়"]
front --> store["আসল গোপন জিনিস LSAIso-এ সংরক্ষিত"]
auth["পরের অথেন্টিকেশন অনুরোধ"] --> front
front -->|"RPC দিয়ে গণনা চায়"| store
store -->|"ফলাফল ফেরায়(গোপন জিনিস ফেরায় না)"| front
চিত্র ১২: সুরক্ষিত দীর্ঘমেয়াদি গোপন জিনিস নিজে কখনো ভল্ট ছাড়ে না; VTL0-এ যা ফেরে তা অথেন্টিকেশন প্রক্রিয়ার ফলাফল, যেমন একটি টিকিট।
৫.২. কী সুরক্ষিত নয় তা নিখুঁতভাবে জানুন
Credential Guard সর্বকাজের ঢাল নয়। যা সুরক্ষিত তা ডোমেইন ক্রেডেনশিয়ালের NTLM হ্যাশ, Kerberos TGT (Ticket Granting Ticket), আর ডোমেইন ক্রেডেনশিয়াল হিসেবে সংরক্ষিত জিনিস। নিচেরগুলো পরিসরের বাইরে।8
- Kerberos সার্ভিস টিকিট (TGT সুরক্ষিত)
- লোকাল অ্যাকাউন্ট ও Microsoft অ্যাকাউন্ট-এর ক্রেডেনশিয়াল
- কিলগার দিয়ে ইনপুট চুরি, আর ফিজিক্যাল আক্রমণ
- NTLMv1, MS-CHAPv2, Digest বা CredSSP ব্যবহার করা পথের ক্রেডেনশিয়াল
- নিজে ক্রেডেনশিয়াল পরিচালনা করা তৃতীয়-পক্ষ সফটওয়্যারের অভ্যন্তর
আর Credential Guard চালু থাকলে NTLMv1, unconstrained Kerberos delegation ইত্যাদি ব্যবহার অযোগ্য হয়ে যায়, তাই লেগাসি অথেন্টিকেশনের উপর নির্ভরশীল ব্যবসায়িক সিস্টেমে সামঞ্জস্য যাচাই দরকার।8 “চালু করলেই শেষ” নয়, প্রতিরক্ষা পরিসরের ভেতর ও বাইরে কী আছে ধরে বাকিটা অন্য নিয়ন্ত্রণে ভরুন — ব্যবহারে সঠিক উপায় সেটাই।
flowchart TB
accTitle: Credential Guard-এর প্রতিরক্ষা পরিসর
accDescr: ডোমেইন NTLM হ্যাশ ও TGT, আর সংরক্ষিত ডোমেইন ক্রেডেনশিয়াল সুরক্ষিত, যেখানে সার্ভিস টিকিট, লোকাল অ্যাকাউন্ট, কিলগার, ফিজিক্যাল আক্রমণ ও অ্যাপ নিজস্বভাবে রাখা ক্রেডেনশিয়াল পরিসরের বাইরে
scope{"এই গোপন জিনিস সুরক্ষা সীমানার কোন পাশে?"} --> inA["ডোমেইন NTLM হ্যাশ ও TGT"]
scope --> outA["সার্ভিস টিকিট ও লোকাল অ্যাকাউন্ট"]
inA --> prot["LSAIso-এ সুরক্ষিত"]
outA --> unprot["সুরক্ষিত নয়(অন্য নিয়ন্ত্রণ দরকার)"]
unprot -.-> outB["কীস্ট্রোক, ফিজিক্যাল আক্রমণ ও অ্যাপ-নিজস্ব সংগ্রহও বাইরে"]
চিত্র ১৩: প্রতিরক্ষা পরিসর স্পষ্ট রেখায় আঁকা, আর রেখার বাইরে মাল্টি-ফ্যাক্টর অথেন্টিকেশন ও অ্যাপ-পাশের ডিজাইন দিয়ে ভরা হয়।
৬. নিজে দেখুন
নিজের মেশিনে VBS ও প্রতিটি বৈশিষ্ট্যের চালনার অবস্থা নিশ্চিত করা যায়।
Get-CimInstance -Namespace root/Microsoft/Windows/DeviceGuard `
-ClassName Win32_DeviceGuard |
Select-Object VirtualizationBasedSecurityStatus,
SecurityServicesConfigured,
SecurityServicesRunning
পড়া যায় এভাবে।9
VirtualizationBasedSecurityStatus২ হলে VBS চালু ও চলছে।SecurityServicesRunning-এ 1 থাকলে Credential Guard চলছে; 2 থাকলে Memory integrity (HVCI) চলছে।
GUI-তে চালনার অবস্থা নিশ্চিত করতে msinfo32-এর “Virtualization-based security” ক্ষেত্র দেখুন (চলমান সার্ভিস তালিকা হয়, যেমন “Hypervisor enforced Code Integrity”)। Windows Security অ্যাপের “Device security > Core isolation”-এর নিচে “Memory integrity” টগল সেটিংস প্রতিফলিত করা স্ক্রিন; HVCI আসলে না চলতে থাকলেও চালু দেখাতে পারে — চালুর ঠিক পরে রিবুটের অপেক্ষা, অথবা স্টার্টআপে সামঞ্জস্য সমস্যা — তাই চলছে কি না বিচার করুন msinfo32 অথবা Win32_DeviceGuard-এর SecurityServicesRunning থেকে।5
টাস্ক ম্যানেজারের Details ট্যাবেও একটি চিহ্ন আছে। VBS চলা মেশিনে “Secure System” নামের প্রক্রিয়া দেখা যায়। LsaIso.exe সেই প্রক্রিয়া যা Isolated LSA সার্ভিস VTL1-এ হোস্ট হলে দেখা যায়, আর শুধু HVCI চালু থাকা কনফিগে সাধারণত দেখা যায় না। তবে প্রক্রিয়ার উপস্থিতি বা অনুপস্থিতি শুধু একটি চিহ্ন, তাই Credential Guard চলছে কি না উপরের মতো SecurityServicesRunning থেকে বিচার করুন (1 আছে কি না)। দুটোই VTL0 থেকে দেখা জানালা যা VTL1-পাশের জগতের সাথে মিলে।
flowchart TB
accTitle: VBS-সংক্রান্ত বৈশিষ্ট্য চলছে তা কীভাবে যাচাই করবেন
accDescr: Win32_DeviceGuard কোয়েরি করে VBS চলছে নিশ্চিত করুন, Credential Guard ও HVCI SecurityServicesRunning মান থেকে বিচার করুন, আর ড্রাইভার সমস্যায় CodeIntegrity লগ দেখুন
q0["Win32_DeviceGuard"] --> q1{"VBS Status ২?"}
q1 -->|না| off["VBS চলছে না"]
q1 -->|হ্যাঁ| q2{"1 নাকি 2 আছে?"}
q2 -->|1| cg["Credential Guard চালু"]
q2 -->|2| hvciR["HVCI চালু"]
hvciR -.-> ev["CodeIntegrity 3087"]
চিত্র ১৪: অবস্থা নিশ্চিতকরণ তিন ধাপে চলে: VBS নিজে, তার উপর প্রতিটি সার্ভিস, আর সমস্যা হলে লগ।
৭. ব্যবহারে এড়ানোর তিনটি ভুলপাঠ
৭.১. “অ্যাডমিনিস্ট্রেটর সুবিধা রক্ষাই যথেষ্ট। VBS সার্ভার-পাশের গল্প”
Credential Guard যা ঠেকায় তা অ্যাডমিনিস্ট্রেটর সুবিধা নেওয়ার পর ক্ষতি ছড়ানো (হ্যাশ বের করা ও ল্যাটারাল মুভমেন্ট)। অর্থাৎ VBS আপস ধরে নেওয়া ডিফেন্স-ইন-ডেপথের একটি স্তর, আর কার্যকর হয় ক্লায়েন্ট PC-এ। প্রয়োজন পূরণ করা Windows 11-এ ডিফল্টে-চালুই মানক, তাই সঠিক ভঙ্গি “আমাদের সাথে এর কোনো যোগ নেই” নয় বরং “ইতিমধ্যে চলছে ধরে সামঞ্জস্য পরিচালনা করুন”।
flowchart TB
accTitle: আপসের ধাপ ও VBS কোথায় কাজ করে
accDescr: প্রাথমিক প্রবেশ মাল্টি-ফ্যাক্টর অথেন্টিকেশন ও প্রশিক্ষণের মতো অন্য নিয়ন্ত্রণ ঢাকে; HVCI সুবিধা বৃদ্ধির পর কার্নেলে কোড ইনজেকশন আটকায়; Credential Guard সুরক্ষিত ডোমেইন গোপন জিনিস চুরি ও ল্যাটারাল মুভমেন্ট আটকায়, কিন্তু পরিসরের বাইরের গোপন জিনিসে পৌঁছায় না
s1["প্রাথমিক প্রবেশ(ফিশিং ইত্যাদি)"] --> s2["সুবিধা বৃদ্ধি"]
s2 --> s3["কার্নেলে কোড ইনজেকশন"]
s3 --> s4["সুরক্ষিত ডোমেইন গোপন জিনিস চুরি ও ল্যাটারাল মুভমেন্ট"]
s1 -.-> d1["MFA, প্রশিক্ষণ ও EDR এটা ঢাকে"]
s3 -.-> d2["HVCI এই ধাপ আটকায়"]
s4 -.-> d3["Credential Guard এটা আটকায়(শুধু সুরক্ষিত গোপন জিনিস)"]
চিত্র ১৫: VBS “ঢুকতে দেবেন না” প্রযুক্তি নয়; “ঢোকার পর জিততে দেবেন না” প্রযুক্তি, আর যে ধাপ পাহারা দেয় তা আলাদা।
৭.২. “Memory integrity সমস্যা করলে শুধু বন্ধ করে দিন”
বন্ধ করলে মুহূর্তের জন্য কাজ চলবে, কিন্তু কার্নেলে কোড ইনজেকশনের বাধা পুরোপুরি নামিয়ে দেয়। সঠিক সাড়া আগে CodeIntegrity লগে আটকানো ড্রাইভার চিহ্নিত করে ভেন্ডরের আপডেটেড সংস্করণ প্রয়োগ করা। যাচাইয়ের জন্য সাময়িক নিষ্ক্রিয় করলেও সেটাকে স্থায়ী সেটিং না করার অপারেশন সুপারিশ করি।
৭.৩. “Credential Guard থাকলে পাসওয়ার্ড চুরি করা যায় না”
প্রতিরক্ষা পরিসর গুলিয়ে ফেলা থেকে আসা অতিরিক্ত আত্মবিশ্বাস। সার্ভিস টিকিট, লোকাল অ্যাকাউন্ট, কীস্ট্রোক নিজে, আর অ্যাপ নিজস্বভাবে রাখা ক্রেডেনশিয়াল পরিসরের বাইরে।8 ফিশিং ও কিলগারের জন্য অন্য নিয়ন্ত্রণ দরকার (মাল্টি-ফ্যাক্টর অথেন্টিকেশন, Windows Hello, আর অ্যাপ পাশে ক্রেডেনশিয়াল ব্যবস্থাপনার পর্যালোচনা)।
৮. সারসংক্ষেপ
- VBS হাইপারভাইজার ব্যবহার করে বিচ্ছিন্ন পরিবেশ তৈরি করে এবং কার্নেল আপস হতে পারে ধরে নিরাপত্তা বৈশিষ্ট্য রক্ষা করে।1
- আইসোলেশনের একক VTL; বর্তমানে দুই স্তর বাস্তবায়িত, VTL0 (সাধারণ জগৎ) ও VTL1 (Secure Kernel ও IUM)।2
- সীমানার সারবস্তু SLAT মেমরি অ্যাক্সেস সুরক্ষা, যা পার্টিশনের ভেতরের সফটওয়্যার — কার্নেলসহ — বদলাতে পারে না।2
- HVCI বিচ্ছিন্ন পরিবেশে কোড-ইন্টিগ্রিটি যাচাই চালায় এবং “যাচাই পাস না হওয়া পর্যন্ত এক্সিকিউটেবল নয়” ও “এক্সিকিউটেবল পেজ রাইটেবল নয়” বলবৎ করে।4 দাম হলো ড্রাইভার সামঞ্জস্য পরিচালনা করতে হয়।5
- Credential Guard ডোমেইন ক্রেডেনশিয়ালের NTLM হ্যাশ ও TGT VTL1-এর LSAIso-এ আলাদা করে। Windows 11 22H2 থেকে লাইসেন্স প্রয়োজন (Enterprise, Education) ও হার্ডওয়্যার প্রয়োজন পূরণ করা ডিভাইসে ডিফল্টে চালু (চালনার অবস্থা যাচাইয়ের সাথে মিলিয়ে ব্যবহার করুন)।67
- চালনার অবস্থা
Win32_DeviceGuard-এর SecurityServicesRunning থেকে নিশ্চিত করা যায় (1 = Credential Guard, 2 = HVCI)।9
পর্ব ৩-এ চলবে, “সেকেন্ডে বুট হওয়া ভার্চুয়াল মেশিন — WSL2, Windows Sandbox ও কন্টেইনার“।
এখন পর্যন্ত ভার্চুয়ালাইজেশন “আইসোলেশনের শক্তি” পাশ থেকে দেখেছি। শেষ কিস্তি উল্টো, “হালকাতা” পাশ থেকে দেখে পূর্ণ VM-এর ওজন ফেলে দেওয়া হালকা VM কোথায় কাটছাঁট করছে তা অনুসরণ করে।
সম্পর্কিত নিবন্ধ
- Windows ভার্চুয়ালাইজেশনের গভীরতা (পর্ব ১) — আপনার Windows আসলে কোথায় চলছে? হাইপারভাইজার ও পার্টিশন
- Windows মেমরির গভীরতা (পর্ব ১) — ভার্চুয়াল অ্যাড্রেস ফিজিক্যাল RAM হওয়ার মুহূর্ত: শুরু থেকে শেষ পর্যন্ত একটি পেজ ফল্ট
- Windows I/O-এর গভীরতা (পর্ব ৬, শেষ) — ফিল্টার ড্রাইভার ও মিনিফিল্টার: Procmon ও অ্যান্টিভাইরাস স্ক্যানার I/O আটকাতে পারে কেন
- Windows ত্রুটি কোড পাঠোদ্ধার — Win32 ত্রুটি, HRESULT ও NTSTATUS-এর তিন-স্তর কাঠামো
সম্পর্কিত পরামর্শ ক্ষেত্র
KomuraSoft LLC Windows অ্যাপ্লিকেশন ও নিরাপত্তা বৈশিষ্ট্যের মধ্যে সামঞ্জস্য অনুসন্ধান, ড্রাইভার-জনিত ব্যর্থতার বিশ্লেষণ, আর ইন-হাউস PC পরিবেশের প্রযুক্তিগত যাচাই সামলায়।
- Windows অ্যাপ্লিকেশন ডেভেলপমেন্ট
- বাগ অনুসন্ধান ও মূল কারণ বিশ্লেষণ
- বিদ্যমান অ্যাসেটের পুনর্ব্যবহার ও মাইগ্রেশন
- যোগাযোগ করুন
তথ্যসূত্র
-
Microsoft Learn, Virtualization-based Security (VBS)। VBS হার্ডওয়্যার ভার্চুয়ালাইজেশন ও Windows হাইপারভাইজার ব্যবহার করে বিচ্ছিন্ন পরিবেশ তৈরি করা এবং কার্নেল আপস হতে পারে ধরে সেটাকে OS-এর রুট অফ ট্রাস্ট হিসেবে ধরা; Memory integrity সেই বিচ্ছিন্ন পরিবেশে কার্নেল-মোড কোড-ইন্টিগ্রিটি যাচাই চালানো; এবং VBS-এর জন্য SLAT কঠোর প্রয়োজন হওয়া সম্পর্কে। ↩ ↩2 ↩3
-
Microsoft Learn, Virtual Secure Mode। VSM Device Guard, Credential Guard, ভার্চুয়াল TPM ইত্যাদির ভিত্তি হওয়া; বিচ্ছিন্ন অঞ্চলে অ্যাক্সেস শুধু হাইপারভাইজার দিয়ে নিয়ন্ত্রিত এবং রিং-০ OS সফটওয়্যার থেকেও সুরক্ষিত হওয়া; VTL অনুক্রমিক এবং সর্বোচ্চ ১৬ স্তরের মধ্যে ২টি বাস্তবায়িত; এবং VTL-প্রতি মেমরি অ্যাক্সেস সুরক্ষা পার্টিশনের ভেতরের সিস্টেম সফটওয়্যার বদলাতে না পারা সম্পর্কে। ↩ ↩2 ↩3 ↩4 ↩5
-
Microsoft Learn, Isolated User Mode (IUM) Processes। VSM Hyper-V হাইপারভাইজার ও SLAT ব্যবহার করে VTL তৈরি করা; Secure Kernel ও IUM VTL1-এ চলা; ট্রাস্টলেট সিস্টেম কল VTL0 কার্নেলে মার্শাল করা; এবং LSAIso VTL1-এ চলে lsass-এর সাথে RPC দিয়ে যোগাযোগ করা সম্পর্কে। ↩ ↩2 ↩3
-
Microsoft Learn, Memory integrity and virtualization-based security। Memory integrity (HVCI) বিচ্ছিন্ন পরিবেশে কোড-ইন্টিগ্রিটি যাচাই চালানো, এবং কার্নেল মেমরি পেজ যাচাই পাস করার পরই এক্সিকিউটেবল হওয়া ও এক্সিকিউটেবল পেজ রাইটেবল না হওয়া সম্পর্কে। ↩ ↩2 ↩3
-
Microsoft Learn, Memory integrity and VBS enablement। Windows 11-এর ক্লিন ইনস্টলে হার্ডওয়্যার সামঞ্জস্যপূর্ণ হলে Memory integrity ডিফল্টে চালু হওয়া; msinfo32 ও Windows Security অ্যাপে অবস্থা নিশ্চিত করা; এবং CodeIntegrity Operational লগে ইভেন্ট ID 3087 দিয়ে আটকানো ড্রাইভার নিশ্চিত করা সম্পর্কে। ↩ ↩2 ↩3
-
Microsoft Learn, How Credential Guard works। Credential Guard চালু থাকলে LSA Isolated LSA প্রক্রিয়ার (LSAIso.exe) সাথে যোগাযোগ করে গোপন জিনিস সংরক্ষণ করা; সংরক্ষিত ডেটা VBS সুরক্ষিত এবং OS-এর বাকি অংশ থেকে অ্যাক্সেসযোগ্য নয়; এবং Isolated LSA প্রক্রিয়া কোনো ডিভাইস ড্রাইভার হোস্ট করে না ও শুধু ন্যূনতম স্বাক্ষর-যাচাই করা বাইনারি রাখে সম্পর্কে। ↩ ↩2 ↩3
-
Microsoft Learn, Credential Guard overview। Windows 11 সংস্করণ 22H2 থেকে লাইসেন্স, হার্ডওয়্যার ও সফটওয়্যার প্রয়োজন পূরণ করা এবং স্পষ্টভাবে নিষ্ক্রিয় না করা ডিভাইসে Credential Guard ডিফল্টে চালু হওয়া; যোগ্য সংস্করণ/লাইসেন্স Enterprise (E3/E5) ও Education (A3/A5), Pro পরিসরের বাইরে; এবং আগে যোগ্য লাইসেন্সে চালু থাকা Pro মেশিন ডাউনগ্রেডের পরও ডিফল্টে-চালু লক্ষ্য থাকা সম্পর্কে। ↩ ↩2
-
Microsoft Learn, Credential Guard protection limits। সার্ভিস টিকিট, লোকাল অ্যাকাউন্ট, কিলগার, ফিজিক্যাল আক্রমণ ইত্যাদি Credential Guard-এর সুরক্ষা পরিসরের বাইরে হওয়া; TGT সুরক্ষিত অথচ সার্ভিস টিকিট নয়; এবং চালু থাকলে NTLMv1 ও unconstrained delegation ব্যবহার অযোগ্য হয়ে যাওয়া সম্পর্কে। ↩ ↩2 ↩3
-
Microsoft Learn, Enable virtualization-based protection of code integrity। Win32_DeviceGuard ক্লাস দিয়ে VBS ও Memory integrity-এর অবস্থা কীভাবে নিশ্চিত করবেন, এবং SecurityServicesRunning মানের অর্থ (1 Credential Guard, 2 Memory integrity) সম্পর্কে। ↩ ↩2
সম্পর্কিত নিবন্ধ
কাছাকাছি বিষয়ে গভীরে যেতে একই ট্যাগযুক্ত সাম্প্রতিক নিবন্ধ।
Windows ভার্চুয়ালাইজেশনের গভীরতা (পর্ব ৩) — সেকেন্ডে বুট হওয়া ভার্চুয়াল মেশিন: WSL2, Windows Sandbox ও কন্টেইনার এত হালকা কেন
WSL2 ও Windows Sandbox সেকেন্ডে শুরু হয়ে এত হালকা মনে হয় কেন? এই নিবন্ধ ডায়নামিক বেস ইমেজ ও ডাইরেক্ট ম্যাপ থেকে ডায়নামিক মেমরি বরাদ্দ...
Windows ভার্চুয়ালাইজেশনের গভীরতা (পর্ব ১) — আপনার Windows আসলে কোথায় চলছে? হাইপারভাইজার ও পার্টিশন
Hyper-V চালু করলে হোস্ট Windows নিজেই রুট পার্টিশন হিসেবে হাইপারভাইজারের উপর চলে। এই নিবন্ধ VT-x, SLAT ও VMBus-এর ভূমিকা দিয়ে ভার্চুয়াল...
নেমড পাইপ ব্যবহারিকভাবে — ডিজাইন থেকে নিরাপত্তা পর্যন্ত Windows-এর মানক IPC
Windows-এর মানক আন্তঃপ্রক্রিয়া যোগাযোগ নেমড পাইপের ব্যবহারিক গাইড। প্রাথমিক উৎস থেকে এই নিবন্ধ বাইট ও মেসেজ মোডের পছন্দ, একাধিক ক্লায়েন...
Win32 থ্রেড পুল API — CreateThreadpoolWork দিয়ে থ্রেড তৈরি না করে কনকারেন্সি
নেটিভ কোডে চারদিকে CreateThread ডাকছেন? এই নিবন্ধ Vista-তে নতুন করে সাজানো Win32 থ্রেড পুল API ব্যাখ্যা করে — work, timer, wait ও io চারট...
এলাকার নাম দিয়ে অনুসন্ধানে দৃশ্যমান হোন — ছোট ও মাঝারি ব্যবসার জন্য লোকাল SEO-এর ব্যবহারিক গাইড (এলাকা পৃষ্ঠা ও Google Business Profile)
সেসব ছোট ও মাঝারি ব্যবসার জন্য যাদের সাইট "এলাকার নাম + খাত" খুঁজলে দেখা যায় না। এই নিবন্ধ লোকাল SEO ঠিক করার ক্রম সাজায়: Google Busine...
সম্পর্কিত বিষয়
এই পৃষ্ঠাগুলো বিষয়টিকে সেবা ও সিদ্ধান্তের বৃহত্তর প্রেক্ষাপটে স্থাপন করে।
Windows-এর প্রযুক্তিগত বিষয়
Windows ডেভেলপমেন্ট, বাগ তদন্ত ও বিদ্যমান সম্পদ ব্যবহারের প্রবেশদ্বার।
এই বিষয়ের সাথে সম্পর্কিত সেবা
নিবন্ধটি নিচের সেবাগুলোর সাথে সরাসরি সম্পর্কিত।
Windows অ্যাপ ডেভেলপমেন্ট
ব্যবসায়িক অ্যাপ, ডিভাইস ইন্টিগ্রেশন ও যোগাযোগ টুল, চাহিদা থেকে ডেভেলপমেন্ট পর্যন্ত।
প্রায়শ জিজ্ঞাসিত প্রশ্ন
এই নিবন্ধের বিষয়ে পরামর্শে প্রায়ই আসা প্রশ্ন।
- VBS (ভার্চুয়ালাইজেশন-ভিত্তিক নিরাপত্তা) ও Core isolation কি একই জিনিস?
- কঠোর অর্থে আলাদা। VBS সেই ভিত্তি প্রযুক্তি যা হাইপারভাইজার দিয়ে বিচ্ছিন্ন পরিবেশ তৈরি করে, আর Windows Security অ্যাপের "Core isolation" সেই স্ক্রিনের নাম যা VBS-এর উপর গড়া কয়েকটি সুরক্ষা একত্র করে। প্রতিনিধিটি "Memory integrity", যা HVCI (hypervisor-protected code integrity) বোঝায়। প্রতিটি সার্ভিসের চালনার অবস্থা স্ক্রিন প্রদর্শন থেকে নয়, Win32_DeviceGuard কোয়েরি করে নিশ্চিত করুন।
- অ্যাডমিনিস্ট্রেটর সুবিধা বা কার্নেল ড্রাইভার থেকেও কি VTL1 মেমরি সত্যিই পড়া যায় না?
- যায় না। VTL-প্রতি মেমরি অ্যাক্সেস সুরক্ষা হাইপারভাইজার পার্টিশনের ফিজিক্যাল অ্যাড্রেস স্পেসের বিপরীতে পরিচালনা করে, আর পার্টিশনের ভেতরের সফটওয়্যার সেগুলো বদলাতে পারে না। কার্নেলে (রিং ০) চলা কোডও VTL0 থেকে VTL1 মেমরিতে অ্যাক্সেস অনুমোদিত নয়।
- Memory integrity (HVCI) চালু করলে ড্রাইভার কেন কাজ বন্ধ করতে পারে?
- HVCI পরিবেশে কার্নেল পেজ এক্সিকিউটেবল হয় শুধু ইন্টিগ্রিটি যাচাই পাস করার পর, আর এক্সিকিউটেবল পেজে লেখা অনুমোদিত নয়। স্বাক্ষরহীন ড্রাইভার, অথবা এক্সিকিউটেবল মেমরি পুনর্লিখন করা পুরোনো-ডিজাইন ড্রাইভার, এই সীমাবদ্ধতা মেটাতে পারে না এবং লোড আটকে যায়। আটক CodeIntegrity Operational লগে নিশ্চিত করা যায় (ইভেন্ট ID 3087 ইত্যাদি)।
- Credential Guard কী রক্ষা করে, আর কী রক্ষা করে না?
- এটি ডোমেইন ক্রেডেনশিয়ালের NTLM পাসওয়ার্ড হ্যাশ, Kerberos TGT, আর অ্যাপ ডোমেইন ক্রেডেনশিয়াল হিসেবে রেখেছে এমন জিনিস বিচ্ছিন্ন পরিবেশে রক্ষা করে। Kerberos সার্ভিস টিকিট, লোকাল অ্যাকাউন্ট ও Microsoft অ্যাকাউন্টের ক্রেডেনশিয়াল, কিলগার দিয়ে ইনপুট চুরি, আর ফিজিক্যাল আক্রমণ পরিসরের বাইরে।
- VBS চলছে কি না কোথায় দেখব?
- msinfo32-এর "Virtualization-based security" ক্ষেত্র দেখুন, অথবা PowerShell থেকে root/Microsoft/Windows/DeviceGuard নেমস্পেসের Win32_DeviceGuard ক্লাস কোয়েরি করুন। SecurityServicesRunning-এ 1 থাকলে Credential Guard চলছে; 2 থাকলে Memory integrity (HVCI) চলছে।