Продам 0day: как выгодно продать свой эксплоит

Содержание статьи

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

Работа…

Если ты в будущем хочешь связать свою жизнь с ИБ, то у тебя есть множествопутей реализации этой затеи. Конечно, ты столкнешься со многими препятствиями,начиная от разного понимания, что такое "ИБ", у тебя и у "босса", заканчиваятем, что в итоге, если ты хочешь генерировать ключи по ГОСТу или разбираешься вбумажках от ФСТЭК по персональным данным, то работы полно, а если ты любишь"техническую" работу, то предложений уже не так много, и скорее всего всезакончится вакансией системного администратора или программиста (хорошо, если суклоном в ИБ). Конечно, все это я говорю о легальной, законной работе, ведьзаниматься "грязью" — это для нас как переход на Темную Сторону Силы…

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

Баг-хантинг

У баг-хантера три пути развития (на мой скромный взгляд):

Вариант 1. НТП/НИИ/НПО имени кого-то там при чем-то там. Да-да. Впринципе, кибер-война — это уже не шутки, и нашей стране нужно все то же самое,что и МОССАДу с ЦРУ. Поэтому баг-хантер и эксплойт-райтер — полезный человек.Так как в ФСБ просто так не попасть, можно найти работу в каком-либо учреждении, которое работает, выполняя заказы "сами-знаете-кого". Уверен, чтоони там делают полезную и важную работу :). Попасть туда можно из универа (есликафедра соответствующая), по "протекции" или при внимательном поиске работы. Впринципе, и в само ФСБ после такого универа попасть реально (после годасобеседований и тестов получишь офицерскую ЗП и командировки раз в год чертзнает куда, и не факт, что тебе дадут ту работу, которую хочешь ты).

Вариант 2. Блэк-Хат. Если вариант 1 был для любителей милитаризма ишлема Дарта-Вейдера, то данный вариант для любителей рискнуть свободой издоровьем :). Эксплойт-паки нуждаются в пополнении новыми зеро-деями, и если утебя есть связи, то ты легко можешь продать свежую багу/эксплойт (0day) комунадо за много-много $$$. Этот вариант я не поддерживаю, и потому не жди никакихдеталей. К тому же, кто захочет, сам найдет и освоит эту дорогу; только помни,как опасен и коварен путь Темной Стороны...

Вариант 3. Свободная продажа. В мире существует множество фирм,которые с удовольствием купят у тебя инфу о зеро-дее и эксплойте. Причем все этоабсолютно законно и легально. Такие компании используют эту информациюдлявключения ее в сигнатуры своих IDS/IPS-устройств, или включают в сплойт-пакидля пентестеров. Конечно, платят они чуть меньше, чем на черном рынке, зато ты вряде случаев получаешь еще и всякий PR в виде авторства уязвимости (но уже безправ на нее) и возможность посещать всякие конференции и прочие фишки. К тому жеэтот вариант можно совмещать с обычной работой и ничем, по сути, не отягощатьжизнь. Так как в первом и втором варианте присутствует скрытность и не всегдасвобода, а во втором — еще и криминал, то я лично поддерживаю вариант номер 3,поэтому статья будет посвящена именно этому пути.

Рынок 0day

Существует множество компаний, которые хотят купить у тебя 0day. Процедурапокупки может отличаться, но примерно суть одна и та же. О ней мы поговорим чутьпозже, а пока рассмотрим рынок на основе опроса от unsecurityresearch.com.Результат показывает, что в среднем за 0day-уязвимости на клиентской сторонеможно получить от 1000/2000 долларов. Это средняя цена, потолок же можетдоходить и до 30000 долларов. Зависит от того, в каком продукте обнаруженапроблема. Из всех компаний, покупающих уязвимости, наиболее высокий среднийпоказатель у ребят из ZDI (ZeroDay Initiative), где большинство клиентских уязвимостей в промежутке отодной до трех тысяч долларов. Кроме того, ZDI сохраняют авторство в публикации,и когда инфа выходит в паблик, твое имя не сотрется (если ты сам этого нежелаешь). Кроме прочего, ZDI (а вернее, компания TippingPoint, основатели ZDI)являются спонсорами ежегодного конкурса PWN to OWN на CanSecFest, и именно ониплатят призовые фонды за взлом браузеров. Так что лично я для себя выбрал работуименно с этими парнями.

ZDI

