Bug Bounty-ə başlamaq istəyənlər üçün detallı yol xəritəsi
Müəllif : Rəvan Pəncəliyev
Bu məqalədə Bug Bounty-nin nə olduğundan, nələri əhatə etdiyindən və bu proqrama başlamaq, eyni zamanda irəliləmək üçün lazım olan tələb və bacarıqlardan danışacağıq.
İlk öncə gəlin baxaq ki , Bug nədir?
Bug Bounty proqramı kontekstində "bug" (səhv) proqram tətbiqi və ya sistemində etik hakerlər və ya təhlükəsizlik tədqiqatçıları tərəfindən aşkar edilmiş təhlükəsizlik açığına və ya zəifliyinə istinad edir. Bu zəifliklər sadə və aşağı riskli məsələlərdən tutmuş kritik və yüksək təsirli təhlükəsizlik qüsurlarına qədər dəyişə bilər.
Bug Bounty programı
Bug Bounty şirkətlər tərəfindən veb-saytlarına və onlayn proqram təminatına əlavə veb təhlükəsizliyi qatı əlavə etmək üçün təşkil edilmiş proqramdır. Bu, sistemdəki səhvləri tapmaq və səhvləri aradan qaldırmağa həll təmin etmək üçün iştirakçıları mükafatlandıran izdihamlı nüfuz test proqramıdır. Tələbələr, tədqiqatçılar və ya veb təhlükəsizliyi mütəxəssisləri üçün bu, veb təhlükəsizliyi və domenə xas bacarıqlarını sınamaq üçün əla fürsətdir və hər hansı bir təhlükəsizlik səhvi aşkar etdikdə onlar mükafat belə qazana bilərlər.
Mükafat (Reward) nədir?
Problemin ciddiliyinə və düzəltmə dəyərinə görə müxtəlif növ mükafatlar var. Onlar real puldan (ən çox yayılmış) premium abunəliklərə (Prime/Netflix), endirim kuponlarına (alış-veriş saytlarının elektron ticarəti üçün), hədiyyə çeklərinə və s. dəyişə bilər. Pul 50$-dan 50.000$-a qədər və hətta daha çox ola bilər.
Bug Bounty proqramının iki əsas növü var:
• İnternetdə açıq görünən və hamı üçün açıq olan public Bug Bounty proqramları.
• Qoşulmağa açıq şəkildə dəvət olunmuş tədqiqatçılar üçün nəzərdə tutulmuş private Bug Bounty proqramları.
Public programlarda iştirakçıların sayı potensial olaraq qeyri-məhduddur. Lakin bu, proqramın məxfiliyinin zərərinədir – maliyyə və ya dövlət qurumları kimi bəzi həssas təşkilatlar məxfilik siyasətini inkişaf etdirməyə üstünlük verirlər. Bundan əlavə, public programlar istedadların seçilməsinə imkan vermir və təcrübəli hakerlərlə yanaşı təcrübəsizləri də cəlb edəcəkdir.
Digər tərəfdən, private programlar yalnız iştirak etməyə dəvət olunmuş tədqiqatçılar üçün əlçatandır. Bu, təşkilatlara iştirakçıların sayı , onların təcrübə səviyyəsi, aşkarlamaların və qəbul edilən hesabatların həcmi haqqında qərar verməyə imkan verir.
Bug Bounty’ə başlamaq üçün nələri bilmək lazımdır?
• Şəbəkənin təməlləri və Kompüter Biliyi
Təməldə duran əsas konsepsiya Şəbəkənin əsaslarını bilməkdir. Bura daxildir: Şəbəkə, OSI model, TCP/IP model, IP və MAC ünvanları, DNS, VPN, Proxy, həmçinin ən çox istifadə olunan protokollar (HTTP(S),ARP,FTP,SSH,SMB,SMTP və s.) . Bunlar haqqında müəyyən qədər anlayış əldə etdikdən sonra ” WEB necə işləyir? ” bu sualın cavabını tapmaq lazımdır. Daha sonra HTTP header,request,response-lar, Status kodlar və bu kimi vacib məlumatları bilmək önəmlidir.
• Əməliyyat Sistemi
Windows və Linux əməliyyat sistemlərinin əsaslarını (File sistemi, Command-Line İnterfeysi) bilmək , onlardan düzgün və rahat şəkildə istifadəni öyrənmək lazımdır. Ümumiyyətlə Kiber Təhlükəsizlik sahəsini seçən bir şəxs Linux ƏS-ni bilməlidir. Linuxun bir çox paylamaları (distrubitions) var, lakin ən çox istifadə olunanları (Kali Linux, Ubuntu, Parrot OS , BlackArch - hər hansı biri) bilmək kifayət edir.
• Kriptografiya
Kriptoqrafiya məlumatların şifrələnməsi və təhlükəsiz ötürülməsi elmi və təcrübəsidir. Kriptoqrafiya Bug Bounty-də böyük əhəmiyyət kəsb edir və təhlükəsizlik tədqiqatçıları üçün dəyərli bacarıq və bilik sahəsidir. Bilmək lazım olan və önəmli olanlar:
Təməl Kriptoqrafiya: Əsas kriptoqrafiya anlayışlarını başa düşmək vacibdir. Bura simmetrik və asimmetrik şifrələmə, kriptoqrafik hash funksiyaları, rəqəmsal imzalar, hibrid şifrələmə kimi mövzular daxildir.
SSL/TLS Təhlükəsizliyi: Veb proqramlarında və şəbəkə trafikində istifadə edilən SSL/TLS protokollarının iş məntiqini başa düşmək təhlükəsiz rabitənin təmin edilməsində vacibdir. SSL/TLS zəiflikləri xüsusilə veb proqramlarında aşkarlana bilər.
Kripto-hücumlar: Kripto-hücumlar kriptoqrafik alqoritmləri effektiv şəkildə məcbur(force) etmək üçün istifadə olunan üsullardır.
Toollar: Sistemə sızdıqdan sonra istifadəçi parol hash-lərini toplamaq və qırmaq üçün istifadə olunan bəzi əsas toolları (məs: John The Ripper, Hashcat, Hashid və s.) bilmək vacibdir.
• OSINT
OSINT (Open Source Intelligence) ictimaiyyətə açıq və əlçatan mənbələrdən toplanmış məlumatlardan istifadə edərək hədəf haqqında məna və anlayışlar əldə etməyi nəzərdə tutur. OSINT-dən istifadə edərək Bug Bounty tədqiqatçıları hədəf sistemi və ya tətbiqi daha yaxşı başa düşə və zəifliklərin aşkarlanması prosesini dəstəkləyə bilərlər.Yəni , OSINT hədəfin infrastrukturunu, IP ünvanlarını, subdomenlərini, e-poçt ünvanlarını, hədəf sistem və ya proqramın istifadə etdiyi texnologiya və proqram versiyaları , hədəfin keçmiş zəiflikləri haqqında məlumat toplamaq, açıq portları və xidmətləri müəyyən etmək və s. üçün istifadə edilə bilər.
• Veb Tətbiqinin Təhlükəsizliyi (Web Application Security):
Veb proqramlarının təhlükəsizliyini anlamaq və test etmək üçün əsas biliklər lazımdır. Buraya əsas veb açıqları, onların aşkarlanması və istismarı(exploit), istifadə olunan tool-lar və s. daxildir. Məsələn, OWASP TOP 10 (Open Web Application Security Project) siyahındakı veb açıqlarını nümunə çəkmək olar. https://owasp.org/www-project-top-ten/
Bu açıqların aşkarlanması və istismarı üçün istifadə olunan əsas tool -lar var hansı ki , bilmək zəruridir. Məsələn:
Nmap (Network Mapper) - Şəbəkəni scan etmək, live hostları, açıq portları , zəiflikləri aşkarlamaq üçün istifadə olunur.
Wireshark - real vaxt rejimində şəbəkə trafikini tutmaq və təhlil etmək üçün geniş istifadə olunan açıq mənbəli şəbəkə protokolu analizatorudur.
Dirb və ya gobuster – Veb səhifələrindəki gizli qovluqları, gizli səhifələri tapmaq üçün istifadə olunur.
Sublist3r və DNSRecon – Veb saytların subdomenlərini sadalamaq üçün hazırlanmış tool-lardır.
Burp Suite – Veb pentestingdə istifadə olunan ən məşhur və geniş yayılmış bir framework-dür.
Metasploit – Veb proqramların və şəbəkələrin təhlükəsizliyini qiymətləndirmək üçün geniş spektrli istismarlar, payload-lar və köməkçi modulları özündə cəmləşdirən framework-dür.
Hydra - Parol hücumları və giriş məlumatlarını (autentifikasiya) aşkar etmək üçün istifadə edilən məşhur parol sındırma tool-udur.
John The Ripper və Hashcat – Parol hash-lərinin qırılması üçün məşhur hash cracking tool-lardır.
SQLMap - Veb proqramlardakı SQL injection zəifliklərini aşkar etmək və istismar etmək üçün hazırlanmış xüsusi tool-dur.
Və s. bu kimi daha bir çox tool müxtəlif məqsədlər üçün istifadə olunur.
• Proqramlaşdırma :
Proqramlaşdırma bacarıqları Bug Bounty proqramlarında əhəmiyyətli üstünlük təmin edir. Məsələn:
Vebdə : Proqramlaşdırma bacarıqları tətbiqin mənbə koduna baxmaqda və potensial zəiflikləri aşkar etməkdə, həmçinin, tətbiq məntiqini başa düşməkdə faydalı olacaq.
Scripting : Təhlükəsizlik tədqiqatlarında çox vaxt müəyyən əməliyyatları yerinə yetirmək üçün xüsusi skriptlər və tool-lar yaratmaq lazımdır. Bu cür skriptləri yazmaq üçün proqramlaşdırma dillərindən istifadə olunur.
Verilənlər Bazasının Təhlili : Proqramlaşdırma bilikləri verilənlər bazası strukturlarını və sorğularını başa düşməkdə və zəiflikləri aşkar etməkdə faydalı ola bilər.
Reverse Engineering : Adətən məhsulun və ya proqram təminatının işini başa düşmək və təkmilləşdirmək üçün olan bu prosesdə proqramlaşdırma bacarıqları tətbiq davranışını anlamaq və test etməkdə faydalıdır.
Və bütün bunlar üçün ən çox istifadə olunan proqramlaşdırma dilləri : Python, Bash Scripting, JavaScript, SQL, Ruby, C və C++ .
• Sistem və Şəbəkə təhlükəsizliyi :
Server və sistem təhlükəsizliyinin əsas anlayışlarını başa düşmək, əsas şəbəkə təhlükəsizliyi konsepsiyaları ilə tanış olmaq şəbəkədə və sistemdə zəif nöqtələri aşkar etmək üçün vacibdir. Bunlar aşağıdakı hallar üçün faydalı ola bilər:
Sistem tərəfindəki zəifliklər: Zəif parollar və istifadəçi hesabları , Tətbiq edilmiş və ya yenilənmiş təhlükəsizlik düzəlişləri olmayan proqram komponentləri, Qabaqcıl təhdidlərə qarşı zəif qoruma tədbirləri , Yanlış konfiqurasiya parametrləri
Şəbəkə tərəfindəki zəifliklər: Zəif konfiqurasiya edilmiş firewalllar, DoS (Xidmətdən imtina) hücumlarına qarşı qeyri-adekvat təminat, Şəbəkə cihazlarında zəifliklər , Şəbəkə trafikində şifrələmə çatışmazlıqları
• Əlaqə və reporting (bildirmə)
Bug Bounty proqramlarında əlaqə və report uğurlu tədqiqatçı olmağın vacib hissəsidir. Təhlükəsizlik zəifliklərini aşkar etməklə yanaşı, onların dəqiq və effektiv şəkildə bildirilməsi proqramın məqsədinə çatmasına kömək edir. Report (Hesabat)-da diqqət edilməli olan bəzi məqamlar:
Ətraflı Hesabat: Təhlükəsizlik zəiflikləri haqqında dəqiq və ətraflı məlumat vermək vacibdir. Hesabata zəifliyin aşkar edildiyi mühit, onun təsiri, potensial hücum ssenariləri və düzəlişlər üçün təkliflər kimi məlumatlar daxil edilməlidir.
Sübut və addımlar: Zəifliklər müəyyən edilən zaman atılan addımları və sübutları təqdim etmək zəifliyin mövcudluğunu təsdiqləmək üçün vacibdir. Skrinşotlar, URL-lər və digər sübutlar hesabatı dəstəkləyə bilər.
Etika və Məsuliyyət: Açıq kəşf prosesində etik və məsuliyyət prinsiplərinə uyğun hərəkət etmək vacibdir. İcazəsiz məlumatlara müdaxilə etmək və ya sızmaq qanunsuzdur.
Cavab və Ünsiyyət: Hesabat təqdim etdikdən sonra proqram administratorlarının cavablarına açıq olmaq yaxşı fikirdir . Ünsiyyət prosesini davam etdirərək, boşluğu aradan qaldırmaq və mükafatı almaq kimi addımlarda daha sürətli irəliləmək olar.
• Bug Bounty platforması nədir?
Bug Bounty platforması, proqramın bir hissəsi kimi şirkətlər və təhlükəsizlik tədqiqatçıları arasında əməkdaşlığa imkan verən onlayn platformadır. O, iki tərəf arasında vasitəçi kimi çıxış edərək, tədqiqatçıların aşkar edilmiş zəifliklər barədə məlumat verə biləcəyi və şirkətlərin bu hesabatları idarə edə biləcəyi təhlükəsiz məkan təmin edir. Bug Bounty platformalarına HackerOne, Bugcrowd və Synack kimi məşhur seçimlər daxildir. Əvvəlcə kiçik şirkətlərdə və ya açıq hədəf proqramlarında iştirak etməklə təcrübə qazana, sonra isə daha böyük şirkətlərin proqramlarına qoşulmaq olar.
İndiyə qədər nə öyrənmək lazım olduğu haqqında danışdıq , amma bunları öyrənməklə kifayətlənməyib öyrəndiklərimizi tətbiq edərək , çoxlu praktika edərək möhkəmlətməliyik .
• CTF
CTF (Capture The Flag) kibertəhlükəsizlik sahəsində insanların məqsədyönlü şəkildə həssas proqramlarda və ya vebsaytlarda gizli şəkildə gizlədilmiş "flag" adlanan mətn sətirlərini tapmağa çalışdıqları məşqdir. CTF yarışları kibertəhlükəsizlikdə praktiki təcrübə qazanmaq və müxtəlif təhlükəsizlik zəifliklərini anlamaq üçün əla virtual platforma təqdim edir.
Kiber Təhlükəsizlik sahəsi gündən-günə inkişaf edir və bu sahədə olan biri daim özünü inkişaf etdirməli, hər zaman yeniliklərə açıq olamlıdır. Unutmayın ki, səbr və daimi səy bu sahədə uğurun açarıdır.
Yuxarıda bəhs etdiklərimi öyrənmək və eyni zamanda praktika etmək üçün bəzi faydalı ola biləcək mənbələr:
• Bug Bounty platformaları:
• Web Security :
• Programming :
• CTF :
• Məqalələr:
Last updated