معرفی کامل منابع آموزشی باگ بانتی هانتینگ

سلام باگ بانتی هانترهای هوشمند آینده!

نوشتن هرروزه درباره آسیب پذیری ها و امنیت،  فضای تاریک و ترسناکی ایجاد می کند. چرا که همه بحث ها درباره گارد داشتن دربرابر  بازیگران شرور و سروکله زدن با مشکلات امنیتی است.

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

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

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

باگ بانتی هانتینگ

 

باگ بانتی چیست؟

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

باگ بانتی هانتینگ

وظیفه شرکت ها و سازمان ها در برنامه‌های باگ بانتی

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

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

جالب است که بدانید تقریبا تمام همکاران من قبل از آن چیزی از باگ بانتی نشنیده بودند. و آن تعداد کمی هم که دراین باره اطلاعات جزئی داشتند هیچ علاقه ای به مشارکت دراین برنامه ها نداشتند. به نظر نمی رسد این چیزی باشد که متوسط افراد فعال در زمینه توسعه وب بخواهند روی آن وقت بگذارند.

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

برنامه های باگ بانتی

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

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

اگر عضوی از یک سازمان هستید که علاقمند به ارائه برنامه باگ بانتی است، بهتر است نگاهی به استاندارد ISO/IEC 29147:2018 بیندازید. دراین راهنما موارد مورد نیاز برای کنترل و دریافت گزارش های باگ و اطلاعاتی درباره واژه‌های تخصصی، تکنیک ها و پالسی و ملزومات باگ ها توضیح داده شده است.

اگر علاقمند به اجرای برنامه باگ بانتی هستید، باید خودتان را برای کنترل و پشتیبانی از فرایندی که درادامه آمده آماده باشید:

  1. کشف. دراولین مرحله محققان به بررسی و کشف آسیب‌پذیری ها می‌پردازند. این افراد دراین مدت به دنبال برقراری ارتباط با شما هستند و انتظار دارند که شما درباره قوانین و ضوابط اسکوپ باگ ها و سیستم ها که پاداش براساس آنها پرداخت می‌شود، رویکرد شفافی داشته باشید.
  2. تنظیم گزارش. فرد نویسنده گزارش، که اینجا محقق امنیتی است، گزارش آسیب پذیری کشف شده را ثبت می‌کند. شما بایستی یک کانال ارتباطی امن مثل فرم اینترنتی یا ایمیل تقویت شده با یک الگوریتم رمزنگاری داشته باشید. همچنین باید یک تیم امنیتی داشته باشید که بتواند گزارش ثبت شده را مورد تجزیه و تحلیل قرار دهد.
  3. اعتبارسنجی و تریاژ. ممکن است تمایل داشته باشید که یک سیستم امتیازدهی مانند CVSS را برای امتیازدهی به آسیب‌پذیری ها واختصاص منابع به حل باگ های کشف شده بکاربگیرید. به یاد داشته باشید که نباید زمان خود را از دست دهید. آسیب‌پذیری ها اغلب پیامدهای غیرقابل جبرانی رای کاربران نرم افزار شما دارند. درنتیجه محققان امنیتی مسئولیت افشای عمومی آسیب‌پذیری های کشف شده را دارند، حتی اگر شما مشکل را رفع یا میزان آسیب را کاهش ندهید. اگر پاسخ مناسبی برای ارائه ندارید، درحالیکه هنوز نرم افزار شما آسیب پذیر است متوجه خواهید شد که آسیب‌پذیری های کشف شده از نرم افزار شما به صورت عمومی افشا شده اند.
  4. راه‌حل. وظیفه شما ایزوله کردن نرم افزار و رفع مشکل پیش آمده است. ممکن است دراین مرحله مجبور به اجرای راه حل های موقتی شوید تا زمانیکه یک راه حل کلی برای مشل تان پیدا کنید.
  5. آگاهی عمومی. باید درنظربگیرید که درصورت افشای اطلاعات چه چیزهایی را باید افشا کنید، وظیفه افشا بردوش چه کسی است، چگونه این خبر را افشا کنید و چه میزان از اطلاعات باید افشا شوند. دراکثر موارد، ازآنجاییکه سطح حمله عمومی است، افشای اطلاعات شما با عموم مردم در ارتباط است.
  6. پروموت کردن دپلویمنت. اگر پیشروی مرحله رفع مشکل شما نیازمند مشارکت سایر طرفین است (مثلا انتشار نسخه جدید اپلیکیشن که کاربران باید این نسخه جدید را مصب کنند)، از فوریت اعلام رفع مشکل مطمئن شوید یا درغیراینصورت افراد درگیر را درجریان قرار دهید.

