কম্পিউটার টিউটোরিয়াল

উইন্ডোজ ১০ এক্সপ্লয়াট প্রোটেকশন – একটি جامع গাইড

উইন্ডোজ ১০ Fall Creators Update (Build 1709) রিলিজের সাথে, সবচেয়ে superb এবং elegant Enhanced Mitigation Experience Toolkit (EMET) আর এই অপারেটিং সিস্টেমে উপলব্ধ নয় বা ইনস্টল করা যায় না। বদলে, এই মিটিগেশনগুলো এখন উইন্ডোজ ১০-এর অভিন্ন অংশ।

যেহেতু আমি EMET-এর یک বিশাল ফ্যান, এবং আমার সব উইন্ডোজ মেশিনে এটি ব্যবহার করি, আমি সিদ্ধান্ত নিয়েছি নতুন মিটিগেশনগুলো উইন্ডোজ ১০-এ কীভাবে ডিপ্লয় এবং টুইক করতে হয় সেটা নিয়ে একটি ডিটেইল্ড, প্র্যাক্টিক্যাল এবং রিয়েল-লাইফ ইউজ গাইড লিখব। আমার পেছনে যান।


বিষয়সূচি


  1. পরিচয় এবং sơমিক পড়াশোনা
  2. উইন্ডোজ ১০ এক্সপ্লয়াট প্রোটেকশন
    1. সিস্টেম সেটিংস
    2. প্রোগ্রাম সেটিংস
  3. এক্সপোর্ট এবং ইম্পোর্ট কনফিগারেশন
    1. কনফিগারেশন ফাইল ফরম্যাট
    2. পুরনো EMET কনফিগারেশন ব্যবহার
    3. অ্যাপ্লিকেশন টেমপ্লেট
  4. রিয়েল-লাইফ ইউজ এবং উদাহরণ
    1. নতুন কনফিগারেশন ইম্পোর্ট
    2. কনফিগারেশন ফাইল কন্টেন্ট
    3. এক্সপ্লয়াট প্রোটেকশন রান এবং ব্যবহার
    4. এডিট এবং টুইক কনফিগারেশন
    5. Overzealous প্রোটেকশন
  5. অতিরিক্ত পঠন
  6. উপসংহার

পরিচয় এবং sơমিক পড়াশোনা

আপনি যদি এই আর্টিকেলটি accidentally পেয়ে যান, যা unlikely দেওয়া এই niche এবং nerdy টপিকের প্রকৃতি, তবে আমি শুধু সংক্ষেপে EMET পরিচয় করা দিই। এই ইউটিলিটি হল সিস্টেম এবং প্রোগ্রাম মেকানিজমের একটি সেট যা খারাপ কোড রান হয়ে যাওয়া থেকে বাধা দেয়। এইভাবে এটি চলমান প্রোগ্রামে এক্সপ্লয়াট সম্ভাব্যভাবে স্টপ এবং ব্লক করতে পারে।

মাইক্রোসফট EMET একটি স্ট্যান্ডআলোন টুল হিসেবে বহু বছর আগে রিলিজ করেছিল, এবং আপনি যেকোনো সিস্টেমে এটি ম্যানুয়ালি ডিপ্লয় করতে পারতেন। এটি এখনো উইন্ডোজের পূর্বের দুটি ভার্সনে এবং উইন্ডোজ ১০-এ Build 1709 পর্যন্ত উপলব্ধ।

EMET কাজ করে চলমান প্রোগ্রামগুলো কী ধরনের ইনস্ট্রাকশন এবং মেমরি অ্যাক্সেস এক্সিকিউট করতে পারে সেটা রেস্ট্রিক্ট করে। এই আইডিয়ার সৌন্দর্য হল এটি আমরা যেটাকে good programs এবং malware বলি সেগুলোর মধ্যে পার্থক্য করে না। এটি শুধু compliant, 소위 legal কোড এবং non-compliant, 소위 illegal কোডের মধ্যে পার্থক্য করে। তাই এমনকি আপনার যদি একটি perfectly legitimate প্রোগ্রাম থাকে যেন Chrome বা Powerpoint, এবং সেগুলো EMET লাইব্রেরি দ্বারা encapsulated এবং protected থাকে, যদি সেগুলো কোনো illegal instruction-এর কারণে misbehave করে - সবচেয়ে সম্ভবত mistake এবং sloppy programming practices বা legacy constraints দ্বারা ইন্ট্রোডিউস করা - তবে EMET এক্সিকিউশন ব্লক করবে এবং প্রোগ্রামটি টার্মিনেট করবে।

