• دوره‌های آموزشی
  • مسیرهای آموزشی
  • خدمات سازمانی
    • آموزش سازمانی
      • دوره‌ی آگاهی‌رسانی امنیت سایبری
      • دوره‌ی امنیت سایبری برای مدیران کسب‌وکار
      • دوره‌ی Open Source Intelligence
      • دوره‌ی‌ فریم‌ورک MITRE ATT&CK
      • دوره‌ی JAVA Secure Coding
    • مشاوره‌ی امنیت سایبری
    • تحقیقات امنیت سایبری
  • وبلاگ
  • تقویم آموزشی
آکادمی راوینآکادمی راوین
  • دوره‌های آموزشی
  • مسیرهای آموزشی
  • خدمات سازمانی
    • آموزش سازمانی
      • دوره‌ی آگاهی‌رسانی امنیت سایبری
      • دوره‌ی امنیت سایبری برای مدیران کسب‌وکار
      • دوره‌ی Open Source Intelligence
      • دوره‌ی‌ فریم‌ورک MITRE ATT&CK
      • دوره‌ی JAVA Secure Coding
    • مشاوره‌ی امنیت سایبری
    • تحقیقات امنیت سایبری
  • وبلاگ
  • تقویم آموزشی

دوره‌های امنیت تهاجمی

  • خانه
  • همه دوره ها
  • دوره‌های امنیت تهاجمی
  • Source Code Fuzzing

Source Code Fuzzing

رامین فرج پور
رامین فرج پور
دوره‌های امنیت تهاجمی
0 ﷼
RAvin site 72-65
RAvin site 72-65
  • بررسی اجمالی
  • مدرس:

درباره‌ی دوره

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

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

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

مدت زمان دوره

مدت زمان این دوره ۳۰ ساعت است و به صورت کلاس‌های ۳ ساعته، طی ۱۰ جلسه به صورت آنلاین از ساعت ۱۷ تا ۲۰ روزهای شنبه و چهارشنبه برگزار می‌شود. آغاز جلسات این دوره از روز شنبه مورخ ۱۴۰۰/۰۳/۰۱ خواهد بود.

این دوره به چه افرادی توصیه می‌شود؟

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

برای حضور در این دوره چه دانش‌هایی باید داشته باشم؟

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

سرفصل‌های دوره

Chapter 1: Fuzzing intro

1.1 What Is Fuzzing?

1.2 Random Fuzzing

1.3 Mutation Fuzzing

1.4 Grammar-based Fuzzing (generators, dictionaries, etc.)

1.5 GreyBox Fuzzing

1.6 CI Fuzz Technology Stack Modren Fuzzing

1.7 CodeQL / Sammel QL Modern Scanning code

Chapter 2: Static / Dynamic Fuzzing

2.1 Types of Security Vulnerabilities

2.2 Clang Static Analyzer

2.3 ASAN – Address Sanitizer

2.4 AFL

2.4.1 BlackBox Fuzzing

2.4.2 WhiteBox Fuzzing

2.4.3 Corpus/inputs/seed selection

2.4.4 Crashes Analysis

2.5 LibFuzzer

2.6 Taint analysis – IR (Intermediate Representation)

2.7 DBI (Dynamic Binary Instrumentation)

2.7.1 PIN

2.7.2 Valgrind – Memcheck

2.7.3 Dyninst

2.8 Honggfuzz

2.9 Afl + Radamsa

Chapter 3: Symbolic Execution / Concolic Execution

3.1 Intro Symbolic Execution with KLEE

3.2 Finding memory bug in OSS

3.3 SymCC

3.4 AFL + SymCC

3.5 AFL + Driller

3.6 Crashes Analysis

3.7 Concolic execution

3.7.1 Triton

3.7.2 Angr

Chapter 4: Python Fuzzing

4.1 PythonFuzz

4.2 Athris

4.3 Native Python Fuzzing

4.4 Python OSS-Fuzz project

Chapter 5: Go Fuzzing

5.1 Go-fuzz

5.2 Gofuzz

5.3 Go OSS-Fuzz project

Chapter 6: Rust Fuzzing

6.1 Unsafe Code

6.2 Cargo-fuzz

6.3 Afl-rs

6.4 Honggfuzz-rs

6.5 Fuzzcheck-rs

6.6 Rust OSS-Fuzz project

