HackCert
Intermediate 10 min read May 25, 2026

Hooking Detection: সিস্টেমের ইন্টারনাল প্রসেস মনিটরিং এবং ম্যালওয়্যারের হুক শনাক্তকরণ!

Hooking Detection-এর মাধ্যমে অপারেটিং সিস্টেমের ভেতরে লুকিয়ে থাকা ম্যালওয়্যারের API hook এবং inline patching শনাক্ত করার বিস্তারিত প্রক্রিয়া।

Mohammad Saiful Islam
Malware Analyst
share
Hooking Detection: সিস্টেমের ইন্টারনাল প্রসেস মনিটরিং এবং ম্যালওয়্যারের হুক শনাক্তকরণ!
Overview

আধুনিক ম্যালওয়্যার আর সাধারণ ফাইল হিসেবে ডিস্কে বসে থাকে না। বরং তারা অপারেটিং সিস্টেমের গভীরে প্রবেশ করে, বিভিন্ন বৈধ প্রসেসের কার্যপ্রণালী পরিবর্তন করে দেয় এবং নিজেদের কার্যক্রম এমনভাবে আড়াল করে যে প্রচলিত অ্যান্টিভাইরাস সফটওয়্যার পর্যন্ত তাদের ধরতে পারে না। এই কাজটি সম্পন্ন করার জন্য আক্রমণকারীরা যে কৌশল ব্যবহার করে তার নাম Hooking। আর সিকিউরিটি প্রফেশনাল হিসেবে আপনার দায়িত্ব হলো এই অদৃশ্য হুকগুলো শনাক্ত করা। Hooking Detection এমন একটি কারিগরি দক্ষতা যা প্রতিটি Endpoint Detection and Response বা EDR সলিউশনের প্রাণকেন্দ্রে অবস্থান করে।

এই বিস্তারিত আলোচনায় আমরা দেখব কীভাবে ম্যালওয়্যার সিস্টেম কলের প্রবাহ পরিবর্তন করে, কোন কোন ধরনের hooking technique বর্তমানে সক্রিয়, এবং সবচেয়ে গুরুত্বপূর্ণ — কীভাবে আপনি একজন ডিফেন্ডার হিসেবে এই hook-গুলোকে চিহ্নিত করতে পারেন।

Hooking-এর মৌলিক ধারণা

Hooking হলো এমন একটি প্রক্রিয়া যেখানে একটি প্রোগ্রাম অন্য প্রোগ্রামের ফাংশন কলের প্রবাহ পরিবর্তন করে নিজের কোডে রিডাইরেক্ট করে। উদাহরণস্বরূপ, যখন কোনো অ্যাপ্লিকেশন Windows API CreateFileW কল করে একটি ফাইল খোলার চেষ্টা করে, তখন একটি hooked সিস্টেমে সেই কল প্রথমে ম্যালওয়্যারের কোডে যায়। ম্যালওয়্যার সেই কল পরীক্ষা করে, প্রয়োজন অনুযায়ী আর্গুমেন্ট পরিবর্তন করে, এবং তারপরই সেটি প্রকৃত API ফাংশনের কাছে পাঠায়।

এই কৌশল মূলত legitimate উদ্দেশ্যে তৈরি হয়েছিল — যেমন debugging tool, performance monitoring, এবং compatibility layer তৈরির জন্য। Microsoft Detours এবং MinHook-এর মতো লাইব্রেরি ডেভেলপারদের এই কাজে সহায়তা করে। কিন্তু সাইবার অপরাধীরা এই প্রযুক্তিকে ব্যবহার করে credential theft, keylogging, এবং stealth persistence অর্জন করছে।

Hooking দুটি প্রধান ক্ষেত্রে কাজ করে: User Mode এবং Kernel Mode। User Mode hooking তুলনামূলক সহজ এবং এতে শুধুমাত্র একটি নির্দিষ্ট প্রসেসের মেমরিতে পরিবর্তন আনতে হয়। অন্যদিকে Kernel Mode hooking অপারেটিং সিস্টেমের সবচেয়ে নিচের স্তরে কাজ করে এবং এর প্রভাব পুরো সিস্টেমজুড়ে বিস্তৃত।

প্রধান Hooking Technique সমূহ

প্রথমেই আসে IAT Hooking বা Import Address Table Hooking। প্রতিটি Windows executable-এর একটি IAT থাকে যেখানে external DLL থেকে imported ফাংশনের ঠিকানা সংরক্ষিত থাকে। আক্রমণকারী এই টেবিলের entry পরিবর্তন করে তার নিজস্ব ফাংশনের ঠিকানা বসিয়ে দেয়। ফলে যখন প্রোগ্রাম সেই API কল করে, এটি আক্রমণকারীর কোডে গিয়ে পৌঁছায়।