এটি EMET ideias-কে একটি সিকিউরিটি টুল বানায় - একবার প্রপারলি কনফিগার হলে, এটি একটি fire-and-forget সমাধান। এটি lightweight, non-intrusive, extremely efficient, এবং smart। সফটওয়্যারকে এর এক্সিকিউশন কোয়ালিটি পারস্পেক্টিভ থেকে দেখার কনসেপ্ট অনেক বুদ্ধিমানী-full ব্ল্যাকলিস্ট করা খারাপ প্রোগ্রামের চেষ্টা করার চেয়ে।

EMET উইন্ডোজে উপলব্ধ সিস্টেম-লেভেল সিকিউরিটি মেকানিজমসহ কাজ করে, যেন DEP, SEHOP, ASLR, এবং অন্যান্য। খুব neat, খুব handy, এবং supremely useful।

আমি EMET কীভাবে ব্যবহার করতে হয় সেটা নিয়ে একটি ডিটেইল্ড টিউটোরিয়াল লিখেছি। এটি version 4-এ বানানো হয়েছিল, কিন্তু guideline-গুলো ১০০% true এবং correct later versions-এও, আমার মিটিগেশন টুলকিটের লাস্ট রিভিউ version 5.5-এ ছিল। সেগুলো পড়ুন যাতে আপনি বিভিন্ন কনসেপ্ট এবং প্রোটেকশনের সাথে familiar হন।

উইন্ডোজ ১০ এক্সপ্লয়াট প্রোটেকশন – একটি جامع গাইড

আর ইনস্টল করা যায় না, যাইহোক:

উইন্ডোজ ১০ এক্সপ্লয়াট প্রোটেকশন

EMET-এর ফাংশনালিটি এখন উইন্ডোজ ১০ Build 1709-এ একটি built-in capability হিসেবে উপলব্ধ। আপনি সংশ্লিষ্ট UI Windows Defender Security Center-এ পাবেন। বাম পাশে, সাইডবারে, দ্বিতীয়-শেষ আইকনে ক্লিক করুন, লিস্টের শেষে স্ক্রোল ডাউন করুন, এবং তারপর Exploit protection settings-এ ক্লিক করুন।

নতুন UI EMET-এর চেয়ে simplified - এবং আরও difficult to use, কারণ আপনার করেন্টলি কী ইনএবল আছে সেটাতে less visibility আছে। আপনার apps এবং enabled mitigations-এর full matrix-style view-ও নেই। কিন্তু ergonomic considerations আলাদা রাখি। শুধু raw functionality-এ ফোকাস করি। আসলে ইন্টারফেস কীভাবে improve করা উচিত সেটা পরে আলোচনা করব।

সিস্টেম সেটিংস

ডিফল্ট ভিউ System settings লিস্ট করে। পুরনো অপারেটিং সিস্টেমের মতো, উইন্ডোজ ১০ বিভিন্ন low-level মেকানিজমসহ আসে যেগুলো malicious (পড়ুন incorrect/illegal) কোড এক্সিকিউশন বাধা দেয়। আবার, আমরা বিশেষ করে malware-র কথা বলছি না, আমরা যেকোনো কোডের কথা বলছি যা potentially সিস্টেম ক্র্যাশ, instability এবং সে সব veroorাহ করতে পারে।

উইন্ডোজ ১০-এ উপলব্ধ ছয়টি প্রোটেকশন شامل: CFG, DEP, Mandatory ASLR, Bottom-up ASLR, SEHOP, এবং heap integrity। এগুলো প্রায় সমান যা উইন্ডোজে আগে ছিল, কিন্তু কোনো exact ১:১ translation নেই, কারণ underlying kernel structures-এ কিছু পরিবর্তন হয়েছে। ডিফল্টভাবে, এই সব প্রোটেকশন ON।

প্রোগ্রাম সেটিংস

