Хабрахабр

Интервью с багхантером Артёмом Московским. Он взломал Steam и получил самую крупную награду в истории Valve

Артем Московский — багхантер, пентестер и безопасник которому сразу хочется задать стыдный вопрос «сколько ты зарабатываешь?» В прошлом году он получил самое большое вознаграждение в истории Valve — $20 тыс и $25 тысяч за две крупные уязвимости в Steam и еще $10 тыс за баги поменьше.

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

В 2006 году, когда мне было 9 лет, у меня появился первый ПК, и я неосознанно решил, что буду крутиться в IT. До 10 класса ориентировался на программирование. После, когда появились первые успехи в инфосеке, решил что безопасность интереснее.

Тогда выбор пал на старый добрый uCoz, но идея «делать сайты круто» осталась. Началось с банального: нужно было сделать сайт для клана в игре Jedi Academy. Параллельно зависал на античате и других тематических форумах, почитывая статьи о типовых уязвимостях. Я посмотрел курсы «специалиста» по PHP. Просто было интересно.

Тогда я пользовался одной крупной рекламной сетью для арбитража трафика. Шли годы, а я все еще был в поиске себя и это завело меня в рекламу. Как сейчас помню, взгляд зацепился за параметры даты в запросе на получение статистики. Ну, как пользовался — грустно обновлял статистику и унывал от отсутствия лидов. Я написал в поддержку, и через час мой баланс на сайте показывал уже 300$. Несколько изящных движений пальцами рук, и в окне браузера появляется модальное окно — это была XSS. На этом заряде мотивации за следующий месяц я сделал в десять раз больше, помогая сайтам рекламных сетей стать безопаснее. Тогда в 10 классе, заработав первые «серьезные» деньги, я подумал — да, это моя тема.

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

Типа нахер учебу, работу — буду вот это делать. — У тебя тогда не сорвало крышу от своей крутости?

Почувствовал себя независимым от системы. — Не сорвало, но определенный сдвиг произошел.

Это же система, причем не особо эффективная. — А зачем пошел учиться и работать?

Универ и работа это простой способ найти единомышленников и друзей. — Одно дело быть частью системы, другое дело зависеть от нее.

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

— Тебя засыпают офферами после твоих рассказов?

Последний был в хорошую международную компанию на позицию Application Security Expert.
Да, офферы приходят.

Он раскрутил SQL инъекцию в базе данных на странице для партнеров и нашел возможность скачать ключи для любой игры. В 2018 году Артем нашел уязвимость в Steam.

Подробно о процессе он писал здесь.

Вау.
Только в одном наборе оказалось такое количество ключей. «Сгенерировался файл с 36,000 ключей от игры Portal 2. Таким образом, перебирая значения keyid потенциальный злоумышленник мог скачать все ключи, когда-либо сгенерированные разработчиками игр Steam» А всего наборов на данный момент более 430,000.

«Через 5 часов уязвимость была исправлена, однако статус triaged (принята) ей выставили через 8 часов и, черт возьми, для меня это были очень сложные 3 часа за которые мой мозг успел пережить стадии от отрицания до принятия.

Но баг то исправили, а значит его могли зарепортить раньше меня. Так как уязвимость не обозначили принятой, я полагал что очередь до моего репорта еще не дошла.

Думаю вложить во что-то, но еще не решил. Теперь, если посчитать все деньги за уязвимости от Valve, получится 55 тысяч.

— Как вообще твое занятие правильно называть?»

Возникают проблемы когда пытаешься объяснить людям не из IT, чем занимаешься. Багхантинг. Мне не комфортно говорить так, потому что, в моем сознании, это слово опошлили школьники, которые грозились взломать твой ВК или вычислить по ip. Для них ближе всего слово «хакер». Поэтому мой обычный ответ «Ну типа хакер» сопровождается неловким взглядом в пол.

— Что за скилл для этого нужен?

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

