How to Get Started With Bug Bounty?
Bug Bounty programs are a great way for companies to add a layer of protection to their online assets. A bug bounty program is a crowdsourced penetration testing program that rewards for finding security bugs and ways to exploit them. For researchers or cybersecurity professionals, it is a great way to test their skills on a variety of targets and get paid well in case they find some security vulnerabilities. The number of companies that have a formal crowdsourced program is increasing and so are the people who want to become a freelance penetration tester. The aspiring bug bounty hunters are of much different knowledge, experience, and skill levels.
Some are completely new to the idea of web development with little prior programming experience, some are experienced web developers with no experience in cybersecurity while some are highly skilled cybersecurity professionals. The steps that should be taken are the same for everyone, one can, however, skip one or more steps based on his/her skills and experience.
Let’s get started with these steps:
1. Learn Computer Networking:
A decent knowledge of Computer Networks is very much necessary for getting started with the bug bounty. Though you’re not required to have expertise in the computer networking domain to get started with bug bounty – but you should be proficient at least with the fundamentals of inter-networking, IP addresses, MAC addresses, OSI stack (and TCP/IP stack), etc. You can learn it from some of the quality online resources like GeeksforGeeks Computer Networks.
3. Learning Web Application Security Measures and Hacking Techniques: This will include learning about common security mechanisms, security practices, their bypasses, common vulnerabilities in web applications, ways to find these vulnerabilities, and ways to patch and prevent the applications from these vulnerabilities. Useful resources are:
- Recommended Books:
- Web Application Hacker’s Handbook
- Mastering Modern Web Application Penetration Testing
- Web Hacking 101
4. Practicing and Polishing Your Skills: Practicing helps in developing a framework for approaching a target. The more you practice on diverse targets of different difficulty levels the easier it will be for you to approach a web application in a way that increases your chances of finding a critical vulnerability (or even finding a vulnerability if the application is well secured and has been already tested by many hunters). Try making great use of these resources:
- Vulnerable Web Applications: These are intentionally vulnerable virtual machines or web app packages. Vulnerable web applications are available as general variants that contain many types of vulnerabilities and as dedicated variants that focus on a single vulnerability and its subtleties. Some examples are:
- OWASP Webgoat
- Cyclone Transfers
- Butterfly Security Project
- Juice Shop
- Rails Goat
- BWapp, DVWA(Damn Vulnerable Web Application), and Webgoat are the best for beginners.
5. Testing Real Targets: After you are thorough with your basics and have a decent level of skill, you can start doing the actual hunting on real websites. A lot of websites run bug bounty programs for their web assets. Some big names are:
These companies reward generously but finding a security bug on any of their assets is highly difficult due to tough competition. You must remember that the top bug bounty hunters of the world are testing these websites along with you. However, that doesn’t mean you can’t find something at all.
6. Staying Current on Latest Vulnerabilities: For this, you can follow elite researchers and learn from their work. You can also read disclosed reports on bug bounty platforms like HackerOne. Some recommended researchers to follow are:
- Frans Rosén
- Jason Haddix
- Jobert Abma
You need to know that if you really want to get started with bug bounty then it doesn’t matter what is your academic background or what is your current working domain – you simply can start learning the required skills and tools and start doing the actual hunting!!