آموزش رسمی درمقابل امنیت اطلاعات

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

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

به‌یاد داشته باشید

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

شروع بکار به عنوان هکرکلاه-سفید

اگر دانش فنی خوبی درزمینه امنیت مخصوصا در مورد وب سایت ها، می توانید از این دانش برای تبدیل جهان به مکان بهتری برای زندگی کردن استفاده کنید وازاین راه  پول دربیاورید.

hackerOne و intigrity از پلتفرم های محبوب برگزارکننده برنامه های باگ بانتی هستند.

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

برای مثال، قبل از اینکه از ابزارهای اتومیشن سازی که کارشان اسکن آسیب پذیری هاست و سرور هدف را تحت فشار قرار می دهند استفاده کنید، بایستی مطمئن شوید که طبق قوانین و سیاست های برنامه انجام چنین اسکن هایی دراین برنامه مجاز است یا خیر.

همچنین سعی کنید همیشه به یاد داشته باشید که عمده تلاش ما برای کمک به تقویت امنیت وب با اثبات وجود مشکل است، نه با خرابکاری کردن. اگر ازمجاز بودن انجام کاری در قسمتی از کار برای اثبات آسیب پذیری مطمئن نیستید، درچنین شرایطی باید همیشه با تیم امنیت هدف موردنظر تماس بگیرید و اجازه بگیرید. بازی با امنیت دارایی های دیجیتالی دقیقا مثل بازی با آتش است. این کار نیازمند نظم و مسئولیت پذیری زیادی است.

گزارش باگ بانتی

وقتی باگ یا آسیب پذیری را پیدا کردید و آماده افشای آن هستید، بایستی با سازمان یا شرکتی که این دارایی آسیب پذیر مربوط به آن است را با تهیه یک گزارش از این آسیب پذیری آگاه کنید.

برای نوشتن گزارش هیچ قالب مشخصی وجود ندارد، ولیکن hackerone  چند نکته کاربردی بدین منظور ارائه داده است.

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

اگر یافته های خودتان را بااستفاده از هکروان گزارش کنید، به صورت اجباری از شکل درست گزارش استفاده خواهید کرد.

صبور باشید

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

دراین صورت می توانید در وبلاگ شخصی تان به این قضیه هم باافتخار اشاره کنید که چگونه بزرگوارانه دوره اصلاح باگ و پرداخت پاداش را تمدید کردید.

موارد فنی پایه برای شروع

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

HTTP/HTTPS

HTTP یک پروتکل ارتباطی است که به منظور برقراری ارتباط بین مرورگرهای وب و وب سرورها ایجاد شده است. اکنون شما بایستی به اهمیت این نیرنگ که برپایه نیرنگ دیگر است پی ببرید! برای اینکه یک دانش کلی و پایه ای از پروتکل های HTTP، درخواست ها و پاسخ های HTTP، وضعیت کدها، انکدینگ/دکدینگ، SOP، کوکی‌ها، MIEM و تجزیه HTML به منابع زیر مراجعه کنید.

https://www.w3schools.com/whatis/whatis_http.asp
https://www.tutorialspoint.com/http/http_status_codes.htm
https://www.tutorialspoint.com/http/http_url_encoding.htm
https://www.tutorialspoint.com/http/http_requests.htm
https://www.tutorialspoint.com/http/http_responses.htm
https://www.hacker101.com/sessions/web_in_depth

دانش پایه شبکه

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

https://www.wpbeginner.com/glossary/dns/
https://www.networkworld.com/article/3268449/what-is-dns-and-how-does-it-work.html
https://www.cloudflare.com/learning/dns/what-is-dns/
https://www.icsi.co.uk/courses/icsi-cnss-certified-network-security-specialist-covid-19
https://www.geeksforgeeks.org/tcp-ip-model/
https://www.youtube.com/watch?v=0AcpUwnc12E&list=PLkW9FMxqUvyZaSQNQslneeODER3bJCb2K
https://commotionwireless.net/docs/cck/networking/learn-networking-basics/
https://www.slideshare.net/variwalia/basic-to-advanced-networking-tutorials
https://www.utilizewindows.com/list-of-common-network-port-numbers/
https://www.digitalocean.com/community/tutorials/an-introduction-to-networking-terminology-interfaces-and-protocols

