diff --git a/docs/blog/.authors.yml b/docs/blog/.authors.yml index 872318b65..f1f65351b 100644 --- a/docs/blog/.authors.yml +++ b/docs/blog/.authors.yml @@ -1,7 +1,12 @@ authors: mheidari98: name: Mahdi Heidari - description: Creator + description: ایجادکننده avatar: https://avatars.githubusercontent.com/u/84391363 url: https://github.com/mheidari98 + HIGHer: + name: HIGHer + description: مشارکت‌کننده + avatar: https://avatars.githubusercontent.com/u/44268880 + url: https://github.com/HIGH0101 diff --git a/docs/blog/posts/CTFTime-Data analysis.md b/docs/blog/posts/CTFTime-Data analysis.md new file mode 100644 index 000000000..fdf4b9288 --- /dev/null +++ b/docs/blog/posts/CTFTime-Data analysis.md @@ -0,0 +1,135 @@ +--- +title: تحلیل آماری روی سایت CTFTime +date: 2025-02-01 +authors: [mheidari98,HIGHer] +slug: CTFtime-data-analysis-2024 +description: CTFtime data analysis 2024 +tags: + - Data Analysis + - CTFtime +--- + +# نگاهی تحلیلی بر رقابت‌های CTF در سال ۲۰۲۴ + +در این پست نگاهی تحلیلی انداختیم به آمارها و داده‌های سایت CTFtime مربوط به سال ۲۰۲۴ که در ادامه ارائه شده است. 📈📉📊 + +
+![Cover](figure analysis 2024/Cover.png) +
+ + + + +## ۱- مقدمه + +ما برای نخستین بار یک تحلیل روی داده‌های سال ۲۰۲۴ سایت CTFtime انجام دادیم تا دید بهتری به شرکت‌کنندگان و برگزارکنندگان مسابقات CTF بدهد. این بررسی شامل روند امتیازات، توزیع رتبه‌ها، میزان رقابت‌پذیری مسابقات و معیارهای انتخاب بهترین رویداد برای شرکت‌کنندگان است. گرچه API این سایت اطلاعات خوبی را ارائه می‌دهد اما برخی از اطلاعات مسابقات، مانند تغییر رتبه تیم‌ها در طول سال، به‌طور مستقیم در این سایت ثبت نمی‌شوند، بنابراین ما برخی از این داده‌ها را به‌مرور در طول سال جمع‌آوری و تحلیل کرده‌ایم. همچنین، کدهای مورد استفاده برای تولید این نمودارها در این [آدرس](https://github.com/FlagMotori/CTFTime-Analysis) در دسترس هستند تا سایر +علاقه‌مندان بتوانند داده‌ها را بررسی و تحلیل کنند. 🚀 + +🔍در ابتدا ویدیویی از رقابت ۱۰ تیم برتر در طول سال ۲۰۲۴ را می‌بینید که پیش افتادن تیم kalmarunionen از هفته ۱۳ جالب توجه است. + +
+![ویدیو رقابت](figure analysis 2024/race plot.gif) +
+ +## ۲- مقایسه نسبت امتیازات به رتبه + +این نمودار توزیع امتیازات برای ۲۰۰ تیم برتر در سال ۲۰۲۴ نشان می‌دهد. همان‌طور که از نمودار مشخص است، اختلاف امتیاز بین تیم‌های رتبه‌های بالا (رتبه‌های ۱ تا ۲۵ ) نسبت به تیم‌ها با رتبه‌های پایین‌تر زیاد است. به عبارت دیگر شیب نزولی امتیاز در رتبه‌های بالا زیادتر است و برای رتبه‌های پایین به تدریج کم می‌شود که نشان‌دهنده شکاف قابل توجه امتیاز است. این الگو نشان‌ می‌دهد که تیم‌های میان رده با اندکی کسب امتیاز بیشتر، می‌توانستند رتبه بهتری بدست آورند، هرچند که در بالای جدول رقابت برای قرار گرفتن جز ۱۰ تیم زیاد است. + +
+![ScoreVsRand](figure analysis 2024/ScoreVsRank.png){ width=450px height=450px } +
+ + +## ۳- توزیع حضور تیم‌ها در رویدادها + + اگرچه سایت CTFtime از سال ۲۰۱۷ برای رتبه‌بندی تیم‌ها تنها ۱۰ مسابقه‌ با بیشترین امتیاز هر تیم را لحاظ می‌کند، اما بررسی میزان شرکت در مسابقات جالب است. +نمودار میله‌ای اول (هیستوگرام) توزیع تعداد رویدادهای شرکت‌شده در سال ۲۰۲۴ را نشان می‌دهد. بیشتر تیم‌ها در بازه ۱ تا ۳۰ رویداد را شرکت کرده‌اند، اما تعداد کمی از تیم‌ها در بیش از ۶۰ رویداد حاضر بوده‌اند. نمودار جعبه‌ای دوم این را تایید می‌کند که میانه تعداد رویدادهای شرکت‌شده حدود ۲۰ است، اما مقادیر پرت (outliers) نشان می‌دهند که برخی تیم‌ها تعداد بسیار بالایی از رویدادها را شرکت کرده‌اند، حتی تا ۱۵۰ رویداد!! این تفاوت نشان می‌دهد که ممکن است برخی تیم‌ها از این رتبه‌بندی اطلاع ندارند، در حالی که بیشتر تیم‌ها هدفمندتر حضور محدودتری داشتند. + +
+![event Count Participation1](figure analysis 2024/eventCountParticipation1.png){ width=350px height=400px } +![event Count Participation2](figure analysis 2024/eventCountParticipation2.png){ width=350px height=400px } +
+ + +## ۴- تأثیر تعداد رویداد بر امتیاز تیم‌ها + +این نمودار پراکندگی، توزیع امتیازات تیم‌ها را در برابر تعداد رویدادهای CTF که در سال ۲۰۲۴ شرکت کرده‌اند نشان می‌دهد. مشاهده می‌شود که اکثر تیم‌ها در محدوده ۱۰ تا ۴۰ رویداد حضور داشته‌اند و امتیازات آن‌ها در بازه ۲۰۰ تا ۶۰۰ قرار دارد. همچنین، چند تیم که در تعداد کمی از مسابقات شرکت کرده‌اند، امتیازات بسیار بالایی کسب کرده‌اند که نشان‌دهنده تمرکز آن‌ها بر رویدادهای باکیفیت‌تر یا عملکرد بهینه‌تر در مسابقات است. در مقابل، برخی تیم‌ها که در بیش از ۸۰ رویداد شرکت کرده‌اند، امتیازات متوسط یا پایین‌تری دارند. داده‌ها و نمونه‌ای با امتیاز بیشتر از ۱۶۰۰ تأیید می‌کنند که صرفاً شرکت در تعداد زیاد مسابقات تضمین‌کننده رتبه بالا نیست و شناخت توانایی تیم خود و انتخاب هوشمندانه مسابقه نقش مهمی در امتیازهای بالا دارد. + +🔍 یکی از **نکاتی** که باید لحاظ کرد این است که تیم‌های باتجربه احتمالا مسابقه کمتری شرکت کردند، چون با کسب امتیاز بالا از یک مسابقه خوب، وقتشان را بهینه‌تر سرمایه‌گذاری کردند. در مقابل، تیم‌های نوپا با حضور بیشتر، به دنبال یادگیری بیشتر، رشد سریع‌تر و کسب تجربه از این مسابقات بودند. + +
+![Scatter](figure analysis 2024/scatterPlot.png){ width=500px height=500px } +
+ + +## ۵- توزیع تعداد تیم‌ها بر اساس کشور + +در نمودار اول با درنظر گرفتن ۲۰۰ تیم بالای جدول، تعداد تیم‌های متعلق به هر کشور نشان داده شده است. ایالات متحده با ۲۴ تیم در صدر قرار دارد و پس از آن تیم‌های بین‌المللی با ۲۱ تیم وجود داشتند. + این توزیع نشان‌دهنده تأثیر بالای کشورهایی مانند آمریکا و روسیه در رقابت‌های امنیت سایبری است. + کشورهای آسیایی نظیر چین، ژاپن، ویتنام و هند نیز سهم قابل‌توجهی از تیم‌های برتر را به خود اختصاص داده‌اند. + **نمودار دوم**، کشورهایی که بیشترین تعداد تیم را در سایت CTFtime در طول این سال‌ها داشته‌اند را نشان می‌دهد. + ایالات متحده با ۵۹۹۶ تیم در صدر قرار دارد. هند با ۵۳۴۷ تیم نیز به‌طور چشمگیری در حال رشد است. کشورهای روسیه، چین، فرانسه و اندونزی نیز با بیش از ۱۰۰۰ تیم نیز حضور دارند. + +🔍 **نکته** قابل‌توجه و پراهمیت‌تر برای ما، تعداد تیم‌های ایرانی در سال ۲۰۲۴ و در کل این سال‌هاست که می‌توان آن را با کشورهای درحال توسعه و با جمعیتی نزدیک به ایران مانند ترکیه، مصر، پاکستان مقایسه کرد. گرچه جایگاه بدی نداریم اما بنظر می‌توانیم با ترویج این مسابقات در کشور از کشورهایی مثل ایتالیا، لهستان پیشی بگیریم. + +
+![Country teams 2024 ](figure analysis 2024/Country team Count.png){ width=600px height=400px } +
+
+![Country teams points](figure analysis 2024/Country team Point.png){ width=600px height=400px } +
+ +## ۶- مقایسه امتیاز رتبه ۲۰ام در مسابقات مختلف + +نمودار زیر، مقایسه‌ای روی ۳۰ رویداد مختلف سال ۲۰۲۴ است که امتیاز کسب شده در رتبه ۲۰ام را بدون احتساب وزن در هر مسابقه نشان می‌دهد. رویداد ENOWARS 8 با ۶۴ امتیاز در رتبه اول قرار دارد که بیشترین امتیاز را به تیم ۲۰ام در مسابقه‌اش می‌دهد. +اگرچه ممکن است وزن این مسابقات باهم متفاوت باشد، اما این نمودار می‌تواند به انتخاب مسابقه بهتر برای کسب امتیاز کمک کند. مسابقاتی مانند UIUCTF ، SECCON CTF Quals و Bambi CTF نیز از جمله رویدادهای بوده‌اند که به رتبه ۲۰ام امتیاز بالایی داده‌اند. پس، اگر قصد دارید در رقابت‌های CTF شرکت کنید، این نمودار می‌تواند به شما کمک کند. + +
+![20th rank point](figure analysis 2024/20th point.png){ width=600px height=400px } +
+ +## ۷- مقایسه توزیع امتیاز رویدادها + +یکی از تحلیل‌های جالب، مقایسه توزیع امتیاز در مسابقات مختلف است که در نمودارهای زیر آمده است. به عبارت دیگر تغییر رتبه در مسابقات مختلف چه تاثیری روی امتیاز کسب شده دارد و شیب کاهش امتیاز با افزایش رتبه چگونه است. به عنوان مثال، نمودار زیر در سال ۲۰۲۴ در مسابقات ASISCTF Quals و ångstromCTF نسبت امتیاز مقایسه شده است. در ångstromCTF، اختلاف امتیازات بین رتبه‌های برتر زیاد نیست اما در ASIS CTF Quals، توزیع امتیازات افت بیشتری دارد. بدین معنی که تیم اول در هر دو مسابقه ۱۰۰ درصد امتیاز را در سایت CTFtime بدست می‌آورد در حالی که تیم دوم درمسابقه ASIS تنها ۵۰ درصد امتیاز آن رویداد اما در ångstromCTF نزدیک به ۷۰ درصد امتیاز را در سایت CTFtime بدست می‌آورد. + +🔍بنابراین شرکت در مسابقاتی که شیب کاهش امتیاز کندتر است هوشمندانه خواهد بود. +😎 + +
+![declining point1](figure analysis 2024/declining point1.png){ width=400px height=400px } +![declining point2](figure analysis 2024/declining point2.png){ width=400px height=400px } +
+
+![declining point3](figure analysis 2024/declining point3.png){ width=400px height=400px } +![declining point4](figure analysis 2024/declining point4.png){ width=400px height=400px } +
+ +## ۸- تیم‌ها با بیشترین برگزاری رویداد + +بر اساس داده‌های جمع‌آوری شده توسط وب‌سایت CTFtime از سال۲۰۱۷، در نمودار اول تعداد رویدادهای CTF برگزار شده توسط تیم‌ها را در طول این سال‌ها را نشان می‌دهد، تیم ASIS با سازماندهی ۲۷ مسابقه در صدر قرار دارد. تیم‌های HackerDom و SECCON CTF نیز با ۲۲ و ۱۹ رویداد به ترتیب در رتبه‌های دوم و سوم هستند. این نشان‌دهنده فعالیت چشمگیر این تیم‌ها در زمینه برگزاری و کمک آن‌ها به توسعه و آموزش مباحث امنیت سایبری از طریق مسابقه‌های CTF است. +اینکه ASIS به عنوان یک تیم ایرانی در این جایگاه قرار دارد تحسین برانگیز است.💪 + +در نمودار دوم میزان امتیاز کسب شده از برگزاری این رویدادها را نشان می‌دهد که تیم ASIS با کسب ۳۲۹۴ امتیاز به عنوان برترین تیم شناخته شده است. تیم‌های oops و Plaid Parliament of Pwning نیز با امتیازهای بالای ۲۰۰۰ به ترتیب در رتبه‌های دوم و سوم قرار دارند و در نهایت نمودار سوم ترکیب دو نمودار اول و دوم را نشان می‌دهد. + +
+![event orgnizers1](figure analysis 2024/event orgnizer1.png){ width=450px height=450px } +![event orgnizers2](figure analysis 2024/event orgnizer2.png){ width=450px height=450px } +![event orgnizers3](figure analysis 2024/event orgnizer3.png){ width=450px height=400px } +
+ +## ۹- رتبه بدون برگزاری رقابت + +از آنجایی که برگزاری مسابقه دارای امتیاز است و در رتبه‌‌بندی تیم‌ها موثر است، ما رتبه‌ی ۱۰۰ تیم‌ برتر سال ۲۰۲۴ را بدون در نظر گرفتن امتیاز برگزاری مسابقه محاسبه کردیم تا میزان رقابت و امتیاز کسب شده از **شرکت در مسابقات** را نشان دهیم. تصاویر زیر رتبه تیم‌ها و میزان جابه‌جایی آن‌ها را نشان می‌دهد که به عنوان مثال تیم FlagMotori با ده رتبه صعود به رتبه ۶۳ می‌رسد. نکته جالب عدم تغییر رتبه تیم‌های بالای جدول است که بدلیل کسب امتیاز بالا از شرکت در مسابقات، برگزاری مسابقه روی امتیاز آنها تاثیری نداشته است. + +
+![rank point1](figure analysis 2024/rank1.jpg){ width=340px height=400px } +![rank point2](figure analysis 2024/rank2.jpg){ width=340px height=400px } +
+
+![rank point3](figure analysis 2024/rank3.jpg){ width=340px height=400px } +![rank point4](figure analysis 2024/rank4.jpg){ width=340px height=400px } +
+ +## ۱۰- جمع‌بندی + در این پست سعی کردیم با اطلاعات و داده‌های سایت CTFtime، تحلیل کاربردی روی مسابقات، تیم‌ها و معیارهای مختلف ارائه کنیم. +امیدواریم که این اطلاعات برای تیم‌هایی که قصد شرکت یا برگزاری مسابقه CTF دارند مفید باشد. \ No newline at end of file diff --git a/docs/blog/posts/figure analysis 2024/20th point.png b/docs/blog/posts/figure analysis 2024/20th point.png new file mode 100644 index 000000000..fb106490e Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/20th point.png differ diff --git a/docs/blog/posts/figure analysis 2024/Country team Count.png b/docs/blog/posts/figure analysis 2024/Country team Count.png new file mode 100644 index 000000000..d259fd6aa Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/Country team Count.png differ diff --git a/docs/blog/posts/figure analysis 2024/Country team Point.png b/docs/blog/posts/figure analysis 2024/Country team Point.png new file mode 100644 index 000000000..9f3879114 Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/Country team Point.png differ diff --git a/docs/blog/posts/figure analysis 2024/Cover.png b/docs/blog/posts/figure analysis 2024/Cover.png new file mode 100644 index 000000000..812c2cded Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/Cover.png differ diff --git a/docs/blog/posts/figure analysis 2024/ScoreVsRank.png b/docs/blog/posts/figure analysis 2024/ScoreVsRank.png new file mode 100644 index 000000000..b3eef1b73 Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/ScoreVsRank.png differ diff --git a/docs/blog/posts/figure analysis 2024/declining point1.png b/docs/blog/posts/figure analysis 2024/declining point1.png new file mode 100644 index 000000000..37e6efa1d Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/declining point1.png differ diff --git a/docs/blog/posts/figure analysis 2024/declining point2.png b/docs/blog/posts/figure analysis 2024/declining point2.png new file mode 100644 index 000000000..0ca2c385d Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/declining point2.png differ diff --git a/docs/blog/posts/figure analysis 2024/declining point3.png b/docs/blog/posts/figure analysis 2024/declining point3.png new file mode 100644 index 000000000..65bf78b06 Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/declining point3.png differ diff --git a/docs/blog/posts/figure analysis 2024/declining point4.png b/docs/blog/posts/figure analysis 2024/declining point4.png new file mode 100644 index 000000000..d842417ba Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/declining point4.png differ diff --git a/docs/blog/posts/figure analysis 2024/event orgnizer1.png b/docs/blog/posts/figure analysis 2024/event orgnizer1.png new file mode 100644 index 000000000..149750af3 Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/event orgnizer1.png differ diff --git a/docs/blog/posts/figure analysis 2024/event orgnizer2.png b/docs/blog/posts/figure analysis 2024/event orgnizer2.png new file mode 100644 index 000000000..076803f05 Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/event orgnizer2.png differ diff --git a/docs/blog/posts/figure analysis 2024/event orgnizer3.png b/docs/blog/posts/figure analysis 2024/event orgnizer3.png new file mode 100644 index 000000000..0166f59dc Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/event orgnizer3.png differ diff --git a/docs/blog/posts/figure analysis 2024/eventCountParticipation1.png b/docs/blog/posts/figure analysis 2024/eventCountParticipation1.png new file mode 100644 index 000000000..970c2ae09 Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/eventCountParticipation1.png differ diff --git a/docs/blog/posts/figure analysis 2024/eventCountParticipation2.png b/docs/blog/posts/figure analysis 2024/eventCountParticipation2.png new file mode 100644 index 000000000..cc0374685 Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/eventCountParticipation2.png differ diff --git a/docs/blog/posts/figure analysis 2024/race plot.gif b/docs/blog/posts/figure analysis 2024/race plot.gif new file mode 100644 index 000000000..3d59b6332 Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/race plot.gif differ diff --git a/docs/blog/posts/figure analysis 2024/rank1.jpg b/docs/blog/posts/figure analysis 2024/rank1.jpg new file mode 100644 index 000000000..a6f8014c0 Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/rank1.jpg differ diff --git a/docs/blog/posts/figure analysis 2024/rank2.jpg b/docs/blog/posts/figure analysis 2024/rank2.jpg new file mode 100644 index 000000000..ad58a19b3 Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/rank2.jpg differ diff --git a/docs/blog/posts/figure analysis 2024/rank3.jpg b/docs/blog/posts/figure analysis 2024/rank3.jpg new file mode 100644 index 000000000..c2a21e41f Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/rank3.jpg differ diff --git a/docs/blog/posts/figure analysis 2024/rank4.jpg b/docs/blog/posts/figure analysis 2024/rank4.jpg new file mode 100644 index 000000000..505abec05 Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/rank4.jpg differ diff --git a/docs/blog/posts/figure analysis 2024/scatterPlot.png b/docs/blog/posts/figure analysis 2024/scatterPlot.png new file mode 100644 index 000000000..882fee737 Binary files /dev/null and b/docs/blog/posts/figure analysis 2024/scatterPlot.png differ diff --git a/docs/crypto/source/index.md b/docs/crypto/source/index.md index aba4de9a0..24440be5b 100644 --- a/docs/crypto/source/index.md +++ b/docs/crypto/source/index.md @@ -17,10 +17,12 @@ این کتاب یکی از کتاب‌های پرطرفدار و بسیار توصیه شده در جامعه رمزنگاری است. دلیل آن این است که مفاهیم پیچیده و عمیق ریاضی رمزنگاری را به زبان ساده و همراه با مثال و تمرین بیان می‌کند تا درک مطلب خواننده را افزایش دهد. این کتاب عمدتاً بر روی سیستم‌های رمزنگاری کلید عمومی و امضای دیجیتال و همچنین ریاضیات آن‌ها تمرکز می‌کند. خواننده‌ای که بر مطالب این کتاب تسلط داشته باشد، نه تنها برای مطالعه بیشتر در رمزنگاری به خوبی آماده می‌شود، بلکه به درک عمیق اصول ریاضی که رمزنگاری مدرن بر آن استوار است دست خواهد یافت و می‌تواند به حل چالش‌های CTF مبتنی بر مفاهیم ریاضی کمک شایانی کند. + --- - ### Cryptography and Network Security by Behrouz Forouzan Cryptography-And-Network-Security_Forouzan این کتاب از یک رویکرد قدم به قدم برای آموزش رمزنگاری و امنیت شبکه استفاده می‌کند. شما در ابتدای کار به هیچ دانش ریاضی خاصی مانند نظریه اعداد یا ... نیاز ندارید چرا که در طول مطالعه کتاب اون رو بدست میارید، از آنجایی که رمزنگاری و امنیت شبکه را نمی‌توان بدون پیشینه در زمینه ریاضیات مورد بحث قرار داد، این موضوعات در فصل‌های ۲، ۴ و ۹ مورد بحث قرار می‌گیرند. خوانندگانی که با این حوزه‌های ریاضیات آشنا هستند می‌توانند این فصل‌ها را نادیده بگیرند. فصل ۱ تا ۱۵ رمزنگاری را مورد بحث قرار می‌دهد. در ضمن فصل‌های ۱۶ تا ۱۸ امنیت شبکه مورد بحث قرار می‌گیرد. + --- - ### Secret History: The Story of Cryptology by Craig P. Bauer Secret_History_The_Story_of_Cryptology