Фактически TippingPoint является "подразделением" компании 3COM (а те, в своюочередь, продались Hewlett-Packard) и занимается разработкой системы IPS, вкоторую они и включают сигнатуры от купленных ими 0day-проблем. Фактическисигнатура в их IPS появляется задолго до того, как выйдет патч. Кроме того, ZDIуведомляет разработчика и проходит полный цикл от уведомления до ожидания патчаи скоординированной публикации о проблеме. До того, как информация станетдоступной, ZDI может делиться деталями проблемы с партнерами-вендорами решенийпо защите информации. Таким образом, продав 0day-багу ZDI, ты помогаешь всемвладельцам железки TippingPoint защититься от потенциальной угрозы. Но хватитрекламы, рассмотрим, каким же образом поднять лавэ.

Для начала надо найти уязвимость. В эпоху вездесущегофаззинга это может бытьне так уж и сложно, но все же это требует определенных знаний и навыков, аиногда даже и чутья с везением. Но, как бы то ни было, про поиск уязвимостей уженаписано немало букв. Вспомни хотя бы мою статью вапрельском ][ проэксплуатацию брешей вActiveX-компонентах. Итак, как найти уязвимость более-менее понятно, но нервись в бой, сначала надо определиться с жертвами. Очень большое значение имеет,ГДЕ именно найдена уязвимость. ZDI четко описывает требования к багам, которыеони готовы купить:

Это значит, что можно забыть про XSS-, LFI- и SQL-инъекции в популярныхдвижках. Нас интересует настоящая жесть вроде ошибок с указателями, переполнениябуфера, ошибки формата строки внедрение команд и прочих багов, которые приводятк выполнению произвольного кода. Нас интересуют знаменитые FTP/веб-сервера, базыданных, системы бэкапа, а также браузеры, ActiveX и плагины популярного ПО длябраузеров, ПО корпоративных систем и т.д. В этот список могут входить какплатные, так и опенсорсные продукты, главное, чтобы они были популярны и широкораспространены. Ну вот, собственно, и все...

А вот и не все. На самом деле найти уязвимость — это зачастую задача болеепростая, нежели проэксплуатировать ее. Поэтому надо показать, что найденнаятобой уязвимость реально опасна. Для этого можно написать Crash-PoC или эксплойтс запуском калькулятора, а можно выслать подробный бинарный анализ проблемы свыводами. От качества этой писанины зависит скорость, с которой ZDI отреагируетна твой товар и, возможно, качество этой реакции. Очевидно, что этот шагявляются самым трудным и, фактически, это и есть основная твоя работа. Чтобывыполнить его, требуется опыт и знания, за что собственно и платят деньги.

Шаг 1. Регистрация

Продам 0day: как выгодно продать свой эксплоит

Если нулевой шаг не поддается описанию в теме моей статьи (только затрагиваетобласть твоих интересов), то дальше я опишу сам процесс работы с ZDI. Отрегистрации до вывода денег. Итак, шаг первый — регистрация. Для этого идем насайт zerodayinitiative.com, где видим простой и понятный интерфейс. Смело жмиссылку на "Researcher Login". Нас просят ввести логин и пароль, но понятноедело, что у нас их нет... ищем в верхнем правом углу ссылку "Register". Отлично!Тут мы вводим свой e-mail, пароль и желаемый логин. В принципе, этогодостаточно, но чуть ниже есть поле "Referal". На него можно забить, но ярекомендую ввести туда мой логин :). Как только ты сдашь свой первый 0day, и темсамым покажешь, что твой аккаунт имеет смысл, тот, кого ты указал в качествереферала, получит 2500 очков вознаграждения (о них позже), так что смело вводи вэто поле "asintsov", а я буду ждать твоих успехов :).

После регистрации ты сможешь войти в систему, но этого недостаточно —необходимо официально подтвердить свою сущность. Для этого в закладке "MyAccount" надо отправить несколько форм. Первая — "My Profile". Тут ты заполняешьсвои настоящие ФИО, указываешь адрес и страну, откуда ты. Обрати внимание на то,что если ты из Кубы, Ирана, Северной Кореи, Сирии или, например, из Судана, тоZDI не будет с тобой работать. Отправив эти данные, знай, что на веб-сайте онине хранятся, а шифруются PGP-ключом и отправляются по e-mail'у в офис ZDI. Такимобразом, на веб-сервере нет никакой информации о тебе, кроме логина и e-mail'а.

После отправки профайла нужно подтвердить свою личность. Для этого иди изаполняй следующую форму — "Copy of Government Issued ID". Кликнув по этойссылке, ты получишь PDF-файл, который надо распечатать, вписать ручкой свойлогин от системы, приложить свой паспорт (разворот с фоткой) и засунуть этухудожественную композицию в сканер. Полученную форму отправить по электроннойпочте на zdi@3com.com,предварительнозашифровав на открытом ключе —https://www.zerodayinitiative.com/documents/zdi-pgp-key.asc (если непараноик, то можешь и не шифровать). В общем, паспорт должен быть обычным, хотяможно и загран — судя по всему, им там пофиг.