دستورات لینوکس

بهتراست دانش خود را درباره دستورات لینوکس بالا ببرید.

linuxcommand.org

برنامه نویسی / کدنویسی

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

درادامه زبان های پیشنهادی خودم را که هرکسی باید حداقل به صورت پایه چیزی از آنها بلد باشد و درادامه بیشتر یادبگیرد را ارائه کرده ام.

باگ بانتی هانتینگ

HTML :

https://www.w3schools.com/html/
https://www.codecademy.com/learn/learn-html
https://htmldog.com/guides/html/advanced/

PHP :

https://www.w3schools.com/php/
https://www.codecademy.com/learn/learn-php
https://www.guru99.com/php-tutorials.html
https://www.codecademy.com/learn/paths/web-development

JavaScript :

https://www.w3schools.com/js/
https://www.youtube.com/watch?v=PkZNo7MFNFg
https://www.codecademy.com/learn/introduction-to-javascript

SQL(Structured Query Language) :

https://www.youtube.com/watch?v=HXV3zeQKqGY
https://www.w3schools.com/sql/
https://www.codecademy.com/learn/learn-sql

اتومیشن:

هیچ وقت از یک انسان برای بکارگرفتن یک ماشین استفاده نکنید

بلد بودن زبان های برنامه نویسی ای در ادامه لیست شده اند به شما کمک می کند تا به آسانی وظایف خودتان را اتومیشن سازی کنید.

بلد بودن این زبان ها به شما این قابلیت را می دهد تا بتوانید ابزارهای خودتان را کدنویسی کنید، ابزارهای پرمصرف دیگر را ارتقاء دهید و متناسب با نیازهای خودتان بهینه سازی کنید.

Bash :

https://0xprial.com/wp-content/uploads/2021/02/bash-bug-bounty.pdf
https://0xprial.com/wp-content/uploads/2021/02/Coding-For-Pentester.pdf
https://www.tutorialspoint.com/unix/shell_scripting.htm
https://www.learnshell.org/
https://medium.com/quick-code/top-tutorials-to-learn-shell-scripting-on-linux-platform-c250f375e0e5

Ruby :

https://www.learnrubyonline.org/
https://www.codecademy.com/learn/learn-ruby

Python:

https://realpython.com/
https://www.amazon.com/Python-Web-Penetration-Testing-Cookbook-ebook/dp/B00YSILC2K
https://docs.python.org/3/tutorial/
https://www.pcwdld.com/python-cheat-sheet

Golang :

https://tour.golang.org/welcome/1
https://www.udemy.com/learn-go-the-complete-bootcamp-course-golang/

باگ بانتی هانتینگ

یک مسیر برای یادگیری انتخاب کنید

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

کد منبع

اینترنت اشیا

سخت افزار

مهندسی معکوس

هاست

موبایل اپلیکیشن

وب اپلیکیشن

بهتر است یک مورد از این لیست را برای شروع یادگیری انتخاب کنید. اکثر افراد درابتدا دارایی وب اپلیکیشن را بخاطر راحتی آن برای یادگیری انتخاب می کنند.

یادگیری درباره آسیب‌پذیری‌ها

آسیب‌پذیری ها را تک به تک مطالعه کنید و یادبگیرید. یکی از آسیب‌پذیری های 10 آسیب‌پذیری برتر OWASP را انتخاب کنید و عمیقا به مطالعه و یادگیری آن بپردازید. محیط سندباکس محلی مخصوص به خودتان را ایجاد کنید و دراین محیط به تست این نوع از آسیب پذیری بپردازید. با اپلیکیشن بازی کنید و سعی کنید تا بفهمید که به چه دلیل آسیب‌پذیراست. سپس درهمه جای اینترنت به دنبال آن بگردید [با یک مجوز مناسب یا یک پالسی افشای مطمئن تست را انجام دهید]. مواردیکه درادامه گفته شده را در زمان یادگیری یک آسیب‌پذیری، همیشه به یاد داشته باشید:

