Слив исходников Яндекса, как самый большой толчок русского ИТ

в 6:52, , рубрики: взлом, информационная безопасность, утечка, яндекс
Слив исходников Яндекса, как самый большой толчок русского ИТ - 1

Постараюсь без долгих рассуждений, сразу к делу. Привет, я mobilz, и в своё время я уже "сливал" некоторые исходники Яндекса в том числе. Предварительно, конечно, предупредив их. К текущим событиям я не имею отношения, но у меня есть мысли, которыми я хочу поделиться.

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


Несомненно, Яндекс как коммерческая компания, потеряет прибыль на короткой дистанции. Много времени будет потрачено на исправление узких мест, подхода и архитектуры. Но на длинной дистанции, выиграют все, в том числе и сам Яндекс, который получит ценные кадры. Опять же, если опускать лирику, то базы Яндекса (доставки, такси) сливали не раз, Яндекс отделывался штрафом. Но теперь всё поменялось.

Предпосылки.

Монорепозитории, это очень удобно. Последние лет 5 мы активно видим, что многие переходят на монорепы, и Яндекс в своё время был одним из пионеров данного подхода. Однако, это играет в том числе и злую шутку.

Упомянутые мной выше сливы баз данных были звоночками. Безнаказанность, а именно штраф в 60 000 рублей за слитые персональные данные клиентов "Яндекс.Еды" тому подтверждение. Это не значит, что разработчики дураки или им плевать, просто нет ответственности.

Политическая ситуация в стране. Сегалович, вечная память, теперь и Волож с топам, уехавшие из России, это отрицательный рост. Конечно, не Кудрин в этом виноват. Чтобы разрушить то, что создавалось десятилетиями, ему бы пришлось очень сильно постараться. Но дата последней модификации данных намекает, что не все согласны с этим. Можно долго рассказывать, что и Макдональдс не ушёл, а продал свой бизнес, и что Икея заработала на нас миллиарды и сбежала, поджав хвост. И автогиганты пытаются нам насолить, все вокруг дураки. Однако, крупные ИТ и не только, отрицательно прибавляются в стране, увы.

Кто это сделал?

Две основные теории, снятые с уст:

  1. Взлом, опираясь на предпосылки (прошлый абзац).

  2. "Крыса" внутри, которая имела доступ и просто слила.

Я лично не верю во второй вариант. Могу ошибаться, но доводы такие:

  • 26 января, 11 месяцев спустя? А почему не сразу? А почему не после Бучи? А почему не после 21 или 30 сентября? Где вы были 8 лет?

  • В сливе многое отсутствует. Где-то целиком директории, где-то конкретные файлы. Это больше похоже не на "крысу", а на расчёт.

  • Архитектура монорепов позволяет это сделать внешнему человеку при определённых условиях.

  • Неподготовленность к подобному, лично для меня, указывает на исключительность ситуации. Очевидно, Яндекс имел защиту от подобных внутренних сливов, но столкнулся с чем-то другим (вспоминаем хаос в закрытых телеграм-чатах 26-го января)

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

Зачем?

Самый короткий абзац, Для меня ответ в mtime, последней модификации файлов. Можно долго спорить, можно говорить, что это просто пыль в глаза итп. Факт -- такое могло произойти раньше. Факт -- не произошло.

Что тут хорошего?

Я мельком глянул на сурсы. Первое, что я для себя отметил -- надо подтягивать go, python и, конечно, c++. Возвращаясь к заголовку статьи, кажется, это кладезь best-practice в плане c++/python/go/typescript/docker/etc как минимум. В README.MD часто я так и встречал: "Готовые либы либо на c, делать обёртку для c++ -- дешевле с нуля написать. А готовые либы на c++ -- люди не понимают, как делать архитектурно качественные либы". В реакт приложениях зависимости -- минимальны. Там, где я ожидал увидеть reanimated или react-navigation -- собственная реализация. Не значит, что она лучше и круче, просто "ребята" действуют изолированно. Далеко ходить не надо, яркий пример ClickHouse, который стал публичным и общедоступным и завоевал своё место в крупнейших компаниях типа cloudflare, bloomberg и менее известных для b2c компаниях, связанных с AD. Но не менее масштабных.