Chapter 7: Java Fuzzing

7.1 Jazzer Fuzzer

7.2 JQF Fuzzing

7.3 Java OSS-Fuzz project

Chapter 8: Web Fuzzing

8.1 Fuzzing Chromium with Libfuzzer

8.2 Fuzzing Chrome V8 JavaScript Engine

8.3 Fuzzing with selenium

8.4 Jsfuzz Javascript fuzzer

ویژگی های دوره

  • درس 0
  • آزمونها 0
  • مدت زمان 30 ساعت
  • سطح مهارت متوسط
  • زبان فارسی و انگلیسی
  • دانشجویان 16
  • گواهی نامه بله
  • ارزیابی بله
رامین فرج پور
رامین فرج پور
    کارم رو در گذشته با برنامه‌نویسی وب در محیط Django شروع کردم اما با گذشت زمان به زمینه‌ی امنیت سایبری بیشتر علاقه‌مند شدم. به همین دلیل حوزه‌ی کاریم رو تغییر دادم و چند سال پیش فعالیتم رو در زمینه‌ی کشف و شناسایی آسیب‌پذیری شروع کردم. در طول این مدت موفق شدم در شرکت های بزرگی مثل Google، Yahoo، Apple، Blackberry، EBay، Twitter و ... آسیب‌پذیری‌هایی رو شناسایی و گزارش کنم. در حال حاضر بیشتر زمانم رو به برنامه‌نویسی سیستمی اختصاص دادم و کماکان به کشف آسیب‌پذیری‌های سیستمی و اپليکیشن‌ها علاقه‌مند هستم.
    • بررسی اجمالی
    • مدرس:
    0 ﷼

    این دوره برگزار شده است.

      4 نظر

    1. Avatar
      علی اکبر
      آوریل 13, 2021
      پاسخ

      سلام. روزتون بخیر

      تمرکز این دوره روی باینری های لینوکسی هست؟ برنامه ای برای پوشش ویندوز هم دارید؟ فازینگ کرنل لینوکس پوشش داده میشه؟

      مفاهیم و استفاده از CodeQL کامل پوشش داده میشه؟

      درباره فازینگ BlueTooth یا MMS کار عملی انجام داده میشه؟ منظورم تمرکز روی دیوایس های اندروید و attack surface اون هاست.

      • ravinacademy
        ravinacademy
        آوریل 13, 2021
        پاسخ

        سلام علی اکبر عزیز.
        بله. تمرکز دوره روی باينری لينوکس و سورس کد اوپن سورسه. همچنین CodeQL مفاهیم و نحوه‌ی عملکردش توضیح داده می‌شه. تمامی موارد مطابق سرفصل تو دوره گفته می‌شه.

    2. Avatar
      علی
      آوریل 17, 2021
      پاسخ

      با سلام
      ببخشید ایا این دوره برای کسی که هیچ تجربه ای از دنیای امنیت نداره و قصد ورود داره مناسب هست؟
      اگر امکانش باشه میشه استاد منابعی مقدماتی رو معرفی کنن که تپ همین تایم کم تا شروع دوره بشه مقدماتی رو بدست اورد تا درک مطالب برای کسی که تجربه نداره راحت تر بشه؟
      با تشکر

      • ravinacademy
        ravinacademy
        آوریل 18, 2021
        پاسخ

        سلام علی عزیز. آشنایی با زبان‌های برنامه‌نویسی برای حضور در این دوره کفایت می‌کنه و سایر نیازهای مقدماتی در خود دوره گفته می‌شه.

    نظر بدهید لغو پاسخ

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    منابع

    • مسیرهای آموزشی
    • پرسش‌های رایج
    • تخفیف‌ها
    • وبینارها
    • پخش زنده
    • کتابچه

    همکاری با ما

    • تدریس در آکادمی راوین
    • همکاری در تولید محتوا
    • استخدام

    خدمات سازمانی

    • آموزش سازمانی
    • مشاوره‌ی امنیت سایبری
    • تحقیقات امنیت سایبری

    آکادمی راوین

    • خانه
    • درباره‌ی ما
    • تماس با ما

        

    info@ravinacademy.com
    Twitter
    Telegram
    Linkedin
    Instagram
    Github

    تمام حقوق این وب سایت به آکادمی راوین تعلق دارد.

    کسب اطلاعات بیشتر
    Modal title

    Message modal