«ВКонтакте» не платит пользователям за найденные уязвимости

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

image

1. Обнаружение уязвимости


Уязвимость заключалась в методе API newsfeed.get. При выполнении самого обычного запроса к нему, в объекте, среди прочих, возвращался массив из 4-5 пользователей (profiles). Они, судя по документации, должны были являться пользователями из ленты новостей. Однако я никак не мог найти в ленте этих людей, и зачастую в массиве встречался только мой собственный аккаунт.

image

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

То есть, сделав к newsfeed.get запрос для получения последнего поста в ленте новостей, в массиве profiles мне возвращало администратора написавшего и пользователя предложившего как эту запись, так и предыдущие три.

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

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

image

Я написал скрипт, который первым делом создавал список новостей с определенным сообществом. Затем собирал для каждого поста этого сообщества свой массив с профилями. Здесь я столкнулся с лимитами API, оно отдавало мне посты лишь за последние 12 дней, но с этим тоже можно было работать.

После сбора массивов для максимально возможного количества постов, скрипт начинал их анализировать. Для начала находились те пользовательские id, которые встречаются ровно в четырех массивах. Из четырех постов, связанных с этими массивами я находил самый ранний. Этот пост был предложен в сообщество пользователем, чей id мы нашли. Затем эти пользователи отфильтровывались из массивов и мною составлялся список администраторов.

При желании вы можете посмотреть код эксплуатации уязвимости на Github .

2. Сообщаем об уязвимости


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



Я знал об отсутствии официальной bug bounty программы у ВКонтакте, но также знал, что нередки были случаи поощрения за уязвимости внутренней валютой (голосами), однако решил отложить эти вопросы на момент исправления уязвимости. После этого я стал изредка мониторить уязвимость. Это продолжалось до апреля 2015, когда прочитав очередную статью об уязвимости и вознаграждении, я снова проверил свою уязвимость и она не была исправлена.

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

image

Наступил май, я снова решил проверить уязвимость, и она, наконец, была исправлена. На это потребовалось 8 месяцев. Со мной, несмотря на обещания, никто так и не связался, поэтому я решил написать сам, и заодно узнать критерии, по которым социальная сеть выплачивает вознаграждения. Меня ждала очередная неделя ожидания ответа от техподдержки, и сам ответ, в котором мне предложили подождать ещё.

image

Со мной связались лишь 29 мая, спустя несколько часов после запуска программы вознаграждения за уязвимости, заявив, что раз «уязвимость уже исправлена, то она не подпадает под новую программу и им мне нечего предложить».

Итоги


  1. Очередная уязвимость в приватности ВКонтакте
  2. Потребовалось 8 месяцев и 3 моих обращения для исправления
  3. Вопросы о вознаграждении игнорировались вплоть до запуска bug bounty программы, после чего мне под ее предлогом было отказано в какой-либо выплате
  4. Техподдержка предпочла длительное игнорирование каким-либо действиям


UPD: Похоже, после запуска программы поощрения ситуация изменилась не сильно.
Поделиться публикацией