আপনি যদি দ্বিতীয় ক্যাটেগরিতে ক্লিক করেন, এটি individual programs-এর লিস্ট expand করবে যেগুলো এক্সপ্লয়াট প্রোটেকশন মেকানিজম দ্বারা কভার করা। শুধু প্রোগ্রামগুলো যাদের configuration সিস্টেম ডিফল্টস সাথে মেলে সেগুলো লিস্ট হবে। যদি একটি প্রোগ্রামের কনফিগারেশন সিস্টেম ডিফল্টস সাথে মেলে, তবে সেটা যোগ হবে না।

উইন্ডোজ ১০ বেশ কিছু অ্যাপ্লিকেশন вже লিস্ট করে নির্দিষ্ট overrides-সহ। এই মুহূর্তে, আমাদের সেগুলো একা ছাড়া দিতে হবে, কারণ সেগুলো মাইক্রোসফট দ্বারা optimal security versus compatibility-র জন্য কনফিগার করা হয়েছে।

আপনি নতুন প্রোগ্রাম যোগ করতে পারেন, পাথ দ্বারা বা নাম দ্বারা। দ্বিতীয়টি ভালো কারণ এটি আপনাকে আপনার ডিস্কে কোথায় ইনস্টল করা থাকে সেটা নির্বিশেষে সেই নির্দিষ্ট এক্সিকিউটেবল নাম ম্যাচ করা যেকোনো ভার্সন প্রোটেক্ট করতে দেয়।

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


১৫টি মিটিগেশন উপলব্ধ - এবং আপনি যদি এনএবল করেন, সেগুলো সিস্টেম ডিফল্টসের ওপর precedence নেবে। আপনার অডিটিং allow করার অপশনও আছে - মূলত যদি একটি এক্সসেপশন遇到 হয়, সিস্টেম আপনাকে নোটিফাই করবে, এবং আপনাকে ম্যানুয়ালি ক্লোজ বা টার্মিনেট করতে হবে প্রোগ্রামটি। অন্যথায়, সিস্টেম মিটিগেশন সাথে মিলে যাওয়া illegal instructions-সহ প্রোগ্রামগুলো টার্মিনেট করবে।

এক্সপোর্ট এবং ইম্পোর্ট কনফিগারেশন

এখন, ইন্টারেস্টিং এবং tricky পার্ট। যেহেতু নতুন মেকানিজম একটি আরও cumbersome interface-সহ আসে, প্রোগ্রাম কনফিগার করা একটি pain - আমরা কথা বলছি ২০-৩০ প্রোগ্রাম ১৫টি মিটিগেশনসহ প্রতিটি, এবং এটি অখণ্ড মাউস ক্লিক নেয় সর্ট আউট করতে।

خوشকিসমত, আপনি XML কনফিগারেশন ফাইল ব্যবহার করতে পারেন আপনার প্রোটেকশন দ্রুত আপডেট করতে। আপনি আপনার লিস্টে প্রোগ্রাম যোগ এবং রিমুভ করতে পারেন, আপনি স্পেসিফিক মিটিগেশন টুইক করতে পারেন, এবং প্রয়োজনীয় সেটআপ অনেক দ্রুত এবং efficiently করতে পারেন। এটি করতে, আপনাকে কনফিগারেশন ফাইলের বেসিক ফরম্যাট বুঝতে হবে।

মেইন ইন্টারফেসে, Export settings-এ ক্লিক করুন এবং একটি XML ফাইল ডিস্কে কোথাও সেভ করুন। এটি একটি টেক্সট এডিটরে খুলুন, এবং চলুন কনফিগারেশনটি সংক্ষেপে দেখি, এবং বিভিন্ন directive এবং value কী মানে।

কনফিগারেশন ফাইল ফরম্যাট

চলুন রিভিউ করি:

<?xml version="1.0" encoding="UTF-8"?>
<root>
<SystemConfig>
<ASLR Enable="true" ForceRelocateImages="false"
OverrideForceRelocateImages="false"></ASLR>
</SystemConfig>
<AppConfig Executable="DevicesFlow.exe">
<ExtensionPoints DisableExtensionPoints="true"
OverrideExtensionPoint="false"></ExtensionPoints>
</AppConfig>
...

এগুলো একটি আসল কনফিগারেশনের প্রথম কয়েক লাইন; indentation আছে ভিজুয়ালি distinguish করতে কী কোথায় শুরু এবং কোথায় শেষ, প্রায় যেকোনো ভাষার মতো। উপরে XML declaration আছে। তারপর, root section আছে, যা basically সেই ব্লকে ডিফাইন করে যার ভিতরে আপনার সিস্টেম এবং অ্যাপ্লিকেশন কনফিগারেশন থাকবে।

