Bug Bounty, Bug Bounty Bootcamp, Bug Hunting

#3 Bug Bounty. Типы активов в Bug Bounty.

Здравствуйте, дорогие друзья.

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

Социальные сайты и приложения

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

Программа вознаграждений, о которой мы поговорим, нацелена на социальные сайты и приложения.

Термин социальное приложение относится к любому сайту, который позволяет пользователям взаимодействовать друг с другом. Многие программы относятся к этой категории: примеры включают программу bug bounty для HackerOne и программы для Facebook, Twitter, GitHub и LINE.

Социальные приложения должны управлять взаимодействием между пользователями, а также ролями, привилегиями и целостностью учетной записи каждого пользователя. Как правило, у них есть потенциал для критических веб-уязвимостей, таких как небезопасные прямые ссылки на объекты (IDOR), утечка информации и захват учетных записей. Эти уязвимости возникают, когда на платформе много пользователей и когда приложения неправильно управляют информацией пользователей; когда приложение не проверяет личность пользователя должным образом, злоумышленники могут выдавать себя за других.

Эти сложные приложения также часто предоставляют пользователю много информации. Если проверка ввода не выполняется должным образом, эти приложения склонны к ошибкам внедрения, таким как внедрение SQL (SQLi) или межсайтового скриптинга (XSS).

Если Вы новичок в баг-баунти, я рекомендую Вам начать с социальных сайтов. Большое количество социальных приложений в настоящее время означает, что, если Вы ориентируетесь на социальные сайты, у Вас будет много программ на выбор. Также, сложная природа социальных сайтов означает, что Вы столкнетесь с обширной поверхностью для атаки, с которой можно экспериментировать. (Поверхность атаки приложения относится ко всем различным точкам приложения, которые злоумышленник может попытаться эксплуатировать.) Наконец, широкий спектр уязвимостей, которые обнаруживаются на этих сайтах означает, что Вы сможете быстро получить глубокие знания в области веб-безопасности.

Набор навыков, необходимых для взлома социальных программ, включает в себя способность использовать прокси-сервер, такой как прокси-сервер Burp Suite, представленный в разделе 4, и знания о веб-уязвимостях, таких как XSS и IDOR. Вы можете узнать больше об этом в разделах 6 и 10. Также полезно иметь немного навыков JavaScript программирования, и знания в области веб-разработки. Однако эти навыки не требуются, чтобы преуспеть в качестве хакера.

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

Общие веб-приложения

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

Цели, попадающие в эти категории, могут включать статические веб-сайты, облачные приложения, потребительские услуги, такие как банковские сайты и веб-порталы, Устройства интернета вещей (IoT) или другое подключенное оборудование. Как и социальные сайты, они также довольно разнообразны, и хорошо подходят для различных уровней мастерства. Примеры включают программы для Google, Министерства обороны США.

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

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

Мобильные приложения (Android, iOS и Windows)

После того, как Вы научитесь взламывать веб-приложения, Вы можете выбрать специализацию в мобильных приложениях. Мобильные программы становятся все более распространенными; в общем, большинство веб-приложений в настоящее время имеют мобильные эквиваленты. Они включают программы для Facebook Messenger, приложения Twitter, мобильного приложения LINE, приложения Yelp и приложения Gmail.

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

Вы должны понимать стратегии атак и анализа, такие как закрепление сертификата, мобильный реверс-инжиниринг и криптографию. Взлом мобильных приложений также требует немного большей настройки, чем взлом веб-приложений, так как вам потребуется мобильное устройство, над которым Вы можете поэкспериментировать. Хорошая мобильная испытательная лаборатория состоит из обычного устройства, рутированного устройства и эмуляторов устройств, для Android и iOS. Рутированное устройство — это девайс, для которого у Вас есть права администратора. Это позволит Вам экспериментировать более свободно, потому что вы можете обойти ограничения безопасности мобильной системы. Эмулятор — это виртуальная симуляция мобильной среды, которая работает на своем компьютере. Это позволяет запускать несколько версий устройств и операционных систем, без владения устройством для каждой установки.

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

API

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

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

Исходный код и исполняемые файлы

Если у Вас есть более продвинутые навыки программирования и реверсинга, Вы можете дать извлекать исходный код и тестировать исполняемые программы. Эти программы поощряют хакеров, в поиске уязвимостей, в программном обеспечении организации, напрямую предоставляя хакерам кодовую базу с открытым исходным кодом или двоичным исполняемым файлом. Примеры включают Internet Bug Bounty, программу для языка PHP и программу Вордпресс.

Взлом этих программ может повлечь за собой анализ открытого исходного кода, для поиска веб-уязвимостей и фаззинга двоичных файлов. Обычно Вы должны понимать концепции кодирования и информатики. Вам понадобятся знания о веб-уязвимостях, навыках программирования, связанные с кодовой базой проекта, и анализ кода. Криптография, разработка программного обеспечения и навыки реверс-инжиниринга полезны.

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

Аппаратное обеспечение и Интернет вещей

Последнее, но не менее важное, это аппаратное обеспечение и программы IoT. Эти программы просят Вас взламывать такие устройства, как автомобили, смарт-телевизоры и термостаты. Примеры включают программы поощрения ошибок Tesla и Ford Motor Company.

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

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

На этом все. Всем хорошего дня!

#1 Bug Bounty — Руководство по поиску веб-уязвимостей и сообщениям о них. Введение.

#2 Bug Bounty. Выбор программы Bug Bounty.