Source Code Fuzzing

  • متوسط
  • مسیر قرمز
  • ۸ درس
مهلت ثبت‌نام:
  :    :  
۴,۹۰۰,۰۰۰ تومان
ثبت‌نام سازمانی این دوره
تاریخ شروع
۵ بهمن ۱۴۰۴
طول دوره
۲۷ساعت
گواهی‌نامه و آزمون
دارد
ظرفیت
۳۰ نفر باقی مانده
نوع برگزاری
آنلاین
ارتباط با واحد آموزش ثبت‌نام اقساطی

دربارۀ این دوره

Fuzzing، روشی برای شناسایی باگ‌ها و آسیب‌پذیری‌های موجود در نرم‌افزارها و سیستم‌عامل‌ها است. در این روش، کارشناسان امنیت یا برنامه‌نویسی، با ارسال حجم بالایی از ورودی‌های نامعتبر و غیر‌قابل پیش‌بینی به یک برنامه، رفتار آن را تحلیل می‌کنند تا واکنش‌های غیرعادی یا Crashهای احتمالی را در برابر ورودی‌های خاص شناسایی کنند. شناسایی چنین رفتارهای نامتعارفی می‌تواند نشان‌دهندۀ وجود آسیب‌پذیری‌هایی باشد که مهاجم قادر است با بهره‌گیری از آن‌ها، روند اجرایی برنامۀ آسیب‌پذیر را تغییر دهد.

 

ابزارهای متعددی برای شناسایی آسیب‌پذیری‌های شناخته‌شده در کدهای برنامه‌نویسی یا سامانه‌ها وجود دارد؛ اما Fuzzing این امکان را فراهم می‌کند که آسیب‌پذیری‌های ناشناخته نیز شناسایی شوند. هکرهای کلاه‌سیاه، از این روش در راستای کشف آسیب‌پذیری‌های جدید و توسعۀ اکسپلویت‌های Zero-Day استفاده می‌کنند. در مقابل، شرکت‌ها و سازمان‌ها تلاش می‌کنند با اجرای انواع Fuzzing در سامانه‌های خود، این نقاط ضعف را پیش از مهاجمان، شناسایی و برطرف کنند.

 

در این دوره، به آموزش مبانی و اصول Fuzzing در کدهای برنامه‌نویسی پرداخته می‌شود. به عبارت دیگر، با گذراندن این دوره، با انواع Fuzzing استاتیک و داینامیک، ابزارها و تکنیک‌های رایج در این حوزه و در نهایت، روش‌های Fuzzing در زبان‌های Python ،Go ،Rust ،Java و JavaScript آشنا خواهید شد. همچنین، درکی عمیق و کاربردی از فرایند Fuzzing و جایگاه آن در ارتقای امنیت نرم‌افزار کسب خواهید کرد.

 

مدت‌زمان این دوره، ۲۷ ساعت است که طی ۹ جلسۀ ۳ساعته، روزهای یکشنبه و سه‌شنبۀ هر هفته از ساعت ۱۸ تا ۲۱، به‌صورت آنلاین برگزار خواهد شد. تاریخ شروع این دوره، از روز یکشنبه ۵ بهمن‌ماه خواهد بود.

 

می‌توانید با استفاده از شرایط اقساطی آکادمی راوین،‌ پرداخت دو قسط در دو ماه مختلف، در این دوره ثبت‌نام کنید.

مخاطبان

  • کارشناسان تست نفوذ
  • علاقه‌مندان به حوزۀ کشف و تحلیل آسیب‌پذیری‌های امنیتی
  • دانشجویان علاقه‌مند به ادامۀ تحصیل در رشتۀ علوم کامپیوتر یا فناوری اطلاعات
  • کارشناسان ارزیابی امنیت و کنترل کیفیت نرم‌افزار

پیش‌نیازها

  • آشنایی با یکی از زبان‌های برنامه‌نویسی متداول مانند پایتون
  • آشنایی با مفاهیم و تعاریف امنیت سایبری
  • آشنایی ابتدایی با سیستم‌عامل لینوکس

سرفصل‌ها

  • Fuzzing intro
    • What Is Fuzzing?
    • Random Fuzzing
    • Mutation Fuzzing
    • Grammar-based Fuzzing (generators, dictionaries, etc.)
    • GreyBox Fuzzing
    • CI Fuzz Technology Stack Modren Fuzzing
    • CodeQL / Sammel QL Modern Scanning code
  • Static / Dynamic Fuzzing
    • Types of Security Vulnerabilities
    • Clang Static Analyzer
    • ASAN – Address Sanitizer
    • AFL
      • BlackBox Fuzzing
      • WhiteBox Fuzzing
      • Corpus/inputs/seed selection
      • Crashes Analysis
    • LibFuzzer
    • Taint analysis – IR (Intermediate Representation)
    • DBI (Dynamic Binary Instrumentation)
      • PIN
      • Valgrind – Memcheck
      • Dyninst
    • Honggfuzz
    • Afl + Radamsa
  • Symbolic Execution / Concolic Execution
    • Intro Symbolic Execution with KLEE
    • Finding memory bug in OSS
    • SymCC
    • AFL + SymCC
    • AFL + Driller
    • Crashes Analysis
    • Concolic execution
      • Triton
      • Angr
  • Python Fuzzing
    • PythoVnFuzz
    • Athris
    • Native Python Fuzzing
    • Python OSS-Fuzz project
  • Go Fuzzing
    • Go-fuzz
    • Gofuzz
    • Go OSS-Fuzz project
  • Rust Fuzzing
    • Unsafe Code
    • Cargo-fuzz
    • Afl-rs
    • Honggfuzz-rs
    • Fuzzcheck-rs
    • Rust OSS-Fuzz project
  • Java Fuzzing
    • Jazzer Fuzzer
    • JQF Fuzzing
    • Java OSS-Fuzz project
  • Web Fuzzing
    • Fuzzing Chromium with Libfuzzer
    • Fuzzing Chrome V8 JavaScript Engine
    • Fuzzing with selenium
    • Jsfuzz Javascript fuzzer

گواهینامه‌ی دوره

گواهی‌نامه

دوره های مشابه

transition-all"]

دیدگاه‌ها

اولین نفری باشید که دیدگاه خود را ثبت می‌کنید.