সিস্টেম কনফিগারেশন SystemConfig দ্বারা ডিক্লেয়ার করা হয়। অ্যাপ্লিকেশন AppConfig দ্বারা ডিক্লেয়ার করা হয়। অ্যাপ্লিকেশন নাম Executable variable দ্বারা ডিক্লেয়ার করা হয়। তারপর আছে বিভিন্ন ধরনের মিটিগেশন, যেন ExtensionPoints, Fonts, Payloads, DynamicCode, এবং অন্যান্য। উদাহরণস্বরূপ, একটি অ্যাডেড অ্যাপ্লিকেশনের প্রায় ফুল লিস্ট হবে এমনকি:

<AppConfig Executable="chrome.exe">
<StrictHandle
  Enable="true"
  OverrideStrictHandle="false">
</StrictHandle>
<SystemCall
  DisableWin32kSystemCalls="false"
  OverrideSystemCall="false"
  Audit="true">
</SystemCall>
<ExtensionPoints
  DisableExtensionPoints="true"
  OverrideExtensionPoint="false">
</ExtensionPoints>
<DynamicCode
  BlockDynamicCode="false"
  AllowThreadsToOptOut="false"
  OverrideDynamicCode="false"
  Audit="true">
</DynamicCode>
<Fonts
  DisableNonSystemFonts="false"
  AuditOnly="false"
  OverrideFontDisable="false"
  Audit="true">
</Fonts>
<ImageLoad
  BlockRemoteImageLoads="false"
  OverrideBlockRemoteImageLoads="false"
  BlockLowLabelImageLoads="false"
  OverrideBlockLowLabel="false"
  AuditRemoteImageLoads="true"
  AuditLowLabelImageLoads="true">
</ImageLoad>
<Payload
  EnableExportAddressFilter="true"
  OverrideExportAddressFilter="false"
  AuditEnableExportAddressFilter="true"
  EnableExportAddressFilterPlus="true"
  OverrideExportAddressFilterPlus="false"
  AuditEnableExportAddressFilterPlus="true"
  EnableImportAddressFilter="true"
  OverrideImportAddressFilter="false"
  AuditEnableImportAddressFilter="true"
  EnableRopStackPivot="true"
  OverrideEnableRopStackPivot="false"
  AuditEnableRopStackPivot="true"
  EnableRopCallerCheck="true"
  OverrideEnableRopCallerCheck="false"
  AuditEnableRopCallerCheck="true"
  EnableRopSimExec="true"
  OverrideEnableRopSimExec="false"
  AuditEnableRopSimExec="true">
</Payload>
</AppConfig>

আসল মানগুলো কিছুক্ষণের জন্য ইগনোর করি। চলুন তিনটি গুরুত্বপূর্ণ variable বুঝি:

Value - true/false হতে পারে, ডিফাইন করে একটি মিটিগেশন ইনএবলড কিনা।

Override - আপনি যা চিন্তা করেন তার বিপরীত, এটি আপনাকে না বলে যে স্পেসিফাইড ভ্যালু সিস্টেম ডিফল্টসকে override করে। নopes। সেটা already by design। যদি এই variable true-এ সেট থাকে, এর মানে আপনি UI-তে সেটিংস এডিট করতে পারবেন না। এটি দারুণ confusing, বিশেষ করে false মানে আপনার Defender Security Center-এ কন্ট্রোল আছে, এবং true মানে আপনার কন্ট্রোল নেই। Best এই variable ইগনোর করুন।

Audit - প্রোগ্রাম audit mode-এ রান করবে কিনা বা full enforced mode-এ।

তাই বেসিক্স রেডি। এখন, আসলে একটি কনফিগারেশন ফাইল তৈরি করি, এবং তারপর এক্সপ্লয়াট লিস্টে ইম্পোর্ট করি। এবং আমরা এটি করব আসলে একটি পুরনো EMET কনফিগারেশন ইম্পোর্ট করে, কারণ আমরা সকল কঠিন পরিশ্রম হারাতে চাই না।

পুরনো EMET কনফিগারেশন ব্যবহার

