Как я обнаружил уязвимость системы безопасности в программе исследования уязвимостей Amazon

Я не хакер, я просто инженер-программист, у меня на памяти есть небольшая информация о безопасности из академических курсов колледжа.

Что случилось?

К концу 2020 года я как обычный пользователь делал что-то на одном из веб-сайтов Amazon и заметил ошибку. Была кнопка, которая не работала. Это была простая форма, в которой я ввожу количество страниц и нажимаю кнопку, чтобы загрузить шаблон на основе этого ввода. Я был разочарован, так как хотел, чтобы кнопка работала.

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

Смешанный контент: сайт https://kdp.amazon.com/ был загружен через безопасное соединение, но файл по адресу [здесь был указан URL-адрес] был перенаправлен через небезопасный связь. Этот файл должен обслуживаться по HTTPS. Эта загрузка заблокирована. См. Https://blog.chromium.org/2020/02/protecting-users-from-insecure.html для получения более подробной информации ».

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

Знакомство с HackerOne и моим первым испытанием

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

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

Через несколько часов после отправки мне сообщили, что он закрыт. И вот их ответ:

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

Это больше похоже на функциональную ошибку, чем на проблему безопасности.

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

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

Я был разочарован, хотя просто пытался. Тем не менее, их ответ подтолкнул меня узнать больше о том, что я нашел. Я решил подойти к вопросу более серьезно; поэтому я сделал то, что должен был сделать в первую очередь. Прочитал описание программы. Прочитав описание, я обнаружил, что «смешанный контент» указан в их описании как уязвимость, которую они принимают. Итак, я понял, что проблема заключается в том, как я описал уязвимость, а не в самой уязвимости. Я попытался отправить ответ на закрытый отчет, но ответа не получил. Я пытался быстро исправить отчет, просто сказав им, что он уже есть в их описании.

Мое второе успешное испытание

Я решил отправить новый отчет, у меня снова возникли проблемы с описанием слабого места, так как я не нашел смешанного содержания в списке. Я начал искать и узнал, что это «человек в центре атаки». Я начал подавать более формальный отчет. Я знаю одного белого хакера, я узнал его мнение, и он внес некоторые правки в форму. Он был более конкретным и ясным при описании уязвимости системы безопасности. Он предложил такое название: «Уязвимость смешанного контента может быть использована посредством атаки MITM». что было очень ясным и конкретным. Я включил видео о том, как используется атака MITM. Я отправил форму, и мне было любопытно узнать, каков будет их ответ.

Поскольку все это было 7 декабря, я не получал ответа в течение нескольких недель, вплоть до 8 января. Так что им потребовался целый месяц, но, скорее всего, из-за обычных отпусков, которые люди проводят в этот период времени. .

Скриншот из моего уведомления на HackerOne

К счастью, они приняли отчет, и я получил свой первый значок. Но денег я не получил, потому что оказалось, что эта программа не оплачивает KDP. Они платят за Интернет-магазин Amazon.

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

Почему я хочу, чтобы все знали об этическом взломе

Хотя я еще не научился этому, но вот мысли, которые у меня были:

1. Необязательно знать все, чтобы стать этичным хакером.

Раньше я думал, что чтобы научиться взламывать, нужно просто сосредоточиться на этом и узнать все об этом. Но я обнаружил, что вы можете узнать об одном или двух типах уязвимостей и начать поиск именно их. Например, вы можете узнать о межсайтовых сценариях (XSS) и обучиться всем способам возникновения этой уязвимости, и все. Так что это скорее новый навык, чем область, которую вы изучаете.

2. Вы можете найти уязвимости на ходу.

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

3. Я пожелал, чтобы университет привлекал студентов к работе с такими сайтами, как HackerOne.

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

4. Все сайты имеют уязвимости в безопасности.

Иногда мы забываем, что эти большие компании несовершенны. Думаю, если бы я научился этическому хакерству до того, как получил свой первый значок, я бы никогда не попытался делать что-либо на Amazon, потому что просто подумал бы, что у них не будет никаких уязвимостей. Тем не менее, заглянув в список программ HackerOne, вы обнаружите, что многие уязвимости ежедневно обнаруживаются на Amazon, Twitter, и многие из них есть повсюду, и они ждут, чтобы кто-то их обнаружил.

5. Это поможет вам понять, как лучше защитить свои проекты.

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

6. Хобби, приносящее дополнительные деньги.

Допустим, вы узнали о некоторых уязвимостях и решили попытаться найти что-то только по 2 часа в неделю. Если вы обнаружили ошибку, вам могут заплатить за нее высокую цену в зависимости от ее серьезности. Что-то вроде SQL-инъекции считается критически важным в большинстве программ и высокооплачивается, поэтому, например, в программе Amazon за это платят от 2500 до 10 000 долларов в зависимости от степени серьезности. Так что сумма возможных денег велика.

7. Работа для студентов.

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

8. Смена карьеры

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

9. Это не так сложно, как кажется.

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

10. Это весело

Я просто нахожу это развлечением в свободное время. То, как вы практикуетесь на примерах веб-сайтов и используете инструменты разработчика для исследования, для меня просто развлекает. Но это дело вкуса.

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