پرش به محتویات

آشنایی با مسابقات فتح پرچم (CTF)

مطالعه و تحقیق به تنهایی برای یادگیری و کسب مهارت در دنیای امنیت ممکن است گاهی خسته‌ کننده باشد. در اینجا با یکی از هیجانی‌ترین روش‌های کسب دانش در امنیت سایبری و هک یعنی مسابقات CTF آشنا می‌شویم. مسابقات فتح پرچم (Capture the Flag) یا به اختصار CTF، یکی از جذاب‌ترین مسابقات مهارتی، تمرینی و «رایگان» در دنیای امنیت است که در آن شرکت‌کنندگان تلاش می‌کنند یک رشته متنی به نام پرچم (Flag) مانند زیر که به شکل هدفمند در برنامه یا سرویس‌های آسیب‌پذیر پنهان شده بدست آورند.

Motori{CTF_c0nte5ts_4r3_br4in_7ra1n3r}

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

مروری بر تاریخچه CTF

برای اینکه مروری تاریخی روی برگزاری مسابقات CTF داشته باشیم باید ابتدا با یکی از قدیمی‌ترین و شاید بزرگ‌ترین کنفرانس‌های هک و امنیت سایبری به نام Defcon که هر ساله در شهر لاس وگاس آمریکا برگزار می‌شود آشنا شویم. امسال که سی‌ودومین دوره آن در حال ثبت‌نام است این کنفرانس به عنوان بزرگ‌ترین گردهمایی در دنیای امنیت شناخته می‌شود که شاید شرکت و سخنرانی در آن آرزوی هر هکر یا علاقه‌مند به امنیت باشد. شرکت کنندگان این کنفرانس شامل متخصصان و پژوهشگران امنیت سابیری، روزنامه‌نگاران، کارمندان دولت فدرال، دانشجویان و هکرها هستند که از سراسر دنیا دور هم جمع می‌شوند تا آخرین تجربیات خود در زمینه هر چیز قابل هک را با هم در میان بگذارند. اولین دوره این کنفرانس توسط جف ماس (Jeff Moss) به طور غیرمنتظره به عنوان یک مهمانی برای خداحافظی از یک دوست هکرش در سال ۱۹۹۳ تأسیس شد. این مهمانی با حضور تقریباً ۱۰۰ نفر از دوستان هکر او که از راه دور و نزدیک آمده بودند، برگزار شد.

defcon1.jpg

دوره‌های نخست CTF

اولین دوره مسابقه CTF به چهارمین دوره کنفرانس یعنی سال ۱۹۹۶ برمی‌گردد. Defcon CTF شاید قدیمی‌ترین CTF است که هنوز به برگزاری خود ادامه می‌دهد. دوره‌های نخست آن (۱۹۹۶-۲۰۰۱) هیچ قانون مشخصی برای رقابت‌ها وجود نداشت. همچنین محیط یا بستر حرفه‌ای برای آن ساخته نشده بود و امتیازدهی تیم‌ها دستی انجام می‌شد. برگزارکنندگان دوره‌های اول داوطلبان و علاقه‌مندان غیرحرفه‌ای بودند که تجربه کافی نداشتند. اختلاف و نارضایتی زیاد به دلیل فقدان سیستم امتیازدهی خودکار، عدم دانش فنی کافی داوران، تأخیرها و خطاهای زیاد در امتیازدهی، ناپایداری شبکه و پیکربندی نامناسب از مهم‌ترین مشکلات دوره‌های اول این مسابقات بود. اما در طول سال‌های بعد، این بازی‌ها آهسته به بلوغ رسید و امتیازدهی تا حد زیادی خودکار شدند.

رقابت‌های حال حاضر

در چند سال گذشته، فتح پرچم به یک نام محبوب در حوزه امنیت سایبری تبدیل شده و تعداد مسابقات CTF به طور پیوسته در حال افزایش است. به عنوان مثال تنها در سال ۲۰۲۳ بالغ بر ۲۹۰ مسابقه CTF در سطح جهان برگزار شده است. علاوه‌براین، مهارت‌های امنیتی گسترده‌تر و جدیدتری مانند بلاکچین، هوش مصنوعی، پنهان‌نگاری و جاسوسی از منابع باز (Osint) به چالش‌های این مسابقات اضافه شده است. به همین دلایل وب سایت ctftime از سال ۲۰۱۱ اقدام به نگهداری و ثبت اطلاعات مربوط به هر مسابقه، چالش‌ها، امتیاز تیم‌ها و وزن‌دهی مسابقات کرده تا چالش‌ها و رتبه تیم‌ها به فراموشی سپرده نشود. این وبسایت اطلاعات کاملی در مورد تقویم مسابقات پیش رو در سراسر دنیا و مسابقات گذشته و همچنین اطلاعات دیگری مانند آرشیو کاملی از چالش‌ها، رتبه‌ی تیم‌ها در هر مسابقه و امتیاز کلی و رده‌بندی سالانه تیم‌های CTF را ارائه می‌دهد. به طور کلی ctftime را می‌توان به عنوان یک مرجع خوب برای آشنایی و شرکت در مسابقات CTF در نظر گرفت.