আমরা এখন Powershell কমান্ড লাইন ব্যবহার করব কিছু টাস্ক করার জন্য। অর্থাৎ, আমরা একটি EMET কনফিগ ফাইলকে নতুন ফরম্যাটে কনভার্ট করব এবং তারপর ইম্পোর্ট করব। এই কমান্ডগুলোর বর্তমানে GUI equivalent নেই। আপনার Powershell এবং administrator access লাগবে। যাইহোক, একটি EMET ফাইল এমন দেখাবে:

<EMET Version="5.1.5426.28431">
<Settings>
<ExploitAction Value="StopProgram" />
<AdvancedSettings DeepHooks="True" AntiDetours="True" BannedFunctions="True" />
<Reporting Telemetry="True" TrayIcon="True" EventLog="True" />
<SystemSettings DEP="Application Opt Out" SEHOP="Application Opt Out" ASLR="Application Opt In" Pinning="Enabled" />
</Settings>
<EMET_Apps>
<AppConfig Path="*" Executable="7z.exe">
<Mitigation Enabled="true" />
<Mitigation Enabled="true" />
<Mitigation Enabled="true" />
<Mitigation Enabled="true" />

আমি মনে করি এটি একটি much cleaner এবং nicer ফরম্যাট। কিন্তু never mind। চলুন এখন এই কনফিগারেশন ফাইল কনভার্ট করি। অনলাইন ডকুমেন্টেশন পড়লে দেখব কীভাবে করতে হয়, আমাদের নিচের কমান্ড লাগবে:

ConvertTo-ProcessMitigationPolicy -EMETFilePath emetconfig.xml -OutputFilePath newconfig.xml

আমি একগাদা এরর পেলাম:

Error: Should read Win10 setting for some reason?: PinRuleMember
Error: Should read Win10 setting for some reason?: Active
Error: Should read Win10 setting for some reason?: PinnedSite
Error: Should read Win10 setting for some reason?: Domain
Error: Should read Win10 setting for some reason?: PinRuleMember
Error: Should read Win10 setting for some reason?: Active

মূলত, প্রি-উইন্ডোজ ১০ রুলসের সব pinned rules for certificates নতুন ফরম্যাটের সাথে compatible নয়। আপনি যদি এমন একটি কনফিগারেশন ইম্পোর্ট করার চেষ্টা করেন, তবে এটি fail করবে। আপনাকে XML ক্লিন আপ করতে হবে কনভার্সন আবার করার আগে।

<Pinning>
<PinRules>
<PinRule>
<ID>{392c02ca-a7dd-49e3-888f-7fb505de9333}</ID>
<Name>FacebookCA</Name>
...

নোট: EMET এবং নতুন exploit protection মেকানিজমের মধ্যে কোনো exact ১:১ match নেই, এবং বিশেষ করে আপনি যদি multiple operating systems-এ move করেন। আমার রিকমেন্ডেশন হবে পুরনো config কে advisory only হিসেবে ব্যবহার করুন।

তাই, কনভার্টেড ফাইল এমন কিছু দেখাবে - app mitigations-এর দিক থেকে:

<AppConfig
  Executable="AcroRd32.exe">
<DEP
  Enable="true"
  EmulateAtlThunks="false"/>
<ASLR
  ForceRelocateImages="false"
  RequireInfo="false"
  BottomUp="true"
  HighEntropy="false"/>
<StrictHandle
  Enable="false"/>
<SystemCalls
  DisableWin32kSystemCalls="false"
  Audit="false"/>
<ExtensionPoints
  DisableExtensionPoints="false"/>
<DynamicCode
  BlockDynamicCode="false"
  AllowThreadsToOptOut="false"
  Audit="false"/>
<ControlFlowGuard
  Enable="false"
  SuppressExports="false"
  StrictControlFlowGuard="false"/>
<SignedBinaries
  MicrosoftSignedOnly="false"
  AllowStoreSignedBinaries="false"
  EnforceModuleDependencySigning="false"
  Audit="false"
  AuditStoreSigned="false"
  AuditEnforceModuleDependencySigning="false"/>
<Fonts
  DisableNonSystemFonts="false"
  Audit="false"/>
<ImageLoad
  AuditPreferSystem32="false"
  AuditLowLabelImageLoads="false"
  AuditRemoteImageLoads="false"
  PreferSystem32="false"
  BlockLowLabelImageLoads="false"
  BlockRemoteImageLoads="false"/>