Но если нужен какой-то вывод в веб, то прибегаю к PHP. Практически всегда я использую Python, потому что он легкий и красивый. Веб-интерфейс работает локально на PHP — вывод и управление задачами, а сами таски отправляются на Python-«агенты», которые хостятся на парочке VDSок. Сейчас например автоматизирую некоторые задачи для разведки.

Иногда, когда пишу что-то на скорую руку и не секьюрно, то потом могу себе позволить в этом «продукте» пораскручивать инъекции, но это баловство не более.

— Ты долго выбираешь цель?

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

Либо попади глубже, куда большинство не доходит, либо придумай вектор, до которого большинство не додумались.
Если ты выбираешь публичную программу на Х1, которая уже несколько лет платит за баги, то не стоит надеяться на XSS в поле поиска.

До истории с Valve Артем описывал, как нашел уязвимость в одном из пулов для совместного майнинга криптовалюты — как раз в то время, когда все чокнулись на блокчейнах и росте биткойна.

За репорт Артему дали один биткойн — на тот момент $18 000. Он нашел способ обойти двухфакторную идентификацию и завладеть любым аккаунтом в приложении. Думать о том, сколько он стоит теперь Артему, наверняка, больнее, чем большинству из нас.

Но, пожалуй, самая курьезная история связана с компанией Люксофт, которую при недавнем выкупе оценили в $2 млрд.

Как ты уже догадался, логином и паролем для доступа к исходникам 84-ех проектов были те самые волшебные admin:admin! «На одном из поддоменов этой компашки стоит Bitbucket сервер.

Пароль то они сменили, а вот мне не то чтобы «спасибо» сказать — даже и не ответили». Среди проектов можно найти: BMW, TOYOTA, FORD, FERRARI, PANASONIC и т.д.
Кстати, Люксофт оказались теми еще редисками!

— Тяжело даются провалы?

Провал — это когда ты ставишь себе цель: вот зайду на Uber и найду RCE, заплатят стомильенов. Я бы не назвал это провалами. Это вполне выполнимая задача, которая находится в зоне твоего влияния. По-моему, правильная цель — понять инфраструктуру компании, понять функциональность веб-приложения, как взаимодействуют его части между собой, проверить различные кейсы. Наличие уязвимости уже за пределами этой зоны, поэтому ставить такую цель — это в первую очередь издеваться над собой.

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

— Что по-твоему действеннее, технические пути или социальные?

Багхантерам за социальные не платят, возможно даже наказывают. Смотря для чего. В реальных атаках применяется и то, и другое.

— Хороший безопасник должен иметь хакерский опыт?

Хороший, думаю, должен. Ну если хакерский опыт — это не 2 года условно, а умение раскручивать инъекции и находить XSS, то да.

Или ее можно делать качественно и некачественно? — Твоя работа — это такая штука, где или получилось, или нет.

Критерии зависят от ситуации: от оформления отчета и полноты рекомендаций, до количества уязвимостей и их критичности. — Если ты имеешь ввиду пентест, то да, можно делать качественно, а можно и нет.

— Ты воспринимаешь безопасников как врагов или как коллег?

Я и сам считаю себя безопасником. — Как коллег.

— А чувствуешь ли превосходство над обычными разработчиками?

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

Поэтому часто как раз нахожусь в процессе «создания». Мне время от времени в голову приходят мысли о создании и разработке своих интересных сервисов и инструментов в сфере ИБ. Пока все для себя, но возможно мир увидит мои творения.

Выбирал бы между работой в Uber и ЯндексТакси. Чтобы я делал, если бы мир фантастическим образом подобрел и безопасность перестала быть нужна?

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

— Если бы ты сейчас составлял программу обучения на хакера/багхантера, какие бы предметы там были?

Английский язык — вся годная информация на английском. Программирование. Анонимность. Литература — чтение отчетов с X1. Право — если плохо с физкультурой. Физкультура — на случай пативэна если плохо с анонимностью.

Если не отшучиваться, то реально — почему? — Я видел, в комментах тебя спрашивали, почему не переходишь на темную сторону.

Спокойный сон и внутренняя гармония важнее любых денег.

— Если бы перешел, ты бы был хорошим преступником?

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

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»