برای تست و شناسایی کردن این آسیب پذیری به چه نحوی باید عمل کنم؟

چگونه WAF و سایر موارد دفاعی رایج را دور بزنیم؟

یک اندپوینت اپلیکیشن امن / تعمیرشده چه شکلی است یا چه واکنشی نشان می‌دهد؟

اپلیکیشن های آسیب پذیر زیادی وجود دارد. می توانیداز این اپلیکیشن ها برای کسب تجربیات عملی درمورد یک آسیب‌پذیری خاص استفاده کنید. برخی از آنها عبارتند از:

DVWA
bWAPP
OWASP WebGoat

CTF ها همیشه برای یادگیری مناسب نیستند:

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

یادگرفتن چیزهای جدید در زمان تست کردن:باگ بانتی هانتینگ

ممکن در زمان انجام فرایند تست برای یک نوع آسیب‌پذیری با چیزهای مشکوکی روبه رو شوید. مثلا قرار است یک اندپوینت graphQL کشف کنید، اما اطلاعات کمی دراین زمینه دارید. آیا به این معنی است که باید از کار دست بکشید؟ نه! آنچه باید ازآن یادبگیرید را یادبگیرید و سپس تست کردن را متوقف کنید.

قبل ازاینکه دوباره برای تست آسیب‌پذیری ها  به این اندپوینت برگردید از گوگل درباره این تکنولوژی تحقیق و مطالعه کنید.

اگر نتوانستید به این روش کار را جلو ببرید، تکنولوژی یا اپلیکیشن موردنظر را داخل سندباکس قرار دهید و برای دست‌گرمی و تمرین تست کنید.

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

برای درک روش و نحوه بدست آوردن آسیب‌پذیری‌ها به صورت مستمر رایت‌آپ‌های سایر محققان امنیتی را مطالعه کنید. برای شروع من رایت اپ های InfoSec  را پیشنهاد می‌کنم. همچنین نگاهی به  Hacktivityهکروان هم بیندازید. خواندن رایت آپ های سایر محققان امنیتی و گزارش های افشا شده هکروان به شما این فرصت را می‌دهد تا:

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

شناسایی (Reconnaissance)

ریکان به مجموعه فرایندها و تکنیک هایی (ردیابی، اسکن و شمارش) گفته می شود که برای کشف و جمع‌آوری اطلاعات محرمانه سیستم هدف از آنها استفاده می‌شود. درطول مدت زمان اجرای ریکان، محقق امنیتی تلاش می کند تا جاییکه می‌تواند درمورد سیستم هدف اطلاعات جمع کند. برای ریکان؛ پیشنهاد می کنم Dirty-Recon.pdf را مطالعه کنید.

آیا می‌توانید به ابزارهای اتومیشن سازی اعتماد کنید؟

به عنوان یک تازه کار، بهتراست تا زمانیکه به خود ابزار و نحوه کار آن آشنایی کامل و کافی ندارید، از ابزارهای اتومیشن سازی دوری کنید،

به جز برای استفاده از proxy به هیچ ابزاری اعتماد نکنید.

فقط زمانی از ابزارها استفاده کنید که نحوه کار ابزار آگاه هستید.

به عنوان یک محقق امنیتی مبتدی در ابتدا بهتر است سمت کدام اهداف بروید؟

به عنوان یک فرد مبتدی، بهتر است سمت برنامه های باگ بانتی نروید، بلکه بهتر است برای کسب تجربه، اعتبار، امتیاز و جایزه های قابل قبول، بیشتر روی برنامه های VDP تمرکز کنید. درابتدا بیشتر روی یادگیری تمرکزکنید نه پول، برنامه‌های VDP یا سایت های مستقلی که انعام یا اعتبار و امتیاز پیشنهاد می کنند را تست کنید. کوئری‌های بسیاری وجود دارند که به کمک آنها می توانید چنین برنامه هایی را در Google جستجو کنید، اما مثال های کمی برای آن وجود دارد: (فراموش نکنید که می توانید از زبان های مختلفی استفاده کنید!)

باگ بانتی هانتینگ

نوشتن یک گزارش آسیب‌پذیری مناسب

