مسابقات فتح پرچم یا CTF در هکینگ

سلام

Capture the Flag: One of the best team building events ever!

مقاله ای در این زمینه برای Hiva.ir نوشتم که گفتم خوبه توی وبلاگ خودم هم منتشرش کنم.

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

اما پرچم چیست؟
در واقع به هدفی که مشخص می‌شود، «پرچم» می گوییم. مثلا ممکن است که پرچم، «رشته‌ای کارکتری» در دایرکتوری ریشه باشد. مسابقات CTF مثل حل و ساخت پازل است. پازلی که کامل شدن آن نیاز به دانش اعضای شرکت کننده دارد.

capture the flag

انواع مسابقات CTF:

  • فتح پرچم نردبانی یا Ladder CTF: در این نوع از مسابقات هر چه جلوتر می‌رویم پازل سخت‌تر و سخت‌تر می‌شود. تا قبل از اینکه به صورت کامل به اهداف تعیین شده نرسید، هیچ امتیازی به شما داده نمی‌شود. بنابراین ممکن است لازم باشد که اولین مسئله را حل کنید و وقتی که حل می کنید ندانید که آیا راه درست را رفته‌اید یا خیر. اگر هم که همه‌ی تیم‌ها توانستند پرچم را فتح کنند؛ تیم برنده تیمی است که زودتر از بقیه به نتیجه رسیده. اینگونه مسابقات معمولا به صورت انفرادی است.
  • فتح پرچم باز یا Open CTF: معمولا در قالب تیم‌های چند نفره بوده و این تیم‌ها در راه گرفتن دسترسی به پرچم تلاش می کنند. (در اکثر مواقع پرچم فقط رشته‌ای کارکتری است.) بعد از آن شرکت کنندگان این رشته را به سرور‌ مسابقات ارسال می‌کنند و در صورت درست بودن، بر اساس زمان و سایر پارامترها به تیم ارسال کننده امتیاز تعلق می‌گیرد.
  • چالش یا Challenge: یک چالش در اصل یک پازل امنیتی است. و این پازل می‌تواند هر چیزی باشد. قابلیت انعطاف در این نوع از مسابقات بسیار بالاست و شامل اکسپلوییت‌های باینری (مثل سرریز بافر)، حملات تحت وب، جرم شناسی، موبایل و حتی کارهای جاسوسی است.

 

چرا CTF؟

شاید این سوال مطرح باشد که چرا فتح‌پرچم؟ و مثلا چرا Hackathon یا امثال آن، نه؟ قضیه این است که معمولا مسابقات هکاتون بر اساس برنامه‌نویسی است و فقط افرادی می‌توانند شرکت کنند که کار اصلی آن‌ها برنامه‌نویسی باشد؛ اما دامنه‌ی CTF بسیار فراتر است. برای مثال در نوع «چالش» با هدف جاسوسی ممکن است از گوگل استفاده کنید تا اطلاعاتی را در خصوص یک فرد پیدا کنید و از آن برای مهندسی اجتماعی استفاده کنید. یعنی ممکن است شما برنامه‌نویس نباشید ولی بتوانید برنده شوید و همین موضوع CTF را به نوعی سرگرمی تبدیل می‌کند.

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

 

یک نمونه از مسابقات فتح پرچم:

در مطلب «رقابت با ترول، با چاشنی هکینگ» نحوه‌ی فتح پرچم به صورت مرحله‌به‌مرحله و همراه با تصاویر آن آمده است. در این رقابت باید فایل proof.txt موجود در root/ را به دست آورید. این رقابت توسط vulnhub طراحی شده که به شما یک ماشین مجازی از نوع ویرچوال باکس می‌دهد و شما می‌بایست از راه دور به آن حمله کنید. هیچ گونه دسترسی فیزیکی‌ای مجاز نیست. سطح آن مبتدی هست و بنابراین برای تمام علاقمندانی که می‌خواهند خود را به چالش بکشند، توصیه می‌شود.

منبع: چارچوب اصلی این مطلب از وبلاگ HP است.