Комментарии 78

    +10
    Год назад писал в саппорт «Вконтакта» о кривой верстке. Даже указал номер строчки в css файле и причину.

    www.youtube.com/watch?v=I_1dhI32WYY
    До сих пор не исправили.
      +7
      Я им как-то написал, что счетчик лайков (скроллинг цифр) криво отображается при нестандартном DPI, а они мне ответили, что не оптимизируют сайт под разные масштабы.
        0
        Они вообще такой ерундой не занимаются, как оптимизация под конкретные платформы, им проще плашку вывести «Загрузите православный браузер», чем пытаться баги под IE и оперу фиксить.
          –19
          Перешел на сайт автора данной статьи, bluzir.me/blog/2%27 как такой человек имеет право тут чтото писать?
            +13
            Мне льстит, что разработчик VK ищет уязвимости в моем блоге, вместо исправления собственных
              –8
              Мы работаем над исправлением тех уязвимостей, информация о которых доходит до нас, только с открытием программы на h1 у мы начали налаживать правильный подход для получения информации о них. А вы критикуете не разобравшись. Мы открыли информацию о выплатах на h1, при этом на сколько я знаю среди того что мы обработали – ничего с реальным применением не прислали (но большую часть заявок мы пока не успели обработать), но выплатили уже 2000$, что не может считаться жлобством со стороны ВК как ни крутите
                +7
                2000 баксов? Вы издеваетесь? Фейсбук такую сумму за баг в верстке выплачивает. Да, я про те баги, которые вы за баги даже не считаете.
                  0
                  И я по юнешеской дурости когда-то хотел у Вас работать…
                    0
                    а раньше там было круто. но время идет…
            +5
            Платные смайлики прибыльнее, чем код править.
              +2
              При Дурове такого не было!
                +1
                Да уж, платные смайлики/стикеры — вот современный тренд!
                Что ж, создали стадо общество потребителей, создали спрос и предложение…
              0
              Мы недавно писали им по поводу проблемы с капчей внутри виджетов. Исправили довольно оперативно.
              Видимо зависит от разных факторов.
                +2
                Еще в Августе прошлого года писал им о странном баге с юникодом в мобильной версии сайта. Сказали, что исправят, а воз и ныне там:
                image

                Моб. версия:
                image
                  +4
                  Кстати в мобильной версии под iOS везде <> видно как &-lt &-gt. Фейййл
                  –6
                  Не вся информация доходит, до разработчиков, просто представьте количество тикетов для техподдержки, сейчас ведется редизайн, который исправит подобные несерьезные косяки, там архитектурно система слоев не очень правильно написана, ее переписать нужно.
                  +84
                  Решение очевидно: если администрации не нужны сообщения об уязвимостях, или она не хочет за них платить — то не стоит ломиться в закрытую дверь, а предложить информацию тем, кому она нужнее.
                    0
                    хм… а продажа уязвимостей в даркнете не наказуема разве?
                      +11
                      Ну… например, можно потопить группу по типу «подслушано», если рассказать людям, что теперь можно видеть автора поста и так далее=)
                        +5
                        Использование наказуемо по российским законам.
                        Продажа, насколько мне известно, под это не попадает.

                        Ситуация похожа на речи бабок у подъезда: «Вот эта мелкая прошман*овка из 114 квартиры всегда в 10 вечера уходит, внучек, а бохатая дура, телевизор у нее на всю стенку, живет то одна».
                          +2
                          Ну, тогда возникает вопрос, как декларировать доходы от продажи уязвимостей…
                            +2
                            Это единственный вопрос, который возникает?
                              +67
                              Еще какой автомобиль взять, Астон мартин ДБ9 воланте или Мазерати Гран Кабрио?
                                +1
                                Обожаю хабрахабр вот за это!
                              +7
                              Как доходы от гражданско-правовых сделок, каковой и является купля-продажа. Если вы занимаетесь этим систематически — то как доходы от предпринимательской деятельности.
                                +1
                                Откройте автомойку, ага :) Ну или лазертаг.
                                  +2
                                  Автомойка лучше.
                                  Можно бабки в тележке с кока-колой ввозить ;-)
                                +8
                                Сделать парсер всех неудовлетворенных девушек из разных групп, и продавать эту информацию на специальных форумах различным альфачам?
                                0
                                Вряд ли в США вас накажут, если вы предложите эту информацию АНБ, например. Надо просто смотреть по юрисдикции.
                                  +2
                                  Мне кажется, если я буду продавать уязвимости вконтактика АНБ, живя в России, то меня осудят за государственную измену (=
                                    +5
                                    Так я же говорю, смотрите по юрисдикции. Живете в России — предложите информацию ФСБ.
                                      +2
                                      Боюсь, это не так выгодно ;)
                                        +1
                                        Иметь хорошие контакты в СБ государства, в котором живете — всегда выгодно. Вам могут предложить выгодную работу или подряды, если даже много не предложат за конкретную найденную уязвимость.
                                        0
                                        Боюсь, они в курсе.
                                          +5
                                          А вы проверьте. Думаете, там боги сидят и все знают?
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                    0
                                    Опишите статью, под которую попадает продажа уязвимости.
                                      0
                                      Ну так я потому, что я не знаю такой статьи, но сомнения по этому поводу имеются.

                                      В порядке бреда: при жалении суд наверняка может упустить момент продажи и будет формулировка аля «гражданин А, получив инструкции от гражданина Б, совершил преступление предусмотренное статьями...» им пойдет горе-продавец как соучастник преступления.
                                        +1
                                        Для соучастия надо знать про готовящееся предступление. Незаконный доступ к ЭВМ и изготовление вредоносных программ не покрывают информацию об уязвимости.

                                        Я не вижу ни одной статьи (кроме «резиновых» хулиганства и экстримизма), которые можно было притянуть к продаже информации об уязвимости.
                                          0
                                          Так как бы в суде-то будут бить по морде, а не по паспорту. Вероятно, это будет соучастие в этом самом незаконном доступе к ЭВМ. А строить из себя целочку и рассказывать, что ты знать не знал, что в даркнете обитают злые дяди и даже не подумал, что они дают тебе денежек с целью сделать что-то нехорошее — курам на смех.
                                      0
                                      нет. Наказуема только продажа уязвимости с несоблюдением должных мер предосторожности.
                                      0
                                      Нельзя так делать, от слова никогда :)
                                      Тогда уж лучше раскрывать подробности уязвимости только по факту оплаты (см. например habrahabr.ru/post/258513/). Хотя ту идею, кстати не мою, хабрасообщество местами почему-то оценило гораздо менее одобрительно (шантаж и злостное вымогательство).
                                        –15
                                        Откуда информация о том, что уязвимости не нужны и что ВК не готовы платить за них, неужели вы думаете, что это то, на чем у нас есть желание экономить, особенно учитывая то, что для компании данные суммы не являются большими?

                                        Дело в том что налетела куча мудаков и начала клянчить деньги либо за мелкие проблемы, за которые станно ожидать больше 100$ либо за баг который был давно, и о котором репортило в разное время человек 100, потому что он вылез гдето на форуме, что теперь мы всем должны всем школьникам способным перепостить запись с форума в интерфейс поддержки по 10000$ выплачивать, серьезно?
                                          +6
                                          Можно ли ссылаться на второй абзац, как на позицию VK, озвученную одним из представителей социальной сети?
                                            +5
                                            Мне одному показалось, что сейчас автора поста прямым текстом мудаком обозвали?

                                            Ну, назвался представителем компании, зачем такие вольности в словах допускать?
                                              +5
                                              либо за баг который был давно, и о котором репортило в разное время человек 100

                                              А как вы доказываете тот факт, что ошибка уже была найдена? Есть какой-то публичный багтрекер, где можно посомтреть на наденые ошибки? Иначе получается, что абсолютно про любую найденую уязвимость можно сказать, что её уже кто-то нашел…
                                                +7
                                                То есть 100 человек в течении 8-ми месяцев или больше писали вам об одном и том же баге, а вы не реагировали?
                                              +9
                                              Мне тех поддержка примерно так ответила, когда я им написал про баг в апи:
                                              Вроде как и баг, но никому не мешает, а иногда бывает полезен.


                                              Может у вас тоже вроде как и уязвимость, но никому не мешает, а иногда бывает и полезна?
                                                +17
                                                любой баг «иногда бывает полезным» кому либо
                                                –1
                                                Это наши реалии. Этим «еропейская/американская» приличная компания отличается практически от любой «нашей».
                                                Отношение к клиенту пофигистское. Я уже давно не вКонтакте.
                                                  +9
                                                  Да ни фига она не отличается. Это общемировые реалии.
                                                    0
                                                    Это как сравнить яндекс с газпромом. Есть технологич. компании а есть обычные, им можно.
                                                      0
                                                      Во-первых, всё равно нельзя. Головотяпство есть головотяпство.

                                                      Во-вторых, а что технологические компании? То же самое, что и в обычной среде: есть нормальные вроде Яндекса, а есть вот такое вот.
                                                      0
                                                      Психологическое восприятие подобных ситуаций может быть неоднозначным.

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

                                                      Но однажды нашелся студент, который раскопал в интернете информацию об одной уязвимости линукса, скачал эксплойт, с его помощью взломал один из центральных серверов и потер на нем содержимое винта. Типа «убедительная демонстрация». И вот этот поступок уже перешел границу. Преподам пришлось потратить уйму времени на восстановление сервера при том, что у юного хакера не было никакой необходимости в такой «жестокой» демонстрации своего успеха. К тому же, это была не его личная заслуга, а чужие разработки. И этого студента уже никто по головке не гладил, у него испортились отношения с компьютерными преподами. Да и я этот поступок не одобрил. По мне так: нашел уязвимость — продемонстрировал взлом с минимальным ущербом — сообщил преподам. Или: нашел уязвимость и тихо используешь для себя, не мешая другим работать.
                                                        +1
                                                        Ну логично. А тут это при чём? Автор никому не навредил.
                                                          0
                                                          При том, что автор создал им дискомфорт. У многих людей логическое мышление не так развито, как у университетских преподавателей, поэтому они не могут понять, что на самом деле автор оказал им услугу и защитил от более крупных неприятностей. На поверхности лежит то, что автор нарушил их покой и вторгся в их жизненное пространство. Отсюда и агрессия.
                                                      0
                                                      Приведу в пример Амазон. Kindle.
                                                      Девайс ломается здесь по вине пользователя (треснул экран).
                                                      Что делает амазон — меняет девайс бесплатно и берет на себя все расходы по доставкам в обе стороны.

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

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

                                                        Если говорить про ритейл, могу привести пример, как мне М-Видео скидку в 50% выписало за то, что у товара на чеке не тот ценник был указан. Дело было в Москве, вполне себе на постсоветском пространстве.
                                                    +4
                                                    «ВКонтакте» не платит пользователям за найденные уязвимости


                                                    image
                                                      +4
                                                      А теперь давайте сроки согласования данной штуки?
                                                        0
                                                        Какой штуки?
                                                        +31
                                                        Шутка про то, что ВК вместо денег даёт шоколадки «Баунти». Просто другие обычно указывают сумму.
                                                          0
                                                          Шутка про шоколадку с минимальной стоимостью в 100$.
                                                            +1
                                                            vk выплачивает в долларах? Интересно.
                                                              0
                                                              Очевидно, что это связано с работой сервиса hackerone.
                                                              +1
                                                              Можно огласить конкретные цифры и сложность уязвимости?
                                                          +23
                                                          Мораль сей басни такова — не надо никуда обращаться, надо сразу статью на Хабре писать про уязвимость)
                                                            +10
                                                            Так говорили же в той теме, что о баге было заявлено до старта HackerOne.
                                                            Это что, если следуя логике автора Вконтакте должен сейчас выплатить всем, кто за все эти 10+лет сообщил о баге? У них конечно бюджет позволит это сделать, но найти информацию «кто первый это узнал» действительно сложно, используя только открытые источники, ведь действительно не было еще формы «сообщаю о баге первым»

                                                            Лично я считаю это стандартной практикой, когда ты сначала закрываешь кучу своих багов, всё проверяешь и вроде всё работает правильно, и когда уже ТЫ САМ(тестеры) не можешь найти ошибки, то запускаешь программу баунти-ревардов, чтобы найти другие ошибки.
                                                              –17
                                                              Школота негодует.
                                                                +7
                                                                Техподдержка сидит на аутсорсе, иногда из дома. Поэтому с ними вести переговоры об уязвимостях бесполезно…
                                                                  +6
                                                                  судя по адекватости представителей в этом посте, иногда еще и с уроков сидят
                                                                  0
                                                                  Да, вк очень не оперативно реагирует на баги. В API есть серьёзный баг с данными, они отдаются неправильно вообще!
                                                                  Запостил в саппорт 23 мая 2015 в 16:26, после немного глупых вопросов с периодичностью ответа раз в неделю.
                                                                  17 июн 2015 в 11:24 баг подтвердили и на этом история пока закончилась…
                                                                    0
                                                                    А что за баг? Можете скинуть ссылку на него?
                                                                      +1
                                                                      Ссылки нет, это переписка с саппортом. Суть бага не секрет, т.к. это видимо ошибка агрегаций:
                                                                      Проблема с методом stats.get дублирование day с разными данными.
                                                                      Через excute выполняется запрос вида:
                                                                      var info = API.groups.getById({"group_id":"itg34","fields":"place,members_count,counters,start_date,finish_date,activity,contacts,verified,site"})[0]; return { info: info, stats: API.stats.get({"group_id":info.id,"date_from":"2015-03-23","date_to":"2015-05-22"}) };
                                                                      

                                                                      Ответ: gist.github.com/intech/26fea833759bb9206868
                                                                      Смотрите даты, они дублируются, но содержат разные данные:
                                                                      2015-05-10
                                                                      2015-04-27
                                                                      2015-04-25
                                                                      2015-04-18

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

                                                                  Самое читаемое