Memory Analysis: র্যাম ডাম্প বিশ্লেষণ করে লুক্কায়িত ম্যালওয়্যার এবং হ্যাকিং শনাক্তকরণ!
Volatility এবং Memory Analysis কৌশল ব্যবহার করে Fileless Malware, Rootkit এবং Process Injection শনাক্তকরণ।
আধুনিক ম্যালওয়্যার এবং Advanced Persistent Threat বা APT গ্রুপগুলো Disk-এ যত কম Footprint রাখা যায় তত কম রাখার চেষ্টা করে। Fileless Malware, Process Injection, Reflective DLL Loading, এবং In-Memory PowerShell Payload - এই সব কৌশল Traditional Disk-Based Forensics-কে অকার্যকর করে দেয়। কিন্তু এই Threat-গুলো একটি জায়গায় তাদের Trace রেখে যায় - System-এর RAM। Memory Analysis বা RAM Dump Investigation আজ DFIR পেশাজীবীদের সবচেয়ে শক্তিশালী হাতিয়ার।
এই বিস্তৃত প্রবন্ধে আমরা Memory Analysis-এর মৌলিক ধারণা, RAM Acquisition পদ্ধতি, Volatility Framework-এর ব্যবহার, ম্যালওয়্যার শনাক্তকরণ কৌশল, এবং বাস্তব Investigation Workflow আলোচনা করব। Incident Response এবং Malware Analyst-দের জন্য এই Skill অপরিহার্য।
RAM-এর গঠন এবং Forensic মূল্য
Random Access Memory বা RAM Computer-এর Volatile Storage, যেখানে Running Process-এর Code, Data, এবং Operating System State থাকে। Power Off হলে এই Data হারিয়ে যায় (যদিও Cold Boot Attack-এর মাধ্যমে কিছু সেকেন্ড Persistence সম্ভব)। তাই Live System থেকে RAM Acquisition একটি Time-Critical Operation।
RAM-এ অমূল্য তথ্যের ভাণ্ডার থাকে। Running Process List, Network Connection, Open File, Loaded DLL, Decrypted String, Encryption Key, Clipboard Content, এবং User-এর সাম্প্রতিক Activity - এই সব Memory-তে Available। আধুনিক Malware-এর Decryption Routine চলার পরে Plaintext Payload Memory-তে দৃশ্যমান হয়, যা Disk-এ কখনো ছিল না।
Operating System Memory-কে Virtual Address Space-এ Organize করে। প্রতিটি Process-এর নিজস্ব Virtual Address Space, যা Page Table-এর মাধ্যমে Physical Memory-তে Map হয়। Kernel Memory একটি Shared Region, যা সব Process-এর Address Space-এর উপরের অংশে থাকে। Memory Analysis-এ এই Structure বোঝা অপরিহার্য।
Page File (Windows-এর pagefile.sys বা Linux-এর Swap) Memory-র Extension হিসেবে কাজ করে। Inactive Page Disk-এ Swap হয়, যা RAM Dump-এ অনুপস্থিত থাকে। Complete Memory Analysis-এর জন্য RAM এবং Page File উভয়ই সংগ্রহ করা উচিত।
Memory Acquisition Tool
Live System থেকে Memory Dump সংগ্রহের জন্য বিভিন্ন Tool রয়েছে। Windows-এর জন্য FTK Imager (AccessData), DumpIt (Comae), Magnet RAM Capture, এবং WinPmem (Velocidex) জনপ্রিয়। প্রতিটি Tool Kernel Driver Install করে Physical Memory পড়ে এবং একটি File-এ Write করে।
DumpIt একটি সহজ, Single-File Executable যা Run করলে স্বয়ংক্রিয়ভাবে Local Drive-এ একটি .raw File তৈরি করে। Magnet RAM Capture একটি GUI প্রদান করে এবং Microsoft Crash Dump Format-এও Save করতে পারে। WinPmem Open Source এবং Velociraptor-এর মতো DFIR Platform-এর সাথে Integrated।
Linux-এর জন্য LiME (Linux Memory Extractor) এবং AVML (Acquire Volatile Memory for Linux, Microsoft কর্তৃক তৈরি) Standard Tool। macOS-এর জন্য বিশেষ Tool সীমিত - OSXPMem এবং MacQuisition (Cellebrite Commercial) Available, কিন্তু আধুনিক Apple Silicon-এ Memory Acquisition প্রায় অসম্ভব।
Cloud এবং Virtual Environment-এ Memory Acquisition ভিন্ন। VMware vmss2core Tool VMware-এর Suspended VM থেকে Memory Extract করে। Hyper-V-এর Saved State, KVM/QEMU-এর memory-backend, এবং AWS-এর Snapshot এই কাজে ব্যবহারযোগ্য।
Memory Acquisition-এর সময় Forensic Soundness বজায় রাখা গুরুত্বপূর্ণ। Tool নিজেই Memory ব্যবহার করে, তাই Pristine Capture অসম্ভব, কিন্তু Footprint যথাসম্ভব কম রাখার চেষ্টা করতে হয়। Hash (SHA-256) প্রতিটি Dump-এর জন্য Compute করে Integrity যাচাই করা হয়।
Volatility Framework
Volatility হলো Memory Forensics-এর De Facto Open Source Framework। 2007 সালে Aaron Walters প্রতিষ্ঠা করেছিলেন, এবং বর্তমানে Volatility 3 Python 3-এ লেখা এবং Modern Architecture সমর্থন করে। Volatility Foundation এর Development পরিচালনা করে।
Volatility-র Architecture Plugin-Based। প্রতিটি Plugin একটি Specific Analysis Task সম্পাদন করে। Windows, Linux, এবং macOS-এর জন্য Symbol Table এবং Profile সরবরাহ করা হয়, যা Operating System Version অনুযায়ী Memory Layout বোঝায়।
Volatility 3 Volatility 2-এর Successor এবং Architecture-এ মৌলিক পরিবর্তন এনেছে। Profile-এর বদলে Symbol Table (যা PDB File থেকে Auto-Generated) ব্যবহার করে। এটি নতুন Windows Build-এর সাথে দ্রুত Adaptation সম্ভব করেছে।
মৌলিক Volatility Workflow হলো - vol.py -f memory.raw windows.info দিয়ে Profile Identify করা, তারপর Specific Plugin Run করা। প্রতিটি Plugin-এর Output সাধারণত Table Format-এ আসে এবং -r json বা -r csv দিয়ে Machine-Readable Format-এ Export করা যায়।
প্রধান Volatility Plugin এবং তাদের ব্যবহার
windows.pslist Plugin Running Process তালিকা করে EPROCESS Structure থেকে। তবে আক্রমণকারী Direct Kernel Object Manipulation বা DKOM-এর মাধ্যমে এই List থেকে Process Hide করতে পারে। তাই windows.psscan-ও Run করা উচিত, যা Memory Scan করে Hidden Process-ও খুঁজে বের করে।
windows.pstree Parent-Child Relationship দেখায়, যা Suspicious Process Lineage শনাক্ত করতে সাহায্য করে। উদাহরণস্বরূপ, winword.exe থেকে powershell.exe বা cmd.exe Spawn হওয়া একটি Strong Indicator Malicious Macro Execution-এর।
windows.netscan এবং windows.netstat Active Network Connection দেখায়। C2 Communication-এর Indicator হতে পারে - Unusual Foreign IP, Suspicious Port, এবং Established Connection যা Persistent Process-এর সাথে যুক্ত। ESTABLISHED TCP Connection প্রতিটি যত্নসহকারে পর্যালোচনা করা উচিত।
windows.malfind Suspicious Memory Region শনাক্ত করে - Page Permission Read-Write-Execute, কিন্তু কোনো On-Disk File-এর সাথে Map নেই। এটি Process Injection-এর Classic Indicator। MZ Header (0x4D 0x5A) এবং PE Signature এই Region-এ পাওয়া যাওয়া আরও Confirming।
windows.dlllist এবং windows.handles প্রতিটি Process-এর Loaded DLL এবং Open Handle দেখায়। Unusual DLL Path (যেমন C:\Users\Public বা %TEMP%-এর DLL), অস্বাক্ষরিত DLL, বা সন্দেহজনক Handle (যেমন LSASS-এ Handle যা Mimikatz-এর Indicator) এই Plugin-এ ধরা পড়ে।
windows.cmdline প্রতিটি Process-এর Command Line দেখায়। Encoded PowerShell (FromBase64String), Living-off-the-Land Binary-এর সন্দেহজনক ব্যবহার (certutil -urlcache, mshta.exe), এবং Suspicious Argument এই Plugin-এ স্পষ্ট হয়।
Code Injection শনাক্তকরণ
Process Injection আধুনিক ম্যালওয়্যার-এর সবচেয়ে সাধারণ Evasion কৌশল। Classic DLL Injection, Process Hollowing, Process Doppelgänging, Atom Bombing, Module Stomping - প্রতিটি কৌশল আলাদা Pattern রেখে যায়।
DLL Injection-এ একটি Process অন্য Process-এর Memory-তে DLL Load করে। LoadLibrary-এর সাথে CreateRemoteThread API ব্যবহৃত হয়। Memory-তে এই DLL দৃশ্যমান কারণ এটি Standard PE Loader-এর মাধ্যমে Loaded হয়েছে। dlllist Plugin দিয়ে শনাক্ত করা যায়।
Reflective DLL Injection আরও Stealthy - DLL কে Standard LoadLibrary ব্যবহার না করে Manually Map করা হয়। এটি dlllist-এ দৃশ্যমান নয়, কিন্তু Memory-তে PE Header এবং Section রেখে যায়। malfind এই Pattern শনাক্ত করতে পারে।
Process Hollowing-এ একটি Legitimate Process Suspended State-এ Create হয়, এর Memory Unmap করা হয়, এবং Malicious Code Map করা হয়। PEB-এর ImagePathName এখনও Original Path দেখায়, কিন্তু Actual Code আলাদা। windows.hollowfind (Plugin) এই Anomaly শনাক্ত করে।
Process Doppelgänging Transactional NTFS ব্যবহার করে একটি File Create করে, তা Modify করে, এবং Process Create করার পরে Transaction Rollback করে। On-Disk File স্বাভাবিক দেখায়, কিন্তু In-Memory Process অন্য Code চালায়। এটি শনাক্ত করতে Image File Path এবং In-Memory PE Compare করতে হয়।
Rootkit Detection
Kernel-Level Rootkit Operating System-এর Internal Data Structure Modify করে নিজেদের লুকায়। DKOM (Direct Kernel Object Manipulation)-এর মাধ্যমে EPROCESS List থেকে Process Unlink করা একটি ক্লাসিক Rootkit কৌশল।
windows.psscan PsLoadedModuleList-এর বাইরে Pool Memory Scan করে Hidden Process খুঁজে বের করে। যদি pslist এবং psscan-এ পার্থক্য থাকে, এটি Rootkit-এর Strong Indicator। windows.thrdscan Thread Scan করে, যা আরো আরেকটি যাচাই করার পদ্ধতি।
windows.modules এবং windows.modscan Loaded Kernel Module তুলনা করে। কোনো Driver যদি Modscan-এ দেখা যায় কিন্তু Modules-এ না, তাহলে এটি Hidden Driver। SSDT Hook এবং IDT Hook শনাক্ত করার জন্য Volatility 2-এ বিশেষ Plugin ছিল; Volatility 3-এ এই কাজ চলমান।
Bootkit এবং UEFI Rootkit Memory-তে কম দৃশ্যমান, কারণ এরা OS Boot হওয়ার আগে নিজেদের Load করে। Firmware Analysis-এর জন্য আলাদা Tool যেমন CHIPSEC এবং UEFITool ব্যবহার করতে হয়।
Credential Recovery
Memory-তে অমূল্য Credential থাকে। LSASS Process-এর Memory-তে NTLM Hash, Kerberos Ticket, এবং কখনও Plaintext Password। Memory Dump থেকে Volatility-র সাথে Mimikatz-এর Workflow চালানো যায়, কিন্তু Pypykatz আরও সহজ একটি বিকল্প।
Pypykatz Python-এ লেখা একটি Mimikatz-Compatible Tool যা Memory Dump থেকে সরাসরি Credential Extract করতে পারে। pypykatz lsa minidump lsass.dmp কমান্ড LSASS-এর Mini Dump থেকে সব Credential বের করে। এটি Offline এবং Detection ছাড়াই কাজ করে।
ব্রাউজার Credential, Wi-Fi Password, এবং VPN Credential-ও Memory-তে পাওয়া যেতে পারে। Volatility-র windows.envars Plugin Environment Variable দেখায়, যেখানে কখনো কখনো Hardcoded Credential থাকে। windows.cmdline-এ Process Argument-এ Plaintext Password পাওয়া যেতে পারে।
Encryption Key-ও Memory Scan করে পাওয়া যেতে পারে। AES Key, RC4 Key, এবং RSA Private Key-এর Specific Pattern রয়েছে যা findaes, bulk_extractor-এর মতো Tool দিয়ে Search করা যায়। Ransomware-এর Encryption Key Memory-তে থাকলে File Decryption সম্ভব।
Network Artifact Analysis
Memory-তে Network Activity-এর বহু Trace থাকে। windows.netscan সমস্ত Active TCP এবং UDP Connection দেখায়। DNS Cache windows.dnscache-এ Available, যেখানে সাম্প্রতিক Resolved Domain তালিকা পাওয়া যায়।
C2 Communication শনাক্তকরণে এই তথ্য অমূল্য। Beacon Domain, IP Address, এবং Port সরাসরি দেখা যায়। Memory-তে HTTP Request Header, User-Agent String, এবং Response Cache-ও পাওয়া যেতে পারে।
bulk_extractor Tool Memory Dump থেকে Email Address, URL, IP Address, এবং Credit Card Number Extract করতে পারে। এটি Raw Memory-তে Pattern Match করে, Operating System Structure বোঝার প্রয়োজন নেই। বড় Dump-এর Initial Triage-এ এটি দ্রুত Result দেয়।
YARA Rule Memory Dump-এর বিরুদ্ধে Run করা যায়। Volatility-র yarascan Plugin (Vol 2) এবং Vol 3-এর Equivalent Functionality প্রতিটি Process-এর Memory-তে YARA Rule Apply করে। Known Malware-এর Family Identification এই পদ্ধতিতে সহজ।
Linux এবং macOS Memory Analysis
Linux Memory Analysis Windows-এর মতই Workflow অনুসরণ করে, কিন্তু Different Plugin। linux.pslist, linux.netstat, linux.psaux Equivalent Windows Plugin-এর। Loadable Kernel Module শনাক্তকরণে linux.lsmod এবং linux.check_modules।
Linux-এ Symbol Table Critical। প্রতিটি Kernel Version-এর জন্য আলাদা Symbol Table প্রয়োজন। dwarf2json Tool Kernel Debug Symbol থেকে Volatility-Compatible Symbol Generate করে। অনেক Linux Distribution Pre-Built Symbol সরবরাহ করে।
macOS-এর জন্য Volatility সমর্থন সীমিত, বিশেষ করে Apple Silicon-এ। mac.pslist, mac.netstat, mac.proc_maps-এর মতো Plugin আছে, কিন্তু আধুনিক macOS Version-এ এদের কার্যকারিতা সীমিত। MacQuisition (Cellebrite) Commercial বিকল্প।
Container Forensics একটি নতুন ক্ষেত্র। Docker Container-এর Memory Host-এর Memory-তে যুক্ত। Container-Specific Process এবং Network Connection শনাক্তকরণে Volatility-র cgroup Awareness প্রয়োজন।
Investigation Workflow এবং Triage
একটি Live Incident-এ Memory Analysis-এর Standard Workflow নিম্নরূপ। প্রথমে Memory Acquisition - যত দ্রুত সম্ভব, পরিবেশকে কম Disturb করে। দ্বিতীয়ত, Hash Verification এবং Storage on Forensic-Sound Media।
তৃতীয়ত, Initial Triage - Process List, Network Connection, Loaded DLL-এর Quick Look। Suspicious Pattern চিহ্নিত করা - Unusual Parent-Child, Anomalous Network Connection, Newly Created Process।
চতুর্থত, Deep Analysis - malfind, dlllist, cmdline দিয়ে Specific Suspicion Investigate করা। YARA Rule Apply করা পরিচিত Threat-এর জন্য। Process Memory Dump করে Static Analysis-এ পাঠানো।
পঞ্চমত, Timeline Reconstruction - Memory Artifact থেকে User Activity, Process Creation Time, এবং Event Sequence Reconstruct করা। Disk-Based Forensic Data-এর সাথে Correlate করা।
ষষ্ঠত, Reporting - Findings Documentation, IoC Extraction, এবং MITRE ATT&CK Technique Mapping। C2 IP, Suspicious Hash, এবং Persistence Mechanism-এর Comprehensive List।
প্রতিরোধ ও প্রতিকার
Memory Analysis একটি Reactive ক্ষেত্র, কিন্তু এর শিক্ষা Proactive Defense-এ ব্যবহার করা যায়। EDR সমাধান যা Memory-Based Threat Detect করে যেমন CrowdStrike Falcon, Microsoft Defender for Endpoint, এবং SentinelOne প্রায় Real-Time-এ এই Analysis সম্পাদন করে।
Memory Acquisition Capability প্রতিটি Incident Response Team-এর Toolkit-এ থাকা উচিত। WinPmem, AVML, এবং DumpIt-এর মতো Tool Standby রাখা। Velociraptor-এর মতো DFIR Platform Distributed Memory Acquisition সমর্থন করে।
Regular Tabletop Exercise এবং Purple Team Engagement-এ Memory Analysis-এর Practice অন্তর্ভুক্ত করা। Atomic Red Team-এর Test ব্যবহার করে Process Injection, Reflective DLL Loading-এর মতো Technique Trigger করে Detection যাচাই করা।
SANS FOR526 Course (Advanced Memory Forensics and Threat Detection) এই বিষয়ে গভীর প্রশিক্ষণ সরবরাহ করে। 13Cubed-এর YouTube Series এবং Volatility Foundation-এর Documentation চমৎকার Free Resource।
Memory Analysis আধুনিক DFIR-এর সবচেয়ে শক্তিশালী এবং অপরিহার্য Skill-গুলোর একটি। Fileless Malware, Process Injection, Rootkit, এবং In-Memory Threat-এর বিরুদ্ধে এটি একমাত্র কার্যকর Investigation Method। Volatility Framework, Memory Acquisition Tool, এবং Pypykatz-এর মতো Specialized Utility এই কাজকে সহজ করেছে, কিন্তু গভীর Skill Development-এর জন্য সময় এবং Practice প্রয়োজন। SANS FOR526, Volatility Foundation-এর Resource, এবং OpenSecurityTraining-এর Free Course এই দক্ষতা অর্জনের চমৎকার পথ। প্রতিটি Incident Responder-এর Toolkit-এ Memory Analysis থাকা উচিত, কারণ আধুনিক হুমকি Disk-এ যেতে চায় না - কিন্তু Memory-তে তাদের যেতেই হবে।
আপনার জ্ঞান যাচাই করতে প্রস্তুত? আজই HackCert-এ Memory Analysis MCQ Quiz-টি দিন!
Related articles
Access Control: Evaluating the Security of Your Corporate System Privileges
8 min
Active Defense: Proactive Strategies to Thwart Advanced Cyber Attacks
9 min
AD Trusts: How Hackers Weaponize Network Trust to Hijack Systems
8 min
Agentic AI: The Role of Autonomous Artificial Intelligence in Modern Cybersecurity
8 min