В сурсах мы можем встретить как супер простые скрипты, типа валидации json, енкода/декода base64/pbf/скрипто_функций, функции архивации, работы с геоданными итп. Так и достаточно сложные алгоритмы анализа данных.
На гитхабе много исходников крутых проектов на c/c++, но где ещё встретить весь спектр, от простого к сложному? При этом много кода документировано. Одно дело познавать c++ по тому же ClickHouse, где над каждой строчкой думает команда, пытаясь её оптимизировать и не допустить лишних memcpy. Другое -- начинать с малого, например, валидации урла. Современный мир перенаполнен skillbox`ами и прочими Яндекс.Практикумами, которые зачастую навязывают "свои" технологии и грязные шаблоны. Тот же, _BEM я не часто встретил в этих исходниках.

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

Очевидно, что многие сурсы будут интересны и пентестерам. В нашей стране деятельность по неправомерному доступу к компьютерной информации давно интерпретируется вольно. Это раньше отдел "К" мог ворваться к тебе домой и изъять монитор (на нём же вся информация, да?), современные реалии компенсируются несовершенными законами очень просто -- ты если храбрый, то либо с нами, либо мы найдём, за что тебя посадить, 228 никто не отменял. Статья "президентская", получишь максимум. В том числе поэтому мы можем наблюдать сводки, что "русских" хакеров ловят в основном за границей. IB не в счёт.
Это не значит, что Яндекс может потирать руки и ждать новых сотрудников + бесплатную секьюрити аналитику, конечно нет. Очевидно, Яндекс заплатит много денег за пентест с доступом к исходникам. Но не зря они объявили "повышенные ставки" на "охоту на ошибки". Странно, что срок короткий. Вангую, что продлят. И все выиграют. Сами разработчики скажут "спасибо", если среди их кода найдут уязвимости.

"Взрослые" компании получили отличный пример, как надо делать. Инфраструктура, логика и реализация у Яндекса всегда была чем-то "волшебным". Сейчас мы все можем убедиться в том, что это были не сказки, так оно и есть. Всё структурировано, документация к каждому проекту, кодстайл к каждому проекту, почти в каждой документации отдельный пункт: "если чего-то непонятно -- не стесняйтесь, спрашивайте". Внутренние CRM, аркадия, вики, сообщества и чаты. Отличный повод посмотреть на то, как делаешь бизнес "лично ты". Есть на кого ровняться.

Что тут плохого?

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

Обиженные партнёры маркета, которые считают, что их минусуют -- вот же исходники, давайте смотреть. В выдаче ты не на первом месте -- вот исходники (да да, робот просто собирает данные, анализируются они уже после, но доступ к роботу таки есть). Скрытые функции и настройки яндекс-навигатора -- вот же они, читай код. Таксисту не дают заказ, кооторый рядом с ним -- вот же, у тебя скорость выше предела (насколько я понял, что-то вроде больше 55кмч) или меньше предела, т.е. ты стоишь... Очевидно, что внутренние алгоритмы ударят по Яндексу и многие захотят этим воспользоваться. Кто-то чуть раньше, кто-то чуть позже. Яндексу искать новые метрики для алгоритмов это хорошо, но это не произойдёт быстро. Как и не произойдёт быстрого перестроения архитектуры. Я к тому, что Яндекс, очевидно, внепланово потратит много денег, чтобы компенсировать этот слив. И, очевидно, это отразится на нас -- пользователей Яндекса (такси, еда, поиск, кинопоиск, авто.ру и так далее).

Ну и не забудем про новые сливы баз данных. Если и раньше мы с этим сталкивались, то теперь это станет нормальным событием. Если, конечно, гении из Яндекса, быстро не решат эту проблему. Увы, я сомневаюсь, что Кудрин "гений из Яндекса". Он гений, но точно не про Яндекс и современную ИТ компанию.

Юрий Дудь Синодов (если вы не в курсе, то это "Дудь" в ИТ журналистике, webplaneta, roem итп) высказался, что прелесть тех немногочисленных гениев, что уехали с Воложем старшим -- они за неделю сделают то, что сотрудники Яндекса делали десятилетиями. Конечно это не так и конечно Юрий имел введу новые проекты на основе старых. Воссоздать инфраструктуру текущего Яндекса за неделю точно не получится, да и за пол года не получится. Даже "гении", что уехали с Воложем, потратят много времени, чтобы понять что это и как этого избежать в дальнейшем, вместо того, чтобы создавать дальше.А им так же придётся о этом думать, т.к. они так же к этому причастны.

Вместо послесловия.

Много внутренних проектов Яндекса в своих сурсах "по дефолту" имеют лицензию MIT, это явно прописано в метафайлах. Другие исходники никак не подписаны, что так же позволяет их копировать, использовать в коммерческих целях, видоизменять итп. Как бы сильно лично я "нелюбил" Яндекс (для меня они давно корпорация зла), я искренне шлю лучи добра всем оставшимся в РФ сотрудникам. Вы очень крутые и большие молодцы, то, что вы создали и поддерживаете -- это национальное достояние. Проглядывая сквозь пальцы ваши сурсы, я убеждаюсь в том, что вы большие профессионалы. Терпения вам и ни в коем случае не унывать. Повторю, данный слив актуален только "здесь и сейчас", в ваших руках сделать его "неактуальным" пол года спустя. Не ругайтесь на вайтов, что они пентестят основываясь на ваших сурсах. Так сложилось. И большое спасибо вам за то, что документируете код.

Это не ваша вина.

Автор: mobilz

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js