<Payload
  EAFModules=""
  EnableExportAddressFilter="true"
  AuditEnableExportAddressFilter="false"
  EnableExportAddressFilterPlus="true"
  AuditEnableExportAddressFilterPlus="false"
  EnableImportAddressFilter="false"
  AuditEnableImportAddressFilter="false"
  EnableRopStackPivot="true"
  AuditEnableRopStackPivot="false"
  EnableRopCallerCheck="true"
  AuditEnableRopCallerCheck="false"
  EnableRopSimExec="true"
  AuditEnableRopSimExec="false"/>
<SEHOP
  Enable="true"
  TelemetryOnly="false"
  Audit="false"/>
<Heap
  TerminateOnError="true"/>
<ChildProcess
  DisallowChildProcessCreation="false"
  Audit="false"/>
</AppConfig>

অ্যাপ্লিকেশন টেমপ্লেট

EMET থেকে ইম্পোর্ট করা অধিকাংশ মিটিগেশন दुর্ভাগ্যবশত false-এ সেট হবে - এবং সিস্টেম ওনস আর ফুলি match করবে না। তাই আমার রিকমেন্ডেশন হল: ছয়টি সিস্টেম মিটিগেশন বেসিক্স কভার করে। আপনি আরো ছয়টি মিটিগেশন ইনএবল করতে পারেন যা EMET এবং নতুন প্রোটেকশন মেকানিজমের মধ্যে ১:১ মেলে বলে মনে হয়, যেন: EAF, EAF+, IAF, StackPivot, CallerCheck, এবং SimExec। তাই আমাদের অ্যাপ্লিকেশনের জন্য বেসিক টেমপ্লেট, পূর্বের ব্যবহার ভিত্তিক করে, হয়ে যায়:

<?xml version="1.0" encoding="UTF-8"?>
<root>
<AppConfig Executable="executable.exe">
<Payload EnableExportAddressFilter="true"
EnableExportAddressFilterPlus="true"
EnableImportAddressFilter="true"
EnableRopStackPivot="true"
EnableRopCallerCheck="true"
EnableRopSimExec="true">
</Payload>
</AppConfig>
</root>

আমরা fonts protection-এও এটি এক্সটেন্ড করতে পারি (টেক্সট visual clarity-র জন্য ফরম্যাট করা):

<?xml version="1.0" encoding="UTF-8"?>
<root>
<AppConfig Executable="executable.exe">
<Fonts DisableNonSystemFonts="true"
AuditOnly="false"
OverrideFontDisable="false"
Audit="false">
</Fonts>
<Payload EnableExportAddressFilter="true"
EnableExportAddressFilterPlus="true"
EnableImportAddressFilter="true"
EnableRopStackPivot="true"
EnableRopCallerCheck="true"
EnableRopSimExec="true">
</Payload>
</AppConfig>
</root>

এবং এটি একটি টেমপ্লেট সেকশন যা আপনি আপনার বেসলাইন হিসেবে ব্যবহার করতে পারেন:

<?xml version="1.0" encoding="UTF-8"?>
<root>
<AppConfig Executable="executable.exe">
<Fonts DisableNonSystemFonts="true" AuditOnly="false" OverrideFontDisable="false" Audit="false"></Fonts>
<Payload EnableExportAddressFilter="true" EnableExportAddressFilterPlus="true" EnableImportAddressFilter="true" EnableRopStackPivot="true" EnableRopCallerCheck="true" EnableRopSimExec="true"></Payload>
</AppConfig>
</root>

রিয়েল-লাইফ ইউজ এবং উদাহরণ

ঠিক আছে, যาวৎ, আমরা কভার করেছি নতুন UI, সিস্টেম এবং প্রোগ্রাম সেটিংস, নতুন exploit mitigations-এর ওভারভিউ, কীভাবে XML কনফিগারেশন ফাইল এক্সপোর্ট এবং ইম্পোর্ট করতে হয়, কীভাবে পুরনো EMET সেটিংস কনভার্ট করতে হয়, এবং এখন আমরা আমাদের app templates ইম্পোর্ট করব এবং সেগুলো ব্যবহার করব।