দ্বিতীয় এবং সবচেয়ে জনপ্রিয় কৌশল হলো Inline Hooking। এখানে আক্রমণকারী টার্গেট ফাংশনের প্রথম কয়েকটি বাইট পরিবর্তন করে একটি JMP instruction বসিয়ে দেয় যা সরাসরি ম্যালিশাস কোডে যাওয়ার নির্দেশ দেয়। এই কৌশল অত্যন্ত শক্তিশালী কারণ এটি IAT-এর বাইরেও কাজ করে এবং যেকোনো ফাংশনকে টার্গেট করতে পারে।

SSDT Hooking বা System Service Descriptor Table Hooking হলো একটি kernel-level কৌশল। এটি Windows কার্নেলের সেই টেবিলকে পরিবর্তন করে যেখানে সমস্ত সিস্টেম সার্ভিসের পয়েন্টার রাখা হয়। PatchGuard প্রযুক্তি আসার পর এই কৌশল 64-bit সিস্টেমে কঠিন হয়ে পড়েছে, তবে পুরোনো সিস্টেমে এখনো কার্যকর।

আরেকটি আধুনিক কৌশল হলো IRP Hooking যেখানে I/O Request Packet-এর handler পরিবর্তন করা হয়। এটি বিশেষ করে file system filter driver-এর মাধ্যমে বাস্তবায়িত হয় এবং file operation monitoring বা manipulation-এর জন্য আদর্শ।

Detection-এর কৌশল ও প্রক্রিয়া

Hooking detection-এর প্রথম এবং মৌলিক পদ্ধতি হলো Memory Integrity Checking। এই পদ্ধতিতে আমরা চলমান প্রসেসের মেমরিতে loaded DLL-গুলোর কোড সেকশনকে ডিস্কে থাকা মূল DLL-এর সাথে তুলনা করি। যদি কোনো পার্থক্য পাওয়া যায়, তবে সম্ভাবনা প্রবল যে সেখানে inline hook বসানো হয়েছে।

একটি বাস্তবসম্মত detection স্ক্রিপ্ট নিম্নরূপ কাজ করে:

import pefile
import ctypes
from ctypes import wintypes

def check_hook(process_handle, module_name):
    pe = pefile.PE(f"C:\\Windows\\System32\\{module_name}")
    base_addr = get_module_base(process_handle, module_name)
    
    for section in pe.sections:
        if b'.text' in section.Name:
            disk_data = section.get_data()
            memory_data = read_process_memory(
                process_handle, 
                base_addr + section.VirtualAddress,
                len(disk_data)
            )
            if disk_data != memory_data:
                print(f"[!] Potential hook detected in {module_name}")
                analyze_difference(disk_data, memory_data)

দ্বিতীয় গুরুত্বপূর্ণ পদ্ধতি হলো Function Prologue Verification। প্রতিটি Windows API ফাংশনের একটি স্ট্যান্ডার্ড prologue থাকে যা সাধারণত mov edi, edi; push ebp; mov ebp, esp দিয়ে শুরু হয়। যদি কোনো ফাংশনের প্রথম bytes-এ JMP, CALL, বা PUSH/RET সিকোয়েন্স দেখা যায়, তবে সেটি inline hook-এর শক্তিশালী ইঙ্গিত।

IAT Integrity Check করার জন্য প্রতিটি loaded module-এর Import Address Table স্ক্যান করতে হবে। প্রতিটি entry-এর address যাচাই করতে হবে যে সেটি সঠিক module-এর address range-এর মধ্যে অবস্থিত কি না। যদি কোনো kernel32.dll ফাংশনের পয়েন্টার অন্য কোনো module-এ চলে যায় (বিশেষত unsigned module-এ), তবে সেটি IAT hook-এর প্রমাণ।

বাস্তব উদাহরণ ও কেস স্টাডি

২০২২ সালে আবিষ্কৃত হওয়া Cobalt Strike beacon-গুলোর একটি বিশাল অংশ Inline Hooking ব্যবহার করেছিল NtCreateUserProcess, NtAllocateVirtualMemory, এবং NtProtectVirtualMemory-এর মতো ntdll ফাংশনের উপর। গবেষকরা দেখেছেন যে এই beacon-গুলো EDR-এর hook-কে অতিক্রম করার জন্য nthml-এর unhooked copy লোড করত এবং তারপর নিজেরাই syscall execute করত।

