Чтобы заработать больше денег на программах вознаграждения за ошибки, станьте лучшим в мире в одном деле и игнорируйте все остальное. Вот почему.

Очень заманчиво попытаться изучить и применить все, что можно, чтобы узнать о различных типах уязвимостей. Когда вы смотрите на сообщения о вознаграждении за ошибки, подобные той, что hackerone.com, становится ясно, насколько различаются каждая из обнаруженных уязвимостей. Когда я впервые начал изучать программы bug bounty, я думал, что должен знать все обо всем, чтобы соревноваться. Это неправда. На самом деле все наоборот. Если вы хотите преуспеть с программами вознаграждения за ошибки, выберите то, что вам интересно, и вы можете потратить тысячи часов на просмотр и узнать все, что можно об этом знать. Найдите свою нишу.

Разница между универсальными и специализированными охотниками за ошибками

Универсал

Универсальный охотник за головами будет искать все. Межсайтовый скриптинг, SQL-инъекция, неограниченная загрузка файлов, удаленное выполнение кода, XXE, захват поддоменов, пароли по умолчанию и т. Д. Список бесконечен. Большинство людей, которые стараются быть хорошими во всем, в конечном итоге оказываются средними или даже хуже. Типичный универсал тратит часы, дни и недели, пытаясь найти уязвимости в программе, находит очень мало или совсем не находит, затем сдается и переходит к чему-то другому. Есть некоторые универсалы, которые преуспевают, но они - исключение из правил.

В мире есть место для универсалов. В моей повседневной работе архитектором по кибербезопасности я должен быть универсалом. Мне нужно знать достаточно о большинстве вещей в кибербезопасности, чтобы знать, что хорошо, а что плохо, что является передовой практикой, а что нет, к чему я должен стремиться и как этого добиться. Я разбираюсь в криптографии, но не знаю математических деталей того, как она работает. Я понимаю, как проектировать и внедрять безопасную сетевую инфраструктуру, но я не инженер NetSec. Я знаю, как избежать написания небезопасного программного обеспечения и найти уязвимости в коде, но я не являюсь разработчиком на постоянной основе. Я знаю достаточно, чтобы позволить мне построить курс и поддерживать нас в этом направлении, используя специальные навыки других. Это то, что делают универсалы.

Специалист

Специалисты по поиску ошибок по-прежнему будут осведомлены обо всех различных типах уязвимостей, существующих при разработке системы, но они сужают свое внимание до гораздо меньшей области. Сосредоточение внимания означает, что они быстро получают экспертные знания и становятся лучшими в мире в этой области. Поступая таким образом, они могут находить то, чего не могут найти универсалы, используя информацию и понимание, которые есть только у них.

Некоторые специалисты являются мастерами RCE. Остальные - мастера слепых SQL-инъекций. Некоторые знают протоколы аутентификации, процессы, реализации и их недостатки, как внутри, так и снаружи. Хотя они способны обнаруживать ошибки за пределами своей специализированной области, они посвящают свое время охоты за ошибками тому, что у них получается лучше всего. И это окупается.

Что делает специалиста таким великим

Программы Bug Bounty - это переполненное пространство, и присоединиться к программе и быть первым, кто обнаружит ошибку и сообщить о ней, означает, что верно одно из следующих трех:

  1. Программа только что запустилась, и вы быстрее всех наткнулись на нее и подняли отчет
  2. Программа только что обновила свое программное обеспечение, и вы быстрее всех наткнулись на это и подняли отчет
  3. Вы знаете больше, чем все, кто до сих пор смотрел на эту проблему. Ваша уникальная проницательность позволила вам увидеть и понять то, чего до вас никто не делал.

Если вы универсал, вероятность того, что вы узнаете больше, чем все, кто уже смотрел, значительно снижается. Следовательно, вы обычно полагаетесь на пункты 1 и 2, чтобы получить деньги. Быть самым быстрым действительно работает: кто-то должен сначала найти, сообщить и получить деньги за обнаружение универсального уровня, но не всегда это будете вы.