همان‌طور که مسابقات CTF در گذر زمان به بلوغ رسیدند و شهرت بیشتری پیدا کردند، تقاضای بیشتری از طرف تیم‌های مختلف برای شرکت در این بازی‌ها به وجود آمد. از آنجایی که Defcon CTF به عنوان بهترین بازی‌های هک و امنیت جهان شناخته می‌شود و تقاضا برای شرکت در آن بسیار زیاد است در نتیجه روشی مشابه بازی‌های ورزشی المپیک برای ورود آن اجرا می‌شود. تیم‌ها باید مجموعه‌ای از مسابقات مقدماتی CTF را انجام دهند تا امتیاز لازم را برای حضور در این رویداد کسب کنند. به همین دلیل Defcon CTF به المپیک هکرها معروف شده که جزئیاتی از نتایج دوره‌های مختلف آن در اینجا آمده است. در نهایت تیم قهرمان علاوه بر جایزه، می‌تواند بالاترین نشان به نام "نشان سیاه" (Black Badge) را بدست آورد.

DefconCTF-logo.jpeg

انواع CTF

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

۱- براساس نوع چالش

نوع چالش‌‌ها یا نحوه رقابت تیم‌ها یکی از روش‌های دسته‌بندی این مسابقات است. بر این اساس می‌توان CTFها را به دفاع‌ - حمله (Attack-Defense) و سبک موضوعی (Jeopardy) یا ترکیبی از این دو تقسیم کرد.

  • مسابقات با چالش‌های موضوعی:

این دسته، از رایج‌ترین نوع برگزاری مسابقات CTF است. چالش‌های موجود در مسابقه براساس حوزه‌های مختلف امنیت مانند وب، مهندسی معکوس، جرم‌یابی، Pwn، رمزنگاری، پنهان‌نگاری وغیره با درجه سختی متفاوت مانند شکل زیر طبقه‌بندی شده‌اند و تیم‌ها تلاش می‌کنند تا این چالش‌ها را حل و پرچم آن چالش را بدست آورند. در روش موضوعی رقابت بین تیم‌ها براساس کسب امتیاز بیشتر است. در این نوع مسابقه نیاز به مهارت زیاد در همه شاخه‌های مختلف نیست چون هر یک از اعضای تیم می‌تواند به حل چالش‌های مربوط به سررشته خود بپردازند.

Jeopardy.jpg

  • مسابقات دفاع - حمله:

در رقابت‌های دفاع-حمله اطلاعات اولیه یکسانی مانند تصویری از پیکره‌بندی شبکه، سرویس‌ها و سرورها در اختیار هر تیم قرار می‌گیرد. در این حالت، هر تیم باید همزمان روی آسیب‌پذیری‌ سرویس‌های تیم‌های رقیب کار کند و از سرویس‌های متعلق به خود محافظت کند. به دلیل اینکه سرویس‌های داده شده به تیم‌ها دارای آسیب‌پذیرهای مشابه است؛ اگر آسیب پذیری در سرویس های خود پیدا کنند، آن را به سرعت در سمت خود رفع و از آن برای حمله به تیم‌های دیگر استفاده می‌کنند. این مسئله نشان می‌دهد که مسابقات دفاع-حمله نیاز به سطح دانش بالایی در حوزه‌های مختلف امنیت دارد.

attack-defense.png

۲- براساس شیوه برگزاری

رقابت‌های CTF می‌تواند به صورت حضوری یا آنلاین برگزار شود. معمولا بسیاری از رقابت‌های حضوری در حاشیه کنفرانس‌های امنیت سایبری مانند Hitcon ،Nulcon ،CSAW و Insomnihack برگزار می‌شوند. تیم‌ها بعد از بدست آوردن امتیاز لازم در مسابقه مقدماتی، برای حضور در محل مسابقه دعوت می‌شوند، اما در رقابت‌های آنلاین همه‌ی اتفاقات مانند اعلان‌ها، چالش‌ها و تابلو امتیازات روی سایت مسابقه قرار دارد و تیم‌ها بدون هیچ محدودیت جغرافیایی از سراسر جهان در آن شرکت می‌کنند. مسابقات دفاع-حمله اغلب به صورت حضوری برگزار می‌شوند اما مسابقات موضوعی به شکل آنلاین برگزار می‌شوند.

on-site.png

۳- براساس مدت برگزاری

برخی از CTFها دارای محدود زمانی نیستند و چالش‌های آنها معمولا برای مدت زیادی روی وبسایت قرار دارند. این نوع از CTF به wargame معروف است. اگرچه این نوع از CTFها هیجان رقابت در یک مدت زمان محدود را ندارند اما گزینه مناسبی برای تمرین و یادگیری به شمار می‌روند. بسیاری از سایت‌های wargame هر دو نوع چالش یعنی موضوعی و دفاع-حمله را ارائه می‌دهند. از مشهورترین این سایت‌ها می‌توان hackthebox ،Root-Me OverTheWire و TryHackMe را نام برد.