আরেকটি উল্লেখযোগ্য ঘটনা হলো FinFisher spyware। এই commercial surveillance tool kernel-level rootkit হিসেবে কাজ করত এবং SSDT modification-এর মাধ্যমে file system activity লুকিয়ে রাখত। Kaspersky-এর গবেষকরা যখন এর hooking pattern বিশ্লেষণ করলেন, তখন তারা একটি অভিনব technique আবিষ্কার করলেন যেখানে hook-গুলো নির্দিষ্ট সময় অন্তর পরিবর্তিত হতো যাতে static detection signature কাজ না করে।

বাংলাদেশের একটি বৃহৎ আর্থিক প্রতিষ্ঠানে ২০২৩ সালে ঘটে যাওয়া একটি ঘটনায় দেখা গেছে যে আক্রমণকারীরা Windows-এর WriteProcessMemory এবং CreateRemoteThread API-তে inline hook বসিয়ে credential dumping tool-এর কার্যক্রম process injection-এর মাধ্যমে chain করেছিল। Incident response team তাদের কাস্টম YARA rule এবং memory forensics tool Volatility ব্যবহার করে এই hook-গুলো শনাক্ত করতে সক্ষম হয়।

Advanced Detection Tool ও Framework

Volatility Framework হলো memory forensics-এর জন্য সবচেয়ে শক্তিশালী open-source টুল। এর apihooks plugin চলমান প্রসেসের মেমরিতে user-mode এবং kernel-mode উভয় ধরনের hook শনাক্ত করতে পারে। কমান্ড সাধারণত এমন হয়:

vol.py -f memory_dump.raw --profile=Win10x64 apihooks
vol.py -f memory_dump.raw --profile=Win10x64 ssdt
vol.py -f memory_dump.raw --profile=Win10x64 driverirp

GMER একটি বিখ্যাত anti-rootkit টুল যা real-time-এ hooking activity শনাক্ত করতে পারে। এটি SSDT, IDT, IRP, এবং inline hook সব ধরনের anomaly রিপোর্ট করে। PCHunter এবং HackerDefender-এর মতো alternative টুলগুলোও এই কাজে কার্যকর।

আধুনিক EDR সলিউশন যেমন CrowdStrike Falcon, SentinelOne এবং Microsoft Defender for Endpoint kernel-level driver ব্যবহার করে চলমান প্রসেসের behavior monitor করে। তারা শুধু static hook detection-এ নির্ভর করে না, বরং machine learning model ব্যবহার করে anomalous API call pattern শনাক্ত করে।

PE-sieve এবং Hollows Hunter-এর মতো টুল বিশেষভাবে process hollowing এবং memory injection-এর সাথে যুক্ত hooking activity শনাক্ত করতে পারে। এগুলো প্রতিটি প্রসেসকে স্ক্যান করে এবং কোন region-এ মূল PE image-এর সাথে অসংগতি আছে তা চিহ্নিত করে।

Hardware-Assisted Detection

আধুনিক CPU-গুলোতে Intel CET বা Control-flow Enforcement Technology এবং AMD Shadow Stack-এর মতো hardware feature রয়েছে যা ROP এবং অনুরূপ আক্রমণ থেকে রক্ষা করে। Windows 11-এ Kernel Mode Hardware-enforced Stack Protection enable করলে অনেক ধরনের hooking attempt স্বয়ংক্রিয়ভাবে ব্যর্থ হয়।

Hypervisor-based introspection আরেকটি শক্তিশালী পদ্ধতি যেখানে একটি lightweight hypervisor চলমান operating system-কে নিচ থেকে পর্যবেক্ষণ করে। এই পদ্ধতিতে kernel-level malware-ও hypervisor-কে ফাঁকি দিতে পারে না কারণ এটি আরো নিচের privilege level-এ কাজ করে। VMI বা Virtual Machine Introspection-এর জন্য LibVMI এবং DRAKVUF-এর মতো open-source ফ্রেমওয়ার্ক ব্যবহৃত হয়।

ETW বা Event Tracing for Windows-এর kernel provider অনেক sensitive API call সম্পর্কে real-time event তৈরি করে। যদি আমরা ETW data-কে process behavior-এর সাথে cross-reference করি, তবে hook-induced anomaly সহজে শনাক্ত করা সম্ভব। Microsoft-এর Sysmon এই কৌশল ব্যবহার করেই কাজ করে।

প্রতিরোধ ও প্রতিকার

