API Security Testing

دربارهی دوره
بهرهبرداری از API (Application Programming Interface) در تعامل بین نرمافزارها و یکپارچهسازی آنها مزایای زیادی برای سازمانها به همراه دارد. با استفاده از API، نرمافزارهای کاربردی مختلف بدون اینکه نیازی به آگاهی از شیوهی پیادهسازی یکدیگر داشته باشند، میتوانند به راحتی با هم یکپارچه شوند. این مزایا در کنار رشد زیرساختهای ابری در سالهای اخیر، سبب شده تا شرکتهای نرمافزاری و ابری مختلف در سراسر دنیا APIهای متنوعی را با هدف ایجاد امکان تعامل راحتتر بین سرویسها و محصولاتشان با سامانههای مربوط به مشتریان و شرکای تجاری، پیادهسازی کنند. اهمیت این مساله تا جایی است که حتی در برخی از کسبوکارها تعداد و قابلیت APIهای موجود در محصولات آن، بهعنوان یکی از مهمترین مزیتهای رقابتی آن کسبوکار مطرح میشود.
APIها در بسیاری از صنایع امروزی کاربرد وسیعی دارند که از بین آنها میتوان به صنایع خدمات مالی و بانکی، رایانش ابری، IoT، شهرهای هوشمند و موبایل اشاره کرد. در ایران نیز با توجه به رشد استارتاپها و زیرساختهای ابری در سالهای اخیر، بسیاری از شرکتها محصولات خود را به APIهای مختلف مجهز کردهاند. اما یکی از نکات مهمی که شاید کمتر به آن پرداخته میشود، امنیت API این محصولات در برابر حملات سایبری است. API در کنار مزایایی که برای افراد و کسبوکارها ایجاد میکند، تهدیداتی را نیز به همراه دارد و هدف جذابی برای مهاجمین سایبری به حساب میآید. نقض شدن امنیت API میتواند دسترسی غیر مجاز مهاجمین به دادههای سازمان یا مشتریان آن، ایجاد اختلال در سرویسدهی و بسیاری تبعات دیگر را برای یک کسبوکار به دنبال داشته باشد. همین امر سبب گردیده تا شکار آسیبپذیری API در برنامههای باگبانتی دنیا با استقبال بالایی، هم از سوی کسبوکارها و هم از سوی نفوذگران مواجه شود.
در این دوره فرآیند تست و ارزیابی یک API از دید یک شکارچی باگ بررسی میشود. در بخش ابتدایی دوره بررسی معماری امنیت API و مفاهیم آن آموزش داده میشود. در بخش بعد روشهای جمعآوری اطلاعات و شناسایی برای API به صورت عملی شرح داده خواهد شد، همچنین به صورت اصولی یاد میگیرید که چگونه اطلاعات و API Endpointهای مورد نظرتان را استخراج کنید. نهایتا در بخش سوم به بررسی انواع آسیبپذیریهای فنی و منطقی در بستر API و شیوهی شکار و هک آنها پرداخته خواهد شد .
مدت زمان دوره
مدت زمان این کارگاه ۲۷ ساعت است که از یکشنبه ۱۸ مهر، یکشنبه و پنجشنبهی هر هفته، از ساعت ۱۷:۳۰ تا ۲۰:۳۰ به صورت آنلاین برگزار میشود.
این دوره به چه افرادی توصیه میشود؟
- کارشناسان ارزیابی امنیت و تست نفوذ
- کارشناسان امنیت سایبری در سازمانها و شرکتها
- کارشناسان فعال در زمینهی Bug Bounty
برای حضور در این دوره چه دانشهایی باید داشته باشم؟
- آشنایی با مفاهیم توسعهی وب و API
- آشنایی با آسیب پذیریهای رایج وب
- حداقل یک سال تجربهی کاری در زمینهی تست نفوذ وب
سرفصلهای دوره
Chapter 1: Introduction to API Security
1.1 Web APIs
1.2 Security Review of APIs
1.3 Core APIs vs Third-Party APIs
1.4 API & ORM
1.5 Course Deliverables
Chapter 2: API Reconnaissance
2.1 Environment Setup
2.2 Recon Methodology for API
2.3 API Endpoints Enumeration
2.3.1 API Documentation
2.3.2 Public vs Hidden API Endpoints
2.3.2.1 Public API Endpoints Enumeration
2.3.2.2 Bug Bounty Tip
2.3.2.3 Hidden API Endpoints Enumeration
2.3.2.4 Fuzzing for Hidden API Endpoints
2.3.2.5 Custom Wordlist
2.3.2.6 Fuzzing for GraphQL Object Types
2.4 API Attack Surface Analysis
2.5 Lab + Real World Example
Chapter 3: API Vulnerabilities
3.1 Excessive Data Exposure
3.1.1 Introduction to Data Exposure
3.1.2 Hunting for Data Exposure
3.1.3 Automating Burp to Find Data Exposure
3.1.4 False Positives
3.2 Mass Assignment
3.2.1 Mass Assignment in NodeJS & Rails
3.2.2 Hunting for Mass Assignment Vulnerabilities
3.2.3 Bypass Security Controls
3.3 Broken Object Level Authorization
3.3.1 Hunting for IDORs
3.3.2 Automating Burp to Find IDORs
3.4 Broken Function Level Authorization
3.4.1 Vertical vs Horizontal Access Control
3.4.2 Unprotected API Endpoints
3.4.3 Hunting for Broken Function Level
3.4.4 Automating Burp to Find Broken Function Level Bugs
3.5 Broken Authentication
3.5.1 Token-Based Authentication
3.5.2 OAuth 2 & SAML
3.5.3 JWT Attack Scenarios
3.5.3.1 Basic Cryptography for Bug Hunter
3.5.3.2 JWT Common Attack Scenarios
3.5.3.3 JWT Advanced Attack Scenarios
3.6 Lack of Resources & Rate Limiting
3.6.1 Exploiting Response Limit
3.6.2 Exploiting Request Rate
3.6.3 Bypass Techniques for Request Rate
3.6.4 Exploiting Request Payload
3.7 Security Misconfiguration
3.7.1 Exploiting CORS Misconfiguration
3.7.2 Unprotected Files & Directories
3.8 Injection-Based Attacks
3.8.1 SQL, NOSQL & ORM Injection
3.8.2 XXE Injection
3.8.3 OS Command Injection
3.9 Request-Forgery Attacks
3.10 Real World Example
3.11 GraphQL
3.11.1 GraphQL vs REST
3.11.2 GraphQL Schema
3.11.3 GraphQL Object Types
3.11.4 GraphQL Queries
3.11.5 GraphQL Mutations
3.11.6 GraphQL Subscriptions
3.11.7 Introspection
3.11.8 Fuzzing for Object Types
3.11.9 GraphQL Vulnerabilities
3.11.9.1 Injection-Based Attack Scenarios
3.11.9.2 Request-Forgery Attack Scenarios
3.11.9.3 Nested Queries & DOS
3.11.9.4 Node-Based & Edge-Based Access Control
3.11.9.5 Mutation-Based Attacks
ویژگی های دوره
- درس 3
- آزمونها 0
- مدت زمان 27 ساعت
- سطح مهارت پیشرفته
- زبان فارسی و انگلیسی
- دانشجویان 26
- گواهی نامه بله
- ارزیابی بله