Если вы являетесь специалистом, у вас значительно выше шанс достичь точки 3. Если вы знаете все, что есть об атаках XXE на конкретный фреймворк, и вы работаете в программе, которая интенсивно использует эту фреймворк для запуска своего API на основе XML, вы в удаче. Как только низко висящий плод собран, вы следуете за вами, чтобы выполнить настоящую работу и найти проблемы, которые никто не мог бы увидеть. Как и многие другие вещи в жизни, то, что вы делаете на мировом уровне, приносит вам зарплату мирового класса (при условии, что вы знаете, как применять это для максимального эффекта).

Каждый выдающийся специалист широкого профиля является специалистом в нескольких областях.

Если вы посмотрите на то, что делают великие универсалы-охотники за головами, становится ясно, что они посвятили свое время, усилия и энергию тому, чтобы стать специалистами во многих различных областях, что они превратились в фантастических универсалов. Они могли начать использовать SQL-инъекцию, а затем перешли на XXE, когда узнали все, что могли, в первой области, а затем на переполнение буфера, когда XXE больше не представлял проблемы. Они не просто опрыскивали и молились, чтобы достичь вершины - они делали свою домашнюю работу. Не дайте себя обмануть тем, кто находит ошибки во всем, нет никаких уловок или ярлыков, они просто вкладывают свою работу снова и снова.

Как вы найдете свою нишу (в чем вы должны стать специалистом мирового уровня)?

Выбор специальности - очень личное дело. Это зависит от того, что вас мотивирует. Часто ли вы используете ту или иную технологию в своей повседневной работе? Есть что-то, о чем вы действительно хотите узнать больше? Вы хотите получить максимальную прибыль от каждого отчета? Какие предметы вам интересны?

Если бы я хотел заработать как можно больше денег, я бы просмотрел все различные программы на HackerOne.com и посмотрел, какие виды уязвимостей приносят больше всего денег. Потом я изучил их.

Если бы я хотел научиться навыку, который хорошо передавался между компаниями, я бы выяснил, на каких технологиях работают все программы, а затем сосредоточил бы свое обучение на наиболее часто используемых стеках. Это было бы полезно не только в программах выявления ошибок, но и в повседневной работе. Знание всего, что нужно знать об общем стеке разработки, - ценный навык.

Если бы меня действительно интересовала аппаратная часть, я бы поискал программы, работающие с каким-либо компонентом Интернета вещей, а затем купил бы оборудование и протестировал его. Это совершенно другой навык по сравнению с тестированием веб-сайта или API. Если можно снять прошивку с микросхемы с материнской платы - молодец. Не многие люди делают это, потому что сначала нужно купить устройства. Это одна из немногих областей, где нельзя начинать работать только с ноутбуком. Стоимость установки отговаривает многих людей еще до того, как они начнутся.

Мировой класс не означает недоступность

Если вы достаточно сузите свой кругозор, вы сможете стать мастером мирового класса во всем. Хотя категория уязвимостей удаленного выполнения кода (RCE) является более узкой темой, чем рассмотрение полного OWASP Top 10, это все же огромная область, которую необходимо охватить. RCE в структуре Django намного уже. RCE в Django 2.2 еще уже. Чем более целеустремленным вы станете, тем больше у вас шансов стать лидером мирового класса.

Пример: Android Bug Bounties

Было бы неправильно утверждать, что я профессионально занимаюсь поиском ошибок Android. Я вообще-то ужасно в этом разбираюсь. Но когда я только начинал, никто этим не занимался, и по умолчанию я был одним из лучших в мире охотников за ошибками в Android. И я отстой, и все же я действительно хорошо справился.

Я потратил не более 8 часов на изучение Android Bug Bounty Hunting и смог погрузиться в несколько программ и найти несколько новых уязвимостей в течение еще пары часов поиска. Я выбрал нишу, о которой мне было бы интересно узнать больше, стал (относительным) экспертом в ней и добился успеха.

Выберите свою нишу и станьте в ней лучшим в мире. Вы можете стать мастером мирового класса.

Присоединяйтесь к другим в моем личном списке рассылки, чтобы быть в курсе моих последних статей, видео, мыслей и многого другого.

Первоначально опубликовано на https://craighays.com 28 марта 2020 г.