AMSI Bypass: উইন্ডোজের বিল্ট-ইন নিরাপত্তা ব্যবস্থা এড়ানোর পদ্ধতি!
Antimalware Scan Interface (AMSI) কীভাবে কাজ করে এবং আক্রমণকারীরা কোন কৌশলে এটি bypass করে? শিখুন বিস্তারিত প্রতিরোধসহ।
Windows 10 চালু হওয়ার সাথে সাথে Microsoft একটি নিরাপত্তা স্থাপত্যগত পদক্ষেপ নিয়েছিল যা আক্রমণকারীদের জীবন কঠিন করার লক্ষ্যে—Antimalware Scan Interface, সংক্ষেপে AMSI। এর মূল লক্ষ্য ছিল script-based ম্যালওয়্যার, fileless attack এবং in-memory payload-কে শনাক্ত করা, যেগুলো ঐতিহ্যবাহী file-based antivirus সহজে ধরতে পারত না। কিন্তু সাইবার নিরাপত্তার চিরকালীন বিড়াল-ইঁদুর খেলায় AMSI চালুর সাথে সাথেই গবেষকরা এর bypass কৌশল আবিষ্কার করতে শুরু করেন। আজ AMSI bypass আধুনিক offensive operation-এর একটি স্থায়ী বিষয়, এবং defender-দের কাছে এর জ্ঞান অপরিহার্য।
AMSI কী এবং কীভাবে কাজ করে
AMSI হলো Windows-এর একটি বিল্ট-ইন API যা যেকোনো অ্যাপ্লিকেশন বা scripting engine-কে অনুমতি দেয় execution-এর আগে content (যেমন PowerShell script, VBScript, JavaScript) registered AV/EDR engine-এ স্ক্যানিং-এর জন্য পাঠাতে। এই API-র প্রধান function AmsiScanBuffer এবং AmsiScanString। যখন PowerShell একটি script execute করতে যায়, প্রথমে এটি AmsiScanBuffer-এ পাঠানো হয়; AV যদি রায় দেয় content malicious, তবে execution আটকে যায়।
AMSI-র মূল শক্তি হলো এটি obfuscation-এর পরবর্তী স্তরে কাজ করে—অর্থাৎ যেই মুহূর্তে script decode বা decrypt হয়ে memory-তে execute হতে যায়, ঠিক সেই মুহূর্তে scan হয়। তাই attacker চেষ্টা করে যত layer-ই obfuscation দিক না কেন, শেষ মুহূর্তে আসল code memory-তে এসে যায় এবং AMSI সেটি দেখে ফেলে।
AMSI সমর্থিত ক্ষেত্রগুলোর মধ্যে রয়েছে—PowerShell (২.০ ব্যতীত সব version), VBScript, JScript, Office VBA macros, .NET Framework 4.8+ এর in-memory assembly load, WMI এবং User Account Control prompt। Microsoft Defender, এবং বহু third-party AV/EDR যেমন CrowdStrike, SentinelOne—সবাই AMSI প্রোভাইডার হিসেবে register করতে পারে।
কেন AMSI Bypass গুরুত্বপূর্ণ আক্রমণকারীদের কাছে
ম্যালওয়্যার অপারেটর বা Red Team operator যখন PowerShell Empire, Cobalt Strike বা custom payload চালাতে চায়, তাদের প্রথম বাধা প্রায়ই AMSI। বিশেষ করে in-memory PowerShell load-এ AMSI সবচেয়ে কার্যকর। তাই আক্রমণকারীরা নানা কৌশলে AMSI-কে নিষ্ক্রিয় করার চেষ্টা করে।
AMSI bypass সাধারণত PowerShell process-এর নিজস্ব memory-তে patch প্রয়োগ করে, যাতে পরবর্তী কোনো script আর AV-তে পাঠানো না হয়। যেহেতু এই কাজ user-mode-এ ঘটে এবং current process-এর memory পরিবর্তনে administrator privilege লাগে না, এটি stealthy এবং ব্যাপকভাবে ব্যবহৃত।
প্রধান AMSI Bypass কৌশল
বছরের পর বছর ধরে গবেষকরা বহু কৌশল আবিষ্কার ও প্রকাশ করেছেন।
Memory Patching (amsi.dll-এ): সবচেয়ে ক্লাসিক কৌশল হলো amsi.dll-এর AmsiScanBuffer ফাংশনের প্রথম কয়েকটি byte memory-তে modify করা যাতে এটি সবসময় "clean" রিটার্ন করে (AMSI_RESULT_CLEAN, value 0)। Matt Graeber-এর "amsiInitFailed" trick-এ AmsiUtils class-এর internal field-এ true সেট করে এই কাজ একলাইনে করা যেত—যদিও এটি Microsoft বহু আগে patch করেছে।
Hardware Breakpoint Bypass: Debug register ব্যবহার করে AmsiScanBuffer call intercept করা এবং arbitrary return value সেট করা। এই কৌশল memory write detection bypass করে।
Reflection-based Bypass: .NET reflection ব্যবহার করে System.Management.Automation namespace-এর private field manipulate করা।
COM Hijacking: AMSI provider COM registration manipulate করে fake provider লোড করানো।
Unhooking: EDR যেগুলো amsi.dll-এ inline hook বসায়, সেগুলোকে DLL-এর on-disk copy থেকে original byte পড়ে memory restore করে bypass করা।
Patch in CLR: .NET-এ AMSI scan trigger হয় System.Management.Automation.AmsiUtils ক্লাসের মাধ্যমে। এই ক্লাসের internal handle invalidate করে পরবর্তী scan-এ failure ঘটানো।
Forked Process Approach: Original signed PowerShell ব্যবহার না করে একটি custom .NET host তৈরি করে PowerShell runspace-এ AMSI-মুক্ত script execute করা।
Obfuscation এবং Encoding: AMSI-র signature-ভিত্তিক detection বিভ্রান্ত করতে কোডে variable name randomization, string concatenation, character replacement (যেমন Invoke-Mimikatz → "Invoke-Mimi"+"katz"), Base64 layering, এবং custom encryption প্রয়োগ। শুধু obfuscation একা যথেষ্ট নয়, কারণ execution time-এ AMSI আসল content দেখে—কিন্তু signature-evasion-এ এটি সহায়ক।
Process Injection: AMSI-যুক্ত process-এ payload না দিয়ে অন্য process-এ inject করা যেখানে AMSI active নয় বা integrated নয়।
প্রতিটি কৌশল প্রকাশিত হওয়ার পর Microsoft এবং AV ভেন্ডর দ্রুত detection signature যোগ করে। ফলে AMSI bypass-এর জগৎ চিরন্তন বিবর্তনে রয়েছে—আজকের কৌশল আগামীকাল detected হবে।
বাস্তব প্রভাব
বিভিন্ন penetration test report-এ দেখা যায় যে আধুনিক Windows endpoint-এ Mimikatz বা PowerShell Empire চালানোর জন্য AMSI bypass প্রায় বাধ্যতামূলক। Threat group যেমন APT29, FIN7, এবং বহু ransomware affiliate তাদের toolkit-এ AMSI bypass primitive অন্তর্ভুক্ত করেছে।
বিভিন্ন পাবলিক incident report-এ দেখা গেছে যে একটি successful AMSI bypass এর পর আক্রমণকারীরা mass credential dump, lateral movement এবং persistent backdoor স্থাপন—সব কিছু in-memory, কোনো disk artifact ছাড়াই সম্পাদন করতে পেরেছে।
বিশেষভাবে উল্লেখযোগ্য, কিছু advanced operator AMSI-কে সরাসরি bypass না করে এটি ব্যবহার করে নিজস্ব ম্যালওয়্যারের জন্য signature-based competitor product শনাক্ত করত—একটি বিরল কিন্তু সৃজনশীল ব্যবহার।
প্রতিরোধ ও Defender-এর কৌশল
Defender হিসেবে AMSI bypass সম্পর্কে সচেতনতা এবং সঠিক monitoring অপরিহার্য।
Comprehensive Logging: PowerShell Script Block Logging (Event ID 4104), Module Logging এবং Transcription enable করা। এমনকি AMSI bypass হলেও script block log-এ অনেক সময় malicious content ধরা পড়ে।
AMSI Integration with EDR: শুধু built-in Microsoft Defender-এর উপর নির্ভর না করে এমন EDR ব্যবহার করা যেটি AMSI-র বাইরেও behavioral detection প্রদান করে—যেমন memory scanning, ETW-based monitoring, kernel callback।
ETW Monitoring: Event Tracing for Windows ব্যবহার করে .NET assembly load, PowerShell scriptblock এবং WMI activity পর্যবেক্ষণ। AMSI bypass হলেও ETW থেকে data সংগ্রহ চলবে।
Hardened PowerShell: Constrained Language Mode, AppLocker বা Windows Defender Application Control (WDAC) ব্যবহার করে script execution capability সীমিত করা।
PowerShell v2 Disable: Legacy PowerShell v2 AMSI সমর্থন করে না, তাই attacker প্রায়ই v2 fall-back করতে চেষ্টা করে। এটি domain-wide disable করা।
Suspicious Pattern Detection: "AmsiUtils", "amsiInitFailed", "AmsiScanBuffer" ইত্যাদি keyword PowerShell scriptblock log-এ flag করা।
Memory Integrity Protection: Hypervisor-protected Code Integrity (HVCI) এবং Credential Guard enable করে memory-level tampering কঠিন করা।
Kernel-Level EDR Hooks: User-mode AMSI bypass-এর বিরুদ্ধে kernel-level visibility প্রদানকারী EDR ব্যবহার, যা user-mode hook unhook হলেও দেখতে পায়।
Behavioral Analytics: PowerShell launch করেই LSASS-এ access করা, বা suddenly large amount of base64-encoded content execute করা—এই ধরনের behavior-ভিত্তিক alert।
Threat Hunting: নিয়মিত hunt চালানো—কোন কোন PowerShell process আছে যেগুলো long-running, parent-child relationship অস্বাভাবিক, বা amsi.dll-এ unusual memory permission।
Patch Management: সর্বদা latest Windows update প্রয়োগ—Microsoft নিয়মিত পরিচিত AMSI bypass-এর বিরুদ্ধে mitigation যোগ করে।
AMSI Windows ecosystem-এ একটি গুরুত্বপূর্ণ defensive abstraction, কিন্তু এটি কোনো absolute সমাধান নয়। যেখানে AV কাজ করছে, AMSI সেই AV-কে সাহায্য করে—আর যেখানে AMSI bypass হচ্ছে, সেখানে আরো গভীর defense layer প্রয়োজন। আক্রমণকারী এবং defender-এর মধ্যে এই চিরন্তন কৌশলের লড়াই থামবে না। তবে এই লড়াই থেকে শেখার সবচেয়ে বড় শিক্ষা হলো—একটিমাত্র security control-এর উপর কখনো নির্ভর করা যাবে না। AMSI, EDR, application allowlisting, network segmentation, এবং সক্রিয় threat hunting—সব মিলিয়ে যে defense-in-depth, সেটিই আধুনিক Windows endpoint-কে প্রকৃত অর্থে সুরক্ষিত রাখে।
আপনার জ্ঞান যাচাই করতে প্রস্তুত? আজই HackCert-এ AMSI Bypass MCQ Quiz-টি দিন!
Related articles
COM Hijacking: System Hacking Using Windows Internal Processes
14 min
ETW Bypassing: How Cybercriminals Disable Windows Event Logs to Stay Hidden
12 min
5G Security: Unveiling Cyber Attack Risks in Modern Networks and Mitigation Strategies
10 min
Active Directory: Why the Heart of the Corporate Network is the Ultimate Hacker Target
11 min