আমরা উপরের আমাদের app template ব্যবহার করব নতুন অ্যাপ্লিকেশনগুলো সিস্টেম লিস্টে দ্রুত এবং elegantভাবে যোগ করতে, মনে রেখে যে সিস্টেম সেটিংস সেরা তাদের ডিফল্টসে রেখে দেয়া উচিত, এবং সেগুলো ইতিমধ্যে অনেক কিছু কভার করে, প্লাস ছয়টি অন্যান্য মিটিগেশন আছে যা অতীতে কনফিগারেশনসহ étroitভাবে মেলে, এবং ভালো কাজ করার সম্ভাবনা। এটি MAIN কারণ যে আমি এই বেসলাইন বেছে নিলাম, প্লাস fonts, যেটা সিম্পল সেন্স করে, এবং অতীতে এই ইস্যুতে vulnerabilities-সহ hand in hand চলে।

অন্যান্য মিটিগেশনও আছে যেগুলো আমরা potentially enable করতে পারি, কিন্তু আপনি যদি ফুলি বুঝতে না পারেন আপনি কী করছেন, তবে আপনি আপনার প্রোগ্রামগুলো cripple করতে পারেন। কিছু কেসে, এমনকি সফটওয়্যার ডেভেলপাররাও জানবেন না তাদের অ্যাপ্লিকেশনগুলো কী ভুল করছে, তাই আপনি একটি সহজ উত্তর খুঁজে পাবেন না তা দিয়ে সম্ভব।

  • ACG, low integrity এবং remote images - okay হওয়া উচিত।
  • Code integrity guard - মাইক্রোসফট দ্বারা সাইন না করা পর্যন্ত images রান করবে না - এটি basically Windows 10 S। Recommended নয়।
  • Extension points - সফটওয়্যার কীভাবে রান করে সেটাতে সমস্যা create করার সম্ভাবনা বেশি।
  • Disable system calls - highly likely to cause problems।
  • Child processes - অবশ্যই প্রোগ্রামগুলো cripple করবে।
  • Handle usage - sloppily designed সফটওয়্যারসহ সমস্যা create করার সম্ভাবনা।

বাকিগুলো আমরা ইতিমধ্যে কভার করেছি - ছয়টি বেসিক, ছয়টি পুরনো মিটিগেশন, fonts, এবং potentially প্রথম bullet-এ লেখা তিনটি, বাকিগুলো best left alone।

নতুন কনফিগারেশন ইম্পোর্ট

এটি নিচের মতো করা হয়, আবার Powershell থেকে, এবং admin credentials-সহ:

Set-ProcessMitigation -PolicyFilePath .\config.xml

কনফিগারেশন ফাইল কন্টেন্ট

আমাদের টেমপ্লেট ভিত্তিক করে, আমরা ফাইলের ভিতরে অ্যাপ্লিকেশনগুলো যোগ করতে পারি। আপনি অথবা একটি সিঙ্গেল কনফিগারেশন তৈরি করতে পারেন যেটাতে چندین প্রোগ্রাম লিস্টেড থাকে এবং একবার ইম্পোর্ট করুন, অথবা per-app template বানিয়ে multiple imports করুন। কোই দিক পার্থক্য নেই।

আপনাকে যা বিবেচনা করতে হবে: ১) আপনি Security Center রান থাকা অবস্থাতেও করতে পারেন, কিন্তু এটি changes on the fly দেখাবে না; config একবার লোড হয় এবং/অথবা যতক্ষণ না আপনি UI-তে চেঞ্জ করেন ২) পুরনো app settings নতুনগুলো দিয়ে রিমুভ হবে।

এক্সপ্লয়াট প্রোটেকশন রান এবং ব্যবহার

আমি নিচের প্রোগ্রামগুলোর সাথে টেস্ট করলাম: Firefox, LibreOffice, VLC, IrfanView, Notepad++, এবং এগুলো কোনো সমস্যা ছাড়া চলে, updatesসহ। Google Chrome ANY mitigation enabled থাকলে রান করত না fonts ছাড়া - উভয় পেজ এবং এক্সটেনশন ক্র্যাশ করত। এটি EMET behavior-এর বিপরীত। যেন আমি বললাম, ما works এবং কী works not তার কোনো GOLDEN list নেই, কিন্তু আমি মনে করি আপনি ৭/১৫ এবং হয়তো ১০/১৫ মিটিগেশন ইনএবল করে রাখতে পারেন, code signing, child processes এবং system calls disabling আসলে unnecessarily। এতে শুধু দুটি মিটিগেশন বাকি থাকে যেগুলো closer look দরকার করতে পারে: extension points এবং handle usage। Pretty good, আমি বলব।