Следующий пункт — самый приятный — про то, каким путем ты хочешь получатьвознаграждение. Раньше было доступно три варианта: перевод Western Union, чекомили банковским переводом. Вариант с WU был шикарен, но в итоге от негоотказались, и теперь существует только два варианта — чеком или банковскимпереводом. Я выбрал банковский перевод; для этого надо знать номер своего счетав банке (ну, и иметь этот счет), название банка, SWIFT- позывной и адрес. Всеэто можно узнать как в самом банке, так и в интернете. Счет должен быть открыт вдолларах США. В идеале, если к этому счету привязана карточка, то деньги можноснимать без комиссии в фирменных банкоматах банка. После того, как вся этаинформация заполнена и подтверждена, напротив данных форм появятся большиезеленые кружочки с галочкой — мол, все ОК. Это значит, что можно работать. Насамом деле, даже пока галочек еще нет, уже можно слать инфу о багах, так как онипроверять уязвимости будут намного дольше, чем тебя регистрировать.

Шаг 2. Процесс

Итак, ты нашел уязвимость, написал эксплойт и описание на английском, и чтодальше? Дальше все просто — кликай по "Open Case" и заполняй эту форму. Небойся, никто у тебя уязвимость не украдет. Желательно рассказать, какиепривилегии нужны для реализации уязвимости, в конфигурации по умолчанию или нет(лучше, если да), нужны ли элементы социальной инженерии при атаке (типа, надоли заманить на свой веб-сайт и т.д.). После того, как ты отправил уязвимость, нежди моментального ответа, а начинай искать следующую багу. Дело в том, чтотеперь твой "отчет" ждет проверки, и ждать он может больше месяца, поэтому нестоит терять время. Через месяц тебя могут попросить по e-mail'у уточнитькакие-нибудь детали и опять исчезнуть на неделю-две, а могут сразу высказатьпредложение купить твою багу и права на нее. Прямо в письме будет указана исумма. Если ты согласен, то ответь на письмо, что, мол, согласен. После этогостатус баги в меню "My Cases" обновится, а еще через неделю тебе на счет в банкеупадет ровно та сумма, на которую вы договорились. В меню "My Cases" можноследить за судьбой проданной тобой дырки — тут через какое-то время будетсказано и о факте уведомления разработчика, и о том, когда уже можно делатьпубличное сообщение о проблеме, и тогда ты можешь на своем сайте воспроизвестиего — авторство уязвимости сохранено, нельзя только говорить больше, чем сказанов публичном сообщении ZDI.

Награда

Кроме суммы на счет ты получишь очки вознаграждения. Эта фигня показываеттвою полезность для ZDI. За первый баг ты получаешь 2500 очков, потом 2500 можнополучать с тех, кто указал тебя в качестве реферала и уже сдал свой первый баг.А потом с каждой новой проданной уязвимостью ты получаешь эти очки. Зачем онинужны? А за тем, что, набрав 10000 очков, ты становишься бронзовым партнером,20000 — серебряным, 35000 — золотым и, наконец, 50 000 — платиновым. Например,всем известный хакер @WTFuzz имеет двойной платиновый статус. Эти статусы даютразные полезные и вкусные плюшки, которые начисляются в конце календарного годас момента начисления первых очков. Плюшки представляют собой следующие бонусы.

Бронзовый:

Серебряный:

Золотой:

Платиновый:

Как видишь, бонусы достаточно вкусные и приятные. Кроме того, не забывай проосновное вознаграждение, которое достаточно адекватно оценивает твою работу. Запростое переполнение буфера в ActiveX-компоненте, которое находится за пятьминут COMRaider'ом, могут заплатить 2500 — 3000 долларов. Если находить по двеуязвимости в месяц, то можно жить — не тужить вообще. Многие западные ресерчерытолько за счет ZDI и живут.

Однако нельзя же всю жизнь только баги искать...

Выводы

Если ты хочешь начать свою баг-хантерскую жизнь, то я рекомендую начать ее сZDI. После года-двух успешной работы ты получишь опыт, знания, новые интересныеконтакты и шанс попасть на работу ресерчером/пен-тестером/консультантом кудаугодно, ведь нет лучшего резюме, чем связка адвайзори от ZDI с твоей фамилией.Главное — не зацикливаться на однообразных задачах, а развиваться. Желаю тебеудачи!

Компаний, которые хотят купить у тебя уязвимости, достаточно много; помимоZDI в список входят такие конторы, как iDefense —labs.idefense.com,SecuriTeam — securiteam.comили NetraGard — netragard.com.Кроме прочего, уязвимости в браузерах FireFox или Google Chrome можно продатьсамим вендорам. Правда, думается мне, что за code execution больше можновыручить у тех же ZDI.