Белорус регулярно находит «дыры» в безопасности популярных приложений и держится в топе мировых рейтингов.
Минский разработчик Дмитрий Лукьяненко ищет уязвимости в продуктах Google и Facebook. Он регулярно находит «дыры» в безопасности популярных приложений, получает за это вознаграждения и держится в топе мировых рейтингов. «Только не пишите, что я хакер», — просит он. Дмитрий работает на «светлой стороне» — помогает улучшать приложения и делает это очень успешно, пишет tut.by.
«У меня был коронный подход»
Все началось в 2015 году. Дмитрий из любопытства изучил Android-приложение «ВКонтакте» и нашел в нем уязвимость: стороннее приложение могло влиять на «ВКонтакте» и скрыто подписывать пользователя на группы.
Без особых надежд Дмитрий описал уязвимость, отправил отчет на специализированную площадку — и получил от «ВКонтакте» награду в тысячу долларов.
После этого он начал исследовать другие приложения — Mail.ru, Dropbox, Uber и саму операционную систему Android. Почти везде он находил уязвимости.
— У меня был коронный подход, который «прокатывал» почти в каждом приложении, — рассказывает он. — Один раз я попробовал Gmail — в нем не прокатило. Но потом я вернулся к менее популярным приложениям Google — например, Inbox и редактору документов. Там уязвимости были.
Дмитрий отправил множество отчетов о «багах» в крупные компании — те закрывали «дыры» и платили вознаграждения.
— Я увидел, что это может приносить доход, — вспоминает Дмитрий. — Тогда у меня была основная работа, а это было как хобби. Но я открыл ИП, все налоги плачу.
15 тысяч долларов за «дыру» в безопасности
Пока самая крупная награда Дмитрия — выплата в 15 тысяч долларов за уязвимость, которую он нашел в Messenger от Facebook в 2016 году. Та «дыра» в безопасности была связана с пользовательскими файлами, которые могли попасть в стороннее приложение. В теории этим могли воспользоваться злоумышленники.
Почему за эти уязвимости столько платят? Дмитрий считает, что это важно для репутации компаний.
— Одна голова хорошо, а много — лучше. Программы bug bounty (массовый поиск уязвимостей — прим.) позволяют людям со всего мира принимать участие. Так больше шансов, что уязвимость будет найдена.
Я не скажу, что те уязвимости, которые я отправляю в Google, серьезные. Но они могут сработать как бомба замедленного действия. Если кто-то ее раскрутит, выйдет громкий заголовок о том, что есть проблема. Она может быть несерьезной, но из нее могут сделать большой шум.
Хобби стало работой
В начале 2018 года жизнь Дмитрия поменялась: он неожиданно потерял работу.
— Были какие-то предупреждения, но из них я не мог понять, что это предупреждения об увольнении. Если бы я это понял, я походил бы по собеседованиям, были бы какие-то варианты. А так получилось: я пришел на работу и мне сказали, что я уволен.
Какое-то время разработчик искал новое место, а потом вспомнил, что Google предлагала посмотреть вакансии. Он связался с компанией и получил предложение участвовать в программе грантов. ИТ-гигант регулярно платит за то, что специалисты со всего мира ищут уязвимости в его продуктах.
— Я решил: попробую. Приостановил поиск работы, снял небольшой офис. Жена в тот момент была не против. Переживала, что нам может не хватать на жизнь, но предложила попробовать.
Сейчас поиск уязвимостей — основное занятие Дмитрия. Он сам решает, где именно их искать и в какое время этим заниматься. Его никто не контролирует. Обычно он начинает работу в офисе в 9−10 утра и заканчивает в 14−15 часов.
— Если в голове остались неотработанные идеи, потом пробую их дома. Но в таком темпе невозможно работать каждый день, потому что приходится много думать. Чтобы не сойти с ума, работу надо совмещать с разгрузкой. В такие дни я позволяю себе ничего не делать, только ради интереса смотреть исходные коды Android и решать домашние вопросы.
Сумма «один Дмитрий»
За 2018 год Дмитрий получил 16 выплат от Google, большая их часть равнялась 1337 долларам. В департаменте компании, который занимается грантами, даже начали в шутку называть сумму в 1337 долларов «один Дмитрий».
Сейчас разработчик находится на 19-м месте в «зале славы» Google, посвященном людям, которые нашли ценные уязвимости.
Дмитрий нашел немало «багов» и в других популярных сервисах. В специальном списке Facebook по итогам 2018 года он находится в первой пятерке. Компания поблагодарила его и других исследователей безопасности «от лица более миллиарда пользователей».
Facebook подарила Дмитрию поездку в Лас-Вегас на конференцию, посвященную безопасности. Благодаря высокому рейтингу разработчик побывал и на других мероприятиях в Майами и Лондоне, сейчас планирует поездку в Сингапур.
«В этом есть азарт, похоже на рыбалку»
Как вообще найти уязвимость в приложении?
— Android-приложения в основном пишутся на Java. Их легко конвертировать в текстовый формат — псевдоисходный код. Этого хватает для анализа, — объясняет Дмитрий. — Если я нахожу уязвимость, то делаю отчет о ней. Описываю, как ее воспроизвести, пишу мини-программу, чтобы можно было запустить и убедиться, что уязвимость работает.
По словам разработчика, искать «баги» очень интересно.
— В этом есть азарт, немного похоже на рыбалку. Я никогда не знаю, найду я что-то или нет. А когда начинаю за что-то цепляться, хочется разобраться до конца и понять, почему это работает или не работает.
К примеру, в прошлом году я тестировал уязвимость в Android-приложении Facebook, но абсолютно случайно нашел уязвимость у них на сервере. Тоже получил выплату. Это было как выигрыш в лотерею, я нашел это абсолютно случайно.
Некоторые уязвимости — словно я что-то сам построил или нарисовал. Например, одна из моих любимых — это CVE-2017−0808. Ее удалось найти путем изучения исходников Android. На первый взгляд, она не должна была работать. Однако после углубления в исходный код Android удалось понять: не все так гладко и проблема есть.
В планах Дмитрия — продолжать искать уязвимости и расширять деятельность, а еще найти помощника-студента.
— С одной стороны, кажется, что рано или поздно уязвимости закончатся. С другой еще очень много всего хочется попробовать. Я надеюсь параллельно с поиском уязвимостей развивать еще одно направление: улучшать безопасность приложений, внедрять методы защиты.
Как пользоваться смартфоном
Для читателей Дмитрий дал несколько советов о том, как безопасно пользоваться смартфоном.
— Первое: я никогда не ставлю сомнительные приложения. Лучше пользоваться приложениями известных разработчиков, например, Google, Facebook или Dropbox.
Второе: никогда не надо ставить приложения не из Google Play. Не составляет большого труда взять приложение, внести в него какие-то изменения и распространять его через какой-то источник. Простой пользователь сразу не определит, было оно изменено или нет.
Важно, чтобы устройства всегда обновлялись. Если они имеют не последнюю прошивку, они могут не получить патч безопасности. Зловредное приложение может использовать известные уязвимости, чтобы получить доступ.
С другой стороны, злоумышленники могут использовать и те уязвимости, о которых пока никто не знает. Вообще нет таких средств, чтобы защититься полностью, чтобы никто не мог взломать. Всё можно обойти. Вопрос только — сколько ресурсов на это потребуется.