سطح مسابقات CTF

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

ctftime.png

۱- مبتدی

مسابقه‌هایی که بین وزن صفر تا ۴۰ دارند معمولا مسابقاتی هستند که برای افراد تازه وارد به دنیای امنیت توصیه می‌شوند. تعداد این مسابقه‌ها بسیار بیشتر از سایر سطوح است و چالش‌های آن‌ها مفاهیم اولیه امنیت تا مسائل با درجه سختی متوسط را پوشش می‌دهند. از مسابقات مطرح و قابل قبول در این سطح می‌توان از HackTheBoxCTF ،ImaginaryCTF ،SunshineCTF و picoctf نام برد. با این حال، باید در نظر داشت که این مسابقات ممکن است در گذر زمان و براساس چالش‌هایی که بعداً ارائه می‌دهند در سطح دشوارتری قرار بگیرند.

۲- متوسط

مسابقه‌های سطح متوسط معمولا وزن‌ بین ۴۰ تا ۸۰ را دارند. تعداد این مسابقه‌ها معمولا نسبت به سطح مبتدی کمتر است زیرا ارائه یک مسابقه با کیفیت در سطح متوسط معمولا نیاز به برگزاری پیوسته مسابقه در سطح قابل قبول را دارد. تعدادی از CTFهای این سطح در زمان نگارش این مقاله شامل RuCTF ،Securinets-CTF ،UIUCTF MidnightSunCTF و bi0sCTF است.

۳- حرفه‌ای

بهترین و معمولا قدیمی‌ترین مسابقات CTF در این سطح قرار می‌گیرند. وزن این مسابقات اغلب بالاتر از ۸۰ است که مناسب افرادی با دانش و تجربه بالا در دنیای امنیت است. تعداد مسابقات این سطح انگشت شمار است که برخی از آن‌ها به عنوان مسابقه‌ی مقدماتی برای راه‌یابی به Defcon CTF در نظر گرفته شده تا تیم‌های قهرمان در آن‌ها به Defcon CTF راه پیدا کنند. تعدادی از این مسابقات شامل PlaidCTF ،0CTF ،ASIS-CTF ،Google-CTF و HITCON-CTF است.

قوانین

این مسابقات قوانین بسیار سخت‌گیرانه‌ای ندارد. دسترسی به اینترنت و گفتگو در مورد چالش‌ها در داخل تیم اتفاق می‌افتد. با این وجود برخی از قوانین در CTF وجود دارد که در اینجا لیست شده است:

  • محدودیتی برای تعداد اعضای تیم وجود ندارد (مگر در مسابقه‌ای اعلام شود)
  • هر گونه تلاش برای ایجاد اختلال در مسابقه مانند حمله به وبسایت یا زیرساخت‌های آن منجر به ردصلاحیت تیم خواهد شد.
  • اشتراک‌گذاری پرچم‌ها با سایر تیم‌ها ممنوع است.
  • هر بازیکن در هر مسابقه فقط می‌تواند برای یک تیم بازی کند.
  • در مسابقه دفاع - حمله، تیم مدافع مجاز به غیرفعال کردن اتصالات شبکه یا خاموش کردن دستگاه‌ها نیست. در غیر این صورت، تیم متخلف امتیاز از دست می‌دهد و حتی شاید رد صلاحیت شود.

تیم‌های مطرح جهانی

از زمانی که ctftime در سال ۲۰۱۱ شروع به ثبت قهرمان مجموع مسابقات هر سال کرده، هشت تیم توانسته‌اند رتبه اول جهانی در سال‌های متفاوت را بدست آورند. در جدول زیر ده تیم‌ برتر تا سال ۲۰۲۳ به ترتیب دفعات قهرمانی و نایب قهرمانی لیست است:

تیم قهرمانی نایب قهرمانی کشور
Plaid Parliament of Pwning (PPP) ۳ ۳ 🇺🇸
Dragon Sector ۳ ۲ 🇵🇱
perfect blue ۲ ۱ 🇺🇸
More Smoked Leet Chicken ۱ ۲ 🇷🇺
organizers ۱ ۱ 🇨🇭
duca ۱ ۰ 🇺🇦
Eat, Sleep, Pwn, Repeat ۱ ۰ 🇩🇪
Blue Water ۱ ۰ 🇺🇸
Balsn ۰ ۱ 🇹🇼
C4T BuT S4D ۰ ۱ 🇷🇺

سخن پایانی

اگر فرد با تجربه‌ای در دنیای امنیت هستید که قصد به چالش کشیدن توانایی خود را دارید، یا به دنبال هیجان و یادگیری بیشتر امنیت هستید، یکی بهترین انتخاب‌ها مسابقه‌های CTF است. اگر هنوز تجربه شرکت در این مسابقه‌ها رو نداشتید بهتره سریع‌تر یک سر به سایت ctftime بزنید و در نزدیک‌‌ترین CTF شرکت کنید و همزمان لذت حل چالش و هیجان رقابت را ببرید.