آموزش Linux Malware Development و ELF
مدرس: علی سلطانی
Linux Malware Development با تدریس علی سلطانی، پیوند میان برنامهنویسی سطح سیستم، ساختار فایل اجرایی و رفتار قابل مشاهده در لینوکس را بررسی میکند. هدف این است که پژوهشگر امنیت بتواند منطق یک نمونه آزمایشگاهی را بفهمد، رفتار آن را در سطح Process و Syscall تحلیل کند و آثارش را به شواهد قابل استفاده برای تحلیل بدافزار و Detection تبدیل کند.
پایه دوره، زبان C، مدل حافظه پردازش، ELF و چرخه Compile و Link است. سپس Dynamic Loader، Shared Library، ارتباط libc و Syscall، File Descriptor، Signal، IPC و Socket Programming بررسی میشوند. تمرینها از برنامههای کوچک و رفتارهای محدود آغاز میشوند تا رابطه کد، Binary، فراخوانی سیستم و لاگ قابل مشاهده روشن باقی بماند. Debugging و بررسی خطا بخش اصلی فرایند هستند، نه مرحلهای فرعی پس از نوشتن کد.
در بخش پژوهش رفتاری، خانوادههای Persistence، Loading و Instrumentation از نظر مکانیزم، سطح دسترسی و آثار دفاعی تحلیل میشوند. ساختار Rootkit و تفاوت User Space و Kernel Space نیز در سطح معماری و شواهد مطرح میشود. سناریوی نهایی روی نمونه محدود آزمایشگاهی، ثبت تغییرات فایل و پردازش و شبکه و طراحی معیار شناسایی تمرکز دارد. نتیجه، توانایی توضیح رفتار و محدودیت نمونه با شواهد فنی و گزارش پژوهشی قابل بازبینی است.
مهارتهایی که در این دوره دنبال میکنید
- تحلیل رابطه کد C، فایل ELF و اجرای پردازش
- بررسی Syscall، حافظه، Signal و File Descriptor
- خواندن Dynamic Dependency و چرخه بارگذاری Library
- Debug کردن نمونه آزمایشگاهی و تحلیل خطا
- ثبت شواهد File، Process و Network هر رفتار
- طراحی منطق شناسایی و گزارش محدودیت پژوهش
پیشنیازهای فنی
- تسلط به لینوکس، Process، Permission و خط فرمان
- دانش C شامل Pointer، Struct، Memory Allocation و Function
- آشنایی با x86-64 و Assembly در سطح خواندن دستورهای پایه
- دانش مقدماتی Socket، TCP/IP و تحلیل فایل اجرایی
ابزارها و منابع فنی مسیر آموزش
- GCC یا Clang و ابزارهای Build
- GDB برای Debugging و بررسی حافظه
- readelf، objdump، nm و strings
- strace، ltrace و ابزارهای پایش Process/Socket
- YARA و لاگهای auditd برای تحلیل شواهد
برنامه آموزشی و سرفصلهای تخصصی
1. آزمایشگاه پژوهش و مدل اجرای برنامه لینوکس
- تفکیک محیط نمونه، حسگر و تحلیلگر
- Snapshot، محدودسازی ارتباط و بازگردانی وضعیت
- تعریف رفتار نمونه و معیار توقف تمرین
- ثبت Hash، نسخه Build و خروجی آزمایش
2. C برای برنامهنویسی سطح سیستم
- Pointer، Struct و مدیریت حافظه
- بررسی Buffer، طول ورودی و مدیریت خطا
- کار با File Descriptor و ورودی/خروجی
- خواندن Return Value و errno در مسیر اجرا
3. ELF Internals؛ Header، Segment و Section
- تحلیل ELF Header و Program Header
- تفاوت Section و Segment در تحلیل و بارگذاری
- شناخت Symbol، Relocation و Dynamic Section
- بررسی Entry Point و Dependency با readelf
4. Compile، Link و Dynamic Loader
- تفاوت Static و Dynamic Linking
- نقش Shared Object و مسیر جستوجوی Library
- شناخت PLT و GOT در حد تحلیل Binary
- مقایسه Symbolهای Debug و Binary بدون Symbol
5. Process، Syscall و مدل دسترسی
- رابطه libc Wrapper و System Call
- شناخت fork، exec و چرخه عمر Process
- تحلیل UID، EUID و Linux Capability
- بررسی اثر Namespace و Seccomp بر رفتار برنامه
6. حافظه پردازش؛ Stack، Heap و Mapping
- تحلیل Virtual Address Space و /proc maps
- بررسی mmap، Protection و چرخه عمر ناحیه حافظه
- شناسایی خطاهای Memory و Crash در Debugger
- پیوند Address با Segment و Module بارگذاریشده
7. Signal، IPC و مدیریت چرخه برنامه
- شناخت Signal Handler و خاتمه کنترلشده
- بررسی Pipe، Shared Memory و ارتباط پردازشها
- مدیریت Resource و پاکسازی File Descriptor
- تست Timeout، Deadlock و خطای مسیر اجرا
8. Socket Programming و مشاهده رفتار شبکه
- مدل Client/Server و چرخه Socket
- مدیریت داده، Timeout و خطای اتصال
- بررسی تفاوت Blocking و Non-blocking در طراحی
- ثبت ارتباط نمونه با ss و PCAP آزمایشگاهی
9. Loading و رفتارهای غیرمعمول در User Space
- شناخت Dynamic Loading و Constructor در Shared Library
- تحلیل نقش Environment و Loader Configuration
- بررسی Interposition و مشاهده اثر آن با ltrace
- مقایسه کاربرد مشروع و رفتار مشکوک از دید شواهد
10. Persistence و Rootkit از دید معماری و Detection
- دستهبندی آثار Service، Timer و Startup
- بررسی مرز User Space و Kernel Space
- تحلیل وابستگی مکانیزم به Privilege و نسخه Kernel
- تعیین Evidence موردنیاز برای تأیید فرضیه ماندگاری
11. Debugging و تحلیل رفتاری با GDB و strace
- Breakpoint، Register، Stack و Call Trace
- تحلیل Syscall Sequence و آرگومانها
- پیوند رشته، Symbol و مسیر اجرای نمونه
- ثبت تفاوت رفتار مورد انتظار و نتیجه واقعی
12. شناسایی، YARA و گزارش پژوهش نمونه
- تفکیک شاخص پایدار و Artifact وابسته به Build
- طراحی الگوی فایل و ارزیابی False Positive
- همبستگی Audit، Process و Network Event
- مستندسازی محدودیت، پاکسازی و نتیجه آزمایش
سناریوی تمرین و خروجی فنی
یک نمونه محدود آزمایشگاهی برای نمایش چند رفتار سیستمعاملی طراحی و Debug میشود. خروجی شامل Source و Binary با Hash مشخص، تحلیل ELF، Trace فراخوانی سیستم، شواهد فایل و شبکه و پیشنهاد یک منطق شناسایی است؛ تمرکز بر توضیح مکانیزم و ارزیابی مشاهدهپذیری رفتار قرار دارد.
شیوه ارائه و برنامهریزی یادگیری
شیوه ارائه این دوره ضبطشده / آنلاین است. سرفصلها و زمانبندی جلسات، برنامه آموزشی دوره را نشان میدهند؛ دسترسی به محتوای جلسات پس از فعالشدن ثبتنام ارائه میشود.