نوشتن یک گزارش مفصل مهم ترین قسمت نوشته های باگ بانتی است. اگر نتوانید یک گزارش خوب و پرمفهوم بنویسید، ممکن است باعث سردرگمی تیم تریاژ شوید. نتیجه یک گزارش بی مفهوم و مبهم میتواند:

  • پرداخت کمتر از انتظار،
  • بسته شدن گزارش با N/A،
  • طولانی تر شدن زمان تایید آسیب پذیری توسط تیم تریاژ

باشد.

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

یک گزارش آسیب‌پذیری بایستی محتواهایی که درادامه آمده اند را دربربگیرد:

  • عنوان
  • خلاصه
  • شرح
  • اندپوینت آسیب پذیر
  • نحوه کشف آسیب پذیری
  • نحوه بازتولید آسیب پذیری
  • تاثیر و سناریو
  • راه‌حل پیشنهادی

عنوان: دربخش عنوان آسیب‌پذیری بایستی یک عنوان متناسب با آسیب‌پذیری‌ای که می خواهید درباره آن گزارش بنویسید، انتخاب کنید. برای مثال، شما در اندپوینت تماس دامنه xyz.com یک Reflected XSS پیدا کرده اید. دراین حالت عنوان شما باید چیزی شبیه به این باشد: Reflected XSS در اندپوینت تماس دامنه xyz.com .

خلاصه: دراین بخش خلاصه ای کوتاه از آسیب‌پذیری ارائه دهید.

شرح آسیب پذیری: دراین قسمت اطالاعات مفصلی درباره آسیب پذیری ارائه دهید. برای مثال، اگر درحال تهیه گزارش برای یک آسیب‌پذیری XSS در فرم تماس هستید، توضیح دهید که XSS دراین اندپوینت چگونه اتفاق می‌افتد و چگونه کار می‌کند.

اندپوینت آسیب‌پذیر: تمام URLها/ اندپوینت ها/ دارایی‌هایی که بخاطر این مشکل امنیتی آسیب پذیر هستند را لیست کنید.

نحوه کشف آسیب پذیری: دراین بخش نحوه کشف این اندپوینت و آسیب‌پذیری را توصیف کنید، تمام ابزارها یا اسکریپت‌های که از آنها در این فرایند استفاده کرده اید را دراین قسمت لیست کنید.

نحوه بازتولید آسیب‌پذیری: این قسمت مهم ترین بخش گزارش است. دراین گام تمام مراحل ضروری برای بازتولید مشکلی که پیدا کرده اید را به صورت مرحله به مرحله بنویسید. بدین‌ترتیب تیم تریاژ می‌تواند این مراحل را دنبال و مشکل را بازتولید کند. اگر برای هر مرحله اسکرین شات هم اضافه کنید، کار تیم تریاژ بسیار آسان تر خواهد شد. همچنین، می توانید یک POC ویدیویی تولید و به گزارش تان اضافه کنید.

تاثیر و سناریو: اکثرا مقدار پاداش بانتی شما به این قسمت بستگی دارد. دراین قسمت، شما بایستی بتوانید نحوه سواستفاده مهاجم از آسیب‌پذیری علیه آن سازمان را به خوبی توضیح دهید. توضیح دهید که آسیب‌پذیری که کشف کرده اید چه اثراتی می‌توان داشته باشد. چه کارهای دیگری می‌توانید با این آسیب‌پذیری انجام دهید، مهاجم بااستفاده از این آسیب‌پذیری به چه چیزهایی می تواند دسترسی داشته باشد، مهاجم بااستفاده ازآن چگونه می تواند به به سایر کاربران حمله کند و … . همچنین درصورت امکان دراین بخش یک سناریو واقعی حمله سایبری اضافه کنید تا گزارش را تاثیرپذیرتر کند.

راه‌حل پیشنهادی: برای آسیب‌پذیری‌ای که پیدا کرده‌اید راه حل پیشنهاد کنید. تیم توسعه براساس راه‌حل‌های پیشنهادی مشکل را رفع می‌کند و از شما درخواست می‌کنند تا دوباره هدف را تست کنید.