এডিট এবং টুইক কনফিগারেশন

আপনি সবসময় ফিরে যেতে পারেন এবং পরিবর্তন আনতে পারেন - GUI-ও 통해서 আপনার কনফিগারেশনের bulk ইম্পোর্ট করার পর, এবং এখন আপনার শুধু fine tuning দরকার। জিনিসগুলো কাজ না করলে, আপনি সবসময় একটি এন্ট্রি রিমুভ করে fresh শুরু করতে পারেন।

Overzealous প্রোটেকশন

আপনি যদি wild হয়ে যান, এবং আমি ট্রাই করেছিলাম, শুধু দেখতে কী হয়, তবে আপনি সম্পূর্ণ আপনার প্রোগ্রামগুলো cripple করতে পারেন, এবং সেগুলো রান করবে না। এটি করা সত্যিকারের সহজ, তাই please utterly careful থাকুন, এবং নিশ্চিত হন আপনি বুঝতে পারছেন আপনি কী করছেন। এটি একটি long-term investment। একবার ভালো করে করলে আপনি রোডের নিচে সমস্যা পাবেন না।

অতিরিক্ত পঠন

আপনি এই অফিসিয়াল মাইক্রোসফট আর্টিকেলগুলো চেক করতে চাইতে পারেন:

Apply mitigations to help prevent attacks through vulnerabilities

Customize exploit protection

উপসংহার

এসে যাওয়া। এক্সপ্লয়াট প্রোটেকশন মেকানিজম উইন্ডোজ ১০-এ কীভাবে ব্যবহার করতে হয় সেটা নিয়ে একটি খুব thorough, hands-on, real-life guide। আমরা শুধু blindly লিস্টে তাকিয়ে রাহিনি এবং wonder করলাম কী magic হচ্ছে behind the scene, আমরা behind the scene-এ গেলাম, এবং আমাদের ছাতিতে autographs পেলাম।

আরও টেকনিক্যাল নোটে, আমরা এক্সপ্লয়াট মেকানিজম, নতুন UI, সিস্টেম এবং প্রোগ্রাম সেটিংস, exploits-এর ধরন এবং সেগুলো roughly কী করে, কীভাবে XML কনফিগারেশন ফাইল এক্সপোর্ট এবং ইম্পোর্ট করতে হয়, আমরা আমাদের work template তৈরি করলাম, আমরা আমাদের পুরনো EMET settings কনভার্ট এবং ব্যবহার করলাম, আমরা EMET যা সুরক্ষা দিয়েছিলো সেটার level match করার চেষ্টা করলাম সেন এবং practical functionality maintien করলে অধিকাংশ প্রোগ্রাম এবং অধিকাংশ মিটিগেশনসহ। আমাদের প্রায় ৮০-৯০% coverage আছে জিনিসগুলো ভাঙা ছাড়া। এই প্রসেসে কোনো guarantee নেই, কিন্তু এটি যেকোনো conventional security software-র চেয়ে much ahead।

Mitigation protection মাইক্রোসফটের best product by far, এবং hopefully, তারা workflow improve করবে যাতে advanced users-এ বেশি accessible হয়। এই মুহূর্তে, আপনার এই গাইড আছে, এবং hopefully, এটি post-EMET world of mitigations-এ আপনার যাত্রা simpler এবং faster করবে। এবং আপনার apps এখনও কাজ করবে! See you.

আপনি এই টিউটোরিয়াল পছন্দ করলে, কিছু প্রেম ফিরিয়ে দিন, support Dedoimedo। ঠিক না?

Cheers.


  1. উইন্ডোজ ৭ KB4474419 আপডেট ফেইলচার সমাধান: ধাপে ধাপে গাইড

  2. সাম্প্রতিক উইন্ডোজ ১০ আপডেট এবং লোকাল অ্যাকাউন্ট কনফিগারেশন

  3. আল্টিমেট উইন্ডোজ টুইকার: উইন্ডোজ ১০ সেটিংস স্পিড ও প্রাইভেসির জন্য মাস্টার করুন

  4. উইন্ডোজ ১০-এ লিনাক্স বাশ চালান – ভার্চুয়াল মেশিন ছাড়া seamless ইন্টিগ্রেশন