Hooking-এর বিরুদ্ধে সবচেয়ে কার্যকর প্রতিরক্ষা হলো একটি multi-layered approach গ্রহণ করা। প্রথমত, Windows 10 এবং 11-এ Virtualization-Based Security বা VBS এনাবল করুন। এটি hypervisor-protected code integrity বা HVCI-এর মাধ্যমে kernel-mode code-এ unauthorized modification প্রতিরোধ করে।

দ্বিতীয়ত, application whitelisting solution যেমন Windows Defender Application Control বা AppLocker ব্যবহার করুন। এগুলো unauthorized executable এবং DLL-কে লোড হতে বাধা দেয়, যা hooking-এর প্রাথমিক ধাপকে ব্যর্থ করে দেয়।

PowerShell এবং Office macro-এর মতো common attack vector-এর উপর strict policy প্রয়োগ করুন। অনেক hooking ম্যালওয়্যার এই path-এর মাধ্যমে initial access অর্জন করে। AMSI বা Antimalware Scan Interface-কে সঠিকভাবে কনফিগার করলে memory-resident malicious script শনাক্ত করা সম্ভব হয়।

EDR সলিউশন deploy করার সময় শুধু signature-based detection-এর উপর নির্ভর না করে behavioral analytics-কে গুরুত্ব দিন। আধুনিক EDR-গুলো process tree, API call sequence, এবং network behavior একত্রে বিশ্লেষণ করে। কোনো একটি indicator-এর পরিবর্তে multiple weak indicator-এর correlation থেকে hooking detection সম্ভব হয়।

Security team-কে নিয়মিত memory forensics-এর প্রশিক্ষণ দিন। Volatility, Rekall, এবং MemProcFS-এর মতো টুলের উপর দক্ষতা একজন incident responder-এর জন্য অপরিহার্য। Threat hunting exercise-এ বিশেষভাবে API hooking-এর indicator-এর উপর ফোকাস করুন।

ভবিষ্যৎ চ্যালেঞ্জ ও উন্নয়ন

ম্যালওয়্যার ডেভেলপাররা continuously নতুন evasion technique তৈরি করছে। Direct syscall এবং indirect syscall-এর মতো কৌশল EDR-এর user-mode hook-কে সম্পূর্ণভাবে বাইপাস করতে সক্ষম। এর প্রতিক্রিয়ায় detection community kernel-level telemetry এবং hardware-based monitoring-এর দিকে এগিয়ে যাচ্ছে।

eBPF-এর Windows version এবং Linux-এ এর পরিপক্ক বাস্তবায়ন আগামী দিনে hooking detection-কে একটি নতুন মাত্রা দেবে। এর মাধ্যমে kernel-level visibility পাওয়া যাবে third-party driver ছাড়াই, যা stability এবং security উভয়ই উন্নত করবে।

AI-চালিত behavior analysis ইতিমধ্যে অনেক EDR সলিউশনের অংশ। ভবিষ্যতে এই মডেলগুলো শুধু পরিচিত pattern নয়, বরং সম্পূর্ণ নতুন ধরনের hooking technique-ও real-time-এ শনাক্ত করতে সক্ষম হবে। এর জন্য বিপুল পরিমাণ training data এবং continuous model refinement প্রয়োজন।

Key Takeaways

Hooking Detection আধুনিক endpoint security-এর একটি অপরিহার্য উপাদান। আক্রমণকারীরা যত বেশি sophisticated হচ্ছে, ডিফেন্ডার হিসেবে আমাদেরও তত গভীরে গিয়ে operating system-এর internal workings বুঝতে হবে। শুধু একটি antivirus install করে নিশ্চিন্ত থাকার দিন শেষ। প্রতিটি সিকিউরিটি প্রফেশনালকে memory analysis, kernel internals, এবং API monitoring-এ দক্ষতা অর্জন করতে হবে। Hooking-এর বিরুদ্ধে লড়াই একটি ধারাবাহিক প্রক্রিয়া যেখানে নতুন কৌশলের জবাবে নতুন detection method উদ্ভাবন করতে হয়। সঠিক টুল, সঠিক জ্ঞান, এবং সঠিক প্রক্রিয়ার সমন্বয়ে আপনি আপনার অর্গানাইজেশনকে এই অদৃশ্য হুমকি থেকে কার্যকরভাবে সুরক্ষিত রাখতে পারবেন।

আপনার জ্ঞান যাচাই করতে প্রস্তুত? আজই HackCert-এ Hooking Detection MCQ Quiz-টি দিন!

Related articles

back to all articles