درزمان نوشتن گزارش همیشه موارد زیر را به یاد داشته باشید:

  • هیچوقت اسکرین شات‌ها یا ویدیوهای POC خودتان را جاییکه برای همه قابل مشاهده است آپلود نکنید. میتوانید ویدیوهای POC خودتان را در یوتوب قرار دهید، ولیکن بایستی برای قرار دادن آن از تیم امنیتی سازمان اجازه بگیرید + ویدیو را به صورت Unlisted آپلود کنید.
  • هیچ وقت قبل ازاینکه آسیب پذیری کاملا رفع نشده، گزارش یا جزئیات آسیب‌پذیری را به صورت عمومی افشا نکنید.
  • قبل از افشای یک آسیب‌پذیری از شرکت اجازه بگیرید.
  • درصورت امکان از کلید PGP عمومی برای رمزگزاری پیام هایتان درزمان گزارش استفاده کنید.

چند رایت‌آپ‌ی که برای تهیه و تنظیم گزارش باکیفیت نوشته شده است

Writing a good and detailed vulnerability report
What does a good report look like?

مورادی که بهتراست بخوانید

1- Web Hacking 101 [  کپی شده ازhttps://hackerone.com/resources/web-hacking-101 ]
2- Resources for Beginner Bug Bounty Hunters
3- Web Application Hacker’s Handbook
4- Mastering Modern Web Penetration Testing
5- The Hacker Playbook 1, 2 and 3
6- The Mobile Application Hacker’s Handbook
7- Breaking into Information Security

#هشتگ‌ هایی که در توییتر باید دنبال کنید

#bugbounty
#bugbountytips
#infosec

بلاگ‌هایی که باید دنبال کنید

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

http://www.shawarkhan.com/
https://blog.securitybreached.org/
https://blog.detectify.com/
http://geekboy.ninja/
http://bugbountypoc.com/
https://www.hackerone.com/blog
https://forum.bugcrowd.com/
https://securitywall.co/
https://0xpatrik.com/
https://blog.it-securityguard.com/
https://blog.innerht.ml/
http://brutelogic.com.br/blog/
https://seanmelia.wordpress.com/
https://respectxss.blogspot.com/
https://www.gracefulsecurity.com/
https://whitton.io/
https://tisiphone.net/
http://archive.nahamsec.com/
https://www.hackerscreed.org/
http://danlec.com/blog
https://wehackpeople.tumblr.com/
https://bitquark.co.uk/blog/
https://www.arneswinnen.net/
https://medium.com/@arbazhussain/
http://www.rafayhackingarticles.net/
http://www.securitytube.net/
https://hackasia.org/
http://www.gangte.net/
https://mukarramkhalid.com/
https://securitytraning.com/
https://jubaeralnaziwhitehat.wordpress.com/
http://www.securityfocus.com/
http://www.blackhat.com/
https://www.metasploit.com/
http://sectools.org/
https://labs.detectify.com/
https://blog.rubidus.com/
http://www.securityidiots.com/
https://hackernoon.com/
https://sqli-basic.blogspot.com/
https://bugbaba.blogspot.in/
https://vulnerability-lab.com/
https://medium.com/@know.0nix/
https://medium.com/@codingkarma/

کانال‌های یوتوبی که باید دنبال کنید.

این کانال ها توسط محققان امنیتی‌ای اداره می‌شود که POC های خودشان را داخل این کانال ها آپلود می‌کنند. با تماشای این کانال ها می توانید با روش هایی که این محققان برای مهار کردن حملات استفاده می‌کنند آشنا شوید. [اگر شما هم کانال مفیدی میشناسید که درلیست ما قرار داده نشده، لطفا درکامنت ها با ما درمیان بگذارید]:

1- Nahamsec
2- coding
3- Black Hat
4- Hacking Simplified
5- Hisham Mir
6- Devil Killer
7- Girish Kumar
8- Muhammad Khizer Javed
9- Suleman Malik
10- madrobot
11- Harsh Jaiswal
12- Frans Rosén
13- HackerOne
14- Bugcrowd
15- josue Fernandez
16- vulnerability0lab
17- Vijay Kumar
18- Mohamed Niyaaz
19- Web Development Tutorials
20- Jan Wikholm
21- Bhargav Tandel
22- ErrOr SquaD
23- Arbin Godar
24- Ameer Assadi
25- Penetration Testing in Linux
26- Behroz Alam
28- Farah Hawa

 

 

دیدگاهتان را بنویسید

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