چقدر از امنیت سیستمهای خود و سازمانتان اطمینان دارید؟ درباره انواع حملات سایبری چه میدانید؟
روزبهروز بر تعداد و پیچیدگی حملات سایبری افزوده میشود و بخش اعظمی از این حملات، با استفاده از بدافزارها رخ میدهد. حملهی بدافزاری میتواند از طرق مختلفی به اختلال در سیستم امنیتی و دزدی اطلاعات محرمانه سازمان شما و در نتیجه تحمیل هزینههای مالی سنگین بینجامد. بنابراین تشخیص و واکنش سریع به حملات بدافزاری از اهمیت بسیار حیاتی برخوردار است.
دوره جامع مهندسی معکوس پیشرفته که لازمه اصلی ورود به دنیای شناخت و تحلیل بدافزار است، به صورت پایهای و مفصل به مفاهیم حوزه هک و امنیت و انواع پارادایمهای کدنویسی میپردازد. این دوره شما را به دانشی عمیق و ابزارهای دفاعی مجهز میکند تا سختترین نفوذهای سایبری بدافزاری را تجزیه و تحلیل کرده و با تقویت سیستمهای دفاعی، از اطلاعات خود در برابر بدافزارها محافظت نمایید. بعد از گذراندن این دوره جامع یک ساله، به طور کامل با مفاهیم Offensive، پارادایمهای کدنویسی، هک و امنیت،کنترل نقصها، ماهیت بدافزار، انواع بدافزار در ویندوز و لینوکس و طریقه عملکردشان آشنا میشوید.
سرفصلهای این دوره توسط مدرس دوره مهندس میلاد کهساری و به واسطه سالها تحقیق و فعالیت ایشان در حوزه مهندسی معکوس و تحلیل بدافزار، آماده و ارائه شده است. سرفصلهای به گونهای طراحی شدهاند که پیشنیاز خاص و پیچیدهای مدنظر نباشد، درحقیقت دوره از مقدماتیترین مباحث شروع شده و تا مباحث پیشرفته مانند Windows API و Binary File Format Analysis ادامه خواهد داشت.
سرفصلهای این دوره توسط مدرس دوره مهندس میلاد کهساری و به واسطه سالها تحقیق و فعالیت ایشان در حوزه مهندسی معکوس و تحلیل بدافزار، آماده و ارائه شده است. سرفصلهای به گونهای طراحی شدهاند که پیشنیاز خاص و پیچیدهای مدنظر نباشد، درحقیقت دوره از مقدماتیترین مباحث شروع شده و تا مباحث پیشرفته مانند Windows API و Binary File Format Analysis ادامه خواهد داشت.
— Introduction to Programming Paradigms
i. Inline
ii. Procedural
iii. Object Oriented
iv. Generic Development
v. Concurrent Programming
vi. Event-Driven Programming
— Inline Programming Paradigm
i. Machine Language
ii. Assembly Language
iii. Interpreter, Compiler and Assembler
iv. Static and Dynamic Linking Libraries
v. Opcode (Processor) Decoding
— Procedural Programming Paradigm
i. Variables
ii. Arrays and Pointer
iii. Structures and Unions
iv. Functions and Headers
— Object Oriented Programming Paradigm
i. Namespaces
ii. Classes and Objects
iii. Inheritance and Polymorphism
iv. Templates and Virtual Functions
v. Protected, Private and Public Access
— Generic Software Development
i. Overloading
ii. Function Template
iii. Classes Templates
iv. Auto Deduction
v. Instantiation
— Concurrent Programming Paradigm
i. Concurrency Scheme
ii. Process-Based Concurrency
iii. Threads-Based Concurrency
— Software Engineering Technologies
i. Compilers
ii. Linkers
iii. Interpreters
iv. Virtual Machines
— Browser Technologies
i. Browser Engines
ii. JavaScript Engines
— Compilers and Linkers
i. Preprocessor
ii. Optimizer
iii. Compiler
iv. Linker
— Interpreters
i. Intermediate Language
ii. IL Interpreters
— Java Virtual Machines
i. Java Virtual Machine
ii. Java Bytecode
iii. JVM Opcode
— Microsoft Virtual Machines
i. Microsoft Common Language Runtime
ii. Intermediate Language
iii. JIT Compiler
— Hypervisors or VMM
i. Virtual Machine Monitor
ii. Types of VMM
iii. Hypervisor Networking Adapters
— Vulnerability
i. Zero-day
ii. One-day
— CVE and CVSS
— Exploit and Exploitation
i. Remote Exploits
ii. Local Exploits
iii. Privilege Escalation
— Shellcode/Payload
— Malicious Software
i. User-Mode Malware
ii. Kernel-Mode Malware
iii. ICS/Embedded Malware
— Antivirus
— Firewall
— IDS/IPS
— UTM Solutions
— DLP and EDR
— SIEM Systems
— Cloud Protections
— Introduction to Microsoft C++
• Microsoft Visual Studio IDE
• Visual Studio Debugger
— Introduction to C++ and OOP
• What is C++?
• What is a Multiparadigm Language?
• C++ Programming Approaches
• C++ Programs Type
— Fundamental and User Data Type
• Fundamental Data Types
• Data Type Casting
• User Defined Data Types
— Classes and Objects
• Classes and Objects
• Inheritance and Access Modifiers
• Namespaces and Enumerations
— Conditions and Repeations
• If and Else
• Switch Cases
• For and While loop
• Range based for loop
• Visual Studio Arguments Settings
— Memory Addressing
• What is a Pointer?
• Pointers to Pointers
• C++ References
• Memory Analysis for References
— Translation Phases
• Preprocessing – Microsoft Preprocessor
• Compiling – Microsoft C++ Compiler and Optimizer
• Optimizing – Microsoft C++ Optimizer
• Assembling – Microsoft Assembler / MASM
• Linking – Microsoft Linker
• Visual Studio Project Settings
— Pre-processoring and Preprocessor
• What is Preprocessing?
• Why Preprocessing is important?
• Introduction to Translation Phase
• Preprocessing Directives
— Debugging and Disassembling
• Reverse of Compilation Process
• Disassemblers Tasks
• Disassemblers Types
• Visual Studio Built-in Debugger
• Standalone Debuggers
— Overloading Feature
• What is Overloading?
• What is an Operator?
— Templates - Metaprogramming
• What are Templates?
• Why is it Important?
• Standard Template Library
— Constants and const keyword
• What is Const Qualifier?
• Why is it Important?
— Free Store or Heap Memory
• Free Store / Heap Memory
• Dynamic Memory Allocation
• Smart Pointers and Automatic Memory Management
— Standard CPP Containers
• Std::Vectors
• Std:Deque
• Std::List and std::forward_list
• Std::Map and Std::Multimap
• Std::Set and Std::Multiset
• Std:Pair
• Std:Stack
• Std:Queue
— Static and Mutable Storage Class
• Storage Classes
— Polymorphism and Its Types
• Compile-time Polymorphism
• Run-time Polymorphism
• Coercion Polymorphism
• Ad-hoc Polymorphism
— Lambda Expression
• Lambda Calculus
• Lambda Expression
— Exception Handling
• Different Model of Handling
• C++ Exception Handling
• Runtime Exceptions
• Stack Unwinding
• Structured Exception Handler
• Assert and Static Assert
— Modern CPP Standard Coding
• Linux Environment
• CPP Code Refactoring
• Template Deduction
— Input and Output File Stream
• File Systems
• C++ Streams
• Output File Stream
• Input File Stream
— C++ Technical Concepts
• Binding
• Callbacks
• Problem Solving with Polymorphism
• Translation Unit Testing
• Unit Test Frameworks
— Introduction to Iterators
• STL Components
— Introduction to Algorithms
• What is an Algorithm?
• Algorithm Characteristics
• Algorithm Standard Members
— C++17 Language Changes
• Type Inference
• Fold Expressions
• Expression Type
• Advanced Semantics
• Conditional Return Value
• Compile-Time Rational Arithmetic
• Pseudo-Random Number Generator
• Filesystem Support
— Concurrency and Parallelism
• What is a Concurrency?
• What is a Parallelism?
• Concurrent Programming
• Sharing and Coordinating
• Low-Level Concurrency Facilities
• Parallel vs Concurrency
• Lock-Free Programming
— Boost Library Features
• Boost Library Utilities
• Boost Networking
این دوره به صورت پایهای از مباحث و مفاهیم اولیه امنیت شروع شده و با مفاهیم اولیه کدنویسی ادامه پیدا میکند و نیاز به پیشنیاز خاصی برای این دوره نیست؛ اما پیشنهاد میشود دوره مقدمات امنیت سایبری قبل از ورود به این دوره گذرانده شود.